.mai-app{display:grid;grid-template-columns:var(--mai-sidebar-w) minmax(0,1fr);min-height:100vh;background:var(--mai-bg)}.mai-app--admin{--mai-sidebar-w:268px}.mai-app__main{min-width:0;display:flex;flex-direction:column}.mai-app__body{flex:1;padding:22px 26px 40px}.mai-app__body--flush{padding:0}.mai-sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:6px;padding:20px 14px;background:var(--mai-bg-soft);border-right:1px solid var(--mai-line);overflow-y:auto}.mai-sidebar__brand{display:flex;align-items:center;gap:10px;padding:4px 8px 22px}.mai-sidebar__brand .mai-logo__text{font-size:1rem}.mai-sidebar__brand-sub{display:block;font-size:11px;color:var(--mai-text-3);font-weight:500}.mai-sidebar__label{padding:18px 12px 7px;font-size:10.5px;font-weight:700;letter-spacing:.09em;color:var(--mai-text-3);text-transform:uppercase}.mai-sidebar__nav{display:flex;flex-direction:column;gap:2px;list-style:none;margin:0;padding:0}.mai-sidebar__link{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--mai-r-md);border:1px solid transparent;font-size:var(--mai-fs-base);font-weight:500;color:var(--mai-text-2);transition:background var(--mai-t-fast),color var(--mai-t-fast),border-color var(--mai-t-fast)}.mai-sidebar__link svg{width:18px;height:18px;flex:none;opacity:.85}.mai-sidebar__link:hover{background:rgba(255,255,255,.045);color:var(--mai-text)}.mai-sidebar__link.is-active{background:var(--mai-surface-2);border-color:var(--mai-line-strong);color:var(--mai-text);font-weight:600}.mai-sidebar__link.is-active svg{color:var(--mai-violet);opacity:1}.mai-sidebar__link .mai-badge{margin-left:auto}.mai-sidebar__cta{margin:14px 0 6px;display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:var(--mai-r-md);background:var(--mai-grad-panel);border:1px solid var(--mai-line-brand);font-size:var(--mai-fs-base);font-weight:600}.mai-sidebar__cta svg{width:17px;height:17px}.mai-sidebar__cta .mai-ext{margin-left:auto;opacity:.6}.mai-sidebar__foot{margin-top:auto;padding-top:16px}.mai-sidebar__user{display:flex;align-items:center;gap:11px;padding:11px;border-radius:var(--mai-r-md);border:1px solid var(--mai-line);background:var(--mai-surface);cursor:pointer;width:100%;text-align:left;font:inherit;color:inherit}.mai-sidebar__user:hover{border-color:var(--mai-line-strong)}.mai-sidebar__user-name{font-size:var(--mai-fs-sm);font-weight:600;line-height:1.3}.mai-sidebar__user-mail{font-size:11px;color:var(--mai-text-3)}.mai-sidebar__user svg{margin-left:auto;width:15px;height:15px;color:var(--mai-text-3)}.mai-sidebar__divider{height:1px;background:var(--mai-line);margin:14px 8px}.mai-topbar{display:flex;align-items:center;gap:18px;padding:16px 26px;border-bottom:1px solid var(--mai-line);background:rgba(12,9,18,.8);backdrop-filter:blur(14px);position:sticky;top:0;z-index:100}.mai-topbar__greet{display:flex;align-items:center;gap:13px}.mai-topbar__greet h1{font-size:var(--mai-fs-md);margin:0;line-height:1.25}.mai-topbar__greet p{font-size:var(--mai-fs-xs);color:var(--mai-text-3);margin:0}.mai-topbar__title h1{font-size:var(--mai-fs-xl);margin:0 0 2px}.mai-topbar__title p{font-size:var(--mai-fs-sm);color:var(--mai-text-3);margin:0}.mai-topbar__actions{display:flex;align-items:center;gap:12px;margin-left:auto}.mai-topbar__search{flex:1;max-width:420px;margin-left:auto}.mai-topbar__search input{background:var(--mai-surface)}.mai-kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%);padding:3px 7px;border-radius:6px;border:1px solid var(--mai-line-strong);background:var(--mai-surface-2);font-size:11px;color:var(--mai-text-3)}.mai-icon-btn{position:relative;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1px solid var(--mai-line);background:var(--mai-surface);color:var(--mai-text-2);cursor:pointer;transition:color var(--mai-t-fast),border-color var(--mai-t-fast)}.mai-icon-btn:hover{color:var(--mai-text);border-color:var(--mai-line-strong)}.mai-icon-btn svg{width:17px;height:17px}.mai-icon-btn__dot{position:absolute;top:-3px;right:-3px;min-width:17px;height:17px;padding:0 4px;display:grid;place-items:center;border-radius:99px;background:var(--mai-grad-brand);border:2px solid var(--mai-bg-soft);font-size:10px;font-weight:700;color:#fff}@media (max-width:1080px){.mai-app{grid-template-columns:minmax(0,1fr)}.mai-sidebar{position:fixed;left:0;top:0;bottom:0;z-index:600;width:272px;transform:translateX(-100%);transition:transform var(--mai-t);box-shadow:var(--mai-shadow-lg)}.mai-sidebar.is-open{transform:none}.mai-app__overlay{position:fixed;inset:0;z-index:590;background:rgba(4,3,8,.7);opacity:0;visibility:hidden;transition:opacity var(--mai-t),visibility var(--mai-t)}.mai-app__overlay.is-visible{opacity:1;visibility:visible}.mai-app__body{padding:18px var(--mai-gutter) 36px}.mai-topbar{padding:14px var(--mai-gutter)}.mai-topbar__search{display:none}}.mai-sidebar-toggle{display:none}@media (max-width:1080px){.mai-sidebar-toggle{display:grid}}.mai-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.mai-stats--5{grid-template-columns:repeat(5,minmax(0,1fr))}.mai-stat{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:var(--mai-r-lg);border:1px solid var(--mai-line);background:var(--mai-surface)}.mai-stat__label{font-size:var(--mai-fs-xs);color:var(--mai-text-3);display:block;margin-bottom:3px}.mai-stat__value{font-size:var(--mai-fs-xl);font-weight:700;line-height:1.1;letter-spacing:-.02em}.mai-stat__value small{font-size:var(--mai-fs-base);font-weight:500;color:var(--mai-text-3)}.mai-stat__delta{font-size:var(--mai-fs-xs);font-weight:600;margin-left:7px}.mai-stat__delta--up{color:var(--mai-success)}.mai-stat__delta--down{color:var(--mai-danger)}.mai-stat__note{font-size:11px;color:var(--mai-text-3);margin-top:2px}.mai-stat--stacked{flex-direction:column;align-items:flex-start;gap:10px}@media (max-width:1280px){.mai-stats--5{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:1024px){.mai-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.mai-stats,.mai-stats--5{grid-template-columns:minmax(0,1fr)}}.mai-dash{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}@media (max-width:1180px){.mai-dash{grid-template-columns:minmax(0,1fr)}}.mai-block{border-radius:var(--mai-r-lg);border:1px solid var(--mai-line);background:var(--mai-surface);overflow:hidden;margin-bottom:18px}.mai-block__head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;border-bottom:1px solid var(--mai-line)}.mai-block__head h2{font-size:var(--mai-fs-md);margin:0}.mai-block__head .mai-btn--link{font-size:var(--mai-fs-sm)}.mai-block__body{padding:18px}.mai-block__body--flush{padding:0}.mai-resume{display:flex;align-items:center;gap:16px}.mai-resume__thumb{width:120px;aspect-ratio:16 / 10;border-radius:var(--mai-r-md);overflow:hidden;flex:none;background:var(--mai-surface-2)}.mai-resume__thumb img{width:100%;height:100%;object-fit:cover}.mai-resume__info{flex:1;min-width:0}.mai-resume__info h3{font-size:var(--mai-fs-base);margin:0 0 3px}.mai-resume__info p{font-size:var(--mai-fs-xs);color:var(--mai-text-3);margin:0 0 12px}@media (max-width:620px){.mai-resume{flex-wrap:wrap}.mai-resume__thumb{width:100%}.mai-resume .mai-btn{width:100%}}.mai-calendar__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.mai-calendar__month{font-size:var(--mai-fs-sm);font-weight:600}.mai-calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}.mai-calendar__dow{font-size:10px;color:var(--mai-text-3);padding-bottom:5px}.mai-calendar__day{aspect-ratio:1;display:grid;place-items:center;border-radius:50%;font-size:var(--mai-fs-xs);color:var(--mai-text-2);cursor:default}.mai-calendar__day--muted{color:var(--mai-text-3);opacity:.4}.mai-calendar__day--today{background:var(--mai-grad-brand);color:#fff;font-weight:700}.mai-calendar__day--event{position:relative;color:var(--mai-text);font-weight:600}.mai-calendar__day--event::after{content:"";position:absolute;bottom:3px;left:50%;transform:translateX(-50%);width:3px;height:3px;border-radius:50%;background:var(--mai-pink)}.mai-event{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--mai-line)}.mai-event:last-child{border-bottom:0}.mai-event__date{width:38px;flex:none;text-align:center;line-height:1.1}.mai-event__day{display:block;font-size:var(--mai-fs-md);font-weight:700}.mai-event__month{font-size:10px;color:var(--mai-text-3);text-transform:uppercase}.mai-event__title{font-size:var(--mai-fs-sm);font-weight:500}.mai-event__time{font-size:var(--mai-fs-xs);color:var(--mai-text-3);margin-left:auto}.mai-my-courses{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.mai-mini-course__thumb{aspect-ratio:4 / 3;border-radius:var(--mai-r-md);overflow:hidden;margin-bottom:10px;background:var(--mai-surface-2)}.mai-mini-course__thumb img{width:100%;height:100%;object-fit:cover}.mai-mini-course h4{font-size:var(--mai-fs-sm);margin:0 0 8px;line-height:1.35}@media (max-width:1024px){.mai-my-courses{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:480px){.mai-my-courses{grid-template-columns:minmax(0,1fr)}}.mai-player{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}.mai-player__main{border-radius:var(--mai-r-lg);border:1px solid var(--mai-line);background:var(--mai-surface);overflow:hidden}.mai-player__bar{display:flex;align-items:center;gap:12px;padding:13px 18px;border-bottom:1px solid var(--mai-line);font-size:var(--mai-fs-xs);color:var(--mai-text-3)}.mai-player__bar .mai-breadcrumb{margin:0}.mai-player__bar .mai-btn{margin-left:auto}.mai-player__stage{position:relative;aspect-ratio:16 / 9;background:#000}.mai-player__stage video,.mai-player__stage iframe{width:100%;height:100%;border:0;display:block;object-fit:cover}.mai-player__info{padding:18px}.mai-player__info h2{font-size:var(--mai-fs-md);margin:0 0 6px}.mai-player__info p{font-size:var(--mai-fs-sm);color:var(--mai-text-3);margin:0}.mai-player__foot{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px;border-top:1px solid var(--mai-line)}.mai-lesson-list{border-radius:var(--mai-r-lg);border:1px solid var(--mai-line);background:var(--mai-surface);overflow:hidden;position:sticky;top:88px;max-height:calc(100vh - 110px);display:flex;flex-direction:column}.mai-lesson-list__head{padding:16px 18px;border-bottom:1px solid var(--mai-line)}.mai-lesson-list__head h3{font-size:var(--mai-fs-base);margin:0 0 2px}.mai-lesson-list__head span{font-size:var(--mai-fs-xs);color:var(--mai-text-3)}.mai-lesson-list__items{overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:2px}.mai-lesson-item{display:flex;align-items:center;gap:11px;padding:10px 11px;border-radius:var(--mai-r-md);border:1px solid transparent;font-size:var(--mai-fs-sm);color:var(--mai-text-2);transition:background var(--mai-t-fast),border-color var(--mai-t-fast),color var(--mai-t-fast)}.mai-lesson-item:hover{background:rgba(255,255,255,.04);color:var(--mai-text)}.mai-lesson-item.is-current{background:rgba(168,85,247,.12);border-color:var(--mai-line-brand);color:var(--mai-text)}.mai-lesson-item.is-locked{opacity:.45;pointer-events:none}.mai-lesson-item__icon{display:grid;place-items:center;width:26px;height:26px;flex:none;border-radius:8px;border:1px solid var(--mai-line-strong);background:var(--mai-surface-2);color:var(--mai-text-3)}.mai-lesson-item__icon svg{width:12px;height:12px}.mai-lesson-item.is-current .mai-lesson-item__icon{background:var(--mai-grad-brand);border-color:transparent;color:#fff}.mai-lesson-item.is-done .mai-lesson-item__icon{color:var(--mai-success);border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.12)}.mai-lesson-item__num{width:14px;flex:none;font-size:var(--mai-fs-xs);color:var(--mai-text-3)}.mai-lesson-item__title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mai-lesson-item__time{font-size:var(--mai-fs-xs);color:var(--mai-text-3);flex:none}@media (max-width:1180px){.mai-player{grid-template-columns:minmax(0,1fr)}.mai-lesson-list{position:static;max-height:460px}}@media (max-width:560px){.mai-player__foot{flex-direction:column-reverse}.mai-player__foot .mai-btn{width:100%}}.mai-resource{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--mai-r-md);border:1px solid var(--mai-line);background:var(--mai-surface-2);margin-bottom:9px}.mai-resource__name{font-size:var(--mai-fs-sm);font-weight:600}.mai-resource__meta{font-size:11px;color:var(--mai-text-3)}.mai-resource .mai-btn{margin-left:auto}.mai-admin-grid{display:grid;grid-template-columns:minmax(0,1fr) 372px;gap:16px;align-items:start}@media (max-width:1280px){.mai-admin-grid{grid-template-columns:minmax(0,1fr)}}.mai-tabs{display:flex;gap:7px;flex-wrap:wrap}.mai-tab{padding:7px 15px;border-radius:var(--mai-r-sm);border:1px solid var(--mai-line);background:transparent;color:var(--mai-text-3);font:inherit;font-size:var(--mai-fs-sm);font-weight:500;cursor:pointer;transition:background var(--mai-t-fast),color var(--mai-t-fast),border-color var(--mai-t-fast)}.mai-tab:hover{color:var(--mai-text);border-color:var(--mai-line-strong)}.mai-tab.is-active{background:var(--mai-grad-brand);border-color:transparent;color:#fff;font-weight:600}.mai-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:0 18px 14px}.mai-toolbar .mai-select{width:auto;min-width:180px;padding-block:8px;font-size:var(--mai-fs-sm)}.mai-toolbar__right{margin-left:auto;display:flex;gap:10px}.mai-cell-course{display:flex;align-items:center;gap:12px;min-width:260px}.mai-cell-course__thumb{width:74px;aspect-ratio:4 / 3;border-radius:var(--mai-r-sm);overflow:hidden;flex:none;background:var(--mai-surface-2)}.mai-cell-course__thumb img{width:100%;height:100%;object-fit:cover}.mai-cell-course__title{font-size:var(--mai-fs-sm);font-weight:600;color:var(--mai-text);margin:0 0 2px}.mai-cell-course__desc{font-size:11.5px;color:var(--mai-text-3);margin:0;line-height:1.45;max-width:34ch}.mai-row-actions{background:none;border:1px solid var(--mai-line);border-radius:var(--mai-r-sm);width:32px;height:28px;color:var(--mai-text-3);cursor:pointer;display:grid;place-items:center}.mai-row-actions:hover{color:var(--mai-text);border-color:var(--mai-line-strong)}.mai-table-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:14px 18px;font-size:var(--mai-fs-xs);color:var(--mai-text-3)}.mai-chart-panel__value{font-size:var(--mai-fs-2xl);font-weight:800;letter-spacing:-.03em;line-height:1.1}.mai-chart{width:100%;height:150px;display:block}.mai-chart--tall{height:190px}.mai-chart-axis{display:flex;justify-content:space-between;font-size:10.5px;color:var(--mai-text-3);margin-top:8px}.mai-donut{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.mai-donut__figure{position:relative;width:168px;height:168px;flex:none}.mai-donut__center{position:absolute;inset:0;display:grid;place-content:center;text-align:center}.mai-donut__total{font-size:var(--mai-fs-lg);font-weight:800;line-height:1.1}.mai-donut__caption{font-size:var(--mai-fs-xs);color:var(--mai-text-3)}.mai-legend{display:flex;flex-direction:column;gap:14px}.mai-legend__item{display:flex;align-items:flex-start;gap:9px;font-size:var(--mai-fs-sm)}.mai-legend__dot{width:9px;height:9px;border-radius:3px;margin-top:5px;flex:none}.mai-legend__name{display:block;color:var(--mai-text-2)}.mai-legend__value{font-weight:700}.mai-legend__value span{color:var(--mai-text-3);font-weight:500;font-size:var(--mai-fs-xs)}.mai-activity{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid var(--mai-line)}.mai-activity:last-child{border-bottom:0}.mai-activity__text{flex:1;min-width:0;font-size:var(--mai-fs-sm)}.mai-activity__text strong{display:block;font-weight:600;color:var(--mai-text)}.mai-activity__text span{color:var(--mai-text-3);font-size:var(--mai-fs-xs);line-height:1.45}.mai-activity__time{font-size:var(--mai-fs-xs);color:var(--mai-text-3);flex:none;white-space:nowrap}.mai-quick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mai-quick__item{display:flex;align-items:center;gap:10px;padding:13px;border-radius:var(--mai-r-md);border:1px solid var(--mai-line);background:var(--mai-surface-2);font-size:var(--mai-fs-sm);font-weight:500;transition:border-color var(--mai-t-fast),background var(--mai-t-fast)}.mai-quick__item:hover{border-color:var(--mai-line-brand);background:var(--mai-surface-3);color:var(--mai-text)}.mai-quick__item .mai-icon-box{width:32px;height:32px;border-radius:9px}.mai-quick__item .mai-icon-box svg{width:15px;height:15px}.mai-table--compact th,.mai-table--compact td{padding:9px 10px;font-size:var(--mai-fs-xs)}.mai-table--compact .mai-avatar{width:22px;height:22px}.mai-cell-user{display:flex;align-items:center;gap:8px;white-space:nowrap}.mai-auth{display:grid;place-items:center;min-height:100vh;padding:40px 20px}.mai-auth__box{width:min(430px, 100%);padding:34px;border-radius:var(--mai-r-xl);border:1px solid var(--mai-line);background:var(--mai-surface);box-shadow:var(--mai-shadow-lg)}.mai-auth__box .mai-logo{margin-bottom:22px}.mai-auth__box h1{font-size:var(--mai-fs-lg);margin-bottom:6px}.mai-auth__box>p{font-size:var(--mai-fs-sm);color:var(--mai-text-3);margin-bottom:24px}.mai-auth__foot{margin-top:20px;text-align:center;font-size:var(--mai-fs-sm);color:var(--mai-text-3)}.mai-auth__foot a{color:var(--mai-violet);font-weight:600}