page,taro-button-core,taro-image-core,taro-input-core,taro-navigator-core,taro-scroll-view-core,taro-swiper-core,taro-swiper-item-core,taro-text-core,taro-textarea-core,taro-view-core{-webkit-box-sizing:content-box;box-sizing:content-box}#app,.taro_page,body,html,page{background:#f3fbfa;color:#16332e;color-scheme:light}page{font-family:PingFang SC,Hiragino Sans GB,Noto Sans SC,sans-serif}taro-view-core{display:block}.alert taro-text-core,.cell taro-text-core,.empty taro-text-core,.gate taro-text-core,.hero taro-text-core,.me-head taro-text-core,.stat taro-text-core{display:block}.avatar,.avatar img,.brand-logo,.brand-logo img,.gate__logo,.gate__logo img,.me-head__logo,.me-head__logo img,.qr-image,.qr-image img,taro-image-core.qr-image{display:block}.page{background:#f3fbfa;-webkit-box-sizing:content-box;box-sizing:content-box;min-height:100vh;padding:20px 20px 132px}.page--plain{padding-bottom:40px}.card{background:#fff;border-radius:18px;-webkit-box-shadow:0 8px 24px rgba(22,51,46,.04);box-shadow:0 8px 24px rgba(22,51,46,.04);margin-bottom:12px;padding:16px}.card--tap{position:relative}.cards-grid{display:grid;gap:12px;grid-template-columns:1fr;margin-bottom:12px}.cards-grid .card{margin-bottom:0}.row{-webkit-align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.space{-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.btn{-webkit-align-items:center;background:#2ec4a3;border-radius:14px;color:#fff;display:-webkit-flex;display:-ms-flexbox;display:flex;font-size:15px;font-weight:600;height:46px;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;border:none;justify-content:center}.btn--ghost{background:#fff;border:1px solid rgba(46,196,163,.45);color:#1a9a80}.btn--gold{background:#2ec4a3;color:#fff}.btn--danger{background:#e07a6a}.btn--block{width:100%}.btn--sm{font-size:14px;height:40px}taro-button-core{line-height:1.4;margin:0;padding-left:0;padding-right:0}.btn + .btn{margin-top:12px!important}.btn-row{-webkit-align-items:stretch;display:-webkit-flex;display:-ms-flexbox;display:flex;-ms-flex-align:stretch;align-items:stretch;gap:16px;margin:4px 0 16px}.btn-row .btn{-webkit-flex:1;-ms-flex:1;flex:1;margin:0!important;min-width:0}.btn-row .btn + .btn{margin-top:0!important}.btn::after{border:none}.input{background:#eefaf6;border-radius:14px;font-size:15px;margin-top:8px;padding:12px 14px}.label{color:#6a8a84;font-size:13px;margin-top:14px}.tag{-webkit-align-items:center;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;background:#e6f9f3;border-radius:999px;color:#1a9a80;font-size:11px;padding:4px 10px}.tag--warn{background:rgba(224,177,92,.18);color:#9a5b12}.tag--danger{background:hsla(8,66%,65%,.16);color:#b44538}.muted{color:#6a8a84;font-size:13px}.empty{color:#6a8a84;padding:48px 12px;text-align:center}.empty__title{color:#16332e;display:block;font-size:16px;margin-bottom:6px}.progress{background:#e6f9f3;border-radius:999px;height:8px;margin-top:10px;overflow:hidden}.progress__bar{background:#2ec4a3;border-radius:999px;height:8px}.progress__bar--warn{background:#e0b15c}.progress__bar--danger{background:#e07a6a}.chip-row{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:8px;margin-top:10px}.chip{background:#eefaf6;border-radius:14px;color:#16332e;font-size:14px;padding:10px 14px}.chip--on{background:#2ec4a3;color:#fff}.alert{background:#fff8ea;border-left:4px solid #e0b15c;border-radius:14px;margin-bottom:12px;padding:12px 14px}.alert--danger{background:#fdecea;border-left-color:#e07a6a}.qr-wrap{-webkit-align-items:center;background:#fff;border-radius:24px;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding:20px;-ms-flex-align:center;align-items:center}.qr-image{height:240px;width:240px}.code-xl{color:#1a9a80;display:block;font-size:28px;font-weight:700;letter-spacing:6px;margin:8px 0}.notice-dot{background:#e07a6a;border-radius:4px;-webkit-flex-shrink:0;height:8px;margin-left:6px;width:8px;-ms-flex-negative:0;flex-shrink:0}.notice{border-left:3px solid #2ec4a3}.notice--read{border-left-color:transparent;opacity:.62}.notice__title{font-size:15px;font-weight:700}.notice__content{display:block;line-height:1.5;margin-top:6px}.notice__time{display:block;font-size:12px;margin-top:8px}.list-title{display:block;font-size:16px;font-weight:700;margin:8px 0 12px}.meta{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:space-between;-ms-flex-pack:justify;-webkit-align-items:center;justify-content:space-between;-ms-flex-align:center;align-items:center;margin-top:8px}.big-num{color:#1a9a80;display:block;font-size:32px;font-weight:700}.cell{-webkit-align-items:center;background:#fff;border-radius:16px;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:10px;padding:16px;-ms-flex-align:center;align-items:center;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.cell__label{font-size:15px;font-weight:600}.cell__extra{color:#6a8a84;font-size:13px}.lang-switch{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;-ms-flex-pack:center;-webkit-align-items:center;justify-content:center;-ms-flex-align:center;align-items:center;color:#6a8a84;font-size:13px;margin-top:28px}.lang-switch__sep{color:#b7c9c4;margin:0 6px}.lang-switch__on{color:#1a9a80;font-weight:700}.page--gate{-webkit-align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:48px 28px 40px;-ms-flex-align:center;align-items:center}.gate{text-align:center;width:100%}.gate__logo{height:132px;margin:0 auto 12px;width:132px}.gate__title{color:#16332e;display:block;font-size:26px;font-weight:700}.gate__sub{color:#6a8a84;display:block;font-size:14px;margin:8px 0 28px}.gate__qr{-webkit-align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;gap:12px}.gate__form{-webkit-align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;gap:14px}.gate__avatar-btn{-webkit-align-items:center;background:#eefaf6;border-radius:42px;display:-webkit-flex;display:-ms-flexbox;display:flex;height:84px;width:84px;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;line-height:normal;overflow:hidden;padding:0}.gate__avatar{border-radius:42px;height:84px;width:84px}.gate__avatar-tip{color:#6a8a84;font-size:12px;padding:0 8px}.gate__nickname{text-align:center;width:100%}.gate__classes{text-align:left;width:100%}.gate__class{margin-bottom:12px}.hero{margin-bottom:18px}.hero__title{display:block;font-size:22px;font-weight:700;line-height:1.35}.hero__sub{color:#6a8a84;display:block;font-size:13px;line-height:1.55;margin-top:6px}.stat-grid{display:-webkit-flex;display:-ms-flexbox;display:flex;gap:10px;margin-bottom:16px}.stat{background:#fff;border-radius:16px;-webkit-flex:1;-ms-flex:1;flex:1;padding:14px 8px;text-align:center}.stat__num{color:#1a9a80;display:block;font-size:22px;font-weight:700}.stat__label{color:#6a8a84;display:block;font-size:11px;margin-top:4px}.role-card{border-radius:20px;color:#fff;margin-bottom:14px;padding:22px 18px}.role-card--teacher{background:-webkit-linear-gradient(315deg,#1a9a80,#2ec4a3);background:linear-gradient(135deg,#1a9a80,#2ec4a3)}.role-card--parent{background:-webkit-linear-gradient(315deg,#2ba8b3,#7ed4c8);background:linear-gradient(135deg,#2ba8b3,#7ed4c8)}.role-card__title{display:block;font-size:20px;font-weight:700}.role-card__desc{display:block;font-size:13px;line-height:1.5;margin-top:8px;opacity:.92}.tabbar{background:hsla(0,0%,100%,.96);bottom:0;-webkit-box-shadow:0 -8px 24px rgba(22,51,46,.06);box-shadow:0 -8px 24px rgba(22,51,46,.06);display:-webkit-flex;display:-ms-flexbox;display:flex;left:0;padding:8px 8px calc(8px + env(safe-area-inset-bottom));position:fixed;right:0;z-index:20}.tabbar__item{color:#6a8a84;-webkit-flex:1;-ms-flex:1;flex:1;font-size:11px;padding:6px 0;text-align:center}.tabbar__item--on{color:#1a9a80;font-weight:700}.tabbar__icon{display:block;font-size:18px;margin-bottom:2px}.fab{-webkit-align-items:center;background:#2ec4a3;border-radius:28px;bottom:140px;color:#fff;display:-webkit-flex;display:-ms-flexbox;display:flex;height:56px;position:fixed;right:20px;width:56px;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;-webkit-box-shadow:0 12px 24px rgba(46,196,163,.35);box-shadow:0 12px 24px rgba(46,196,163,.35);font-size:28px;justify-content:center;z-index:15}.me-head{padding:8px 0 20px;text-align:center}.me-head__logo{height:64px;margin:0 auto 14px;width:64px}.avatar{background:#e6f9f3;border-radius:36px;height:72px;margin:0 auto 10px;overflow:hidden;width:72px}.me-head__name{display:block;font-size:20px;font-weight:700}.me-head__tag{margin-top:8px}.mask{-webkit-align-items:flex-end;background:rgba(22,51,46,.35);display:-webkit-flex;display:-ms-flexbox;display:flex;inset:0;position:fixed;z-index:30;-ms-flex-align:end;align-items:flex-end}.sheet{background:#fff;border-radius:20px 20px 0 0;-webkit-box-sizing:content-box;box-sizing:content-box;padding:20px 20px calc(20px + env(safe-area-inset-bottom));width:100%}@media (min-width:520px){.taro_page{-webkit-box-shadow:0 0 40px rgba(22,51,46,.06);box-shadow:0 0 40px rgba(22,51,46,.06);left:0;margin:0 auto;max-width:430px;min-height:100vh;right:0}.tabbar{left:50%;max-width:430px;right:auto;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);width:100%}.fab{right:calc(50% - 195px)}.mask{-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.sheet{max-width:430px}.qr-image{height:320px;width:320px}}@media (hover:hover) and (pointer:fine){.alert,.card--tap,.cell,.chip,.tabbar__item{cursor:pointer}.card--tap,.cell{-webkit-transition:-webkit-transform .15s ease,-webkit-box-shadow .15s ease;transition:-webkit-transform .15s ease,-webkit-box-shadow .15s ease;transition:transform .15s ease,box-shadow .15s ease;transition:transform .15s ease,box-shadow .15s ease,-webkit-transform .15s ease,-webkit-box-shadow .15s ease}.card--tap:hover,.cell:hover{-webkit-box-shadow:0 12px 28px rgba(22,51,46,.08);box-shadow:0 12px 28px rgba(22,51,46,.08);-webkit-transform:translateY(-2px);-ms-transform:translateY(-2px);transform:translateY(-2px)}.btn:hover{-webkit-filter:brightness(1.05);filter:brightness(1.05)}}