.top-bar{display:flex;align-items:stretch;background:hsla(0,0%,100%,.82);backdrop-filter:saturate(1.5) blur(14px);-webkit-backdrop-filter:saturate(1.5) blur(14px);border-bottom:1px solid var(--edorer-border-soft);min-height:60px;position:sticky;top:0;z-index:50;padding-top:env(safe-area-inset-top,0)}.top-bar__hamburger{display:none;align-items:center;justify-content:center;width:40px;height:40px;margin-left:8px;margin-right:-4px;border:0;background:transparent;border-radius:10px;color:var(--edorer-text);font-size:20px;cursor:pointer}.top-bar__hamburger:hover{background:var(--edorer-surface-alt,rgba(0,0,0,.04))}.top-bar__hamburger:focus-visible{outline:2px solid var(--edorer-brand);outline-offset:1px}@media (max-width:1023px){.top-bar__hamburger{display:inline-flex}.top-bar__brand{width:auto;padding:0 12px}.top-bar__brand-text{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media (max-width:767px){.top-bar__brand-text{max-width:140px}}.top-bar__brand{width:248px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:flex-start;gap:11px;padding:0 20px;text-decoration:none;color:var(--edorer-text)}.top-bar__brand-logo{height:32px;width:auto;min-width:32px;max-width:140px;border-radius:9px;object-fit:contain;background:var(--edorer-surface);box-shadow:var(--edorer-elev-1);padding:2px}.top-bar__right{flex:1;display:flex;align-items:center;gap:14px;padding:0 24px}.top-bar__brand-mark{width:32px;height:32px;border-radius:9px;background:var(--edorer-grad-brand);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;color:#fff;box-shadow:var(--edorer-elev-brand)}.top-bar__brand-text{font-family:var(--edorer-font-display);font-size:17px;font-weight:600;letter-spacing:-.01em;color:var(--edorer-ink)}.top-bar__tenant{display:inline-flex;align-items:center;gap:8px;padding:5px 12px 5px 5px;background:var(--edorer-surface);border:1px solid var(--edorer-border);border-radius:999px;font-size:13px;color:var(--edorer-text);box-shadow:var(--edorer-elev-1)}.top-bar__tenant-logo,.top-bar__tenant-mark{width:22px;height:22px;border-radius:7px;background:var(--edorer-grad-brand);color:#fff;display:inline-flex;align-items:center;justify-content:center;object-fit:cover;font-weight:700;font-size:11px}.top-bar__tenant-name{font-weight:600;letter-spacing:-.005em}.top-bar__spacer{flex:1}.top-bar__user{position:relative}.top-bar__user-btn{appearance:none;background:transparent;border:1px solid transparent;border-radius:999px;padding:4px 14px 4px 4px;display:inline-flex;align-items:center;gap:10px;cursor:pointer;transition:background .18s var(--edorer-ease-out),border-color .18s var(--edorer-ease-out),box-shadow .18s var(--edorer-ease-out);font-family:inherit;color:var(--edorer-text)}.top-bar__user-btn:hover,.top-bar__user-btn[aria-expanded=true]{background:var(--edorer-surface);border-color:var(--edorer-border);box-shadow:var(--edorer-elev-1)}.top-bar__avatar{width:32px;height:32px;border-radius:50%;background:var(--edorer-grad-brand);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;box-shadow:var(--edorer-elev-1)}.top-bar__user-meta{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15;text-align:left}.top-bar__user-name{font-size:13px;font-weight:600;color:var(--edorer-text);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.005em}.top-bar__user-role{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--edorer-text-muted)}.top-bar__user-role[data-role=admin],.top-bar__user-role[data-role=platform-admin]{color:var(--edorer-warn-600)}.top-bar__user-role[data-role=teacher]{color:var(--edorer-success-600)}.top-bar__user-role[data-role=applicant]{color:var(--edorer-brand-700)}.top-bar__menu{position:absolute;top:calc(100% + 8px);right:0;min-width:244px;background:#fff;color:var(--edorer-text);border:1px solid var(--edorer-border);border-radius:var(--edorer-radius-lg);box-shadow:var(--edorer-elev-3);padding:6px;z-index:60;display:flex;flex-direction:column;gap:2px;animation:top-bar-pop .2s var(--edorer-ease-out)}@keyframes top-bar-pop{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.top-bar__menu-item{display:flex;align-items:center;gap:10px;padding:9px 12px;background:transparent;border:none;border-radius:8px;color:var(--edorer-text);font-size:13.5px;font-weight:500;cursor:pointer;text-align:left;font-family:inherit;width:100%;transition:background .15s var(--edorer-ease-out)}.top-bar__menu-item .anticon{font-size:14px;color:var(--edorer-text-muted)}.top-bar__menu-item:hover{background:var(--edorer-surface-sunken)}.top-bar__menu-item--danger,.top-bar__menu-item--danger .anticon{color:var(--edorer-danger-600)}.top-bar__menu-item--danger:hover{background:var(--edorer-danger-50)}.top-bar__menu-sep{border:none;border-top:1px solid var(--edorer-border);margin:4px 0}@media (max-width:720px){.top-bar{padding:10px 14px}.top-bar__user-meta{display:none}}.notif{position:relative;display:inline-flex}.notif__spin{display:inline-block;width:14px;height:14px;border:2px solid #d9d9e3;border-top-color:#6c5ce7;border-radius:50%;vertical-align:-2px;margin-right:6px;animation:notif-spin .6s linear infinite}@keyframes notif-spin{to{transform:rotate(1turn)}}.notif__btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:8px;background:transparent;border:none;cursor:pointer;font-size:17px;transition:background .12s,color .12s}.notif__btn,.notif__btn:hover{color:var(--edorer-text,#0f172a)}.notif__btn:hover{background:var(--edorer-surface-alt,rgba(0,0,0,.06))}.notif__btn:focus-visible{outline:2px solid #6c5ce7;outline-offset:2px}.notif__badge{position:absolute;top:4px;right:4px;min-width:18px;height:18px;padding:0 5px;background:#cf1322;color:#fff;border-radius:999px;font-size:10px;font-weight:700;line-height:18px;text-align:center;border:2px solid #14172e;box-sizing:content-box;pointer-events:none}.notif__panel{position:absolute;top:calc(100% + 8px);right:0;z-index:100;width:380px;max-width:calc(100vw - 32px);background:#fff;color:#14172e;border:1px solid #ececec;border-radius:12px;box-shadow:0 16px 40px rgba(20,23,46,.16);overflow:hidden;animation:notif-pop .15s cubic-bezier(.2,.9,.3,1.2)}@keyframes notif-pop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.notif__panel-h{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #f0f0f0}.notif__panel-h strong{font-size:14px}.notif__action{display:inline-flex;align-items:center;gap:4px;background:transparent;border:none;cursor:pointer;color:#6c5ce7;font-size:12px;font-weight:600;padding:4px 8px;border-radius:6px;font-family:inherit}.notif__action:hover{background:#efeefc}.notif__list{max-height:480px;overflow:auto}.notif__list ul{list-style:none;padding:0;margin:0}.notif__empty{padding:40px 16px;text-align:center;color:#8a8d9c;font-size:13px}.notif__empty p{margin:0}.notif__row{display:flex;align-items:stretch;border-bottom:1px solid #f5f5f5;transition:background .12s}.notif__row:hover{background:#fafaff}.notif__row.is-unread{background:#f6f6ff}.notif__row.is-unread:hover{background:#efeefc}.notif__row-main{flex:1;min-width:0;display:flex;align-items:flex-start;gap:10px;padding:10px 12px;background:transparent;border:none;cursor:pointer;text-align:left;font-family:inherit}.notif__row-icon{flex-shrink:0;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;background:#efeefc;color:#531dab;border-radius:50%;font-size:14px}.notif__row.is-unread .notif__row-icon{background:#6c5ce7;color:#fff}.notif__row-text{flex:1;min-width:0;color:#14172e}.notif__row-text strong{display:block;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.notif__row-text p{margin:0 0 4px;font-size:12px;color:#6b6e7d;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4}.notif__row-text time{font-size:11px;color:#8a8d9c}.notif__row-attach{display:inline-flex;align-items:center;gap:5px;margin:0 0 4px;padding:2px 8px;border-radius:999px;background:#eef2ff;color:#4f46e5;font-size:11px;font-weight:600;text-decoration:none;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notif__row-attach:hover{background:#e0e7ff}.notif__dot{flex-shrink:0;width:8px;height:8px;margin-top:6px;background:#6c5ce7;border-radius:50%}.notif__row-rm{background:transparent;border:none;cursor:pointer;width:32px;flex-shrink:0;color:#8a8d9c;font-size:12px;align-self:stretch;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .12s,color .12s}.notif__row:hover .notif__row-rm{opacity:1}.notif__row-rm:hover{color:#cf1322}.top-bar__credits{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid #e2e8f0;color:#0f172a;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;cursor:pointer;transition:background-color .15s,border-color .15s,box-shadow .15s;box-shadow:0 1px 2px rgba(15,23,42,.06)}.top-bar__credits:hover{background:#f8fafc;border-color:#cbd5e1}.top-bar__credits .anticon{font-size:14px;color:#6c5ce7}.top-bar__credits.is-low{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.top-bar__credits.is-low .anticon{color:#b91c1c}.top-bar__credits.is-low:hover{background:#fee2e2;border-color:#fca5a5}@media (max-width:767px){.top-bar{min-height:56px;justify-content:flex-start;align-items:center}.top-bar__hamburger{padding:0 6px;min-width:40px;flex:0 0 auto;display:inline-flex}.top-bar__brand,.top-bar__hamburger{height:40px;align-items:center;justify-content:center}.top-bar__brand{position:absolute;left:50%;transform:translateX(-50%);width:auto!important;flex:0 0 auto!important;min-width:0;padding:0 4px!important;gap:6px;display:flex}.top-bar__brand-logo{max-width:120px!important;height:40px!important}.top-bar__right{gap:4px!important;padding:0 6px!important;flex:0 0 auto!important;margin-left:auto!important}.top-bar__brand-text,.top-bar__right .gs,.top-bar__right .lang-switch,.top-bar__right .top-bar__spacer,.top-bar__user-meta{display:none!important}.top-bar__user-btn{padding:4px;gap:0}.top-bar__avatar{width:32px;height:32px;font-size:13px}.notif__btn{width:44px;height:44px}}.shell-menu{width:248px;min-width:248px;background:var(--edorer-surface);border-right:1px solid var(--edorer-border-soft);display:flex;flex-direction:column;padding:0 0 0 12px;position:sticky;top:60px;height:calc(100vh - 60px);align-self:flex-start;box-sizing:border-box}.shell-menu__scrim{display:none;position:fixed;inset:0;background:rgba(15,17,33,.45);-webkit-backdrop-filter:saturate(140%) blur(2px);backdrop-filter:saturate(140%) blur(2px);border:0;padding:0;cursor:pointer;z-index:1099;animation:shell-menu-scrim-fade .18s ease}@keyframes shell-menu-scrim-fade{0%{opacity:0}to{opacity:1}}@media (max-width:1023px){.shell-menu{position:fixed;top:0;left:0;height:100vh;bottom:0;width:min(320px,88vw);min-width:0;z-index:1100;transform:translateX(-100%);transition:transform .28s cubic-bezier(.32,.72,0,1);box-shadow:16px 0 48px -12px rgba(15,17,33,.3);padding-left:12px;padding-top:env(safe-area-inset-top,0)}.shell-menu.is-mobile-open{transform:translateX(0)}.shell-menu__scrim{display:block}.shell-menu.is-mobile-open~.mtab,body:has(.shell-menu.is-mobile-open) .mtab{display:none!important}}.shell-menu__items{display:flex;flex-direction:column;padding:10px 12px 16px;flex:1;min-height:0;overflow-y:auto;gap:1px;scrollbar-width:thin;scrollbar-color:var(--edorer-border) transparent}.shell-menu__items::-webkit-scrollbar{width:6px}.shell-menu__items::-webkit-scrollbar-thumb{background:var(--edorer-border);border-radius:3px}.shell-menu__items::-webkit-scrollbar-track{background:transparent}.shell-menu__section{display:flex;flex-direction:column}.shell-menu__group-toggle{display:flex;align-items:center;gap:8px;width:100%;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--edorer-gray-400);padding:10px 12px;margin-top:6px;line-height:1;background:transparent;border:none;cursor:pointer;text-align:left;border-radius:6px;transition:color .15s var(--edorer-ease-out),background .15s var(--edorer-ease-out)}.shell-menu__section:first-child .shell-menu__group-toggle{margin-top:0}.shell-menu__group-toggle:hover{color:var(--edorer-brand-700);background:var(--edorer-brand-50)}.shell-menu__group-toggle:focus-visible{outline:2px solid var(--edorer-brand);outline-offset:-2px}.shell-menu__group-chevron{font-size:9px;color:var(--edorer-gray-400);display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;transform:rotate(90deg);transition:transform .18s var(--edorer-ease-out),color .15s;flex-shrink:0}.shell-menu__group-toggle.is-collapsed .shell-menu__group-chevron{transform:rotate(0deg)}.shell-menu__group-toggle:hover .shell-menu__group-chevron{color:var(--edorer-brand-600)}.shell-menu__group-body{display:flex;flex-direction:column;gap:1px;overflow:hidden;max-height:1000px;transition:max-height .22s var(--edorer-ease-out),opacity .18s,margin .18s}.shell-menu__group-body.is-collapsed{max-height:0;opacity:0;margin-top:0;pointer-events:none}.shell-menu__item{display:flex;align-items:center;gap:12px;padding:9px 12px;margin-bottom:1px;border-radius:8px;color:var(--edorer-gray-700);text-decoration:none;font-size:13.5px;font-weight:500;position:relative;transition:background .18s var(--edorer-ease-out),color .18s var(--edorer-ease-out)}.shell-menu__item:before{content:"";position:absolute;left:-12px;top:50%;width:3px;height:18px;background:var(--edorer-brand);border-radius:0 3px 3px 0;transform:translateY(-50%) scaleY(0);transform-origin:center;transition:transform .2s var(--edorer-ease-out)}.shell-menu__item:hover{background:var(--edorer-brand-50);color:var(--edorer-brand-700)}.shell-menu__item:hover .shell-menu__icon{color:var(--edorer-brand-600)}.shell-menu__item.is-active{background:var(--edorer-brand-50);color:var(--edorer-brand-700);font-weight:600}.shell-menu__item.is-active:before{transform:translateY(-50%) scaleY(1)}.shell-menu__item.is-active .shell-menu__icon{color:var(--edorer-brand)}.shell-menu__icon{font-size:17px;color:var(--edorer-gray-500);min-width:20px;line-height:1;transition:color .15s var(--edorer-ease-out)}.shell-menu__icon svg{stroke-width:.5}.shell-menu__label{flex:1}.shell-menu__badge{font-size:10.5px;padding:1px 8px;border-radius:999px;background:var(--edorer-brand-100);color:var(--edorer-brand-700);font-weight:700}.shell-menu__item.is-active .shell-menu__badge{background:var(--edorer-brand);color:#fff}.shell-menu__item--external .shell-menu__ext-mark{font-size:11px;color:var(--edorer-text-subtle);margin-left:4px;transition:color .15s}.shell-menu__item--external:hover .shell-menu__ext-mark{color:var(--edorer-brand)}@media (max-width:720px){.shell-menu{width:100%;min-width:100%}}.shell-menu__search{position:relative;display:flex;align-items:center;margin:12px 12px 6px;padding:0 10px;height:36px;border:1px solid var(--edorer-border);border-radius:10px;background:var(--edorer-surface-sunken,#f8fafc);transition:border-color .15s,background-color .15s}.shell-menu__search:focus-within{background:var(--edorer-surface,#fff);border-color:var(--edorer-brand)}.shell-menu__search-icon{color:var(--edorer-text-muted);font-size:13px;margin-right:8px;flex-shrink:0}.shell-menu__search-input{flex:1;border:none;background:transparent;font-family:inherit;font-size:13px;color:var(--edorer-text);outline:none;padding:0;min-width:0}.shell-menu__search-input::placeholder{color:var(--edorer-text-muted)}.shell-menu__search-input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.shell-menu__search-clear{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;margin-left:4px;border:none;background:transparent;color:var(--edorer-text-muted);cursor:pointer;border-radius:50%;flex-shrink:0}.shell-menu__search-clear:hover{color:var(--edorer-text)}.shell-menu__empty{padding:24px 14px;font-size:12.5px;color:var(--edorer-text-muted);text-align:center}.shell-menu__kbd{font-size:10px;font-weight:600;padding:1px 6px;margin-left:4px;border-radius:4px;background:rgba(15,17,33,.05);color:var(--edorer-text-muted,#8a8d9c);letter-spacing:.02em}.shell-menu__all-sections{display:flex;align-items:center;gap:10px;width:calc(100% - 16px);margin:6px 8px 10px;padding:10px 12px;border:1px dashed rgba(108,92,231,.32);border-radius:10px;background:rgba(108,92,231,.06);color:#4c3fbd;font-family:inherit;font-weight:600;font-size:13px;cursor:pointer;transition:background-color .12s,border-color .12s}.shell-menu__all-sections:hover{background:rgba(108,92,231,.12);border-color:var(--edorer-brand,#6c5ce7);border-style:solid}.shell-menu__all-sections .anticon{font-size:14px}.shell-menu__pinned-header{display:flex;align-items:center;gap:6px;margin:4px 16px;font-size:10px;font-weight:700;letter-spacing:.12em;color:var(--edorer-text-muted,#8a8d9c)}.shell-menu__pinned-header .anticon{font-size:11px;color:var(--edorer-brand,#6c5ce7)}.shell-menu__row{position:relative;display:flex;align-items:center}.shell-menu__row .shell-menu__item{flex:1}.shell-menu__pin{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;border-radius:6px;color:var(--edorer-text-muted,#8a8d9c);cursor:pointer;opacity:0;transition:opacity .12s,background-color .12s,color .12s}.shell-menu__pin.is-on,.shell-menu__row:hover .shell-menu__pin{opacity:1}.shell-menu__pin.is-on{color:var(--edorer-brand,#6c5ce7)}.shell-menu__pin:hover{background:rgba(15,17,33,.06);color:var(--edorer-ink,#14172e)}.shell-menu__close{display:none}@media (max-width:1023px){.shell-menu__close{display:inline-flex;align-items:center;justify-content:center;position:absolute;top:calc(env(safe-area-inset-top, 0px) + 10px);right:12px;width:36px;height:36px;border-radius:10px;background:var(--edorer-surface-alt,#f3f4f6);border:1px solid var(--edorer-border,#e5e7eb);color:var(--edorer-text,#111827);font-size:14px;cursor:pointer;z-index:2;transition:background .12s,transform 60ms}.shell-menu__close:hover{background:var(--edorer-surface-sunken,#e5e7eb)}.shell-menu__close:active{transform:scale(.94)}.shell-menu.is-mobile-open .shell-menu__search{margin-top:calc(env(safe-area-inset-top, 0px) + 56px)}}@media (max-width:767px){.shell-menu__item{min-height:44px;font-size:14px}.shell-menu__group-toggle{min-height:44px}.shell-menu__all-sections{min-height:44px;font-size:14px}}.shell{min-height:100vh;background:var(--edorer-bg,#f6f7f9)}.shell .top-bar{position:fixed;top:0;left:0;right:0;z-index:50}.shell__main{display:flex;align-items:flex-start;padding-top:60px}.shell__outlet{flex:1;min-width:0;padding:0 12px}.shell__outlet .admin-shell{min-height:auto}@media (max-width:768px){.shell-menu{position:fixed;left:0;top:60px;transform:translateX(-100%);transition:transform .2s;z-index:40}.shell-menu.is-mobile-open{transform:translateX(0)}}