:root{
  --bg:#F6F7F8;
  --card:#FFFFFF;
  --text:#0F172A;
  --muted:#64748B;
  --line:rgba(15,23,42,.08);
  --primary:#137FEC;
  --primary-weak:rgba(19,127,236,.12);
  --success:#16A34A;
  --warning:#F59E0B;
  --danger:#EF4444;
  --shadow: 0 12px 30px rgba(2,6,23,.10);
  --r:14px;
  --topbar-h:56px;
  --tabbar-h:64px;
  --maxw:420px;
  color-scheme: light;
}
[x-cloak]{display:none !important}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue",
    Arial, "Noto Sans", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  background:var(--bg);
  color:var(--text);
}
a{color:inherit;text-decoration:none}
.app{
  min-height:100dvh;
  max-width:var(--maxw);
  margin:0 auto;
  background:var(--bg);
  position:relative;
}
.topbar{
  position:sticky;
  top:0;
  z-index:10;
  height:var(--topbar-h);
  display:flex;
  align-items:center;
  gap:12px;
  padding:0 14px;
  background: rgba(246,247,248,.82);
  backdrop-filter: blur(10px);
  border-bottom:1px solid var(--line);
}
.topbar .title{
  flex:1;
  text-align:center;
  font-weight:700;
  letter-spacing:.2px;
}
.topbar .left,.topbar .right{
  width:56px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  color:var(--muted);
}
.topbar .right{justify-content:flex-end}
.icon{
  width:22px;height:22px;
  display:inline-block;
  vertical-align:middle;
}
.btn-icon{
  height:40px;width:40px;
  border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  color:var(--muted);
}
.content{
  padding:14px 14px calc(var(--tabbar-h) + 16px + env(safe-area-inset-bottom));
}
.content.no-tab{
  padding-bottom:16px;
}
.card{
  display:block;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r);
  box-shadow:0 1px 0 rgba(2,6,23,.02);
}
.card.pad{padding:14px}
.row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.sub{
  font-size:13px;
  color:var(--muted);
  line-height:1.35;
}
.h2{
  font-size:18px;
  font-weight:800;
  margin:2px 0 10px;
}
.h3{
  font-size:15px;
  font-weight:800;
  margin:0;
}
.pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.6);
}
.pill.primary{background:var(--primary-weak); border-color:rgba(19,127,236,.25); color:var(--primary)}
.tag{
  display:inline-flex;
  align-items:center;
  padding:4px 10px;
  border-radius:999px;
  font-size:12px;
  background:var(--primary-weak);
  color:var(--primary);
}
.grid-4{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap:10px;
}
.grid-3{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:10px;
}
.menu-item{
  padding:12px 8px;
  text-align:center;
  border-radius:14px;
  background:rgba(255,255,255,.65);
  border:1px solid var(--line);
}
.menu-item .mi-icon{
  height:44px;width:44px;
  border-radius:999px;
  margin:0 auto 8px;
  background:var(--primary-weak);
  color:var(--primary);
  display:flex;align-items:center;justify-content:center;
}
.menu-item .mi-label{
  font-size:12.5px;
  font-weight:700;
}
.banner{
  position:relative;
  overflow:hidden;
  border-radius:18px;
  min-height:150px;
  background: linear-gradient(135deg, rgba(19,127,236,.95), rgba(6,182,212,.85));
  color:#fff;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:14px;
}
.banner .dots{
  display:flex;gap:6px;justify-content:center;
  margin-top:10px;
}
.banner .dots span{
  width:6px;height:6px;border-radius:999px;
  background: rgba(255,255,255,.55);
}
.banner .dots span.on{background:#fff}

.carousel{
  position:relative;
  overflow:hidden;
}
.carousel__track{
  display:flex;
  transition: transform .45s ease;
  will-change: transform;
}
.carousel__slide{
  flex:0 0 100%;
  min-width:0;
}
.carousel__slide > *{
  width:100%;
}
.carousel__dots{
  display:flex;
  justify-content:center;
  gap:6px;
  margin-top:10px;
}
.carousel__dot{
  width:6px;
  height:6px;
  border-radius:999px;
  background: rgba(100,116,139,.35);
}
.carousel__dot.on{
  background: rgba(19,127,236,.95);
}
.searchbar{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 12px;
  border-radius:16px;
  background:rgba(255,255,255,.75);
  border:1px solid var(--line);
  color:var(--muted);
}
.searchbar strong{color:var(--text)}
.marquee{
  overflow:hidden;
  white-space:nowrap;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(245,158,11,.25);
  background:rgba(245,158,11,.10);
  color:#92400E;
}
.marquee span{
  display:inline-block;
  padding-left:100%;
  animation: marquee 14s linear infinite;
}
@keyframes marquee{
  0%{transform:translateX(0)}
  100%{transform:translateX(-100%)}
}
.list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.item{
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding:12px;
}
.thumb{
  width:62px;height:62px;
  border-radius:16px;
  background: linear-gradient(135deg, rgba(2,6,23,.15), rgba(2,6,23,.03));
  border:1px solid var(--line);
  flex:0 0 auto;
}
.avatar{
  width:54px;height:54px;border-radius:999px;
  background: linear-gradient(135deg, rgba(19,127,236,.35), rgba(2,6,23,.08));
  border:1px solid var(--line);
  flex:0 0 auto;
}
.meta{flex:1; min-width:0}
.meta .name{
  font-weight:800;
  font-size:15px;
  line-height:1.25;
}
.meta .desc{
  margin-top:4px;
  font-size:13px;
  color:var(--muted);
  line-height:1.35;
}
.meta .tags{
  margin-top:8px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.right-arrow{
  color:rgba(100,116,139,.9);
  margin-top:4px;
}
.tabbar{
  position:fixed;
  left:50%;
  transform:translateX(-50%);
  bottom:0;
  width:min(100%, var(--maxw));
  height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));
  padding:8px 10px calc(10px + env(safe-area-inset-bottom));
  border-top:1px solid var(--line);
  background: rgba(246,247,248,.92);
  backdrop-filter: blur(10px);
  z-index:20;
}
.tabs{
  display:grid;
  grid-template-columns: repeat(5, 1fr);
  gap:8px;
}
.tab{
  border-radius:14px;
  padding:10px 8px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  color:rgba(100,116,139,.95);
}
.tab .label{font-size:11.5px;font-weight:700}
.tab.on{color:var(--primary); background:rgba(255,255,255,.75); border:1px solid rgba(19,127,236,.18)}
.tab .icon{width:20px;height:20px}
.split{
  height:10px;
}
.actions{
  position:fixed;
  left:50%;
  transform:translateX(-50%);
  bottom:0;
  width:min(100%, var(--maxw));
  padding:12px 14px calc(12px + env(safe-area-inset-bottom));
  border-top:1px solid var(--line);
  background: rgba(246,247,248,.92);
  backdrop-filter: blur(10px);
  z-index:20;
}
.btn{
  height:48px;
  border-radius:999px;
  padding:0 16px;
  border:1px solid var(--line);
  background:#fff;
  font-weight:800;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}
