/* ================================================================
   星宝教学工坊 · 设计令牌（S1 UI 基线）
   原则：低刺激（暖中性底色/降饱和色）· 结构可预期（同骨架）· 打印优先 · 不评判家长（红仅用于安全警示）
   ================================================================ */
:root{
  /* 字号：全部由 --fscale 缩放，顶部 A- / A / A+ 三档调（祖辈可放大到 1.3 倍） */
  --fscale:1;
  --fs-xs:calc(13px*var(--fscale)); --fs-s:calc(14.5px*var(--fscale));
  --fs-m:calc(15.5px*var(--fscale)); --fs-b:calc(16.5px*var(--fscale));
  --fs-l:calc(19px*var(--fscale)); --fs-xl:calc(22px*var(--fscale));
  --fs-h1:calc(32px*var(--fscale)); --fs-hero:calc(26px*var(--fscale));
  --btn-h:calc(56px*var(--fscale));
  --bg:#FAF7F1; --panel:#FFFFFF; --panel-warm:#FFF8F1; --panel-sand:#FDFCF7;
  --ink:#3E3A33; --ink2:#7A6F5F; --ink3:#B0A68F; --line:#E5DFD2; --line-soft:#F1ECE0;
  --warm:#E8A87C; --warm-d:#C97B4A; --warm-soft:#FDF1E4;
  --green:#3AA657; --green-soft:#EAF4EC;
  --blue:#3E6B8F; --blue-soft:#E7F0FA;
  --gold:#E8C46B; --gold-soft:#FFFDF4;
  --red:#C4534A; --red-soft:#FDF6F4;          /* 仅用于安全警示，不用于家长自评/进度 */
  /* 间距 / 圆角 / 动效 */
  --sp-1:6px; --sp-2:10px; --sp-3:16px; --sp-4:22px; --sp-5:34px;
  --r-s:10px; --r-m:14px; --r-l:18px;
  --dur:.15s;
  --shadow:0 1px 4px rgba(90,80,60,.05);
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--ink);font-family:"Microsoft YaHei","PingFang SC",sans-serif;
     font-size:var(--fs-b);line-height:1.8;min-height:100vh}
.hidden{display:none!important}
:focus-visible{outline:3px solid var(--warm-d);outline-offset:2px;border-radius:4px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:8px;background:#fff;padding:8px 14px;border-radius:8px;z-index:9}

/* ---------- header ---------- */
header{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:18px 22px 10px;max-width:1060px;margin:0 auto}
.brand{font-size:var(--fs-xl);font-weight:800;color:var(--warm-d);letter-spacing:.5px}
.brand-sub{font-size:var(--fs-xs);color:var(--ink3)}
#profile-bar{margin-left:auto;display:flex;gap:8px;align-items:center;font-size:var(--fs-s);flex-wrap:wrap}
#profile-bar select{padding:6px 10px;border-radius:var(--r-s);border:1.5px solid var(--line);background:#fff;font-size:var(--fs-s)}
#profile-bar button{padding:6px 14px}

/* ---------- 主流程条 ---------- */
#steps{display:flex;align-items:center;justify-content:center;padding:8px 12px 6px;gap:2px;flex-wrap:wrap;max-width:1060px;margin:0 auto}
.step-dot{display:flex;flex-direction:column;align-items:center;cursor:pointer;min-width:70px}
.step-dot .dot{width:16px;height:16px;border-radius:50%;border:3px solid var(--ink3);background:#fff;transition:var(--dur)}
.step-dot.done .dot{background:var(--green);border-color:var(--green)}
.step-dot.active .dot{background:var(--warm);border-color:var(--warm-d);box-shadow:0 0 0 5px rgba(232,168,124,.25)}
.step-dot label{font-size:var(--fs-xs);margin-top:5px;color:var(--ink2);cursor:pointer;white-space:nowrap}
.step-dot.active label{color:var(--warm-d);font-weight:700}
#steps .line{width:32px;height:3px;background:var(--line);border-radius:2px;margin-bottom:18px}
@media(max-width:680px){.step-dot label{font-size:10px}.step-dot{min-width:50px}#steps .line{width:12px}}

/* ---------- 二级导航（执行与追踪） ---------- */
#subnav{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;
        padding:6px 12px 16px;max-width:1060px;margin:0 auto}
#subnav .sn-label{font-size:var(--fs-xs);color:var(--ink3)}
#subnav .sn{background:#fff;color:var(--ink2);border:1.5px solid var(--line);border-radius:999px;
            font-size:var(--fs-xs);font-weight:500;padding:6px 14px}
#subnav .sn:hover{border-color:var(--warm);color:var(--warm-d)}
#subnav .sn.on{background:var(--warm);border-color:var(--warm-d);color:#fff;font-weight:700}

main{max-width:1060px;margin:0 auto;padding:0 16px 60px}
footer{max-width:1060px;margin:0 auto;padding:26px 16px 40px;border-top:1px solid var(--line-soft)}
.foot-line{font-size:var(--fs-xs);color:var(--ink3);line-height:1.8;margin:0 0 6px}
.foot-line b{color:var(--ink2)}
.foot-sign{text-align:center;margin-top:14px}

button{cursor:pointer;border:none;border-radius:var(--r-s);font-size:var(--fs-m);padding:11px 22px;
       background:var(--warm);color:#fff;font-weight:700;transition:filter var(--dur)}
button:hover{filter:brightness(1.04)}
button.ghost{background:#fff;color:var(--ink2);border:1.5px solid var(--line);font-weight:500}
button.primary{background:var(--green)}
button.danger{background:#fff;color:var(--red);border:1.5px solid var(--red)}
button:disabled{opacity:.45;cursor:not-allowed}

.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-m);padding:var(--sp-4);
      margin-bottom:var(--sp-3);box-shadow:var(--shadow)}
.card h2{font-size:var(--fs-l);margin-bottom:12px}
.card h2 .en{font-size:var(--fs-xs);color:var(--ink3);font-weight:400;margin-left:8px}

/* ================= 主页（P0） ================= */
.hero{text-align:center;padding:30px 10px 8px}
.hero h1{font-size:clamp(21px,5.4vw,32px);line-height:1.45;margin-bottom:10px;letter-spacing:.4px;
         word-break:keep-all;overflow-wrap:break-word}
.hero .hero-tag{font-size:clamp(16px,4.3vw,24px);font-weight:800;color:var(--warm-d);
                line-height:1.5;margin-bottom:16px;word-break:keep-all}
.hero .lead{font-size:clamp(15px,3.5vw,19px);color:var(--ink2);margin-bottom:8px}
.hero .lead-sub{font-size:var(--fs-s);color:var(--ink3);margin-bottom:22px}

/* 四条卖点（图标卡） */
.grid4.vals{max-width:920px;margin:0 auto}
.v-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-m);padding:18px;box-shadow:var(--shadow)}
.v-card .v-ico{display:flex;width:42px;height:42px;border-radius:13px;background:var(--warm-soft);
               color:var(--warm-d);align-items:center;justify-content:center;margin-bottom:10px}
