/* 华途同行平台（docs/华途同行第1期施工单.md 3.3）：照第 1 期原型 Elder.dc.html 的马卡龙配色，基准 18px、按钮至少 44px。 */
:root{
  --bg:#FFF7F2;--card:#FFFFFF;--primary:#5B44A8;--primary-dk:#46338A;--text:#2F2A3D;--muted:#6B6480;--muted2:#4E4760;
  --accent:#C2416B;--focus:#F08FAE;
  --mint:#DDF4E8;--mint-fg:#1C6B4E;--peach:#FFE6D6;--peach-fg:#9A3F14;--lav:#ECE6FB;--lav-fg:#46338A;
  --pink:#FDE1E8;--pink-fg:#7A1F43;--lemon:#FFF1BF;--lemon-fg:#7A5A00;
  --line:#F0EAF4;--line2:#E6DFF0;--line3:#DDD3EA;--line4:#B8AECB;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:'Noto Sans SC',system-ui,-apple-system,'PingFang SC',sans-serif;font-size:18px;line-height:1.6}
a{color:var(--primary)}a:hover{color:var(--primary-dk)}
button,input,select{font-family:inherit}
button{cursor:pointer}
input:focus,button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.serif{font-family:'Noto Serif SC',serif}
.muted{color:var(--muted)}
.small{font-size:15px}.tiny{font-size:14px}
p{margin:0}

@keyframes dcPop{0%{transform:scale(.7);opacity:0}60%{transform:scale(1.08);opacity:1}100%{transform:scale(1)}}
@keyframes dcFloat{0%{transform:translateY(0);opacity:0}15%{opacity:1}100%{transform:translateY(-48px);opacity:0}}
@keyframes dcPulse{0%,100%{box-shadow:0 0 0 0 rgba(91,68,168,.38)}50%{box-shadow:0 0 0 12px rgba(91,68,168,0)}}
@keyframes dcGrowX{from{transform:scaleX(0)}}
@keyframes dcRing{from{stroke-dasharray:0 100}}
@keyframes dcShimmer{from{background-position:200% 0}to{background-position:-200% 0}}
@keyframes dcFlicker{0%,100%{transform:scale(1) rotate(-5deg)}50%{transform:scale(1.18) rotate(5deg)}}
@keyframes dcWiggle{0%,60%,100%{transform:rotate(0)}70%{transform:rotate(-14deg)}80%{transform:rotate(12deg)}90%{transform:rotate(-6deg)}}

/* ---- 页面骨架 ---- */
.ht{max-width:480px;min-height:100vh;margin:0 auto;display:flex;flex-direction:column}
.ht-main{flex:1;padding-bottom:12px}
.top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 16px 6px}
.top-text{display:flex;flex-direction:column;gap:2px;line-height:1.35;min-width:0}
.brand{font-family:'Noto Serif SC',serif;font-size:15px;font-weight:700;color:var(--primary);letter-spacing:3px;text-decoration:none}
.hello{font-size:25px;font-weight:700;margin:0;line-height:1.35}
.top-meta{display:flex;align-items:center;gap:8px;margin-top:2px;flex-wrap:wrap}
.avatar{width:48px;height:48px;flex:none;border-radius:24px;background:var(--lav);color:var(--primary);text-decoration:none;display:flex;align-items:center;justify-content:center;font-size:19px;font-weight:700}
.chip{font-size:13px;font-weight:700;border-radius:10px;padding:1px 8px;line-height:1.6;display:inline-block}
.chip-peach{color:var(--peach-fg);background:var(--peach)}
.chip-lav{color:var(--lav-fg);background:var(--lav)}
.chip-mint{color:var(--mint-fg);background:var(--mint)}
.chip-lemon{color:var(--lemon-fg);background:var(--lemon)}
.chip-dash{color:var(--muted);border:1.5px dashed var(--line3);background:none;font-weight:400}
.tag{font-size:14px;font-weight:700;border-radius:12px;padding:3px 10px;display:inline-block;line-height:1.5}
.tag.chip-dash{padding:2px 10px}