.btn.primary{
  background:var(--primary);
  border-color:rgba(19,127,236,.35);
  color:#fff;
}
.btn.soft{
  color:var(--primary);
  background:var(--primary-weak);
  border-color:rgba(19,127,236,.25);
}
.btn.block{width:100%}
.demand-center{
  padding:16px 16px calc(var(--tabbar-h) + 16px + env(safe-area-inset-bottom));
}
.demand-center__panel{
  background:#fff;
  border-radius:18px;
  padding:18px;
  border:1px solid rgba(15,23,42,.08);
  box-shadow:0 14px 35px rgba(15,23,42,.12);
}
.demand-center__panel-title{
  margin:0;
  font-size:16px;
  font-weight:800;
}
.demand-center__panel-sub{
  margin:6px 0 0;
  font-size:13px;
  color:var(--muted);
  line-height:1.35;
}
.demand-center__panel-sub--mt{
  margin-top:10px;
}
.demand-center__new-btn{
  margin-top:14px;
  width:100%;
  height:48px;
  border-radius:16px;
  font-size:16px;
  justify-content:center;
}
.demand-center__list{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.demand-center__card{
  border:none;
  border-radius:18px;
  padding:16px 18px;
  box-shadow:0 18px 30px rgba(15,23,42,.08);
}
.demand-center__card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.demand-center__card-title{
  margin:0;
  font-size:16px;
  font-weight:800;
  color:var(--text);
  line-height:1.35;
  flex:1;
}
.demand-center__status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:4px 12px;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
  white-space:nowrap;
  flex:0 0 auto;
  margin-top:2px;
}
.demand-center__status--resolved{
  color:#16A34A;
  background:rgba(22,163,74,.15);
}
.demand-center__status--pending{
  color:#F59E0B;
  background:rgba(245,158,11,.15);
}
.demand-center__status--active{
  color:var(--primary);
  background:rgba(19,127,236,.12);
}
.demand-center__status--closed{
  color:#475569;
  background:rgba(71,85,105,.18);
}
.demand-center__meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:16px;
  margin-top:12px;
  color:var(--muted);
}
.demand-center__meta-item{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:13px;
}
.demand-center__meta-item .icon{
  width:16px;
  height:16px;
  stroke-width:1.5;
  color:var(--muted);
}

