*{box-sizing:border-box}:root{--h5-tab-height: calc(66px + env(safe-area-inset-bottom, 0px)) }html,body,#app{width:100%;height:100%;min-height:100%;margin:0}body{background:#edf2f7;color:#1c2733;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;letter-spacing:0;overscroll-behavior:none}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}.mobile-app{width:min(100%,430px);height:100vh;height:100dvh;min-height:0;margin:0 auto;background:#f3f6fb;position:relative;overflow:hidden;box-shadow:0 0 0 1px #1e293b0d}.wechat-bar{height:58px;padding:8px 14px;display:grid;grid-template-columns:30px 1fr 30px;align-items:center;background:#fff;color:#222;border-bottom:1px solid #e8edf3;position:sticky;top:0;z-index:20}.wechat-bar strong{display:block;text-align:center;font-size:14px;line-height:18px}.wechat-bar small{display:block;text-align:center;color:#8b97a7;font-size:10px;line-height:14px}.wechat-close{font-size:24px;color:#5f6b7a}.mobile-content{height:calc(100vh - var(--h5-tab-height));height:calc(100dvh - var(--h5-tab-height));min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:0 12px 18px;scrollbar-width:none}.mobile-content::-webkit-scrollbar{display:none}.mobile-content.mall-content{height:calc(100vh - var(--h5-tab-height));height:calc(100dvh - var(--h5-tab-height));overflow:hidden;padding:0 12px}.bottom-tabs{width:min(100%,430px);height:var(--h5-tab-height);position:fixed;left:50%;bottom:0;transform:translate(-50%);display:grid;grid-template-columns:repeat(3,1fr);background:#fffffff5;border-top:1px solid #e4e9f0;z-index:30;padding-bottom:env(safe-area-inset-bottom,0px)}.bottom-tabs a{display:grid;justify-items:center;align-content:center;gap:3px;color:#96a1ae;font-size:12px}.bottom-tabs a.active{color:#1688ee}.kid-banner{position:relative;height:160px;overflow:hidden;margin:10px -12px 0;background:#cfefff}.kid-banner img{width:100%;height:100%;object-fit:cover;display:block}.kid-banner:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#08263d94,#08263d0f)}.banner-copy{position:absolute;left:18px;bottom:18px;display:grid;gap:4px;color:#fff;z-index:2}.banner-copy span,.mall-hero span{font-size:12px;color:#dbf6ff}.banner-copy strong{font-size:23px;line-height:28px}.banner-copy small{font-size:13px}.notice-strip{height:38px;display:grid;grid-template-columns:20px 1fr 34px;gap:6px;align-items:center;background:#fff;padding:0 12px;margin:0 -12px;color:#758396;font-size:12px;border-bottom:1px solid #edf1f5}.notice-strip a{color:#1688ee}.panel{background:#fff;border-radius:8px;margin-top:10px;padding:14px;border:1px solid #e8edf3}.student-switch{display:flex;gap:8px;overflow-x:auto;padding-bottom:10px}.student-switch button,.category-tabs button{border:1px solid #d9e4ef;background:#fff;color:#526070;padding:7px 11px;border-radius:999px;white-space:nowrap}.student-switch button.active,.category-tabs button.active{color:#fff;background:#1688ee;border-color:#1688ee}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.summary-grid div,.metric-grid div{display:grid;gap:4px;text-align:center;background:#f5f8fc;border-radius:8px;padding:10px 5px}.summary-grid strong,.metric-grid strong{color:#101828;font-size:18px}.summary-grid span,.metric-grid span{color:#7a8796;font-size:12px}.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-radius:8px;margin-top:10px;padding:14px 8px 8px;border:1px solid #e8edf3}.feature-item{display:grid;justify-items:center;gap:7px;min-height:72px;color:#2f3b49}.feature-item em{font-style:normal;font-size:12px}.feature-icon{width:36px;height:36px;display:grid;place-items:center;color:#fff;border-radius:50%}.feature-icon.coral{background:#f05a4f}.feature-icon.blue{background:#3b82f6}.feature-icon.indigo{background:#4f74d9}.feature-icon.green{background:#25b47e}.feature-icon.teal{background:#26a9a1}.feature-icon.red{background:#ef4444}.feature-icon.orange{background:#f59f27}.feature-icon.gold{background:#d79a1f}.gift-band{margin-top:10px;min-height:68px;display:grid;grid-template-columns:92px 1fr;gap:12px;align-items:center;background:#fff7e8;border:1px solid #f6d8a5;border-radius:8px;padding:8px}.gift-band img{width:92px;height:52px;object-fit:cover;border-radius:6px}.gift-band strong,.gift-band span{display:block}.gift-band strong{color:#b65400}.gift-band span{margin-top:4px;color:#8b5b20;font-size:12px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.section-title h2{margin:0;font-size:16px}.section-title a,.section-title span{color:#1688ee;font-size:12px}.compact-list{display:grid;gap:8px}.compact-list article{display:grid;grid-template-columns:24px 1fr;gap:10px;align-items:center;padding:9px;background:#f8fafc;border-radius:8px}.compact-list strong,.compact-list span{display:block}.compact-list strong{font-size:14px}.compact-list span{margin-top:3px;color:#718096;font-size:12px}.sub-header{display:grid;grid-template-columns:38px 1fr;gap:8px;align-items:center;padding:14px 0 8px}.sub-header h1{margin:0;font-size:20px;line-height:26px}.sub-header p{margin:3px 0 0;color:#718096;font-size:13px}.ghost-icon,.icon-btn{width:36px;height:36px;display:inline-grid;place-items:center;border:1px solid #dce5ef;background:#fff;color:#334155;border-radius:8px}.week-bar{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:6px 0 12px}.week-bar button{border:1px solid #e1e8f0;background:#fff;border-radius:8px;padding:8px 0;color:#697789}.week-bar button.active{border-color:#1688ee;color:#1688ee;background:#eef7ff}.week-bar span,.week-bar strong{display:block}.week-bar span{font-size:12px}.week-bar strong{margin-top:2px}.timeline,.plan-list,.score-list,.order-list,.teacher-list{display:grid;gap:10px}.timeline-card{display:grid;grid-template-columns:58px 1fr;gap:10px}.time-dot{display:grid;justify-items:center;align-content:start;color:#718096;font-size:12px}.time-dot i{width:10px;height:10px;margin-top:8px;background:#1688ee;border-radius:50%}.lesson-card,.plan-card,.score-card,.teacher-card,.order-card{background:#fff;border:1px solid #e7edf4;border-radius:8px;padding:13px}.lesson-title,.order-date{display:flex;justify-content:space-between;gap:8px;align-items:center}.lesson-title h2,.plan-card h2,.score-card h2,.teacher-card h2,.product-card h2,.order-card h2{margin:0;font-size:15px;line-height:21px}.lesson-card p,.lesson-card small,.plan-card p,.plan-card blockquote,.score-card p,.teacher-card p,.product-card p,.order-card p,.order-card span,.product-detail small{color:#697789;font-size:13px;line-height:20px}.lesson-card p,.score-card p,.teacher-card p,.product-card p{margin:8px 0}.lesson-card small{display:block;margin-bottom:10px}.status-pill{display:inline-block;min-width:58px;text-align:center;font-size:12px;font-style:normal;color:#1688ee;background:#e9f5ff;border-radius:999px;padding:4px 8px}.status-pill.finished,.status-pill.picked_up{color:#64748b;background:#f1f5f9}.status-pill.leave,.status-pill.cancelled{color:#ef4444;background:#fff1f2}.status-pill.paid{color:#0f9f6e;background:#eafaf3}.outline-btn,.danger-btn,.small-btn,.primary-btn,.text-btn{min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:8px;padding:0 12px}.outline-btn{border:1px solid #cfe0f3;background:#fff;color:#1688ee}.danger-btn{border:1px solid #fecaca;background:#fff;color:#dc2626}.small-btn{border:0;background:#1688ee;color:#fff;font-size:12px}.primary-btn{border:0;background:#1688ee;color:#fff;font-weight:700}.primary-btn:disabled{opacity:.65;cursor:not-allowed}.primary-btn.full{width:100%}.text-btn{border:0;background:transparent;color:#64748b}.modal-mask,.admin-drawer-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0f172a7a;display:grid;align-items:end;justify-items:center}.modal-card{width:min(100%,430px);background:#fff;border-radius:8px 8px 0 0;padding:18px}.modal-card h2{margin:0 0 8px;font-size:18px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.text-input,.text-area{width:100%;border:1px solid #d7e0ea;border-radius:8px;background:#fff;color:#172033;outline:none}.text-input{height:40px;padding:0 11px}.text-input.large{height:48px}.text-area{min-height:92px;padding:10px 11px;resize:vertical}.text-input:focus,.text-area:focus{border-color:#1688ee;box-shadow:0 0 0 3px #1688ee1f}.field-label{display:block;margin:18px 0 8px;color:#344054;font-weight:700}.loading-line,.empty-state{min-height:220px;display:grid;place-items:center;color:#9aa7b7;text-align:center}.empty-state{align-content:center;gap:12px}.empty-state p{margin:0;font-size:13px}.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:#dceefd}.login-panel{width:min(100%,390px);background:#fff;border:1px solid #cfe0f3;border-radius:8px;padding:24px}.login-brand{display:grid;grid-template-columns:48px 1fr;gap:12px;align-items:center;color:#1688ee}.login-brand h1{margin:0;font-size:22px}.login-brand p{margin:6px 0 0;color:#64748b;font-size:13px;line-height:20px}.form-error{margin:12px 0 0;color:#dc2626;font-size:13px}.login-hint{margin:12px 0 0;color:#64748b;font-size:13px}.bind-screen{width:min(100%,430px);height:100vh;height:100dvh;min-height:0;position:fixed;inset:0 auto 0 50%;transform:translate(-50%);background:#fff;overflow:hidden;overscroll-behavior:none;touch-action:none}body.h5-shell-lock,body.login-lock{width:100%;height:100vh;height:100dvh;position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;overscroll-behavior:none}body.h5-shell-lock #app,body.login-lock #app{height:100vh;height:100dvh;overflow:hidden;background:#f3f6fb}.bind-content{height:100%;min-height:0;padding:calc(env(safe-area-inset-top) + 34px) 64px 24px;overflow:hidden}.login-illustration{width:min(100%,300px);margin:0 auto 14px}.login-illustration svg{width:100%;height:auto;display:block;overflow:visible}.floating-card{filter:drop-shadow(0 8px 12px rgba(67,147,202,.14))}.bind-form{display:grid;gap:0}.bind-input{width:100%;height:52px;border:0;border-bottom:1px solid #e4e4e4;outline:none;color:#333;font-size:18px;background:transparent}.bind-input::placeholder{color:#d1d1d1}.code-row{display:grid;grid-template-columns:1fr 118px;align-items:center;border-bottom:1px solid #e4e4e4}.code-row .bind-input{border-bottom:0}.code-row button{height:32px;border:0;border-left:1px solid #e4e4e4;background:transparent;color:#53addd;font-size:17px}.code-row button:disabled{color:#bddcf0;cursor:not-allowed}.bind-submit{height:50px;margin-top:18px;border:0;border-radius:4px;background:#90c9f5;color:#fff;font-size:20px}.bind-submit:not(:disabled){background:#1688ee}.bind-submit:disabled{cursor:not-allowed}.bind-content .form-error{margin-top:16px;text-align:left}@media(max-width:380px){.bind-content{padding:calc(env(safe-area-inset-top) + 26px) 44px 22px}.login-illustration{width:min(100%,276px);margin-bottom:12px}.bind-input{font-size:17px}.code-row{grid-template-columns:1fr 108px}.code-row button{font-size:16px}}@media(max-height:620px){.bind-content{padding-top:calc(env(safe-area-inset-top) + 18px);padding-bottom:16px}.login-illustration{width:min(100%,244px);margin-bottom:10px}.bind-input{height:48px}.bind-submit{height:46px;margin-top:14px}}.progress-track{height:8px;background:#edf2f7;border-radius:999px;overflow:hidden}.progress-track i{display:block;height:100%;background:#25b47e}.plan-card strong{display:block;margin-top:8px;color:#25b47e}.plan-card blockquote{margin:10px 0 0;padding:10px;border-left:3px solid #1688ee;background:#f2f8ff}.star-row,.rating-select{display:flex;align-items:center;gap:4px;color:#cbd5e1}.star-row .filled,.rating-select button.active{color:#f5b62d}.rating-select button{border:0;background:transparent;color:#cbd5e1}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.lesson-summary-card{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.lesson-summary-card div{min-height:92px;display:grid;align-content:center;gap:5px;padding:16px;background:#fff;border:1px solid #e7edf4;border-radius:8px}.lesson-summary-card span,.lesson-ledger span{color:#64748b;font-size:13px}.lesson-summary-card strong{color:#1688ee;font-size:30px}.lesson-ledger{display:grid;gap:10px;margin-top:10px}.lesson-ledger article{display:flex;justify-content:space-between;gap:12px;align-items:center;background:#fff;border:1px solid #e7edf4;border-radius:8px;padding:13px}.lesson-ledger strong,.lesson-ledger span{display:block}.lesson-ledger span{margin-top:5px}.score-date{color:#1688ee;font-weight:700;margin-bottom:10px}.teacher-card{display:grid;grid-template-columns:58px 1fr;gap:12px}.teacher-card img,.mine-card img,.student-link img{width:58px;height:58px;border-radius:50%;object-fit:cover}.teacher-card span{display:block;color:#64748b;font-size:12px;margin-top:3px}.album-grid{display:grid;gap:12px}.album-card{overflow:hidden;background:#fff;border:1px solid #e7edf4;border-radius:8px}.album-card img{width:100%;height:210px;display:block;object-fit:cover;background:#e2e8f0}.album-card div{padding:13px}.album-card strong,.album-card span{display:block}.album-card span{margin-top:4px;color:#1688ee;font-size:12px}.album-card p{margin:8px 0 0;color:#64748b;font-size:13px;line-height:20px}.album-uploader{display:grid;gap:12px}.photo-picker{min-height:150px;display:grid;place-items:center;overflow:hidden;border:1px dashed #b7d5ee;border-radius:8px;background:#f5fbff;color:#1688ee;font-weight:700}.photo-picker input{display:none}.photo-picker span{display:grid;justify-items:center;gap:8px}.photo-picker img{width:100%;max-height:230px;object-fit:cover;display:block}.upload-form{display:grid;gap:10px}.growth-overview{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:4px 0 12px}.growth-overview article{min-height:74px;display:grid;place-items:center;gap:4px;background:#fff;border:1px solid #e7edf4;border-radius:8px}.growth-overview strong{color:#1688ee;font-size:24px}.growth-overview span{color:#64748b;font-size:12px}.growth-timeline{position:relative;display:grid;gap:14px;padding-left:12px}.growth-timeline:before{content:"";position:absolute;top:12px;bottom:12px;left:22px;width:2px;background:#e0edf7}.growth-timeline-item{position:relative;display:grid;grid-template-columns:24px 1fr;gap:10px}.growth-timeline-dot{position:relative;z-index:1;width:24px;height:24px;display:grid;place-items:center;color:#fff;background:#1688ee;border-radius:50%;box-shadow:0 0 0 4px #fff}.growth-timeline-item.score .growth-timeline-dot{background:#f5b62d}.growth-timeline-item.lesson .growth-timeline-dot{background:#25b47e}.growth-timeline-card{display:grid;gap:7px;padding:12px;background:#f8fbff;border:1px solid #e7edf4;border-radius:8px}.growth-timeline-card>span{color:#1688ee;font-size:12px;font-weight:700}.growth-timeline-card strong{font-size:15px}.growth-timeline-card p{margin:0;color:#64748b;font-size:13px;line-height:20px}.growth-timeline-card img{width:100%;max-height:210px;object-fit:cover;border-radius:8px}.growth-timeline-card small{color:#64748b;font-size:12px}.booking-card{display:grid;gap:13px;background:#fff;border:1px solid #e7edf4;border-radius:8px;padding:14px}.booking-card label{display:grid;gap:7px;color:#334155;font-weight:700;font-size:13px}.success-tip{margin:0;color:#0f9f6e;font-size:13px}.mall-hero{min-height:78px;display:grid;grid-template-columns:1fr 44px;align-items:center;gap:12px;margin:8px 0 10px;padding:12px 16px;color:#fff;background:linear-gradient(135deg,#0778d7,#11a2a9);border-radius:8px}.mall-page{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}.mall-fixed-area{flex:none}.mall-product-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:2px 0 14px;scrollbar-width:none}.mall-product-scroll::-webkit-scrollbar{display:none}.points-hero{display:grid;gap:10px;margin:10px 0;padding:18px;color:#fff;background:linear-gradient(135deg,#d79a1f,#f59f27);border-radius:8px}.points-hero span,.points-hero strong{display:block}.points-hero span{color:#fff7db;font-size:13px}.points-hero strong{margin-top:4px;font-size:34px}.points-hero p{margin:0;color:#fff8e7;font-size:13px;line-height:21px}.mall-hero h1{margin:5px 0;font-size:20px;line-height:24px}.mall-hero p{margin:0;font-size:12px;line-height:18px;color:#e8fbff}.category-tabs{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;padding:2px 0 10px;scrollbar-width:none}.category-tabs::-webkit-scrollbar{display:none}.product-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.product-card{background:#fff;border:1px solid #e7edf4;border-radius:8px;overflow:hidden}.product-card img{width:100%;aspect-ratio:1 / .82;object-fit:cover;display:block;background:#e2e8f0}.product-card>div{padding:10px}.product-card span{color:#1688ee;font-size:12px}.product-card p{min-height:40px;margin:6px 0 10px}.product-foot,.buy-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.product-foot strong,.buy-row strong{color:#ef4444}.product-actions{display:flex;align-items:center;gap:6px}.favorite-btn{color:#8b9aaa}.favorite-btn.active{color:#ef4444;background:#fff1f2;border-color:#fecdd3}.favorite-grid{padding-bottom:14px}.product-detail img{width:100%;max-height:220px;object-fit:cover;border-radius:8px;margin-bottom:12px}.stepper{display:grid;grid-template-columns:34px 42px 34px;align-items:center;text-align:center;border:1px solid #dce5ef;border-radius:8px;overflow:hidden}.stepper button{height:34px;border:0;background:#f8fafc}.pickup-card{text-align:center}.pickup-card svg{color:#25b47e}.pickup-card strong{display:block;margin:10px 0;font-size:32px;color:#1688ee}.pickup-card span{display:block;margin-bottom:14px;color:#64748b}.order-main{display:grid;grid-template-columns:72px 1fr;gap:12px;margin-top:12px}.order-main img{width:72px;height:72px;object-fit:cover;border-radius:8px}.order-main strong{display:block;color:#1688ee}.mine-card{display:grid;grid-template-columns:58px 1fr 40px;gap:12px;align-items:center;background:#fff;border-radius:8px;margin-top:12px;padding:14px;border:1px solid #e7edf4}.venue-page{padding-top:10px}.venue-banner{width:100%;height:176px;object-fit:cover;display:block;border-radius:8px;background:#e2e8f0}.venue-page h1{margin:0 0 8px;font-size:21px}.venue-page p{margin:0;color:#64748b;font-size:13px;line-height:22px}.venue-info-list{display:grid;gap:10px;margin-top:10px}.venue-info-list article{display:grid;grid-template-columns:28px 1fr;gap:10px;background:#fff;border:1px solid #e7edf4;border-radius:8px;padding:13px}.venue-info-list svg{color:#1688ee}.venue-info-list strong,.venue-info-list span{display:block}.venue-info-list span{margin-top:4px;color:#64748b;font-size:13px;line-height:20px}.mine-card h1{margin:0;font-size:18px}.mine-card p{margin:5px 0 0;color:#64748b;font-size:13px}.mine-menu{display:grid;background:#fff;border:1px solid #e7edf4;border-radius:8px;margin-top:10px}.mine-menu a{min-height:48px;display:grid;grid-template-columns:28px 1fr 22px;align-items:center;padding:0 14px;border-bottom:1px solid #edf2f7}.mine-menu a:last-child{border-bottom:0}.mine-menu span{color:#334155}.student-link{width:100%;display:grid;grid-template-columns:46px 1fr;gap:10px;align-items:center;border:1px solid #e7edf4;background:#fff;border-radius:8px;padding:9px;text-align:left;margin-top:8px}.student-link.active{border-color:#1688ee;background:#f0f8ff}.student-link img{width:46px;height:46px}.student-link strong,.student-link span{display:block}.student-link span{color:#64748b;font-size:12px;margin-top:4px}.contract-card{display:grid;gap:12px}.contract-lines{display:grid;gap:10px}.contract-lines article{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 10px;background:#f8fafc;border:1px solid #edf2f7;border-radius:8px}.contract-lines span{color:#64748b;font-size:13px}.contract-lines strong{color:#0f172a;text-align:right}.admin-app{min-height:100vh;display:grid;grid-template-columns:268px 1fr;background:#f5f7fb;color:#162033}.admin-sidebar{background:linear-gradient(180deg,#111827,#162033 58%,#12313c);color:#dbe7f3;padding:20px 18px;display:grid;align-content:start;gap:7px;position:sticky;top:0;min-height:100vh;box-shadow:12px 0 34px #0f172a14}.admin-brand{display:grid;grid-template-columns:44px 1fr;gap:12px;align-items:center;padding:2px 4px 18px;margin-bottom:4px;border-bottom:1px solid rgba(255,255,255,.1);color:#fff}.admin-logo-img{width:42px;height:42px;border-radius:50%;display:block;padding:2px;object-fit:contain;background:#fff;border:1px solid rgba(232,248,255,.72);box-shadow:0 12px 28px #14b8a63d}.admin-brand span{display:block;margin-top:3px;color:#a9b8ca;font-size:12px}.admin-brand strong{display:block;font-size:15px;line-height:19px;overflow-wrap:anywhere}.admin-nav-label{margin:6px 8px 4px;color:#7f8da3;font-size:11px;font-weight:800;letter-spacing:0}.admin-menu{display:grid;gap:8px}.admin-menu-home,.admin-menu-parent,.admin-submenu button{width:100%;border:0;border-radius:8px;background:transparent;color:#cbd7e5;text-align:left;font-weight:700;transition:background .16s ease,color .16s ease,transform .16s ease}.admin-menu-home{height:44px;display:grid;grid-template-columns:26px 1fr;gap:10px;align-items:center;padding:0 13px}.admin-menu-home.active,.admin-menu-home:hover{background:#ffffff1c;color:#fff;transform:translate(2px)}.admin-menu-home.active{box-shadow:inset 3px 0 #2dd4bf}.admin-menu-group{display:grid;gap:5px}.admin-menu-parent{height:44px;display:grid;grid-template-columns:26px 1fr 18px;gap:10px;align-items:center;padding:0 13px}.admin-menu-parent svg:last-child{justify-self:end;color:#7f8da3;transition:transform .16s ease,color .16s ease}.admin-menu-parent.active,.admin-menu-parent:hover{background:#ffffff1c;color:#fff;transform:translate(2px)}.admin-menu-parent.active{box-shadow:inset 3px 0 #2dd4bf}.admin-menu-parent.active svg:last-child{color:#fff;transform:rotate(90deg)}.admin-submenu{display:grid;gap:4px;padding:2px 0 8px 36px}.admin-submenu button{min-height:34px;padding:0 12px;color:#9fb0c4}.admin-submenu button.active,.admin-submenu button:hover{background:#2dd4bf24;color:#fff}.admin-main{min-width:0;min-height:100vh;display:grid;grid-template-rows:auto auto 1fr;align-content:start}.admin-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;padding:0 30px;border-bottom:1px solid #e2e8f0;background:#fff;box-shadow:0 12px 28px #0f172a0d;position:sticky;top:0;z-index:12}.admin-topbar-brand{display:grid;grid-template-columns:34px 1fr;align-items:center;gap:10px;min-width:260px}.admin-topbar-brand strong,.admin-topbar-brand span{display:block}.admin-topbar-brand strong{color:#0f172a;font-size:15px;line-height:19px;overflow-wrap:anywhere}.admin-topbar-brand span{margin-top:2px;color:#64748b;font-size:12px}.admin-topbar-logo{width:34px;height:34px;border-radius:50%;padding:2px;object-fit:contain;background:#fff;border:1px solid #dff5ff;box-shadow:0 10px 22px #14b8a62e}.admin-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-height:34px;padding:5px 10px 5px 6px;border:1px solid #e0edf7;border-radius:999px;background:#f8fbff;color:#64748b;font-size:12px;font-weight:700}.admin-breadcrumb-logo{width:22px;height:22px;display:block;flex:none;padding:1px;border-radius:50%;object-fit:contain;background:#fff;box-shadow:0 5px 12px #1299d72e}.admin-breadcrumb svg{color:#9ca3af}.admin-breadcrumb strong{color:#0f766e}.admin-kicker{display:block;margin-bottom:7px;color:#0f766e;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:0}.admin-topbar h1{margin:0;font-size:28px;line-height:34px}.admin-topbar p{margin:4px 0 0;color:#64748b}.admin-top-actions{display:flex;gap:10px;align-items:center}.admin-window-tabs{min-width:0;display:flex;gap:8px;overflow-x:auto;padding:10px 30px 0;background:#f5f7fb;border-bottom:1px solid #e7edf5}.admin-window-tab{height:36px;min-width:116px;max-width:190px;display:grid;grid-template-columns:16px minmax(0,1fr) 18px;align-items:center;gap:7px;padding:0 8px 0 12px;border:1px solid #d9e4ef;border-bottom:0;border-radius:8px 8px 0 0;background:#edf3f9;color:#526276;font-size:13px;font-weight:800;cursor:pointer;transition:background .16s ease,color .16s ease,border-color .16s ease}.admin-window-tab span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-window-tab svg{color:#64748b}.admin-window-tab.active{background:#fff;color:#0f172a;border-color:#cbd8e6}.admin-window-tab.active svg{color:#0f766e}.admin-window-tab:hover{background:#fff}.admin-window-tab:first-child{grid-template-columns:16px minmax(0,1fr)}.tab-close{width:18px;height:18px;display:grid;place-items:center;border:0;border-radius:6px;background:transparent;color:#7a8796;padding:0}.tab-close:hover{background:#e8eef6;color:#0f172a}.admin-content-panel{min-width:0;margin:16px 30px 38px;background:#fff;border:1px solid #e1e8f0;border-radius:8px;padding:16px;box-shadow:0 14px 30px #0f172a0a}.admin-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid #edf2f7}.admin-panel-head span,.admin-panel-head h2,.admin-panel-head p{display:block}.admin-panel-head span{color:#0f766e;font-size:12px;font-weight:800}.admin-panel-head h2{margin:4px 0 0;color:#0f172a;font-size:20px;line-height:26px}.admin-panel-head p{margin:4px 0 0;color:#64748b;font-size:13px;line-height:20px}.admin-panel-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.dashboard-board{display:grid;gap:16px}.dashboard-stats{margin-bottom:0}.dashboard-analysis{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.dashboard-analysis article{border:1px solid #e1e8f0;border-radius:8px;padding:15px;background:#f8fafc}.dashboard-analysis span,.dashboard-analysis strong,.dashboard-analysis p{display:block}.dashboard-analysis span{color:#0f766e;font-size:12px;font-weight:800}.dashboard-analysis strong{margin-top:8px;color:#0f172a;font-size:24px;line-height:30px}.dashboard-analysis p{margin:7px 0 0;color:#64748b;font-size:13px;line-height:20px}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:18px}.stat-card{position:relative;background:#fff;border:1px solid #e1e8f0;border-radius:8px;padding:15px;min-height:112px;display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:start;overflow:hidden;box-shadow:0 12px 26px #0f172a0a}.stat-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:#94a3b8}.stat-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:8px;background:#f1f5f9;color:#334155}.stat-card span,.stat-card strong,.stat-card small{display:block}.stat-card span{color:#64748b;font-size:13px;font-weight:700}.stat-card strong{margin-top:6px;font-size:26px;line-height:32px;color:#0f172a}.stat-card small{margin-top:7px;color:#7a8796;font-size:12px}.stat-card.revenue{border-color:#b7e4d4;background:linear-gradient(180deg,#f0fbf7,#fff 92%)}.stat-card.today{border-color:#bfdbfe;background:linear-gradient(180deg,#eff6ff,#fff 92%)}.stat-card.pickup{border-color:#fed7aa;background:linear-gradient(180deg,#fff7ed,#fff 92%)}.stat-card.paid{border-color:#c7d2fe;background:linear-gradient(180deg,#f5f7ff,#fff 92%)}.stat-card.revenue:before,.stat-card.revenue .stat-icon{background:#14b8a6;color:#fff}.stat-card.today:before,.stat-card.today .stat-icon{background:#2563eb;color:#fff}.stat-card.pickup:before,.stat-card.pickup .stat-icon{background:#f59e0b;color:#fff}.stat-card.paid:before,.stat-card.paid .stat-icon{background:#6366f1;color:#fff}.admin-table-wrap{background:#fff;border:1px solid #e1e8f0;border-radius:8px;overflow:auto;box-shadow:0 14px 30px #0f172a0a}.admin-content-panel .admin-table-wrap{box-shadow:none}.admin-data-table-wrap{width:100%}.admin-data-table{min-width:880px}.admin-data-table th:first-child,.admin-data-table td:first-child{min-width:220px}.admin-data-table th:last-child,.admin-data-table td:last-child{width:150px}.record-cell{display:grid;grid-template-columns:44px 1fr;gap:10px;align-items:center;min-width:0}.record-cell:not(:has(img)){grid-template-columns:1fr}.record-cell img{width:44px;height:44px;object-fit:cover;border-radius:8px;background:#e2e8f0}.record-cell strong,.record-cell span{display:block}.record-cell strong{color:#0f172a;font-size:14px;line-height:20px}.record-cell span{margin-top:3px;color:#64748b;font-size:12px;line-height:18px;word-break:break-word}.table-actions{display:inline-flex;gap:8px;align-items:center;white-space:nowrap}.order-toolbar{min-width:940px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px;border-bottom:1px solid #edf2f7}.order-toolbar strong,.order-toolbar span{display:block}.order-toolbar span{margin-top:4px;color:#64748b;font-size:13px}.order-filter{display:flex;gap:8px}.order-filter button{height:34px;padding:0 12px;border:1px solid #d7e0ea;border-radius:8px;background:#fff;color:#334155}.order-filter button.active{border-color:#1688ee;background:#eaf4ff;color:#126fbc}.admin-table{width:100%;border-collapse:collapse;min-width:940px}.admin-table th,.admin-table td{padding:12px;border-bottom:1px solid #edf2f7;text-align:left;font-size:13px}.admin-table th{color:#475569;background:#f8fafc;font-weight:700}.admin-table tbody tr:hover{background:#f8fafc}.admin-table tr:last-child td{border-bottom:0}.order-thumb{width:44px;height:44px;display:block;object-fit:cover;border-radius:8px;background:#e2e8f0}.admin-config-wrap{min-height:0;overflow:auto;padding:18px}.config-form{display:grid;gap:16px}.config-card{display:grid;gap:14px;padding:18px;background:#fff;border:1px solid #e7edf4;border-radius:8px}.config-card header h3,.config-card header p{margin:0}.config-card header h3{color:#0f172a;font-size:18px}.config-card header p{margin-top:5px;color:#64748b;font-size:13px}.config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.config-grid label{display:grid;gap:7px;min-width:0}.config-grid label.wide{grid-column:1 / -1}.config-grid label span,.switch-row span{color:#334155;font-size:13px;font-weight:700}.switch-row{display:inline-flex;align-items:center;gap:9px}.switch-row input{width:18px;height:18px;accent-color:#1688ee}.config-help{padding:11px 12px;color:#475569;background:#f8fbff;border:1px solid #e0edf7;border-radius:8px;font-size:13px}.config-help code{color:#126fbc;word-break:break-all}.config-actions{display:flex;justify-content:flex-end;align-items:center;gap:14px}.table-empty{height:96px;color:#7a8796;text-align:center!important}.admin-drawer-mask{justify-items:end;align-items:stretch}.admin-drawer{width:min(560px,100%);background:#fff;padding:20px;overflow-y:auto;display:grid;align-content:start;gap:16px}.admin-drawer header,.admin-drawer footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.admin-drawer h2{margin:0;font-size:22px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.form-grid label{display:grid;gap:6px;color:#334155;font-weight:700;font-size:13px}.form-grid label.wide{grid-column:1 / -1}.batch-schedule-drawer{width:min(680px,100%)}.batch-schedule-drawer header p{margin:4px 0 0;color:#64748b;font-size:13px;line-height:20px}.batch-slot-card{display:grid;gap:12px;border:1px solid #dbeaf7;border-radius:8px;padding:14px;background:#f8fbff}.batch-slot-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.batch-slot-head strong,.batch-slot-head span{display:block}.batch-slot-head strong{color:#172033;font-size:15px}.batch-slot-head span{margin-top:3px;color:#64748b;font-size:13px}.batch-slot-list{display:grid;gap:8px}.batch-slot-row{display:grid;grid-template-columns:74px minmax(0,1fr) minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid #e5f0fa;border-radius:8px;padding:8px;background:#fff}.batch-slot-row>span{color:#334155;font-size:13px;font-weight:800;white-space:nowrap}.upload-box{min-height:74px;display:grid;grid-template-columns:28px 90px 1fr;gap:8px;align-items:center;border:1px dashed #a8c2dc;border-radius:8px;padding:12px;color:#1688ee}.upload-box input{display:none}.upload-box small{color:#64748b;word-break:break-word}@media(max-width:760px){.admin-app{grid-template-columns:1fr}.admin-sidebar{position:sticky;top:0;z-index:20;display:flex;gap:8px;overflow-x:auto;padding:10px}.admin-brand{min-width:248px;margin:0;padding:0 12px 0 0;border-bottom:0;border-right:1px solid rgba(255,255,255,.12)}.admin-nav-label{min-width:64px;align-self:center;margin:0}.admin-menu{display:flex;gap:8px}.admin-menu-group{min-width:168px}.admin-submenu{padding-left:0}.admin-menu-home,.admin-menu-parent,.admin-submenu button{min-width:0}.admin-main{padding:0}.admin-topbar{align-items:flex-start;flex-direction:column;gap:8px;min-height:78px;padding:10px 14px;position:static}.admin-window-tabs{padding:8px 14px 0}.admin-window-tab{min-width:112px}.admin-content-panel{margin:12px 14px 20px}.admin-content-panel{padding:12px}.admin-panel-head{flex-direction:column}.admin-panel-actions,.batch-slot-head{width:100%}.admin-panel-actions{justify-content:flex-start}.stat-row{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.batch-slot-row{grid-template-columns:1fr 1fr}.batch-slot-row>span,.batch-slot-row .danger-btn{grid-column:1 / -1}}.teacher-app{width:min(100%,430px);min-height:100vh;margin:0 auto;background:#f3f8ff;color:#172033}.teacher-app.is-subpage{background:#f4f8fc}.teacher-hero{position:relative;overflow:hidden;padding:calc(env(safe-area-inset-top) + 14px) 18px 24px;color:#fff;background:radial-gradient(circle at 82% 12%,rgba(255,255,255,.25),transparent 26%),linear-gradient(135deg,#1287ee,#21b5d8)}.teacher-hero:after{content:"";position:absolute;right:-46px;bottom:-72px;width:180px;height:180px;border-radius:50%;background:#ffffff21}.teacher-hero-head{position:relative;z-index:1;display:grid;grid-template-columns:38px 1fr 38px;gap:12px;align-items:center}.teacher-brand{min-width:0;display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:center}.teacher-brand img{width:42px;height:42px;border-radius:50%;padding:2px;background:#fff;object-fit:contain;box-shadow:0 8px 18px #044a832e}.teacher-brand strong,.teacher-brand span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-brand strong{font-size:15px;line-height:20px}.teacher-brand span{margin-top:2px;color:#ffffffd1;font-size:12px}.teacher-icon-btn{width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.26);border-radius:50%;background:#ffffff1f;color:#fff}.teacher-stat-row{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:24px}.teacher-stat-row article{min-height:70px;display:grid;place-items:center;align-content:center;gap:4px;border-radius:8px;background:#ffffff24}.teacher-stat-row strong{font-size:30px;line-height:34px}.teacher-stat-row span{font-size:12px;color:#ffffffd1}.teacher-content{display:grid;gap:12px;padding:12px 12px 24px}.teacher-app.is-subpage .teacher-content{padding-top:calc(env(safe-area-inset-top) + 10px)}.teacher-guide{min-height:72px;display:grid;grid-template-columns:48px 1fr 20px;gap:12px;align-items:center;border:1px solid #d8edff;border-radius:8px;padding:10px 14px;background:linear-gradient(90deg,#fff,#effaff);color:#172033;text-align:left;box-shadow:0 10px 24px #1287ee14}.teacher-guide span{width:48px;height:48px;display:grid;place-items:center;color:#fff;border-radius:50%;background:linear-gradient(135deg,#1688ee,#35c3d5)}.teacher-guide strong{font-size:17px}.teacher-guide svg:last-child{color:#1688ee}.teacher-action-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px 6px;padding:14px 6px;border-radius:8px;background:#fff;border:1px solid #e5f0fa}.teacher-action-grid button{min-width:0;min-height:82px;display:grid;justify-items:center;align-content:center;gap:8px;border:0;background:transparent;color:#263241}.teacher-action-grid strong{font-size:13px;line-height:18px;text-align:center}.teacher-action-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;color:#fff}.teacher-action-icon.blue{background:#1688ee}.teacher-action-icon.cyan{background:#21b5d8}.teacher-action-icon.indigo{background:#4f74d9}.teacher-action-icon.green{background:#25b47e}.teacher-action-icon.teal{background:#26a9a1}.teacher-action-icon.orange{background:#f59f27}.teacher-action-icon.gold{background:#d79a1f}.teacher-panel,.teacher-notice,.teacher-info-card,.teacher-student-card,.teacher-comment-card,.teacher-growth-card,.teacher-lesson-list article{border:1px solid #e5f0fa;border-radius:8px;background:#fff}.teacher-panel{padding:14px}.teacher-notice{display:grid;grid-template-columns:36px 1fr;gap:10px;align-items:center;padding:13px;color:#fff;background:linear-gradient(135deg,#338bf4,#7766f0)}.teacher-notice strong,.teacher-notice span{display:block}.teacher-notice span{margin-top:4px;color:#ffffffd1;font-size:12px}.teacher-sub-head{position:sticky;top:0;z-index:12;display:grid;grid-template-columns:40px minmax(0,1fr) 40px;gap:10px;align-items:center;padding:8px;border:1px solid #e5f0fa;border-radius:8px;background:#fffffff5;box-shadow:0 8px 22px #155d8f14;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.teacher-sub-head span{display:block;min-width:0;overflow:hidden;color:#1688ee;font-size:12px;font-weight:700;line-height:16px;text-overflow:ellipsis;white-space:nowrap}.teacher-sub-head h1{margin:2px 0 0;font-size:20px;line-height:24px}.teacher-sub-nav{max-width:100%;display:flex;gap:8px;overflow-x:auto;margin:-2px 0 0;padding:0 0 2px;scrollbar-width:none}.teacher-sub-nav::-webkit-scrollbar{display:none}.teacher-sub-nav button{flex:0 0 auto;max-width:112px;min-height:36px;display:inline-flex;align-items:center;gap:5px;border:1px solid #dbeaf7;border-radius:999px;padding:0 12px;color:#496073;background:#fff;font-size:13px;font-weight:700;white-space:nowrap}.teacher-sub-nav button span{min-width:0;overflow:hidden;text-overflow:ellipsis}.teacher-sub-nav button.active{border-color:#1688ee;color:#fff;background:#1688ee;box-shadow:0 8px 16px #1688ee2e}.teacher-card-list,.teacher-lesson-list{display:grid;gap:10px}.teacher-student-card{display:grid;grid-template-columns:58px 1fr;gap:12px;align-items:center;padding:13px}.teacher-student-card img{width:58px;height:58px;border-radius:50%;object-fit:cover;background:#e8f5ff}.teacher-student-card strong,.teacher-student-card span,.teacher-student-card small,.teacher-info-card strong,.teacher-info-card span,.teacher-info-card small{display:block}.teacher-student-card span,.teacher-info-card span,.teacher-lesson-list span,.teacher-lesson-list small,.teacher-growth-card span,.teacher-growth-card p{color:#64748b;font-size:13px;line-height:20px}.teacher-student-card small,.teacher-info-card small{margin-top:3px;color:#94a3b8;font-size:12px}.teacher-info-card{display:grid;gap:5px;padding:14px}.teacher-lesson-list article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:13px}.teacher-lesson-list strong,.teacher-lesson-list span,.teacher-lesson-list small{display:block}.teacher-status{min-width:58px;text-align:center;font-style:normal;color:#1688ee;background:#e9f5ff;border-radius:999px;padding:5px 8px;font-size:12px}.teacher-status.finished{color:#0f9f6e;background:#eafaf3}.teacher-status.leave,.teacher-status.cancelled{color:#ef4444;background:#fff1f2}.teacher-row-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.teacher-row-actions .outline-btn,.teacher-row-actions .small-btn{min-height:32px;padding:0 10px}.teacher-records{display:grid;gap:0;overflow:hidden;border-radius:8px;background:#fff}.teacher-record-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin:0;padding:0;border-bottom:1px solid #edf3f8;background:#fff}.teacher-record-tabs button{position:relative;min-width:0;min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;padding:0 4px;color:#1f2937;background:#fff;font-size:14px;font-weight:700;white-space:nowrap}.teacher-record-tabs button:after{content:"";position:absolute;left:50%;bottom:0;width:28px;height:2px;border-radius:999px;background:transparent;transform:translate(-50%)}.teacher-record-tabs button.active{color:#ef7b23}.teacher-record-tabs button.active:after{background:#ef7b23}.teacher-record-tools{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:12px;background:#fff}.teacher-record-tools .teacher-filter-btn{min-height:42px;color:#ef7b23;background:transparent;white-space:nowrap}.teacher-record-search{min-width:0;min-height:42px;display:grid;grid-template-columns:20px minmax(0,1fr);gap:8px;align-items:center;border:0;border-radius:8px;padding:0 12px;color:#94a3b8;background:#f6f7f9}.teacher-record-search input{min-width:0;border:0;outline:0;background:transparent;color:#172033;font-size:14px}.teacher-filter-btn em{min-width:18px;height:18px;display:grid;place-items:center;border-radius:999px;color:#fff;background:#ef7b23;font-size:11px;font-style:normal}.teacher-record-filter{display:grid;gap:12px;border-top:1px solid #f0f2f5;padding:0 12px 12px;background:#fff;box-shadow:none}.teacher-record-filter strong{display:block;margin-bottom:8px;color:#263241;font-size:13px}.teacher-filter-chips{display:flex;flex-wrap:wrap;gap:8px}.teacher-filter-chips button{min-height:32px;border:1px solid #dbeaf7;border-radius:999px;padding:0 12px;color:#496073;background:#f8fbff;font-weight:700}.teacher-filter-chips button.active{border-color:#ef7b23;color:#ef7b23;background:#fff4ea}.teacher-record-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;margin:0 12px 10px;border-radius:8px;padding:10px 12px;color:#1688ee;background:#eaf6ff}.teacher-record-summary span,.teacher-record-summary strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-record-summary span{color:#64748b;font-size:13px}.teacher-record-summary strong{font-size:14px}.teacher-record-list{display:grid;gap:12px;padding:0 12px 12px}.teacher-record-day{display:grid;gap:8px}.teacher-record-day time{color:#64748b;font-size:14px;font-weight:700}.teacher-record-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;border:1px solid #e5f0fa;border-radius:8px;padding:12px;background:#fff}.teacher-record-main{min-width:0;display:grid;gap:5px}.teacher-record-main strong{color:#172033;font-size:18px;line-height:22px}.teacher-record-main span{color:#263241;font-size:14px;font-weight:700}.teacher-record-main small{min-width:0;display:inline-flex;align-items:center;gap:5px;color:#64748b;font-size:13px;line-height:18px}.teacher-record-main small svg{flex:0 0 auto;color:#1688ee}.teacher-record-side{display:grid;justify-items:end;align-content:start;gap:8px}.teacher-record-side .text-btn{display:inline-flex;align-items:center;gap:2px;padding:0;color:#1688ee;white-space:nowrap}.teacher-comment-card{display:grid;gap:10px;padding:13px}.teacher-comment-title{display:flex;justify-content:space-between;gap:10px;align-items:center}.teacher-comment-title span{color:#64748b;font-size:12px}.teacher-growth-card{display:grid;gap:10px;padding:14px}.teacher-growth-card strong,.teacher-growth-card span{display:block}.teacher-growth-card p{margin:0;padding:10px;border-radius:8px;background:#f5f9ff}.teacher-growth-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.teacher-growth-metrics span{display:grid;place-items:center;min-height:42px;border-radius:8px;color:#1688ee;background:#edf7ff;text-align:center;font-weight:700}.teacher-timetable{display:grid;gap:10px}.teacher-schedule-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden;border:1px solid #1688ee;border-radius:8px;background:#fff}.teacher-schedule-tabs button{min-width:0;min-height:42px;border:0;border-right:1px solid #1688ee;background:#fff;color:#1688ee;font-size:14px;font-weight:700}.teacher-schedule-tabs button:last-child{border-right:0}.teacher-schedule-tabs button.active{color:#fff;background:#1688ee}.teacher-week-bar{display:grid;grid-template-columns:34px minmax(0,1fr) 34px auto;gap:4px;align-items:center;padding:8px;border:1px solid #e5f0fa;border-radius:8px;background:#fff}.teacher-week-bar strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;color:#1f2937;font-size:15px}.teacher-filter-btn{min-height:34px;display:inline-flex;align-items:center;gap:4px;border:0;border-radius:8px;padding:0 8px;color:#64748b;background:#f4f8fc;font-weight:700}.teacher-week-summary{display:grid;grid-template-columns:minmax(0,1fr);gap:3px;padding:10px 12px;border-radius:8px;color:#1688ee;background:#eaf6ff}.teacher-week-summary span,.teacher-week-summary strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-week-summary span{color:#64748b;font-size:12px}.teacher-week-summary strong{font-size:14px}.teacher-timetable-scroll{overflow:auto;max-height:calc(100vh - 252px);border:1px solid #e5f0fa;border-radius:8px;background:#fff;overscroll-behavior:contain}.teacher-timetable-grid{--day-column-width: 126px;display:grid;grid-template-columns:58px repeat(7,var(--day-column-width));grid-template-rows:58px var(--timetable-height);min-width:calc(58px + 7 * var(--day-column-width))}.teacher-date-spacer{position:sticky;top:0;left:0;z-index:5;border-right:1px solid #e5edf6;border-bottom:1px solid #e5edf6;background:#f8fbff}.teacher-date-cell{position:sticky;top:0;z-index:4;min-width:0;border:0;border-right:1px solid #e5edf6;border-bottom:1px solid #e5edf6;background:#fff;color:#334155;text-align:center}.teacher-date-cell strong,.teacher-date-cell span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-date-cell strong{font-size:14px;line-height:20px}.teacher-date-cell span{margin-top:2px;color:#64748b;font-size:12px}.teacher-date-cell.today,.teacher-date-cell.active{color:#fff;background:#1688ee}.teacher-date-cell.today span,.teacher-date-cell.active span{color:#ffffffdb}.teacher-time-axis{position:sticky;left:0;z-index:3;height:var(--timetable-height);border-right:1px solid #e5edf6;background:#f8fbff}.teacher-time-axis span{position:absolute;right:8px;transform:translateY(-50%);color:#475569;font-size:13px}.teacher-day-lane{position:relative;height:var(--timetable-height);border-right:1px solid #eef3f8;background:repeating-linear-gradient(to bottom,#fff 0,#fff 53px,#f0f6fc 54px)}.teacher-day-lane.active{background:linear-gradient(0deg,#1688ee0a,#1688ee0a),repeating-linear-gradient(to bottom,#fff 0,#fff 53px,#f0f6fc 54px)}.teacher-course-block{position:absolute;left:5px;right:5px;display:grid;align-content:start;gap:1px;overflow:hidden;border-radius:7px;padding:6px 7px;color:#fff;background:linear-gradient(135deg,#31b7ee,#1688ee);box-shadow:0 4px 10px #1688ee2e}.teacher-course-block.finished{background:linear-gradient(135deg,#20b978,#0f9f6e)}.teacher-course-block.leave,.teacher-course-block.cancelled{background:linear-gradient(135deg,#f59f27,#ef7b23)}.teacher-course-block strong,.teacher-course-block span,.teacher-course-block small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-course-block strong{font-size:13px;line-height:16px}.teacher-course-block span,.teacher-course-block small{font-size:12px;line-height:15px}.teacher-course-block small{color:#ffffffdb}.teacher-week-empty{padding:12px;border:1px dashed #b9daf4;border-radius:8px;color:#64748b;background:#f8fbff;font-size:13px;text-align:center}@media(max-width:380px){.teacher-action-grid{grid-template-columns:repeat(3,1fr)}.teacher-brand strong{font-size:14px}.teacher-stat-row strong{font-size:26px}.teacher-timetable-grid{--day-column-width: 116px}.teacher-week-bar{grid-template-columns:32px minmax(0,1fr) 32px}.teacher-filter-btn{grid-column:1 / -1;justify-content:center}.teacher-record-tools,.teacher-record-card{grid-template-columns:1fr}.teacher-record-tools{grid-template-columns:minmax(0,1fr) auto}.teacher-record-tools .teacher-filter-btn{grid-column:auto}.teacher-record-side{grid-template-columns:auto auto;justify-content:space-between;justify-items:start}}
