:root{--brand-primary: #df7a1f;--brand-primary-light: #fff1df;--brand-primary-dark: #b55a12;--brand-primary-bg: #fff6eb;--el-color-primary: #df7a1f;--el-color-primary-dark-2: #b55a12;--el-color-primary-light-3: #ebb06f;--el-color-primary-light-5: #f1c38f;--el-color-primary-light-7: #f7dcc0;--el-color-primary-light-8: #fbecda;--el-color-primary-light-9: #fff5ea;--color-success: #10b981;--color-warning: #f59e0b;--color-danger: #ef4444;--color-info: #6b7280;--bg-page: #f6efe5;--bg-card: #fffdfa;--bg-toolbar: #fdf7ef;--border-light: #eadbc8;--border-medium: #dcc7ab;--text-primary: #2f2418;--text-secondary: #6d5946;--text-muted: #a08469;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-card: 0 1px 3px 0 rgb(0 0 0 / .06), 0 1px 2px -1px rgb(0 0 0 / .06);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--transition-fast: .15s ease;--transition-normal: .25s ease;font-family:Inter,PingFang SC,Microsoft YaHei,Arial,sans-serif;color:var(--text-primary);background:var(--bg-page)}.el-main{padding:12px 16px 16px!important}.el-main.app-main{min-height:0}.el-card__body{padding:18px 20px!important}.el-card{border-radius:8px!important;border-color:var(--border-light)!important;box-shadow:0 8px 20px #0f172a0a!important}.el-dialog__body{padding:20px 24px!important}.el-form-item{margin-bottom:18px!important}.el-button{border-radius:8px!important}.el-button--primary{box-shadow:0 10px 20px #df7a1f2e}.el-input__wrapper{border-radius:8px!important}.el-tag{border-radius:4px!important}.el-table__cell{padding:11px 12px!important}.el-table .cell,.el-table__header-wrapper th .cell{text-align:left!important}.el-dialog__header{padding:20px 24px 0!important;font-weight:600!important;font-size:16px!important}.el-dialog__footer{padding:0 24px 20px!important}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.login-page{align-items:center;background:linear-gradient(135deg,#f7e7d0,#fff8ef 48%,#f7eee3);display:flex;min-height:100vh;justify-content:center;padding:24px;position:relative;overflow:hidden}.login-page:before{content:"";position:absolute;top:-120px;right:-120px;width:400px;height:400px;background:radial-gradient(circle,rgba(240,138,38,.16) 0%,transparent 70%);border-radius:50%;pointer-events:none}.login-page:after{content:"";position:absolute;bottom:-80px;left:-80px;width:300px;height:300px;background:radial-gradient(circle,rgba(181,117,30,.08) 0%,transparent 70%);border-radius:50%;pointer-events:none}.login-panel{background:linear-gradient(180deg,#fffdfa,#fff7ef);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:440px;padding:36px 32px 32px;width:100%;position:relative;z-index:1}.login-panel .brand-login{display:flex;align-items:center;gap:10px;margin-bottom:8px}.login-panel .brand-login .brand-icon{width:40px;height:40px;background:transparent;border:none;border-radius:10px;display:flex;align-items:center;justify-content:center;overflow:hidden}.login-panel .brand-login h1{font-size:22px;font-weight:700;margin:0;color:var(--text-primary)}.login-panel p{color:var(--text-secondary);font-size:14px;margin:4px 0 0}.login-form{margin-top:28px}.login-form .el-form-item{margin-bottom:18px!important}.login-form .el-form-item__label{color:var(--text-secondary);font-size:14px;line-height:1.25;padding-bottom:8px!important}.login-form .el-input__wrapper{border-radius:12px!important;min-height:46px;padding:0 14px!important}.login-form .el-input__inner{font-size:14px}.login-button{border-radius:12px!important;font-size:15px;font-weight:600;min-height:46px;width:100%}.app-shell{min-height:100vh}.sidebar{background:var(--bg-card);border-right:1px solid var(--border-light);transition:width var(--transition-normal);overflow:hidden}.brand{border-bottom:1px solid var(--border-light);font-size:20px;font-weight:700;height:64px;line-height:64px;padding:0 20px;display:flex;align-items:center;gap:10px;white-space:nowrap;overflow:hidden}.topbar{align-items:center;background:var(--bg-card);border-bottom:1px solid var(--border-light);display:flex;font-weight:600;justify-content:space-between;height:64px;padding:0 24px}.user-info{color:var(--text-secondary);font-size:14px;font-weight:400;display:flex;align-items:center;gap:12px}.el-card{border-radius:var(--radius-md)!important;border:1px solid var(--border-light)!important;transition:box-shadow var(--transition-fast),transform var(--transition-fast)}.el-card.shadow-never{box-shadow:var(--shadow-card)!important}.el-card.shadow-never:hover{box-shadow:var(--shadow-md)!important}.el-card__header{padding:16px 24px!important;border-bottom:1px solid var(--border-light)!important;font-weight:600;font-size:15px;color:var(--text-primary)}.metric-grid{display:grid;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:24px}.metric-grid .el-card{position:relative;overflow:hidden}.metric-grid .el-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:var(--radius-md) var(--radius-md) 0 0}.metric-grid .el-card:nth-child(1):before{background:var(--brand-primary)}.metric-grid .el-card:nth-child(2):before{background:var(--color-success)}.metric-grid .el-card:nth-child(3):before{background:var(--color-warning)}.metric-grid .el-card:nth-child(4):before{background:var(--color-info)}.metric-grid .el-card .card-metric-icon{position:absolute;top:16px;right:16px;width:40px;height:40px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:20px;opacity:.15}.metric-grid .el-card:nth-child(1) .card-metric-icon{background:var(--brand-primary);color:#fff}.metric-grid .el-card:nth-child(2) .card-metric-icon{background:var(--color-success);color:#fff}.metric-grid .el-card:nth-child(3) .card-metric-icon{background:var(--color-warning);color:#fff}.metric-grid .el-card:nth-child(4) .card-metric-icon{background:var(--color-info);color:#fff}.metric-grid .el-card span{color:var(--text-secondary);display:block;font-size:14px}.metric-grid .el-card strong{display:block;font-size:32px;margin-top:12px;color:var(--text-primary)}.el-table{border-radius:var(--radius-md)!important;font-size:13px;overflow:hidden;--el-table-border-color: #e3ebf4;--el-table-header-bg-color: #fff9f3}.el-table th.el-table__cell{background:var(--bg-toolbar)!important;font-weight:600!important;color:#52657a!important;border-bottom:1px solid var(--border-light)!important;padding:12px 14px!important}.el-table td.el-table__cell{border-bottom:1px solid #e9eff5!important;padding:12px 14px!important}.el-table--striped .el-table__body tr.el-table__row--striped td{background:#fafbfc!important}.el-table__body tr:hover>td{background:#f4f8fd!important}.el-table .caret-wrapper{height:24px}.el-table .el-button+.el-button{margin-left:8px}.el-table .el-tag{align-items:center;display:inline-flex;font-size:12px;justify-content:center;height:24px;line-height:24px;max-width:none;min-width:48px;overflow:visible;padding:0 8px;text-overflow:clip;white-space:nowrap}.filter-form{align-items:flex-end;column-gap:12px;display:flex;flex-wrap:wrap;margin-bottom:16px;row-gap:12px}.filter-form .el-form-item{margin-bottom:0}.filter-form .el-form-item:last-child{margin-left:0!important}.filter-form .el-form-item:last-child .el-form-item__content{align-items:center;display:flex;flex-wrap:nowrap;gap:8px}.filter-form .el-input,.filter-form .el-select,.table-toolbar .el-input,.table-toolbar .el-select,.filter-select{width:200px}.table-toolbar{align-items:center;background:#fff;border:1px solid #e2eaf3;border-radius:10px;display:flex;gap:12px;justify-content:flex-start;margin-bottom:14px;padding:12px 14px;flex-wrap:wrap}.table-toolbar-wrap{flex-wrap:wrap}.el-form-item__label{font-weight:500!important;color:var(--text-secondary)!important}.el-form-item__tip{color:var(--text-muted);font-size:12px}.page-header{margin-bottom:20px}.page-header h1{font-size:22px;font-weight:700;margin:0 0 4px;color:var(--text-primary)}.page-header p{font-size:14px;color:var(--text-muted);margin:0}.data-tabs{margin-top:0}.data-tabs>.el-tabs__header{margin-bottom:14px}.data-tabs>.el-tabs__header .el-tabs__nav-wrap:after{background:#e3ebf3}.data-tabs>.el-tabs__header .el-tabs__item{color:#728398;font-size:14px;font-weight:600;padding:0 8px;height:36px;line-height:36px}.data-tabs>.el-tabs__header .el-tabs__item+.el-tabs__item{margin-left:18px}.data-tabs>.el-tabs__header .el-tabs__item.is-active{color:var(--brand-primary)}.data-tabs>.el-tabs__header .el-tabs__active-bar{background:linear-gradient(90deg,#df7a1f,#f7b462);border-radius:999px;height:3px}.card-header{align-items:center;display:flex;justify-content:space-between;width:100%}.card-header>span{font-weight:600;font-size:15px;color:var(--text-primary)}.header-actions{display:flex;gap:8px;align-items:center}.el-dialog{border-radius:var(--radius-lg)!important;--el-dialog-padding-primary: 0}.el-dialog .el-dialog__header{padding:20px 24px 16px!important;font-weight:600!important;font-size:16px!important;border-bottom:1px solid var(--border-light);margin:0}.el-dialog .el-dialog__headerbtn{top:20px;right:20px}.el-dialog .el-dialog__body{padding:20px 24px!important}.el-dialog .el-dialog__footer{padding:16px 24px 20px!important;border-top:1px solid var(--border-light)}.el-dialog .el-select{width:100%}.tag-list{display:flex;flex-wrap:wrap;gap:4px}.inline-tag{margin:2px 6px 2px 0}.dialog-table{margin-top:16px}.dict-code{font-family:SF Mono,Fira Code,Consolas,monospace;font-size:12px;color:var(--brand-primary)}.week-board{display:grid;gap:10px;grid-template-columns:repeat(7,minmax(150px,1fr));overflow-x:auto}.week-column{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-md);min-height:360px;padding:12px}.week-column header{border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;padding-bottom:8px;font-weight:600}.week-column p{color:var(--text-muted);font-size:13px}.schedule-item{border-left:3px solid var(--brand-primary);margin-top:10px;padding:8px 10px;background:var(--brand-primary-light);border-radius:4px;cursor:pointer;transition:background var(--transition-fast)}.schedule-item:hover{background:#dde7ff}.schedule-item span,.schedule-item small{color:var(--text-secondary);display:block;font-size:12px}.schedule-item strong{display:block;margin:4px 0;color:var(--text-primary)}.permission-node{display:flex;align-items:center;gap:8px;font-size:13px}.permission-node small{color:var(--text-muted)}.password-card{max-width:500px}.password-form{max-width:400px}.permission-alert{margin-bottom:12px}@media (max-width: 900px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.table-toolbar{align-items:center;flex-direction:row;flex-wrap:wrap}.table-toolbar .el-input,.table-toolbar .el-select{width:180px}.filter-form{align-items:flex-end;flex-direction:row}.filter-select{width:180px}}@media (max-width: 640px){.metric-grid{grid-template-columns:1fr}.week-board{grid-template-columns:repeat(1,1fr)}.table-toolbar{align-items:stretch;flex-direction:column}.table-toolbar .el-button,.table-toolbar .el-input,.table-toolbar .el-select,.filter-form .el-form-item,.filter-select{max-width:none;width:100%}.filter-form{align-items:stretch;flex-direction:column}.filter-form .el-form-item:last-child .el-form-item__content{flex-wrap:wrap}}.app-shell__main,.app-main{background:#eef3f9}.page-section-card{background:#fff;border:1px solid #dbe5ef;border-radius:10px;box-shadow:0 10px 24px #0f172a0a;padding:16px 18px}.page-section-card+.page-section-card{margin-top:16px}.page-section-card .el-tabs__nav-wrap:after{background-color:#e2e8f0}.page-section-card .el-col{min-width:0}.page-section-card .el-card{height:100%}.surface-panel{background:#fff;border:1px solid #e2eaf3;border-radius:10px;box-shadow:inset 0 1px #ffffffb8;padding:14px}.stats-overview{display:grid;gap:12px;margin-bottom:14px;width:100%}.stats-overview--3{grid-template-columns:repeat(3,minmax(0,1fr))}.stats-overview--4{grid-template-columns:repeat(4,minmax(0,1fr))}.stats-card{background:linear-gradient(180deg,#fff,#f9fbff);border:1px solid #e4ecf5;border-radius:12px;box-shadow:0 10px 24px #0f172a0a;min-height:92px;padding:14px 16px}.stats-card__label{color:#8190a5;display:block;font-size:12px}.stats-card__value{color:#182538;display:block;font-size:26px;font-weight:700;line-height:1.1;margin-top:8px}.entity-panel{padding:14px}.entity-toolbar{align-items:center;background:linear-gradient(180deg,#fffdfa,#f6f9fd);border:1px solid #e4ebf3;border-radius:12px;display:flex;gap:12px;justify-content:space-between;margin-bottom:12px;padding:12px 14px}.entity-toolbar__search{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.entity-toolbar__search .el-input,.entity-toolbar__search .el-select{width:240px}.entity-toolbar__count{align-items:center;background:#eef4fb;border-radius:999px;color:#64748b;display:inline-flex;font-size:12px;font-weight:600;height:30px;line-height:1;padding:0 12px}.entity-toolbar__actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.table-actions{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.table-actions .el-button{margin-left:0!important}.table-pagination{display:flex;justify-content:flex-end;margin-top:16px}.table-action{background:#f3f7fd!important;border-radius:999px!important;color:#3563b6!important;font-size:12px!important;font-weight:600!important;height:30px!important;padding:0 12px!important}.table-action:hover{background:#fff0e0!important;color:#b55a12!important}.dashboard-page-card{display:flex;flex-direction:column;gap:14px}.dashboard-toolbar{margin-bottom:0}.dashboard-toolbar__search{display:flex;flex-wrap:wrap;gap:10px}.dashboard-chip,.dashboard-period{align-items:center;background:#eef4fb;border-radius:999px;color:#5d6f86;display:inline-flex;font-size:12px;font-weight:600;min-height:30px;padding:0 12px}.dashboard-chip{background:#fff2e2;color:#df7a1f}.dashboard-toolbar__picker{width:300px}.dashboard-block{display:flex;flex-direction:column;gap:12px}.dashboard-block__title{color:#1a2940;font-size:18px;font-weight:700;line-height:1.2}.dashboard-stats-overview--2{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-metrics-grid{display:grid;gap:12px;grid-template-columns:repeat(5,minmax(0,1fr))}.dashboard-card__hint{color:#8a98aa;display:block;font-size:12px;margin-top:8px}.dashboard-report-panel{display:flex;flex-direction:column;gap:14px}.dashboard-report-head{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}.dashboard-report-strip{display:flex;flex-wrap:wrap;gap:8px}.dashboard-warning-subtitle{color:#7d8ca2;font-size:13px;line-height:1.6;margin-top:6px}.dashboard-warning-grid{display:grid;gap:12px;grid-template-columns:repeat(5,minmax(0,1fr))}.dashboard-warning-card{min-height:96px;position:relative;overflow:hidden}.dashboard-warning-card:before{content:"";position:absolute;inset:0 auto auto 0;width:100%;height:3px;border-radius:12px 12px 0 0}.dashboard-warning-card--lesson:before{background:#f59e0b}.dashboard-warning-card--content:before{background:#ef4444}.dashboard-warning-card--homework:before{background:#df7a1f}.dashboard-warning-card--leave:before{background:#8b5cf6}.dashboard-warning-card--refund:before{background:#f97316}@media (max-width: 1100px){.dashboard-toolbar,.dashboard-report-head{align-items:stretch;flex-direction:column}.dashboard-toolbar__picker,.dashboard-metrics-grid,.dashboard-warning-grid,.entity-toolbar__actions,.entity-toolbar__actions .el-button{width:100%}.dashboard-metrics-grid,.dashboard-warning-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 768px){.dashboard-stats-overview--2,.dashboard-metrics-grid,.dashboard-warning-grid{grid-template-columns:repeat(1,minmax(0,1fr))}}.table-action--warning{background:#fff5df!important;color:#b7791f!important}.table-action--warning:hover{background:#ffedc2!important;color:#a16207!important}.table-action--danger{background:#fff0f0!important;color:#d94b4b!important}.table-action--danger:hover{background:#ffe2e2!important;color:#c53030!important}.tabs-bar{background:#fffffff5;border-bottom:1px solid #dce5f0;box-shadow:inset 0 -1px #ffffffb8;position:relative;z-index:3}.tabs-bar__inner{align-items:center;display:flex;gap:12px;min-height:46px;padding:0 16px}.tabs-bar__scroll{align-items:center;display:flex;flex:1;gap:8px;min-width:0;overflow-x:auto;padding:8px 0 9px}.tabs-bar__scroll::-webkit-scrollbar{display:none}.tabs-chip{align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#f5f7fb;border:1px solid #e0e8f2;border-radius:8px;color:#5e7187;cursor:pointer;display:inline-flex;flex:0 0 auto;gap:8px;height:34px;margin:0;max-width:220px;padding:0 12px;position:relative;transition:all .18s ease}.tabs-chip:hover{background:#fff4e8;border-color:#d2dff0;color:#223247}.tabs-chip.is-active{background:#fff;border-color:#c8d8ea;box-shadow:0 8px 18px #0f172a0f;color:#142235}.tabs-chip.is-active:after{background:linear-gradient(90deg,#df7a1f,#f1ae5b);border-radius:999px;bottom:-9px;content:"";height:3px;left:12px;position:absolute;right:12px}.tabs-chip.is-pinned{background:#fff1df;border-color:#d9e4fb;color:#234582}.tabs-chip.is-pinned .tabs-chip__text{font-weight:600}.tabs-chip__home{align-items:center;color:#df7a1f;display:inline-flex;flex:0 0 auto}.tabs-chip__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tabs-chip__close{align-items:center;border-radius:999px;color:#94a3b8;display:inline-flex;flex:0 0 auto;font-size:12px;height:18px;justify-content:center;transition:all .15s ease;width:18px}.tabs-chip__close:hover{background:#edf2f9;color:#e11d48}.tabs-bar__more{align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fffdfa;border:1px solid #d7e1ee;border-radius:8px;color:#5d7086;cursor:pointer;display:inline-flex;flex:0 0 auto;height:34px;justify-content:center;transition:all .18s ease;width:34px}.tabs-bar__more:hover{background:#f1f6fd;border-color:#c7d7ea;color:#1f3c63}@media (max-width: 768px){.tabs-bar__inner{padding:0 14px}.page-section-card{padding:16px}}
