*{box-sizing:border-box}
:root{--blue:#287fe7;--deep-blue:#062d67;--ink:#192230;--muted:#8791a2;--line:#e8edf4;--surface:#fff;--canvas:#f6f8fb;--green:#39bc7b;--orange:#f3a12d;--purple:#7c62e8}
html,body{margin:0;min-height:100%;font-family:"Microsoft YaHei","PingFang SC","Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased}
button,input,select{font:inherit}
button{cursor:pointer}
a{text-decoration:none;color:inherit}
.page-shell{min-height:100vh}
.icon{width:21px;height:21px;display:inline-flex;align-items:center;justify-content:center;flex:none;font-size:19px;line-height:1}
.icon svg{width:100%;height:100%;display:block}
.pill{border-radius:999px;padding:3px 10px;font-size:12px;line-height:1.2;display:inline-block}

/* Student portal */
.student-page{background:#f6f8fb;color:#283340;min-width:1150px}
.student-header{height:108px;background:#fff;border-bottom:1px solid #e9eef5;display:flex;align-items:center;justify-content:space-between;padding:0 28px 0 24px}.student-menu-button{display:none;border:0;background:transparent;color:#52677f;padding:5px;margin-right:5px;cursor:pointer}.student-menu-button .svg-icon{width:21px;height:21px}
.student-brand{display:flex;align-items:center;gap:14px}
.student-crest{width:43px;height:43px;border:2px solid #8394b3;border-radius:50%;color:#365986;display:grid;place-items:center;font-size:24px;font-weight:700;position:relative;background:#fbfcff;box-shadow:inset 0 0 0 3px #edf2f8}
.student-crest:after{content:"";position:absolute;inset:7px;border:1px solid #aab8cf;border-radius:50%}
.student-brand-title{font-size:20px;font-weight:700;letter-spacing:.4px;color:#1f252c}
.student-brand-sub{font-size:13px;color:#7c828a;margin-top:4px}
.student-user{display:flex;align-items:center;gap:16px}
.student-bell{position:relative;color:#65707e}
.student-bell .count{position:absolute;top:-10px;right:-8px;background:#e7444a;color:#fff;border-radius:50%;width:18px;height:18px;text-align:center;font-size:11px;line-height:18px;font-weight:700}
.student-avatar{width:52px;height:52px;border-radius:50%;background:linear-gradient(145deg,#69b9f6,#1768ca);display:grid;place-items:center;color:#fff;font-size:25px;overflow:hidden}
.student-user-name{font-size:17px;font-weight:700;line-height:1.2}
.student-user-role{font-size:13px;color:#7b818b;margin-top:4px}
.student-chevron{color:#9ca4ad;font-size:20px;margin-left:2px}
.student-body{display:flex;min-height:calc(100vh - 108px)}
.student-sidebar{width:246px;flex:none;background:#fff;border-right:1px solid #edf1f5;padding:29px 20px;display:flex;flex-direction:column}
.student-nav{display:flex;flex-direction:column;gap:8px}
.student-nav-item{height:57px;border-radius:10px;display:flex;align-items:center;gap:17px;padding:0 20px;color:#555e6a;font-size:17px;transition:.2s}
.student-nav-item .icon{color:#7b8590;width:21px}
.student-nav-item.active{background:#2b80e8;color:#fff;box-shadow:0 4px 10px rgba(43,128,232,.17)}
.student-nav-item.active .icon{color:#fff}
.student-nav-item:hover{background:#edf5ff;color:#2677df}
.student-nav-spacer{height:1px;margin:2px 0}
.redacted-nav{height:14px;background:#f04e50;border-radius:12px;margin:2px 0 4px 28px;opacity:.98}
.redacted-nav.short{width:168px;transform:translateX(-7px)}
.student-nav-bottom{margin-top:auto;display:flex;flex-direction:column;gap:8px}
.student-main{flex:1;padding:26px 28px 14px;min-width:0}
.student-hero{height:175px;border-radius:12px;position:relative;overflow:hidden;background:linear-gradient(110deg,#2884ec,#2990ec 55%,#3a99ef);padding:44px 36px;color:white;box-shadow:0 3px 9px rgba(47,125,218,.13)}
.student-hero:before{content:"";position:absolute;width:580px;height:250px;right:190px;top:-70px;background:radial-gradient(ellipse,rgba(104,201,255,.18),transparent 68%);transform:rotate(-14deg)}
.student-hero h1{font-size:29px;margin:0 0 14px;font-weight:700;letter-spacing:.5px;position:relative}
.student-hero p{font-size:19px;margin:0;letter-spacing:.2px;position:relative}
.hero-art{position:absolute;right:29px;bottom:-2px;width:395px;height:165px}
.hero-laptop{position:absolute;right:64px;bottom:8px;width:191px;height:113px;border:7px solid #d7ebff;border-radius:8px 8px 12px 12px;background:linear-gradient(145deg,#fefefe,#d5e5f4);transform:skew(-11deg);box-shadow:0 8px 0 #0d66c6,0 10px 12px rgba(0,63,150,.23)}
.hero-laptop:after{content:"";position:absolute;left:-36px;right:-32px;bottom:-22px;height:14px;background:#c5e4ff;border-radius:50%;transform:skew(11deg);box-shadow:0 5px 0 #2772cf}
.hero-screen{position:absolute;left:22px;top:18px;right:16px;bottom:13px;border-radius:3px;background:linear-gradient(135deg,#d8f1ff,#fff 64%);transform:skew(0deg);opacity:.95}
.hero-screen:before,.hero-screen:after{content:"";position:absolute;left:14px;width:39px;height:20px;background:#afd8f8;border-radius:3px;top:22px;box-shadow:48px 0 0 #aed5f2}
.hero-screen:after{top:51px;width:92px;height:7px;box-shadow:0 14px 0 #c8def0,0 28px 0 #c8def0}
.hero-cup{position:absolute;right:4px;bottom:4px;width:42px;height:60px;border-radius:0 0 9px 9px;background:#dfefff;box-shadow:inset 0 8px 0 rgba(255,255,255,.8)}
.hero-cup:after{content:"";position:absolute;right:-20px;top:10px;width:20px;height:28px;border:5px solid #dfefff;border-left:0;border-radius:0 15px 15px 0}
.hero-books{position:absolute;left:64px;bottom:11px;width:126px;height:16px;background:#fff5cf;border-radius:6px;box-shadow:4px 14px 0 #f0a847,12px 29px 0 #fbfcfd}
.hero-books:after{content:"";position:absolute;left:6px;bottom:33px;width:78px;height:38px;background:#72c9bb;border-radius:34px 34px 8px 8px;transform:rotate(-9deg);box-shadow:24px -2px 0 -4px #87d5cb}
.student-grid-top{display:grid;grid-template-columns:1.02fr .98fr;gap:20px;margin-top:25px}
.student-grid-bottom{display:grid;grid-template-columns:1.42fr .9fr;gap:20px;margin-top:24px}
.student-card{background:#fff;border:1px solid #eef1f5;border-radius:12px;box-shadow:0 3px 14px rgba(30,63,99,.035);overflow:hidden}
.student-card-head{height:67px;display:flex;align-items:center;justify-content:space-between;padding:0 27px;border-bottom:1px solid #f1f3f6}
.student-card-head h2{font-size:21px;margin:0;font-weight:700;color:#1f2630}
.student-card-link{font-size:15px;color:#448fdc;display:flex;gap:4px;align-items:center}
.student-card-link:after{content:"›";font-size:23px;line-height:12px}
.course-card{height:460px}
.course-list{padding:13px 27px 18px}
.course-row{height:78px;background:#fbfcfe;display:flex;align-items:center;padding:0 15px;margin-bottom:10px;border-radius:4px;border:1px solid #f5f6f8}
.course-row:last-child{margin-bottom:0}
.course-icon{width:50px;height:50px;border-radius:5px;display:grid;place-items:center;color:#fff;font-size:29px;margin-right:20px}
.course-icon.blue{background:#277fe4}.course-icon.green{background:#35bc7b}.course-icon.purple{background:#7b5be4}.course-icon.orange{background:#f3a023}
.course-info{min-width:0;flex:1}.course-title{font-size:17px;font-weight:700;margin-bottom:8px}.course-meta{font-size:14px;color:#777e87;white-space:nowrap}.course-meta span{margin-right:20px}
.course-time{text-align:right;color:#777e87;font-size:14px;line-height:1.8;white-space:nowrap}
.choice-card{height:460px}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;padding:14px 25px 23px}
.choice-tile{height:159px;background:#fafbfe;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#292f38}
.choice-tile .choice-icon{width:38px;height:38px;border-radius:6px;color:#fff;display:grid;place-items:center;font-size:23px}
.choice-tile:nth-child(1) .choice-icon{background:#217fe3}.choice-tile:nth-child(2) .choice-icon{background:#39bb78}.choice-tile:nth-child(3) .choice-icon{background:#785be3}.choice-tile:nth-child(4) .choice-icon{background:#f0a02c;border-radius:50%}
.choice-tile strong{font-size:17px}.choice-tile small{font-size:13px;color:#898f98}
.english-card{height:313px}.english-grid{display:grid;grid-template-columns:1fr 1fr 1.3fr;height:246px}.english-col{padding:28px 27px;border-right:1px solid #f0f1f4}.english-col:last-child{border:0}.english-label{font-weight:700;font-size:17px;margin:0 0 25px}.level{color:#2274d2;font-weight:700;font-size:36px;line-height:1}.level small{font-size:17px;margin-left:4px}.progress{height:14px;border-radius:10px;background:#e9edf5;overflow:hidden;margin-top:28px}.progress > i{height:100%;display:block;background:#3185e8;border-radius:inherit}.progress-caption{font-size:14px;color:#808792;margin-top:12px}.task-line{font-size:14px;color:#7a818d;margin-top:38px;display:flex;gap:10px}.task-line b{color:#29303a}.task-progress{margin-top:15px}.recommend{display:flex;gap:15px;align-items:flex-start;margin-top:4px}.book-cover{width:77px;height:64px;border-radius:4px;background:linear-gradient(135deg,#283873,#384796);color:#fff;display:flex;align-items:center;justify-content:center;text-align:center;font-size:11px;font-weight:700;line-height:1.4;box-shadow:0 3px 7px rgba(28,44,93,.2)}.recommend-text{font-size:16px;font-weight:700}.recommend-text small{display:block;color:#838a94;font-size:14px;font-weight:400;margin-top:10px}.start-btn{border:0;background:#2683e6;color:#fff;border-radius:3px;padding:6px 13px;font-size:13px;margin-top:13px}
.notice-card{height:313px}.notice-list{padding:12px 27px}.notice-item{display:flex;align-items:flex-start;gap:15px;padding:11px 0}.notice-icon{width:42px;height:42px;display:grid;place-items:center;color:white;border-radius:5px;font-size:21px;flex:none}.notice-icon.blue{background:#2c84e9}.notice-icon.green{background:#41bb7e}.notice-icon.purple{background:#7d60e5}.notice-body{min-width:0;flex:1}.notice-title{font-size:16px;font-weight:700;display:flex;justify-content:space-between;gap:10px}.notice-time{font-size:12px;color:#aaa;font-weight:400;white-space:nowrap}.notice-copy{font-size:13px;color:#888f99;margin-top:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-footer{text-align:center;color:#aab0b9;font-size:13px;padding:30px 0 2px;letter-spacing:.2px}

/* Teacher portal */
.teacher-page{min-width:900px;background:#f8fbff;color:#172338}.teacher-header{height:50px;background:#062b67;color:#fff;display:flex;align-items:center;padding:0 18px;justify-content:space-between}.teacher-brand{display:flex;align-items:center;gap:11px;font-size:16px;font-weight:700}.hamburger{font-size:21px;width:20px;overflow:hidden}.book-mark{font-size:22px;color:#7ed0ff}.teacher-account{height:100%;display:flex;align-items:center;gap:11px;font-size:12px}.teacher-account .teacher-avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#f4d4bd,#6d87b2);font-size:17px;border:2px solid #fff}.teacher-account small{display:block;color:#bed2ef;font-size:9px;margin-top:2px}.teacher-notify{font-size:20px;position:relative;margin-right:6px}.teacher-notify b{position:absolute;right:-6px;top:-7px;background:#ee4b50;border-radius:50%;font-size:9px;line-height:15px;text-align:center;width:15px;height:15px}.teacher-layout{display:flex;min-height:calc(100vh - 50px)}.teacher-sidebar{width:130px;flex:none;background:linear-gradient(180deg,#083b81 0%,#06265e 100%);color:#fff;padding:13px 7px}.teacher-nav-item{height:34px;border-radius:4px;display:flex;align-items:center;gap:9px;padding:0 12px;font-size:12px;color:#d9e8fb;margin-bottom:8px}.teacher-nav-item .icon{width:18px;height:18px;font-size:15px}.teacher-nav-item.active{background:#347fea;color:#fff;box-shadow:0 4px 9px rgba(0,0,0,.12)}.teacher-nav-item .nav-badge{margin-left:auto;background:#ee4d51;width:15px;height:15px;border-radius:50%;font-size:9px;text-align:center;line-height:15px}.teacher-main{flex:1;padding:13px 18px 16px;min-width:0}.teacher-welcome{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.teacher-welcome h1{font-size:17px;margin:0 0 3px}.teacher-welcome p{margin:0;color:#8792a4;font-size:10px}.teacher-top-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:11px}.teacher-stat{height:96px;background:#fff;border:1px solid #e3ebf5;border-radius:6px;box-shadow:0 2px 6px rgba(35,76,125,.03);padding:14px 13px;position:relative}.teacher-stat-icon{position:absolute;left:13px;top:16px;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:18px}.teacher-stat:nth-child(1) .teacher-stat-icon{background:#d9e9ff;color:#287de0}.teacher-stat:nth-child(2) .teacher-stat-icon{background:#d8f7ef;color:#28b47e}.teacher-stat:nth-child(3) .teacher-stat-icon{background:#ffebd2;color:#ff9e25}.teacher-stat:nth-child(4) .teacher-stat-icon{background:#e7dcff;color:#7256dc}.teacher-stat-copy{margin-left:53px}.teacher-stat-label{font-size:10px;color:#8c95a0}.teacher-stat-value{font-size:20px;font-weight:700;margin-top:4px}.teacher-stat-value small{font-size:10px;font-weight:400;color:#9aa2ad;margin-left:3px}.teacher-content-grid{display:grid;grid-template-columns:1.12fr 1.12fr .95fr;gap:14px;align-items:start}.teacher-panel{background:#fff;border:1px solid #e4ecf5;border-radius:6px;overflow:hidden}.teacher-panel.full{grid-column:1 / span 2}.teacher-panel-title{height:34px;display:flex;align-items:center;justify-content:space-between;padding:0 11px;border-bottom:1px solid #e8eef5;font-size:11px;font-weight:700}.teacher-panel-title a{font-size:9px;color:#3285df;font-weight:400}.teacher-table{width:100%;border-collapse:collapse;font-size:9px}.teacher-table th{font-size:8px;color:#6d7785;font-weight:400;height:28px;background:#fbfcfe;text-align:left;padding:0 11px;white-space:nowrap}.teacher-table td{height:31px;border-top:1px solid #eef2f6;padding:0 11px;white-space:nowrap;color:#283446}.teacher-table td:last-child{color:#2c83dc}.teacher-student{display:flex;align-items:center;gap:7px}.teacher-student-avatar{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#efc4a9,#6688af);font-size:10px;color:#fff}.teacher-panel.wide{grid-column:1 / span 2;margin-top:1px}.teacher-panel.wide .teacher-table th,.teacher-panel.wide .teacher-table td{padding-left:11px;padding-right:11px}.teacher-status{padding:3px 7px;border-radius:3px;font-size:8px}.teacher-status.running{color:#22b77c;background:#ddf7ec}.teacher-status.pending{color:#f18a2c;background:#fff0db}.teacher-calendar{padding:9px 11px 10px}.calendar-head{display:flex;justify-content:space-between;align-items:center;font-size:10px;margin:0 5px 8px}.calendar-head .month{font-weight:700}.calendar-head button{border:0;background:transparent;color:#34435b;font-size:13px}.calendar-head .today{background:#edf4ff;color:#2d82e5;border-radius:4px;padding:5px 9px;font-size:8px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;row-gap:7px;font-size:8px;color:#435069}.calendar-grid .weekday{color:#7f8b9e}.calendar-grid span{height:15px;display:grid;place-items:center}.calendar-grid .muted{color:#bbc2cb}.calendar-grid .selected{background:#2f86e9;color:white;border-radius:50%;width:20px;justify-self:center}.teacher-schedule{margin-top:11px}.schedule-item{border:1px solid #edf1f6;border-radius:5px;padding:8px 9px;margin-top:7px;font-size:8px;color:#34445b}.schedule-item strong{font-size:9px}.schedule-item .dot{display:inline-block;width:5px;height:5px;background:#34bf80;border-radius:50%;margin-right:4px}.schedule-item.orange .dot{background:#f6a326}.schedule-meta{display:flex;justify-content:space-between;color:#7b879a;margin-top:5px;padding-left:9px}.calendar-more{text-align:center;color:#2f82df;font-size:8px;margin-top:12px}

/* Admin portal */
.admin-page{min-width:1280px;background:#f6f8fc;color:#172334}.admin-layout{display:flex;min-height:100vh}.admin-sidebar{width:254px;flex:none;background:linear-gradient(180deg,#062a60,#041f49);color:#fff;padding:25px 17px 20px}.admin-brand{padding:0 15px 25px}.admin-brand-title{font-size:23px;font-weight:700;letter-spacing:.8px}.admin-brand-sub{font-size:14px;color:#a4b8d3;margin-top:8px}.admin-nav{display:flex;flex-direction:column;gap:8px}.admin-nav-item{height:53px;border-radius:7px;padding:0 16px;display:flex;align-items:center;gap:15px;color:#dbe8fb;font-size:16px}.admin-nav-item .icon{width:21px;height:21px}.admin-nav-item.active{background:#1762bb;color:#fff;box-shadow:0 5px 12px rgba(0,0,0,.17)}.admin-nav-item:hover{background:#114d97}.admin-logout{margin-top:auto;padding:18px 15px 4px;color:#dbe8fb;display:flex;align-items:center;gap:15px;font-size:16px}.admin-main{flex:1;min-width:0}.admin-header{height:71px;background:#fff;border-bottom:1px solid #edf0f5;display:flex;align-items:center;padding:0 27px}.admin-hamburger{font-size:27px;color:#111;width:27px;line-height:1}.admin-header-account{margin-left:auto;display:flex;align-items:center;gap:12px;color:#333;font-size:14px}.admin-header-avatar{width:29px;height:29px;border-radius:50%;background:#a7b4c7;color:#fff;display:grid;place-items:center}.admin-header-chevron{font-size:18px;color:#8490a1;margin-left:3px}.admin-content{padding:24px 26px 30px}.admin-intro-row{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.admin-intro h1{margin:0;font-size:25px;line-height:1.2}.admin-intro p{font-size:15px;margin:7px 0 0;color:#606e80}.admin-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;width:64%;min-width:570px}.admin-stat{height:91px;background:#fff;border-radius:10px;border:1px solid #eef1f5;display:flex;align-items:center;padding:0 24px;box-shadow:0 3px 11px rgba(33,73,121,.035)}.admin-stat .stat-icon{width:38px;height:38px;display:grid;place-items:center;font-size:24px;margin-right:20px}.admin-stat:nth-child(1) .stat-icon{color:#2679de}.admin-stat:nth-child(2) .stat-icon{color:#35b87a}.admin-stat:nth-child(3) .stat-icon{color:#6e5de3}.admin-stat:nth-child(4) .stat-icon{color:#f29b2f}.admin-stat-label{font-size:13px;color:#7e8999;margin-bottom:8px}.admin-stat-value{font-size:25px;font-weight:700;color:#101821}.admin-section{background:#fff;border:1px solid #edf0f5;border-radius:11px;box-shadow:0 3px 11px rgba(29,67,111,.035);padding:21px 24px 10px;margin-bottom:17px}.admin-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.admin-section-title{font-size:24px;font-weight:700}.admin-actions{display:flex;align-items:center;gap:33px}.admin-search,.admin-select{height:38px;border:1px solid #e0e5ed;border-radius:5px;background:#fff;color:#a9b1bd;padding:0 14px;display:flex;align-items:center;font-size:14px}.admin-search{width:254px;justify-content:space-between}.admin-select{width:200px;justify-content:space-between;color:#414e60}.admin-buttons{display:flex;gap:14px;margin-left:auto}.admin-btn{height:38px;border-radius:5px;padding:0 17px;border:1px solid #a6d0ff;background:#fff;color:#1c75df;display:flex;align-items:center;gap:8px;font-size:15px}.admin-btn.primary{background:#086ad9;border-color:#086ad9;color:#fff}.admin-btn.green{color:#2eb57a;border-color:#9edfc2}.admin-table-wrap{overflow:hidden}.admin-table{width:100%;border-collapse:collapse;font-size:15px}.admin-table th{height:38px;background:#fafbfc;color:#1f2936;font-weight:700;text-align:left;padding:0 14px;white-space:nowrap}.admin-table td{height:38px;border-top:1px solid #edf0f5;padding:0 14px;white-space:nowrap}.admin-table th:first-child,.admin-table td:first-child{width:42px}.check{width:17px;height:17px;border:1px solid #ced6e0;border-radius:3px;display:inline-block;vertical-align:middle;background:#fff}.status{padding:4px 10px;border-radius:4px;font-size:13px}.status.green{color:#33b678;background:#ebf9f1;border:1px solid #cdeeda}.status.orange{color:#f19b2c;background:#fff5e9;border:1px solid #ffe4bd}.table-action{color:#287bd8;margin-right:31px}.table-action.delete{color:#ec5355;margin-right:0}.admin-pager{display:flex;align-items:center;justify-content:flex-end;gap:10px;height:48px;font-size:14px;color:#1d2733}.pager-btn{min-width:34px;height:34px;border:1px solid #dfe6ef;background:#fff;border-radius:5px;display:grid;place-items:center;color:#233042}.pager-btn.current{border-color:#6daaf2;color:#2375dc;box-shadow:inset 0 0 0 1px #c9e0fb}.pager-btn.ellipsis{border:0}.pager-count{margin-right:8px}.pager-size{margin-left:5px;width:122px;height:34px;display:flex;align-items:center;justify-content:space-between;border:1px solid #dfe6ef;border-radius:5px;padding:0 11px}.admin-section.students{min-height:316px}.admin-section.teachers{min-height:316px}.admin-section.courses{min-height:316px}

@media(max-width:1250px){.student-page{min-width:980px}.student-sidebar{width:210px}.student-nav-item{font-size:15px;padding-left:15px}.student-main{padding-left:18px;padding-right:18px}.student-grid-top,.student-grid-bottom{gap:14px}.course-list{padding-left:15px;padding-right:15px}.choice-grid{padding-left:15px;padding-right:15px}.admin-intro-row{display:block}.admin-stat-grid{width:100%;margin-top:20px}.admin-section{padding-left:16px;padding-right:16px}}

/* geometry calibration for the supplied reference sizes */
.student-main{padding-left:22px}
.student-grid-top{grid-template-columns:1.142fr 1fr}
.student-grid-bottom{grid-template-columns:1.617fr 1fr;gap:14px;margin-top:21px}
.teacher-stat-link{position:absolute;left:13px;bottom:9px;color:#3285df;font-size:9px;font-weight:400}
.teacher-content-grid{grid-template-columns:1fr 1fr 1.12fr;grid-template-rows:auto auto;gap:12px 14px}
.teacher-panel:nth-child(3){grid-column:3;grid-row:1 / span 2}
.teacher-panel.wide{grid-column:1 / span 2;grid-row:2;margin-top:0}
.admin-section-head{justify-content:flex-start;gap:12px}
.admin-actions{flex:1}
.teacher-welcome{margin-bottom:7px}
.admin-section-head{gap:73px}
.choice-tile.is-selected{outline:2px solid #2c83e9;outline-offset:-2px;background:#f1f7ff}
.admin-search.focused{border-color:#3d8de9;box-shadow:0 0 0 3px rgba(61,141,233,.1);color:#71849b}
.svg-icon{width:1em;height:1em;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.student-crest .svg-icon{width:28px;height:28px;position:relative;z-index:1}
.student-bell .svg-icon{width:21px;height:21px}
.hamburger .svg-icon,.admin-hamburger .svg-icon{width:100%;height:100%}
.book-mark .svg-icon{width:21px;height:21px}
.teacher-notify>.svg-icon{width:20px;height:20px}
.teacher-stat-icon .svg-icon{width:22px;height:22px}
.admin-stat .stat-icon .svg-icon{width:24px;height:24px}
.choice-icon .svg-icon{width:23px;height:23px}
.notice-icon .svg-icon{width:22px;height:22px}
.course-icon .svg-icon{width:28px;height:28px}
.admin-btn .svg-icon{width:16px;height:16px}
.admin-search .svg-icon{width:15px;height:15px}
.student-chevron .svg-icon,.admin-header-chevron .svg-icon,.teacher-account>span:last-child .svg-icon{width:16px;height:16px}
.calendar-head button .svg-icon{width:13px;height:13px}
.admin-header-avatar .svg-icon{width:16px;height:16px}

/* Functional interaction layer */
[hidden]{display:none!important}
body.modal-open{overflow:hidden}
.app-toast{position:fixed;z-index:2000;left:50%;bottom:28px;transform:translate(-50%,20px);padding:12px 20px;border-radius:8px;background:#1f2c3d;color:#fff;font-size:14px;box-shadow:0 12px 32px rgba(17,40,75,.2);opacity:0;pointer-events:none;transition:.22s}.app-toast.show{opacity:1;transform:translate(-50%,0)}.app-toast.warning{background:#b56b12}.app-toast.error{background:#c4454c}
.app-modal-backdrop{position:fixed;z-index:1900;inset:0;background:rgba(20,38,64,.38);display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;visibility:hidden;transition:.2s}.app-modal-backdrop.open{opacity:1;visibility:visible}.app-modal{width:min(620px,100%);max-height:min(780px,calc(100vh - 48px));overflow:auto;background:#fff;border-radius:12px;box-shadow:0 24px 70px rgba(19,49,90,.24);transform:translateY(12px);transition:.2s}.app-modal-backdrop.open .app-modal{transform:translateY(0)}.app-modal-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 15px;border-bottom:1px solid #eef2f6}.app-modal-head h2{margin:0;font-size:20px;color:#1c2a3a}.modal-close{border:0;background:transparent;color:#8c98a7;padding:6px;border-radius:5px}.modal-close:hover{background:#f1f5f9;color:#1e75d8}.modal-close .svg-icon{width:18px;height:18px}.app-modal-body{padding:22px 24px}.app-modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:0 24px 22px}.modal-btn{border:1px solid #d8e1eb;background:#fff;color:#536274;border-radius:6px;padding:9px 17px;font-size:14px}.modal-btn:hover{background:#f5f8fb}.modal-btn.primary{border-color:#287fe7;background:#287fe7;color:#fff}.modal-btn.danger{border-color:#df5a5e;background:#df5a5e;color:#fff}.modal-message{color:#5f6b7b;line-height:1.8;margin:0}.modal-note{font-size:13px;color:#8994a3;background:#f7f9fc;border-radius:6px;padding:11px 13px;margin:20px 0 0}.account-menu{position:fixed;z-index:1800;width:180px;padding:8px;background:#fff;border:1px solid #e4ebf4;border-radius:9px;box-shadow:0 12px 35px rgba(24,55,92,.15)}.account-menu-name{font-size:13px;color:#8a96a5;padding:8px 11px 10px;border-bottom:1px solid #edf1f5}.account-menu button{display:block;width:100%;border:0;background:transparent;text-align:left;padding:10px 11px;border-radius:6px;color:#334154;font-size:14px}.account-menu button:hover{background:#eff6ff;color:#287fe7}
.dynamic-view{min-height:calc(100vh - 160px)}.portal-view-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:4px 0 20px}.portal-view-head h1{margin:0;font-size:24px;color:#1b2a3b}.portal-view-head p{margin:7px 0 0;color:#8190a1;font-size:14px}.view-actions{display:flex;gap:10px;flex-wrap:wrap}.primary-action,.ghost-action{display:inline-flex;align-items:center;gap:7px;border-radius:6px;padding:10px 15px;font-size:14px;cursor:pointer;white-space:nowrap}.primary-action{border:1px solid #287fe7;background:#287fe7;color:#fff}.primary-action:hover{background:#176bcf}.ghost-action{border:1px solid #d6e3f1;background:#fff;color:#287bd8}.ghost-action:hover{background:#f1f7ff}.primary-action .svg-icon,.ghost-action .svg-icon{width:16px;height:16px}.data-table-card{background:#fff;border:1px solid #e8eef5;border-radius:10px;overflow:auto;box-shadow:0 3px 13px rgba(29,67,111,.035)}.data-table{width:100%;border-collapse:collapse;min-width:680px;font-size:14px}.data-table th{height:46px;background:#f8fafc;color:#647386;text-align:left;font-size:13px;font-weight:600;padding:0 17px;white-space:nowrap}.data-table td{height:58px;padding:8px 17px;border-top:1px solid #eef2f6;color:#405064;white-space:nowrap}.data-table td strong{color:#273649}.data-table td small{font-size:12px;color:#99a4b1}.data-table tr:hover td{background:#fbfdff}.inline-action{border:0;background:transparent;color:#277bd9;font-size:13px;padding:3px 8px;cursor:pointer}.inline-action:hover{text-decoration:underline}.inline-action.danger-text{color:#df5a5d}.empty-state{text-align:center!important;color:#9da7b3!important;padding:42px!important}.status-chip{display:inline-block;padding:5px 10px;border-radius:5px;font-size:12px}.status-chip.success{color:#20a96e;background:#e9f8f0}.status-chip.warning{color:#d98520;background:#fff1dd}.status-chip.danger{color:#d65055;background:#ffebeb}.schedule-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:18px}.schedule-summary>div{background:#fff;border:1px solid #e8eef5;border-radius:10px;padding:18px 20px}.schedule-summary span{display:block;color:#8995a3;font-size:13px;margin-bottom:8px}.schedule-summary strong{font-size:27px;color:#1e75d4}.schedule-summary small{font-size:14px;color:#8995a3;font-weight:400}.view-toolbar{display:flex;align-items:center;justify-content:space-between;margin:0 0 17px}.view-search{width:min(380px,100%);display:flex;align-items:center;gap:8px;border:1px solid #dce6f1;background:#fff;border-radius:7px;padding:0 12px;color:#8c9bab}.view-search .svg-icon{width:16px;height:16px}.view-search input{width:100%;height:39px;border:0;outline:0;color:#3b4c60;background:transparent}.view-result-count{font-size:13px;color:#7f8d9d}.catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.catalog-card{display:flex;align-items:center;gap:14px;padding:17px;background:#fff;border:1px solid #e7edf4;border-radius:10px;min-width:0;box-shadow:0 3px 12px rgba(30,63,99,.025)}.catalog-icon{width:46px;height:46px;display:grid;place-items:center;flex:none;color:#fff;border-radius:8px}.catalog-icon.blue{background:#287fe7}.catalog-icon.green{background:#38bb7b}.catalog-icon.purple{background:#7c62e8}.catalog-icon.orange{background:#f3a12d}.catalog-main{min-width:0;flex:1}.catalog-title{display:flex;align-items:center;gap:8px}.catalog-title h3{font-size:16px;margin:0;color:#263648}.catalog-title span{font-size:11px;color:#8995a2;background:#f1f4f8;padding:3px 6px;border-radius:4px}.catalog-main p{font-size:12px;color:#8793a2;margin:7px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.course-action{display:inline-flex;align-items:center;justify-content:center;gap:4px;flex:none;border:1px solid #287fe7;color:#287fe7;background:#fff;border-radius:5px;padding:7px 10px;font-size:12px}.course-action:hover,.course-action.selected{background:#287fe7;color:#fff}.course-action .svg-icon{width:14px;height:14px}.course-action.selected{border-color:#34b97b;background:#34b97b}.table-card-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid #edf1f5;font-size:14px;color:#8591a0}.table-card-head strong{color:#263649}.table-card-head select{border:1px solid #dde5ef;border-radius:5px;color:#516174;background:#fff;padding:7px 10px;font-size:13px}.timeline-card{background:#fff;border:1px solid #e8eef5;border-radius:10px;padding:10px 24px}.timeline-item{position:relative;display:grid;grid-template-columns:110px 1fr 260px 70px;align-items:center;gap:18px;padding:22px 15px;border-bottom:1px solid #eef2f6}.timeline-item:last-child{border-bottom:0}.timeline-item:before{content:"";position:absolute;left:-9px;width:9px;height:9px;border:3px solid #d9e5f3;background:#fff;border-radius:50%}.timeline-item.done:before{border-color:#39bb7b;background:#39bb7b}.timeline-item.active:before{border-color:#287fe7;background:#287fe7;box-shadow:0 0 0 4px #deedff}.timeline-item span{color:#8391a1;font-size:13px}.timeline-item strong{font-size:16px;color:#2c3c50}.timeline-item time{font-size:13px;color:#8693a1}.timeline-item em{font-size:12px;font-style:normal;color:#95a0ac}.timeline-item.active em{color:#287fe7}.exam-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.exam-card{display:flex;gap:15px;background:#fff;border:1px solid #e7edf4;border-radius:10px;padding:19px}.exam-date{width:48px;height:55px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:8px;color:#fff;background:#287fe7;line-height:1}.exam-date strong{font-size:20px}.exam-date span{font-size:12px;margin-top:4px}.exam-card h3{margin:0 0 8px;font-size:16px;color:#2a3b4e}.exam-card p{margin:5px 0;color:#8491a0;font-size:12px}.notice-tip{margin-top:16px;display:flex;align-items:center;gap:8px;color:#6d7d8e;background:#edf6ff;border-radius:7px;padding:12px 15px;font-size:13px}.notice-tip .svg-icon{width:17px;height:17px;color:#287fe7}.notice-feed{display:flex;flex-direction:column;gap:10px}.feed-item{display:flex;align-items:flex-start;gap:14px;padding:17px 19px;background:#fff;border:1px solid #e7edf4;border-radius:10px;cursor:pointer;position:relative}.feed-item:hover{border-color:#b9d6f4}.feed-item.read{opacity:.72}.feed-item .notice-icon{width:40px;height:40px}.feed-item>div:nth-child(2){min-width:0;flex:1}.feed-title{display:flex;gap:15px;justify-content:space-between;color:#2b3b4d;font-size:14px}.feed-title time{color:#9aa5b1;font-size:12px;font-weight:400}.feed-item p{margin:7px 0 0;color:#7e8a98;font-size:13px}.unread-dot{width:7px;height:7px;margin-top:8px;border-radius:50%;background:#287fe7}.feed-item.read .unread-dot{visibility:hidden}.english-overview{display:grid;grid-template-columns:155px 1fr 250px;gap:26px;align-items:center;background:#fff;border:1px solid #e7edf4;border-radius:10px;padding:24px;margin-bottom:16px}.level-big{font-size:35px;font-weight:700;color:#287fe7}.level-big small{font-size:15px}.level-big span{display:block;font-weight:400;color:#8b97a5;font-size:12px;margin-top:6px}.progress-label{display:flex;justify-content:space-between;color:#526376;font-size:13px}.progress-label strong{color:#287fe7}.overview-progress .progress{margin-top:10px}.progress.large{height:12px}.overview-progress p{font-size:12px;color:#8d99a6}.english-book{display:flex;gap:12px;align-items:center}.english-book .book-cover{flex:none}.english-book strong,.english-book span{display:block}.english-book strong{font-size:14px}.english-book span{font-size:12px;color:#8b97a5;margin:7px 0}.english-book .course-action{padding:5px 8px}.task-board{background:#fff;border:1px solid #e7edf4;border-radius:10px;overflow:hidden}.learning-task{width:100%;display:flex;align-items:center;gap:13px;padding:14px 18px;border:0;border-bottom:1px solid #eef2f6;background:#fff;text-align:left;color:#405064;font-size:14px}.learning-task:hover{background:#f8fbff}.learning-task:last-child{border-bottom:0}.learning-task small{margin-left:auto;color:#8a98a7;display:flex;align-items:center;gap:4px}.learning-task small .svg-icon{width:13px;height:13px}.task-check{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;border:1px solid #d6e1ee;color:#8b98a6;font-size:12px}.learning-task.done{color:#8c98a5}.learning-task.done .task-check{color:#fff;background:#39bb7b;border-color:#39bb7b}.help-layout{display:grid;grid-template-columns:1fr 285px;gap:18px}.faq-list{display:flex;flex-direction:column;gap:9px}.faq-list details{background:#fff;border:1px solid #e6edf4;border-radius:8px;padding:0 18px}.faq-list summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;padding:17px 0;color:#304054;font-weight:600}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{color:#8a98a7;font-size:18px}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list p{border-top:1px solid #eef2f6;margin:0;padding:14px 0 17px;color:#7e8c9a;font-size:13px;line-height:1.8}.support-card{background:linear-gradient(145deg,#eaf4ff,#f7fbff);border:1px solid #d8e9fa;border-radius:10px;padding:25px;text-align:center;height:max-content}.support-icon{width:48px;height:48px;margin:0 auto 15px;border-radius:50%;display:grid;place-items:center;background:#287fe7;color:#fff}.support-icon .svg-icon{width:23px;height:23px}.support-card h3{margin:0;color:#2d3f54;font-size:17px}.support-card p{font-size:12px;line-height:1.8;color:#8491a0}.support-card .primary-action{border:0}
.trial-layout{display:grid;grid-template-columns:380px 1fr;gap:17px}.calendar-large,.trial-list{background:#fff;border:1px solid #e7edf4;border-radius:10px;padding:19px}.calendar-large .calendar-head{margin:0 0 18px}.calendar-large .calendar-head button{padding:6px;border:0;background:transparent}.calendar-large .calendar-head .today{margin-left:auto;background:#edf5ff;color:#287fe7;border-radius:5px;padding:7px 11px}.calendar-grid.large{row-gap:12px;font-size:13px}.calendar-grid.large button{border:0;background:transparent;color:#47586b;height:28px;border-radius:50%}.calendar-grid.large button:hover{background:#edf5ff;color:#287fe7}.calendar-grid.large button.selected{width:28px;background:#287fe7;color:#fff;justify-self:center}.trial-list h3{margin:0 0 12px;color:#2c3d51;font-size:16px}.trial-item{display:flex;align-items:flex-start;gap:11px;padding:14px 0;border-bottom:1px solid #edf1f5}.trial-item:last-child{border-bottom:0}.trial-dot{width:8px;height:8px;background:#35bc7b;border-radius:50%;margin-top:6px}.trial-item>div{min-width:0;flex:1}.trial-item strong{font-size:14px;color:#2c3e52}.trial-item p{margin:6px 0 0;color:#8995a3;font-size:12px}.evaluation-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:17px}.evaluation-summary>div{background:#fff;border:1px solid #e7edf4;border-radius:10px;padding:20px}.evaluation-summary strong,.evaluation-summary span{display:block}.evaluation-summary strong{font-size:28px;color:#287fe7}.evaluation-summary span{margin-top:5px;color:#8b97a5;font-size:13px}.evaluation-list{display:flex;flex-direction:column;gap:10px}.evaluation-item{background:#fff;border:1px solid #e7edf4;border-radius:10px;padding:16px 19px}.evaluation-head{display:flex;justify-content:space-between;color:#304155;font-size:14px}.evaluation-head time{font-size:12px;color:#9aa5b1}.stars{color:#f3a12d;letter-spacing:2px;margin:9px 0}.evaluation-item p{margin:0;color:#7f8c99;font-size:13px}.profile-form{background:#fff;border:1px solid #e7edf4;border-radius:10px;padding:24px}.profile-banner{display:flex;align-items:center;gap:15px;padding-bottom:22px;border-bottom:1px solid #edf1f5;margin-bottom:22px}.profile-avatar{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#f4d4bd,#6d87b2);font-size:28px}.profile-banner h2{margin:0;color:#2d3e52;font-size:20px}.profile-banner p{margin:6px 0 0;color:#8b97a5;font-size:13px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.form-field{display:flex;flex-direction:column;gap:7px;color:#647386;font-size:13px}.form-field.full{grid-column:1 / -1}.form-field input,.form-field select,.form-field textarea{width:100%;border:1px solid #dce5ef;border-radius:6px;background:#fff;color:#34465a;padding:9px 11px;outline:0}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:#3689e7;box-shadow:0 0 0 3px rgba(54,137,231,.1)}.form-field textarea{resize:vertical;line-height:1.6}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:21px}.lesson-player{text-align:center;color:#415269}.lesson-wave{height:72px;display:flex;justify-content:center;align-items:center;gap:5px;margin-bottom:17px}.lesson-wave i{display:block;width:5px;background:#287fe7;border-radius:5px}.lesson-options{display:grid;gap:9px;margin-top:18px}.lesson-options button{border:1px solid #dce6f2;background:#f8fbff;border-radius:6px;padding:10px;color:#44556a;text-align:left}.lesson-options button:hover{border-color:#287fe7;color:#287fe7}.role-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.role-choice{display:flex;flex-direction:column;align-items:center;gap:9px;border:1px solid #dce6ef;background:#fff;color:#41536a;border-radius:8px;padding:17px 10px}.role-choice:hover,.role-choice.current{border-color:#287fe7;background:#f0f7ff;color:#287fe7}.role-choice .svg-icon{width:24px;height:24px}
.admin-search-input,.admin-select-input{width:100%;height:36px;border:0;outline:0;background:transparent;color:#414e60;font-size:14px}.admin-search:focus-within{border-color:#3d8de9;box-shadow:0 0 0 3px rgba(61,141,233,.1)}.admin-search .svg-icon{flex:none}.admin-select{padding:0 10px}.check-holder{position:relative;width:17px;height:17px;display:inline-flex;align-items:center}.check-holder input,.row-check,.all-check{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}.check-holder .svg-icon{width:17px;height:17px;border:1px solid #ced6e0;border-radius:3px;color:transparent;background:#fff}.check-holder:has(input:checked) .svg-icon{color:#fff;background:#287fe7;border-color:#287fe7}.admin-table .inline-action{margin-right:9px;padding-left:0;padding-right:0}.admin-table .danger-text{margin-right:0}.admin-table td:first-child{position:relative}.row-check{position:relative;opacity:1;accent-color:#287fe7;width:16px;height:16px}.analytics-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:17px}.analytics-card{background:#fff;border:1px solid #e7edf4;border-radius:10px;padding:20px}.analytics-card span,.analytics-card strong,.analytics-card small{display:block}.analytics-card span{color:#7f8d9d;font-size:13px}.analytics-card strong{font-size:28px;color:#1f344c;margin:10px 0 6px}.analytics-card small{font-size:12px}.analytics-card .up{color:#28ae75}.analytics-card .down{color:#e06b6f}.mini-progress{display:inline-block;width:90px;height:7px;background:#e9eef4;border-radius:8px;vertical-align:middle;margin-right:8px;overflow:hidden}.mini-progress i{display:block;height:100%;background:#287fe7;border-radius:inherit}.rank{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#eef2f6;color:#718093;font-size:12px}.rank.top{background:#e5f1ff;color:#287fe7}.admin-notice-feed{display:flex;gap:12px}.admin-notice-row{display:flex;align-items:flex-start;gap:15px;background:#fff;border:1px solid #e7edf4;border-radius:10px;padding:18px}.admin-notice-row>div:nth-child(2){flex:1;min-width:0}.admin-notice-row strong{color:#2c3e52;font-size:15px}.admin-notice-row p{color:#7c8998;font-size:13px;margin:8px 0}.admin-notice-row small{color:#9aa5b1;font-size:12px}.row-actions{display:flex;gap:4px}.admin-sidebar.collapsed{width:74px;padding-left:10px;padding-right:10px}.admin-sidebar.collapsed .admin-brand-title,.admin-sidebar.collapsed .admin-brand-sub,.admin-sidebar.collapsed .admin-nav-item:not(.active)::after,.admin-sidebar.collapsed .admin-nav-item{font-size:0}.admin-sidebar.collapsed .admin-nav-item{justify-content:center;padding:0}.admin-sidebar.collapsed .admin-nav-item .icon{font-size:16px;margin:0}.admin-sidebar.collapsed .admin-logout{font-size:0;justify-content:center;padding-left:0;padding-right:0}.admin-sidebar.collapsed .admin-logout .icon{font-size:16px;margin:0}
@media(max-width:900px){.student-page,.teacher-page,.admin-page{min-width:0}.student-sidebar{width:190px}.student-nav-item{font-size:14px;padding:0 12px;gap:10px}.student-header{padding-left:15px;padding-right:15px}.student-user-role{display:none}.student-main{padding:18px}.student-grid-top,.student-grid-bottom,.catalog-grid,.exam-grid,.english-overview,.help-layout,.trial-layout{grid-template-columns:1fr}.choice-card,.course-card{height:auto}.teacher-top-stats{grid-template-columns:repeat(2,1fr)}.teacher-content-grid{grid-template-columns:1fr}.teacher-panel:nth-child(3),.teacher-panel.wide{grid-column:auto;grid-row:auto}.admin-sidebar{width:205px}.admin-intro-row{display:block}.admin-stat-grid{min-width:0}.admin-section-head{display:block}.admin-actions{margin-top:15px;flex-wrap:wrap}.timeline-item{grid-template-columns:1fr 1fr}.timeline-item time{grid-column:1 / -1}.timeline-item em{position:absolute;right:15px;top:23px}.schedule-summary,.analytics-grid,.evaluation-summary{grid-template-columns:1fr}.role-choices{grid-template-columns:1fr}}
.student-sidebar.mobile-open{display:flex;position:fixed;left:0;top:108px;bottom:0;z-index:1500;width:230px;box-shadow:10px 0 24px rgba(23,56,94,.16)}
.teacher-sidebar.collapsed{width:54px;padding-left:5px;padding-right:5px}.teacher-sidebar.collapsed .teacher-nav-item{justify-content:center;padding:0;gap:0}.teacher-sidebar.collapsed .teacher-nav-item span:last-of-type,.teacher-sidebar.collapsed .teacher-nav-item .nav-badge{display:none}
.teacher-sidebar.mobile-open{display:block;position:fixed;left:0;top:50px;bottom:0;z-index:1500;width:230px;padding:13px 7px;box-shadow:10px 0 24px rgba(23,56,94,.2)}
.admin-sidebar.mobile-open{display:block;position:fixed;left:0;top:0;bottom:0;z-index:1500;width:min(254px,80vw);box-shadow:10px 0 24px rgba(23,56,94,.22)}
@media(max-width:600px){.student-menu-button{display:grid;place-items:center}.student-sidebar{display:none}.student-brand-title{font-size:16px}.student-hero{height:160px;padding:30px 24px}.student-hero h1{font-size:23px}.student-hero p{font-size:14px;max-width:55%}.hero-art{transform:scale(.72);transform-origin:right bottom}.student-main{padding:12px}.student-card-head{padding:0 18px}.english-grid{display:block;height:auto}.english-col{border-right:0;border-bottom:1px solid #f0f1f4;padding:20px}.teacher-sidebar{width:54px;padding-left:5px;padding-right:5px}.teacher-nav-item{justify-content:center;padding:0}.teacher-nav-item span:last-of-type,.teacher-nav-item .nav-badge{display:none}.teacher-nav-item{gap:0}.teacher-main{padding:12px}.teacher-top-stats{gap:8px}.teacher-stat{height:105px}.teacher-stat-copy{margin-left:43px}.admin-sidebar{display:none}.admin-content{padding:15px}.admin-stat-grid{grid-template-columns:repeat(2,1fr);gap:8px;min-width:0}.admin-stat{padding:0 12px}.admin-stat .stat-icon{margin-right:9px}.admin-stat-value{font-size:19px}.admin-actions{gap:8px}.admin-search,.admin-select{width:100%}.admin-buttons{margin-left:0}.admin-section-title{font-size:20px}.app-modal-backdrop{padding:10px}.app-modal-body{padding:18px}.app-modal-head{padding:16px 18px 12px}.app-modal-foot{padding:0 18px 18px}.form-grid{grid-template-columns:1fr}.form-field.full{grid-column:auto}}
.teacher-sidebar.mobile-open .teacher-nav-item{justify-content:flex-start;padding:0 12px;gap:9px}.teacher-sidebar.mobile-open .teacher-nav-item span:last-of-type{display:inline}.teacher-sidebar.mobile-open .teacher-nav-item .nav-badge{display:block;margin-left:auto}
.auth-page{min-height:100vh;background:linear-gradient(135deg,#eff6ff 0%,#f7fbff 52%,#edf7f4 100%);color:#1e2d41;display:grid;place-items:center;padding:28px}.auth-shell{width:min(1060px,100%);min-height:650px;display:grid;grid-template-columns:1fr 1fr;background:#fff;border:1px solid #e3ebf4;border-radius:22px;overflow:hidden;box-shadow:0 22px 70px rgba(32,77,126,.14)}.auth-brand-panel{position:relative;overflow:hidden;background:linear-gradient(145deg,#086bd6,#124caa 65%,#123c82);color:#fff;padding:70px 62px}.auth-brand-panel:after{content:"";position:absolute;width:440px;height:440px;right:-210px;bottom:-200px;border:55px solid rgba(255,255,255,.08);border-radius:50%;box-shadow:0 0 0 42px rgba(255,255,255,.045)}.auth-logo{position:relative;z-index:1;width:55px;height:55px;border-radius:16px;display:grid;place-items:center;background:#fff;color:#106bcf;font-size:28px;font-weight:800;box-shadow:0 12px 24px rgba(0,31,91,.2)}.auth-kicker{position:relative;z-index:1;margin:55px 0 15px;font-size:12px;letter-spacing:3px;color:#b9dcff}.auth-brand-panel h1{position:relative;z-index:1;margin:0;font-size:42px;line-height:1.25;letter-spacing:2px}.auth-brand-copy{position:relative;z-index:1;max-width:340px;margin:23px 0 0;color:#d7eaff;line-height:1.9;font-size:15px}.auth-brand-points{position:relative;z-index:1;display:grid;gap:13px;margin-top:45px;color:#e5f2ff;font-size:13px}.auth-card{align-self:center;width:min(410px,calc(100% - 74px));margin:auto}.auth-card-head{text-align:center}.auth-eyebrow{margin:0 0 9px;color:#3184df;font-size:11px;letter-spacing:2px;font-weight:700}.auth-card-head h2{margin:0;font-size:29px;color:#22344a}.auth-card-head>p:last-child{margin:9px 0 0;color:#8b98a7;font-size:14px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #e7edf4;margin:31px 0 20px}.auth-tabs button{border:0;background:transparent;color:#8b98a8;padding:12px 5px;font-size:14px;cursor:pointer;position:relative}.auth-tabs button.active{color:#247bd7;font-weight:700}.auth-tabs button.active:after{content:"";position:absolute;left:18%;right:18%;bottom:-1px;height:2px;background:#287fe7;border-radius:3px}.auth-message{border-radius:7px;padding:10px 12px;margin-bottom:15px;background:#fff1f1;border:1px solid #ffd3d3;color:#d4555a;font-size:13px;line-height:1.5}.auth-message.success{background:#ecfaf3;border-color:#c8efd9;color:#229b68}.auth-message.warning{background:#fff7e8;border-color:#ffe2ac;color:#b87920}.auth-form{display:grid;gap:15px}.auth-form label{display:grid;gap:7px;color:#64758a;font-size:13px}.auth-form input,.auth-form select{height:43px;width:100%;box-sizing:border-box;border:1px solid #dce5ef;border-radius:7px;background:#fff;color:#30445a;padding:0 12px;outline:0;font-size:14px}.auth-form input:focus,.auth-form select:focus{border-color:#398ce7;box-shadow:0 0 0 3px rgba(57,140,231,.12)}.auth-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.auth-submit{height:45px;border:0;border-radius:7px;background:linear-gradient(120deg,#287fe7,#1766c5);color:#fff;font-size:15px;font-weight:700;cursor:pointer;box-shadow:0 8px 18px rgba(39,126,229,.2);margin-top:5px}.auth-submit:hover{filter:brightness(1.05)}.auth-submit:disabled{opacity:.65;cursor:wait}.auth-tip{margin:2px 0 0;text-align:center;color:#9aa6b3;font-size:12px;line-height:1.6}
@media(max-width:760px){.auth-page{padding:0}.auth-shell{min-height:100vh;border:0;border-radius:0;grid-template-columns:1fr}.auth-brand-panel{display:none}.auth-card{width:min(420px,calc(100% - 38px))}}
.lesson-options button.correct{background:#eaf9f1;border-color:#3ab779;color:#1d9c65}.lesson-options button.wrong{background:#fff0f0;border-color:#e05c63;color:#d34e55}.lesson-options button:disabled{cursor:default}
.grade-inline-form{display:flex;align-items:center;gap:8px;min-width:178px}.grade-inline-form input{width:78px;height:34px;box-sizing:border-box;border:1px solid #dce5ef;border-radius:6px;background:#fff;color:#34465a;padding:0 9px;outline:0}.grade-inline-form input:focus{border-color:#3689e7;box-shadow:0 0 0 3px rgba(54,137,231,.1)}.grade-inline-form .inline-action{padding:7px 10px;border:1px solid #d6e3f1;border-radius:5px;background:#fff}.grade-inline-form .inline-action:hover{background:#f1f7ff;text-decoration:none}
