.app-table-pagination[data-v-5c57bf9b]{display:flex;justify-content:flex-end;width:100%}.app-table-pagination[data-v-5c57bf9b] .el-pagination{justify-content:flex-end;row-gap:8px;flex-wrap:wrap}.app-table-pagination[data-v-5c57bf9b] .el-pagination__jump{margin-left:12px}.app-table-pagination[data-v-5c57bf9b] .el-pagination__editor .el-input__inner{text-align:center}@media(max-width:768px){.app-table-pagination[data-v-5c57bf9b],.app-table-pagination[data-v-5c57bf9b] .el-pagination{justify-content:flex-start}}:root{--app-font-sans: "PingFang SC", "Microsoft YaHei UI", "Helvetica Neue", sans-serif;--app-font-display: "PingFang SC", "Microsoft YaHei UI", "Helvetica Neue", sans-serif;--app-bg: #f5f7fa;--app-bg-secondary: #eef2f6;--app-paper: #ffffff;--app-paper-strong: #ffffff;--app-ink: #1f2d3d;--app-ink-soft: #606f7b;--app-border: #dcdfe6;--app-shadow: 0 1px 2px rgba(31, 45, 61, .08);--app-teal: #409eff;--app-teal-soft: rgba(64, 158, 255, .1);--app-amber: #e6a23c;--app-amber-soft: rgba(230, 162, 60, .1);--app-rose: #f56c6c;--app-rose-soft: rgba(245, 108, 108, .1);--app-blue: #2d8cf0;--app-blue-soft: rgba(45, 140, 240, .1);--app-sidebar-bg: #304156;--app-sidebar-bg-light: #3c4f65;--app-sidebar-text: rgba(255, 255, 255, .78);--app-sidebar-text-active: #ffffff}*,*:before,*:after{box-sizing:border-box}html,body,#app{min-height:100%}body{margin:0;font-family:var(--app-font-sans);color:var(--app-ink);background:var(--app-bg);line-height:1.6}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}#app{min-height:100vh}.teacher-login-success-notification{width:360px!important;padding:0!important;overflow:hidden;border:1px solid rgba(188,155,101,.24)!important;border-radius:13px!important;background:radial-gradient(circle at top right,rgba(199,170,116,.24),transparent 44%),linear-gradient(180deg,#0c1727f5,#0f1d2feb)!important;box-shadow:0 22px 48px #03091357!important;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.teacher-login-success-notification:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(135deg,rgba(255,255,255,.08),transparent 28%),linear-gradient(180deg,rgba(188,155,101,.12),transparent 52%)}.teacher-login-success-notification .el-notification__group{width:100%;margin:0;padding:0}.teacher-login-success-notification .el-notification__content,.teacher-login-success-notification .el-notification__content p{margin:0}.teacher-login-success-notification__body{position:relative;padding:5px 15px 11px;color:#f0f4fb;font-family:PingFang SC,Microsoft YaHei UI,Helvetica Neue,sans-serif}.teacher-login-success-notification__eyebrow{display:inline-flex;align-items:center;gap:5px;margin-bottom:7px;color:#dce4eeb8;font-size:12px;font-weight:600;line-height:1;letter-spacing:.18em;text-transform:uppercase}.teacher-login-success-notification__eyebrow:before{content:"";width:18px;height:1px;background:linear-gradient(90deg,#bc9b652e,#bc9b65e0)}.teacher-login-success-notification__title{display:block;margin-bottom:0;color:#f0f4fb;font-size:15px;line-height:1.14;font-weight:700;letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-login-success-notification__headline{display:block;min-width:0;overflow:hidden;margin-top:0}.teacher-login-success-notification__headline .teacher-login-success-notification__title{margin-bottom:0}.teacher-login-success-notification .el-notification__closeBtn{top:12px;right:12px;color:#dce4eead}.teacher-login-success-notification .el-notification__closeBtn:hover{color:#f0f4fb}.shell-card{background:var(--app-paper);border:1px solid var(--app-border);border-radius:8px;box-shadow:var(--app-shadow);min-width:0}.page-shell{display:flex;flex-direction:column;gap:16px;min-height:0;min-width:0;height:100%;overflow:auto;overscroll-behavior:contain;padding-right:4px}.page-shell>*{flex-shrink:0}.page-shell--table{scrollbar-gutter:stable;scroll-padding-top:16px;scroll-padding-bottom:88px}.page-shell--table>:first-child{position:sticky;top:0;z-index:10}.page-shell--table>:first-child.shell-card,.page-shell--table>:first-child.page-header{background:var(--app-paper)}.page-shell--table .dictionary-grid{flex:1 1 auto;min-height:0;align-items:stretch}.page-shell--table .table-layout-panel{display:flex!important;flex:1 1 auto;flex-direction:column;min-height:0;overflow:hidden;scrollbar-gutter:stable}.page-shell--table .table-layout-panel>.el-table{flex:1 1 auto;min-height:0}.page-shell--table .table-layout-panel>.el-empty{display:grid;flex:1 1 auto;place-items:center;min-height:0}.page-shell--table .table-panel__footer,.page-shell--table .school-table-panel__footer{flex-shrink:0}.page-shell--table .table-panel__footer,.page-shell--table .school-table-panel__footer{padding-top:12px;padding-bottom:4px;background:var(--app-paper)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:16px;padding:20px 24px}.page-header>*{min-width:0}.page-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:12px}.page-header__eyebrow{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--app-ink-soft)}.page-header__title{margin:6px 0 8px;font-family:var(--app-font-display);font-size:24px;line-height:1.35;font-weight:600}.page-header__subtitle{max-width:760px;margin:0;color:var(--app-ink-soft);font-size:14px}.stat-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.stat-card{padding:18px 20px}.stat-card__label{color:var(--app-ink-soft);font-size:13px}.stat-card__value{display:block;margin:10px 0 8px;font-family:var(--app-font-display);font-size:28px;line-height:1;font-weight:600}.stat-card__value--small{font-size:22px;line-height:1.35}.stat-card__description{margin:0;color:var(--app-ink-soft);font-size:13px}.stat-card--role{border-top:3px solid var(--app-teal)}.stat-card--permission{border-top:3px solid #67c23a}.stat-card--scope{border-top:3px solid var(--app-blue)}.stat-card--module,.stat-card--amber{border-top:3px solid var(--app-amber)}.dashboard-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:16px}.dashboard-grid--modules{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-panel{padding:20px}.dashboard-panel__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.dashboard-panel__header h3{margin:8px 0 0;font-size:18px}.dashboard-kv-list{display:grid;gap:14px;margin:0 0 20px}.dashboard-kv-list div{display:flex;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:1px dashed rgba(32,48,50,.1)}.dashboard-kv-list dt{color:var(--app-ink-soft)}.dashboard-kv-list dd{margin:0;font-weight:600}.dashboard-tag-list{display:flex;flex-wrap:wrap;gap:10px}.dashboard-capability-list{display:grid;gap:12px;margin:0;padding-left:18px}.dashboard-permission-chart{width:100%;min-height:340px}.admin-shell{display:grid;grid-template-columns:272px minmax(0,1fr);height:100vh;overflow:hidden}.admin-shell__aside{background:var(--app-sidebar-bg);min-width:0}.admin-shell__main{min-width:0;min-height:0;padding:16px;display:flex;flex-direction:column;gap:16px;overflow:hidden}.admin-shell__content{flex:1;min-width:0;min-height:0;overflow:hidden}.admin-shell__content>*{min-width:0;min-height:0;height:100%}.admin-shell__mobile-mask{position:fixed;inset:0;z-index:40;background:#00000059}.admin-shell__mobile-panel{width:min(88vw,372px);height:100%;background:var(--app-sidebar-bg)}.app-sidebar{display:flex;flex-direction:column;gap:20px;height:100vh;padding:20px 16px;background:var(--app-sidebar-bg);color:var(--app-sidebar-text)}.app-sidebar__brand{display:flex;align-items:center;gap:12px}.app-sidebar__brand-mark{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:6px;background:var(--app-teal);color:#fff;font-size:16px;font-weight:700}.app-sidebar__brand-copy{display:grid;gap:2px}.app-sidebar__brand-copy strong{color:var(--app-sidebar-text-active);font-size:15px}.app-sidebar__brand-copy span{font-size:12px;color:#ffffff94}.app-sidebar__space{padding:14px 12px;background:var(--app-sidebar-bg-light);border-radius:6px}.app-sidebar__space-label,.app-sidebar__space-user{display:block;color:#ffffff94;font-size:13px}.app-sidebar__space-name{display:block;margin:6px 0;color:var(--app-sidebar-text-active);font-size:16px}.app-sidebar__nav{display:grid;gap:10px}.app-sidebar__nav-title{font-size:12px;color:#ffffff94}.app-sidebar__menu{border-right:none;background:transparent}.app-sidebar__menu.el-menu{background:transparent}.app-sidebar__menu .el-menu-item{height:42px;margin-bottom:4px;color:var(--app-sidebar-text);border-radius:6px}.app-sidebar__menu .el-menu-item:hover{background:#ffffff14}.app-sidebar__menu .el-menu-item.is-active{background:var(--app-teal);color:var(--app-sidebar-text-active)}.app-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;background:var(--app-paper);border:1px solid var(--app-border);border-radius:8px;box-shadow:var(--app-shadow);min-width:0}.app-header__left{display:flex;align-items:flex-start;gap:10px;flex:1 1 auto;min-width:0}.app-header__menu-button{display:none;width:40px;height:40px;border:1px solid var(--app-border);border-radius:6px;background:#fff;cursor:pointer}.app-header__title-group{display:grid;gap:1px;min-width:0;width:100%}.app-header__breadcrumb{font-size:14px}.app-header__breadcrumb :deep(.el-breadcrumb__inner),.app-header__breadcrumb :deep(.el-breadcrumb__separator){color:#304156}.app-header__breadcrumb :deep(.el-breadcrumb__inner.is-link),.app-header__breadcrumb :deep(.el-breadcrumb__inner a){color:#304156;font-weight:500}.app-header__navigation{min-width:0;width:100%;margin-top:3px;padding-top:5px;border-top:1px solid rgba(148,163,184,.24)}.app-header__title{margin:0;font-family:var(--app-font-display);font-size:22px;font-weight:600}.app-header__subline{color:var(--app-ink-soft);font-size:13px}.app-header__actions{display:flex;align-items:center;justify-content:flex-end;flex:0 0 auto;min-width:0}.app-header__profile-trigger{display:inline-flex;align-items:center;justify-content:space-between;max-width:100%;gap:10px;min-height:64px;padding:8px 12px;border:1px solid rgba(64,158,255,.14);border-radius:14px;background:linear-gradient(180deg,#fff,#fbfdff);cursor:pointer;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease}.app-header__profile-trigger:hover,.app-header__profile-trigger:focus-visible,.app-header__profile-trigger.is-active{background:#f7faff;border-color:#409eff29;box-shadow:0 10px 24px #1f2d3d14;outline:none}.app-header__profile-trigger-content{display:flex;align-items:stretch;gap:8px;flex:1;min-width:0}.app-header__profile-meta{display:grid;align-content:center;gap:4px;min-width:0;text-align:left}.app-header__profile-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#1f2d3d;font-size:13px;font-weight:500;line-height:1.3}.app-header__profile-divider{display:block;width:100%;height:1px;background:#3041562e}.app-header__avatar{display:inline-flex;align-items:center;justify-content:center;width:46px;min-width:46px;height:46px;flex:0 0 auto;align-self:stretch;border-radius:50%;background:linear-gradient(135deg,#2d8cf0,#5fa8ff);color:#fff;font-size:16px;font-weight:700;letter-spacing:.02em;box-shadow:0 12px 24px #2d8cf038;line-height:1;overflow:hidden}.app-header__avatar:deep(img){width:100%;height:100%;object-fit:cover}.app-header__profile-caret{color:#7a8794;font-size:14px;transition:color .18s ease,transform .18s ease}.app-header__profile-trigger:hover .app-header__profile-caret,.app-header__profile-trigger:focus-visible .app-header__profile-caret,.app-header__profile-trigger.is-active .app-header__profile-caret{color:#2d8cf0;transform:rotate(180deg)}.app-header__account-popover.el-popper{max-width:calc(100vw - 24px);padding:0!important;border:1px solid rgba(31,45,61,.08)!important;border-radius:16px!important;box-shadow:0 18px 40px #0f172a29!important;overflow:hidden}.app-header__account-popover.el-popper .el-popper__arrow:before{background:#fff;border:1px solid rgba(31,45,61,.08)}.app-header__account-menu{padding:8px 10px;background:linear-gradient(180deg,#fff,#fbfcfe)}.app-header__profile-mobile{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#1f2d3d;font-size:13px;font-weight:500;line-height:1.3;text-align:left}.app-header__action-group{display:grid;gap:0;width:100%;min-width:0}.app-header__action-chip{display:inline-flex;align-items:center;gap:8px;width:100%;min-height:36px;padding:0 4px;border:none;border-radius:0;background:transparent;box-shadow:none;color:#334155;font-size:13px;font-weight:500;justify-content:flex-start;cursor:pointer;transition:background .18s ease,color .18s ease}.app-header__action-chip+.app-header__action-chip{border-top:1px solid rgba(148,163,184,.28)}.app-header__action-chip:hover,.app-header__action-chip:focus-visible{background:#94a3b814;color:#1f2d3d;outline:none}.app-header__action-chip-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:0;background:transparent;color:#64748b;font-size:13px}.app-header__action-chip--danger{color:#d84a4a;background:transparent}.app-header__action-chip--danger .app-header__action-chip-icon{color:#d84a4a}.app-header__action-chip--danger:hover,.app-header__action-chip--danger:focus-visible{background:#f56c6c0f;color:#c93f3f}.login-page{min-height:100vh;padding:28px;display:grid;grid-template-columns:1.2fr minmax(360px,460px);gap:24px}.login-page__hero,.login-page__form-panel{min-height:calc(100vh - 56px)}.login-page__hero{display:grid;grid-template-rows:auto auto 1fr;gap:18px;padding:32px;background:linear-gradient(135deg,#2d8cf0,#4da3ff);border-radius:8px;border:1px solid var(--app-border);box-shadow:var(--app-shadow);color:#fff}.login-page__title{max-width:640px;margin:12px 0 16px;font-family:var(--app-font-display);font-size:clamp(30px,4vw,42px);line-height:1.3;font-weight:600}.login-page__subtitle{max-width:620px;margin:0;color:#ffffffe0;font-size:15px}.login-page__space-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.login-page__space-card{display:grid;gap:8px;padding:18px;text-align:left;background:#ffffff29;border:1px solid rgba(255,255,255,.24);border-radius:6px;cursor:pointer;color:#fff;transition:background .18s ease,border-color .18s ease}.login-page__space-card:hover,.login-page__space-card.is-active{border-color:#ffffffc7;background:#ffffff47}.login-page__space-card strong{font-size:16px}.login-page__space-card span{color:#fffc;font-size:13px}.login-page__hero-panel{align-self:end;padding:24px;background:#ffffff1f;border-color:#ffffff2e;color:#fff}.login-page__hero-panel-eyebrow{color:#ffffffb8;font-size:12px;letter-spacing:.16em;text-transform:uppercase}.login-page__hero-panel h2{margin:10px 0 8px;font-size:26px}.login-page__hero-panel p,.login-page__hero-panel-note{margin:0;color:#fffc}.login-page__form-panel{padding:30px;border-radius:8px}.login-page__form-header{display:grid;gap:20px;margin-bottom:24px}.login-page__form-header h2{margin:10px 0 0;font-size:28px}.login-page__preset-list{display:grid;gap:10px}.login-page__preset{display:flex;justify-content:space-between;gap:16px;width:100%;padding:14px 16px;border:1px solid var(--app-border);border-radius:6px;background:#fff;cursor:pointer}.login-page__preset small{color:var(--app-ink-soft)}.login-page__tips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px;color:var(--app-ink-soft);font-size:13px}.login-page__submit{width:100%}.course-plan-toolbar{display:flex;align-items:center;gap:12px}.course-plan-panel{padding:24px}.course-plan-panel__alert{margin-bottom:20px}.course-plan-grid{overflow-x:auto}.course-plan-grid__table{min-width:980px;display:grid;grid-template-columns:120px repeat(7,minmax(160px,1fr));gap:12px}.course-plan-grid__corner,.course-plan-grid__weekday,.course-plan-grid__lesson-index{display:flex;align-items:center;justify-content:center;min-height:76px;border-radius:6px;background:#f8fafc;border:1px solid var(--app-border);font-weight:700}.course-plan-grid__cell{min-height:210px}.course-plan-grid__card,.course-plan-grid__empty{height:100%;border-radius:6px;border:1px solid var(--app-border);background:#fff}.course-plan-grid__card{display:flex;flex-direction:column;gap:12px;padding:16px}.course-plan-grid__card-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.course-plan-grid__time{font-family:var(--app-font-display);font-size:18px}.course-plan-grid__description{margin:0;color:var(--app-ink-soft);font-size:13px}.course-plan-grid__actions{margin-top:auto;display:flex;flex-wrap:wrap;gap:10px}.course-plan-grid__empty{display:flex;align-items:center;justify-content:center;color:var(--app-ink-soft)}.course-plan-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.course-plan-dialog__footer{display:flex;justify-content:flex-end;gap:12px}.admin-fade-enter-active,.admin-fade-leave-active{transition:opacity .18s ease}.admin-fade-enter-from,.admin-fade-leave-to{opacity:0}.el-button,.el-input__wrapper,.el-select__wrapper,.el-textarea__inner,.el-tag{border-radius:4px}.el-button{font-weight:600}@media(max-width:1180px){.dashboard-grid,.dashboard-grid--modules,.login-page{grid-template-columns:1fr}.login-page__hero,.login-page__form-panel{min-height:auto}.login-page__space-list{grid-template-columns:1fr}.stat-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.page-header{flex-direction:column;align-items:stretch}.page-actions{width:100%;justify-content:flex-start}}@media(max-width:1100px){.admin-shell{grid-template-columns:1fr}.admin-shell__aside{display:none}.app-header{flex-direction:column;align-items:flex-start}.app-header__actions{width:100%;justify-content:flex-start}.app-header__account-menu{min-width:0}.app-header__menu-button{display:inline-flex;align-items:center;justify-content:center}}@media(max-width:640px){body{font-size:15px}.admin-shell__main,.login-page{padding:14px}.page-header,.dashboard-panel,.course-plan-panel,.login-page__form-panel,.login-page__hero{padding:20px}.page-actions{width:100%}.page-actions .el-button,.page-actions .el-button+.el-button{margin-left:0}.app-header__profile-trigger{width:100%!important}.stat-strip,.course-plan-form-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