.v-card b{display:block;font-size:var(--fs-m);margin-bottom:4px}
.v-card span{font-size:var(--fs-s);color:var(--ink2);line-height:1.7}

/* 给谁用一行条 */
.who-strip{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin:20px 0 4px}
.who-strip span{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--line);
                border-radius:999px;padding:8px 16px;font-size:var(--fs-s);color:var(--ink2)}
.who-strip span .ic{color:var(--warm-d)}
.who-strip em{font-style:normal;font-size:var(--fs-xs);color:var(--ink3);width:100%;text-align:center}
.sample .s .thumb .ic{color:var(--warm-d)}

/* 顶部条 / 登录 / 图标小件 */
#profile-bar .who{font-weight:700;color:var(--ink)}
.tipbox{background:var(--gold-soft);border-left:4px solid var(--gold);border-radius:0 var(--r-s) var(--r-s) 0;padding:12px 16px}
.tipbox b{display:block;margin-bottom:3px}
.tipbox p{font-size:var(--fs-s);color:var(--ink2);margin:0}
.dotmark{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;vertical-align:1px}
.dotmark.hot{background:var(--red)}.dotmark.warm{background:var(--gold)}
.ic{flex:none;vertical-align:-3px}
.card h2 .ic,.col h3 .ic,.story .ic{color:var(--warm-d);margin-right:5px}
#profile-bar .ic{color:var(--warm-d)}
.login-card{max-width:520px;margin:20px auto}

/* ============ 祖辈友好层：大字、大按钮、一步步来 ============ */
html[data-fs="l"]{--fscale:1.15}
html[data-fs="xl"]{--fscale:1.3}

.fs-ctl{display:flex;align-items:center;gap:4px}
.fs-ctl button{width:38px;height:38px;padding:0;border-radius:9px;background:#fff;color:var(--ink2);
               border:1.5px solid var(--line);font-weight:800;font-size:13px}
