.lms-app-layout{background:var(--color-bg-page);display:flex;min-height:100vh;min-height:100dvh;width:100%}.lms-sider{background:var(--color-sidebar-bg)!important;border-right:1px solid #ffffff0a;height:100vh;left:0;overflow:hidden;position:fixed!important;top:0;z-index:var(--z-sidebar)}.lms-sider .ant-layout-sider-children{display:flex;flex-direction:column;height:100%}.lms-content-shell{display:flex;flex:1 1;flex-direction:column;min-width:0;transition:margin-left var(--motion-base)}.lms-content-shell--desktop-collapsed{margin-left:72px}.lms-content-shell--desktop{margin-left:248px}.lms-content-shell--mobile{margin-left:0;padding-bottom:calc(var(--layout-bottom-nav-height) + var(--safe-area-bottom))}body.lms-chat-open .lms-content-shell--mobile,body.lms-keyboard-open .lms-content-shell--mobile{padding-bottom:0}.lms-sidebar{color:var(--color-sidebar-text);display:flex;flex-direction:column;height:100%;width:100%}.lms-sidebar__close{align-items:center;background:#ffffff0f;border:none;border-radius:var(--radius-sm);color:#ffffffd9;cursor:pointer;display:inline-flex;height:32px;justify-content:center;position:absolute;right:12px;top:12px;transition:background var(--motion-fast);width:32px;z-index:2}.lms-sidebar__close:hover{background:#ffffff1a}.lms-sidebar__brand{align-items:center;border-bottom:1px solid var(--color-sidebar-divider);display:flex;gap:var(--space-3);margin-bottom:var(--space-2);padding:var(--space-5) var(--space-4) var(--space-4)}.lms-sidebar__brand--compact{justify-content:center;padding:var(--space-4) 0}.lms-sidebar__brand-logo{background:#ffffff0a;border-radius:var(--radius-md);flex-shrink:0;height:36px;object-fit:contain;padding:4px;width:36px}.lms-sidebar__brand-text{display:flex;flex-direction:column;min-width:0}.lms-sidebar__brand-name{color:#fff;font-size:15px;font-weight:700;letter-spacing:.02em}.lms-sidebar__brand-tag{color:var(--color-sidebar-text-muted);font-size:9px;letter-spacing:.1em;margin-top:2px;text-transform:uppercase}.lms-sidebar__menu{-webkit-border-end:0!important;background:#0000!important;border-inline-end:0!important;flex:1 1;margin-top:var(--space-3);overflow-x:hidden;overflow-y:auto}.lms-sidebar__version{align-items:center;background:#0000;border:1px solid #0000;border-radius:var(--radius-md);color:var(--color-sidebar-text-muted);cursor:pointer;display:inline-flex;font-size:12px;gap:var(--space-2);margin:var(--space-2) var(--space-3) var(--space-3);padding:var(--space-2) var(--space-3);text-align:left;transition:background var(--motion-fast),color var(--motion-fast)}.lms-sidebar__version:hover{background:#ffffff0a;color:#ffffffd9}.lms-header{background:var(--color-bg-container)!important;border-bottom:1px solid var(--color-border);height:var(--layout-header-height)!important;justify-content:space-between;padding:0 var(--space-5)!important;position:-webkit-sticky!important;position:sticky!important;top:0;z-index:var(--z-header)}.lms-header,.lms-header__left{align-items:center;display:flex;gap:var(--space-3)}.lms-header__left{min-width:0}.lms-header__right{align-items:center;display:flex;min-width:0}.lms-header__toggle{align-items:center;display:inline-flex;height:36px;justify-content:center;width:36px}@media (max-width:768px){.lms-header{padding:0 var(--space-3)!important}}.lms-header__icon-btn{align-items:center;color:var(--color-text-secondary);display:inline-flex;height:36px;justify-content:center;width:36px}.lms-header__icon-btn:hover{color:var(--color-primary)}.lms-avatar-trigger-wrap{vertical-align:middle}.lms-avatar-trigger,.lms-avatar-trigger-wrap{align-items:center;display:inline-flex;line-height:0}.lms-avatar-trigger{background:#0000;border:0;border-radius:var(--radius-full);cursor:pointer;height:36px;justify-content:center;margin:0;padding:0;position:relative;transition:box-shadow var(--motion-fast);width:36px}.lms-avatar-trigger:hover{box-shadow:0 0 0 2px var(--color-border-strong)}.lms-avatar-trigger:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.lms-avatar-trigger__avatar{align-items:center!important;background-color:var(--color-bg-muted)!important;color:var(--color-text-secondary)!important;display:inline-flex!important;flex-shrink:0;justify-content:center!important;vertical-align:middle!important}.lms-avatar-trigger__avatar img{display:block;height:100%;object-fit:cover;width:100%}.lms-avatar-trigger__status{border:2px solid var(--color-bg-container);border-radius:var(--radius-full);bottom:0;height:11px;pointer-events:none;position:absolute;right:0;transition:background var(--motion-base);width:11px}.lms-avatar-trigger__status--online{background:var(--color-online);box-shadow:0 0 0 2px #22c55e26}.lms-avatar-trigger__status--offline{animation:lms-pulse 1.4s ease-in-out infinite;background:var(--color-offline);box-shadow:0 0 0 2px #ef44442e}@keyframes lms-pulse{0%,to{opacity:1}50%{opacity:.45}}.lms-account-dropdown .ant-dropdown-menu{border-radius:var(--radius-md);min-width:240px;padding:6px}.lms-account-dropdown .ant-dropdown-menu-item-divider{margin:4px 0}.lms-account-dropdown .ant-dropdown-menu-item:has(.lms-account-dropdown__header){background:#0000!important;cursor:default;padding:0}.lms-account-dropdown .ant-dropdown-menu-item:has(.lms-account-dropdown__header):hover{background:#0000!important}.lms-account-dropdown__header{align-items:center;border-radius:var(--radius-md);color:inherit;display:flex;gap:10px;padding:10px 12px;text-decoration:none;transition:background var(--motion-fast)}.lms-account-dropdown__header:hover{background:var(--color-bg-subtle);color:inherit}.lms-account-dropdown__avatar{background-color:var(--color-bg-muted)!important;color:var(--color-text-secondary)!important;flex-shrink:0}.lms-account-dropdown__identity{display:flex;flex:1 1;flex-direction:column;min-width:0}.lms-account-dropdown__name{color:var(--color-text-primary);font-size:var(--font-size-md);font-weight:600;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lms-account-dropdown__role{color:var(--color-text-secondary);font-size:var(--font-size-xs);line-height:1.3;margin-top:2px}.lms-content{background:var(--color-bg-page);flex:1 1;min-width:0}.lms-notifs{border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;max-height:70vh;overflow:hidden;width:360px}.lms-notifs,.lms-notifs__head{background:var(--color-bg-container);display:flex}.lms-notifs__head{align-items:center;border-bottom:1px solid var(--color-border);gap:var(--space-3);justify-content:space-between;padding:var(--space-4) var(--space-5);position:-webkit-sticky;position:sticky;top:0;z-index:1}.lms-notifs__head-title{color:var(--color-text-primary);font-size:var(--font-size-md);font-weight:600}.lms-notifs__drawer-title{align-items:center;display:flex;font-size:var(--font-size-md);font-weight:600;justify-content:space-between;width:100%}.lms-notifs__list{display:flex;flex:1 1;flex-direction:column;overflow-y:auto}.lms-notifs__empty{padding:var(--space-8) var(--space-4);text-align:center}.lms-notifs__row{background:#0000;border:0;border-bottom:1px solid var(--color-border-subtle);color:inherit;cursor:pointer;display:flex;flex-direction:column;font:inherit;gap:4px;padding:var(--space-3) var(--space-5);text-align:left;transition:background var(--motion-fast)}.lms-notifs__row:last-child{border-bottom:0}.lms-notifs__row:hover{background:var(--color-bg-subtle)}.lms-notifs__row:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:-2px}.lms-notifs__row-head{align-items:center;display:flex;gap:var(--space-2);justify-content:space-between}.lms-notifs__row-title{color:var(--color-text-primary);flex:1 1;font-size:var(--font-size-md);font-weight:600;line-height:var(--line-height-snug);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lms-notifs__row-sub{color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-snug)}.lms-notifs__row-meta{color:var(--color-text-tertiary);font-size:var(--font-size-xs)}@media (max-width:768px){.lms-notifs{border:0;border-radius:0;box-shadow:none;max-height:none;width:100%}}.lms-bottom-nav{align-items:stretch;background:var(--color-bg-container);border-top:1px solid var(--color-border);bottom:0;box-shadow:0 -1px 3px #1018280a;display:flex;height:calc(var(--layout-bottom-nav-height) + var(--safe-area-bottom));left:0;padding-bottom:var(--safe-area-bottom);position:fixed;right:0;z-index:var(--z-sidebar)}body.lms-chat-open .lms-bottom-nav,body.lms-keyboard-open .lms-bottom-nav{display:none}body.lms-chat-open{overflow:hidden}.lms-bottom-nav__item{-webkit-tap-highlight-color:transparent;align-items:center;background:#0000;border:0;color:var(--color-text-tertiary);cursor:pointer;display:flex;flex:1 1;flex-direction:column;font:inherit;gap:3px;justify-content:center;min-width:0;padding:6px 2px;text-decoration:none;transition:color var(--motion-fast)}.lms-bottom-nav__item:focus,.lms-bottom-nav__item:hover{color:var(--color-text-secondary);text-decoration:none}.lms-bottom-nav__item:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:-3px}.lms-bottom-nav__item--active,.lms-bottom-nav__item--active:hover{color:var(--color-primary)}.lms-bottom-nav__icon{border-radius:var(--radius-full);display:inline-flex;font-size:20px;line-height:1;padding:3px 14px;transition:background var(--motion-fast)}.lms-bottom-nav__item--active .lms-bottom-nav__icon{background:var(--color-primary-bg)}.lms-bottom-nav__label{font-size:10px;font-weight:500;letter-spacing:-.01em;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lms-more-sheet .ant-drawer-content{border-radius:var(--radius-lg) var(--radius-lg) 0 0}.lms-more-sheet .ant-drawer-body{padding-bottom:calc(var(--space-3) + var(--safe-area-bottom))!important}.lms-more-sheet__grid{grid-gap:var(--space-2);display:grid;gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(78px,1fr))}.lms-more-sheet__item{-webkit-tap-highlight-color:transparent;align-items:center;background:#0000;border:1px solid #0000;border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;display:flex;flex-direction:column;font:inherit;gap:var(--space-2);justify-content:flex-start;min-height:76px;padding:var(--space-3) var(--space-1);transition:background var(--motion-fast),color var(--motion-fast)}.lms-more-sheet__item:active{background:var(--color-bg-subtle)}.lms-more-sheet__item--active{background:var(--color-primary-bg);border-color:var(--color-primary-border);color:var(--color-primary)}.lms-more-sheet__icon{font-size:20px;line-height:1}.lms-more-sheet__label{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;font-size:11px;line-height:1.25;overflow:hidden;text-align:center}.lms-more-sheet__version{background:#0000;border:0;border-top:1px solid var(--color-border-subtle);color:var(--color-text-tertiary);cursor:pointer;display:inline-flex;font:inherit;font-size:var(--font-size-xs);gap:var(--space-2);margin-top:var(--space-3);padding:var(--space-3)}.lms-more-sheet__version,.lms-route-fallback{align-items:center;justify-content:center;width:100%}.lms-route-fallback{display:flex;min-height:60vh}.lms-header__brand{align-items:center;display:flex;gap:var(--space-2);min-width:0}.lms-header__brand-logo{border-radius:var(--radius-sm);flex-shrink:0;height:28px;object-fit:contain;width:28px}.lms-header__brand-name{color:var(--color-text-primary);font-size:15px;font-weight:700;letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lms-clock{align-items:flex-end;display:flex;flex-direction:column;line-height:var(--line-height-tight);min-width:120px;-webkit-user-select:none;user-select:none}.lms-clock__label{align-items:center;color:var(--color-text-tertiary);display:inline-flex;font-size:10px;font-weight:500;gap:4px;letter-spacing:.04em;text-transform:uppercase}.lms-clock__label-text{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lms-clock__time{font-feature-settings:"tnum";color:var(--color-text-primary);font-size:var(--font-size-md);font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:-.01em}@media (max-width:768px){.lms-clock{display:none}}.lms-page-container{display:flex;flex-direction:column;gap:var(--space-5);margin:0 auto;max-width:var(--layout-content-max-width);padding:var(--space-6);width:100%}.lms-page-container--bleed{gap:0;max-width:none;padding:0}.lms-page-container--narrow{max-width:720px}@media (max-width:768px){.lms-page-container{gap:var(--space-4);padding:var(--space-4) var(--space-3)}}.lms-page-header{display:flex;flex-direction:column;gap:var(--space-2);padding-bottom:var(--space-4)}.lms-page-header--bordered{border-bottom:1px solid var(--color-border)}.lms-page-header--compact{padding-bottom:var(--space-2)}.lms-page-header__breadcrumb{font-size:var(--font-size-xs)}.lms-page-header__row{align-items:flex-start;display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:space-between}.lms-page-header__title-block{align-items:center;display:flex;gap:var(--space-3);min-width:0}.lms-page-header__icon{align-items:center;background:var(--color-primary-bg);border-radius:var(--radius-md);color:var(--color-primary);display:inline-flex;flex-shrink:0;font-size:18px;height:36px;justify-content:center;width:36px}.lms-page-header__title-stack{display:flex;flex-direction:column;min-width:0}.lms-page-header__title.ant-typography{font-size:var(--font-size-2xl);font-weight:600;letter-spacing:-.02em;line-height:var(--line-height-tight);margin:0!important}.lms-page-header__subtitle{font-size:var(--font-size-sm);letter-spacing:-.005em;margin-top:2px}.lms-page-header__actions{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-2)}@media (max-width:768px){.lms-page-header__title.ant-typography{font-size:var(--font-size-xl)}.lms-page-header__icon{font-size:16px;height:32px;width:32px}}.lms-empty-state{align-items:center;color:var(--color-text-secondary);display:flex;flex-direction:column;gap:var(--space-2);justify-content:center;padding:var(--space-8) var(--space-4);text-align:center}.lms-empty-state--sm{padding:var(--space-5) var(--space-3)}.lms-empty-state--lg{padding:var(--space-12) var(--space-6)}.lms-empty-state__icon{align-items:center;background:var(--color-bg-muted);border-radius:var(--radius-full);color:var(--color-text-tertiary);display:inline-flex;font-size:26px;height:56px;justify-content:center;margin-bottom:var(--space-2);width:56px}.lms-empty-state--sm .lms-empty-state__icon{font-size:20px;height:40px;width:40px}.lms-empty-state--lg .lms-empty-state__icon{font-size:32px;height:72px;width:72px}.lms-empty-state__title.ant-typography{color:var(--color-text-primary);margin:0!important}.lms-empty-state__description{font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);max-width:420px}.lms-empty-state__action{margin-top:var(--space-3)}.lms-loading--page{min-height:320px;width:100%}.lms-loading--inline,.lms-loading--page{align-items:center;display:flex;justify-content:center}.lms-loading--inline{padding:var(--space-4)}.lms-loading--cards{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.lms-loading__card{background:var(--color-bg-container);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5)}.lms-loading--list{display:flex;flex-direction:column;gap:var(--space-3)}.lms-loading__list-row{align-items:center;background:var(--color-bg-container);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;gap:var(--space-3);padding:var(--space-3)}.lms-loading--table{background:var(--color-bg-container);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5)}.lms-error-state{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-10) var(--space-4);text-align:center}.lms-error-state,.lms-error-state__icon{align-items:center;justify-content:center}.lms-error-state__icon{background:var(--color-error-bg);border-radius:var(--radius-full);color:var(--color-error);display:inline-flex;font-size:26px;height:56px;margin-bottom:var(--space-2);width:56px}.lms-error-state__title.ant-typography{margin:0!important}.lms-error-state__description{font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);max-width:480px}.lms-error-state__action{margin-top:var(--space-4)}.lms-stat-card{background:var(--color-bg-container);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:var(--space-2);overflow:hidden;padding:var(--space-5);position:relative;transition:border-color var(--motion-base),box-shadow var(--motion-base),transform var(--motion-base)}.lms-stat-card:before{background:var(--color-border);background:var(--accent,var(--color-border));border-radius:var(--radius-lg) 0 0 var(--radius-lg);bottom:0;content:"";left:0;position:absolute;top:0;width:3px}.lms-stat-card--neutral{--accent:var(--color-gray-300)}.lms-stat-card--primary{--accent:var(--color-primary)}.lms-stat-card--success{--accent:var(--color-success)}.lms-stat-card--warning{--accent:var(--color-warning)}.lms-stat-card--danger{--accent:var(--color-error)}.lms-stat-card--interactive{cursor:pointer}.lms-stat-card--interactive:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}.lms-stat-card--interactive:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.lms-stat-card__head{align-items:center;display:flex;gap:var(--space-2);justify-content:space-between}.lms-stat-card__label{font-size:var(--font-size-sm);font-weight:500}.lms-stat-card__icon{align-items:center;background:var(--color-bg-muted);border-radius:var(--radius-md);color:var(--color-text-secondary);display:inline-flex;font-size:16px;height:32px;justify-content:center;width:32px}.lms-stat-card--primary .lms-stat-card__icon{background:var(--color-primary-bg);color:var(--color-primary)}.lms-stat-card--success .lms-stat-card__icon{background:var(--color-success-bg);color:var(--color-success)}.lms-stat-card--warning .lms-stat-card__icon{background:var(--color-warning-bg);color:var(--color-warning)}.lms-stat-card--danger .lms-stat-card__icon{background:var(--color-error-bg);color:var(--color-error)}.lms-stat-card__value-row{align-items:baseline;display:flex;gap:var(--space-1)}.lms-stat-card__value{font-feature-settings:"tnum";color:var(--color-text-primary);font-size:var(--font-size-3xl);font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:-.025em;line-height:var(--line-height-tight)}.lms-stat-card__unit{color:var(--color-text-secondary);font-size:var(--font-size-md);font-weight:500}.lms-stat-card__foot{align-items:center;display:flex;font-size:var(--font-size-xs);gap:var(--space-2)}.lms-stat-card__trend{align-items:center;border-radius:var(--radius-sm);display:inline-flex;font-weight:600;gap:4px;padding:2px 6px}.lms-stat-card__trend--up{background:var(--color-success-bg);color:var(--color-success)}.lms-stat-card__trend--down{background:var(--color-error-bg);color:var(--color-error)}.lms-stat-card__trend--flat{background:var(--color-bg-muted);color:var(--color-text-secondary)}.lms-stat-card__help{font-size:var(--font-size-xs)}@media (max-width:768px){.lms-stat-card{padding:var(--space-4)}.lms-stat-card__value{font-size:var(--font-size-2xl)}}.lms-section-card{background:var(--color-bg-container);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden}.lms-section-card__head{align-items:center;border-bottom:1px solid var(--color-border);display:flex;gap:var(--space-3);justify-content:space-between;min-height:52px;padding:var(--space-4) var(--space-5)}.lms-section-card__title{align-items:center;color:var(--color-text-primary);display:flex;font-size:var(--font-size-md);font-weight:600;gap:var(--space-2);letter-spacing:-.01em;margin:0}.lms-section-card__title-icon{color:var(--color-text-secondary);font-size:16px}.lms-section-card__actions{align-items:center;display:flex;gap:var(--space-2)}.lms-section-card__body{padding:var(--space-4) var(--space-5)}.lms-section-card__body--flush{padding:0}@media (max-width:768px){.lms-section-card__body,.lms-section-card__head{padding:var(--space-3) var(--space-4)}}.lms-notfound{align-items:center;display:flex;flex-direction:column;gap:var(--space-3);justify-content:center;min-height:70vh;padding:var(--space-12) var(--space-4);text-align:center}.lms-notfound__code{background:linear-gradient(135deg,var(--color-primary) 0,var(--color-role-admin) 100%);background-clip:text;-webkit-background-clip:text;color:#0000;font-size:120px;font-weight:700;letter-spacing:-.04em;line-height:1;margin-bottom:var(--space-2)}.lms-notfound__title{color:var(--color-text-primary);font-size:var(--font-size-2xl);font-weight:600;letter-spacing:-.02em;margin:0}.lms-notfound__description{color:var(--color-text-secondary);font-size:var(--font-size-md);line-height:var(--line-height-relaxed);margin:0 0 var(--space-4) 0;max-width:420px}@media (max-width:480px){.lms-notfound__code{font-size:88px}}.lms-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-2)}.lms-toolbar>*{min-width:0}@media (max-width:768px){.lms-toolbar{width:100%}.lms-toolbar>*{flex:1 1 auto;min-width:160px}}.lms-toolbar__search{min-width:220px}@media (max-width:768px){.lms-toolbar__search{flex-basis:100%;min-width:0;width:100%}}.lms-page-meta{align-items:center;color:var(--color-text-secondary);display:flex;flex-wrap:wrap;font-size:var(--font-size-xs);gap:var(--space-3);padding:var(--space-2) 0}.lms-page-meta__divider,.lms-page-meta__metric-label{color:var(--color-text-tertiary)}.lms-page-meta__metric-label{margin-right:4px}.lms-page-meta__metric-value{font-feature-settings:"tnum";color:var(--color-text-primary);font-variant-numeric:tabular-nums;font-weight:500}.lms-list,.lms-list-card{display:flex;flex-direction:column;gap:var(--space-3)}.lms-list-card{background:var(--color-bg-container);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);position:relative;transition:border-color var(--motion-fast),box-shadow var(--motion-fast)}.lms-list-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.lms-list-card__head{align-items:flex-start;display:flex;gap:var(--space-2);justify-content:space-between}.lms-list-card__index{color:var(--color-text-tertiary);font-size:var(--font-size-xs);letter-spacing:.04em}.lms-list-card__title{align-items:center;color:var(--color-text-primary);display:flex;font-size:var(--font-size-lg);font-weight:600;gap:var(--space-2);letter-spacing:-.01em;line-height:var(--line-height-snug);margin:2px 0 0}.lms-list-card__rows{display:flex;flex-direction:column;font-size:var(--font-size-sm);gap:var(--space-2)}.lms-list-card__row{align-items:center;display:flex;gap:var(--space-2)}.lms-list-card__row-icon{color:var(--color-text-tertiary);font-size:14px}.lms-list-card__row-label{color:var(--color-text-secondary)}.lms-list-card__row-value{color:var(--color-text-primary);font-weight:500}.lms-list-card__excerpt.ant-typography{color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);margin:0!important}.lms-list-card__actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.lms-list-card__actions>.ant-btn{flex:1 1 auto}.lms-list-card__actions>.lms-list-card__actions-secondary{flex:0 0 auto}.lms-list__empty{background:var(--color-bg-container);border:1px dashed var(--color-border);border-radius:var(--radius-md);padding:var(--space-8) var(--space-4);text-align:center}.lms-list__paginator{font-feature-settings:"tnum";align-items:center;background:var(--color-bg-container);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);display:flex;font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;gap:var(--space-3);justify-content:space-between;padding:var(--space-3) var(--space-4)}.lms-pt-card{cursor:pointer;overflow:hidden}.lms-pt-card:before{background:var(--color-primary);background:var(--lms-pt-accent,var(--color-primary));bottom:0;content:"";left:0;position:absolute;top:0;width:3px}.lms-pt-card--primary{--lms-pt-accent:var(--color-primary)}.lms-pt-card--success{--lms-pt-accent:var(--color-success)}.lms-pt-card--danger{--lms-pt-accent:var(--color-error)}.lms-pt-card__actions{margin-left:auto}.lms-lesson-card:before{background:var(--color-border-strong);background:var(--lms-lesson-accent,var(--color-border-strong));bottom:0;content:"";left:0;position:absolute;top:0;width:3px}.lms-lesson-card--success{--lms-lesson-accent:var(--color-success)}.lms-lesson-card--danger{--lms-lesson-accent:var(--color-error)}.lms-lesson-card--primary{--lms-lesson-accent:var(--color-primary)}.lms-lesson-card--muted{--lms-lesson-accent:var(--color-border-strong)}.lms-lesson-card--next{background:var(--color-primary-bg)}.lms-auth{align-items:center;background:var(--color-bg-page);display:flex;justify-content:center;min-height:100vh;overflow:hidden;padding:var(--space-6) var(--space-4);position:relative;width:100%}.lms-auth:before{background:radial-gradient(circle at 18% 22%,#1890ff1a,#0000 50%),radial-gradient(circle at 84% 78%,#6366f11a,#0000 55%),linear-gradient(180deg,var(--color-gray-50) 0,var(--color-bg-page) 100%);content:"";inset:0;pointer-events:none;position:absolute;z-index:0}.lms-auth__card{background:var(--color-bg-container);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:0 1px 2px #1018280a,0 20px 50px -20px #1018281a;max-width:440px;padding:var(--space-10) var(--space-8);position:relative;width:100%;z-index:1}@media (max-width:480px){.lms-auth__card{border-radius:var(--radius-lg);padding:var(--space-6) var(--space-5)}}.lms-auth__brand{align-items:center;display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-8);text-align:center}.lms-auth__logo{background:var(--color-primary-bg);border-radius:var(--radius-lg);height:56px;object-fit:contain;padding:8px;width:56px}.lms-auth__title{color:var(--color-text-primary);font-size:var(--font-size-2xl);font-weight:600;letter-spacing:-.02em;line-height:var(--line-height-tight);margin:0!important}.lms-auth__subtitle{color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-snug);margin:0;max-width:320px}.lms-auth__form .ant-form-item-label>label{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:500}.lms-auth__row{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:space-between;margin-bottom:var(--space-5)}.lms-auth__link{color:var(--color-primary);font-size:var(--font-size-sm);font-weight:500;text-decoration:none;transition:color var(--motion-fast)}.lms-auth__link:hover{color:var(--color-primary-active);text-decoration:underline}.lms-auth__submit{border-radius:var(--radius-md)!important;box-shadow:0 1px 2px #1018280a;font-size:var(--font-size-lg)!important;font-weight:500!important;height:44px!important}.lms-auth__footer{border-top:1px solid var(--color-border);margin-top:var(--space-6);padding-top:var(--space-5);text-align:center}.lms-auth__footer-text{color:var(--color-text-tertiary);font-size:var(--font-size-xs);letter-spacing:.02em}.lms-auth__footer-brand{color:var(--color-text-secondary);font-weight:600;letter-spacing:.04em}.lms-auth__status{padding:var(--space-4) 0;text-align:center}.lms-auth__status-icon{align-items:center;border-radius:var(--radius-full);display:inline-flex;font-size:32px;height:64px;justify-content:center;margin-bottom:var(--space-4);width:64px}.lms-auth__status-icon--success{background:var(--color-success-bg);color:var(--color-success)}.lms-auth__status-title{color:var(--color-text-primary);font-size:var(--font-size-2xl);font-weight:600;letter-spacing:-.015em;margin:0 0 var(--space-3) 0}.lms-auth__status-message{color:var(--color-text-secondary);font-size:var(--font-size-md);line-height:var(--line-height-relaxed);margin:0 0 var(--space-2) 0}.lms-auth__status-hint{color:var(--color-text-tertiary);font-size:var(--font-size-sm);margin:0 0 var(--space-6) 0}.lms-auth__back{align-items:center;color:var(--color-text-secondary);display:inline-flex;font-size:var(--font-size-sm);font-weight:500;gap:6px;text-decoration:none;transition:color var(--motion-fast)}.lms-auth__back:hover{color:var(--color-primary)}.lms-auth__error{color:var(--color-error);display:block;font-size:var(--font-size-sm);margin-top:var(--space-2)}*{box-sizing:border-box;margin:0;padding:0;scrollbar-color:#d1d5db #0000;scrollbar-color:var(--scrollbar-thumb) #0000;scrollbar-width:thin}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background-color:#d1d5db;background-color:var(--scrollbar-thumb);border-radius:4px}::-webkit-scrollbar-thumb:hover{background-color:#9ca3af;background-color:var(--scrollbar-thumb-hover)}#root,body,html{font-feature-settings:"liga" 1,"calt" 1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f9fafb;background-color:var(--color-bg-page);color:#111827;color:var(--color-text-primary);font-family:JetBrains Mono,SF Mono,Fira Code,Menlo,Consolas,Segoe UI,sans-serif;font-family:var(--font-family-base);font-size:13px;font-size:var(--font-size-md);height:100%;letter-spacing:-.005em;margin:0!important;padding:0!important;text-rendering:optimizeLegibility;width:100%}.ant-tag,.ant-typography,.question-text{font-family:JetBrains Mono,SF Mono,Fira Code,Menlo,Consolas,Segoe UI,sans-serif;font-family:var(--font-family-base)}.ant-layout-content>div{margin:0}.ant-table-thead>tr>th{white-space:nowrap}:focus-visible{border-radius:6px;border-radius:var(--radius-sm);outline:2px solid #1890ff73;outline:2px solid var(--color-focus-ring);outline-offset:2px}.ant-btn:focus-visible{outline:none}:root{--color-primary:#1890ff;--color-primary-hover:#4099ff;--color-primary-active:#096dd9;--color-primary-dark:#002766;--color-primary-bg:#e6f4ff;--color-primary-bg-hover:#bae0ff;--color-primary-border:#91caff;--color-success:#16a34a;--color-success-bg:#f0fdf4;--color-warning:#f59e0b;--color-warning-bg:#fffbeb;--color-error:#ef4444;--color-error-bg:#fef2f2;--color-info:#1890ff;--color-info-bg:#e6f4ff;--color-gray-25:#fcfcfd;--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-text-primary:var(--color-gray-900);--color-text-secondary:var(--color-gray-600);--color-text-tertiary:var(--color-gray-400);--color-text-on-primary:#fff;--color-bg-page:var(--color-gray-50);--color-bg-container:#fff;--color-bg-elevated:#fff;--color-bg-subtle:var(--color-gray-50);--color-bg-muted:var(--color-gray-100);--color-border:var(--color-gray-200);--color-border-strong:var(--color-gray-300);--color-border-subtle:var(--color-gray-100);--color-role-admin:#6366f1;--color-role-teacher:#10b981;--color-role-student:#f59e0b;--color-sidebar-bg:#0b1220;--color-sidebar-bg-elevated:#111a2e;--color-sidebar-text:#ffffffb8;--color-sidebar-text-muted:#ffffff73;--color-sidebar-text-active:#fff;--color-sidebar-divider:#ffffff14;--color-online:#22c55e;--color-offline:#ef4444;--color-focus-ring:#1890ff73;--scrollbar-thumb:var(--color-gray-300);--scrollbar-thumb-hover:var(--color-gray-400);--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-xs:var(--space-1);--space-sm:var(--space-2);--space-md:var(--space-3);--space-lg:var(--space-4);--space-xl:var(--space-6);--space-2xl:var(--space-8);--space-3xl:var(--space-12);--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:20px;--radius-full:9999px;--shadow-xs:0 1px 2px #1018280a;--shadow-sm:0 1px 3px #1018280f,0 1px 2px #1018280a;--shadow-md:0 4px 8px -2px #1018280f,0 2px 4px -2px #1018280a;--shadow-lg:0 12px 16px -4px #10182814,0 4px 6px -2px #10182808;--shadow-xl:0 20px 24px -4px #1018281a,0 8px 8px -4px #1018280a;--shadow-header:0 1px 0 #1018280f;--font-family-base:"JetBrains Mono","SF Mono","Fira Code",Menlo,Consolas,"Segoe UI",sans-serif;--font-family-mono:"JetBrains Mono","SF Mono","Fira Code",Menlo,Consolas,monospace;--font-size-xs:11px;--font-size-sm:12px;--font-size-md:13px;--font-size-lg:15px;--font-size-xl:16px;--font-size-2xl:19px;--font-size-3xl:24px;--font-size-display:30px;--line-height-tight:1.15;--line-height-snug:1.3;--line-height-normal:1.45;--line-height-relaxed:1.6;--layout-sidebar-width:248px;--layout-sidebar-collapsed-width:72px;--layout-header-height:60px;--layout-content-max-width:1440px;--layout-bottom-nav-height:56px;--safe-area-top:env(safe-area-inset-top,0px);--safe-area-right:env(safe-area-inset-right,0px);--safe-area-bottom:env(safe-area-inset-bottom,0px);--safe-area-left:env(safe-area-inset-left,0px);--motion-fast:120ms cubic-bezier(0.4,0,0.2,1);--motion-base:200ms cubic-bezier(0.4,0,0.2,1);--motion-slow:320ms cubic-bezier(0.4,0,0.2,1);--z-sticky:100;--z-drawer:900;--z-header:999;--z-sidebar:1000;--z-modal:1100;--z-toast:1200;--modal-content-bg:#fff}.lms-page{margin:0 auto;max-width:1440px;max-width:var(--layout-content-max-width);padding:24px;padding:var(--space-6);width:100%}@media (max-width:768px){.lms-page{padding:16px 12px;padding:var(--space-4) var(--space-3)}}.lms-stack-md>*+*{margin-top:16px;margin-top:var(--space-4)}.lms-stack-lg>*+*{margin-top:24px;margin-top:var(--space-6)}.lms-text-secondary{color:#4b5563;color:var(--color-text-secondary)}.lms-text-muted{color:#9ca3af;color:var(--color-text-tertiary)}.ant-card,.ant-card-bordered{border-color:#e5e7eb;border-color:var(--color-border)}.ant-card-head{border-bottom-color:#e5e7eb;border-bottom-color:var(--color-border);min-height:48px;padding:0 20px;padding:0 var(--space-5)}.ant-card-head-title{font-weight:600}.ant-card-hoverable:hover{box-shadow:0 4px 8px -2px #1018280f,0 2px 4px -2px #1018280a;box-shadow:var(--shadow-md);transform:translateY(-1px);transition:box-shadow .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1);transition:box-shadow var(--motion-base),transform var(--motion-base)}.ant-table-thead>tr>th{color:#4b5563;color:var(--color-text-secondary);font-size:12px;font-size:var(--font-size-sm);font-weight:600}.ant-table-tbody>tr:hover>td,.ant-table-thead>tr>th{background:#f9fafb;background:var(--color-bg-subtle)}.ant-modal-header{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--color-border);padding-bottom:12px;padding-bottom:var(--space-3)}.ant-modal-title{font-weight:600}.ant-tag{border-radius:6px;border-radius:var(--radius-sm);font-weight:500;padding:0 8px}.ant-empty-description{color:#4b5563;color:var(--color-text-secondary)}.ant-typography h1.ant-typography,.ant-typography h2.ant-typography,.ant-typography h3.ant-typography,.ant-typography h4.ant-typography,.ant-typography h5.ant-typography{font-weight:600;letter-spacing:-.015em;line-height:1.15;line-height:var(--line-height-tight)}.ant-card-head{min-height:44px;padding-inline:16px;padding-inline:var(--space-4)}.ant-card .ant-card-body{padding:16px;padding:var(--space-4)}.ant-table-tbody>tr>td,.ant-table-thead>tr>th{padding:12px!important;padding:var(--space-3) var(--space-3)!important}.ant-tag{font-size:11px;font-size:var(--font-size-xs);padding-inline:6px}.ant-menu-item,.ant-menu-submenu-title{letter-spacing:-.01em}.ant-typography.ant-typography-secondary{color:#4b5563;color:var(--color-text-secondary)}.ant-input,.ant-input-affix-wrapper,.ant-picker,.ant-select-selector{border-color:#d1d5db!important;border-color:var(--color-border-strong)!important}.ant-input-affix-wrapper:hover,.ant-input:hover,.ant-picker:hover,.ant-select:not(.ant-select-disabled):hover .ant-select-selector{border-color:#1890ff!important;border-color:var(--color-primary)!important}.ant-menu-dark .ant-menu-sub,.ant-menu.ant-menu-dark{background:#0000}.ant-menu-dark .ant-menu-item{border-radius:8px;border-radius:var(--radius-md);margin-inline:8px;margin-inline:var(--space-2);width:calc(100% - 16px);width:calc(100% - var(--space-4))}.ant-menu-dark .ant-menu-item-selected{background-color:#1890ff2e!important;color:#fff!important}.ant-menu-dark .ant-menu-item:hover{background-color:#ffffff0f!important}.ant-btn{font-weight:500;transition:background-color .12s cubic-bezier(.4,0,.2,1),border-color .12s cubic-bezier(.4,0,.2,1),color .12s cubic-bezier(.4,0,.2,1),box-shadow .12s cubic-bezier(.4,0,.2,1),transform .12s cubic-bezier(.4,0,.2,1);transition:background-color var(--motion-fast),border-color var(--motion-fast),color var(--motion-fast),box-shadow var(--motion-fast),transform var(--motion-fast)}.ant-btn:active:not(:disabled){transform:translateY(.5px)}.ant-btn-primary:not(:disabled){box-shadow:0 1px 2px #1018280a}.ant-btn-primary:not(:disabled):hover{box-shadow:0 2px 4px #1890ff2e}.lms-section-divider{background:#e5e7eb;background:var(--color-border);border:0;height:1px;margin:24px 0;margin:var(--space-6) 0}.ant-dropdown-menu,.ant-picker-dropdown .ant-picker-panel-container,.ant-popover-inner,.ant-select-dropdown{border-radius:12px!important;border-radius:var(--radius-lg)!important;box-shadow:0 12px 16px -4px #10182814,0 4px 6px -2px #10182808!important;box-shadow:var(--shadow-lg)!important}.ant-dropdown-menu{padding:6px!important}.ant-dropdown-menu-item{border-radius:6px!important;border-radius:var(--radius-sm)!important;font-size:12px;font-size:var(--font-size-sm);padding:6px 10px!important;transition:background .12s cubic-bezier(.4,0,.2,1);transition:background var(--motion-fast)}.ant-dropdown-menu-item:hover{background:#f9fafb!important;background:var(--color-bg-subtle)!important}.ant-dropdown-menu-item-danger,.ant-dropdown-menu-item-danger>.ant-dropdown-menu-title-content,.ant-dropdown-menu-item-danger>.ant-dropdown-menu-title-content>*{color:#ef4444!important;color:var(--color-error)!important}.ant-dropdown-menu-item-danger:hover{background:#ff4d4f1a!important}.ant-dropdown-menu-item-danger:hover,.ant-dropdown-menu-item-danger:hover>.ant-dropdown-menu-title-content,.ant-dropdown-menu-item-danger:hover>.ant-dropdown-menu-title-content>*{color:#ef4444!important;color:var(--color-error)!important}.ant-modal-content{border-radius:12px!important;border-radius:var(--radius-lg)!important;box-shadow:0 1px 2px #1018280a,0 32px 64px -12px #10182833!important}.ant-modal-footer{padding-top:12px;padding-top:var(--space-3)}.ant-drawer-content{box-shadow:-20px 0 40px -10px #1018281f}.ant-drawer-header{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--color-border);padding:16px 20px;padding:var(--space-4) var(--space-5)}.ant-drawer-title{font-weight:600}.ant-input-affix-wrapper-focused,.ant-input-focused,.ant-input:focus,.ant-picker-focused,.ant-select-focused .ant-select-selector{box-shadow:0 0 0 3px #1890ff26!important}.ant-form-item-label>label{color:#111827;color:var(--color-text-primary);font-size:12px!important;font-size:var(--font-size-sm)!important;font-weight:500!important;letter-spacing:-.005em}.ant-form-item-explain-error{font-size:11px;font-size:var(--font-size-xs);margin-top:4px}.ant-pagination .ant-pagination-item,.ant-pagination .ant-pagination-next .ant-pagination-item-link,.ant-pagination .ant-pagination-prev .ant-pagination-item-link{border-radius:6px!important;border-radius:var(--radius-sm)!important}.ant-badge-count{border-radius:8px!important;box-shadow:0 0 0 1.5px #fff;box-shadow:0 0 0 1.5px var(--color-bg-container);font-size:10px!important;height:16px!important;line-height:16px!important;min-width:16px!important;padding:0 4px!important}.ant-switch{transition:background-color .2s cubic-bezier(.4,0,.2,1);transition:background-color var(--motion-base)}::selection{background:#1890ff33}.ant-btn[disabled],.ant-btn[disabled]:hover{background:#f3f4f6!important;background:var(--color-bg-muted)!important;border-color:#e5e7eb!important;border-color:var(--color-border)!important;color:#9ca3af!important;color:var(--color-text-tertiary)!important}.ant-card-hoverable{transition:border-color .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1);transition:border-color var(--motion-base),box-shadow var(--motion-base),transform var(--motion-base)}.ant-alert{border-radius:8px;border-radius:var(--radius-md);padding-inline:16px;padding-inline:var(--space-4)}.ant-alert-banner{border-radius:0}.ant-tooltip-inner{border-radius:6px!important;border-radius:var(--radius-sm)!important;box-shadow:0 4px 8px -2px #1018280f,0 2px 4px -2px #1018280a!important;box-shadow:var(--shadow-md)!important;min-height:24px;padding:4px 8px!important}.ant-progress-line,.ant-tooltip-inner{font-size:11px;font-size:var(--font-size-xs)}@media (max-width:768px){.ant-btn{min-height:36px}body{font-size:13px;font-size:var(--font-size-md)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
/*# sourceMappingURL=main.b5024a46.css.map*/