@keyframes fadeIn-4cc78716{0%{opacity:0}to{opacity:1}}@keyframes slideUp-4cc78716{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin-4cc78716{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-4cc78716{0%,to{opacity:1}50%{opacity:.5}}.toast-container[data-v-4cc78716]{position:fixed;bottom:1.5rem;right:1.5rem;z-index:11000;display:flex;flex-direction:column;gap:.75rem;pointer-events:none;max-width:24rem;width:calc(100% - 3rem)}.toast[data-v-4cc78716]{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem 1rem;border-radius:.75rem;background:var(--student-surface-overlay, rgba(252, 254, 255, .97));border:1px solid var(--student-border-soft, rgba(148, 163, 184, .28));box-shadow:var(--student-shadow-elevated, 0 16px 40px rgba(15, 23, 42, .14), 0 4px 12px rgba(15, 23, 42, .07));backdrop-filter:blur(20px) saturate(150%);-webkit-backdrop-filter:blur(20px) saturate(150%);cursor:pointer;pointer-events:all}.toast--success[data-v-4cc78716]{border-color:var(--color-success-500)}.toast--success .toast__icon[data-v-4cc78716]{color:var(--color-success-500)}.toast--error[data-v-4cc78716]{border-color:var(--color-error-500)}.toast--error .toast__icon[data-v-4cc78716]{color:var(--color-error-500)}.toast--warning[data-v-4cc78716]{border-color:var(--color-warning-500)}.toast--warning .toast__icon[data-v-4cc78716]{color:var(--color-warning-500)}.toast--info[data-v-4cc78716]{border-color:var(--color-primary-500)}.toast--info .toast__icon[data-v-4cc78716]{color:var(--color-primary-500)}.toast__icon[data-v-4cc78716]{flex-shrink:0;width:1.25rem;height:1.25rem}.toast__icon svg[data-v-4cc78716]{width:100%;height:100%}.toast__message[data-v-4cc78716]{flex:1;font-size:.875rem;line-height:1.4;color:var(--student-text-primary, var(--color-text-primary))}.toast__close[data-v-4cc78716]{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;background:none;border:none;cursor:pointer;color:var(--student-text-secondary, var(--color-text-tertiary));padding:0;opacity:.6}.toast__close[data-v-4cc78716]:hover{color:var(--student-text-primary, var(--color-text-secondary));opacity:1}.toast__close svg[data-v-4cc78716]{width:100%;height:100%}.toast-enter-active[data-v-4cc78716]{transition:all .3s ease}.toast-leave-active[data-v-4cc78716]{transition:all .25s ease}.toast-enter-from[data-v-4cc78716],.toast-leave-to[data-v-4cc78716]{opacity:0;transform:translate(100%)}.toast-move[data-v-4cc78716]{transition:transform .3s ease}@keyframes fadeIn-4ff93e86{0%{opacity:0}to{opacity:1}}@keyframes slideUp-4ff93e86{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin-4ff93e86{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-4ff93e86{0%,to{opacity:1}50%{opacity:.5}}.error-boundary[data-v-4ff93e86]{display:flex;align-items:center;justify-content:center;min-height:300px;padding:var(--space-6)}.error-boundary__content[data-v-4ff93e86]{text-align:center;max-width:480px}.error-boundary__icon[data-v-4ff93e86]{font-size:3rem;margin-bottom:var(--space-4)}.error-boundary__title[data-v-4ff93e86]{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text-primary);margin-bottom:var(--space-2)}.error-boundary__message[data-v-4ff93e86]{color:var(--color-text-secondary);margin-bottom:var(--space-6)}.error-boundary__actions[data-v-4ff93e86]{display:flex;gap:var(--space-3);justify-content:center;margin-bottom:var(--space-4)}.error-boundary__details[data-v-4ff93e86]{text-align:left;margin-top:var(--space-4);padding:var(--space-4);background:var(--color-surface-2);border-radius:var(--rounded-lg);font-size:var(--text-sm)}.error-boundary__details summary[data-v-4ff93e86]{cursor:pointer;color:var(--color-text-tertiary);margin-bottom:var(--space-2)}.error-boundary__details summary[data-v-4ff93e86]:hover{color:var(--color-text-secondary)}.error-boundary__details pre[data-v-4ff93e86]{margin:0;padding:var(--space-3);background:var(--color-surface-3);border-radius:var(--rounded);overflow-x:auto;font-size:var(--text-xs);color:var(--color-danger-400)}@keyframes fadeIn-83861189{0%{opacity:0}to{opacity:1}}@keyframes slideUp-83861189{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin-83861189{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-83861189{0%,to{opacity:1}50%{opacity:.5}}.student-footer[data-v-83861189]{margin-top:auto;margin-left:260px;flex-shrink:0;border-top:1px solid var(--student-border-soft);background:linear-gradient(180deg,#ffffffb3,#f8fbffe6),radial-gradient(circle at top left,rgba(59,130,246,.08),transparent 40%);backdrop-filter:blur(var(--student-glass-blur));-webkit-backdrop-filter:blur(var(--student-glass-blur))}.student-footer__inner[data-v-83861189]{width:min(100%,1340px);margin:0 auto;padding:var(--space-5) var(--space-5);display:flex;align-items:center;justify-content:space-between;gap:var(--space-6)}.student-footer__brand[data-v-83861189]{min-width:0}.student-footer__message[data-v-83861189]{margin:0;font-size:var(--text-sm);font-weight:600;color:var(--student-text-primary)}.student-footer__credit[data-v-83861189]{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--student-text-secondary)}.student-footer__credit a[data-v-83861189]{color:var(--student-accent);text-decoration:none;font-weight:600}.student-footer__copyright[data-v-83861189]{margin:var(--space-1) 0 0;font-size:var(--text-xs);color:var(--student-text-secondary);opacity:.7}.student-footer__nav[data-v-83861189]{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;justify-content:flex-end}.student-footer__nav-title[data-v-83861189]{font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-tertiary);margin-right:var(--space-1)}.student-footer__link[data-v-83861189]{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-1) var(--space-2);border-radius:var(--rounded-md);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--student-text-secondary);text-decoration:none;transition:color .2s ease,background-color .2s ease}.student-footer__link[data-v-83861189]:hover{background:var(--student-accent-soft);color:var(--student-accent);text-decoration:none}.student-footer__link.router-link-active[data-v-83861189],.student-footer__link.router-link-exact-active[data-v-83861189]{color:var(--student-accent);background:var(--student-accent-soft)}@media(max-width:1024px){.student-footer[data-v-83861189]{margin-left:0}}@media(max-width:768px){.student-footer__inner[data-v-83861189]{flex-direction:column;align-items:flex-start;gap:var(--space-4);padding:var(--space-4)}.student-footer__nav[data-v-83861189]{width:100%;justify-content:flex-start;align-items:flex-start;flex-direction:column}}@keyframes fadeIn-89971fa0{0%{opacity:0}to{opacity:1}}@keyframes slideUp-89971fa0{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin-89971fa0{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-89971fa0{0%,to{opacity:1}50%{opacity:.5}}@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))){.student-layout[data-v-89971fa0],.content[data-v-89971fa0]{--student-surface-1: #ffffff;--student-surface-2: #f8fafc;--student-surface-overlay: #ffffff}}.notif-bell[data-v-89971fa0]{position:relative}.notif-bell__btn[data-v-89971fa0]{position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:transparent;border:1px solid var(--student-border-soft);border-radius:.5rem;color:var(--student-text-secondary);cursor:pointer;transition:all .15s ease}.notif-bell__btn svg[data-v-89971fa0]{width:18px;height:18px;flex-shrink:0}.notif-bell__btn[data-v-89971fa0]:hover{background:var(--student-accent-soft);border-color:var(--student-border-strong);color:var(--student-accent)}.notif-bell__btn.has-unread[data-v-89971fa0]{color:var(--student-accent);border-color:#2563eb4d;background:var(--student-accent-soft)}.notif-bell__btn.has-unread[data-v-89971fa0]:hover{background:#2563eb29}.notif-bell__badge[data-v-89971fa0]{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 4px;background:#ef4444;color:#fff;font-size:.625rem;font-weight:700;line-height:18px;text-align:center;border-radius:9999px;border:2px solid transparent;background-clip:padding-box;pointer-events:none}.notif-panel[data-v-89971fa0]{position:absolute;top:calc(100% + .5rem);right:0;width:360px;max-width:calc(100vw - 2rem);background:var(--student-surface-overlay);border:1px solid var(--student-border-soft);box-shadow:var(--student-shadow-elevated);backdrop-filter:blur(12px) saturate(120%);-webkit-backdrop-filter:blur(12px) saturate(120%);border-radius:.75rem;z-index:100;overflow:hidden;display:flex;flex-direction:column}@media(max-width:639px){.notif-panel[data-v-89971fa0]{right:-85px}}.notif-panel__header[data-v-89971fa0]{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--student-border-soft);flex-shrink:0}.notif-panel__title[data-v-89971fa0]{font-size:.875rem;font-weight:600;color:var(--student-text-primary)}.notif-panel__mark-all[data-v-89971fa0]{background:none;border:none;padding:.25rem .5rem;font-size:.75rem;font-weight:500;color:var(--student-accent);cursor:pointer;border-radius:.375rem;transition:background .15s ease,color .15s ease}.notif-panel__mark-all[data-v-89971fa0]:hover{background:var(--student-accent-soft);text-decoration:none}.notif-panel__mark-all[data-v-89971fa0]:disabled{opacity:.5;cursor:not-allowed}.notif-panel__body[data-v-89971fa0]{overflow-y:auto;max-height:380px;overscroll-behavior:contain}.notif-panel__empty[data-v-89971fa0]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:2.5rem 1rem;color:var(--student-text-muted)}.notif-panel__empty svg[data-v-89971fa0]{width:40px;height:40px;opacity:.4}.notif-panel__empty p[data-v-89971fa0]{font-size:.875rem;margin:0}.notif-item[data-v-89971fa0]{display:flex;align-items:flex-start;gap:.75rem;width:100%;padding:.75rem 1rem;background:transparent;border:none;border-bottom:1px solid var(--student-border-soft);text-align:left;cursor:pointer;transition:background .15s ease;position:relative}.notif-item[data-v-89971fa0]:last-child{border-bottom:none}.notif-item[data-v-89971fa0]:hover{background:var(--student-accent-soft)}.notif-item.is-unread[data-v-89971fa0]{background:#2563eb0d}.notif-item.is-unread[data-v-89971fa0]:hover{background:var(--student-accent-soft)}.notif-item--skeleton[data-v-89971fa0]{pointer-events:none}.notif-item--skeleton .sk[data-v-89971fa0]{background:#94a3b833;border-radius:.25rem;animation:shimmer-89971fa0 1.4s ease-in-out infinite}.notif-item--skeleton .notif-item__icon-wrap.sk[data-v-89971fa0]{flex-shrink:0}.notif-item--skeleton .sk--title[data-v-89971fa0]{width:120px;height:13px;margin-bottom:.5rem}.notif-item--skeleton .sk--body[data-v-89971fa0]{width:200px;height:11px}.notif-item__icon-wrap[data-v-89971fa0]{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:.5rem;flex-shrink:0;margin-top:1px}.notif-item__icon-wrap svg[data-v-89971fa0]{width:16px;height:16px}.notif-item__icon-wrap--lesson_unlocked[data-v-89971fa0]{background:#2563eb1f;color:#2563eb}.notif-item__icon-wrap--submission_reviewed[data-v-89971fa0]{background:#22c55e1f;color:#16a34a}.notif-item__icon-wrap--calendar_event[data-v-89971fa0]{background:#f59e0b1f;color:#b45309}.notif-item__icon-wrap--exercise_issue_resolved[data-v-89971fa0]{background:#22c55e24;color:#15803d}.notif-item__content[data-v-89971fa0]{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.notif-item__title[data-v-89971fa0]{font-size:.875rem;font-weight:600;color:var(--student-text-primary);line-height:1.375}.notif-item__body[data-v-89971fa0]{font-size:.75rem;color:var(--student-text-secondary);line-height:1.5;white-space:normal;overflow-wrap:break-word}.notif-item__time[data-v-89971fa0]{font-size:.688rem;color:var(--student-text-muted);margin-top:.25rem}.notif-item__dot[data-v-89971fa0]{width:8px;height:8px;border-radius:9999px;background:var(--student-accent);flex-shrink:0;margin-top:.5rem}.notif-panel__load-more[data-v-89971fa0]{padding:.5rem 1rem;text-align:center}.notif-panel__loading-more[data-v-89971fa0]{font-size:.75rem;color:var(--student-text-muted)}@keyframes shimmer-89971fa0{0%{opacity:1}50%{opacity:.4}to{opacity:1}}.dropdown-enter-active,.dropdown-leave-active{transition:opacity .15s ease,transform .15s ease}.dropdown-enter-from,.dropdown-leave-to{opacity:0;transform:translateY(-.5rem)}@keyframes fadeIn-ca3c250b{0%{opacity:0}to{opacity:1}}@keyframes slideUp-ca3c250b{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin-ca3c250b{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-ca3c250b{0%,to{opacity:1}50%{opacity:.5}}.base-modal__overlay[data-v-ca3c250b]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10020;display:grid;place-items:center;padding:var(--space-4);background:#0f172a8f;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.base-modal[data-v-ca3c250b]{width:min(100%,34rem);max-height:min(90vh,52rem);display:flex;flex-direction:column;border-radius:1rem;border:1px solid var(--modal-border, rgba(148, 163, 184, .28));background:var(--modal-background, rgba(252, 254, 255, .98));box-shadow:var(--modal-shadow, 0 24px 48px rgba(15, 23, 42, .24));color:var(--modal-text, var(--color-text-primary))}.base-modal--sm[data-v-ca3c250b]{width:min(100%,28rem)}.base-modal--lg[data-v-ca3c250b]{width:min(100%,42rem)}.base-modal--xl[data-v-ca3c250b]{width:min(100%,54rem)}.base-modal--student[data-v-ca3c250b]{--modal-border: var(--student-border-soft, rgb(148 163 184 / .28));--modal-background: color-mix(in srgb, var(--student-surface-2, rgb(255 255 255 / .96)) 92%, white);--modal-shadow: 0 24px 48px rgb(15 23 42 / .24);--modal-text: var(--student-text-primary, var(--color-text-primary));--modal-title: var(--student-text-primary, var(--color-text-primary));--modal-description: var(--student-text-muted, var(--color-text-secondary));--modal-divider: var(--student-border-soft, rgb(148 163 184 / .28))}.base-modal--admin[data-v-ca3c250b]{--modal-border: var(--admin-border-strong, rgb(148 163 184 / .32));--modal-background: rgb(24 33 52 / .92);--modal-shadow: 0 24px 52px rgb(8 13 25 / .48);--modal-text: var(--admin-text-primary, #e6edf8);--modal-title: var(--admin-text-primary, #e6edf8);--modal-description: var(--admin-text-secondary, #aab6cb);--modal-divider: var(--admin-border-soft, rgb(148 163 184 / .2))}.base-modal__header[data-v-ca3c250b]{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-5);border-bottom:1px solid var(--modal-divider, rgba(148, 163, 184, .24))}.base-modal__heading[data-v-ca3c250b]{min-width:0}.base-modal__title[data-v-ca3c250b]{margin:0;font-size:1.125rem;color:var(--modal-title, var(--color-text-primary))}.base-modal__description[data-v-ca3c250b]{margin:var(--space-2) 0 0;font-size:.875rem;color:var(--modal-description, var(--color-text-secondary));line-height:1.55}.base-modal__body[data-v-ca3c250b]{padding:var(--space-5);overflow-y:auto}.base-modal__footer[data-v-ca3c250b]{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-5) var(--space-5);border-top:1px solid var(--modal-divider, rgba(148, 163, 184, .24))}.base-modal-enter-active[data-v-ca3c250b],.base-modal-leave-active[data-v-ca3c250b]{transition:opacity .2s ease}.base-modal-enter-active .base-modal[data-v-ca3c250b],.base-modal-leave-active .base-modal[data-v-ca3c250b]{transition:transform .2s ease,opacity .2s ease}.base-modal-enter-from[data-v-ca3c250b],.base-modal-leave-to[data-v-ca3c250b]{opacity:0}.base-modal-enter-from .base-modal[data-v-ca3c250b],.base-modal-leave-to .base-modal[data-v-ca3c250b]{transform:translateY(8px) scale(.98);opacity:0}@keyframes fadeIn-f2da4f5e{0%{opacity:0}to{opacity:1}}@keyframes slideUp-f2da4f5e{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin-f2da4f5e{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-f2da4f5e{0%,to{opacity:1}50%{opacity:.5}}.combo-box[data-v-f2da4f5e]{width:100%;position:relative}.combo-box--light[data-v-f2da4f5e],.combo-box__panel--light[data-v-f2da4f5e]{--combo-bg: #ffffff;--combo-bg-hover: #ffffff;--combo-panel-bg: #ffffff;--combo-border: var(--student-border-soft, rgb(148 163 184 / .28));--combo-border-strong: var(--student-border-strong, rgb(100 130 170 / .42));--combo-text: var(--student-text-primary, #0f172a);--combo-muted: var(--student-text-muted, #64748b);--combo-accent: var(--student-accent, #2563eb);--combo-accent-soft: rgb(37 99 235 / .12);--combo-shadow: 0 14px 30px rgb(15 23 42 / .12)}.combo-box--dark[data-v-f2da4f5e],.combo-box__panel--dark[data-v-f2da4f5e]{--combo-bg: rgb(16 24 40 / .56);--combo-bg-hover: rgb(16 24 40 / .72);--combo-panel-bg: rgb(23 33 52 / .97);--combo-border: var(--admin-border-soft, rgb(148 163 184 / .2));--combo-border-strong: var(--admin-border-strong, rgb(148 163 184 / .32));--combo-text: var(--admin-text-primary, #e6edf8);--combo-muted: var(--admin-text-muted, #8594ac);--combo-accent: var(--admin-accent, #63a4ff);--combo-accent-soft: rgb(99 164 255 / .2);--combo-shadow: 0 20px 36px rgb(8 13 25 / .45)}.combo-box__trigger[data-v-f2da4f5e]{width:100%;min-height:2.5rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--combo-border);border-radius:.375rem;background:var(--combo-bg);color:var(--combo-text);padding:.5rem .75rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.combo-box__trigger[data-v-f2da4f5e]:hover{border-color:var(--combo-border-strong)}.combo-box__trigger[data-v-f2da4f5e]:focus-visible{outline:none;border-color:var(--combo-accent);box-shadow:0 0 0 3px var(--combo-accent-soft)}.combo-box__trigger[data-v-f2da4f5e]:disabled{cursor:not-allowed;opacity:.65}.combo-box__trigger-label[data-v-f2da4f5e]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;font-size:.875rem}.combo-box__trigger-label.is-placeholder[data-v-f2da4f5e]{color:var(--combo-muted)}.combo-box__trigger-chevron[data-v-f2da4f5e]{width:1rem;height:1rem;flex-shrink:0;transition:transform .15s ease}.combo-box.is-open .combo-box__trigger[data-v-f2da4f5e]{border-color:var(--combo-accent);background:var(--combo-bg-hover)}.combo-box.is-open .combo-box__trigger-chevron[data-v-f2da4f5e]{transform:rotate(180deg)}.combo-box__panel[data-v-f2da4f5e]{z-index:600;border:1px solid var(--combo-border);border-radius:.5rem;background:var(--combo-panel-bg);box-shadow:var(--combo-shadow);overflow:hidden;display:flex;flex-direction:column;transform-origin:top center}.combo-box__panel--origin-top[data-v-f2da4f5e]{transform-origin:bottom center}.combo-box-panel-enter-active[data-v-f2da4f5e]{transition:opacity .16s ease,transform .16s cubic-bezier(.16,1,.3,1)}.combo-box-panel-leave-active[data-v-f2da4f5e]{transition:opacity .11s ease,transform .11s cubic-bezier(.4,0,1,1)}.combo-box-panel-enter-from[data-v-f2da4f5e],.combo-box-panel-leave-to[data-v-f2da4f5e]{opacity:0;transform:scaleY(.92)}.combo-box__search-wrap[data-v-f2da4f5e]{padding:.5rem;border-bottom:1px solid var(--combo-border)}.combo-box__search-input[data-v-f2da4f5e]{width:100%;min-height:2.25rem;font-size:.875rem;border:1px solid var(--combo-border);border-radius:.375rem;background:var(--combo-bg);color:var(--combo-text);padding:.5rem .75rem}.combo-box__search-input[data-v-f2da4f5e]::placeholder{color:var(--combo-muted)}.combo-box__search-input[data-v-f2da4f5e]:focus{outline:none;border-color:var(--combo-accent);box-shadow:0 0 0 3px var(--combo-accent-soft)}.combo-box__list[data-v-f2da4f5e]{list-style:none;margin:0;padding:.25rem;max-height:15.75rem;overflow-y:auto;flex:1}.combo-box__empty[data-v-f2da4f5e]{color:var(--combo-muted);font-size:.875rem;padding:.75rem}.combo-box__option[data-v-f2da4f5e]{width:100%;border:0;border-radius:.375rem;background:transparent;color:var(--combo-text);display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .75rem;text-align:left;cursor:pointer;transition:background .15s ease}.combo-box__option[data-v-f2da4f5e]:hover,.combo-box__option.is-active[data-v-f2da4f5e]{background:var(--combo-accent-soft)}.combo-box__option[data-v-f2da4f5e]:disabled{opacity:.55;cursor:not-allowed}.combo-box__option.is-selected[data-v-f2da4f5e]{font-weight:600}.combo-box__option-label[data-v-f2da4f5e]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem}.combo-box__option-check[data-v-f2da4f5e]{width:1rem;height:1rem;color:var(--combo-accent)}.combo-box__option-check svg[data-v-f2da4f5e]{width:100%;height:100%}@keyframes fadeIn-68e48a90{0%{opacity:0}to{opacity:1}}@keyframes slideUp-68e48a90{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin-68e48a90{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-68e48a90{0%,to{opacity:1}50%{opacity:.5}}.user-avatar[data-v-68e48a90]{display:inline-flex;align-items:center;justify-content:center;border-radius:9999px;flex-shrink:0;overflow:hidden;color:#fff;font-weight:700;letter-spacing:.02em;background:#2563eb}.user-avatar--sm[data-v-68e48a90]{width:1.75rem;height:1.75rem;font-size:.75rem}.user-avatar--md[data-v-68e48a90]{width:2rem;height:2rem;font-size:.75rem}.user-avatar--lg[data-v-68e48a90]{width:2.5rem;height:2.5rem;font-size:.875rem}.user-avatar__img[data-v-68e48a90]{width:100%;height:100%;object-fit:cover}@keyframes fadeIn-4a5a30fc{0%{opacity:0}to{opacity:1}}@keyframes slideUp-4a5a30fc{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin-4a5a30fc{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-4a5a30fc{0%,to{opacity:1}50%{opacity:.5}}.skip-link[data-v-4a5a30fc]{position:absolute;top:-100%;left:50%;transform:translate(-50%);z-index:10001;padding:var(--space-3) var(--space-6);background:var(--color-primary);color:#fff;border-radius:var(--rounded-lg);font-weight:600;text-decoration:none;transition:top .2s ease}.skip-link[data-v-4a5a30fc]:focus{top:var(--space-2);outline:2px solid var(--color-primary);outline-offset:2px}.header__menu-toggle[data-v-4a5a30fc]{display:none;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;padding:0;background:transparent;border:none;border-radius:.5rem;color:var(--color-text);cursor:pointer;transition:background-color .2s ease}.header__menu-toggle[data-v-4a5a30fc]:hover{background-color:var(--color-bg-secondary)}.header__menu-toggle svg[data-v-4a5a30fc]{width:1.5rem;height:1.5rem}@media(max-width:1023px){.header__menu-toggle[data-v-4a5a30fc]{display:flex}}.sidebar-overlay[data-v-4a5a30fc]{display:none}@media(max-width:1023px){.sidebar-overlay[data-v-4a5a30fc]{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:299;background-color:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}}.overlay-enter-active[data-v-4a5a30fc],.overlay-leave-active[data-v-4a5a30fc]{transition:opacity .2s ease}.overlay-enter-from[data-v-4a5a30fc],.overlay-leave-to[data-v-4a5a30fc]{opacity:0}@media(max-width:1023px){.header__desktop-only[data-v-4a5a30fc]{display:none}}.header--student-shell[data-v-4a5a30fc]{gap:var(--space-6)}.header__logo[data-v-4a5a30fc]{min-width:0}.header__brand[data-v-4a5a30fc]{display:flex;flex-direction:column;min-width:0}@media(max-width:767px){.header__brand[data-v-4a5a30fc]{display:none}}.header__brand-label[data-v-4a5a30fc]{font-size:.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--student-text-muted)}.header__brand-title[data-v-4a5a30fc]{font-size:.95rem;font-weight:700;color:var(--student-text-primary);white-space:nowrap}.header__context[data-v-4a5a30fc]{min-width:0;flex:1;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:.85rem 1rem;border:1px solid var(--student-border-soft);border-radius:1rem;background:#ffffffb8}.header__context-copy[data-v-4a5a30fc]{min-width:0;display:grid;gap:.2rem}.header__context-label[data-v-4a5a30fc]{font-size:.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--student-text-muted)}.header__context-title[data-v-4a5a30fc]{font-size:1rem;font-weight:700;color:var(--student-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header__context-meta[data-v-4a5a30fc]{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;flex-wrap:wrap}.header__context-chip[data-v-4a5a30fc],.content__chip[data-v-4a5a30fc],.sidebar__panel-chip[data-v-4a5a30fc]{display:inline-flex;align-items:center;gap:.35rem;min-height:2rem;padding:.35rem .75rem;border:1px solid var(--student-border-soft);border-radius:999px;background:#ffffffbf;color:var(--student-text-secondary);font-size:.75rem;font-weight:600;line-height:1;white-space:nowrap}.header__context-chip--accent[data-v-4a5a30fc],.content__chip--accent[data-v-4a5a30fc],.sidebar__panel-chip--accent[data-v-4a5a30fc]{background:#275df114;border-color:#275df12e;color:var(--student-accent)}.content[data-v-4a5a30fc]{display:flex;flex-direction:column;min-height:calc(100svh - 64px);min-height:calc(100dvh - 64px)}.content__body[data-v-4a5a30fc]{flex:1 0 auto;min-height:0;padding:var(--space-4)}@media(min-width:768px){.content__body[data-v-4a5a30fc]{padding:var(--space-5)}}@media(max-width:1023px){.header__user-name[data-v-4a5a30fc]{display:none}}.content__shell[data-v-4a5a30fc]{width:min(100%,1340px);margin:0 auto;display:grid;gap:var(--space-4)}.content__meta-bar[data-v-4a5a30fc]{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding-inline:var(--space-2)}@media(max-width:767px){.content__meta-bar[data-v-4a5a30fc]{flex-direction:column;padding-inline:0}}.content__meta-copy[data-v-4a5a30fc]{min-width:0;display:grid;gap:.35rem}.content__meta-label[data-v-4a5a30fc]{font-size:.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--student-text-muted)}.content__breadcrumbs[data-v-4a5a30fc]{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;font-size:.875rem;color:var(--student-text-secondary)}.content__breadcrumbs a[data-v-4a5a30fc]{color:var(--student-accent);text-decoration:none;font-weight:600}.content__meta-chips[data-v-4a5a30fc]{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;flex-wrap:wrap}.content__surface[data-v-4a5a30fc]{position:relative;overflow:hidden;border:1px solid var(--student-border-soft);border-radius:1.75rem;background:linear-gradient(180deg,#ffffffeb,#fafbfddb);box-shadow:0 18px 44px #0f172a0d}.content__surface[data-v-4a5a30fc]:before{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,rgba(148,163,184,.25),transparent)}.content__stage[data-v-4a5a30fc]{position:relative;z-index:1}.sidebar__panel[data-v-4a5a30fc]{display:grid;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--student-border-soft);border-radius:1.25rem;background:linear-gradient(180deg,#ffffffe0,#f9fafcf5);box-shadow:0 10px 24px #0f172a0a}.sidebar__panel-top[data-v-4a5a30fc]{display:flex;align-items:center;gap:var(--space-3);min-width:0}.sidebar__panel-avatar[data-v-4a5a30fc]{box-shadow:0 6px 14px #0f172a14}.sidebar__panel-copy[data-v-4a5a30fc]{min-width:0;display:grid;gap:.25rem}.sidebar__panel-label[data-v-4a5a30fc]{font-size:.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--student-text-muted)}.sidebar__panel-name[data-v-4a5a30fc]{display:block;font-size:1rem;font-weight:700;color:var(--student-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar__panel-text[data-v-4a5a30fc]{margin:0;font-size:.8125rem;line-height:1.5;color:var(--student-text-secondary)}.sidebar__panel-meta[data-v-4a5a30fc]{display:flex;flex-wrap:wrap;gap:.5rem}.sidebar__mobile-utilities[data-v-4a5a30fc]{display:none}@media(max-width:1023px){.sidebar__mobile-utilities[data-v-4a5a30fc]{display:grid;gap:.75rem;margin-top:.5rem;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--student-border-soft)}}.sidebar__lang[data-v-4a5a30fc]{display:flex;justify-content:center;gap:.5rem}.sidebar__courses-group[data-v-4a5a30fc]{display:flex;flex-direction:column;gap:.25rem}.sidebar__courses-trigger[data-v-4a5a30fc]{display:flex;align-items:stretch;gap:.25rem}.sidebar__courses-trigger .sidebar__link[data-v-4a5a30fc]{flex:1;min-width:0}.sidebar__courses-toggle[data-v-4a5a30fc]{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;border:1px solid transparent;border-radius:.5rem;background:transparent;color:var(--color-text-secondary, var(--color-text));cursor:pointer;transition:all .2s ease}.sidebar__courses-toggle[data-v-4a5a30fc]:hover{background:var(--student-accent-soft);color:var(--color-primary)}.sidebar__courses-toggle[data-v-4a5a30fc]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.sidebar__courses-toggle.is-open svg[data-v-4a5a30fc]{transform:rotate(180deg)}.sidebar__courses-toggle svg[data-v-4a5a30fc]{width:1.1rem;height:1.1rem;transition:transform .2s ease}.sidebar__courses-submenu[data-v-4a5a30fc]{display:flex;flex-direction:column;gap:.25rem}.student-view-badge[data-v-4a5a30fc]{position:sticky;top:var(--space-4);z-index:30;margin:var(--space-4) var(--space-4) 0;padding:var(--space-3) var(--space-4);border:1px solid var(--student-border-soft);border-radius:1rem;background:color-mix(in srgb,var(--student-surface-2) 92%,white);display:flex;align-items:center;gap:var(--space-2);box-shadow:0 10px 24px #0f172a0d}@media(max-width:1023px){.student-view-badge[data-v-4a5a30fc]{top:var(--space-3);margin:var(--space-3) var(--space-3) 0;padding:var(--space-3);flex-wrap:wrap}}.student-view-badge__label[data-v-4a5a30fc]{font-size:.75rem;font-weight:700;color:var(--student-accent)}.student-view-badge__value[data-v-4a5a30fc]{flex:1;min-width:0;font-size:.75rem;color:var(--student-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-view-badge__actions[data-v-4a5a30fc]{display:flex;gap:var(--space-2)}@media(max-width:639px){.student-view-badge__actions[data-v-4a5a30fc]{width:100%;justify-content:flex-end}}.student-view-modal[data-v-4a5a30fc]{display:grid;gap:var(--space-4)}.student-view-modal__toggle[data-v-4a5a30fc]{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.student-view-modal__mode[data-v-4a5a30fc]{min-height:2.25rem;border:1px solid var(--student-border-soft);border-radius:.7rem;background:#fff;color:var(--student-text-secondary);font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .16s ease}.student-view-modal__mode[data-v-4a5a30fc]:hover{border-color:var(--student-border-strong)}.student-view-modal__mode.is-active[data-v-4a5a30fc]{border-color:var(--student-accent);color:var(--student-accent);background:var(--student-accent-soft)}.student-view-modal__field[data-v-4a5a30fc]{display:grid;gap:var(--space-2)}.student-view-modal__label[data-v-4a5a30fc]{font-size:.8125rem;font-weight:600;color:var(--student-text-secondary)}.student-view-modal__hint[data-v-4a5a30fc]{margin:0;font-size:.75rem;color:var(--student-text-muted)}.student-view-modal__error[data-v-4a5a30fc]{margin:0;font-size:.8125rem;color:var(--color-error, #dc2626)}.student-view-modal__active[data-v-4a5a30fc]{margin:0;font-size:.8125rem;padding:.5rem .625rem;border-radius:.625rem;background:var(--student-accent-soft);color:var(--student-accent);font-weight:600}.student-view-modal__actions[data-v-4a5a30fc]{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2)}.fade-enter-active[data-v-4a5a30fc],.fade-leave-active[data-v-4a5a30fc]{transition:opacity .2s ease}.fade-enter-from[data-v-4a5a30fc],.fade-leave-to[data-v-4a5a30fc]{opacity:0}.dropdown-enter-active[data-v-4a5a30fc],.dropdown-leave-active[data-v-4a5a30fc]{transition:opacity .15s ease,transform .15s ease}.dropdown-enter-from[data-v-4a5a30fc],.dropdown-leave-to[data-v-4a5a30fc]{opacity:0;transform:translateY(-.5rem)}.submenu-enter-active[data-v-4a5a30fc],.submenu-leave-active[data-v-4a5a30fc]{transition:opacity .16s ease,transform .16s ease;transform-origin:top}.submenu-enter-from[data-v-4a5a30fc],.submenu-leave-to[data-v-4a5a30fc]{opacity:0;transform:translateY(-.25rem)}@keyframes fadeIn-d7f0f294{0%{opacity:0}to{opacity:1}}@keyframes slideUp-d7f0f294{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin-d7f0f294{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-d7f0f294{0%,to{opacity:1}50%{opacity:.5}}.skip-link[data-v-d7f0f294]{position:absolute;top:-100%;left:50%;transform:translate(-50%);z-index:10001;padding:var(--space-3) var(--space-6);background:var(--color-warning);color:var(--color-gray-900);border-radius:var(--rounded-lg);font-weight:600;text-decoration:none;transition:top .2s ease}.skip-link[data-v-d7f0f294]:focus{top:var(--space-2);outline:2px solid var(--color-warning);outline-offset:2px}.header__menu-toggle[data-v-d7f0f294]{display:none;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;padding:0;background:transparent;border:none;border-radius:.5rem;color:var(--color-text);cursor:pointer;transition:background-color .2s ease}.header__menu-toggle[data-v-d7f0f294]:hover{background-color:var(--color-bg-secondary)}.header__menu-toggle svg[data-v-d7f0f294]{width:1.5rem;height:1.5rem}@media(max-width:1023px){.header__menu-toggle[data-v-d7f0f294]{display:flex}}.sidebar-overlay[data-v-d7f0f294]{display:none}@media(max-width:1023px){.sidebar-overlay[data-v-d7f0f294]{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:299;background-color:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}}.overlay-enter-active[data-v-d7f0f294],.overlay-leave-active[data-v-d7f0f294]{transition:opacity .2s ease}.overlay-enter-from[data-v-d7f0f294],.overlay-leave-to[data-v-d7f0f294]{opacity:0}.header__back-btn[data-v-d7f0f294]{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:.5rem;color:var(--color-gray-400);font-size:.875rem;transition:all .2s ease}.header__back-btn svg[data-v-d7f0f294]{width:1rem;height:1rem}.header__back-btn[data-v-d7f0f294]:hover{background:var(--color-gray-700);color:var(--color-white)}@media(max-width:1023px){.header__desktop-only[data-v-d7f0f294]{display:none}}@media(max-width:1023px){.header__logo-text[data-v-d7f0f294]{display:none}}@media(max-width:1023px){.header__user-name[data-v-d7f0f294]{display:none}}.sidebar__mobile-utilities[data-v-d7f0f294]{display:none}@media(max-width:1023px){.sidebar__mobile-utilities[data-v-d7f0f294]{display:grid;gap:.75rem;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-gray-800)}}.sidebar__link--utility[data-v-d7f0f294]{justify-content:flex-start}.sidebar__lang[data-v-d7f0f294]{display:flex;justify-content:center;gap:.5rem}.sidebar__lang-btn[data-v-d7f0f294]{border-color:var(--color-gray-700);color:var(--color-gray-300)}.sidebar__lang-btn[data-v-d7f0f294]:hover{background-color:var(--color-primary-500);border-color:var(--color-primary-400);color:var(--color-white)}.sidebar__lang-btn.is-active[data-v-d7f0f294]{background:color-mix(in srgb,var(--color-primary-600) 20%,transparent);border-color:var(--color-primary-500);color:var(--color-primary-300);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary-500) 15%,transparent)}.sidebar__link-label[data-v-d7f0f294]{flex:1}.sidebar__pill[data-v-d7f0f294]{flex:0;min-width:1.25rem;height:1.25rem;padding:0 .375rem;display:inline-flex;align-items:center;justify-content:center;border-radius:9999px;font-size:.7rem;font-weight:700;line-height:1;background:color-mix(in srgb,var(--color-error-500) 78%,transparent);color:var(--color-white)}.header__badge[data-v-d7f0f294]{padding:.125rem .5rem;font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:var(--color-warning);color:var(--color-gray-900);border-radius:9999px}.header__user-avatar--admin[data-v-d7f0f294]{background:linear-gradient(135deg,var(--color-warning),#f59e0b)}.fade-enter-active[data-v-d7f0f294],.fade-leave-active[data-v-d7f0f294]{transition:opacity .2s ease}.fade-enter-from[data-v-d7f0f294],.fade-leave-to[data-v-d7f0f294]{opacity:0}.dropdown-enter-active[data-v-d7f0f294],.dropdown-leave-active[data-v-d7f0f294]{transition:opacity .15s ease,transform .15s ease}.dropdown-enter-from[data-v-d7f0f294],.dropdown-leave-to[data-v-d7f0f294]{opacity:0;transform:translateY(-.5rem)}@keyframes fadeIn-7618bee7{0%{opacity:0}to{opacity:1}}@keyframes slideUp-7618bee7{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin-7618bee7{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-7618bee7{0%,to{opacity:1}50%{opacity:.5}}.session-modal-backdrop[data-v-7618bee7]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.session-modal[data-v-7618bee7]{background:var(--student-surface-overlay, rgba(252, 254, 255, .97));border:1px solid var(--student-border-soft, rgba(148, 163, 184, .28));border-radius:var(--rounded-2xl);padding:var(--space-8);max-width:400px;width:calc(100% - var(--space-8));text-align:center;box-shadow:var(--student-shadow-elevated, 0 25px 50px rgba(15, 23, 42, .18));backdrop-filter:blur(20px) saturate(150%);-webkit-backdrop-filter:blur(20px) saturate(150%)}.session-modal__icon[data-v-7618bee7]{font-size:3.5rem;margin-bottom:var(--space-4);line-height:1}.session-modal__title[data-v-7618bee7]{font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--student-text-primary, var(--color-text-primary));margin:0 0 var(--space-2) 0}.session-modal__description[data-v-7618bee7]{color:var(--student-text-secondary, var(--color-text-secondary));margin:0 0 var(--space-6) 0;line-height:1.5}.modal-enter-active[data-v-7618bee7],.modal-leave-active[data-v-7618bee7]{transition:opacity .2s ease}.modal-enter-active .session-modal[data-v-7618bee7],.modal-leave-active .session-modal[data-v-7618bee7]{transition:transform .2s ease,opacity .2s ease}.modal-enter-from[data-v-7618bee7],.modal-leave-to[data-v-7618bee7]{opacity:0}.modal-enter-from .session-modal[data-v-7618bee7],.modal-leave-to .session-modal[data-v-7618bee7]{transform:scale(.95);opacity:0}@keyframes fadeIn-04b16efd{0%{opacity:0}to{opacity:1}}@keyframes slideUp-04b16efd{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin-04b16efd{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-04b16efd{0%,to{opacity:1}50%{opacity:.5}}.cookie-consent[data-v-04b16efd]{position:fixed;left:50%;bottom:var(--space-4);transform:translate(-50%);width:min(960px,100% - var(--space-6) * 2);z-index:9500;border:1px solid var(--color-border, #e5e7eb);border-radius:var(--rounded-xl);background:#ffffffed;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 16px 32px #0f172a26}.cookie-consent__inner[data-v-04b16efd]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-5)}.cookie-consent__text[data-v-04b16efd]{margin:0;color:var(--color-text-secondary, #4b5563);font-size:var(--text-sm);line-height:1.55}.cookie-consent__link[data-v-04b16efd]{color:var(--color-primary, #2563eb);font-weight:var(--font-medium);text-decoration:none}.cookie-consent__link[data-v-04b16efd]:hover,.cookie-consent__link[data-v-04b16efd]:focus-visible{text-decoration:underline}.cookie-consent__accept[data-v-04b16efd]{flex-shrink:0}.cookie-consent-fade-enter-active[data-v-04b16efd],.cookie-consent-fade-leave-active[data-v-04b16efd]{transition:opacity .2s ease,transform .2s ease}.cookie-consent-fade-enter-from[data-v-04b16efd],.cookie-consent-fade-leave-to[data-v-04b16efd]{opacity:0;transform:translate(-50%) translateY(10px)}@media(max-width:768px){.cookie-consent[data-v-04b16efd]{width:calc(100% - var(--space-4) * 2);bottom:var(--space-3)}.cookie-consent__inner[data-v-04b16efd]{flex-direction:column;align-items:stretch;padding:var(--space-4)}.cookie-consent__accept[data-v-04b16efd]{width:100%;justify-content:center}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))){.student-layout,.content{--student-surface-1: #ffffff;--student-surface-2: #f8fafc;--student-surface-overlay: #ffffff}}:root{--color-primary: #2563eb;--color-primary-50: #eff6ff;--color-primary-100: #dbeafe;--color-primary-200: #bfdbfe;--color-primary-300: #93c5fd;--color-primary-400: #60a5fa;--color-primary-500: #3b82f6;--color-primary-600: #2563eb;--color-primary-700: #1d4ed8;--color-primary-800: #1e40af;--color-primary-900: #1e3a8a;--color-secondary: #14b8a6;--color-secondary-100: #ccfbf1;--color-secondary-400: #2dd4bf;--color-success: #22c55e;--color-success-100: #dcfce7;--color-success-200: #bbf7d0;--color-success-400: #4ade80;--color-success-500: #22c55e;--color-warning: #f59e0b;--color-warning-100: #fef3c7;--color-warning-200: #fde68a;--color-warning-400: #fbbf24;--color-warning-500: #f59e0b;--color-error: #ef4444;--color-error-50: #fef2f2;--color-error-100: #fee2e2;--color-error-400: #f87171;--color-error-500: #ef4444;--color-error-600: #dc2626;--color-danger-400: #f87171;--color-danger-500: #ef4444;--color-info: #3b82f6;--color-info-100: #dbeafe;--color-info-400: #60a5fa;--color-white: #ffffff;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #111827;--color-gray-950: #030712;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--color-surface-1: #ffffff;--color-surface-2: #f3f4f6;--color-surface-3: #e5e7eb;--color-border: #e5e7eb;--color-text: #111827;--color-text-primary: #111827;--color-text-secondary: #4b5563;--color-text-tertiary: #6b7280;--color-bg-secondary: #f9fafb;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--rounded-none: 0;--rounded-sm: .125rem;--rounded: .25rem;--rounded-md: .375rem;--rounded-lg: .5rem;--rounded-xl: .75rem;--rounded-2xl: 1rem;--rounded-3xl: 1.5rem;--rounded-full: 9999px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:1rem;line-height:1.5;color:#111827;background-color:#f9fafb}h1,h2,h3,h4,h5,h6{text-wrap:balance;color:#111827}h1{font-size:2.25rem;font-weight:700;line-height:1.25;letter-spacing:-.025em}h2{font-size:1.875rem;font-weight:700;line-height:1.25;letter-spacing:-.025em}h3{font-size:1.5rem;font-weight:600;line-height:1.375}h4{font-size:1.25rem;font-weight:600;line-height:1.375}p{text-wrap:pretty;margin-bottom:1rem}p:last-child{margin-bottom:0}a{color:#2563eb;text-decoration:none;transition:color .15s ease}a:hover{color:#1d4ed8;text-decoration:underline}a:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}strong,b{font-weight:600}small{font-size:.875rem}code{font-family:JetBrains Mono,Fira Code,Consolas,Monaco,monospace;font-size:.875rem;padding:.125em .375em;background:#f3f4f6;border-radius:.25rem;color:#dc2626}pre{font-family:JetBrains Mono,Fira Code,Consolas,Monaco,monospace;font-size:.875rem;padding:1rem;background:#1e1e1e;color:#d4d4d4;border-radius:.5rem;overflow-x:auto}pre code{padding:0;background:none;color:inherit}ul,ol{padding-left:1.5rem;margin-bottom:1rem}ul li,ol li{margin-bottom:.25rem}ul:last-child,ol:last-child{margin-bottom:0}img,picture,video,canvas,svg{display:block;max-width:100%}img{height:auto}input,button,textarea,select{font:inherit}button{cursor:pointer;background:none;border:none}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{resize:vertical}fieldset{border:none;padding:0}table{border-collapse:collapse;width:100%}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}[disabled]{cursor:not-allowed}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.skip-to-content{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-to-content:focus{position:fixed;top:1rem;left:1rem;z-index:700;width:auto;height:auto;padding:.75rem 1rem;margin:0;overflow:visible;clip:auto;white-space:normal;background:#3b82f6;color:#fff;border-radius:.5rem;font-weight:500}::selection{background:#3b82f633;color:#111827}body{scrollbar-width:thin;scrollbar-color:#d1d5db transparent}body::-webkit-scrollbar{width:6px;height:6px}body::-webkit-scrollbar-track{background:transparent}body::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}body::-webkit-scrollbar-thumb:hover{background:#9ca3af}.hidden{display:none!important}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.flex-1{flex:1 1 0%}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.m-0{margin:0}.m-auto{margin:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-auto{margin-left:auto}.mr-auto{margin-right:auto}.p-0{padding:0}.p-2{padding:.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.w-full{width:100%}.h-full{height:100%}.min-h-screen{min-height:100vh}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-primary{color:#111827}.text-secondary{color:#4b5563}.text-tertiary{color:#6b7280}.text-success{color:#16a34a}.text-warning{color:#d97706}.text-error{color:#dc2626}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.bg-primary{background-color:#fff}.bg-secondary{background-color:#f9fafb}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-full{border-radius:9999px}.border{border:1px solid #e5e7eb}.border-0{border:none}.shadow-sm{box-shadow:0 1px 2px #0000000d}.shadow{box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}.shadow-md{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.shadow-lg{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.visible{visibility:visible}.invisible{visibility:hidden}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.transition{transition:all .2s ease}.transition-fast{transition:all .15s ease}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:.875rem;font-weight:500;line-height:1.375;border-radius:.5rem;border:1px solid transparent;cursor:pointer;transition:all .15s ease}.btn:disabled{opacity:.6;cursor:not-allowed}.btn--sm{padding:.25rem .75rem;font-size:.75rem}.btn--primary{background:#2563eb;color:#fff;box-shadow:0 1px 2px #1e3a8a33}.btn--primary:hover:not(:disabled){color:#fff;background:#1d4ed8;box-shadow:0 4px 8px #1e3a8a40}.btn--primary:active:not(:disabled){background:#1e40af}.btn--secondary{background:transparent;color:#111827;border-color:#e5e7eb}.btn--secondary:hover:not(:disabled){background:#f9fafb;border-color:#d1d5db}.btn--ghost{background:transparent;color:#4b5563}.btn--ghost:hover:not(:disabled){background:#f3f4f6;color:#111827}.btn--success{background:#22c55e;color:#fff}.btn--success:hover:not(:disabled){background:#16a34a}.btn--success:disabled,.btn--success:hover:disabled{color:#111827}.btn--danger{background:#ef4444;color:#fff}.btn--danger:hover:not(:disabled){background:#dc2626}.btn--link{background:transparent;color:#2563eb;padding:0}.btn--link:hover:not(:disabled){color:#1d4ed8;text-decoration:underline}.btn--loading{position:relative;color:transparent!important;pointer-events:none}.btn--loading:after{content:"";position:absolute;width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .6s linear infinite}.btn--loading.btn--primary:after,.btn--loading.btn--success:after,.btn--loading.btn--danger:after{border-color:#fff9;border-right-color:transparent}.btn--full,.btn--block{width:100%}.btn--icon{padding:.5rem}.btn--icon svg{width:20px;height:20px}.btn-group{display:inline-flex}.btn-group .btn{border-radius:0}.btn-group .btn:first-child{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.btn-group .btn:last-child{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.btn-group .btn:not(:first-child){margin-left:-1px}.form-group{margin-bottom:1rem}.form-group:last-child{margin-bottom:0}.form-label{display:block;margin-bottom:.25rem;font-size:.875rem;font-weight:500;color:#111827}.form-label .required{color:#ef4444;margin-left:.25rem}.form-input{width:100%;padding:.5rem .75rem;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1.5;color:#111827;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;transition:border-color .15s ease,box-shadow .15s ease}.form-input::placeholder{color:#6b7280}.form-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-input:disabled{background:#f9fafb;cursor:not-allowed}.form-input{height:40px}.form-input--sm{height:32px;font-size:.75rem}.form-input--lg{height:48px;font-size:1rem}.form-input--error{border-color:#ef4444}.form-input--error:focus{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.form-input--success{border-color:#22c55e}.form-input--success:focus{border-color:#22c55e;box-shadow:0 0 0 3px #22c55e1a}.form-textarea{width:100%;padding:.5rem .75rem;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1.5;color:#111827;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;transition:border-color .15s ease,box-shadow .15s ease}.form-textarea::placeholder{color:#6b7280}.form-textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-textarea:disabled{background:#f9fafb;cursor:not-allowed}.form-textarea{min-height:100px;resize:vertical}.form-select{width:100%;padding:.5rem .75rem;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1.5;color:#111827;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;transition:border-color .15s ease,box-shadow .15s ease}.form-select::placeholder{color:#6b7280}.form-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-select:disabled{background:#f9fafb;cursor:not-allowed}.form-select{height:40px;line-height:1.2;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .75rem center;background-repeat:no-repeat;background-size:16px 12px;padding-right:2.5rem;padding-top:0;padding-bottom:0;cursor:pointer}.form-check{display:flex;align-items:flex-start;gap:.5rem}.form-check__input{flex-shrink:0;width:18px;height:18px;margin-top:2px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #d1d5db;border-radius:.25rem;background:#fff;cursor:pointer;transition:all .15s ease}.form-check__input:checked{background:#3b82f6;border-color:#3b82f6;background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}.form-check__input:focus{outline:none;box-shadow:0 0 0 3px #3b82f633}.form-check__input[type=radio]{border-radius:9999px}.form-check__input[type=radio]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}.form-check__label{font-size:.875rem;color:#111827;line-height:1.375;cursor:pointer}.form-help{margin-top:.25rem;font-size:.75rem;color:#6b7280}.form-error{margin-top:.25rem;font-size:.75rem;color:#dc2626}.form-input-group{position:relative}.form-input-group .form-input--icon-left{padding-left:2.5rem}.form-input-group .form-input--icon-right{padding-right:2.5rem}.form-input-group__icon{position:absolute;top:50%;transform:translateY(-50%);color:#6b7280}.form-input-group__icon--left{left:.75rem}.form-input-group__icon--right{right:.75rem}.form-input-group__icon svg{width:18px;height:18px}.form-input-addon{display:flex}.form-input-addon .form-input{border-top-right-radius:0;border-bottom-right-radius:0}.form-input-addon .form-input:focus{z-index:1}.form-input-addon .btn{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}.form-input.is-error,.form-textarea.is-error{border-color:#ef4444}.form-input.is-error:focus,.form-textarea.is-error:focus{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.form-hint{margin-top:.25rem;font-size:.75rem;color:#6b7280}.form-row{display:grid;gap:1rem}@media(min-width:640px){.form-row{grid-template-columns:repeat(2,1fr)}}.form-alert{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;border-radius:.5rem;font-size:.875rem;line-height:1.625}.form-alert--success{background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}.form-alert--error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.form-alert--warning{background:#fffbeb;color:#b45309;border:1px solid #fde68a}.form-alert--info{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.form-error-banner{padding:.75rem 1rem;background:#fef2f2;color:#b91c1c;border:1px solid #fecaca;border-radius:.5rem;font-size:.875rem;line-height:1.625;margin-top:.5rem}.card{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;box-shadow:0 1px 2px #0000000d}.card--interactive{transition:box-shadow .2s ease,border-color .2s ease,transform .2s ease}.card--interactive:hover{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;border-color:#d1d5db;transform:translateY(-2px)}.card--interactive{cursor:pointer}.card--flat{box-shadow:none;border-color:transparent;background:#f9fafb}.card__header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid #e5e7eb}.card__header--no-border{border-bottom:none}.card__title{font-size:1.25rem;font-weight:600;line-height:1.375;margin:0}.card__subtitle{font-size:.875rem;color:#4b5563;margin-top:.25rem}.card__body{padding:1.25rem}.card__footer{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-top:1px solid #e5e7eb;background:#f9fafb;border-radius:0 0 .75rem .75rem}.card--lesson{position:relative;overflow:hidden}.card--lesson.locked{opacity:.7}.card--lesson.locked .card__body{filter:grayscale(.5)}.card--exercise{background:#fff}.card--exercise.completed{border-left:4px solid #22c55e}.card--exercise.in-progress{border-left:4px solid #f59e0b}.card--stats .card__body{text-align:center}.card--stats .stats-value{font-size:1.875rem;font-weight:700;line-height:1.25;letter-spacing:-.025em;color:#2563eb}.card--stats .stats-label{font-size:.875rem;color:#4b5563;margin-top:.25rem}.card-grid{display:grid;gap:1rem}@media(min-width:640px){.card-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.card-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:1024px){.card-grid--2-col{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.card-grid--4-col{grid-template-columns:repeat(4,1fr)}}.badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500;line-height:1;border-radius:9999px;text-transform:capitalize;text-align:center;width:fit-content}.badge--primary{background:#dbeafe;color:#1d4ed8}.badge--secondary{background:#f3f4f6;color:#374151}.badge--success{background:#dcfce7;color:#15803d}.badge--warning{background:#fef3c7;color:#b45309}.badge--error{background:#fee2e2;color:#b91c1c}.badge--info{background:#ccfbf1;color:#0f766e}.badge--beginner{background:#dcfce7;color:#15803d}.badge--intermediate{background:#fef3c7;color:#b45309}.badge--advanced{background:#fee2e2;color:#b91c1c}.badge--easy{background:#dcfce7;color:#15803d}.badge--medium{background:#fef3c7;color:#b45309}.badge--hard{background:#fee2e2;color:#b91c1c}.badge--sm{padding:2px .25rem;font-size:10px}.badge--lg{padding:.5rem .75rem;font-size:.875rem}.badge--dot:before{content:"";width:6px;height:6px;border-radius:9999px;background:currentColor}.badge--gray{background:#f3f4f6;color:#4b5563}.badge--danger{background:#fee2e2;color:#b91c1c}.badge--outline{background:transparent;color:#4b5563;border:1px solid #d1d5db}.badge--outline.badge--success{background:transparent;color:#15803d;border-color:#86efac}.badge--outline.badge--warning{background:transparent;color:#b45309;border-color:#fcd34d}.badge--outline.badge--error,.badge--outline.badge--danger{background:transparent;color:#b91c1c;border-color:#fca5a5}.badge--outline.badge--primary{background:transparent;color:#1d4ed8;border-color:#93c5fd}.status-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.25rem .75rem;font-size:.875rem;font-weight:500;border-radius:9999px}.status-badge__dot{width:8px;height:8px;border-radius:9999px}.status-badge--locked{background:#f3f4f6;color:#4b5563}.status-badge--locked .status-badge__dot{background:#9ca3af}.status-badge--unlocked{background:#eff6ff;color:#1d4ed8}.status-badge--unlocked .status-badge__dot{background:#3b82f6}.status-badge--in-progress{background:#fffbeb;color:#b45309}.status-badge--in-progress .status-badge__dot{background:#f59e0b}.status-badge--completed{background:#f0fdf4;color:#15803d}.status-badge--completed .status-badge__dot{background:#22c55e}.progress-badge{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;color:#4b5563}.progress-badge__bar{width:60px;height:4px;background:#e5e7eb;border-radius:9999px;overflow:hidden}.progress-badge__fill{height:100%;background:#3b82f6;border-radius:9999px;transition:width .3s ease}@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))){.admin-layout,.content--admin{--admin-surface-1: #1b2438;--admin-surface-2: #212d45}}.admin-glass{background:var(--admin-surface-1);border:1px solid var(--admin-border-soft);box-shadow:var(--admin-shadow);backdrop-filter:blur(var(--admin-glass-blur)) saturate(130%);-webkit-backdrop-filter:blur(var(--admin-glass-blur)) saturate(130%)}.admin-glass--soft{background:#18213494;border:1px solid var(--admin-border-soft);box-shadow:var(--admin-shadow);backdrop-filter:blur(10px) saturate(130%);-webkit-backdrop-filter:blur(10px) saturate(130%)}.admin-glass--strong{background:#1f2b42d6;border:1px solid var(--admin-border-soft);box-shadow:var(--admin-shadow);backdrop-filter:blur(18px) saturate(130%);-webkit-backdrop-filter:blur(18px) saturate(130%)}.header{position:fixed;top:0;left:0;right:0;z-index:200;height:64px;background:var(--student-surface-1);border:1px solid var(--student-border-soft);box-shadow:var(--student-shadow);backdrop-filter:blur(16px) saturate(120%);-webkit-backdrop-filter:blur(16px) saturate(120%);border-bottom-color:var(--student-border-soft);display:flex;align-items:center;justify-content:space-between;padding:0 1.25rem}@media(min-width:768px){.header{padding:0 1.5rem}}.header--admin{background:#131c2fad;border:1px solid var(--admin-border-soft);box-shadow:var(--admin-shadow);backdrop-filter:blur(12px) saturate(130%);-webkit-backdrop-filter:blur(12px) saturate(130%);border-bottom-color:var(--admin-border-soft);--color-text: var(--admin-text-primary);--color-bg-secondary: var(--admin-surface-solid)}.header--admin .header__logo-text{color:var(--admin-text-primary)}.header--admin .header__lang-btn{border-color:var(--admin-border-soft);color:var(--admin-text-secondary);text-transform:uppercase;font-size:.75rem;font-weight:500;background:#1018286b}.header--admin .header__lang-btn:hover{background-color:var(--admin-accent-soft);border-color:var(--admin-accent);color:var(--admin-text-primary)}.header--admin .header__lang-btn.is-active{background:#63a4ff38;border-color:var(--admin-accent);color:#c8e0ff}.header--admin .header__back-btn{color:var(--admin-text-secondary)}.header--admin .header__back-btn:hover{background:#1f2b42b3;color:var(--admin-text-primary)}.header--admin .header__user-btn:hover{background:#141f32b3}.header--admin .header__user-name{color:var(--admin-text-primary)}.header--admin .header__user-chevron{color:var(--admin-text-muted)}.header--admin .header__dropdown{background:#172134fc;border:1px solid var(--admin-border-soft);box-shadow:var(--admin-shadow);backdrop-filter:blur(16px) saturate(130%);-webkit-backdrop-filter:blur(16px) saturate(130%);border-color:var(--admin-border-strong);box-shadow:0 20px 42px #070c1699}.header--admin .header__dropdown-item{color:var(--admin-text-primary)}.header--admin .header__dropdown-item svg{color:var(--admin-text-secondary)}.header--admin .header__dropdown-item:hover{background:#1e2b42b8}.header--admin .header__dropdown-item--danger{color:#f87171}.header--admin .header__dropdown-item--danger svg{color:#f87171}.header--admin .header__dropdown-item--danger:hover{background:#ef444429;color:#fca5a5}.header--admin .header__dropdown-divider{background:var(--admin-border-soft)}.header__left{display:flex;align-items:center;gap:1rem}.header__right{display:flex;align-items:center;gap:.75rem}.header__logo-icon{font-size:1.25rem;color:#fff;background:#2563eb;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:.375rem;line-height:1}.header__logo-img{height:32px;object-fit:contain}.header__logo{display:flex;align-items:center;gap:.5rem;text-decoration:none;font-weight:700;font-size:1.25rem;color:#111827}.header__logo:hover{text-decoration:none}.header__logo:hover .header__logo-icon{background:#1d4ed8}.header__logo-text{color:#2563eb;font-weight:700}.header__badge{padding:2px .5rem;font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;background:#fef3c7;color:#92400e;border-radius:9999px}.header__back-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:.5rem;font-size:.875rem;font-weight:500;color:#9ca3af;text-decoration:none;transition:all .15s ease}.header__back-btn svg{width:16px;height:16px;flex-shrink:0}.header__back-btn:hover{background:#1f2937;color:#fff;text-decoration:none}.header__lang{display:flex;align-items:center;gap:.25rem}.header__lang-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:28px;padding:0;background:transparent;border:1px solid var(--student-border-soft);border-radius:.375rem;font-size:.75rem;cursor:pointer;transition:all .15s ease;text-transform:uppercase;font-weight:500;color:var(--student-text-secondary)}.header__lang-btn:hover{border-color:var(--student-border-strong);background:var(--student-accent-soft);color:var(--student-accent)}.header__lang-btn.is-active{background:var(--student-accent-soft);border-color:#2563eb59;color:var(--student-accent)}.header__user{position:relative}.header__user-btn{display:flex;align-items:center;gap:.5rem;padding:.25rem .5rem;background:transparent;border:1px solid transparent;border-radius:.5rem;cursor:pointer;transition:all .15s ease}.header__user-btn:focus-visible{outline:none;border-color:var(--student-accent);box-shadow:0 0 0 3px #275df124,0 6px 18px #275df114}.header__user-btn:hover{background:var(--student-accent-soft);border-color:var(--student-border-soft)}.header__user-avatar{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#2563eb;color:#fff;font-size:.75rem;font-weight:700;border-radius:9999px;flex-shrink:0;letter-spacing:.02em;overflow:hidden}.header__user-avatar img{width:100%;height:100%;object-fit:cover;border-radius:9999px}.header__user-name{font-size:.875rem;font-weight:500;color:#111827;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:639px){.header__user-name{display:none}}.header__user-chevron{width:16px;height:16px;color:#6b7280;flex-shrink:0}.header__dropdown{position:absolute;top:calc(100% + .5rem);right:0;min-width:200px;background:var(--student-surface-overlay);border:1px solid var(--student-border-soft);box-shadow:var(--student-shadow-elevated);backdrop-filter:blur(12px) saturate(120%);-webkit-backdrop-filter:blur(12px) saturate(120%);border-radius:.75rem;z-index:100;padding:.5rem 0;overflow:hidden}.header__dropdown-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.5rem 1rem;background:transparent;border:none;font-size:.875rem;font-weight:400;color:var(--student-text-primary);text-decoration:none;cursor:pointer;text-align:left;transition:background .15s ease,color .15s ease}.header__dropdown-item svg{width:16px;height:16px;color:var(--student-text-muted);flex-shrink:0;transition:color .15s ease}.header__dropdown-item:hover{background:var(--student-accent-soft);color:var(--student-accent);text-decoration:none}.header__dropdown-item:hover svg{color:var(--student-accent)}.header__dropdown-item--danger{color:#dc2626}.header__dropdown-item--danger svg{color:#f87171}.header__dropdown-item--danger:hover{background:#fef2f2;color:#b91c1c}.header__dropdown-item--danger:hover svg{color:#ef4444}.header--admin .header__user-btn,.header--admin .header__dropdown-item{border:none;box-shadow:none;transform:none}.header__dropdown-divider{height:1px;background:var(--student-border-soft);margin:.5rem 0}.sidebar{position:fixed;top:64px;left:0;bottom:0;width:260px;background:var(--student-surface-1);border:1px solid var(--student-border-soft);box-shadow:var(--student-shadow);backdrop-filter:blur(12px) saturate(120%);-webkit-backdrop-filter:blur(12px) saturate(120%);border-right-color:var(--student-border-soft);z-index:299;overflow-y:auto;display:flex;flex-direction:column;scrollbar-width:thin;scrollbar-color:#d1d5db transparent}.sidebar::-webkit-scrollbar{width:6px;height:6px}.sidebar::-webkit-scrollbar-track{background:transparent}.sidebar::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.sidebar::-webkit-scrollbar-thumb:hover{background:#9ca3af}.sidebar__section.first{padding-top:0!important;border-top:none!important}@media(max-width:1023px){.sidebar{transform:translate(-100%);transition:transform .2s ease;z-index:300;box-shadow:none;background:#fcfefffa;backdrop-filter:none;-webkit-backdrop-filter:none}.sidebar.is-open{transform:translate(0);box-shadow:0 18px 40px #0f172a1f}}.sidebar__link--course{margin-left:1rem}.sidebar--admin{background:#11192acc;border:1px solid var(--admin-border-soft);box-shadow:var(--admin-shadow);backdrop-filter:blur(14px) saturate(130%);-webkit-backdrop-filter:blur(14px) saturate(130%);border-right-color:var(--admin-border-soft)}.sidebar--admin .sidebar__section-title{color:var(--admin-text-muted)}.sidebar--admin .sidebar__link{color:var(--admin-text-secondary)}.sidebar--admin .sidebar__link svg{color:var(--admin-text-muted)}.sidebar--admin .sidebar__link:hover{background:#1f2b42b3;color:var(--admin-text-primary)}.sidebar--admin .sidebar__link:hover svg{color:#c8d5eb}.sidebar--admin .sidebar__link.is-active{background:linear-gradient(130deg,#4b84decc,#2d5ba7d9);color:#f8fbff;border:1px solid rgba(143,196,255,.3)}.sidebar--admin .sidebar__link.is-active svg{color:#f8fbff}.sidebar__nav{padding:.75rem;display:flex;flex-direction:column;gap:.25rem;flex:1}.sidebar__section{margin-top:1.25rem}.sidebar__section:not(:first-child){padding-top:.75rem;border-top:1px solid var(--student-border-soft)}.sidebar--admin .sidebar__section:not(:first-child){border-top-color:var(--admin-border-soft)}.sidebar__section-title{display:block;padding:0 .75rem;margin-bottom:.5rem;font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.07em}.sidebar__link{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;font-size:.875rem;font-weight:500;color:#4b5563;border-radius:.5rem;text-decoration:none;transition:all .15s ease;border:1px solid transparent;transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease,border-color .15s ease,color .15s ease}.sidebar__link:hover{transform:translateY(-1px)}.sidebar__link:focus-visible{outline:none;border-color:var(--student-accent);box-shadow:0 0 0 3px #275df124,0 6px 18px #275df114}.sidebar__link svg{width:18px;height:18px;flex-shrink:0;color:#6b7280;transition:color .15s ease}.sidebar__link span{flex:1}.sidebar__link:hover{background:var(--student-accent-soft);color:#1d4ed8;text-decoration:none;box-shadow:0 10px 22px #0f172a0d}.sidebar__link:hover svg{color:#3b82f6}.sidebar__link.is-active{background:linear-gradient(135deg,#275df11a,#fffffffa);border-color:#275df138;color:#1d4ed8;font-weight:600;box-shadow:0 10px 24px #0f172a0d}.sidebar__link.is-active svg{color:#2563eb}.sidebar--admin .sidebar__link{border:none;box-shadow:none;transform:none}.sidebar__footer{padding:1rem .75rem;border-top:1px solid var(--student-border-soft);margin-top:auto}.sidebar__admin-link{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;font-size:.875rem;font-weight:500;color:#b45309;background:#fffbeb;border:1px solid #fde68a;border-radius:.5rem;text-decoration:none;transition:all .15s ease}.sidebar__admin-link svg{width:18px;height:18px;flex-shrink:0}.sidebar__admin-link:hover{background:#fef3c7;border-color:#fcd34d;color:#92400e;text-decoration:none}.sidebar-footer{position:sticky;bottom:0;padding:1rem;background:var(--student-surface-2);border-top:1px solid var(--student-border-soft)}.app-sidebar--admin .sidebar-footer{background:var(--admin-surface-solid);border-color:var(--admin-border-soft)}.student-layout,.admin-layout{min-height:100vh}.student-layout{--student-bg: #f4f6fa;--student-bg-alt: #fbfcfe;--student-surface-1: rgb(255 255 255 / .92);--student-surface-2: rgb(248 250 252 / .96);--student-surface-overlay: rgb(255 255 255 / .98);--student-border-soft: rgb(148 163 184 / .18);--student-border-strong: rgb(100 116 139 / .28);--student-text-primary: #162033;--student-text-secondary: #526074;--student-text-muted: #708096;--student-accent: #275df1;--student-accent-soft: rgb(39 93 241 / .08);--student-shadow: 0 8px 24px rgb(15 23 42 / .04), 0 1px 3px rgb(15 23 42 / .04);--student-shadow-elevated: 0 14px 34px rgb(15 23 42 / .08), 0 2px 6px rgb(15 23 42 / .05);--student-glass-blur: 8px;background:radial-gradient(circle at 10% 0%,rgba(39,93,241,.05),transparent 38%),radial-gradient(circle at 90% 4%,rgba(148,163,184,.05),transparent 34%),linear-gradient(180deg,#f5f7fb,#fbfcfe 48%,#f6f8fb);background-attachment:fixed;color:var(--student-text-primary)}.student-layout ::selection{background:#60a5fa42;color:#111827}.student-layout ::-moz-selection{background:#60a5fa42;color:#111827}.admin-layout{--admin-bg: #0f1625;--admin-bg-alt: #131c2f;--admin-surface-1: rgb(24 33 52 / .72);--admin-surface-2: rgb(31 43 66 / .76);--admin-surface-hover: rgb(37 52 79 / .7);--admin-surface-solid: #1b2438;--admin-border-soft: rgb(148 163 184 / .2);--admin-border-strong: rgb(148 163 184 / .32);--admin-text-primary: #e6edf8;--admin-text-secondary: #aab6cb;--admin-text-muted: #8594ac;--admin-accent: #63a4ff;--admin-accent-soft: rgb(99 164 255 / .2);--admin-shadow: 0 16px 36px rgb(8 13 25 / .38), inset 0 1px 0 rgb(255 255 255 / .06);--admin-glass-blur: 14px;background:radial-gradient(circle at 10% 5%,rgba(96,165,250,.15),transparent 46%),radial-gradient(circle at 88% 8%,rgba(56,189,248,.08),transparent 38%),linear-gradient(160deg,var(--admin-bg),var(--admin-bg-alt));color:var(--admin-text-primary)}.admin-layout ::selection{background:#60a5fa73;color:#f9fafb}.admin-layout ::-moz-selection{background:#60a5fa73;color:#f9fafb}body.admin-theme{--admin-bg: #0f1625;--admin-bg-alt: #131c2f;--admin-surface-1: rgb(24 33 52 / .72);--admin-surface-2: rgb(31 43 66 / .76);--admin-surface-hover: rgb(37 52 79 / .7);--admin-surface-solid: #1b2438;--admin-border-soft: rgb(148 163 184 / .2);--admin-border-strong: rgb(148 163 184 / .32);--admin-text-primary: #e6edf8;--admin-text-secondary: #aab6cb;--admin-text-muted: #8594ac;--admin-accent: #63a4ff;--admin-accent-soft: rgb(99 164 255 / .2);--admin-shadow: 0 16px 36px rgb(8 13 25 / .38), inset 0 1px 0 rgb(255 255 255 / .06);--admin-glass-blur: 14px;background:radial-gradient(circle at 10% 5%,rgba(96,165,250,.15),transparent 46%),radial-gradient(circle at 88% 8%,rgba(56,189,248,.08),transparent 38%),linear-gradient(160deg,#0f1625,#131c2f);color:var(--admin-text-primary)}body.student-theme{--student-bg: #f4f6fa;--student-bg-alt: #fbfcfe;--student-surface-1: rgb(255 255 255 / .92);--student-surface-2: rgb(248 250 252 / .96);--student-surface-overlay: rgb(255 255 255 / .98);--student-border-soft: rgb(148 163 184 / .18);--student-border-strong: rgb(100 116 139 / .28);--student-text-primary: #162033;--student-text-secondary: #526074;--student-text-muted: #708096;--student-accent: #275df1;--student-accent-soft: rgb(39 93 241 / .08);--student-shadow: 0 8px 24px rgb(15 23 42 / .04), 0 1px 3px rgb(15 23 42 / .04);--student-shadow-elevated: 0 14px 34px rgb(15 23 42 / .08), 0 2px 6px rgb(15 23 42 / .05);--student-glass-blur: 8px;background:radial-gradient(circle at 10% 0%,rgba(39,93,241,.05),transparent 38%),radial-gradient(circle at 90% 4%,rgba(148,163,184,.05),transparent 34%),linear-gradient(180deg,#f5f7fb,#fbfcfe 48%,#f6f8fb);background-attachment:fixed;color:var(--student-text-primary)}@media(max-width:767px){.student-layout,body.student-theme{background:radial-gradient(circle at 18% -8%,rgba(39,93,241,.04),transparent 46%),radial-gradient(circle at 84% -8%,rgba(148,163,184,.04),transparent 34%),linear-gradient(180deg,#f5f7fb,#fbfcfe 52%,#f6f8fb);background-attachment:fixed}.admin-layout{background:radial-gradient(circle at 14% -6%,rgba(96,165,250,.14),transparent 48%),radial-gradient(circle at 82% -10%,rgba(56,189,248,.04),transparent 36%),linear-gradient(165deg,var(--admin-bg),var(--admin-bg-alt))}body.admin-theme{background:radial-gradient(circle at 14% -6%,rgba(96,165,250,.14),transparent 48%),radial-gradient(circle at 82% -10%,rgba(56,189,248,.04),transparent 36%),linear-gradient(165deg,#0f1625,#131c2f)}}.content{min-height:calc(100vh - 64px);margin-top:64px;background:#f9fafb}@media(min-width:1024px){.content{margin-left:260px}}.content--admin,.student-layout .content{background:transparent}.content--admin{--color-surface-1: var(--admin-surface-solid);--color-surface-2: #24314a;--color-surface-3: #31405e;--color-border: var(--admin-border-soft);--skeleton-color-base: #24324b;--skeleton-color-highlight: #2d3b57}.content--admin .btn--secondary{background:var(--admin-surface-2);border-color:var(--admin-border-soft);color:var(--admin-text-primary)}.content--admin .btn--secondary:hover:not(:disabled){background:#2d3d5adb;border-color:var(--admin-border-strong);color:#f5f8ff}.content--admin .btn--ghost{color:var(--admin-text-secondary)}.content--admin .btn--ghost:hover:not(:disabled){background:var(--admin-surface-2);color:var(--admin-text-primary)}.content--admin .skeleton-table,.content--admin .skeleton-stats__card,.content--admin .skeleton-card{background:var(--admin-surface-solid);border-color:var(--admin-border-soft)}.content--admin .skeleton-table__header{background:#0f16258c;border-bottom-color:var(--admin-border-soft)}.content--admin .skeleton-table__row{border-bottom-color:var(--admin-border-soft)}.content--admin .badge--outline{color:var(--admin-text-secondary);border-color:var(--admin-border-strong)}.content--admin .empty-state .empty-state__title{color:var(--admin-text-primary)}.content--admin .empty-state .empty-state__description,.content--admin .empty-state .empty-state__icon{color:var(--admin-text-secondary)}.page{padding:1.5rem}@media(min-width:768px){.page{padding:2rem}}.page__header{margin-bottom:1.5rem}@media(min-width:768px){.page__header{margin-bottom:2rem}}.page__title{font-size:1.875rem;font-weight:700;line-height:1.25;letter-spacing:-.025em;margin-bottom:.5rem}@media(min-width:768px){.page__title{font-size:2.25rem;font-weight:700;line-height:1.25;letter-spacing:-.025em}}.page__subtitle{font-size:1.125rem;color:#4b5563;max-width:600px}.page__actions{display:flex;align-items:center;gap:.75rem;margin-top:1rem;flex-wrap:wrap}.section{margin-bottom:2rem}.section:last-child{margin-bottom:0}.section__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;flex-wrap:wrap;gap:.75rem}.section__title{font-size:1.5rem;font-weight:600;line-height:1.375;margin:0}.section__subtitle{font-size:.875rem;color:#4b5563;margin-top:.25rem}.container{width:100%;max-width:1400px;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem}@media(min-width:768px){.container{padding-left:1.5rem;padding-right:1.5rem}}.content-box{background:var(--student-surface-1);border:1px solid var(--student-border-soft);box-shadow:var(--student-shadow);backdrop-filter:blur(var(--student-glass-blur)) saturate(120%);-webkit-backdrop-filter:blur(var(--student-glass-blur)) saturate(120%);padding:1.5rem;border-radius:1rem}@media(min-width:768px){.content-box{padding:2rem}}.content--admin .content-box{background:var(--admin-surface-1);border:1px solid var(--admin-border-soft);box-shadow:var(--admin-shadow);backdrop-filter:blur(var(--admin-glass-blur)) saturate(130%);-webkit-backdrop-filter:blur(var(--admin-glass-blur)) saturate(130%)}.split-layout{display:grid;gap:1.5rem}@media(min-width:1024px){.split-layout{grid-template-columns:1fr 1fr;gap:2rem}}@media(min-width:1024px){.split-layout--sidebar{grid-template-columns:300px 1fr}}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:3rem 1rem}.empty-state__icon{width:80px;height:80px;margin-bottom:1rem;color:#6b7280}.empty-state__icon svg{width:100%;height:100%}.empty-state__title{font-size:1.25rem;font-weight:600;line-height:1.375;margin-bottom:.5rem}.empty-state__description{color:#4b5563;max-width:400px;margin-bottom:1rem}.base-modal--admin .btn--ghost{background:var(--admin-surface-2);color:var(--admin-text-secondary)}.base-modal--admin .btn--ghost:hover:not(:disabled){background:var(--admin-surface-solid);color:var(--admin-text-primary)}.loading-state{display:flex;align-items:center;justify-content:center;padding:3rem}.loading-state__spinner{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#3b82f6;border-radius:9999px;animation:spin .8s linear infinite}.data-table{width:100%;background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;overflow:hidden}.data-table th{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#6b7280;background:#f9fafb}.data-table td{font-size:.875rem}.data-table tr:hover td{background:#f9fafb}.student-layout{--skeleton-color-base: rgb(59 130 246 / .07);--skeleton-color-highlight: rgb(59 130 246 / .14)}.student-layout .skeleton-stats__card,.student-layout .skeleton-card{background:var(--student-surface-1);border-color:var(--student-border-soft)}.student-layout .skeleton{background:linear-gradient(90deg,#3b82f60f 25%,#3b82f61f,#3b82f60f 75%);background-size:200% 100%}.student-layout .form-input,.student-layout .form-textarea,.student-layout .form-select{background:var(--student-surface-2);border-color:var(--student-border-soft);color:var(--student-text-primary);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.student-layout .form-input::placeholder,.student-layout .form-textarea::placeholder,.student-layout .form-select::placeholder{color:#94a3b8b3}.student-layout .form-input:hover,.student-layout .form-textarea:hover,.student-layout .form-select:hover{border-color:var(--student-border-strong)}.student-layout .form-input:focus,.student-layout .form-textarea:focus,.student-layout .form-select:focus{background:var(--student-surface-1);border-color:var(--student-accent);box-shadow:0 0 0 3px #275df11a;outline:none}.student-layout .form-input:disabled,.student-layout .form-textarea:disabled,.student-layout .form-select:disabled{background:#f8fbff80;color:var(--student-text-secondary);cursor:not-allowed}.student-layout .form-check__input{background:var(--student-surface-2);border-color:var(--student-border-soft)}.student-layout .form-check__input:checked{background:var(--student-accent);border-color:var(--student-accent)}.student-layout .btn--secondary{background:#ffffffd1;border-color:var(--student-border-soft);color:var(--student-text-primary)}.student-layout .btn--secondary:hover:not(:disabled){background:var(--student-accent-soft);border-color:var(--student-border-strong);color:var(--student-text-primary)}.student-layout .btn--secondary:active:not(:disabled){background:#2563eb26}.student-layout .btn--ghost{color:var(--student-text-secondary)}.student-layout .btn--ghost:hover:not(:disabled){background:var(--student-accent-soft);color:var(--student-text-primary)}.student-layout .btn--ghost svg{max-width:fit-content}.student-layout .badge--outline{border-color:var(--student-border-strong);color:var(--student-text-secondary)}.student-layout .empty-state__title{color:var(--student-text-primary)}.student-layout .empty-state__description,.student-layout .empty-state__icon{color:var(--student-text-secondary)}.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-weight:500;border-radius:.5rem;border:2px solid transparent;cursor:pointer;text-decoration:none;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,transform .1s;white-space:nowrap;line-height:1}.btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.btn:active{transform:translateY(1px)}.btn--sm{padding:.5rem 1rem;font-size:.875rem}.btn--lg{padding:.75rem 1.5rem;font-size:1rem}.btn--full{width:100%;justify-content:center}.btn--primary{background:#2563eb;color:#fff;border-color:#2563eb}.btn--primary:hover{background:#1d4ed8;border-color:#1d4ed8;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.public-layout{background:radial-gradient(circle at 10% 2%,rgba(59,130,246,.08),transparent 48%),radial-gradient(circle at 90% 1%,rgba(45,212,191,.05),transparent 46%),linear-gradient(168deg,#f4f8ff,#fbfdff 52%,#f7faff)}.skip-link{position:absolute;top:-100px;left:0;background:#2563eb;color:#fff;padding:.5rem 1rem;z-index:9999;font-size:.875rem;font-weight:500;border-radius:0 0 .5rem;transition:top .2s}.skip-link:focus{top:0}.pub-nav{position:sticky;top:0;z-index:100;background:#ffffffe6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid #e5e7eb;contain:layout style}.pub-nav__inner{max-width:1280px;margin:0 auto;padding:0 1.5rem;height:64px;display:flex;align-items:center;gap:1.5rem}.pub-nav__logo{display:flex;align-items:center;gap:.5rem;text-decoration:none;flex-shrink:0}.pub-nav__logo-img{height:32px;object-fit:contain}.pub-nav__logo-text{font-size:1.25rem;font-weight:700;color:#2563eb;letter-spacing:-.02em}.pub-nav__links{display:none;align-items:center;gap:.25rem;margin-left:auto}@media(min-width:768px){.pub-nav__links{display:flex}}.pub-nav__link{padding:.5rem .75rem;font-size:.875rem;font-weight:500;color:#4b5563;text-decoration:none;border-radius:.375rem;transition:color .2s,background-color .2s}.pub-nav__link:hover{color:#111827;background:#f9fafb;text-decoration:none}.pub-nav__lang{display:none;align-items:center;gap:.25rem}@media(min-width:768px){.pub-nav__lang{display:flex}}.pub-nav__lang-btn{padding:.25rem .5rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#6b7280;background:none;border:1px solid transparent;border-radius:.375rem;cursor:pointer;transition:all .15s}.pub-nav__lang-btn:hover{color:#111827;border-color:#e5e7eb}.pub-nav__lang-btn.is-active{color:#2563eb;border-color:#bfdbfe;background:#eff6ff}.pub-nav__actions{display:none;align-items:center;gap:.75rem;flex-shrink:0}.pub-nav__actions .btn:hover{text-decoration:none}@media(min-width:768px){.pub-nav__actions{display:flex}}.pub-nav__hamburger{display:flex;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;padding:.5rem;background:none;border:none;cursor:pointer;border-radius:.375rem;margin-left:auto;will-change:transform}@media(min-width:768px){.pub-nav__hamburger{display:none}}.pub-nav__hamburger span{display:block;width:100%;height:2px;background:#111827;border-radius:2px;transition:transform .2s,opacity .2s;will-change:transform,opacity}.pub-nav__mobile{position:absolute;top:100%;left:0;right:0;background:#fff;border-top:1px solid #e5e7eb;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;padding:1rem 1.5rem 1.5rem;display:flex;flex-direction:column;gap:1rem;transform-origin:top center;will-change:transform,opacity}@media(min-width:768px){.pub-nav__mobile{display:none}}.pub-nav__mobile-link{display:block;padding:.75rem .5rem;font-size:1rem;font-weight:500;color:#4b5563;text-decoration:none;border-bottom:1px solid #f9fafb}.pub-nav__mobile-link:hover{color:#111827}.pub-nav__mobile-auth{display:flex;flex-direction:column;gap:.75rem}.pub-nav__mobile-lang{display:flex;gap:.5rem}.pub-content{min-height:calc(100vh - 224px)}.pub-content:focus{outline:none}.pub-footer{background:#111827;color:#9ca3af;padding:3rem 1.5rem}.pub-footer__inner{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:1.5rem;align-items:center}@media(min-width:768px){.pub-footer__inner{grid-template-columns:1fr auto auto}}.pub-footer__inner .pub-nav__logo-text{color:#fff}.pub-footer__tagline{margin-top:.5rem;font-size:.875rem;color:#6b7280}.pub-footer__links{display:flex;gap:1rem}@media(max-width:480px){.pub-footer__links{flex-direction:column;gap:.5rem}}.pub-footer__link{color:#9ca3af;text-decoration:none;font-size:.875rem;transition:color .15s}.pub-footer__link:hover{color:#fff}.pub-footer__copy{font-size:.75rem;color:#6b7280}.pub-footer__copy--link{color:#3b82f6;text-decoration:none;transition:color .15s}.pub-footer__copy--link:hover{color:#93c5fd;text-decoration:underline}.pub-footer__block{display:flex;flex-direction:column}.pub-footer__block p{margin:.25rem 0}.slide-down-enter-active,.slide-down-leave-active{transition:transform .18s ease-out,opacity .18s ease-out}.slide-down-enter-from,.slide-down-leave-to{opacity:0;transform:translate3d(0,-8px,0) scaleY(.98)}@media(prefers-reduced-motion:reduce){.slide-down-enter-active,.slide-down-leave-active{transition:opacity .01s linear}.slide-down-enter-from,.slide-down-leave-to{transform:none}}.container{max-width:1280px;margin:0 auto;padding:0 1.5rem}.section{padding:2rem 0}.section--alt{background:#f9fafb}.section__header{text-align:center;margin-bottom:3rem}.section__eyebrow{display:inline-block;margin-bottom:.75rem;padding:.25rem .75rem;font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#2563eb;background:#eff6ff;border-radius:9999px}.section__title{font-size:1.875rem;font-weight:700;color:#111827;line-height:1.25;margin:0 0 1rem}@media(min-width:768px){.section__title{font-size:2.25rem}}.section__subtitle{font-size:1.125rem;color:#4b5563;max-width:600px;margin:0 auto;line-height:1.625}.hero{position:relative;overflow:hidden;padding:5rem 0 4rem;background:radial-gradient(circle at 12% 0%,rgba(59,130,246,.08),transparent 44%),radial-gradient(circle at 88% -4%,rgba(45,212,191,.06),transparent 42%),linear-gradient(168deg,#f5f9ff,#fbfdff 52%,#f7faff)}@media(min-width:768px){.hero{padding:6rem 0 5rem}}.hero__bg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.hero__blob{position:absolute;border-radius:9999px;filter:blur(80px);opacity:.22}.hero__blob--1{width:600px;height:600px;background:radial-gradient(circle,#bfdbfe,transparent 70%);top:-200px;right:-100px}.hero__blob--2{width:400px;height:400px;background:radial-gradient(circle,#99f6e4,transparent 70%);bottom:-100px;left:-50px}.hero__grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(#e5e7eb 1px,transparent 1px),linear-gradient(90deg,#e5e7eb 1px,transparent 1px);background-size:40px 40px;opacity:.4}.hero__inner{position:relative;z-index:1;display:grid;grid-template-columns:1fr;gap:2.5rem;align-items:center}@media(min-width:1024px){.hero__inner{grid-template-columns:1fr 1fr;gap:4rem}}.hero__welcome-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0;border-radius:9999px;font-size:.875rem;font-weight:500;margin-bottom:1rem}.hero__welcome-badge svg{width:16px;height:16px;flex-shrink:0}.hero__title{font-size:2.25rem;font-weight:700;line-height:1.25;letter-spacing:-.025em;color:#111827;margin:0 0 1.25rem}@media(min-width:768px){.hero__title{font-size:3rem}}.hero__title-line{display:block}.hero__title-accent{display:block;color:#2563eb;background:linear-gradient(135deg,#2563eb,#14b8a6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero__subtitle{font-size:1.125rem;color:#4b5563;line-height:1.625;margin:0 0 2rem;max-width:520px}.hero__actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.hero__actions .btn:hover{text-decoration:none}.hero__code{background:#111827;border-radius:1rem;overflow:hidden;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;border:1px solid #1f2937;font-family:JetBrains Mono,Fira Code,Consolas,Monaco,monospace;display:none}@media(min-width:1024px){.hero__code{display:block}}.hero__code-bar{display:flex;align-items:center;gap:.5rem;background:#030712;padding:.75rem 1rem;border-bottom:1px solid #1f2937}.hero__code-dot{width:12px;height:12px;border-radius:50%}.hero__code-dot--red{background:#ff5f56}.hero__code-dot--yellow{background:#ffbd2e}.hero__code-dot--green{background:#27c93f}.hero__code-filename{margin-left:.75rem;font-size:.75rem;color:#6b7280}.hero__code-body{padding:0 1.5rem 1.5rem;margin:0;overflow-x:auto;font-family:JetBrains Mono,Fira Code,Consolas,Monaco,monospace;font-size:.875rem;line-height:1.8;color:#d4d4d4;white-space:pre;-moz-tab-size:4;tab-size:4}.hero__code-body .tok-kw{color:#c678dd}.hero__code-body .tok-fn{color:#61afef}.hero__code-body .tok-str{color:#98c379}.hero__code-body .tok-comment{color:#5c6370;font-style:italic}.features__grid{display:grid;grid-template-columns:1fr;gap:1.5rem;list-style:none;padding:0;margin:0}@media(min-width:640px){.features__grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.features__grid{grid-template-columns:repeat(4,1fr)}}.feature-card{padding:1.5rem;background:#fff;border:1px solid #e5e7eb;border-radius:1rem;transition:box-shadow .2s,transform .2s}.feature-card:hover{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;transform:translateY(-2px)}.feature-card__icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:.75rem;margin-bottom:1rem}.feature-card__icon svg{width:24px;height:24px}.feature-card__icon--blue{background:#eff6ff;color:#2563eb}.feature-card__icon--purple{background:#f3e8ff;color:#7c3aed}.feature-card__icon--green{background:#f0fdf4;color:#16a34a}.feature-card__icon--teal{background:#f0fdfa;color:#0d9488}.feature-card__title{font-size:1rem;font-weight:600;color:#111827;margin:0 0 .5rem}.feature-card__desc{font-size:.875rem;color:#4b5563;line-height:1.625;margin:0}.steps{display:grid;grid-template-columns:1fr;gap:2rem;list-style:none;padding:0;margin:0;counter-reset:steps}@media(min-width:768px){.steps{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.steps{grid-template-columns:repeat(4,1fr)}}.step{display:flex;flex-direction:column;gap:.75rem;padding:1.5rem;background:#fff;border-radius:1rem;border:1px solid #e5e7eb;position:relative}.step__number{font-size:2.25rem;font-weight:700;color:#dbeafe;line-height:1;font-variant-numeric:tabular-nums}.step__title{font-size:1rem;font-weight:600;color:#111827;margin:0}.step__desc{font-size:.875rem;color:#4b5563;line-height:1.625;margin:0}.subjects__grid{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;list-style:none;padding:0;margin:0}.subject-chip{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:#fff;border:1px solid #e5e7eb;border-radius:9999px;font-size:.875rem;font-weight:500;color:#111827;transition:border-color .2s,box-shadow .2s;cursor:default}.subject-chip:hover{border-color:#93c5fd;box-shadow:0 1px 2px #0000000d}.subject-chip__icon{font-size:1.125rem;line-height:1}.cta-banner{text-align:center;padding:4rem 2rem;background:linear-gradient(135deg,#2563eb,#0d9488);border-radius:1.5rem;color:#fff}.cta-banner__title{font-size:1.875rem;font-weight:700;color:#fff;margin:0 0 1rem;line-height:1.25}@media(min-width:768px){.cta-banner__title{font-size:2.25rem}}.cta-banner__subtitle{font-size:1.125rem;color:#ffffffd9;margin:0 0 2rem;line-height:1.625}.cta-banner .hero__actions{justify-content:center}.cta-banner .btn--primary{background:#fff;color:#1d4ed8;border-color:#fff}.cta-banner .btn--primary:hover{background:#eff6ff;color:#1d4ed8;border-color:#eff6ff}.legal-page{padding:3rem 0}.legal-page__inner{max-width:960px;margin:0 auto;padding:0 1.5rem}.legal-page__hero{position:relative;overflow:hidden;margin-bottom:2rem;padding:2rem;border:1px solid #e5e7eb;border-radius:1rem;background:radial-gradient(circle at 88% -4%,rgba(59,130,246,.08),transparent 42%),radial-gradient(circle at 12% 0%,rgba(45,212,191,.06),transparent 30%),linear-gradient(168deg,#f5f9ff,#fbfdff 52%,#f7faff);box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}.legal-page__eyebrow{margin:0 0 .75rem;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#2563eb}.legal-page__title{margin:0;font-size:1.875rem;line-height:1.25;color:#111827}@media(min-width:768px){.legal-page__title{font-size:2.25rem}}.legal-page__subtitle{margin:1rem 0 0;font-size:1rem;line-height:1.625;color:#4b5563}.legal-page__effective{margin:1rem 0 0;font-size:.875rem;color:#6b7280}.legal-page__section{padding:1.5rem;border:1px solid #e5e7eb;border-radius:.75rem;background:#ffffffd6;box-shadow:0 1px 2px #0000000d}.legal-page__section+.legal-page__section{margin-top:1rem}.legal-page__section--intro{margin-bottom:1rem}.legal-page__section-title{margin:0 0 .75rem;font-size:1.25rem;line-height:1.25;color:#111827}.legal-page__paragraph{margin:0;font-size:1rem;color:#4b5563;line-height:1.625}.legal-page__paragraph+.legal-page__paragraph{margin-top:.75rem}.legal-page__list{margin:1rem 0 0;padding-left:1.5rem;color:#4b5563}.legal-page__list li{line-height:1.625}.legal-page__list li+li{margin-top:.5rem}.legal-page__footer-note{margin-top:1.5rem;padding:1rem 1.25rem;border-left:4px solid #3b82f6;border-radius:.5rem;background:#eff6ff;color:#1e40af;font-size:.875rem;line-height:1.625}@media(max-width:768px){.legal-page{padding:2rem 0}.legal-page__hero,.legal-page__section{padding:1.25rem}}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:4rem 1rem;color:#4b5563;font-size:.875rem}.loading-spinner{width:36px;height:36px;border:3px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem 1rem}.empty-state__icon{font-size:3rem;line-height:1;margin-bottom:1rem}.empty-state h3{font-size:1.25rem;font-weight:600;color:#111827;margin-bottom:.5rem}.empty-state p{font-size:.875rem;color:#4b5563;max-width:360px;margin-bottom:0}.stat-card{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:var(--student-surface-1);border:1px solid var(--student-border-soft);box-shadow:var(--student-shadow);backdrop-filter:blur(var(--student-glass-blur)) saturate(120%);-webkit-backdrop-filter:blur(var(--student-glass-blur)) saturate(120%);border-radius:.75rem;transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease,border-color .15s ease,color .15s ease}.stat-card:hover{transform:translateY(-1px)}.stat-card:focus-visible{outline:none;border-color:var(--student-accent);box-shadow:0 0 0 3px #275df124,0 6px 18px #275df114}.stat-card:hover{box-shadow:0 12px 24px #0f172a0d,0 1px 2px #0f172a08}.stat-card:focus-within{border-color:var(--student-accent);box-shadow:0 0 0 3px #275df11f,0 10px 22px #0f172a0a}.stat-card__icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:.75rem;flex-shrink:0}.stat-card__icon svg{width:24px;height:24px}.stat-card__icon--primary{background:#2563eb1a;color:#2563eb}.stat-card__icon--success{background:#22c55e1a;color:#16a34a}.stat-card__icon--warning{background:#f59e0b1a;color:#d97706}.stat-card__icon--info{background:#3b82f61a;color:#3b82f6}.stat-card__icon--error{background:#ef44441a;color:#dc2626}.stat-card__icon--training{background:#7c3aed1a;color:#7c3aed}.stat-card__content{display:flex;flex-direction:column;gap:.25rem;min-width:0}.stat-card__value{font-size:1.5rem;font-weight:700;color:#111827;line-height:1}.stat-card__label{font-size:.875rem;color:#4b5563}.back-link{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;color:#4b5563;text-decoration:none;transition:color .15s ease;margin-bottom:1rem}.back-link svg{width:16px;height:16px;flex-shrink:0}.back-link:hover{color:#2563eb;text-decoration:none}.data-table{width:100%;background:var(--student-surface-1);border:1px solid var(--student-border-soft);box-shadow:var(--student-shadow);backdrop-filter:blur(10px) saturate(120%);-webkit-backdrop-filter:blur(10px) saturate(120%);border-radius:.75rem;overflow:hidden}.data-table__wrapper{overflow-x:auto;scrollbar-width:thin;scrollbar-color:#d1d5db transparent}.data-table__wrapper::-webkit-scrollbar{width:6px;height:6px}.data-table__wrapper::-webkit-scrollbar-track{background:transparent}.data-table__wrapper::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.data-table__wrapper::-webkit-scrollbar-thumb:hover{background:#9ca3af}.data-table table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid #e5e7eb}.data-table th{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#6b7280;background:#ffffff80;white-space:nowrap}.data-table td{font-size:.875rem;color:#111827;vertical-align:middle}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:#f8fafcb8}.skeleton{background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border-radius:.25rem}.skeleton--text{height:1em;margin-bottom:.5rem}.skeleton--title{height:2em;width:60%;margin-bottom:.75rem}.skeleton--avatar{width:40px;height:40px;border-radius:9999px}.skeleton--card{height:200px;border-radius:.75rem}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.fade-enter-active,.fade-leave-active{transition:opacity .2s ease}.fade-enter-from,.fade-leave-to{opacity:0}.slide-enter-active,.slide-leave-active{transition:all .2s ease}.slide-enter-from,.slide-leave-to{opacity:0;transform:translateY(-8px)}