.course-detail{
  padding:0;
}
.course-detail__carousel{
  border-bottom:1px solid rgba(15,23,42,.06);
}
.course-detail__hero{
  min-height:240px;
  width:100%;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
}
.course-detail__info{
  margin:0 14px;
  border-radius:18px;
  overflow:hidden;
}
.course-kv{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:14px;
  border-bottom:1px solid rgba(15,23,42,.06);
}
.course-kv:last-child{border-bottom:none}
.course-kv .k{
  font-size:13px;
  font-weight:900;
  color:rgba(100,116,139,.95);
  flex:0 0 auto;
  padding-top:2px;
}
.course-kv .v{
  flex:1;
  min-width:0;
  text-align:right;
  font-weight:900;
  color:rgba(15,23,42,.90);
  line-height:1.35;
}
.course-kv .v .chip{margin-left:6px}
.course-kv__price{
  font-size:18px;
  font-weight:1000;
  color:var(--primary);
}
.course-detail__tabs-card{
  margin:0 14px 14px;
  border-radius:18px;
}
.course-tabs{
  background:rgba(255,255,255,.82);
  border:1px solid rgba(15,23,42,.08);
}
.course-tabs .seg{
  height:40px;
  font-size:12px;
  color:rgba(15,23,42,.72);
}
.course-tabs .seg.on{
  box-shadow:none;
  color:var(--text);
}
.course-tabpane{
  padding-top:14px;
}
.course-catalog{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:10px;
}
.course-catalog__item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 12px;
  border:1px solid rgba(15,23,42,.08);
  background:rgba(255,255,255,.75);
  border-radius:16px;
}
.course-catalog__item .n{
  width:34px;
  height:34px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(19,127,236,.10);
  color:var(--primary);
  font-weight:1000;
  font-size:12px;
  flex:0 0 auto;
}
.course-catalog__item .t{
  font-weight:900;
  color:rgba(15,23,42,.88);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.course-buybar{
  display:grid;
  grid-template-columns:1.3fr .85fr 1fr;
  gap:10px;
  align-items:center;
}
.course-buybar .k{
  font-size:11.5px;
  font-weight:900;
  color:rgba(100,116,139,.95);
}
.course-buybar__qty{min-width:0}
.course-buybar__total{
  text-align:center;
}
.course-buybar__total .v{
  margin-top:6px;
  font-weight:1000;
  font-size:16px;
  color:var(--primary);
}
.course-buybar__btn{
  height:48px;
  border-radius:14px;
  box-shadow:0 12px 24px rgba(19,127,236,.20);
}
.stepper{
  margin-top:8px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  border:1px solid rgba(15,23,42,.08);
  background:rgba(255,255,255,.85);
  border-radius:14px;
  padding:6px 8px;
}
.stepper__btn{
  width:34px;
  height:34px;
  border-radius:12px;
  border:1px solid rgba(15,23,42,.08);
  background:#fff;
  font-weight:1000;
  color:rgba(15,23,42,.80);
}
.stepper__val{
  min-width:28px;
  text-align:center;
  font-weight:1000;
  color:rgba(15,23,42,.90);
}
.course-detail__section{
  padding:16px;
  background:var(--bg);
}
.course-detail__title{
  margin:0;
  font-size:28px;
  font-weight:1000;
  letter-spacing:-.2px;
  line-height:1.18;
}
.course-detail__tags{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  padding:12px 0 8px;
}
.course-detail__tag{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:28px;
  padding:0 12px;
  border-radius:999px;
  font-size:12px;
  font-weight:800;
}
.course-detail__tag--hot{
  background:rgba(19,127,236,.12);
  color:var(--primary);
}
.course-detail__tag--new{
  background:rgba(245,158,11,.15);
  color:#B45309;
}
.course-detail__tag--rec{
  background:rgba(22,163,74,.15);
  color:#15803D;
}
.course-detail__price-row{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  padding-top:6px;
}
.course-detail__price{
  font-size:34px;
  font-weight:1000;
  color:var(--primary);
  letter-spacing:-.2px;
}
.course-detail__price-old{
  font-size:14px;
  color:rgba(100,116,139,.9);
  text-decoration:line-through;
  padding-bottom:6px;
}
.course-detail__divider{
  height:10px;
  background:rgba(15,23,42,.06);
}
.course-detail__attrs{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:18px 14px;
}
.course-detail__attr{
  display:flex;
  align-items:center;
  gap:12px;
}
.course-detail__attr-icon{
  height:44px;
  width:44px;
  border-radius:999px;
  background:rgba(19,127,236,.12);
  color:var(--primary);
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
}
.course-detail__attr-icon .icon{
  width:20px;
  height:20px;
}
.course-detail__attr-k{
  font-size:12px;
  color:rgba(100,116,139,.9);
  font-weight:700;
}
.course-detail__attr-v{
  font-size:14px;
  font-weight:900;
  margin-top:2px;
}
.course-detail__tabs{
  display:flex;
  border-bottom:1px solid rgba(15,23,42,.10);
}
.course-detail__tab{
  flex:1;
  border:0;
  background:transparent;
  padding:12px 0 12px;
  font-size:14px;
  font-weight:800;
  color:rgba(100,116,139,.95);
  border-bottom:2px solid transparent;
}
.course-detail__tab.on{
  color:var(--primary);
  border-bottom-color:var(--primary);
}
.course-detail__pane{
  padding-top:16px;
}
.course-detail__h{
  margin:0 0 10px;
  font-size:18px;
  font-weight:1000;
}
.course-detail__p{
  margin:0;
  font-size:14px;
  color:rgba(30,41,59,.9);
  line-height:1.75;
}
.course-detail__p + .course-detail__p{
  margin-top:12px;
}
.course-detail__media{
  margin-top:14px;
  border-radius:14px;
  width:100%;
  aspect-ratio:16 / 9;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  border:1px solid rgba(15,23,42,.08);
}
.course-detail__teacher{
  margin-top:8px;
  display:flex;
  gap:12px;
  align-items:center;
}
.course-detail__teacher-avatar{
  width:52px;
  height:52px;
  border-radius:999px;
  background-size:cover;
  background-position:center;
  border:1px solid rgba(15,23,42,.08);
}
.course-detail__teacher-name{
  font-size:15px;
  font-weight:1000;
}
.course-detail__teacher-sub{
  margin-top:4px;
  font-size:13px;
  color:rgba(100,116,139,.95);
  line-height:1.4;
}
.course-detail__reviews{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-top:8px;
}
.course-detail__review{
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  border-radius:16px;
  padding:12px 14px;
}
.course-detail__review-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  font-size:13px;
}
.course-detail__review-time{
  color:rgba(100,116,139,.9);
  font-weight:700;
  font-size:12px;
}
.course-detail__cta{
  border-radius:14px;
  box-shadow:0 12px 24px rgba(19,127,236,.24);
}
.btns{
  display:flex;
  gap:10px;
}
.btns .btn{flex:1}
.form{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.field label{
  display:block;
  font-size:13px;
  font-weight:800;
  margin:0 0 8px;
}
.input, .select, .textarea{
  width:100%;
  padding:13px 14px;
  border-radius:14px;
  border:1px solid var(--line);
  background:#fff;
  outline:none;
  font-size:14px;
}
.textarea{min-height:96px; resize:vertical}
.switch{
  width:52px;height:30px;border-radius:999px;
  background:rgba(100,116,139,.22);
  border:1px solid var(--line);
  position:relative;
  flex:0 0 auto;
}
.switch::after{
  content:"";
  position:absolute;
  top:3px;left:3px;
  width:24px;height:24px;border-radius:999px;
  background:#fff;
  box-shadow:0 6px 14px rgba(2,6,23,.12);
  transition: all .18s ease;
}
.switch.on{background:rgba(19,127,236,.30); border-color:rgba(19,127,236,.25)}
.switch.on::after{left:25px}
.timeline{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.step{
  display:flex;
  gap:10px;
  align-items:flex-start;
}
.dot{
  width:10px;height:10px;border-radius:999px;
  background:rgba(100,116,139,.35);
  margin-top:6px;
}
.step.on .dot{background:var(--primary)}
.step .line{
  width:2px;
  background:rgba(15,23,42,.10);
  height:100%;
  margin:0 4px;
}
.step .text{
  flex:1;
}
.step .text .t{font-weight:800}
.step .text .d{font-size:13px;color:var(--muted);margin-top:2px}
.two-col{
  display:grid;
  grid-template-columns: 120px 1fr;
  gap:10px;
}
.left-menu{
  position:sticky;
  top:calc(var(--topbar-h) + 10px);
  align-self:start;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.left-menu a{
  padding:10px 10px;
  border-radius:14px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.6);
  font-size:13px;
  font-weight:800;
  color:rgba(100,116,139,.95);
}
.left-menu a.on{
  color:var(--primary);
  background:rgba(255,255,255,.9);
  border-color:rgba(19,127,236,.18);
}
.chips{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.chip{
  padding:7px 10px;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.75);
  font-size:12.5px;
  font-weight:800;
  color:rgba(100,116,139,.95);
}
.chip.on{
  color:var(--primary);
  border-color:rgba(19,127,236,.25);
  background:var(--primary-weak);
}
.badge{
  font-size:12px;
  padding:4px 8px;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.7);
  color:rgba(100,116,139,.95);
}
.badge.success{color:var(--success); border-color:rgba(22,163,74,.25); background:rgba(22,163,74,.10)}
.badge.warn{color:#92400E; border-color:rgba(245,158,11,.25); background:rgba(245,158,11,.10)}
.badge.danger{color:#991B1B; border-color:rgba(239,68,68,.25); background:rgba(239,68,68,.10)}

/* Auth pages (login/register) */
.auth-page{
  padding:26px 18px 34px;
  min-height:100dvh;
}
.auth-login{background:#F0F5FE}
.auth-register{background:#F8F9FA}
.auth-page .app{background:transparent}
.auth-hero{
  padding-top:46px;
  text-align:center;
}
.auth-logo{
  width:88px;height:88px;
  border-radius:24px;
  margin:0 auto 14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: linear-gradient(135deg, rgba(19,127,236,.95), rgba(67,101,228,.95));
  box-shadow:0 16px 32px rgba(2,6,23,.12);
  color:#fff;
}
.auth-logo-icon{width:46px;height:46px}
.auth-brand{
  font-size:34px;
  font-weight:1000;
  letter-spacing:.4px;
  color:rgba(15,23,42,.92);
}
.auth-card{
  margin-top:18px;
  border-radius:18px;
  padding:14px;
  background:rgba(255,255,255,.80);
  border:1px solid rgba(2,6,23,.06);
  box-shadow:0 10px 30px rgba(2,6,23,.08);
}
.auth-form{margin-top:14px; display:flex; flex-direction:column; gap:12px}
.auth-field label{
  display:block;
  margin:0 0 10px;
  font-size:14px;
  font-weight:1000;
  color:rgba(100,116,139,.95);
}
.auth-input{
  display:flex;
  align-items:center;
  gap:10px;
  height:54px;
  padding:0 14px;
  border-radius:16px;
  background:#fff;
  border:1px solid rgba(15,23,42,.10);
  box-shadow:0 2px 0 rgba(2,6,23,.02);
}
.auth-input-icon{color:rgba(100,116,139,.95)}
.auth-input input{
  flex:1;
  min-width:0;
  border:0;
  outline:0;
  background:transparent;
  font-size:16px;
}
.auth-input input::placeholder{color:rgba(100,116,139,.65); font-weight:800}
.auth-code{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:stretch;
}
.auth-code .auth-input{
  flex:1;
  min-width:0;
}
.auth-code-btn{
  height:54px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 14px;
  border-radius:16px;
  background:rgba(19,127,236,.14);
  border:1px solid rgba(19,127,236,.18);
  font-weight:900;
  color:var(--primary);
  white-space:nowrap;
}
.auth-code-inline{
  margin-left:auto;
  padding-left:10px;
  font-weight:900;
  color:var(--primary);
  white-space:nowrap;
}
.auth-links{
  display:flex;
  justify-content:space-between;
  font-size:14px;
  padding:2px 2px 0;
}
.auth-link{color:rgba(100,116,139,.95); font-weight:800}
.auth-link.primary{color:var(--primary)}
.auth-divider{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:10px;
  color:rgba(100,116,139,.95);
  font-weight:900;
}
.auth-divider span{flex:1; height:1px; background:rgba(15,23,42,.10)}
.auth-divider em{font-style:normal}
.auth-third{display:flex; justify-content:center; margin-top:6px}
.auth-third-btn{
  width:56px;height:56px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#22C55E;
  color:#fff;
  font-weight:1000;
  box-shadow:0 12px 24px rgba(34,197,94,.22);
  border:1px solid rgba(0,0,0,.06);
}
.auth-footer{
  margin-top:20px;
  text-align:center;
  font-size:14px;
  color:rgba(100,116,139,.95);
  font-weight:800;
}

/* Stitch-like blocks (used by courses/member-center/bills) */
.page-pad{padding:14px}
.elev{box-shadow:0 4px 12px rgba(2,6,23,.06)}

.segmented{
  display:flex;
  gap:4px;
  padding:4px;
  border-radius:14px;
  background:rgba(15,23,42,.10);
}
.segmented button{border:0;background:transparent}
.segmented .seg{
  flex:1;
  height:36px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
  font-weight:900;
  color:rgba(100,116,139,.95);
}
.segmented .seg.on{
  background:rgba(255,255,255,.92);
  box-shadow:0 2px 10px rgba(2,6,23,.08);
  color:var(--primary);
}

.teacher-tabs{
  background:rgba(255,255,255,.82);
  border:1px solid rgba(15,23,42,.08);
  margin-top:12px;
}
.teacher-tabs .seg{
  height:40px;
  color:rgba(15,23,42,.70);
}
.teacher-tabs .seg.on{
  box-shadow:none;
  color:var(--text);
}

.week-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 14px 4px;
}
.week-head .range{
  flex:1;
  text-align:center;
  font-size:14px;
  font-weight:900;
}
.week-grid{
  overflow-x:auto;
  -ms-overflow-style:none;
  scrollbar-width:none;
}
.week-grid::-webkit-scrollbar{display:none}
.week-grid .labels,
.week-grid .dates{
  display:grid;
  grid-template-columns:repeat(7, 1fr);
  padding:0 8px;
}
.week-grid .labels div{
  text-align:center;
  font-size:11px;
  font-weight:900;
  color:rgba(100,116,139,.95);
  padding:8px 0 2px;
}
.courses-toggle{margin-top:6px}
.courses-toggle .seg.on{
  color:var(--text);
}

.month-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 14px 6px;
}
.month-head .range{
  flex:1;
  text-align:center;
  font-size:14px;
  font-weight:900;
}
.month-grid{
  padding:0 8px;
}
.month-dow{
  display:grid;
  grid-template-columns:repeat(7, 1fr);
}
.month-dow div{
  height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:11px;
  font-weight:900;
  color:rgba(100,116,139,.95);
  padding-bottom:2px;
}
.month-days{
  display:grid;
  grid-template-columns:repeat(7, 1fr);
}
.month-day{
  position:relative;
  height:40px;
  border:0;
  background:transparent;
  color:var(--text);
  font-size:13px;
  font-weight:900;
}
.month-day.muted{color:rgba(100,116,139,.55)}
.month-day .circle{
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
}
.month-day.on{
  color:#fff;
}
.month-day.on .circle{
  background:var(--primary);
}
.month-dot{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  bottom:6px;
  width:5px;
  height:5px;
  border-radius:999px;
  background:var(--primary);
}
.month-dot.green{background:var(--success)}
.month-dot.primary{background:var(--primary)}
.date-btn{
  appearance:none;
  -webkit-appearance:none;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  padding:8px 0;
  border-radius:12px;
  border:0;
  background:transparent;
  outline:0;
  -webkit-tap-highlight-color: transparent;
}
.date-btn:focus-visible{
  outline:2px solid rgba(19,127,236,.35);
  outline-offset:2px;
}
.date-btn .num{
  width:34px;
  height:34px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
  font-weight:900;
  color:var(--text);
}
.date-btn.on{background:var(--primary-weak)}
.date-btn.on .num{
  background:var(--primary);
  color:#fff;
}
.date-btn .dot{
  width:4px;
  height:4px;
  border-radius:999px;
  background:var(--primary);
}

.sheet{
  background:var(--card);
  border-top:1px solid var(--line);
  border-radius:20px 20px 0 0;
  padding:14px;
  margin-top:8px;
}

.event-card{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px;
  border-radius:14px;
  border:1px solid var(--line);
  background:#fff;
  box-shadow:0 1px 0 rgba(2,6,23,.03);
}
.event-bar{
  width:4px;
  align-self:stretch;
  border-radius:999px;
  background:rgba(100,116,139,.35);
}
.event-bar.primary{background:var(--primary)}
.event-bar.green{background:var(--success)}
.event-bar.orange{background:var(--warning)}
.event-main{flex:1; min-width:0}
.event-main .t{font-weight:900; font-size:15px; line-height:1.25}
.event-main .d{margin-top:4px; font-size:12.5px; color:var(--muted); font-weight:800}
.event-main .loc{
  margin-top:4px;
  font-size:12.5px;
  color:rgba(100,116,139,.95);
  font-weight:800;
  line-height:1.25;
}
.event-side{
  flex:0 0 auto;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:6px;
}
.pill-status{
  font-size:12px;
  font-weight:900;
  padding:5px 10px;
  border-radius:999px;
  border:1px solid rgba(245,158,11,.20);
  background:rgba(245,158,11,.14);
  color:#92400E;
}

.session-card{
  border:none;
  border-radius:18px;
  box-shadow:0 14px 30px rgba(15,23,42,.08);
}
.session-hero__inner{
  padding:20px 18px;
}
.session-hero__state{
  font-size:14px;
  color:#F59E0B;
  font-weight:900;
}
.session-hero__title{
  margin-top:10px;
  font-size:22px;
  font-weight:1000;
  letter-spacing:-.2px;
}
.session-hero__sub{
  margin-top:10px;
  font-size:14px;
  color:rgba(100,116,139,.95);
  font-weight:800;
}

.session-kv{
  padding:6px 18px 0;
}
.session-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:18px 0;
  border-bottom:1px solid rgba(15,23,42,.06);
}
.session-row--last{
  border-bottom:none;
  padding-bottom:16px;
}
.session-row .k{
  font-size:14px;
  color:rgba(100,116,139,.95);
  font-weight:800;
}
.session-row .v{
  font-size:14px;
  color:rgba(15,23,42,.95);
  font-weight:900;
  text-align:right;
  display:flex;
  justify-content:flex-end;
}
.session-row .teacher{
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
}
.session-row .teacher-avatar{
  width:34px;
  height:34px;
  border-radius:999px;
  background-size:cover;
  background-position:center;
  border:1px solid rgba(15,23,42,.08);
}

.session-divider{
  height:1px;
  background:rgba(15,23,42,.06);
  margin:0 18px;
}
.session-note{
  padding:16px 18px 18px;
}
.session-note .note-k{
  font-size:14px;
  color:rgba(100,116,139,.95);
  font-weight:800;
}
.session-note .note-v{
  margin-top:10px;
  font-size:14px;
  color:rgba(15,23,42,.92);
  line-height:1.75;
  font-weight:700;
}

.session-actions{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.session-btn-secondary{
  background:rgba(100,116,139,.18);
  border-color:rgba(100,116,139,.18);
  color:rgba(15,23,42,.9);
}
.session-actions__hint{
  padding:4px 6px 0;
  text-align:center;
  font-size:12px;
  color:rgba(100,116,139,.75);
  font-weight:800;
  line-height:1.55;
}

.benefit{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px;
}
.benefit + .benefit{border-top:1px solid var(--line)}
.b-icon{
  width:42px;
  height:42px;
  border-radius:14px;
  background:var(--primary-weak);
  border:1px solid rgba(19,127,236,.18);
  color:var(--primary);
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
}
.b-text{font-weight:900}

.plan-card{
  border-radius:16px;
  border:1px solid rgba(19,127,236,.35);
  background:var(--primary-weak);
  padding:14px;
}
.plan-card .name{font-weight:1000}
.plan-card .desc{margin-top:4px; font-size:12.5px; color:var(--muted); font-weight:800}
.plan-card .price{font-weight:1000; color:var(--primary); font-size:22px}
.plan-card .price small{font-size:14px; font-weight:900; color:rgba(19,127,236,.85)}
.plan-card .old{margin-top:4px; font-size:12px; color:rgba(100,116,139,.9); text-decoration:line-through; font-weight:900}

.btn-rect{border-radius:16px}
.btn-lg{height:52px; font-size:16px}
.student-delete-btn{
  background:transparent;
  border-color:transparent;
  color:var(--danger);
  font-weight:900;
}
.student-delete-btn:active{
  background:rgba(239,68,68,.10);
}

.orders-sticky{
  position:sticky;
  top:var(--topbar-h);
  z-index:9;
  background: rgba(246,247,248,.92);
  backdrop-filter: blur(10px);
  border-bottom:1px solid var(--line);
}
.orders-filter{
  display:flex;
  gap:12px;
  padding:12px 14px;
  overflow-x:auto;
  -ms-overflow-style:none;
  scrollbar-width:none;
}
.orders-filter::-webkit-scrollbar{display:none}
.orders-chip{
  appearance:none;
  -webkit-appearance:none;
  border:0;
  background:rgba(15,23,42,.08);
  color:rgba(15,23,42,.85);
  height:32px;
  padding:0 16px;
  border-radius:999px;
  font-size:13px;
  font-weight:900;
  white-space:nowrap;
}
.orders-chip.on{
  background:var(--primary);
  color:#fff;
}

.orders-list{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.order-card{
  padding:16px;
  border:none;
  border-radius:18px;
  box-shadow:0 14px 30px rgba(15,23,42,.08);
}
.order-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.order-kind{
  font-size:16px;
  font-weight:1000;
}
.order-status{
  font-size:14px;
  font-weight:900;
}
.order-status.s-paid{color:var(--success)}
.order-status.s-pending{color:#F59E0B}
.order-status.s-refunded{color:rgba(100,116,139,.95)}

.order-body{
  margin-top:12px;
  display:flex;
  align-items:center;
  gap:14px;
}
.order-thumb{
  width:80px;
  height:80px;
  border-radius:14px;
  background-size:cover;
  background-position:center;
  border:1px solid rgba(15,23,42,.08);
  flex:0 0 auto;
}
.order-meta{min-width:0}
.order-title{
  font-size:16px;
  font-weight:900;
  line-height:1.25;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.order-sub{
  margin-top:6px;
  font-size:13px;
  color:rgba(100,116,139,.95);
  font-weight:800;
  line-height:1.25;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.order-foot{
  margin-top:14px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
}
.order-total{
  font-size:16px;
  font-weight:1000;
}
.order-total .k{
  color:rgba(15,23,42,.92);
}
.order-total .v{
  color:rgba(15,23,42,.95);
}
.order-action{
  height:32px;
  padding:0 16px;
  border-radius:999px;
  font-size:13px;
  font-weight:900;
}
.order-action.btn.primary{
  border-color:rgba(19,127,236,.35);
}
.orders-empty{
  margin:28px 0 10px;
  padding:28px 0 10px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
  color:rgba(100,116,139,.9);
}
.orders-empty__ico{
  width:68px;
  height:68px;
  color:rgba(100,116,139,.28);
}
.orders-empty__txt{
  font-size:14px;
  font-weight:900;
  color:rgba(100,116,139,.8);
}

.od-card{
  border:none;
  border-radius:18px;
  box-shadow:0 14px 30px rgba(15,23,42,.08);
}
.od-hero{
  padding:16px 18px 18px;
}
.od-hero__row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.od-hero__kind{
  font-size:16px;
  font-weight:1000;
}
.od-hero__status{
  font-size:14px;
  font-weight:900;
}
.od-hero__status.s-paid{color:var(--success)}
.od-hero__status.s-pending{color:#F59E0B}
.od-hero__status.s-refunded{color:rgba(100,116,139,.95)}
.od-hero__title{
  margin-top:12px;
  font-size:20px;
  font-weight:1000;
  letter-spacing:-.2px;
  line-height:1.25;
}
.od-hero__sub{
  margin-top:10px;
  font-size:13px;
  font-weight:800;
  color:rgba(100,116,139,.95);
}

.od-item{
  padding:16px 18px;
  display:flex;
  gap:14px;
  align-items:center;
}
.od-item__thumb{
  width:80px;
  height:80px;
  border-radius:14px;
  background-size:cover;
  background-position:center;
  border:1px solid rgba(15,23,42,.08);
  flex:0 0 auto;
}
.od-item__meta{min-width:0; flex:1}
.od-item__name{
  font-size:16px;
  font-weight:1000;
  line-height:1.25;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.od-item__sub{
  margin-top:6px;
  font-size:13px;
  color:rgba(100,116,139,.95);
  font-weight:800;
}
.od-item__price{
  margin-top:10px;
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  font-weight:1000;
}
.od-item__price .k{color:rgba(15,23,42,.88)}
.od-item__price .v{color:rgba(15,23,42,.95)}

.od-kv{padding:6px 18px}
.od-amount{padding:6px 18px}
.od-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:16px 0;
  border-bottom:1px solid rgba(15,23,42,.06);
}
.od-row--last{border-bottom:none}
.od-row .k{
  font-size:14px;
  color:rgba(100,116,139,.95);
  font-weight:800;
}
.od-row .v{
  font-size:14px;
  color:rgba(15,23,42,.95);
  font-weight:900;
  text-align:right;
}
.od-row .k.strong,
.od-row .v.strong{
  font-weight:1000;
  color:rgba(15,23,42,.95);
}
.od-hint{
  margin-top:14px;
  text-align:center;
  font-size:12px;
  color:rgba(100,116,139,.75);
  font-weight:800;
  line-height:1.55;
  padding:0 6px;
}
.od-secondary{
  background:rgba(100,116,139,.18);
  border-color:rgba(100,116,139,.18);
  color:rgba(15,23,42,.9);
}
.od-actions{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.tdc-sticky{
  position:sticky;
  top:var(--topbar-h);
  z-index:9;
  margin:0 -14px;
  padding:12px 14px 10px;
  background: rgba(246,247,248,.92);
  backdrop-filter: blur(10px);
  border-bottom:1px solid var(--line);
}
.tdc-filters{
  display:flex;
  gap:12px;
  overflow-x:auto;
  -ms-overflow-style:none;
  scrollbar-width:none;
  padding-bottom:2px;
}
.tdc-filters::-webkit-scrollbar{display:none}
.tdc-chip{
  height:36px;
  padding:0 16px;
  border-radius:999px;
  background:rgba(15,23,42,.08);
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  font-weight:900;
  color:rgba(15,23,42,.9);
  flex:0 0 auto;
}
.tdc-chip .icon{
  width:18px;
  height:18px;
  color:rgba(100,116,139,.95);
}
.tdc-drop{
  transform:rotate(90deg);
}

.tdc-list{
  display:flex;
  flex-direction:column;
  gap:14px;
  padding-top:10px;
}
.tdc-card{
  background:#fff;
  border-radius:18px;
  padding:16px 16px 14px;
  box-shadow:0 14px 30px rgba(15,23,42,.08);
  border:1px solid rgba(15,23,42,.06);
}
.tdc-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
}
.tdc-title{
  font-size:20px;
  font-weight:1000;
  letter-spacing:-.2px;
  line-height:1.2;
}
.tdc-sub{
  margin-top:6px;
  font-size:14px;
  color:rgba(100,116,139,.95);
  font-weight:800;
}
.tdc-topic{
  margin-top:2px;
  padding:7px 14px;
  border-radius:999px;
  font-size:14px;
  font-weight:900;
  white-space:nowrap;
}
.tdc-topic--blue{background:rgba(19,127,236,.12); color:var(--primary)}
.tdc-topic--green{background:rgba(22,163,74,.14); color:#15803D}
.tdc-topic--purple{background:rgba(168,85,247,.12); color:#7C3AED}

.tdc-meta{
  margin-top:12px;
  display:flex;
  flex-direction:column;
  gap:10px;
  color:rgba(51,65,85,.95);
}
.tdc-meta-item{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:14px;
  font-weight:900;
  color:rgba(51,65,85,.95);
}
.tdc-meta-item .icon{
  width:18px;
  height:18px;
  color:rgba(71,85,105,.95);
}
.tdc-foot{
  margin-top:14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.tdc-price .n{
  font-size:30px;
  font-weight:1000;
  color:var(--primary);
  letter-spacing:-.2px;
}
.tdc-price .u{
  margin-left:4px;
  font-size:16px;
  font-weight:900;
  color:rgba(100,116,139,.95);
}
.tdc-btn{
  height:44px;
  min-width:112px;
  padding:0 18px;
  border-radius:14px;
  background:var(--primary);
  color:#fff;
  font-size:14px;
  font-weight:1000;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 12px 24px rgba(19,127,236,.22);
}

.td-page{
  padding:0 14px;
}
.td-title{
  margin:0;
  padding:16px 0 10px;
  font-size:32px;
  font-weight:1000;
  letter-spacing:-.4px;
  line-height:1.15;
}
.td-info{
  border-top:1px solid rgba(15,23,42,.10);
}
.td-row{
  display:grid;
  grid-template-columns:44px 1fr;
  gap:12px;
  align-items:center;
  padding:18px 0;
  border-bottom:1px solid rgba(15,23,42,.10);
}
.td-row--last{border-bottom:none}
.td-ico{
  width:44px;
  height:44px;
  border-radius:999px;
  background:rgba(19,127,236,.12);
  color:var(--primary);
  display:flex;
  align-items:center;
  justify-content:center;
}
.td-ico .icon{width:22px;height:22px}
.td-text .k{
  font-size:14px;
  font-weight:800;
  color:rgba(100,116,139,.95);
}
.td-text .v{
  margin-top:6px;
  font-size:16px;
  font-weight:1000;
  color:rgba(15,23,42,.95);
  line-height:1.4;
}
.td-tip{
  margin:14px 14px 0;
  padding:14px;
  border-radius:18px;
  background:rgba(245,158,11,.16);
  display:flex;
  gap:12px;
  align-items:flex-start;
}
.td-tip-ico{
  width:28px;
  height:28px;
  color:#B45309;
  flex:0 0 auto;
}
.td-tip-ico .icon{width:22px;height:22px}
.td-tip-t{
  font-size:16px;
  font-weight:1000;
  color:#92400E;
}
.td-tip-d{
  margin-top:6px;
  font-size:14px;
  font-weight:900;
  color:#B45309;
  line-height:1.6;
}

.tcm-new{
  height:56px;
  border-radius:18px;
  background:var(--primary);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  box-shadow:0 18px 32px rgba(19,127,236,.25);
}
.tcm-new__ico{
  width:38px;
  height:38px;
  border-radius:999px;
  background:rgba(255,255,255,.16);
  display:flex;
  align-items:center;
  justify-content:center;
}
.tcm-new__ico .icon{width:20px;height:20px}
.tcm-new__txt{
  font-size:18px;
  font-weight:1000;
  letter-spacing:.2px;
}
.tcm-list{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.tcm-card{
  background:#fff;
  border-radius:18px;
  padding:14px;
  border:1px solid rgba(15,23,42,.06);
  box-shadow:0 14px 30px rgba(15,23,42,.08);
}
.tcm-main{
  display:flex;
  gap:14px;
  align-items:flex-start;
}
.tcm-cover{
  width:136px;
  border-radius:16px;
  aspect-ratio:16/10;
  background-size:cover;
  background-position:center;
  border:1px solid rgba(15,23,42,.08);
  flex:0 0 auto;
}
.tcm-meta{min-width:0; flex:1}
.tcm-title{
  font-size:20px;
  font-weight:1000;
  letter-spacing:-.2px;
  line-height:1.2;
}
.tcm-grade{
  margin-top:10px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 14px;
  border-radius:999px;
  background:rgba(19,127,236,.12);
  color:var(--primary);
  font-size:14px;
  font-weight:1000;
}
.tcm-price{
  margin-top:10px;
  font-size:18px;
  font-weight:1000;
  color:rgba(100,116,139,.95);
}
.tcm-statuses{
  margin-top:12px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.tcm-status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:7px 14px;
  border-radius:999px;
  font-size:14px;
  font-weight:1000;
  white-space:nowrap;
}
.tcm-status--ok{background:rgba(22,163,74,.16); color:#15803D}
.tcm-status--pending{background:rgba(245,158,11,.16); color:#B45309}
.tcm-status--reject{background:rgba(239,68,68,.14); color:#B91C1C}
.tcm-status--gray{background:rgba(100,116,139,.14); color:rgba(71,85,105,.95)}
.tcm-actions{
  margin-top:14px;
  display:flex;
  justify-content:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.tcm-act{
  height:38px;
  padding:0 18px;
  border-radius:14px;
  background:rgba(100,116,139,.12);
  color:rgba(15,23,42,.9);
  font-size:14px;
  font-weight:1000;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.tcm-act--danger{
  background:transparent;
  color:rgba(100,116,139,.95);
}
.tcm-act--danger:active{
  background:rgba(239,68,68,.10);
  color:var(--danger);
}

.tcf-input{
  border-radius:18px;
  height:56px;
  font-size:16px;
  font-weight:800;
}
.tcf-textarea{
  border-radius:18px;
  min-height:120px;
  font-size:15px;
  font-weight:800;
}
.tcf-select{position:relative}
.tcf-select__arrow{
  position:absolute;
  right:14px;
  top:50%;
  transform:translateY(-50%) rotate(90deg);
  color:rgba(100,116,139,.85);
  width:20px;
  height:20px;
  pointer-events:none;
}
.tcf-select .select{padding-right:44px}
.tcf-uploader{
  border:2px dashed rgba(100,116,139,.35);
  border-radius:18px;
  padding:22px 18px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  background:rgba(255,255,255,.55);
}
.tcf-uploader__icon{
  width:64px;
  height:64px;
  border-radius:999px;
  background:rgba(19,127,236,.12);
  color:var(--primary);
  display:flex;
  align-items:center;
  justify-content:center;
}

/* Teacher Profile Form (tpf) */
.tpf-status{display:flex; align-items:center; gap:14px}
.tpf-status__ico{
  width:48px;height:48px;border-radius:999px;
  background:rgba(245,158,11,.16);
  border:1px solid rgba(245,158,11,.18);
  color:#B45309;
  display:flex;align-items:center;justify-content:center;
  flex:0 0 auto;
}
.tpf-status__title{font-weight:1000; font-size:15px; line-height:1.2}

.tpf-row{display:flex; align-items:center; justify-content:space-between; gap:12px}
.tpf-row__label{font-size:13px; font-weight:800; color:rgba(100,116,139,.95)}
.tpf-gender{display:flex; gap:10px; flex:0 0 auto}
.tpf-gender-btn{
  height:40px;
  padding:0 14px;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.65);
  color:rgba(100,116,139,.95);
  font-size:13px;
  font-weight:900;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.tpf-gender-btn.on{
  background:var(--primary);
  border-color:rgba(19,127,236,.35);
  color:#fff;
}
.tpf-radio{
  width:18px;height:18px;border-radius:999px;
  border:2px solid rgba(100,116,139,.55);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
}
.tpf-gender-btn.on .tpf-radio{border-color:#fff; background:rgba(255,255,255,.18)}
.tpf-radio.on::after{
  content:"";
  width:7px;height:12px;
  border:2px solid #fff;
  border-top:0;border-left:0;
  transform: rotate(45deg);
  margin-top:-2px;
}

.tpf-link-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:56px;
}
.tpf-link-left{display:flex; align-items:center; gap:12px; min-width:0}
.tpf-link-ico{color:rgba(100,116,139,.95)}
.tpf-link-title{font-weight:900; font-size:14px}
.tpf-link-right{display:flex; align-items:center; gap:6px; flex:0 0 auto; color:rgba(100,116,139,.95)}
.tpf-link-sub{font-weight:900; color:rgba(100,116,139,.90)}

.tpf-upload-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:10px}
.tpf-id-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:10px}
.tpf-thumb{
  border-radius:18px;
  border:1px solid var(--line);
  background-size:cover;
  background-position:center;
  aspect-ratio:1/1;
}
.tpf-tile{
  border:2px dashed rgba(100,116,139,.35);
  border-radius:18px;
  background:rgba(255,255,255,.55);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:14px 10px;
  color:rgba(100,116,139,.95);
}
.tpf-tile-text{
  font-size:12px;
  font-weight:900;
  text-align:center;
  line-height:1.25;
}
.tpf-tile--square{aspect-ratio:1/1}
.tpf-tile--id{aspect-ratio: 85.6 / 54}
.tpf-tile--video{aspect-ratio:16 / 9}
.tpf-video-grid{display:grid; grid-template-columns:2fr 1fr; gap:10px}

/* Video Thumb */
.video-thumb{
  border-radius:18px;
  border:1px solid var(--line);
  background-size:cover;
  background-position:center;
  aspect-ratio:16 / 9;
  position:relative;
  overflow:hidden;
}
.video-thumb::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(2,6,23,0), rgba(2,6,23,.38));
  pointer-events:none;
}
.video-thumb__play{
  position:absolute;
  inset:0;
  border:0;
  background:transparent;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
}
.video-thumb__tap{
  position:absolute;
  inset:0;
  border:0;
  background:transparent;
  z-index:1;
}
.video-thumb__play-ico{
  width:56px;
  height:56px;
  border-radius:999px;
  background:rgba(2,6,23,.36);
  border:1px solid rgba(255,255,255,.18);
  display:flex;
  align-items:center;
  justify-content:center;
  backdrop-filter: blur(6px);
}
.video-thumb__play .icon{width:24px;height:24px; transform: translateX(1px)}
.video-thumb__del{
  position:absolute;
  top:10px;
  right:10px;
  width:34px;
  height:34px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(2,6,23,.36);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:2;
}
.video-thumb__del .icon{width:18px;height:18px}

/* Teacher list (tlist) */
.tlist-card{border-radius:18px}
.tlist-head{
  display:flex;
  align-items:center;
  gap:14px;
}
.tlist-avatar{
  width:64px;
  height:64px;
  border-radius:999px;
  border:1px solid var(--line);
  background-size:cover;
  background-position:center;
  flex:0 0 auto;
}
.tlist-main{flex:1; min-width:0}
.tlist-name{
  font-weight:1000;
  font-size:15.5px;
  line-height:1.2;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.tlist-desc{
  margin-top:6px;
  font-size:13px;
  color:var(--muted);
  font-weight:800;
  line-height:1.25;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.tlist-arrow{width:20px; height:20px; color:rgba(100,116,139,.95); flex:0 0 auto}
.tlist-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}
.tcf-uploader__icon .icon{width:26px;height:26px}
.tcf-uploader__title{
  font-size:16px;
  font-weight:1000;
  text-align:center;
}
.tcf-uploader__sub{
  margin-top:6px;
  font-size:13px;
  color:rgba(100,116,139,.95);
  font-weight:800;
  text-align:center;
}
.tcf-uploader__btn{
  margin-top:6px;
  height:40px;
  padding:0 18px;
  border-radius:14px;
  background:rgba(100,116,139,.14);
  color:rgba(15,23,42,.9);
  font-size:14px;
  font-weight:1000;
  display:flex;
  align-items:center;
  justify-content:center;
}
.tcf-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:12px;
}
.tcf-money{
  display:flex;
  align-items:center;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  height:56px;
}
.tcf-money__unit{
  padding-left:16px;
  color:rgba(100,116,139,.9);
  font-weight:1000;
}
.tcf-money__input{
  border:0;
  height:54px;
  padding-left:8px;
}
.tcf-money__input:focus{outline:0}
.tcf-switch-row{
  margin-top:4px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:10px 4px 0;
}
.tcf-switch-title{
  font-size:16px;
  font-weight:1000;
}
.tcf-switch-sub{
  margin-top:6px;
  font-size:13px;
  color:rgba(100,116,139,.95);
  font-weight:800;
  line-height:1.35;
}
.tcf-actions{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:12px;
}
.tcf-draft{
  background:rgba(100,116,139,.18);
  border-color:rgba(100,116,139,.18);
  color:rgba(15,23,42,.9);
}

.bill-sticky{
  position:sticky;
  top:var(--topbar-h);
  z-index:9;
  background:rgba(246,247,248,.92);
  backdrop-filter: blur(10px);
  border-bottom:1px solid var(--line);
  padding:10px 14px 12px;
}
.bill-filters{
  display:flex;
  gap:10px;
  overflow-x:auto;
  padding-top:12px;
  -ms-overflow-style:none;
  scrollbar-width:none;
}
.bill-filters::-webkit-scrollbar{display:none}
.filter-btn{
  height:36px;
  border-radius:12px;
  padding:0 12px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:13px;
  font-weight:900;
  border:1px solid rgba(19,127,236,.18);
  background:var(--primary);
  color:#fff;
  flex:0 0 auto;
}
.filter-chip{
  height:36px;
  border-radius:12px;
  padding:0 12px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:13px;
  font-weight:900;
  border:1px solid rgba(15,23,42,.10);
  background:rgba(15,23,42,.08);
  color:rgba(100,116,139,.95);
  flex:0 0 auto;
}
.bill-list{background:var(--card)}
.bill-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px;
  border-bottom:1px solid rgba(15,23,42,.06);
}
.bill-left{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
  flex:1;
}
.bill-ico{
  width:44px;
  height:44px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  border:1px solid rgba(15,23,42,.08);
}
.bill-ico.primary{background:rgba(19,127,236,.12); color:var(--primary)}
.bill-ico.green{background:rgba(22,163,74,.12); color:var(--success)}
.bill-ico.orange{background:rgba(245,158,11,.14); color:#B45309}
.bill-ico.gray{background:rgba(100,116,139,.14); color:rgba(100,116,139,.95)}
.bill-meta{min-width:0}
.bill-meta .t{
  font-weight:900;
  line-height:1.25;
  margin:0;
}
.bill-meta .s{
  margin-top:4px;
  font-size:12.5px;
  color:var(--muted);
  font-weight:800;
  line-height:1.25;
}
.bill-amt{
  font-weight:1000;
  font-size:16px;
  flex:0 0 auto;
}
.bill-amt.in{color:var(--success)}
.bill-amt.out{color:var(--text)}

.cell-list{overflow:hidden}
.cell{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px;
  min-height:72px;
  border-bottom:1px solid rgba(15,23,42,.06);
}
.cell:last-child{border-bottom:none}
.cell-ico{
  width:48px;
  height:48px;
  border-radius:14px;
  background:var(--primary-weak);
  border:1px solid rgba(19,127,236,.18);
  color:var(--primary);
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
}
.cell-main{flex:1; min-width:0}
.cell-title{
  font-weight:900;
  font-size:15px;
  line-height:1.2;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.cell-sub{
  margin-top:6px;
  font-size:12.5px;
  color:var(--muted);
  font-weight:800;
  line-height:1.25;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.cell-arrow{
  width:20px;
  height:20px;
  color:rgba(100,116,139,.95);
  flex:0 0 auto;
}

.addr-list{
  display:flex;
  flex-direction:column;
  gap:14px;
  margin-top:4px;
}
.addr-card{
  background:var(--card);
  border:1px solid rgba(15,23,42,.06);
  border-radius:18px;
  box-shadow:0 4px 12px rgba(2,6,23,.06);
  padding:16px;
}
.addr-card.default{
  border-color:rgba(19,127,236,.30);
}
.addr-head{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
}
.addr-name{
  font-weight:900;
  font-size:16px;
  line-height:1.2;
}
.addr-phone{
  font-weight:800;
  font-size:16px;
  color:rgba(100,116,139,.95);
  line-height:1.2;
}
.addr-text{
  margin-top:8px;
  font-size:13.5px;
  color:rgba(15,23,42,.86);
  line-height:1.45;
}
.addr-divider{
  height:1px;
  background:rgba(15,23,42,.10);
  margin-top:14px;
}
.addr-foot{
  margin-top:12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.addr-default,
.addr-set-default{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  font-weight:900;
}
.addr-default{color:var(--primary)}
.addr-default-ico{
  width:22px;
  height:22px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--primary);
  color:#fff;
}
.addr-default-ico .icon{width:16px;height:16px}
.addr-radio{
  width:22px;
  height:22px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:rgba(100,116,139,.95);
}
.addr-radio .icon{width:20px;height:20px}
.addr-ops{
  display:flex;
  align-items:center;
  gap:18px;
  flex:0 0 auto;
}
.addr-op{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:13px;
  font-weight:900;
  color:rgba(100,116,139,.95);
}
.addr-op .icon{width:18px;height:18px}
.addr-actions{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.addr-cta{
  height:54px;
  border-radius:16px;
  font-size:16px;
  box-shadow:0 12px 24px rgba(19,127,236,.24);
}
.addr-danger{
  background:transparent;
  border-color:transparent;
  color:var(--danger);
}
.addr-select{
  position:relative;
}
.addr-select .select{
  padding-right:44px;
  background:rgba(255,255,255,.85);
}
.addr-select-arrow{
  position:absolute;
  right:12px;
  top:50%;
  transform:translateY(-50%);
  color:rgba(100,116,139,.95);
  pointer-events:none;
}

.withdraw-hero{
  padding:22px 0 14px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.withdraw-hero__label{
  font-size:14px;
  color:rgba(100,116,139,.95);
  font-weight:800;
}
.withdraw-hero__amt{
  margin-top:10px;
  font-size:34px;
  font-weight:1000;
  letter-spacing:-.2px;
  color:rgba(15,23,42,.96);
}
.withdraw-title{
  margin-top:6px;
  font-size:18px;
  font-weight:900;
  padding:10px 0 4px;
}
.withdraw-seg{
  background:rgba(100,116,139,.14);
  border:1px solid rgba(15,23,42,.06);
  border-radius:16px;
}
.withdraw-seg .seg{
  height:40px;
  font-size:14px;
  border-radius:14px;
}
.withdraw-panel{
  margin-top:14px;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.withdraw-input{
  height:56px;
  font-size:15px;
}
.withdraw-upload{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:18px 14px;
  border-radius:18px;
  border:2px dashed rgba(100,116,139,.30);
  background:rgba(255,255,255,.7);
  text-align:center;
}
.withdraw-upload__icon{
  width:56px;
  height:56px;
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(100,116,139,.12);
  border:1px solid rgba(15,23,42,.06);
  color:rgba(100,116,139,.95);
}
.withdraw-upload__icon .icon{width:26px;height:26px}
.withdraw-upload__text{
  font-weight:900;
  color:rgba(100,116,139,.95);
}
.withdraw-upload__sub{
  font-size:12px;
  color:rgba(100,116,139,.85);
  font-weight:800;
}
.withdraw-cta{
  height:54px;
  border-radius:16px;
  font-size:16px;
  box-shadow:0 12px 24px rgba(19,127,236,.24);
}
.withdraw-note{
  margin-top:10px;
  text-align:center;
  font-size:12px;
  color:rgba(100,116,139,.95);
  font-weight:800;
}

.help{padding-top:6px}
.help-faq{
  overflow:hidden;
  background:rgba(255,255,255,.92);
}
.help-faq-item{
  border-bottom:1px solid rgba(15,23,42,.08);
}
.help-faq-item:last-child{border-bottom:none}
.help-faq-item summary{
  list-style:none;
  cursor:pointer;
  padding:16px 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.help-faq-item summary::-webkit-details-marker{display:none}
.help-faq-q{
  font-weight:900;
  font-size:16px;
  letter-spacing:-.1px;
}
.help-faq-arrow{
  color:rgba(100,116,139,.95);
  transform: rotate(90deg);
  transition: transform .18s ease;
  flex:0 0 auto;
}
.help-faq-item[open] .help-faq-arrow{transform: rotate(-90deg)}
.help-faq-a{
  padding:0 16px 16px;
  font-size:13px;
  line-height:1.55;
}
.help-contact{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.help-btn{
  height:52px;
  font-size:15px;
}
.btn.outline-primary{
  background:rgba(255,255,255,.92);
  border-color:rgba(19,127,236,.45);
  color:var(--primary);
  box-shadow:0 10px 22px rgba(2,6,23,.06);
}
.help-time{
  text-align:center;
  font-size:13px;
  font-weight:900;
}

.dist{
  padding-top:4px;
}
.dist-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.dist-hero__label{
  font-size:15px;
  font-weight:900;
  color:rgba(100,116,139,.95);
}
.dist-hero__amt{
  margin-top:8px;
  font-size:40px;
  font-weight:1000;
  letter-spacing:-.4px;
  color:var(--primary);
}
.dist-withdraw{
  height:44px;
  padding:0 22px;
  border-radius:999px;
  flex:0 0 auto;
  box-shadow:0 12px 24px rgba(19,127,236,.20);
}
.dist-kpis{
  margin-top:14px;
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:14px;
}
.dist-kpi__label{
  font-size:15px;
  font-weight:900;
  color:rgba(100,116,139,.95);
}
.dist-kpi__val{
  margin-top:10px;
  font-size:34px;
  font-weight:1000;
  letter-spacing:-.2px;
  color:rgba(15,23,42,.96);
}
.dist-code{
  margin-top:14px;
}
.dist-code__title{
  font-size:22px;
  font-weight:1000;
  letter-spacing:-.2px;
}
.dist-code__box{
  margin-top:14px;
  height:58px;
  border-radius:16px;
  background:rgba(100,116,139,.10);
  border:1px solid rgba(15,23,42,.06);
  padding:0 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.dist-code__val{
  font-size:28px;
  font-weight:1000;
  letter-spacing:2px;
}
.dist-code__copy{
  height:38px;
  padding:0 18px;
  border-radius:12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(19,127,236,.18);
  border:1px solid rgba(19,127,236,.25);
  color:var(--primary);
  font-weight:1000;
  font-size:14px;
  flex:0 0 auto;
}
.dist-poster{
  margin-top:14px;
  height:54px;
  border-radius:16px;
  font-size:16px;
  box-shadow:0 12px 24px rgba(19,127,236,.24);
}
.dist-list{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.dist-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.dist-item__left{
  min-width:0;
  flex:1;
}
.dist-item__title{
  font-weight:900;
  font-size:16px;
  line-height:1.25;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.dist-item__time{
  margin-top:6px;
  font-size:14px;
}
.dist-item__amt{
  font-weight:1000;
  font-size:22px;
  color:var(--success);
  flex:0 0 auto;
}

.badge-pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  border:1px solid rgba(15,23,42,.06);
  background:rgba(255,255,255,.7);
  color:rgba(100,116,139,.95);
}
.badge-pill .icon{width:16px;height:16px}
.badge-pill.primary{
  color:var(--primary);
  border-color:rgba(19,127,236,.18);
  background:rgba(19,127,236,.10);
}
.badge-pill.secondary{
  color:#B45309;
  border-color:rgba(245,158,11,.18);
  background:rgba(245,158,11,.14);
}

.teacher-card{
  border-radius:18px;
  padding:14px;
}
.teacher-card__grid{
  display:grid;
  grid-template-columns:96px 1fr 1fr;
  grid-template-rows:auto auto;
  gap:12px;
  align-items:start;
}
.teacher-card__avatar{
  grid-row:1 / span 2;
  width:96px;
  height:96px;
  border-radius:18px;
  background: linear-gradient(135deg, rgba(2,6,23,.10), rgba(2,6,23,.02));
  border:1px solid rgba(15,23,42,.08);
  overflow:hidden;
}
.teacher-card__title{
  grid-column:2 / span 2;
  border-radius:18px;
  border:1px solid rgba(15,23,42,.08);
  background:rgba(255,255,255,.75);
  padding:12px 12px;
  min-width:0;
  min-height:96px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.teacher-card__k{
  font-size:12px;
  font-weight:1000;
  color:var(--muted);
}
.teacher-card__v{
  margin-top:4px;
  font-size:18px;
  font-weight:1000;
  letter-spacing:-.2px;
  line-height:1.2;
}
.teacher-card__sub{
  margin-top:6px;
  font-size:12.5px;
  font-weight:900;
  color:rgba(100,116,139,.95);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.teacher-card__mini{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
}
.teacher-card__nav{
  margin-top:12px;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  border:1px solid rgba(15,23,42,.08);
  border-radius:16px;
  overflow:hidden;
  background:rgba(255,255,255,.55);
}
.teacher-card__nav a{
  text-align:center;
  padding:12px 8px;
  font-size:12.5px;
  font-weight:1000;
  color:rgba(15,23,42,.88);
  border-right:1px solid rgba(15,23,42,.08);
}
.teacher-card__nav a:last-child{
  border-right:none;
}
.teacher-card__nav a:active{
  background:rgba(19,127,236,.08);
  color:var(--primary);
}

.teacher-hero{
  display:flex;
  gap:14px;
  padding:14px 2px 6px;
  align-items:center;
}
.teacher-hero__avatar{
  width:96px;
  height:96px;
  border-radius:999px;
  background: linear-gradient(135deg, rgba(2,6,23,.10), rgba(2,6,23,.02));
  border:1px solid rgba(15,23,42,.08);
  flex:0 0 auto;
}
.teacher-hero__meta{min-width:0}
.teacher-hero__name{
  font-size:22px;
  font-weight:1000;
  letter-spacing:-.2px;
  line-height:1.15;
}
.teacher-hero__sub{
  margin-top:8px;
  font-size:14px;
  color:rgba(100,116,139,.95);
  font-weight:900;
}
.teacher-hero__badges{
  margin-top:10px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.teacher-panel{padding-top:12px}
.teacher-desc{
  margin:0;
  font-size:14.5px;
  color:rgba(100,116,139,.98);
  line-height:1.75;
  font-weight:800;
}
.course-card{
  display:flex;
  align-items:center;
  gap:14px;
  padding:14px;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  box-shadow:0 4px 12px rgba(2,6,23,.06);
}
.course-thumb{
  width:80px;
  height:80px;
  border-radius:16px;
  background: linear-gradient(135deg, rgba(245,158,11,.20), rgba(19,127,236,.10));
  border:1px solid rgba(15,23,42,.08);
  flex:0 0 auto;
}
.course-meta{flex:1; min-width:0}
.course-title{font-weight:1000; font-size:16px; line-height:1.2}
.course-sub{margin-top:6px; font-size:12.5px; color:var(--muted); font-weight:800}
.course-price{margin-top:8px; font-size:18px; font-weight:1000; color:var(--primary)}
.course-go{
  width:36px;
  height:36px;
  border-radius:999px;
  background:rgba(19,127,236,.10);
  color:var(--primary);
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
}
.stats-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:10px;
}
.stats-card{
  padding:12px;
  border-radius:16px;
  border:1px solid rgba(15,23,42,.08);
  background:rgba(255,255,255,.75);
}
.stats-card .k{font-size:12px;color:var(--muted);font-weight:900}
.stats-card .v{margin-top:6px;font-size:18px;font-weight:1000}