.sec{margin:16px 16px 0;background:var(--card);border-radius:18px;padding:16px;display:flex;flex-direction:column;gap:12px}
.sec.plain{background:none;padding:0;gap:10px;margin-top:12px}
.sec.lav{background:var(--lav);border-radius:22px;padding:18px;gap:14px}
.sec h2{margin:0;font-size:19px;line-height:1.4}
.sec h2.big{font-family:'Noto Serif SC',serif;font-size:23px}
.sec-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.sec-head a{font-size:16px;min-height:44px;display:flex;align-items:center}
.note-line{font-size:14px;color:var(--muted)}
.foot-note{margin:20px 16px 24px;font-size:14px;color:var(--muted);display:flex;flex-direction:column;gap:6px}
.foot-note a{color:var(--muted)}
.dashed-box{border:1.5px dashed var(--line3);border-radius:16px;padding:10px 14px;font-size:15px;color:var(--muted)}
.flash{border-radius:12px;padding:10px 14px;font-size:16px}
.flash.ok{background:var(--mint);color:var(--mint-fg)}
.flash.err{background:var(--peach);color:var(--peach-fg)}

/* ---- 按钮 ---- */
.btn{min-height:52px;border-radius:14px;border:none;font-size:17px;font-weight:700;text-decoration:none;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 16px;text-align:center}
.btn-primary{background:var(--primary);color:#FFF}.btn-primary:hover{background:var(--primary-dk);color:#FFF}
.btn-accent{background:var(--accent);color:#FFF}.btn-accent:hover{background:#A8345A;color:#FFF}
.btn-line{background:#FFF;border:1.5px solid var(--primary);color:var(--primary)}
.btn-ghost{background:none;border:1.5px solid var(--line3);color:var(--muted2)}
.btn-small{min-height:44px;padding:0 14px;border-radius:12px;font-size:16px;flex:none}
.btn-big{height:68px;border-radius:18px;font-size:22px;gap:10px;width:100%}
.btn-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.linkbtn{background:none;border:none;padding:0;color:var(--primary);font-size:16px;text-decoration:underline;min-height:44px}

/* ---- 我在办的事（模块卡） ---- */
.mod{background:var(--card);border:2px solid var(--primary);border-radius:20px;padding:16px;display:flex;flex-direction:column;gap:12px}
.mod-link{color:var(--text);text-decoration:none;display:flex;gap:12px;align-items:center}
.mod-link:hover{color:var(--text)}
.mod-icon{width:56px;height:56px;flex:none;border-radius:16px;background:var(--lav);color:var(--primary);display:flex;align-items:center;justify-content:center}
.mod-text{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.4}
.mod-name{font-size:20px;font-weight:700}
.mod-sum{font-size:16px;color:var(--mint-fg);font-weight:700}
.mod-desc{font-size:15px;color:var(--muted)}
.mod-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.mod-items li{background:var(--bg);border-radius:12px;padding:8px 12px;display:flex;flex-direction:column;line-height:1.4}
.mod-items .it-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.mod-items .it-name{font-size:16px;font-weight:700;min-width:0}
.mod-items .it-sub{font-size:14px;color:var(--muted)}
.mod-items .act .it-badge{color:var(--accent)}
.it-badge{font-size:14px;font-weight:700;color:var(--mint-fg);flex:none}
.mod-tags{display:flex;gap:8px;flex-wrap:wrap}

/* ---- 打卡 ---- */
.ck-title{font-family:'Noto Serif SC',serif;font-size:25px;font-weight:700;line-height:1.35}
.ck-sub{font-size:16px;color:var(--lav-fg)}
.ck-btn{animation:dcPulse 2.2s ease-in-out infinite}
.ck-done-wrap{position:relative}
.ck-done{height:68px;border-radius:18px;background:var(--mint);color:var(--mint-fg);display:flex;align-items:center;justify-content:center;gap:10px;font-size:20px;font-weight:700}
.ck-done.pop{animation:dcPop .5s ease-out both}
.ck-float{position:absolute;right:22px;top:-4px;font-size:26px;font-weight:700;color:var(--accent);animation:dcFloat 1.4s ease-out .1s both;pointer-events:none}
.ck-box{background:var(--card);border-radius:16px;padding:12px;display:flex;flex-direction:column;gap:10px}
.ck-box-title{font-size:17px;font-weight:700}
.tiers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.tier{border-radius:14px;padding:8px 4px;background:#FFF;border:2px solid var(--line2);color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:2px;line-height:1.3;text-align:center}
.tier-x{display:flex;align-items:center;gap:3px;font-size:22px;font-weight:700}
.tier-d{font-size:14px}.tier-p{font-size:13px}
.tier.on.t1{background:#EAE4F7;border-color:#9C88E6;color:#3E2E80}
.tier.on.t2{background:#FFF4CC;border-color:#F2C230;color:#5C4300}
.tier.on.t3{background:#FDE1E8;border-color:#EE7FA3;color:#7A1F43}
.flame{animation:dcFlicker 1.1s ease-in-out infinite}
.track{height:14px;border-radius:7px;background:var(--line);overflow:hidden}
.track>span{display:block;height:100%;border-radius:7px;transform-origin:left;animation:dcGrowX 1s cubic-bezier(.2,.8,.2,1) both}
.track.run>span{background:linear-gradient(90deg,#9C88E6,#F2C230,#EE7FA3)}
.track.grow{height:12px;border-radius:6px}
.track.grow>span{border-radius:6px;background:linear-gradient(90deg,#5B44A8 0%,#9C88E6 50%,#5B44A8 100%);background-size:200% 100%;animation:dcGrowX 1s cubic-bezier(.2,.8,.2,1) both,dcShimmer 3s linear 1s infinite}
.ck-next{font-size:17px;font-weight:700;color:var(--pink-fg)}
.ck-rule{font-size:15px;color:var(--muted2)}
.cal{background:var(--card);border-radius:16px;padding:10px;display:flex;flex-direction:column;gap:6px}
.cal-head,.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}
.cal-head{font-size:13px;color:var(--muted)}
.cal-grid span{height:36px;border-radius:18px;display:flex;align-items:center;justify-content:center;font-size:15px;color:var(--muted);border:2px solid transparent}
.cal-grid .miss{background:#FFF;border-color:var(--line2)}
.cal-grid .today{background:#FFF;color:var(--text);border-color:var(--focus);font-weight:700}
.cal-grid .t1{background:#DCD2FA;border-color:#DCD2FA;color:#3E2E80;font-weight:700}
.cal-grid .t2{background:#FFE08A;border-color:#FFE08A;color:#5C4300;font-weight:700}
.cal-grid .t3{background:#F9B6CB;border-color:#F9B6CB;color:#7A1F43;font-weight:700}
.cal-grid .pop{animation:dcPop .5s ease-out both}
.cal-legend{display:flex;gap:14px;font-size:13px;color:var(--muted2);padding:2px 4px 0;flex-wrap:wrap}
.cal-legend span{display:flex;align-items:center;gap:5px}
.cal-legend i{width:12px;height:12px;border-radius:6px;display:inline-block}

/* ---- 今年攒的（环形图） ---- */
.year{display:flex;gap:14px;align-items:center}
.ring{position:relative;width:140px;height:140px;flex:none}
.ring svg{transform:rotate(-90deg)}
.ring circle.part{animation:dcRing 1s cubic-bezier(.2,.8,.2,1) both}
.ring-mid{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.2}
.ring-mid b{font-size:26px}
.ring-mid span{font-size:13px;color:var(--muted)}
.legend{flex:1;min-width:0;display:flex;flex-direction:column;list-style:none;margin:0;padding:0}
.legend li{display:flex;align-items:center;gap:8px;padding:4px 0}
.legend i{width:14px;height:14px;flex:none;border-radius:7px}
.legend b{font-size:16px;display:block;line-height:1.3}
.legend span{font-size:14px;color:var(--muted2);display:block;line-height:1.3}
.est{background:var(--lav);border-radius:14px;padding:12px 14px;display:flex;justify-content:space-between;align-items:center;gap:10px;color:var(--lav-fg)}
.est-label{font-size:16px;font-weight:700}
.est-num{display:flex;align-items:baseline;gap:6px}
.est-num b{font-size:30px}
.est-num span{font-size:15px;font-weight:700}
.est-wait{font-size:15px;font-weight:700;text-align:right}

/* ---- 成长值 ---- */
.grow-num{font-size:20px;font-weight:700;color:var(--primary)}
.ladder{display:flex;flex-direction:column;list-style:none;margin:0;padding:0}
.rung{display:flex;gap:12px;align-items:stretch}
.rung-rail{width:44px;flex:none;display:flex;flex-direction:column;align-items:center}
.rung-dot{width:44px;height:44px;flex:none;border-radius:22px;background:#FFF;border:2px dashed var(--line3);color:var(--line4);display:flex;align-items:center;justify-content:center}
.rung-line{flex:1;width:3px;min-height:12px;background:var(--line2);border-radius:2px}
.rung:last-child .rung-line{background:transparent}
.rung-body{flex:1;min-width:0;padding-bottom:14px;display:flex;flex-direction:column;gap:2px;line-height:1.4}
.rung-name{font-size:18px;font-weight:700;color:var(--muted)}
.rung-need{font-size:14px;color:var(--muted)}
.rung-unlock{font-size:15px;color:var(--muted)}
.rung.reached .rung-dot{background:#BFEBD6;border:2px solid #5CC79A;color:var(--mint-fg)}
.rung.reached .rung-line.done{background:#5CC79A}
.rung.next .rung-dot{border-color:var(--focus);color:var(--accent)}
.rung.next .rung-dot svg{transform-origin:50% 20%;animation:dcWiggle 2.6s ease-in-out infinite}
.rung.reached .rung-name,.rung.next .rung-name{color:var(--text)}
.rung.reached .rung-unlock,.rung.next .rung-unlock{color:var(--muted2)}
.rung-left{font-size:15px;font-weight:700;color:var(--accent)}
.rung-bar{margin-top:6px;display:flex;flex-direction:column;gap:4px}

/* ---- 徽章 ---- */
.badges{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;list-style:none;margin:0;padding:0}
.badge{background:#FFF;border:1.5px solid var(--line);border-radius:14px;padding:12px;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;line-height:1.35}
.badge-dot{width:56px;height:56px;border-radius:28px;border:2px dashed var(--line4);background:#FFF;color:var(--muted);display:flex;align-items:center;justify-content:center}
.badge.earned{background:var(--bg);border-color:var(--bg)}
.badge.earned .badge-dot{border:2px solid var(--primary);background:var(--primary);color:#FFF}
.badge b{font-size:16px}
.badge span{font-size:14px;color:var(--muted)}

/* ---- 光荣榜 ---- */
.rank-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.rank-no{width:52px;height:52px;flex:none;border-radius:26px;background:var(--primary);color:#FFF;border:2px solid var(--primary);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700}
.rank-no.off{background:#FFF;color:var(--muted);border:2px dashed var(--line4)}
.rank-text{display:flex;flex-direction:column;line-height:1.4}
.rank-text b{font-size:17px}
.rank-text span{font-size:15px;color:var(--muted)}
.board{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.board li{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:16px;border-bottom:1px solid var(--line)}
.board li:last-child{border-bottom:none}
.board .n{width:32px;height:32px;flex:none;border-radius:16px;background:var(--lav);color:var(--lav-fg);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700}
.board .who{flex:1;min-width:0}
.board .me .who{font-weight:700}
.board .d{color:var(--muted);font-size:15px;flex:none}
.name-edit summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;list-style:none;cursor:pointer}
.name-edit summary::-webkit-details-marker{display:none}
.when-open{display:none}.name-edit[open] .when-open{display:inline}.name-edit[open] .when-closed{display:none}
.name-now{font-size:16px;color:var(--muted2)}
.name-edit .name-form{margin-top:8px}
.name-form{background:var(--bg);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:10px}
.sec .name-form{margin:0}.sec .name-edit .name-form{margin-top:8px}
.name-form label.lbl{font-size:16px;font-weight:700}
.field{height:56px;border-radius:14px;border:1.5px solid var(--line3);padding:0 16px;font-size:20px;color:var(--text);background:#FFF;width:100%}
.check{min-height:48px;display:flex;align-items:center;gap:10px;font-size:16px;cursor:pointer}
.check input{width:24px;height:24px;flex:none;accent-color:var(--primary);margin:0}

/* ---- 今日一课 ---- */
.ls-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.ls-kicker{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;color:var(--primary);flex-wrap:wrap}
.ls-title{margin:0;font-family:'Noto Serif SC',serif;font-size:23px;line-height:1.4}
.ls-body{font-size:17px;color:var(--muted2);white-space:pre-line}
.ls-q{border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:10px}
.ls-q-text{font-size:17px}
.ls-q legend{font-size:17px;font-weight:700;padding:0;margin-bottom:10px}
.ls-q fieldset{border:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.opt{min-height:56px;border-radius:14px;border:1.5px solid var(--line3);background:#FFF;color:var(--text);font-size:18px;text-align:left;padding:8px 16px;display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}
button.opt:hover{border-color:var(--primary)}
.opt .mk{font-size:15px;font-weight:700;flex:none}
.opt.right{background:var(--mint);border-color:var(--mint-fg)}.opt.right .mk{color:var(--mint-fg)}
.opt.wrong{background:var(--peach);border-color:var(--accent)}.opt.wrong .mk{color:var(--accent)}
.ls-res{border-radius:12px;padding:10px 14px;font-size:16px}
.ls-res.ok{background:var(--mint);color:var(--mint-fg);animation:dcPop .45s ease-out both}
.ls-res.no{background:var(--peach);color:var(--peach-fg)}

/* ---- 底部 4 栏 ---- */
.tabbar{position:sticky;bottom:0;background:#FFF;border-top:1px solid var(--line2);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:6px 4px calc(10px + env(safe-area-inset-bottom))}
.tabbar a{min-height:60px;color:var(--muted);text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:15px}
.tabbar a[aria-current="page"]{color:var(--primary);font-weight:700}

/* ---- 办事 ---- */
.seg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;background:var(--line);border-radius:16px;padding:4px}
.seg a{min-height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:700;color:var(--muted2);text-decoration:none}
.seg a[aria-current="true"]{background:#FFF;color:var(--primary);box-shadow:0 1px 3px rgba(47,42,61,.12)}
.skus{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.skus a{display:flex;align-items:center;gap:10px;background:var(--bg);border-radius:14px;padding:10px 14px;color:var(--text);text-decoration:none;min-height:56px}
.skus a:hover{color:var(--text);background:var(--lav)}
.skus .sku-t{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.4}
.skus b{font-size:17px}
.skus span{font-size:14px;color:var(--muted)}
.bars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.bars li{display:flex;flex-direction:column;gap:4px}
.bars .bl{display:flex;justify-content:space-between;font-size:16px}
.bars .bl b{font-size:17px}
.bar{height:14px;border-radius:7px;background:var(--line);overflow:hidden}
.bar>span{display:block;height:100%;border-radius:7px;transform-origin:left;animation:dcGrowX 1s cubic-bezier(.2,.8,.2,1) both}
.soon{background:var(--lemon);border-radius:18px}
.lock-row{display:flex;gap:12px;align-items:flex-start}
.lock-ic{width:44px;height:44px;flex:none;border-radius:22px;border:2px dashed var(--line4);color:var(--muted);display:flex;align-items:center;justify-content:center;background:#FFF}

/* ---- 钱包 ---- */
.big-num{font-size:40px;font-weight:700;line-height:1.2;color:var(--primary)}
.stat-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.stat{background:var(--bg);border-radius:14px;padding:12px;display:flex;flex-direction:column;line-height:1.35}
.stat b{font-size:24px}
.stat span{font-size:14px;color:var(--muted)}
.hist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.hist li{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.hist li:last-child{border-bottom:none}
.hist .h-t{display:flex;flex-direction:column;line-height:1.4;min-width:0}
.hist .h-t b{font-size:16px;font-weight:500}
.hist .h-t span{font-size:14px;color:var(--muted)}
.hist .h-p{font-size:18px;font-weight:700;color:var(--mint-fg);flex:none}
.hist .h-p.neg{color:var(--accent)}

/* ---- 我的 / 登录 / 规则 ---- */
.menu{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.menu a,.menu button{display:flex;align-items:center;gap:12px;min-height:56px;padding:6px 0;border:none;border-bottom:1px solid var(--line);background:none;width:100%;color:var(--text);text-decoration:none;font-size:18px;text-align:left}
.menu li:last-child a,.menu li:last-child button{border-bottom:none}
.menu .m-t{flex:1;min-width:0}
.menu .m-ic{width:40px;height:40px;flex:none;border-radius:12px;background:var(--lav);color:var(--primary);display:flex;align-items:center;justify-content:center}
.kv{display:flex;justify-content:space-between;gap:10px;font-size:16px;padding:6px 0;border-bottom:1px solid var(--line)}
.kv:last-child{border-bottom:none}
.kv span:first-child{color:var(--muted)}
.kv span:last-child{text-align:right;word-break:break-all}

/* ---- 账户融合（H13）：钱包里的余额 / 充值，我的里的家人档案 ---- */
.mod-notice{display:flex;align-items:center;gap:10px;background:var(--lemon);color:var(--lemon-fg);border-radius:14px;padding:12px 14px;font-size:17px;font-weight:500;text-decoration:none;line-height:1.45}
.mod-notice span{flex:1;min-width:0}
.paybox{background:var(--bg);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.pay-to{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pay-to b{font-size:22px;word-break:break-all}
.hist .h-link{font-size:15px;color:var(--primary);font-weight:500}
.menu .m-row{display:flex;align-items:center;gap:12px;min-height:56px;padding:6px 0;border-bottom:1px solid var(--line)}
.menu li:last-child .m-row{border-bottom:none}
.menu .m-t.two{display:flex;flex-direction:column;align-items:flex-start;gap:3px;line-height:1.4;padding:6px 0}
.menu .m-t.two b{font-weight:500}
.menu .m-t.two>span:not(.chip){font-size:14px;color:var(--muted)}
.menu .chip{font-size:14px;font-weight:500;white-space:normal}
.login-ctx{margin:20px 16px 0;display:flex;flex-direction:column;gap:8px}
.ctx-card{background:var(--lav);border-radius:16px;padding:12px 16px;display:flex;flex-direction:column;gap:2px}
.ctx-card b{font-size:20px;line-height:1.4}
.login-ctx + .login-card{margin-top:12px}
.login-card{margin:24px 16px 0;background:#FFF;border-radius:22px;padding:22px 18px;display:flex;flex-direction:column;gap:14px}
.login-card h1{margin:0;font-family:'Noto Serif SC',serif;font-size:26px;line-height:1.35}
.login-card form{display:flex;flex-direction:column;gap:12px;margin:0}
.login-card label.lbl{font-size:17px;font-weight:700}
.code-field{letter-spacing:12px;font-size:28px;text-align:center;height:64px}
.tcpa{font-size:14px;color:var(--muted2);background:var(--bg);border-radius:12px;padding:10px 12px}
.alt{display:flex;flex-direction:column;gap:6px;align-items:flex-start;border-top:1px solid var(--line);padding-top:12px}
.alt form{gap:0}
.rules h3{margin:4px 0 0;font-size:18px}
.rules ul,.rules ol{margin:0;padding-left:1.3em;display:flex;flex-direction:column;gap:6px;font-size:17px}
.rules table{border-collapse:collapse;width:100%;font-size:16px}
.rules th,.rules td{border-bottom:1px solid var(--line);padding:8px 6px;text-align:left;vertical-align:top}
.rules th{color:var(--muted);font-weight:500;font-size:14px}
.doc{margin:16px;background:#FFF;border-radius:18px;padding:18px;display:flex;flex-direction:column;gap:12px;font-size:17px}
.doc h1{margin:0;font-family:'Noto Serif SC',serif;font-size:24px}
.doc h2{margin:6px 0 0;font-size:18px}
.doc ul{margin:0;padding-left:1.3em}
.back{display:inline-flex;align-items:center;gap:4px;min-height:44px;font-size:16px;margin:8px 16px 0;text-decoration:none}

/* ---- 没登录的首页 ---- */
.hero{margin:12px 16px 0;background:var(--lav);border-radius:22px;padding:22px 18px;display:flex;flex-direction:column;gap:12px}
.hero h1{margin:0;font-family:'Noto Serif SC',serif;font-size:28px;line-height:1.35}
.hero p{font-size:17px;color:var(--lav-fg)}
.how{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.how li{display:flex;gap:12px;align-items:flex-start}
.how .n{width:36px;height:36px;flex:none;border-radius:18px;background:var(--pink);color:var(--pink-fg);display:flex;align-items:center;justify-content:center;font-weight:700}
.how b{display:block;font-size:17px}
.how span{display:block;font-size:15px;color:var(--muted)}

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