.fs-ctl button.on{background:var(--warm);color:#fff;border-color:var(--warm-d)}
.fs-ctl .lbl{font-size:11px;color:var(--ink3);margin-right:2px}

/* 现在要做的 */
.guide{display:flex;align-items:center;gap:12px;background:#FFF6E8;border:2px solid var(--gold);
       border-radius:var(--r-m);padding:14px 16px;margin-bottom:14px;flex-wrap:wrap}
.guide .gi{width:34px;height:34px;border-radius:50%;background:var(--warm);color:#fff;font-weight:800;
           display:flex;align-items:center;justify-content:center;font-size:16px;flex:none}
.guide .gt{flex:1;min-width:200px;font-size:calc(17px*var(--fscale));font-weight:700;line-height:1.6}
.guide .gt small{display:block;font-weight:400;color:var(--ink2);font-size:var(--fs-s);margin-top:2px}

button.big{width:100%;height:var(--btn-h);font-size:calc(18px*var(--fscale));border-radius:var(--r-m);margin-top:4px;color:#fff}
button.big.small-h{height:calc(48px*var(--fscale));font-size:calc(16px*var(--fscale))}
.btn-row{display:flex;flex-direction:column;gap:12px;margin-top:16px}
.speak{background:#fff;color:var(--warm-d);border:1.5px solid var(--warm);border-radius:999px;
       font-size:var(--fs-s);padding:9px 16px;display:inline-flex;align-items:center;gap:6px;font-weight:700}

.code-big{font-size:calc(40px*var(--fscale));font-weight:800;letter-spacing:.22em;color:var(--warm-d);
          background:#fff;border:3px dashed var(--warm);border-radius:var(--r-m);padding:14px 18px;
          text-align:center;margin:14px 0}
.big-input{width:100%;height:calc(62px*var(--fscale));font-size:calc(26px*var(--fscale));font-weight:800;
           letter-spacing:.18em;text-align:center;border:3px solid var(--line);border-radius:var(--r-m);background:#fff}
.big-input:focus{border-color:var(--warm);outline:none}
.step-line{display:flex;align-items:center;gap:10px;font-size:var(--fs-s);color:var(--ink2);margin-bottom:10px}
.step-line .n{width:26px;height:26px;border-radius:50%;background:var(--green);color:#fff;font-weight:800;
              display:flex;align-items:center;justify-content:center;font-size:14px;flex:none}
.step-line.dim .n{background:var(--line);color:var(--ink3)}
.id-pills{display:flex;flex-wrap:wrap;gap:10px}
.id-pills .p{padding:12px 18px;border:2px solid var(--line);border-radius:999px;background:#fff;cursor:pointer;
             font-size:calc(16px*var(--fscale));font-weight:700}
.id-pills .p.on{background:var(--warm);border-color:var(--warm-d);color:#fff}

/* 怎么用（浮层） */
.overlay{position:fixed;inset:0;background:rgba(62,58,51,.55);display:flex;align-items:center;
         justify-content:center;padding:16px;z-index:50}
.sheet{background:#fff;border-radius:var(--r-l);max-width:560px;width:100%;max-height:88vh;overflow:auto;padding:24px}
.sheet h2{font-size:calc(21px*var(--fscale));margin-bottom:14px}
.sheet .s-row{display:flex;gap:14px;align-items:flex-start;margin-bottom:18px}
.sheet .s-row .num{width:38px;height:38px;border-radius:50%;background:var(--warm);color:#fff;font-weight:800;
                   display:flex;align-items:center;justify-content:center;font-size:18px;flex:none}
.sheet .s-row b{display:block;font-size:calc(17px*var(--fscale));margin-bottom:3px}
.sheet .s-row span{font-size:var(--fs-s);color:var(--ink2)}
.hero .lead2{font-size:var(--fs-m);color:var(--warm-d);font-weight:700;margin-bottom:22px}
.hero .gain{display:inline-block;text-align:left;background:var(--panel);border:1px solid var(--line);
            border-radius:var(--r-m);padding:18px 24px;box-shadow:var(--shadow);margin-bottom:24px}
.hero .gain p{font-size:var(--fs-m);margin:6px 0;color:var(--ink2)}
.hero .gain p b{color:var(--ink)}
.hero .gain .who{font-size:var(--fs-s);color:var(--ink3);border-top:1px dashed var(--line);padding-top:10px;margin-top:12px}
.home-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* ================= 管理后台（发号） ================= */
.adm-form{display:grid;gap:12px;margin-top:12px}
.adm-form label{display:block;font-size:var(--fs-s);font-weight:700}
.adm-form .hint{display:block;font-weight:400;margin:2px 0 6px}
.adm-in{width:100%;height:48px;padding:0 14px;border:1.5px solid var(--line);border-radius:var(--r-s);
        font-size:var(--fs-m);background:#FDFCF9}
.adm-in:focus{outline:none;border-color:var(--warm)}
.adm-list{margin-top:6px}
.adm-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;
         border-bottom:1px solid var(--line-soft);padding:12px 0}
.adm-row:last-child{border-bottom:0}
.adm-main{flex:1;min-width:200px}
.adm-name{font-size:var(--fs-m);font-weight:700;word-break:break-all}
.adm-alias{font-weight:400;color:var(--ink2)}
.adm-sub{font-size:var(--fs-xs);color:var(--ink3);margin-top:3px}
.adm-ops{display:flex;gap:6px;flex-wrap:wrap}
.adm-ops button{font-size:var(--fs-xs);padding:7px 12px}
.adm-ops button.danger{color:var(--red);border-color:var(--red)}
.tag{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;
     background:var(--warm-soft);color:var(--warm-d);vertical-align:2px;margin-left:4px}
.tag.off{background:var(--red-soft);color:var(--red)}
.tag.me{background:var(--green-soft);color:var(--green)}
.cred{margin-top:16px;background:var(--gold-soft);border:2px solid var(--gold);border-radius:var(--r-m);padding:16px}
.cred-t{font-size:var(--fs-s);font-weight:700;color:var(--warm-d);margin-bottom:10px}
.cred-row{display:flex;gap:10px;align-items:baseline;margin:6px 0;font-size:var(--fs-s)}
.cred-row span{color:var(--ink3);width:38px;flex:none}
.cred-row b{font-size:calc(20px*var(--fscale));letter-spacing:.04em;word-break:break-all;
            font-family:ui-monospace,Consolas,monospace}
.cred-pre{white-space:pre-wrap;font-size:var(--fs-xs);background:#fff;border:1px solid var(--line);
          border-radius:var(--r-s);padding:12px;margin-top:8px;font-family:inherit;line-height:1.7}

.flowline{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px;margin:26px 0 6px}
.flowline .node{background:#fff;border:2px solid var(--warm);border-radius:var(--r-s);padding:8px 13px;
                font-size:var(--fs-s);font-weight:700;line-height:1.35;text-align:center}
.flowline .node small{display:block;font-size:10.5px;color:var(--ink3);font-weight:400}
.flowline .arrow{color:var(--warm-d);font-weight:800}
.flowline .arrow.loop{color:var(--green)}

.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.who-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-m);padding:18px;box-shadow:var(--shadow)}
.who-card .ico{font-size:22px}
.who-card h3{font-size:var(--fs-m);margin:6px 0 8px;color:var(--warm-d)}
.who-card p{font-size:var(--fs-s);color:var(--ink2)}

.qa{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}
.qa .row{background:var(--panel-sand);border:1px solid var(--line-soft);border-radius:var(--r-s);padding:14px 16px}
.qa .q{font-size:var(--fs-m);font-weight:800;margin-bottom:6px}
.qa .a{font-size:var(--fs-s);color:var(--ink2)}

.sample{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.sample .s{background:#fff;border:1.5px solid var(--line);border-radius:var(--r-m);padding:14px;text-align:center}
.sample .s .thumb{height:96px;border:1px solid var(--line-soft);border-radius:var(--r-s);background:var(--gold-soft);
                  display:flex;align-items:center;justify-content:center;font-size:34px;font-weight:800;color:var(--warm-d);margin-bottom:10px}
.sample .s .nm{font-size:var(--fs-s);font-weight:800;margin-bottom:8px}
.sample .s button{font-size:var(--fs-xs);padding:7px 0;width:100%}

.steps3{counter-reset:s3;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.steps3 .s3{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-m);padding:16px 18px;position:relative}
.steps3 .s3::before{counter-increment:s3;content:counter(s3);position:absolute;top:-13px;left:16px;
                    width:26px;height:26px;border-radius:50%;background:var(--warm);color:#fff;
                    font-size:var(--fs-s);font-weight:800;display:flex;align-items:center;justify-content:center}
.steps3 .s3 b{display:block;margin:6px 0 6px;font-size:var(--fs-m)}
.steps3 .s3 span{font-size:var(--fs-s);color:var(--ink2)}

.boundary{background:var(--red-soft);border-left:4px solid var(--red);border-radius:0 var(--r-s) var(--r-s) 0;
          padding:14px 18px;margin-top:6px}
.boundary b{color:var(--red)}
.boundary p{font-size:var(--fs-s);color:var(--ink2);margin:4px 0}
.privacy{background:var(--green-soft);border-left:4px solid var(--green);border-radius:0 var(--r-s) var(--r-s) 0;
         padding:14px 18px;margin-top:10px}
.privacy b{color:var(--green)}
.privacy p{font-size:var(--fs-s);color:var(--ink2);margin:4px 0}

.profile-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.pcard{background:#fff;border:1.5px solid var(--line);border-radius:var(--r-m);padding:16px;cursor:pointer;transition:var(--dur)}
.pcard:hover{border-color:var(--warm);transform:translateY(-2px)}
.pcard b{font-size:var(--fs-l)}
.pcard .meta{font-size:var(--fs-xs);color:var(--ink3);margin-top:6px}

/* ================= 问卷 ================= */
.q-sec h3{font-size:var(--fs-m);color:var(--warm-d);margin:14px 0 10px;padding-left:10px;border-left:4px solid var(--warm)}
.field{margin-bottom:14px}
.field>label{display:block;font-size:var(--fs-s);font-weight:700;margin-bottom:7px}
.field input[type=text],.field input[type=date],.field textarea{
  width:100%;padding:10px 12px;border:1.5px solid var(--line);border-radius:var(--r-s);font-size:var(--fs-m);background:#FDFCF9}
.field textarea{min-height:64px;resize:vertical}
.opts{display:flex;gap:10px;flex-wrap:wrap}
.opts .o{padding:9px 16px;border:1.5px solid var(--line);border-radius:999px;font-size:var(--fs-s);cursor:pointer;
         background:#fff;user-select:none;transition:var(--dur)}
.opts .o:hover{border-color:var(--warm)}
.opts .o.on{background:var(--warm);border-color:var(--warm-d);color:#fff;font-weight:700}
.hint{font-size:var(--fs-xs);color:var(--ink3);margin-top:5px}
.o.skipopt{border-style:dashed;color:var(--ink3)}
.o.skipopt.on{background:var(--ink3);border-color:var(--ink3);color:#fff}
.q-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.birth-row{display:flex;gap:8px}
.birth-row select{flex:1;padding:12px 8px;font-size:calc(16px*var(--fscale));font-weight:700;border-radius:var(--r-s);
                  border:1.5px solid var(--line);background:#fff;color:var(--ink);text-align:center}
.birth-row select:focus{border-color:var(--warm);outline:none}
.q-nav{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:18px}
.pager{font-size:var(--fs-xs);color:var(--ink3)}

/* ================= 画像 ================= */
.radar-wrap{display:flex;gap:24px;flex-wrap:wrap;align-items:flex-start}
.radar-box{flex:0 0 320px;text-align:center}
.dim-list{flex:1;min-width:280px}
.dim{margin-bottom:13px}
.dim .t{display:flex;justify-content:space-between;font-size:var(--fs-s);margin-bottom:4px}
.dim .t b{font-size:var(--fs-m)}
.dim .bar{height:9px;background:var(--line-soft);border-radius:5px;overflow:hidden}
.dim .bar i{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,var(--gold),var(--warm-d))}
.dim .base{font-size:var(--fs-xs);color:var(--ink2);margin-top:3px}
.dim .goal{font-size:var(--fs-xs);color:var(--green);margin-top:2px}
.notes .note{border-left:4px solid var(--red);background:var(--red-soft);border-radius:0 var(--r-s) var(--r-s) 0;
             padding:10px 14px;margin-bottom:10px}
.notes .note.mid{border-color:var(--gold);background:var(--gold-soft)}
.notes .note b{display:block;margin-bottom:3px}
.notes .note p{font-size:var(--fs-s);color:var(--ink2)}
.radar-note{font-size:var(--fs-xs);color:var(--ink3);margin-top:6px}

/* ================= 规划 ================= */
.stage-head{display:flex;align-items:center;gap:10px;margin:20px 0 10px;flex-wrap:wrap}
.stage-head .pill{background:var(--warm);color:#fff;font-weight:800;border-radius:999px;padding:4px 14px;font-size:var(--fs-s)}
.stage-head .nm{font-weight:800;font-size:var(--fs-m)}
.stage-head .gl{font-size:var(--fs-xs);color:var(--ink3)}
.week-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.wk{background:#fff;border:1.5px solid var(--line);border-radius:var(--r-m);padding:14px;position:relative}
.wk.test{border-color:var(--gold);background:var(--gold-soft)}
.wk .no{font-size:var(--fs-xs);color:var(--ink3)}
.wk h4{font-size:var(--fs-m);margin:3px 0 8px}
.wk .row{font-size:var(--fs-xs);color:var(--ink2);margin:3px 0;line-height:1.6}
.wk .row b{color:var(--ink)}
.wk .story{font-size:var(--fs-xs);color:var(--warm-d);margin-top:6px}
.wk .badge{position:absolute;top:10px;right:10px;background:var(--gold);color:#6B4F00;
           font-size:11px;font-weight:800;padding:2px 9px;border-radius:999px}
.rules li{font-size:var(--fs-s);color:var(--ink2);margin:7px 0 7px 18px}
.rules li b{color:var(--ink)}

/* ================= 教材 ================= */
.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.book{display:flex;flex-direction:column;gap:6px}
.book .head{font-weight:800;font-size:var(--fs-s);display:flex;justify-content:space-between;align-items:center}
.book .head .wk-tag{background:var(--green);color:#fff;font-size:11.5px;border-radius:999px;padding:2px 10px}
.book button{font-size:var(--fs-xs);padding:7px 0}
.book-row{display:flex;align-items:center;gap:6px}
.book-row .bn{flex:1;font-size:var(--fs-s);font-weight:700;color:var(--ink)}
.book-row button{flex:0 0 auto;padding:8px 10px;font-size:var(--fs-xs)}
.book .pack{margin-top:6px;background:var(--green-soft);border-color:var(--green);color:#1E7A46;font-weight:700}
.sample .s button.ghost{width:100%}
.handbook-card{background:linear-gradient(135deg,#FFF7EC,#FDF1E4);border-color:var(--warm)}
.parent-card{background:linear-gradient(135deg,#FFF8F1,#FDF4EA);border-color:var(--warm-d)}

/* ================= 养育者区块（你自己的情况） ================= */
.care-card{background:linear-gradient(135deg,#FFF8F1,#FFFDF8);border-color:var(--warm)}
.tier-box{margin-top:14px;background:#fff;border:1.5px solid var(--line);border-radius:var(--r-m);padding:14px}
.tier-title{font-size:var(--fs-m);margin-bottom:6px}
.tier-title b{color:var(--warm-d)}
.tier-why{font-size:var(--fs-s);color:var(--ink2);margin-bottom:10px}
.tiers{display:flex;gap:10px;flex-wrap:wrap}
.tiers .tier{flex:1;min-width:150px;border:2px solid var(--line);border-radius:var(--r-s);padding:10px 12px;
             cursor:pointer;background:#fff}
.tiers .tier b{display:block;font-size:var(--fs-s)}
.tiers .tier span{font-size:var(--fs-xs);color:var(--ink2)}
.tiers .tier.on{border-color:var(--green);background:var(--green-soft)}
.tier-card{background:linear-gradient(135deg,#F2F8F3,#FDFEFC);border-color:var(--green)}
.tier-strip{display:flex;gap:10px;flex-wrap:wrap}
.tier-strip .ts{flex:1;min-width:104px;background:#fff;border:1px solid var(--line);border-radius:var(--r-s);
                padding:12px;text-align:center}
.tier-strip .ts b{display:block;font-size:calc(26px*var(--fscale));color:var(--green);line-height:1.25}
.tier-strip .ts span{font-size:var(--fs-xs);color:var(--ink2)}
.wk .care-row{border-top:1px dashed var(--line);padding-top:5px;margin-top:5px}
.wk .care-row b{color:var(--warm-d)}

/* ================= 结果页：起点清单（不给分数） ================= */
.gate-card{background:linear-gradient(135deg,#FFF8F1,#FFFDF8);border-color:var(--warm)}
.gate-list{margin:10px 0 14px 22px}
.gate-list li{font-size:var(--fs-m);font-weight:700;margin:7px 0}
.start-list{display:flex;flex-direction:column;gap:12px}
.start-row{display:flex;gap:14px;align-items:flex-start;background:var(--panel-sand);
           border:1px solid var(--line-soft);border-radius:var(--r-s);padding:12px 14px;flex-wrap:wrap}
.start-row .sr-name{flex:0 0 74px;font-weight:800;font-size:var(--fs-m)}
.start-row .sr-mid{flex:1 1 240px;min-width:200px}
.sr-label{display:inline-block;background:var(--warm-soft);color:var(--warm-d);font-weight:800;
          border-radius:999px;padding:2px 12px;font-size:var(--fs-s)}
.sr-flag{display:inline-block;margin-left:8px;font-size:var(--fs-xs);color:var(--red);
         background:var(--red-soft);border-radius:999px;padding:2px 10px}
.sr-base{font-size:var(--fs-s);color:var(--ink2);margin-top:5px}
.start-row .sr-next{flex:1 1 220px;min-width:200px;font-size:var(--fs-s);color:var(--green);
                    border-left:2px dashed var(--line);padding-left:12px}
.out-mode{margin-top:14px;font-size:var(--fs-s);color:var(--ink2);background:#fff;
          border:1px dashed var(--warm);border-radius:var(--r-s);padding:10px 14px}
.out-mode .ic{color:var(--warm-d);margin-right:6px}
/* 养育者四维（定性，不给分） */
.care-list{display:flex;flex-direction:column;gap:10px}
.care-row2{display:grid;grid-template-columns:74px 96px 1fr;gap:10px;align-items:start;
           background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-s);padding:11px 14px}
.care-row2 .cr-name{font-weight:800;font-size:var(--fs-s)}
.care-row2 .cr-label{color:var(--warm-d);font-weight:800;font-size:var(--fs-s)}
.care-row2 .cr-txt{font-size:var(--fs-s);color:var(--ink2)}
.care-row2 .cr-adv{grid-column:2 / -1;font-size:var(--fs-s);color:var(--green)}
@media(max-width:560px){.care-row2{grid-template-columns:1fr 1fr}}
.tier-items ul{margin:0 0 10px 18px}
.tier-items li{font-size:var(--fs-s);color:var(--ink2);margin:4px 0}
.tier-items li.ok{color:var(--green)}
.tier-items li.no{color:var(--ink3)}

/* ================= 三方建议 ================= */
.triple{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.triple .col h3{font-size:var(--fs-m);margin-bottom:10px}
.triple .col.child h3{color:var(--green)}
.triple .col.care h3{color:var(--warm-d)}
.triple .col.family h3{color:var(--blue)}
.triple li{font-size:var(--fs-s);color:var(--ink2);margin:8px 0 8px 18px}
.week-sel{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.week-sel .w{width:38px;height:38px;border-radius:50%;border:1.5px solid var(--line);background:#fff;
             font-size:var(--fs-xs);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--ink2)}
.week-sel .w.on{background:var(--green);border-color:var(--green);color:#fff;font-weight:800}
.week-sel .w.test{border-color:var(--gold)}
.meta-line{font-size:var(--fs-s);color:var(--ink2);background:var(--panel-sand);border-radius:var(--r-s);padding:9px 14px;margin-bottom:12px}

/* ================= 占位页（未实施的后续步骤） ================= */
.soon{text-align:center;padding:34px 20px}
.soon h2{font-size:var(--fs-xl);margin-bottom:10px}
.soon p{font-size:var(--fs-s);color:var(--ink2);max-width:560px;margin:0 auto 14px}
.soon ul{display:inline-block;text-align:left;margin:0 auto}
.soon li{font-size:var(--fs-s);color:var(--ink2)}
.soon .stage-chip{display:inline-block;background:var(--blue-soft);color:var(--blue);font-size:var(--fs-xs);
                  font-weight:800;border-radius:999px;padding:3px 12px;margin-bottom:12px}

/* 周卡折叠 */
.wk .wk-toggle{margin-top:6px;font-size:var(--fs-xs);padding:4px 10px;border-radius:999px;
               background:#fff;color:var(--warm-d);border:1px solid var(--warm);width:auto}
.wk .wk-more{margin-top:6px}
.wk h4{font-size:var(--fs-m);margin:0}

/* ================= S5 · 今日记录 ================= */
.rec-head h2 .en{font-weight:400}
.rec-choice .hint{text-align:center;margin-top:8px}
.rec-form{display:flex;flex-direction:column;gap:14px}
.rf-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
        background:var(--panel-sand);border:1px solid var(--line-soft);border-radius:var(--r-s);padding:12px 14px}
.rf-row .rf-l{font-weight:700;font-size:var(--fs-s);min-width:150px}
.stepper{display:flex;align-items:center;gap:12px}
.stepper button{width:52px;height:52px;font-size:26px;font-weight:800;border-radius:12px;background:#fff;
                color:var(--warm-d);border:2px solid var(--warm);padding:0}
.stepper b{font-size:calc(26px*var(--fscale));min-width:52px;text-align:center;font-variant-numeric:tabular-nums}
.pillyes{display:flex;gap:8px}
.pillyes .o{padding:9px 16px;border:1.5px solid var(--line);border-radius:999px;font-size:var(--fs-s);
            cursor:pointer;background:#fff;user-select:none}
.pillyes .o.on{background:var(--green);border-color:var(--green);color:#fff;font-weight:700}
.rf-row input{flex:1;min-width:180px;padding:10px 12px;border:1.5px solid var(--line);border-radius:var(--r-s);font-size:var(--fs-m);background:#fff}
.rec-done b{display:block;font-size:var(--fs-l);margin-bottom:6px}
.rec-done span{font-size:var(--fs-s);color:var(--ink2)}
.rec-week{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}
.rw{border:1.5px solid var(--line);border-radius:var(--r-s);padding:8px;text-align:center;background:#fff}
.rw .d{display:block;font-size:var(--fs-xs);color:var(--ink3)}
.rw .v{font-size:var(--fs-s);font-weight:700;color:var(--green)}
.rw.rest .v{color:var(--ink3)}
.rw.today{border-color:var(--warm);background:var(--warm-soft)}

/* ================= S5 · 进步与复评 ================= */
.card.pass{border-color:var(--green);background:linear-gradient(135deg,#F2F8F3,#FDFEFC)}
.ck-row{display:flex;align-items:center;gap:10px;padding:9px 4px;border-bottom:1px dashed var(--line-soft);font-size:var(--fs-s)}
.ck-row:last-of-type{border-bottom:none}
.ck-mark{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;
         font-weight:800;flex:none;font-size:15px}
.ck-mark.ok{background:var(--green-soft);color:var(--green)}
.ck-mark.no{background:var(--gold-soft);color:var(--warm-d)}
.ck-row b{width:96px;flex:none}
.verdict{margin-top:10px;font-size:var(--fs-m);font-weight:700;color:var(--ink)}
.chart-wrap{background:var(--panel-sand);border:1px solid var(--line-soft);border-radius:var(--r-s);padding:10px 6px 2px}
.legend{display:flex;gap:16px;margin-top:8px}
.legend .lg{font-size:var(--fs-xs);color:var(--ink2)}
.legend .lg.g{color:var(--green)}.legend .lg.b{color:var(--blue)}
.badge-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.bdg{border:2px dashed var(--line);border-radius:var(--r-m);padding:14px;text-align:center;color:var(--ink3)}
.bdg .b-ico{display:inline-flex;width:40px;height:40px;border-radius:50%;background:var(--line-soft);
            align-items:center;justify-content:center;margin-bottom:6px}
.bdg b{display:block;font-size:var(--fs-s);color:var(--ink3)}
.bdg span{font-size:var(--fs-xs)}
.bdg.got{border:2px solid var(--gold);background:var(--gold-soft);color:var(--ink)}
.bdg.got .b-ico{background:var(--gold);color:#6B4F00}
.bdg.got b{color:var(--ink)}
.review-entry .hint{margin-bottom:12px}

/* 复评浮层内选项 */
.sheet .opts{margin-bottom:12px}
.sheet .field>label{font-weight:700;font-size:var(--fs-s)}
.sheet ul.rules{margin:8px 0 8px 20px}
.sheet ul.rules li{font-size:var(--fs-s);color:var(--ink2);margin:5px 0}

/* ================= S6 · 微课 ================= */
.lesson{padding:16px 18px}
.ls-head{display:flex;align-items:center;gap:12px}
.ls-no{width:34px;height:34px;border-radius:50%;background:var(--warm);color:#fff;font-weight:800;
       display:flex;align-items:center;justify-content:center;flex:none;font-size:15px}
.ls-t{flex:1;min-width:0}
.ls-t b{display:block;font-size:var(--fs-m)}
.ls-t span{font-size:var(--fs-xs);color:var(--ink2)}
.ls-btn{font-size:var(--fs-xs);padding:6px 12px;border-radius:999px;width:auto;flex:none}
.ls-body{margin-top:12px}
.ls-body .note{margin-bottom:8px}
.retreat-t{color:var(--green)}

/* ================= S4 · 质检卡 ================= */
.qc-card{background:var(--green-soft);border-color:var(--green)}
.qc-card.qc-bad{background:var(--gold-soft);border-color:var(--gold)}
.qc-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.qc-line b{font-size:var(--fs-l);color:var(--green)}
.qc-card.qc-bad .qc-line b{color:var(--warm-d)}
.qc-line span{font-size:var(--fs-s);color:var(--ink2);flex:1;min-width:200px}
.qc-row{display:flex;gap:10px;align-items:flex-start;padding:8px 2px;border-bottom:1px dashed var(--line-soft);font-size:var(--fs-s)}
.qc-row>span{color:var(--green);font-weight:800;flex:none}
.qc-row.bad>span{color:var(--red)}
.qc-row b{flex:none;width:150px}
.qc-row .d{color:var(--ink3);font-size:var(--fs-xs)}
.pp-link{display:inline-flex;align-items:center;justify-content:center;color:var(--warm-d);
         border:1.5px solid var(--line);border-radius:var(--r-s);background:#fff;text-decoration:none;
         font-size:var(--fs-s);padding:10px 18px;font-weight:500}

/* ================= 页面内提示条（替代 alert，不锁页面） ================= */
#toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,140%);
  display:flex;align-items:center;gap:12px;max-width:min(92vw,520px);
  background:#3E3A33;color:#FFFDF8;border-radius:var(--r-m);padding:14px 16px;
  font-size:calc(16px*var(--fscale));line-height:1.5;box-shadow:0 8px 28px rgba(62,58,51,.28);
  opacity:0;pointer-events:none;transition:transform .22s ease,opacity .22s ease;z-index:9999}
#toast.on{transform:translate(-50%,0);opacity:1;pointer-events:auto}
#toast span{flex:1}
#toast button{flex:none;width:32px;height:32px;border-radius:50%;border:0;background:rgba(255,255,255,.16);
  color:#FFFDF8;font-size:20px;line-height:1;cursor:pointer}
@media print{#toast{display:none}}

/* ================= S4 · 教材页每周折叠 ================= */
.book .wk-h{display:flex;align-items:center;gap:8px}
.book .wk-h .wk-open{margin-left:auto;font-size:var(--fs-xs);padding:5px 12px}
.book.folded{background:var(--bg2);border-color:var(--line-soft)}
.book.folded .head{opacity:.82}


/* ================================================================
   v4 · 家长端视觉重做（暖 · 亲 · 可信）
   改这里只动"外观"，不动结构类名 —— 老页面的 .card/.guide/.big 等一律沿用。
   四条硬指标：柔和配色 / 大留白 / 圆角卡片 / 点击区域 ≥ 46px
   ================================================================ */
:root{
  --bg:#FBF8F2;
  --panel:#FFFFFF;
  --line:#EFE8DC; --line-soft:#F6F1E7;
  --r-s:12px; --r-m:18px; --r-l:26px;
  --shadow:0 2px 12px rgba(122,101,72,.06), 0 1px 3px rgba(122,101,72,.05);
  --shadow-lift:0 8px 26px rgba(122,101,72,.10), 0 2px 6px rgba(122,101,72,.05);
  --tap:calc(46px*var(--fscale));
}
body{background:
  radial-gradient(1100px 460px at 50% -140px, #FFF6EC 0%, rgba(255,246,236,0) 70%), var(--bg);
  line-height:1.85}
main{max-width:1060px}

/* 点击区域统一抬高（祖辈友好） */
button{min-height:var(--tap);border-radius:var(--r-s);transition:filter var(--dur),box-shadow var(--dur),transform var(--dur)}
button:active{transform:translateY(1px)}
button.ghost{border-color:#E7DFD0}
button.ghost:hover{border-color:var(--warm);box-shadow:0 2px 10px rgba(232,168,124,.18)}
button.primary{background:var(--green);box-shadow:0 4px 14px rgba(58,166,87,.20)}
button.primary:hover{box-shadow:0 6px 18px rgba(58,166,87,.26)}
.fs-ctl button{min-height:38px}
.step-dot label{cursor:pointer}

/* 卡片：更圆、更松、更少边框感 */
.card{border-radius:var(--r-l);border-color:var(--line);padding:calc(var(--sp-4) + 4px);
      box-shadow:var(--shadow);margin-bottom:18px}
.card h2{font-size:calc(var(--fs-l) + 1px);letter-spacing:.2px}
@media(min-width:760px){.card{padding:30px 32px}}
.guide{border-radius:var(--r-m);border-width:1.5px}

/* ---------- 落地页 / 欢迎页：Hero（页面最上方主图） ---------- */
.lp-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:26px;align-items:center;
  background:linear-gradient(180deg,#FFFDF8 0%,#FFF8EF 100%);
  border:1px solid var(--line);border-radius:var(--r-l);overflow:hidden;
  padding:8px 8px 8px 30px;margin-bottom:18px;box-shadow:var(--shadow)}
.lp-hero-txt{padding:18px 0 22px}
.lp-eyebrow{font-size:var(--fs-xs);font-weight:700;letter-spacing:.4px;color:var(--warm-d);
  background:#fff;border:1px solid #F3E2CE;border-radius:999px;padding:5px 13px;display:inline-block;margin-bottom:14px}
.lp-hero h1{font-size:clamp(25px,4.4vw,38px);line-height:1.32;letter-spacing:.3px;margin-bottom:12px;
  word-break:keep-all;overflow-wrap:break-word}
.lp-hero .lead{font-size:clamp(15px,2.4vw,17.5px);color:var(--ink2);margin-bottom:8px}
.lp-hero .lead b{color:var(--warm-d)}
.lp-hero .lead-sub{font-size:var(--fs-s);color:var(--ink3);margin-bottom:20px}
.lp-cta{display:flex;flex-direction:column;gap:10px;max-width:360px}
.lp-hero-img{align-self:stretch;display:flex;align-items:flex-end;justify-content:flex-end;min-height:200px}
.lp-hero-img img{width:100%;height:100%;max-height:360px;object-fit:cover;object-position:center;
  border-radius:0 var(--r-l) var(--r-l) 0;display:block}
.lp-hero.slim{align-items:center;padding:8px 8px 8px 30px}
.lp-hero.slim h1{font-size:clamp(21px,3.2vw,27px)}
.lp-hero.slim .lp-hero-img img{max-height:250px;border-radius:var(--r-m)}
.login-hero{margin-bottom:16px}
@media(max-width:820px){
  .lp-hero,.lp-hero.slim{grid-template-columns:1fr;padding:20px 18px 8px;gap:8px}
  .lp-hero-txt{padding:0 0 6px}
  .lp-hero-img{order:-1;justify-content:center;min-height:0}
  .lp-hero-img img{max-height:200px;border-radius:var(--r-m)}
  .lp-cta{max-width:none}
}

/* ---------- 顶部常驻孩子条 ---------- */
#profile-bar{gap:8px}
.cb-kid{display:flex;align-items:center;gap:10px;background:#fff;border:1.5px solid var(--line);
  border-radius:999px;padding:6px 14px 6px 7px;min-height:calc(52px*var(--fscale));cursor:pointer;text-align:left}
.cb-kid:hover{border-color:var(--warm);box-shadow:0 3px 14px rgba(232,168,124,.20)}
.cb-kid.empty{border-style:dashed;border-color:#DFD4C2}
.cb-av{width:calc(38px*var(--fscale));height:calc(38px*var(--fscale));border-radius:50%;flex:none;
  background:linear-gradient(135deg,var(--warm) 0%,#F0C69C 100%);color:#fff;font-weight:800;
  display:flex;align-items:center;justify-content:center;font-size:calc(18px*var(--fscale))}
.cb-kid.empty .cb-av{background:#FBF3E7;color:var(--warm-d);border:1.5px dashed #E3D2B9}
.cb-txt{display:flex;flex-direction:column;line-height:1.35}
.cb-txt b{font-size:calc(15.5px*var(--fscale));font-weight:800;color:var(--ink)}
.cb-txt em{font-style:normal;font-size:calc(12.5px*var(--fscale));color:var(--warm-d);font-weight:700}
.cb-cv{display:inline-flex;align-items:center;gap:3px;font-size:calc(12px*var(--fscale));color:var(--ink3);
  border-left:1px solid var(--line);padding-left:10px;margin-left:2px}
.cb-user{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-s);color:var(--ink2);
  background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:8px 14px;min-height:calc(46px*var(--fscale))}
.cb-user .ic{color:var(--warm-d)}
@media(max-width:720px){
  #profile-bar{width:100%;margin-left:0;justify-content:flex-start}
  .cb-kid{flex:1}
  .cb-user{display:none}
}

/* 切换/档案浮层 */
.cm-list{display:flex;flex-direction:column;gap:10px}
.cm-row{display:flex;align-items:center;gap:12px;border:1.5px solid var(--line);border-radius:var(--r-m);
  padding:12px 14px;background:#fff;cursor:pointer;min-height:calc(64px*var(--fscale))}
.cm-row:hover{border-color:var(--warm)}
.cm-row.on{border-color:var(--green);background:#F7FBF8}
.cm-txt{display:flex;flex-direction:column;flex:1;line-height:1.4}
.cm-txt b{font-size:calc(17px*var(--fscale))}
.cm-txt em{font-style:normal;font-size:var(--fs-s);color:var(--warm-d);font-weight:700}
.cm-tag{font-size:var(--fs-xs);color:var(--ink3)}
.cm-row.on .cm-tag{color:var(--green);font-weight:700}

/* ---------- 工作台 ---------- */
.wb-today{background:linear-gradient(180deg,#FFFDF8 0%,#FFF9F2 100%);border-color:#F0E4D2}
.wb-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.wb-head h2{margin-bottom:0}
.wb-who{margin-left:auto;font-size:var(--fs-s);font-weight:700;color:var(--warm-d);
  background:#fff;border:1px solid #F2E2CE;border-radius:999px;padding:4px 12px}
.wb-line{font-size:calc(16px*var(--fscale));color:var(--ink2);line-height:2;margin-bottom:6px}
.wb-line b{color:var(--warm-d);font-size:calc(17px*var(--fscale))}
.wb-cta{display:flex;flex-direction:column;gap:10px;margin-top:14px}
@media(min-width:760px){.wb-cta{flex-direction:row}.wb-cta button{flex:1}}
.wb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.wb-grid .wb-go{text-align:left;font-weight:600;min-height:calc(56px*var(--fscale));padding:12px 16px;
  border-radius:var(--r-s);font-size:calc(15px*var(--fscale))}

/* 孩子卡（工作台内） */
.pcard.on{border-color:var(--green);background:#F8FCF9}
.pc-top{display:flex;align-items:center;gap:9px;margin-bottom:6px}
.pc-av{width:34px;height:34px;border-radius:50%;flex:none;background:linear-gradient(135deg,var(--warm),#F0C69C);
  color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:16px}
.pc-now{margin-left:auto;font-size:11px;font-weight:700;color:#2E7D46;background:var(--green-soft);
  border:1px solid #CBE4D2;border-radius:999px;padding:2px 9px}
.pc-ops{display:flex;gap:8px;margin-top:10px}
.pc-ops button{font-size:var(--fs-xs);min-height:calc(42px*var(--fscale));padding:0 14px;flex:1}

/* 欢迎页清单 */
.welcome-list{margin:0 0 4px 18px;font-size:var(--fs-m);color:var(--ink2);line-height:2}
.welcome-list b{color:var(--ink)}

/* ---------- 向导：进度条 + 一步一屏 ---------- */
.wz-bar{margin-bottom:14px}
.wz-bar-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.wz-step{font-size:var(--fs-s);color:var(--ink2)}
.wz-step b{font-size:calc(19px*var(--fscale));font-weight:800;color:var(--warm-d)}
.wz-name{margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-s);font-weight:700;color:var(--ink2)}
.wz-name .ic{color:var(--warm-d)}
.wz-track{height:9px;border-radius:999px;background:#F0E9DC;overflow:hidden}
.wz-track i{display:block;height:100%;border-radius:999px;
  background:linear-gradient(90deg,var(--warm) 0%,#F0BE8C 100%);transition:width .25s ease}
.wz-card h2{font-size:calc(var(--fs-l) + 2px)}
.wz-sub{font-size:var(--fs-m);color:var(--ink2);margin:-4px 0 18px}
.wz-fields{display:flex;flex-direction:column;gap:26px}
.wz-warn{font-size:var(--fs-s);color:var(--warm-d);font-weight:700;min-height:0}
.wz-warn:not(:empty){margin-top:16px;background:#FFF6E8;border-left:4px solid var(--gold);
  border-radius:0 var(--r-s) var(--r-s) 0;padding:10px 14px}
.field.need{background:#FFF9F1;border-radius:var(--r-s);box-shadow:0 0 0 2px rgba(232,196,107,.45);padding:12px 14px;margin:-12px -14px}
.field.need > label{color:var(--warm-d)}

/* 向导里选项更大更好点 */
.wz-fields .o{min-height:calc(52px*var(--fscale));display:flex;align-items:center;
  font-size:calc(16px*var(--fscale));padding:13px 20px;background:#fff}
.wz-fields .o.skipopt{border-style:dashed;color:var(--ink3)}
.wz-fields .field .hint{font-size:calc(13.5px*var(--fscale));line-height:1.8}
.wz-fields .field > label{font-size:calc(17px*var(--fscale));font-weight:800;line-height:1.7}
.wz-fields input[type=text],.wz-fields textarea{font-size:calc(17px*var(--fscale))}
@media(max-width:620px){
  .wz-fields{gap:22px}
  .wz-card{padding:20px 16px}
}

/* ---------- 首页文案量不变的前提下，把间距拉开 ---------- */
.flowline{margin:22px 0 6px}
.grid4.vals{gap:14px}
.v-card{border-radius:var(--r-m);padding:20px}
.sample{gap:12px}

/* 打印时不要出现 Hero 与孩子条（教材页本来就另走 reader/PDF） */
@media print{.lp-hero,.wz-bar,#profile-bar{display:none!important}}

/* 页头工具区（字号 + 怎么用），与孩子条同排 */
.brand-wrap{display:flex;flex-direction:column;line-height:1.3}
.hdr-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
@media(max-width:720px){.hdr-tools{width:100%;justify-content:space-between}}

/* ---------- 页内插图条（进步页）：一张图 + 一句话，不抢内容 ---------- */
.page-ill{display:flex;align-items:center;gap:16px;background:#FFFDF8;border:1px solid var(--line);
  border-radius:var(--r-l);padding:12px 18px 12px 12px;margin-bottom:18px;box-shadow:var(--shadow)}
.page-ill img{width:112px;height:auto;flex:none;border-radius:var(--r-m);display:block}
.page-ill p{font-size:var(--fs-s);color:var(--ink2);line-height:1.9;margin:0}
@media(max-width:560px){.page-ill img{width:82px}.page-ill{gap:12px;padding:10px 14px 10px 10px}}

/* 灰底大按钮必须看得见字：button.big 的 color:#fff 会盖掉 button.ghost，这里显式压回来 */
button.big.ghost,button.big.ghost.small-h{color:var(--ink2)}
button.big.ghost:hover,button.big.ghost.small-h:hover{color:var(--warm-d)}
button.big.danger{color:var(--red)}

/* 孩子条上「切换」要带字：只有图标时，爷爷奶奶看不出那是什么 */
.cb-cv i{font-style:normal;margin-left:3px;font-weight:700}
@media(max-width:400px){.cb-cv i{display:none}}

/* 提示框里行内的加粗词要留在句子里：.tipbox b 本来是块级（给标题用），
   一旦写进 <p> 里就会把句子断开成三行。 */
.tipbox p b,.tipbox p strong,.tipbox p em{display:inline;margin:0}
/* 账号 / 密码不是六位数字，别用验证码那种超宽字距 */
#lg-user,#lg-pass{letter-spacing:.04em;font-size:calc(22px*var(--fscale));font-weight:700}
#lg-user::placeholder,#lg-pass::placeholder{letter-spacing:normal;font-weight:400;color:var(--ink3)}

/* ================= v5 极简单卡层 =================
   每个页面 = 一张卡片；主图在最上面；说明性文字一句封顶。 */
.lp-banner{max-width:920px;margin:0 auto 14px;border-radius:var(--r-l);overflow:hidden;
  background:linear-gradient(180deg,#FFFDF8 0%,#FFF8EF 100%);border:1px solid var(--line);box-shadow:var(--shadow)}
.lp-banner.lp-hero-img{display:block;min-height:0;padding:0}
.lp-banner img{width:100%;height:auto;max-height:300px;object-fit:cover;object-position:center 40%;
  display:block;border-radius:var(--r-l)}
.lp-banner.slim img{max-height:190px}
@media(max-width:820px){.lp-banner img{max-height:200px}.lp-banner.slim img{max-height:150px}}

.card.solo{max-width:760px;margin:0 auto;padding:26px 24px}
.card.solo.center{text-align:center}
.card.solo .solo-h{font-size:clamp(23px,3.6vw,30px);margin-bottom:10px}
.card.solo .solo-h small{font-size:var(--fs-s);color:var(--warm-d);margin-left:10px;font-weight:700}
.card.solo .solo-lead{font-size:calc(16px*var(--fscale));color:var(--ink2);line-height:1.9;margin-bottom:18px}
.card.solo .solo-foot{margin-top:14px;color:var(--ink3);font-size:var(--fs-s)}
.card.solo.center .btn-row{justify-content:center}
.card.solo.center input.big-input{text-align:center;margin-bottom:10px}
.card.solo.center .wb-cta{display:flex;flex-direction:row;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:12px}
.card.solo.center .wb-cta button{flex:1 1 150px}
.card.solo.center .start-list,.card.solo.center .out-mode,.card.solo.center .gate-list{text-align:left}
.fold{margin-top:14px}
.fold-btn{width:auto;display:inline-block}
#more-slot{margin-top:12px}
#more-slot .wb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
@media print{.lp-banner{display:none!important}}
