/* ============ 乐小狮语文 · 教培机构专属 App Demo（纯手写，零依赖） ============ */
:root{
  --accent:#ff9d12;          /* 主题色：乐小狮橙黄，改这一处即可换主题 */
  --accent-d:#f5790a;
  --accent-soft:#fff3da;
  --accent-soft2:#fff8ec;
  --gold:#e0a93a;            /* VIP 金 */
  --gold-soft:#fbf1d8;
  --cta:#ff6a2c;             /* CTA 暖橙 */
  --bg:#f6f7f9;
  --ink:#2a2723;
  --ink-2:#9a9690;
  --line:#eef0f1;
  --green:#34b56a;
  --red:#ec5b56;
  --blue:#3aa0ff;
  --radius:15px;
  font-size:16px;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink)}

/* ---------- 舞台 ---------- */
.stage{min-height:100vh;
  background:radial-gradient(1200px 700px at 50% -10%,#4a3414,#1c140a 70%);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:18px;padding:36px 16px}
.stage-caption,.stage-foot{color:#e3cda0;font-size:13px;letter-spacing:.04em;text-align:center;max-width:420px}
.stage-foot{font-size:12px;opacity:.6}

/* ---------- 手机壳 ---------- */
.phone{width:375px;height:800px;position:relative;background:#111;border-radius:52px;padding:10px;
  box-shadow:0 30px 80px rgba(0,0,0,.55),0 0 0 2px #2c2c2c,0 0 0 5px #0a0a0a;flex-shrink:0}
.phone-island{position:absolute;top:22px;left:50%;transform:translateX(-50%);
  width:110px;height:28px;background:#000;border-radius:20px;z-index:50}
.screen{width:100%;height:100%;border-radius:43px;overflow:hidden;background:var(--bg);
  position:relative;display:flex;flex-direction:column}

/* ---------- 状态栏 ---------- */
.statusbar{height:54px;padding:20px 30px 0;display:flex;justify-content:space-between;
  align-items:center;font-size:14px;font-weight:600;flex-shrink:0;position:relative;z-index:45}
.sb-icons{display:flex;align-items:center;gap:5px}
.sb-signal{display:inline-flex;gap:1.5px;align-items:flex-end}
.sb-signal i{width:3px;background:var(--ink);border-radius:1px}
.sb-signal i:nth-child(1){height:4px}.sb-signal i:nth-child(2){height:6px}
.sb-signal i:nth-child(3){height:8px}.sb-signal i:nth-child(4){height:10px}
.sb-wifi{width:15px;height:11px;background:var(--ink);clip-path:polygon(0 35%,50% 100%,100% 35%,85% 20%,50% 65%,15% 20%)}
.sb-batt{width:23px;height:11px;border:1.5px solid var(--ink);border-radius:3px;padding:1.5px}
.sb-batt i{display:block;width:80%;height:100%;background:var(--ink);border-radius:1px}
/* 学习广场头图为深色，状态栏文字转白 */
.page-plaza.active ~ .statusbar{} /* noop */

/* ---------- 页面切换 ---------- */
.page{position:absolute;inset:54px 0 0;display:none;flex-direction:column;overflow:hidden;animation:pagein .22s ease}
.page.active{display:flex}
@keyframes pagein{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.scroll{flex:1;overflow-y:auto;padding-bottom:84px}
.sec-title{font-weight:800;font-size:15px;padding:16px 16px 8px;display:flex;align-items:baseline;gap:8px}
.sec-title small{font-weight:500;font-size:11.5px;color:var(--ink-2)}

/* 渐变封面色板（少儿暖色） */
.g1{background:linear-gradient(135deg,#ffe08a,#ffb74d)}
.g2{background:linear-gradient(135deg,#ffd0a6,#ff9d6e)}
.g3{background:linear-gradient(135deg,#c9f0d2,#8fdcaa)}
.g4{background:linear-gradient(135deg,#bfe3ff,#8cc4ff)}
.g5{background:linear-gradient(135deg,#ffd4e2,#ffabc6)}
.g6{background:linear-gradient(135deg,#e2d6ff,#c0aaff)}

/* ================= 学习广场 ================= */
.plaza-hero{position:relative;padding:14px 16px 22px;overflow:hidden}
.ph-bg{position:absolute;inset:0;background:linear-gradient(135deg,#ffb12e,#ff9d12 55%,#ff7a2c);z-index:0}
.ph-bg::after{content:"📚✏️🦁⭐";position:absolute;right:-6px;top:6px;font-size:34px;opacity:.2;letter-spacing:7px;white-space:nowrap}
.ph-top,.ph-card{position:relative;z-index:1}
.ph-top{display:flex;justify-content:space-between;align-items:center;color:#fff}
.ph-brand{font-size:19px;font-weight:800;letter-spacing:.5px;text-shadow:0 1px 4px rgba(0,0,0,.12)}
.ph-msg{font-size:18px;position:relative;cursor:pointer}
.ph-msg .dot{position:absolute;top:-2px;right:-3px;width:7px;height:7px;background:var(--red);border-radius:50%;border:1.5px solid #ff9d12}
.ph-card{margin-top:14px;background:rgba(255,255,255,.96);border-radius:18px;padding:16px;display:flex;align-items:center;
  box-shadow:0 10px 24px rgba(180,90,0,.22)}
.ph-card-l{flex:1;min-width:0}
.ph-title{font-size:20px;font-weight:900;color:var(--cta);letter-spacing:1px}
.ph-sub{font-size:12px;color:var(--ink-2);margin-top:6px}
.ph-go{display:inline-block;margin-top:12px;background:linear-gradient(135deg,var(--cta),#ff8a3d);color:#fff;
  font-size:12.5px;font-weight:700;padding:7px 16px;border-radius:999px;cursor:pointer;box-shadow:0 5px 12px rgba(255,106,44,.4)}
.ph-mascot{font-size:62px;flex:none;filter:drop-shadow(0 4px 8px rgba(0,0,0,.12))}

.grid5{display:grid;grid-template-columns:repeat(4,1fr);gap:14px 0;margin:-8px 12px 0;background:#fff;
  border-radius:var(--radius);padding:16px 6px;position:relative;z-index:2;box-shadow:0 4px 14px rgba(0,0,0,.05)}
.grid5 .gi{text-align:center;font-size:11.5px;color:var(--ink);cursor:pointer;font-weight:500}
.grid5 .gi .gi-ic{width:46px;height:46px;border-radius:15px;margin:0 auto 6px;display:grid;place-items:center;font-size:24px}
.grid5 .gi .gi-badge{display:inline-block;font-size:9px;color:#fff;background:var(--red);border-radius:6px;padding:0 4px;margin-left:3px;vertical-align:middle}

.deal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 16px 8px}
.dh-l{font-weight:800;font-size:15px;display:flex;align-items:baseline;gap:8px}
.dh-l small{font-weight:500;font-size:11px;color:var(--ink-2)}
.dh-timer{font-size:12px;font-weight:800;color:#fff;background:var(--cta);padding:3px 10px;border-radius:7px;
  font-variant-numeric:tabular-nums;letter-spacing:.5px}
.deal-list{display:flex;gap:12px;padding:2px 16px 4px;overflow-x:auto}
.deal{flex:none;width:155px;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.06);cursor:pointer;
  border:1.5px solid #ffe6bf}
.deal-cover{height:92px;display:grid;place-items:center;font-size:40px;position:relative}
.deal-cover .dc-hot{position:absolute;left:8px;top:8px;font-size:10px;font-weight:800;color:#fff;background:var(--cta);padding:2px 7px;border-radius:999px}
.deal-body{padding:9px 11px 11px}
.deal-name{font-size:13px;font-weight:700;line-height:1.35;height:2.7em;overflow:hidden;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.deal-foot{display:flex;align-items:baseline;gap:6px;margin-top:7px}
.deal-price{color:var(--cta);font-weight:900;font-size:18px}
.deal-price small{font-size:11px}
.deal-old{font-size:11px;color:#c7c3bc;text-decoration:line-through}

/* 课程卡（通用） */
.course-list{padding:6px 16px}
.course-card{background:#fff;border-radius:var(--radius);padding:12px;margin-bottom:13px;display:flex;gap:12px;
  box-shadow:0 3px 12px rgba(0,0,0,.05);cursor:pointer}
.cc-cover{width:96px;height:96px;border-radius:12px;flex:none;display:grid;place-items:center;font-size:42px;position:relative}
.cc-cover .cc-stage{position:absolute;left:6px;top:6px;font-size:9.5px;font-weight:700;color:#fff;background:rgba(0,0,0,.32);padding:1px 6px;border-radius:6px}
.cc-info{flex:1;min-width:0;display:flex;flex-direction:column}
.cc-title{font-weight:800;font-size:15px;line-height:1.3;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cc-sub{font-size:11.5px;color:var(--ink-2);margin-top:5px}
.cc-tags{display:flex;gap:6px;margin-top:7px;flex-wrap:wrap}
.cc-tag{font-size:10px;color:var(--accent-d);background:var(--accent-soft);padding:2px 8px;border-radius:6px;font-weight:600}
.cc-foot{display:flex;align-items:flex-end;margin-top:auto;padding-top:8px}
.cc-price{color:var(--cta);font-weight:900;font-size:18px}
.cc-price small{font-size:11px}
.cc-old{font-size:11px;color:#c7c3bc;text-decoration:line-through;margin-left:5px}
.cc-learned{margin-left:auto;font-size:11px;color:var(--ink-2)}
.cc-btn{margin-left:auto;background:linear-gradient(135deg,var(--accent),var(--accent-d));color:#fff;border:none;
  font-size:12.5px;font-weight:700;padding:7px 16px;border-radius:999px;cursor:pointer;box-shadow:0 4px 10px rgba(245,121,10,.35)}

/* ================= 课程 Tab ================= */
.course-top{padding:10px 16px 4px;background:#fff}
.course-search{background:var(--bg);color:var(--ink-2);font-size:13px;border-radius:999px;padding:10px 16px;
  display:flex;align-items:center;gap:8px;cursor:pointer}
.cat-tabs{display:flex;gap:8px;padding:10px 16px;overflow-x:auto;background:#fff;border-bottom:1px solid var(--line)}
.cat-tab{flex:none;padding:7px 16px;border-radius:999px;font-size:13px;font-weight:600;
  background:var(--bg);color:var(--ink-2);cursor:pointer;transition:.2s}
.cat-tab.on{background:var(--accent);color:#fff;box-shadow:0 4px 10px rgba(245,121,10,.32)}

/* ================= 服务中心 ================= */
.svc-head{font-size:20px;font-weight:900;padding:16px 16px 4px}
.svc-banner{margin:6px 16px 0;height:96px;border-radius:16px;position:relative;overflow:hidden;
  background:linear-gradient(120deg,#ff9d12,#ffb74d);display:flex;align-items:center;padding:0 18px}
.sb-text{position:relative;z-index:1;color:#fff}
.sb-title{font-size:21px;font-weight:900;text-shadow:0 1px 4px rgba(0,0,0,.12)}
.sb-sub{font-size:12px;margin-top:5px;opacity:.95}
.svc-banner .sb-emoji{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:34px;opacity:.9;letter-spacing:2px}

.svc-next{margin:14px 16px 0;background:#fff;border-radius:14px;padding:13px 14px;display:flex;align-items:center;gap:10px;
  box-shadow:0 3px 12px rgba(0,0,0,.05);border-left:4px solid var(--accent)}
.sn-tag{font-size:10px;font-weight:800;color:#fff;background:var(--accent);padding:3px 8px;border-radius:7px;flex:none}
.sn-info{flex:1;min-width:0}
.sn-title{font-weight:700;font-size:14px}
.sn-time{font-size:11.5px;color:var(--ink-2);margin-top:4px}
.sn-btn{flex:none;background:linear-gradient(135deg,var(--cta),#ff8a3d);color:#fff;border:none;font-size:12.5px;font-weight:700;
  padding:8px 14px;border-radius:999px;cursor:pointer;box-shadow:0 4px 10px rgba(255,106,44,.35)}

.svc-cells{margin:14px 16px 0;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.04)}
.svc-cell{display:flex;align-items:center;gap:12px;padding:15px 16px;font-size:14.5px;border-bottom:1px solid var(--line);cursor:pointer}
.svc-cell:last-child{border-bottom:none}
.svc-cell .sc-ic{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-size:19px;flex:none}
.svc-cell span{font-weight:600}
.svc-cell .sc-badge{font-size:10px;color:#fff;background:var(--red);border-radius:999px;padding:1px 7px;margin-left:auto;font-weight:700}
.svc-cell em{margin-left:auto;font-style:normal;font-size:12px;color:var(--ink-2)}
.svc-cell .sc-badge+i,.svc-cell em+i{margin-left:8px}
.svc-cell i{color:#d3d8d9;font-style:normal;margin-left:auto}
.svc-cell .sc-badge~i,.svc-cell em~i{margin-left:8px}

/* ================= 个人中心 ================= */
.mine-card{margin:14px 16px;border-radius:18px;padding:18px;color:#fff;position:relative;overflow:hidden;
  background:linear-gradient(125deg,#ff8a1c,#ff9d12 60%,#ffb74d)}
.mine-card::after{content:"🦁";position:absolute;right:-10px;bottom:-18px;font-size:96px;opacity:.16}
.mc-top{display:flex;align-items:center;gap:12px;position:relative;z-index:1}
.mc-ava{width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,.28);display:grid;place-items:center;font-size:30px}
.mc-id{flex:1;min-width:0}
.mc-name{font-weight:900;font-size:17px;display:flex;align-items:center;gap:7px}
.mc-grade{font-size:10px;background:rgba(255,255,255,.3);padding:2px 8px;border-radius:6px;font-weight:700}
.mc-sub{font-size:11.5px;opacity:.92;margin-top:4px}
.mc-set{margin-left:auto;font-size:18px;opacity:.9;cursor:pointer}
.mc-vip{margin-top:14px;background:linear-gradient(120deg,#5a3c12,#7a531c);border-radius:12px;padding:10px 14px;
  display:flex;align-items:center;position:relative;z-index:1;cursor:pointer}
.mc-vip .vip-l{font-size:11px;color:#ffe6b8;display:flex;flex-direction:column}
.mc-vip .vip-l b{font-size:13.5px;color:#ffd98a}
.mc-vip .vip-l small{font-size:10.5px;opacity:.8;margin-top:2px}
.mc-vip .vip-go{margin-left:auto;background:linear-gradient(135deg,#ffe08a,#e0a93a);color:#5a3c12;font-size:11.5px;font-weight:800;
  padding:6px 14px;border-radius:999px}
.mc-stats{display:flex;margin-top:16px;position:relative;z-index:1}
.mc-stats div{flex:1;text-align:center;cursor:pointer}
.mc-stats b{font-size:20px;font-weight:900;display:block;font-variant-numeric:tabular-nums}
.mc-stats span{font-size:10.5px;opacity:.9}
.mc-stats div+div{border-left:1px solid rgba(255,255,255,.22)}

.mine-grid2{display:flex;gap:12px;margin:0 16px 14px}
.mg2{flex:1;background:#fff;border-radius:14px;padding:14px;display:flex;align-items:center;gap:10px;
  box-shadow:0 2px 10px rgba(0,0,0,.04);cursor:pointer}
.mg2 .mg-ic{font-size:26px}
.mg2 b{font-size:14px}
.mg2 small{font-size:11px;color:var(--ink-2);display:block;margin-top:2px}

.mine-ad{margin:0 16px 14px;background:linear-gradient(120deg,#fff3da,#ffe6bf);border-radius:14px;padding:14px 16px;
  display:flex;align-items:center;cursor:pointer;box-shadow:0 2px 8px rgba(224,169,58,.14)}
.mine-ad .ad-t{font-size:14.5px;font-weight:800;color:#8a5a12}
.mine-ad .ad-s{font-size:11.5px;color:#a87c34;margin-top:3px}
.mine-ad .ad-go{margin-left:auto;width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--cta),#ff8a3d);
  color:#fff;font-size:13px;font-weight:800;display:grid;place-items:center;box-shadow:0 4px 10px rgba(255,106,44,.4)}

.cell-group{margin:0 16px 14px;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.cell{display:flex;align-items:center;gap:12px;padding:15px 16px;font-size:14.5px;border-bottom:1px solid var(--line);cursor:pointer}
.cell:last-child{border-bottom:none}
.cell .ci{font-size:19px;width:24px;text-align:center}
.cell span{font-weight:600}
.cell em{margin-left:auto;font-style:normal;font-size:12px;color:var(--ink-2)}
.cell i{color:#d3d8d9;font-style:normal;margin-left:auto}
.cell em+i{margin-left:8px}

/* ================= 底部 TabBar ================= */
.tabbar{position:absolute;bottom:0;left:0;right:0;height:62px;background:rgba(255,255,255,.97);
  backdrop-filter:blur(10px);border-top:1px solid var(--line);display:flex;z-index:30;padding-bottom:6px}
.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  font-size:11px;color:var(--ink-2);cursor:pointer}
.tab.active{color:var(--accent-d);font-weight:700}
.tab-ico{font-size:21px;filter:grayscale(.4);opacity:.7}
.tab.active .tab-ico{filter:none;opacity:1}

/* ================= 子页（全屏） ================= */
.subpage{position:absolute;inset:0;background:var(--bg);z-index:55;display:none;flex-direction:column}
.subpage.show{display:flex;animation:slidein .26s cubic-bezier(.3,1,.4,1)}
@keyframes slidein{from{transform:translateX(40px);opacity:.3}to{transform:none;opacity:1}}
.sub-bar{height:84px;padding-top:44px;display:flex;align-items:center;justify-content:space-between;
  padding-left:8px;padding-right:16px;flex-shrink:0;background:#fff;border-bottom:1px solid var(--line)}
.sub-bar.gold{background:linear-gradient(120deg,#ffb12e,#ff8a1c);border:none}
.sub-bar.gold .sub-bar-t,.sub-bar.gold .back,.sub-bar.gold .share{color:#fff}
.back{font-size:28px;width:44px;text-align:center;cursor:pointer;color:var(--ink);line-height:1}
.sub-bar-t{font-size:16px;font-weight:800}
.share{font-size:18px;color:var(--ink-2)}

/* ---------- 课程详情 ---------- */
.dt-cover{height:200px;position:relative;display:flex;align-items:center;justify-content:center;font-size:78px;
  background:linear-gradient(135deg,#ffe08a,#ffb74d 60%,#ff9d6e)}
.dt-tag{position:absolute;left:14px;top:14px;background:var(--cta);color:#fff;font-weight:800;font-size:11.5px;
  padding:4px 11px;border-radius:999px;box-shadow:0 3px 10px rgba(255,106,44,.35)}
.dt-body{padding:14px 16px}
.dt-title{font-weight:900;font-size:20px;line-height:1.32}
.dt-meta{display:flex;align-items:center;gap:14px;margin-top:10px;font-size:12.5px;color:var(--ink-2)}
.dt-price-row{display:flex;align-items:baseline;gap:8px;margin-top:12px;background:linear-gradient(120deg,#fff3da,#fff8ec);
  border-radius:12px;padding:12px 14px}
.dt-price{color:var(--cta);font-weight:900;font-size:18px}
.dt-price b{font-size:28px}
.dt-old{font-size:13px;color:#c7c3bc;text-decoration:line-through}
.dt-rate{margin-left:auto;font-size:12px;color:var(--ink-2)}
.dt-rate b{color:#ffb12e;letter-spacing:-1px}
.dt-feats{display:flex;gap:8px;margin-top:12px}
.dt-feats .ft{flex:1;background:#fff;border-radius:10px;padding:10px 6px;text-align:center;font-size:11px;color:var(--ink-2);
  box-shadow:0 2px 8px rgba(0,0,0,.04)}
.dt-feats .ft b{display:block;font-size:13px;color:var(--ink);margin-bottom:3px}
.dt-sec{font-weight:900;font-size:16px;margin:20px 0 10px;display:flex;align-items:baseline;gap:8px}
.dt-sec small{font-weight:500;font-size:11.5px;color:var(--ink-2)}
.dt-intro{background:#fff;border-radius:12px;padding:14px;font-size:13px;color:#5b5750;line-height:1.85;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.dt-intro p{margin-bottom:8px}
.dt-intro p:last-child{margin-bottom:0}
.dt-intro b{color:var(--accent-d)}

/* 课时列表 */
.lesson-list{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.lesson{display:flex;align-items:center;gap:12px;padding:14px 14px;border-bottom:1px solid var(--line);cursor:pointer}
.lesson:last-child{border-bottom:none}
.lesson-no{width:30px;height:30px;border-radius:9px;background:var(--accent-soft);color:var(--accent-d);font-weight:800;
  font-size:13px;display:grid;place-items:center;flex:none}
.lesson.done .lesson-no{background:var(--green);color:#fff}
.lesson-main{flex:1;min-width:0}
.lesson-title{font-weight:700;font-size:14px;display:flex;align-items:center;gap:6px}
.lesson-flower{font-size:11px;color:var(--cta);font-weight:700}
.lesson-sub{font-size:11px;color:var(--ink-2);margin-top:4px}
.lesson-btn{flex:none;font-size:12px;font-weight:700;padding:6px 14px;border-radius:999px;border:none;cursor:pointer}
.lesson-btn.go{background:var(--accent-soft);color:var(--accent-d)}
.lesson-btn.start{background:linear-gradient(135deg,var(--accent),var(--accent-d));color:#fff;box-shadow:0 4px 10px rgba(245,121,10,.35)}
.lesson-btn.hw{background:#fff1e9;color:var(--cta);border:1px solid #ffd9c4}
.lesson-btn.done{background:#eaf7ef;color:var(--green)}
.lesson-btn.soon{background:#f1f3f4;color:#a7a39c}
.lesson-btn.lock{background:#f1f3f4;color:#bdb9b2}

.dt-foot{height:64px;flex-shrink:0;background:#fff;border-top:1px solid var(--line);display:flex;align-items:center;padding:0 14px;gap:14px}
.dt-foot-ic{font-size:18px;color:var(--ink-2);display:flex;flex-direction:column;align-items:center;cursor:pointer;line-height:1}
.dt-foot-ic span{font-size:10px;margin-top:3px}
.dt-foot-ic.on{color:var(--red)}
.dt-foot-price{margin-left:auto;color:var(--cta);font-weight:800;font-size:14px;text-align:right}
.dt-foot-price b{font-size:24px}
.dt-foot-price small{font-size:10px;color:var(--ink-2);font-weight:500;display:block;margin-top:-2px}
.dt-buy{background:linear-gradient(135deg,var(--cta),#ff8a3d);color:#fff;border:none;font-size:15px;font-weight:800;
  padding:12px 28px;border-radius:999px;cursor:pointer;box-shadow:0 5px 14px rgba(255,106,44,.45)}

/* ---------- 上课页 / 专用练习纸 ---------- */
.ls-top{margin:14px 16px 0;background:#fff;border-radius:14px;padding:13px 14px;display:flex;align-items:center;gap:11px;
  box-shadow:0 2px 10px rgba(0,0,0,.04)}
.ls-ava{width:44px;height:44px;border-radius:12px;background:var(--accent-soft);display:grid;place-items:center;font-size:24px;flex:none}
.ls-meta{flex:1;min-width:0}
.ls-name{font-weight:800;font-size:16px}
.ls-sub{font-size:11.5px;color:var(--ink-2);margin-top:4px}
.ls-prog{flex:none;font-size:11px;font-weight:700;color:var(--accent-d);background:var(--accent-soft);padding:5px 10px;border-radius:999px}

.ls-req{margin:14px 16px 0;background:#fff;border-radius:14px;padding:14px;box-shadow:0 2px 10px rgba(0,0,0,.04)}
.lr-title{font-weight:800;font-size:14px;margin-bottom:10px}
.lr-tags{display:flex;flex-wrap:wrap;gap:8px}
.lr-tags .req{font-size:12px;color:#7a6a45;background:var(--gold-soft);border-radius:8px;padding:7px 11px;font-weight:600}

.ls-paper-title{font-weight:800;font-size:15px;padding:18px 16px 10px;display:flex;align-items:baseline;gap:8px}
.ls-paper-title small{font-weight:500;font-size:11px;color:var(--ink-2)}
.paper{margin:0 16px;background:#fffdf6;border-radius:14px;padding:16px 14px;display:flex;flex-wrap:wrap;gap:12px;
  justify-content:center;box-shadow:0 2px 10px rgba(0,0,0,.04);border:1px solid #f3ead2}
.tianzi{width:62px;height:62px;position:relative;border:1.5px solid #e2b06a;border-radius:4px;
  display:grid;place-items:center;font-size:34px;color:#caa46a;background:#fffefb}
.tianzi.ink{color:#3a342a;font-weight:600}
.tianzi::before,.tianzi::after{content:"";position:absolute;background-image:repeating-linear-gradient(to right,#e9c690 0 5px,transparent 5px 10px)}
.tianzi::before{left:0;right:0;top:50%;height:1px;transform:translateY(-.5px)}
.tianzi::after{top:0;bottom:0;left:50%;width:1px;transform:translateX(-.5px);
  background-image:repeating-linear-gradient(to bottom,#e9c690 0 5px,transparent 5px 10px)}

.ls-video{margin:18px 16px 0;background:#fff;border-radius:14px;padding:14px;display:flex;align-items:center;gap:12px;cursor:pointer;
  box-shadow:0 2px 10px rgba(0,0,0,.04)}
.lv-play{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,var(--cta),#ff8a3d);color:#fff;
  font-size:18px;display:grid;place-items:center;flex:none;box-shadow:0 4px 10px rgba(255,106,44,.35)}
.lv-text b{font-size:14px}
.lv-text small{font-size:11.5px;color:var(--ink-2);display:block;margin-top:3px}
.ls-tip{margin:14px 16px 0;background:var(--accent-soft2);border:1px dashed #ffd9a3;border-radius:12px;padding:12px 14px;
  font-size:12px;color:#9a7330;line-height:1.7}
.ls-foot{height:64px;flex-shrink:0;background:#fff;border-top:1px solid var(--line);display:flex;align-items:center;padding:0 16px;gap:12px}
.ls-foot-btn{flex:1;border:none;font-size:14.5px;font-weight:800;padding:12px;border-radius:999px;cursor:pointer;
  background:linear-gradient(135deg,var(--accent),var(--accent-d));color:#fff;box-shadow:0 4px 12px rgba(245,121,10,.35)}
.ls-foot-btn.ghost{background:#fff;color:var(--accent-d);border:1.5px solid var(--accent);box-shadow:none}

/* ---------- 课后作业广场 / 作业流 ---------- */
.hw-tabs,.mc-tabs{display:flex;gap:26px;padding:12px 16px 0;background:#fff;border-bottom:1px solid var(--line);flex-shrink:0}
.hw-tab,.mc-tab{font-size:15px;font-weight:700;color:var(--ink-2);padding-bottom:11px;position:relative;cursor:pointer}
.hw-tab.on,.mc-tab.on{color:var(--ink)}
.hw-tab.on::after,.mc-tab.on::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;border-radius:2px;background:var(--accent)}

.feed-list{padding:12px 16px}
.feed-list.compact{padding:0}
.feed{background:#fff;border-radius:14px;padding:14px;margin-bottom:12px;box-shadow:0 2px 10px rgba(0,0,0,.04);cursor:pointer}
.feed-task{display:flex;align-items:center;gap:8px;background:var(--accent-soft2);border-radius:9px;padding:8px 11px;margin-bottom:11px}
.feed-task .ft-ic{font-size:15px}
.feed-task .ft-t{font-size:12px;color:#9a7330;font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.feed-task .ft-go{font-size:11px;color:var(--accent-d);font-weight:700;flex:none}
.feed-user{display:flex;align-items:center;gap:9px}
.feed-ava{width:34px;height:34px;border-radius:50%;background:var(--accent-soft);display:grid;place-items:center;font-size:17px;flex:none}
.feed-name{font-weight:700;font-size:13.5px}
.feed-meta{font-size:11px;color:var(--ink-2);margin-top:2px}
.feed-rank{margin-left:auto;font-size:10.5px;font-weight:800;color:#fff;background:linear-gradient(135deg,#ffb12e,#ff8a1c);padding:3px 9px;border-radius:999px}
.feed-text{font-size:13px;color:#3a342a;line-height:1.75;margin:10px 0;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.feed-imgs{display:flex;gap:7px}
.feed-imgs span{width:74px;height:74px;border-radius:9px;display:grid;place-items:center;font-size:30px;flex:none}
.feed-comment{margin-top:11px;background:var(--gold-soft);border-radius:10px;padding:10px 12px;font-size:12px;color:#7a6a45;line-height:1.6}
.feed-comment b{color:var(--accent-d)}
.feed-foot{display:flex;align-items:center;gap:18px;margin-top:11px;padding-top:10px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-2)}
.feed-foot .ff{cursor:pointer}
.feed-foot .ff.on{color:var(--cta);font-weight:700}
.feed-foot .ff-flower{margin-left:auto;color:var(--cta);font-weight:700}

/* ---------- 作业详情 ---------- */
.hd-task{margin:14px 16px 0;background:#fff;border-radius:14px;padding:15px;box-shadow:0 2px 10px rgba(0,0,0,.04)}
.hd-task-top{display:flex;align-items:center;justify-content:space-between}
.hd-badge{font-size:10.5px;font-weight:800;color:#fff;background:var(--accent);padding:3px 9px;border-radius:7px}
.hd-learned{font-size:11.5px;color:var(--ink-2)}
.hd-title{font-weight:900;font-size:19px;margin-top:11px}
.hd-course{font-size:12px;color:var(--accent-d);margin-top:6px;font-weight:600}
.hd-req{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px}
.hd-req .req{font-size:11.5px;color:#7a6a45;background:var(--gold-soft);border-radius:8px;padding:6px 10px;font-weight:600}
.hd-sec{font-weight:900;font-size:15px;padding:18px 16px 8px;display:flex;align-items:baseline;gap:8px}
.hd-sec small{font-weight:500;font-size:11px;color:var(--ink-2)}
.hd-hint{margin:0 16px;background:#fff;border-radius:12px;padding:14px;font-size:13px;color:#5b5750;line-height:1.85;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.hd-hint li{margin-left:18px;margin-bottom:6px}
.hd-feed-wrap{padding:0 16px}
.hd-foot{height:64px;flex-shrink:0;background:#fff;border-top:1px solid var(--line);display:flex;align-items:center;padding:0 16px;gap:14px}
.hd-foot-l{font-size:13px;color:var(--ink-2);cursor:pointer}
.hd-foot-btn{margin-left:auto;background:linear-gradient(135deg,var(--cta),#ff8a3d);color:#fff;border:none;font-size:15px;font-weight:800;
  padding:12px 30px;border-radius:999px;cursor:pointer;box-shadow:0 5px 14px rgba(255,106,44,.45)}

/* ---------- 我的课程（课程表） ---------- */
.schedule{padding:14px 16px}
.sch-day{font-weight:800;font-size:14px;margin:6px 0 10px;display:flex;align-items:center;gap:8px}
.sch-day .sd-date{font-size:11.5px;color:var(--ink-2);font-weight:500}
.sch-day .sd-today{font-size:10px;color:#fff;background:var(--cta);padding:1px 8px;border-radius:6px;font-weight:700}
.sch-card{background:#fff;border-radius:14px;padding:12px;margin-bottom:12px;display:flex;gap:11px;box-shadow:0 2px 10px rgba(0,0,0,.04);cursor:pointer}
.sch-cover{width:64px;height:64px;border-radius:11px;flex:none;display:grid;place-items:center;font-size:30px}
.sch-info{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}
.sch-title{font-weight:700;font-size:14.5px}
.sch-sub{font-size:11.5px;color:var(--ink-2);margin-top:5px}
.sch-btn{align-self:center;flex:none;font-size:12.5px;font-weight:700;padding:8px 15px;border-radius:999px;border:none;cursor:pointer}
.sch-btn.live{background:linear-gradient(135deg,var(--cta),#ff8a3d);color:#fff;box-shadow:0 4px 10px rgba(255,106,44,.35)}
.sch-btn.view{background:var(--accent-soft);color:var(--accent-d)}
.sch-btn.remind{background:#f1f3f4;color:#a7a39c}

/* ---------- 我的作业 ---------- */
.myhw-list{padding:14px 16px}
.myhw{background:#fff;border-radius:14px;padding:14px;margin-bottom:12px;box-shadow:0 2px 10px rgba(0,0,0,.04)}
.myhw-top{display:flex;align-items:center;justify-content:space-between}
.myhw-course{font-size:12px;color:var(--accent-d);font-weight:600}
.myhw-st{font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:999px}
.myhw-st.checked{color:var(--green);background:#eaf7ef}
.myhw-st.pending{color:var(--cta);background:#fff1e9}
.myhw-st.todo{color:var(--blue);background:#eaf3ff}
.myhw-title{font-weight:800;font-size:15px;margin-top:9px}
.myhw-text{font-size:12.5px;color:var(--ink-2);margin-top:7px;line-height:1.7;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.myhw-foot{display:flex;align-items:center;margin-top:11px;padding-top:10px;border-top:1px solid var(--line)}
.myhw-date{font-size:11px;color:var(--ink-2)}
.myhw-btn{margin-left:auto;font-size:12px;font-weight:700;padding:6px 14px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink-2);cursor:pointer}
.myhw-btn.primary{border-color:var(--accent);color:var(--accent-d)}

/* ---------- 打卡日历 ---------- */
.cal-card{margin:16px;background:#fff;border-radius:16px;padding:16px;box-shadow:0 3px 12px rgba(0,0,0,.05)}
.cal-streak{text-align:center;color:var(--cta);font-weight:900;font-size:15px}
.cal-streak b{font-size:34px}
.cal-streak small{display:block;font-size:11.5px;color:var(--ink-2);font-weight:500;margin-top:2px}
.cal-month{text-align:center;font-weight:800;font-size:14px;margin:12px 0 8px}
.cal-week{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:11px;color:var(--ink-2);margin-bottom:6px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-cell{aspect-ratio:1;display:grid;place-items:center;font-size:12px;color:var(--ink);border-radius:9px;position:relative}
.cal-cell.blank{visibility:hidden}
.cal-cell.done{background:var(--accent-soft);color:var(--accent-d);font-weight:700}
.cal-cell.done::after{content:"🌸";position:absolute;bottom:0px;font-size:8px}
.cal-cell.today{outline:2px solid var(--cta);outline-offset:-2px;font-weight:800}
.cal-cell.future{color:#cfccc6}
.cal-rewards{margin:0 16px}
.cr-title{font-weight:800;font-size:14px;margin-bottom:10px}
.cr-list{display:flex;flex-direction:column;gap:10px}
.cr-item{background:#fff;border-radius:12px;padding:12px 14px;display:flex;align-items:center;gap:12px;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.cr-ic{width:40px;height:40px;border-radius:11px;background:var(--gold-soft);display:grid;place-items:center;font-size:21px;flex:none}
.cr-info{flex:1;min-width:0}
.cr-name{font-weight:700;font-size:13.5px}
.cr-cond{font-size:11px;color:var(--ink-2);margin-top:3px}
.cr-btn{flex:none;font-size:11.5px;font-weight:700;padding:6px 13px;border-radius:999px;border:none;cursor:pointer;background:var(--accent-soft);color:var(--accent-d)}
.cr-btn.got{background:#f1f3f4;color:#a7a39c}
.cr-btn.lock{background:#f1f3f4;color:#bdb9b2}
.cal-checkin{display:block;width:calc(100% - 32px);margin:16px;background:linear-gradient(135deg,var(--cta),#ff8a3d);
  color:#fff;border:none;font-size:15.5px;font-weight:800;padding:14px;border-radius:999px;cursor:pointer;box-shadow:0 6px 16px rgba(255,106,44,.4)}
.cal-checkin.done{background:#eef0f1;color:#a7a39c;box-shadow:none}

/* ---------- 专属辅导老师 ---------- */
.tutor-card{margin:16px;background:linear-gradient(120deg,#fff3da,#fff8ec);border-radius:16px;padding:16px;display:flex;gap:14px;align-items:center;box-shadow:0 3px 12px rgba(224,169,58,.12)}
.tt-ava{width:60px;height:60px;border-radius:18px;background:#fff;display:grid;place-items:center;font-size:34px;flex:none;box-shadow:0 3px 8px rgba(0,0,0,.06)}
.tt-name{font-weight:900;font-size:17px;display:flex;align-items:center;gap:8px}
.tt-tag{font-size:10px;font-weight:700;color:var(--accent-d);background:#fff;padding:2px 8px;border-radius:6px}
.tt-sub{font-size:12px;color:#a87c34;margin-top:5px}
.tt-stars{font-size:11.5px;color:var(--cta);margin-top:5px;font-weight:600}
.tutor-acts{display:flex;gap:12px;margin:0 16px 4px}
.tutor-acts .ta{flex:1;background:#fff;border-radius:12px;padding:14px 0;text-align:center;font-size:12px;color:var(--ink-2);cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.tutor-acts .ta{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:21px}
.tutor-acts .ta span{font-size:12px;color:var(--ink)}
.chat{padding:0 16px}
.chat-row{display:flex;gap:9px;margin-bottom:14px}
.chat-row.me{flex-direction:row-reverse}
.chat-ava{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:18px;flex:none;background:var(--accent-soft)}
.chat-row.me .chat-ava{background:#dcefff}
.chat-bubble{max-width:74%;background:#fff;border-radius:4px 12px 12px 12px;padding:10px 13px;font-size:13px;line-height:1.7;color:#3a342a;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.chat-row.me .chat-bubble{background:linear-gradient(135deg,var(--accent),var(--accent-d));color:#fff;border-radius:12px 4px 12px 12px}
.tutor-foot{height:64px;flex-shrink:0;background:#fff;border-top:1px solid var(--line);display:flex;align-items:center;padding:0 14px;gap:10px}
.tutor-input{flex:1;border:none;background:var(--bg);border-radius:999px;padding:11px 16px;font-size:13px;outline:none}
.tutor-input::placeholder{color:#c4c0ba}
.tutor-send{flex:none;background:linear-gradient(135deg,var(--accent),var(--accent-d));color:#fff;border:none;font-size:14px;font-weight:700;padding:11px 18px;border-radius:999px;cursor:pointer}

/* ================= 弹窗 ================= */
.mask{position:absolute;inset:0;background:rgba(0,0,0,.45);z-index:60;display:none;align-items:flex-end}
.mask.center{align-items:center;justify-content:center}
.mask.show{display:flex;animation:fade .2s}
@keyframes fade{from{opacity:0}to{opacity:1}}
.sheet{width:100%;background:var(--bg);border-radius:20px 20px 0 0;max-height:88%;display:flex;flex-direction:column;
  animation:up .26s cubic-bezier(.3,1,.4,1);position:relative}
.sheet.short{max-height:62%}
@keyframes up{from{transform:translateY(100%)}to{transform:none}}
.sheet-close{position:absolute;top:14px;right:16px;width:26px;height:26px;border-radius:50%;
  background:#e8eaec;display:grid;place-items:center;color:#9a9690;font-size:13px;cursor:pointer;z-index:3}
.sheet-title{text-align:center;font-weight:900;font-size:16px;padding:16px 0 12px;background:#fff;border-radius:20px 20px 0 0}
.sheet-body{padding:14px 16px;overflow-y:auto}
.sheet-foot{padding:12px 16px;border-top:1px solid var(--line);display:flex;align-items:center;gap:12px;background:#fff}
.sf-total{flex:1;font-size:13px;color:var(--ink-2)}
.sf-total b{color:var(--cta);font-size:20px;font-weight:900;margin-left:4px}
.sf-btn{background:linear-gradient(135deg,var(--cta),#ff8a3d);color:#fff;border:none;font-size:15px;font-weight:800;
  padding:13px 30px;border-radius:999px;cursor:pointer;box-shadow:0 6px 16px rgba(255,106,44,.4)}
.sf-btn.full{width:100%}
.en-sec{font-weight:800;font-size:13.5px;margin:16px 0 10px;display:flex;align-items:baseline;gap:8px}
.en-sec small{font-weight:500;font-size:11px;color:var(--ink-2)}

/* 报名弹窗 */
.en-course{background:#fff;border-radius:12px;padding:12px;display:flex;gap:11px;align-items:center}
.en-course .ic{width:54px;height:54px;border-radius:11px;display:grid;place-items:center;font-size:28px;flex:none}
.en-course .nm{font-weight:800;font-size:14.5px;line-height:1.35}
.en-course .pr{color:var(--cta);font-weight:900;font-size:16px;margin-top:6px}
.en-course .pr small{font-size:11px}
.en-course .pr .old{font-size:11px;color:#c7c3bc;text-decoration:line-through;font-weight:400;margin-left:5px}
.en-kids{display:flex;gap:10px}
.en-kid{flex:1;background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:12px;text-align:center;cursor:pointer;transition:.18s}
.en-kid.on{border-color:var(--accent);background:var(--accent-soft)}
.en-kid .ek-ava{font-size:26px}
.en-kid .ek-name{font-size:13px;font-weight:700;margin-top:5px}
.en-kid .ek-grade{font-size:11px;color:var(--ink-2);margin-top:2px}
.en-coupon{background:#fff;border-radius:12px;padding:13px 14px;font-size:13px;display:flex;align-items:center;gap:6px;font-weight:600}
.en-coupon em{color:var(--cta);font-style:normal;font-weight:800}
.en-coupon i{margin-left:auto;font-style:normal;font-size:11px;color:var(--green)}
.en-pays{display:flex;flex-direction:column;gap:10px}
.en-pay{background:#fff;border-radius:12px;padding:13px 14px;display:flex;align-items:center;gap:11px;cursor:pointer;border:1.5px solid transparent}
.en-pay.on{border-color:var(--accent)}
.en-pay .ep-ic{font-size:22px}
.en-pay b{font-size:13.5px;font-weight:600;flex:1}
.en-pay .ep-radio{color:var(--accent);font-size:16px}
.en-pay:not(.on) .ep-radio{color:#d3d8d9}

/* 上交作业弹窗 */
.su-task{background:var(--accent-soft2);border-radius:12px;padding:12px 14px;font-size:13px;color:#7a6a45;line-height:1.6}
.su-task b{color:var(--ink);font-weight:800;display:block;font-size:14px;margin-bottom:4px}
.su-text{width:100%;border:none;background:#fff;border-radius:12px;padding:14px;font-size:13.5px;min-height:120px;resize:none;outline:none;line-height:1.8;font-family:inherit}
.su-text::placeholder{color:#c4c0ba}
.su-imgs{display:flex;gap:10px;flex-wrap:wrap}
.su-img-add{width:74px;height:74px;border:1.5px dashed #d8cbb0;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--ink-2);font-size:24px;background:#fff;cursor:pointer}
.su-img-add small{font-size:10px;margin-top:2px}
.su-img{width:74px;height:74px;border-radius:12px;display:grid;place-items:center;font-size:32px;position:relative}
.su-img .rm{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;font-size:11px;display:grid;place-items:center;cursor:pointer}
.su-voice{margin-top:14px;background:#fff;border-radius:12px;padding:13px 14px;font-size:13px;color:var(--ink-2);text-align:center;cursor:pointer}

/* 我的礼包 */
.gift-list{display:flex;flex-direction:column;gap:11px}
.gift{display:flex;align-items:center;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.gift-l{width:96px;background:linear-gradient(135deg,#ffd98a,#ff9d12);color:#fff;text-align:center;padding:16px 0;position:relative;flex:none}
.gift-l::after{content:"";position:absolute;right:-6px;top:50%;transform:translateY(-50%);width:12px;height:12px;border-radius:50%;background:#fff}
.gift-l .amt{font-size:26px;font-weight:900}
.gift-l .amt small{font-size:13px}
.gift-l .cond{font-size:10px;margin-top:2px;opacity:.95}
.gift-r{flex:1;padding:0 14px;display:flex;align-items:center;justify-content:space-between}
.gift-r .name{font-size:13.5px;font-weight:700}
.gift-r .desc{font-size:11px;color:var(--ink-2);margin-top:3px}
.gift-get{background:linear-gradient(135deg,var(--cta),#ff8a3d);color:#fff;border:none;font-size:12px;font-weight:800;padding:7px 15px;border-radius:999px;cursor:pointer;flex:none}
.gift-get.got{background:#f1f3f4;color:#a7a39c}

/* 老师点评 */
.cm-teacher{display:flex;align-items:center;gap:8px;font-size:14px}
.cm-teacher b{font-weight:800}
.cm-score{margin-left:auto;font-size:12px;font-weight:800;color:#fff;background:var(--green);padding:3px 11px;border-radius:999px}
.cm-stars{color:#ffb12e;font-size:22px;letter-spacing:2px;margin:12px 0 4px}
.cm-text{background:#fff;border-radius:12px;padding:14px;font-size:13px;color:#3a342a;line-height:1.85;margin-top:8px;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.cm-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.cm-tags .tg{font-size:11.5px;color:var(--accent-d);background:var(--accent-soft);padding:5px 11px;border-radius:8px;font-weight:600}
.cm-reward{margin-top:14px;background:var(--gold-soft);border-radius:10px;padding:12px;text-align:center;font-size:13px;color:#7a6a45}
.cm-reward b{color:var(--cta);font-size:16px}

/* 选择 picker */
.pick-list{padding:6px 16px 24px;overflow-y:auto;background:#fff}
.pick-item{padding:14px 4px;font-size:14px;border-bottom:1px solid var(--line);cursor:pointer;display:flex;justify-content:space-between;align-items:center}
.pick-item:last-child{border-bottom:none}
.pick-item.on{color:var(--accent-d);font-weight:700}
.pick-item.on::after{content:"✓"}

/* 成功弹窗 */
.done-card{width:300px;background:#fff;border-radius:18px;padding:26px 22px;text-align:center}
.done-ico{width:60px;height:60px;border-radius:50%;background:var(--accent-soft);color:var(--accent-d);display:grid;place-items:center;font-size:30px;margin:0 auto 14px}
.done-title{font-weight:900;font-size:19px}
.done-code{margin:14px 0;padding:12px;border-radius:12px;background:var(--accent-soft)}
.done-code span{font-size:12px;color:var(--accent-d)}
.done-code b{display:block;font-size:23px;font-weight:900;color:var(--accent-d);letter-spacing:3px;margin-top:2px}
.done-detail{font-size:12.5px;color:var(--ink-2);line-height:1.9;text-align:left;background:#faf9f7;border-radius:10px;padding:12px 14px}
.done-detail b{color:var(--ink);font-weight:600}
.done-btn{margin-top:16px;width:100%;background:linear-gradient(135deg,var(--accent),var(--accent-d));color:#fff;border:none;font-size:15px;font-weight:800;padding:12px;border-radius:999px;cursor:pointer}

/* Toast */
.toast{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.9);
  background:rgba(0,0,0,.8);color:#fff;font-size:13px;padding:10px 18px;border-radius:10px;
  z-index:90;opacity:0;pointer-events:none;transition:.2s;white-space:nowrap;max-width:80%;text-align:center}
.toast.show{opacity:1;transform:translate(-50%,-50%) scale(1)}

@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition:none!important}}
