/* 今日宜 Today Yi — mobile-first styles */
:root{
  --paper:#F7F3EC; --paper-2:#EFE7DA; --card:#FFFDF9; --ink:#1E1C19; --ink-2:#3F3A33; --muted:#6F685C; --line:#E4DCCD;
  --cin:#D4432F; --cin-soft:#FBE7E1; --jade:#23775F; --jade-soft:#E0F0E9; --gold:#B8924A; --gold-soft:#F5ECD9; --night:#1C2321;
  --r:18px; --shadow:0 1px 2px rgba(30,28,25,.05),0 8px 28px rgba(30,28,25,.08);
  --serif:"Noto Serif SC","Noto Serif CJK SC","Songti SC","STSong",serif;
  --sans:"Noto Sans SC","Noto Sans CJK SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);line-height:1.6;font-size:calc(16px*var(--fs,1));
  background-image:radial-gradient(circle at 1px 1px,rgba(184,146,74,.13) 1px,transparent 0);background-size:22px 22px}
a{color:inherit}
img{max-width:100%}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.serif{font-family:var(--serif)}
.en{font-family:var(--sans);color:var(--muted);font-size:.82em;letter-spacing:.01em}

/* nav */
.nav{position:sticky;top:0;z-index:20;background:rgba(247,243,236,.86);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid transparent}
.nav.scrolled{border-bottom-color:var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:60px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.seal{width:34px;height:34px;border-radius:9px;background:var(--cin);color:#fff;display:grid;place-items:center;font-family:var(--serif);font-weight:900;font-size:calc(20px*var(--fs,1));box-shadow:inset 0 0 0 2px rgba(255,255,255,.28),inset 0 0 0 4px var(--cin)}
.seal-img{width:34px;height:34px;display:block;flex:none}
.logo b{font-family:var(--serif);font-size:calc(19px*var(--fs,1));letter-spacing:.06em}
.logo small{display:block;font-size:calc(10.5px*var(--fs,1));color:var(--muted);letter-spacing:.12em;text-transform:uppercase;line-height:1}
.nav-links{display:flex;gap:8px;align-items:center}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;font:600 calc(15px*var(--fs,1))/1 var(--sans);border-radius:999px;padding:13px 20px;text-decoration:none;transition:transform .15s,box-shadow .15s,background .15s;white-space:nowrap}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--ink);color:#fff;box-shadow:0 6px 18px rgba(30,28,25,.18)}
.btn-primary:hover{background:#000}
.btn-cin{background:var(--cin);color:#fff;box-shadow:0 8px 22px rgba(212,67,47,.28)}
.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn-sm{padding:9px 14px;font-size:calc(14px*var(--fs,1))}
.btn-block{width:100%;padding:16px}
.btn[disabled]{opacity:.38;cursor:not-allowed;box-shadow:none}

/* hero */
.hero{padding:36px 0 28px}
.hero-grid{display:grid;gap:32px}
.hero h1{font-family:var(--serif);font-weight:900;font-size:calc(40px*var(--fs-h,1));line-height:1.18;letter-spacing:.01em;margin:18px 0 14px}
.hero h1 em{font-style:normal;color:var(--cin)}
.hero p.lead{font-size:calc(16.5px*var(--fs,1));color:var(--ink-2);max-width:34em}
.hero .actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.hero .note{font-size:calc(13px*var(--fs,1));color:var(--muted);margin-top:12px}
.cta-stack{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.btn .sub{display:block;font-weight:400;font-size:calc(11px*var(--fs,1));opacity:.72;margin-top:3px}
.btn-cta{flex-direction:column;padding:12px 24px}

/* phone mockup */

/* sections */
section{padding:36px 0}
.sec-head{margin-bottom:22px}
.sec-head .k{font-size:calc(12.5px*var(--fs,1));letter-spacing:.14em;color:var(--gold);font-weight:700;text-transform:uppercase}
.sec-head h2{font-family:var(--serif);font-size:calc(28px*var(--fs-h,1));line-height:1.25;margin:6px 0 8px}
.sec-head p{color:var(--ink-2);font-size:calc(15px*var(--fs,1));max-width:40em}

/* sample cards */
.cards{display:grid;grid-auto-flow:column;grid-auto-columns:84%;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 20px 18px;margin:0 -20px;scrollbar-width:none}
.cards::-webkit-scrollbar{display:none}
.scard{scroll-snap-align:center;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}
.scard-top{padding:16px 18px 12px;display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px dashed var(--line)}
.scard-date{display:flex;align-items:baseline;gap:8px}
.scard-date .num{font-family:var(--serif);font-size:calc(44px*var(--fs-h,1));font-weight:900;line-height:1}
.scard-date .m{font-size:calc(13px*var(--fs,1));color:var(--ink-2);line-height:1.35}
.pill{display:inline-block;font-size:calc(11.5px*var(--fs,1));font-weight:700;padding:3px 9px;border-radius:999px;background:var(--paper-2);color:var(--ink-2)}
.pill.cin{background:var(--cin-soft);color:var(--cin)}
.pill.jade{background:var(--jade-soft);color:var(--jade)}
.pill.gold{background:var(--gold-soft);color:#8a6a2c}
.scard-gz{font-size:calc(12.5px*var(--fs,1));color:var(--muted);text-align:right;line-height:1.5}
.scard-gz b{display:block;font-family:var(--serif);color:var(--ink);font-size:calc(17px*var(--fs,1))}
.scard-body{padding:14px 18px;display:grid;gap:12px;flex:1}
.yj{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start}
.yj .ch{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-family:var(--serif);font-weight:900;font-size:calc(19px*var(--fs,1));color:#fff}
.yj.yi .ch{background:var(--jade)} .yj.ji .ch{background:var(--cin)}
.yj .terms{font-size:calc(17px*var(--fs,1));font-weight:600;letter-spacing:.04em;line-height:1.5}
.yj .wit{font-size:calc(15px*var(--fs,1));color:var(--ink-2);margin-top:2px}
.yj .wit:before{content:"→ ";color:var(--muted)}
.kv{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.kv div{background:var(--paper);border-radius:12px;padding:8px 10px;font-size:calc(13px*var(--fs,1))}
.kv span{display:block;font-size:calc(11px*var(--fs,1));color:var(--muted)}
.kv b{font-weight:700}
.scard-foot{padding:12px 18px;background:var(--gold-soft);font-size:calc(13px*var(--fs,1));color:#6f5523}
.scard-foot b{color:var(--ink)}

/* how / features */
.steps-list{display:grid;gap:12px;counter-reset:s}
.step{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px 18px 18px 64px;position:relative}
.step:before{counter-increment:s;content:counter(s);position:absolute;left:18px;top:18px;width:32px;height:32px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-weight:700;font-family:var(--serif)}
.step h3{font-size:calc(16.5px*var(--fs,1))}
.step p{font-size:calc(14px*var(--fs,1));color:var(--ink-2)}
.feats{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.feat{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.feat .ic{font-family:var(--serif);font-weight:900;font-size:calc(22px*var(--fs,1));color:var(--cin);margin-bottom:6px}
.feat h3{font-size:calc(15.5px*var(--fs,1));margin-bottom:4px}
.feat p{font-size:calc(13.5px*var(--fs,1));color:var(--ink-2)}
.demo-wit{margin-top:14px;background:var(--night);color:#F3EBDD;border-radius:var(--r);padding:18px}
.demo-wit .row{display:flex;gap:12px;align-items:baseline;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.demo-wit .row:last-child{border:0}
.demo-wit .row b{font-family:var(--serif);font-size:calc(16px*var(--fs,1));min-width:5.5em;color:#fff}
.demo-wit .row b.j{color:#FF9C8A} .demo-wit .row b.y{color:#8FE0C3}
.demo-wit .row span{font-size:calc(14px*var(--fs,1));color:#D5CCBC}

/* pricing */
.price-card{background:var(--ink);color:#fff;border-radius:24px;padding:26px 22px;position:relative;overflow:hidden;max-width:460px}
.price-card:after{content:"宜";position:absolute;right:-18px;bottom:-60px;font-family:var(--serif);font-weight:900;font-size:calc(220px*var(--fs-h,1));color:rgba(255,255,255,.05);line-height:1}
.price-card .plan{font-size:calc(14px*var(--fs,1));opacity:.75}
.price-card .amt{font-family:var(--serif);font-size:calc(52px*var(--fs-h,1));font-weight:900;line-height:1.1;margin:8px 0 2px}
.price-card .amt small{font-size:calc(16px*var(--fs,1));font-weight:400;opacity:.7;font-family:var(--sans)}
.price-card ul{list-style:none;margin:18px 0 22px;display:grid;gap:8px;position:relative;z-index:1}
.price-card li{font-size:calc(14.5px*var(--fs,1));padding-left:24px;position:relative}
.price-card li:before{content:"✓";position:absolute;left:0;color:#8FE0C3;font-weight:700}
.price-card .btn{position:relative;z-index:1}
.price-note{font-size:calc(12.5px*var(--fs,1));color:var(--muted);margin-top:12px}

/* faq */
details{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin-bottom:10px}
summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between}
summary:after{content:"+";color:var(--muted)}
details[open] summary:after{content:"–"}
details p{font-size:calc(14px*var(--fs,1));color:var(--ink-2);margin-top:8px}

/* footer */
footer{padding:36px 0 46px;border-top:1px solid var(--line);margin-top:20px;font-size:calc(13.5px*var(--fs,1));color:var(--ink-2)}
.foot-links{display:flex;flex-wrap:wrap;gap:8px 18px;margin:14px 0}
.foot-links a{text-decoration:none}
.foot-links a:hover{text-decoration:underline}
.disclaimer{font-size:calc(12.5px*var(--fs,1));color:var(--muted);max-width:44em}

/* app pages */
.app{max-width:520px;margin:0 auto;padding:18px 20px 60px}
.app-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.back{font-size:calc(14px*var(--fs,1));color:var(--ink-2);text-decoration:none}
.progress{display:flex;gap:6px;margin:6px 0 22px}
.progress div{flex:1;font-size:calc(11.5px*var(--fs,1));color:var(--muted);text-align:center}
.progress div:before{content:"";display:block;height:4px;border-radius:4px;background:var(--line);margin-bottom:6px}
.progress div.on{color:var(--ink);font-weight:600}
.progress div.on:before{background:var(--cin)}
.progress div.done:before{background:var(--ink)}
.app h1{font-family:var(--serif);font-size:calc(28px*var(--fs-h,1));line-height:1.25}
.app .sub{color:var(--muted);font-size:calc(13.5px*var(--fs,1));margin:4px 0 22px}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:var(--shadow)}
.field{margin-bottom:16px}
.field>label,.label{display:block;font-size:calc(13.5px*var(--fs,1));font-weight:600;margin-bottom:7px}
.help{font-size:calc(12px*var(--fs,1));color:var(--muted);margin-top:6px}
input[type=text],input[type=tel],input[type=email],input[type=date],input[type=number],input[type=time],select{width:100%;font:calc(16px*var(--fs,1)) var(--sans);color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 13px;outline:none;transition:border .15s,box-shadow .15s;appearance:none;-webkit-appearance:none}
select{background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 18px) 52%,calc(100% - 13px) 52%;background-size:5px 5px;background-repeat:no-repeat;padding-right:34px}
input:focus,select:focus{border-color:var(--ink);box-shadow:0 0 0 3px rgba(30,28,25,.08)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.row3{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:8px}
.seg{display:flex;background:var(--paper-2);border-radius:12px;padding:4px;gap:4px}
.seg button,.seg label{flex:1;border:0;background:transparent;font:600 calc(14px*var(--fs,1)) var(--sans);padding:9px;border-radius:9px;cursor:pointer;color:var(--ink-2);text-align:center}
.seg input{display:none}
.seg .on,.seg input:checked+span{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.seg label span{display:block;border-radius:9px;padding:0}
.seg label{padding:0}
.seg label span{padding:9px}
.err{color:var(--cin);font-size:calc(13px*var(--fs,1));margin-top:8px;min-height:1em}
.divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:calc(12.5px*var(--fs,1));margin:18px 0}
.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--line)}
.sso{display:grid;gap:10px}
.sso .btn{background:#fff;border:1px solid var(--line);color:var(--ink);justify-content:flex-start;padding:13px 16px;border-radius:14px}
.sso .btn .ico{width:22px;text-align:center;font-weight:800}
.sso .btn.wa{background:#E7F8EE;border-color:#BFE8CF;flex-direction:row}
.sso .btn.wa .t{display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.sso .btn.wa small{font-weight:400;font-size:calc(11.5px*var(--fs,1));color:#2f6b47}
.legal{font-size:calc(12px*var(--fs,1));color:var(--muted);text-align:center;margin-top:18px}
.hidden{display:none!important}
.inline{display:flex;gap:8px}
.inline input{flex:1}

/* result */
.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0 4px}
.pillar{background:var(--paper);border-radius:14px;text-align:center;padding:10px 4px}
.pillar small{font-size:calc(11px*var(--fs,1));color:var(--muted)}
.pillar .g,.pillar .z{font-family:var(--serif);font-weight:900;font-size:calc(30px*var(--fs-h,1));line-height:1.2}
.pillar .w{font-size:calc(11px*var(--fs,1));color:var(--muted)}
.wx-木{color:#2F8A57}.wx-火{color:#D4432F}.wx-土{color:#A0743A}.wx-金{color:#8C8C8C}.wx-水{color:#2F6FA8}
.bg-木{background:#2F8A57}.bg-火{background:#D4432F}.bg-土{background:#B88A4A}.bg-金{background:#A8A39A}.bg-水{background:#2F6FA8}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}
.stat{background:var(--paper);border-radius:14px;padding:10px;text-align:center}
.stat span{display:block;font-size:calc(11.5px*var(--fs,1));color:var(--muted)}
.stat b{font-family:var(--serif);font-size:calc(20px*var(--fs,1))}
.bars{display:grid;gap:7px}
.bar{display:grid;grid-template-columns:24px 1fr 20px;gap:8px;align-items:center;font-size:calc(13px*var(--fs,1))}
.bar .track{height:10px;background:var(--paper-2);border-radius:6px;overflow:hidden}
.bar .fill{height:100%;border-radius:6px}
.callout{background:var(--gold-soft);border-radius:14px;padding:12px 14px;font-size:calc(14px*var(--fs,1));color:#5e4720;margin-top:14px}

/* trial */
.summary{display:grid;gap:8px;margin-bottom:16px}
.summary .line{display:flex;justify-content:space-between;font-size:calc(14.5px*var(--fs,1))}
.summary .line.big{font-size:calc(18px*var(--fs,1));font-weight:700}
.summary .line .muted{color:var(--muted)}
.timeline{display:grid;gap:0;margin:14px 0 18px;position:relative}
.tl{display:grid;grid-template-columns:22px 1fr;gap:10px;padding-bottom:12px;position:relative}
.tl:before{content:"";position:absolute;left:10px;top:18px;bottom:0;width:2px;background:var(--line)}
.tl:last-child:before{display:none}
.tl i{width:22px;height:22px;border-radius:50%;background:var(--jade);display:block;box-shadow:0 0 0 4px var(--jade-soft)}
.tl.b i{background:var(--gold);box-shadow:0 0 0 4px var(--gold-soft)}
.tl.c i{background:var(--ink);box-shadow:0 0 0 4px var(--paper-2)}
.tl b{font-size:calc(14px*var(--fs,1));display:block}
.tl span{font-size:calc(12.5px*var(--fs,1));color:var(--muted)}
.stripe{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}
.stripe .sf{border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none}
.stripe .sf:focus{box-shadow:none;background:#FCFBF8}
.stripe .split{display:grid;grid-template-columns:1fr 1fr}
.stripe .split .sf:first-child{border-right:1px solid var(--line)}
.stripe .last{border-bottom:0}
.card-brand{position:relative}
.card-brand em{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-style:normal;font-size:calc(11px*var(--fs,1));font-weight:800;color:#1a1f71;letter-spacing:.04em}
.secure{font-size:calc(12px*var(--fs,1));color:var(--muted);margin-top:12px;text-align:center}

/* whatsapp */
.optin{display:grid;grid-template-columns:24px 1fr;gap:10px;align-items:start;background:#F1FAF4;border:1px solid #CBEBD7;border-radius:14px;padding:14px;cursor:pointer}
.optin input{width:20px;height:20px;accent-color:#128C7E;margin-top:2px}
.optin span{font-size:calc(14.5px*var(--fs,1));font-weight:600;line-height:1.5}
.cc-row{display:grid;grid-template-columns:120px 1fr;gap:8px}

/* success */
.ok-badge{width:62px;height:62px;border-radius:50%;background:var(--jade);color:#fff;display:grid;place-items:center;font-size:calc(30px*var(--fs-h,1));margin-bottom:14px;box-shadow:0 0 0 8px var(--jade-soft)}

/* dashboard */
.dash-head{display:flex;justify-content:space-between;align-items:center;margin:4px 0 16px}
.dash-head h1{font-size:calc(24px*var(--fs-h,1))}
.tile{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;margin-bottom:14px}
.tile h2{font-size:calc(15px*var(--fs,1));margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}
.tile .muted{color:var(--muted);font-size:calc(13px*var(--fs,1))}
.hj{background:linear-gradient(135deg,#F3EEF8,#EEF5F1);border:1px dashed #C9BEDA}
.hj ul{margin:10px 0 12px 18px;font-size:calc(13.5px*var(--fs,1));color:var(--ink-2)}
.hj li{margin-bottom:4px}
.tabs{display:flex;gap:6px;margin-bottom:10px}
.tabs button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 12px;font:600 calc(13px*var(--fs,1)) var(--sans);cursor:pointer;color:var(--ink-2)}
.tabs button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 16px;border-radius:999px;font-size:calc(14px*var(--fs,1));opacity:0;transition:opacity .2s;pointer-events:none;z-index:50}
.toast.show{opacity:1}
.demo-tag{font-size:calc(11px*var(--fs,1));color:var(--muted);border:1px dashed var(--line);border-radius:999px;padding:3px 9px}

/* legal */
.legal-doc{max-width:760px;margin:0 auto;padding:24px 20px 60px}
.legal-doc h1{font-family:var(--serif);font-size:calc(30px*var(--fs-h,1));margin:10px 0 4px}
.legal-doc h2{font-size:calc(18px*var(--fs,1));margin:26px 0 8px}
.legal-doc p,.legal-doc li{font-size:calc(15px*var(--fs,1));color:var(--ink-2);margin-bottom:8px}
.legal-doc ul{padding-left:20px}
.draft-banner{background:#FFF4D6;border:1px solid #F0D58A;color:#6d5212;border-radius:12px;padding:12px 14px;font-size:calc(14px*var(--fs,1));margin:12px 0 18px}

/* ===== Push card (4:5, scales with container width; 1080px → 30px base) ===== */
.push-wrap{container-type:inline-size;width:100%}
.push{font-size:2.7778cqw;width:100%;aspect-ratio:4/5;position:relative;overflow:hidden;background:#FBF7F0;color:var(--ink);font-family:var(--sans);display:flex;flex-direction:column;padding:2.2em 2.2em 1.7em}
.push:before{content:"";position:absolute;inset:0;background:
   radial-gradient(circle at 92% 6%,rgba(212,67,47,.10) 0 16em,transparent 16em),
   radial-gradient(circle at 1px 1px,rgba(184,146,74,.18) 1px,transparent 0) 0 0/1.1em 1.1em;pointer-events:none}
.push>*{position:relative}
.p-head{display:flex;justify-content:space-between;align-items:center}
.p-brand{display:flex;align-items:center;gap:.5em}
.p-brand .s{width:1.7em;height:1.7em;border-radius:.42em;background:var(--cin);color:#fff;display:grid;place-items:center;font-family:var(--serif);font-weight:900;font-size:1.05em}
.p-brand b{font-family:var(--serif);font-size:1.05em;letter-spacing:.08em}
.p-brand small{display:block;font-size:.55em;color:var(--muted);letter-spacing:.2em;text-transform:uppercase;line-height:1}
.p-for{font-size:.78em;color:var(--ink-2);background:#fff;border:1px solid var(--line);border-radius:99em;padding:.3em .9em}
.p-hero{display:flex;align-items:flex-end;gap:1em;margin:1.3em 0 1.1em}
.p-num{font-family:var(--serif);font-weight:900;font-size:6.4em;line-height:.82;letter-spacing:-.02em}
.p-date{padding-bottom:.25em}
.p-date .a{font-size:1.02em;font-weight:700}
.p-date .b{font-size:.86em;color:var(--ink-2)}
.p-gz{margin-left:auto;text-align:right;padding-bottom:.2em}
.p-gz .big{font-family:var(--serif);font-weight:900;font-size:1.9em;line-height:1.1}
.p-gz .sm{font-size:.74em;color:var(--muted)}
.p-rel{border-radius:.9em;padding:.85em 1em;display:grid;grid-template-columns:2.4em 1fr auto;gap:.8em;align-items:center;background:#fff;border:1px solid var(--line)}
.p-rel .tag{width:2.4em;height:2.4em;border-radius:.6em;display:grid;place-items:center;font-family:var(--serif);font-weight:900;font-size:1.05em;color:#fff;background:var(--ink)}
.p-rel.warn .tag{background:var(--cin)} .p-rel.good .tag{background:var(--jade)} .p-rel.calm .tag{background:#6E6A62}
.p-rel .t{font-size:.86em;font-weight:700;line-height:1.35}
.p-rel .l{font-size:.78em;color:var(--ink-2);line-height:1.4}
.p-rel .sc{text-align:right;font-size:.66em;color:var(--muted)}
.p-rel .sc b{display:block;color:var(--gold);font-size:1.25em;letter-spacing:.05em}
.p-ss{font-size:.78em;color:var(--ink-2);margin:.55em .2em 0}
.p-ss b{color:var(--ink)}
.p-yj{display:grid;grid-template-columns:1fr 1fr;gap:.8em;margin:1em 0}
.p-box{border-radius:.9em;padding:.9em 1em}
.p-box.yi{background:var(--jade-soft)} .p-box.ji{background:var(--cin-soft)}
.p-box .h{display:flex;align-items:center;gap:.45em;margin-bottom:.35em}
.p-box .h b{font-family:var(--serif);font-weight:900;font-size:1.6em;line-height:1}
.p-box.yi .h b{color:var(--jade)} .p-box.ji .h b{color:var(--cin)}
.p-box .terms{font-size:.92em;font-weight:700;letter-spacing:.05em;line-height:1.45}
.p-box .w{font-size:.76em;color:var(--ink-2);margin-top:.45em;line-height:1.45}
.p-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.6em}
.p-grid>div{background:#fff;border:1px solid var(--line);border-radius:.8em;padding:.6em .75em}
.p-grid span{display:block;font-size:.62em;color:var(--muted);letter-spacing:.06em}
.p-grid b{font-size:.86em;line-height:1.35;display:block}
.p-grid .wide{grid-column:span 2}
.p-extra{display:grid;grid-template-columns:1fr 1fr;gap:.35em 1em;margin-top:.8em;font-size:.72em;color:var(--ink-2);border-top:1px dashed var(--line);padding-top:.7em}
.p-extra .full{grid-column:span 2}
.p-extra span{color:var(--muted);margin-right:.6em;font-size:.9em;letter-spacing:.05em}
.p-foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;font-size:.6em;color:var(--muted);padding-top:.8em}
.p-jq{font-size:.82em;color:#7a5c20;background:var(--gold-soft);border-radius:.8em;padding:.5em .8em;margin-top:.6em}

/* ===== responsive ===== */
@media (min-width:760px){
  .hero{padding:64px 0 40px}
  .hero-grid{grid-template-columns:1.15fr .85fr;align-items:center}
  .hero h1{font-size:calc(58px*var(--fs-h,1))}
  .cards{grid-auto-flow:row;grid-template-columns:repeat(2,1fr);overflow:visible;margin:0;padding:4px 0}
  .steps-list{grid-template-columns:repeat(3,1fr)}
  .feats{grid-template-columns:repeat(4,1fr)}
  .sec-head h2{font-size:calc(34px*var(--fs-h,1))}
  .price-row{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center}
  section{padding:60px 0}
}
@media (min-width:1100px){ .cards{grid-template-columns:repeat(4,1fr)} }

/* ===================== v2 · 娱乐化每日卡片 .tc ===================== */
.tc{--bg:#FFF6E6;--ink:#141414;--yi:#12B76A;--ji:#FF4B3E;--sun:#FFD93D;--head:#FFD93D;
  font-family:var(--sans);color:var(--ink);background:var(--bg);display:flex;flex-direction:column;gap:.6em;padding:1.3em;position:relative;overflow:hidden;
  background-image:radial-gradient(circle at 1px 1px,rgba(20,20,20,.07) 1px,transparent 0);background-size:1.2em 1.2em}
.tc.tone-good{--head:#FFD93D}.tc.tone-warn{--head:#FFB3A1}.tc.tone-calm{--head:#9EDBFF}
.tc-img{width:1080px;height:1350px;font-size:30px;padding:1.5em 1.5em 1.1em}
.tc-web{font-size:calc(15px*var(--fs,1));border-radius:22px;border:2px solid var(--ink);box-shadow:5px 5px 0 var(--ink)}
.tc-top{display:flex;align-items:center;gap:.5em;font-size:.82em;font-weight:700}
.tc-logo{display:flex;align-items:center;gap:.35em;font-family:var(--serif);font-weight:900;letter-spacing:.05em}
.tc-logo img{width:1.6em;height:1.6em;display:block}
.tc-logo i{font-style:normal;width:1.6em;height:1.6em;border-radius:.4em;background:#D4432F;color:#fff;display:grid;place-items:center}
.tc-date{background:var(--ink);color:#fff;border-radius:99em;padding:.2em .75em}
.tc-who{margin-left:auto;background:#fff;border:.1em solid var(--ink);border-radius:99em;padding:.15em .7em;white-space:nowrap}
.tc-head{background:var(--head);border:.1em solid var(--ink);border-radius:1em;padding:.75em .9em;display:flex;gap:.6em;align-items:center;box-shadow:.18em .18em 0 var(--ink)}
.tc-quote{flex:1;font-size:1.9em;font-weight:900;line-height:1.22;letter-spacing:.01em}
.tc-sticker{text-align:center;flex:none;transform:rotate(6deg)}
.tc-sticker b{display:block;font-size:2.9em;line-height:1.05;font-family:"Noto Color Emoji",sans-serif}
.tc-sticker span{display:inline-block;font-size:.72em;font-weight:800;background:#fff;border:.12em solid var(--ink);border-radius:.5em;padding:.05em .45em;white-space:nowrap}
.tc-blk{border-radius:1em;border:.1em solid var(--ink);display:grid;grid-template-columns:auto 1fr;gap:.2em .7em;align-items:center;padding:.55em .9em .6em .6em;color:#fff;box-shadow:.18em .18em 0 var(--ink)}
.tc-yi{background:var(--yi)}.tc-ji{background:var(--ji)}
.tc-char{font-family:var(--serif);font-weight:900;font-size:4.1em;line-height:1;width:1.15em;text-align:center;text-shadow:.04em .04em 0 rgba(0,0,0,.25)}
.tc-body ul{list-style:none;display:flex;flex-wrap:wrap;gap:.25em .45em}
.tc-body li{font-size:1.6em;font-weight:900;line-height:1.25;background:rgba(255,255,255,.18);border-radius:.35em;padding:.02em .35em}
.tc-tags{margin-top:.4em;display:flex;gap:.35em;flex-wrap:wrap}
.tc-tags span{font-size:.62em;font-weight:700;background:rgba(0,0,0,.22);border-radius:99em;padding:.1em .6em;opacity:.95}
.tc-jie{font-size:.8em;font-weight:700;margin-top:.4em;background:#fff;color:var(--ink);border-radius:.6em;padding:.25em .6em;line-height:1.4}
.tc-mission{background:var(--ink);color:#fff;border-radius:1em;padding:.7em .9em;display:grid;grid-template-columns:1fr auto;gap:.6em;align-items:center}
.tc-m-k{font-size:.75em;color:var(--sun);font-weight:800;letter-spacing:.05em}
.tc-m-t{font-size:1.25em;font-weight:900;line-height:1.3;margin-top:.1em}
.tc-m-r{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:.25em}
.tc-reply{background:var(--sun);color:var(--ink);font-weight:900;border-radius:.55em;padding:.25em .6em;font-size:.95em;white-space:nowrap}
.tc-streak{font-size:.78em;white-space:nowrap}.tc-streak b{color:var(--sun);font-size:1.25em}
.tc-badge{font-size:.62em;opacity:.85;white-space:nowrap}
.tc-lucky{display:grid;grid-template-columns:repeat(4,1fr);gap:.45em}
.tc-lucky>div{background:#fff;border:.1em solid var(--ink);border-radius:.8em;padding:.4em .55em;box-shadow:.12em .12em 0 var(--ink)}
.tc-lucky span{display:block;font-size:.62em;font-weight:700;color:#6b6b6b}
.tc-lucky b{display:flex;align-items:center;gap:.3em;font-size:.86em;font-weight:900;line-height:1.3}
.tc-lucky .sw{width:.95em;height:.95em;border-radius:50%;border:.1em solid var(--ink);flex:none}
.tc-tips{display:grid;grid-template-columns:1fr 1fr;gap:.45em;font-size:.82em;font-weight:700}
.tc-tips div{background:rgba(255,217,61,.35);border-radius:.7em;padding:.35em .65em;line-height:1.35}
.tc-foot{display:flex;justify-content:space-between;font-size:.6em;color:#777;margin-top:auto}
.tc-old{background:#fff;border:1px dashed #bbb;border-radius:.9em;padding:.6em .8em;font-size:.88em}
.tc-old summary{cursor:pointer;font-weight:800;list-style:none}
.tc-old summary::-webkit-details-marker{display:none}
.tc-old summary:after{content:" ▾";color:#999}
.tc-old dl{display:grid;grid-template-columns:auto 1fr;gap:.3em .8em;margin-top:.6em;font-size:.92em}
.tc-old dt{color:#888;font-weight:700;white-space:nowrap}.tc-old dd{color:#333}
@media (max-width:520px){
  .tc-web .tc-lucky{grid-template-columns:1fr 1fr}
  .tc-web .tc-tips{grid-template-columns:1fr}
  .tc-web .tc-mission{grid-template-columns:1fr}.tc-web .tc-m-r{align-items:flex-start;text-align:left;flex-direction:row;flex-wrap:wrap;align-items:center}
}
.tc-mini.tc-web{font-size:calc(11px*var(--fs,1));box-shadow:3px 3px 0 var(--ink)}
.tc-mini .tc-lucky{grid-template-columns:1fr 1fr}
.tc-mini .tc-tips{grid-template-columns:1fr}

/* habit / streak section */
.habit{background:var(--ink);color:#fff;border-radius:24px;padding:22px;display:grid;gap:18px}
.habit h2{color:#fff}
.habit .sec-head p{color:#cfc8bb}
.loop{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.loop div{background:#232323;border-radius:16px;padding:14px}
.loop b{display:block;font-size:calc(26px*var(--fs-h,1))}
.loop strong{display:block;font-size:calc(15px*var(--fs,1));margin:4px 0 2px}
.loop span{font-size:calc(13px*var(--fs,1));color:#bdb6a8}
.badges{display:flex;flex-wrap:wrap;gap:8px}
.badges span{background:#FFD93D;color:#141414;font-weight:800;border-radius:999px;padding:6px 12px;font-size:calc(13px*var(--fs,1))}
.badges span.lock{background:#333;color:#999}
.chat-demo{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:12px;display:grid;gap:8px;font-size:calc(14px*var(--fs,1))}
.chat-demo .in{background:var(--card);color:var(--ink);border-radius:12px 12px 12px 3px;padding:8px 10px;max-width:88%}
.chat-demo .out{background:#FFD93D;color:#1E1C19;font-weight:800;border-radius:12px 12px 3px 12px;padding:8px 12px;justify-self:end;max-width:80%}
@media (min-width:760px){ .habit{grid-template-columns:1.1fr .9fr;padding:36px;align-items:center} .loop{grid-template-columns:repeat(4,1fr)} }

/* dashboard streak tile */
.streak-tile{background:#141414;color:#fff;border:0}
.streak-tile h2{color:#fff}
.week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:10px 0 12px}
.week div{text-align:center;font-size:calc(11px*var(--fs,1));color:#aaa}
.week i{display:grid;place-items:center;width:34px;height:34px;margin:0 auto 4px;border-radius:50%;background:#2a2a2a;font-style:normal;font-size:calc(16px*var(--fs,1))}
.week i.on{background:#FFD93D}
.week i.today{outline:2px dashed #FFD93D;outline-offset:2px}
.big-streak{font-size:calc(40px*var(--fs-h,1));font-weight:900;line-height:1}
.big-streak small{font-size:calc(14px*var(--fs,1));font-weight:600;color:#ccc;margin-left:6px}
.btn-sun{background:#FFD93D;color:#141414;font-weight:900}
.cards2{display:grid;grid-auto-flow:column;grid-auto-columns:86%;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 20px 22px;margin:0 -20px;scrollbar-width:none}
.cards2::-webkit-scrollbar{display:none}
.cards2>.tc-wrap{scroll-snap-align:center}
@media (min-width:760px){ .cards2{grid-auto-flow:row;grid-template-columns:repeat(2,1fr);overflow:visible;margin:0;padding:4px 6px 10px} }
@media (min-width:1100px){ .cards2{grid-template-columns:repeat(3,1fr)} }
.tc-label{font-size:.75em;font-weight:800;color:#555;margin-bottom:-.2em}
.preview-note{background:#FFF4D6;border:1px solid #F0D58A;color:#6d5212;border-radius:12px;padding:10px 12px;font-size:calc(13.5px*var(--fs,1));margin-bottom:14px;font-weight:600}

.tc-wrap{container-type:inline-size;width:100%}
.tc-top>*{white-space:nowrap}
@container (max-width:460px){
  .tc-web{padding:1em;gap:.55em}
  .tc-web .tc-top{font-size:.74em}
  .tc-web .tc-quote{font-size:1.42em}
  .tc-web .tc-sticker b{font-size:2.3em}
  .tc-web .tc-blk{grid-template-columns:1fr;padding:.6em .75em .7em}
  .tc-web .tc-char{font-size:3em;width:auto;text-align:left;position:absolute;right:.25em;top:.05em;opacity:.95}
  .tc-web .tc-blk{position:relative}
  .tc-web .tc-body{padding-right:2.7em}
  .tc-web .tc-body li{font-size:1.3em}
  .tc-web .tc-jie{margin-right:-2.7em}
  .tc-web .tc-lucky{grid-template-columns:1fr 1fr}
  .tc-web .tc-tips{grid-template-columns:1fr}
  .tc-web .tc-mission{grid-template-columns:1fr}
  .tc-web .tc-m-r{flex-direction:row;flex-wrap:wrap;align-items:center;text-align:left}
}
@container (max-width:300px){ .tc-web .tc-body li{font-size:1.2em} .tc-web .tc-quote{font-size:1.3em} }

/* ---- Stripe 结账：套餐选择 ---- */
.app .btn .sub{color:inherit;margin:3px 0 0;font-size:calc(11.5px*var(--fs,1));opacity:.8}
.plans{display:grid;grid-template-columns:1.15fr 1fr;gap:10px;margin:0 0 14px}
.plan-opt{position:relative;text-align:left;border:2px solid var(--line);background:var(--card);border-radius:var(--r);padding:16px 14px 14px;cursor:pointer;font:inherit;color:var(--ink);display:flex;flex-direction:column;gap:2px;transition:transform .15s,border-color .15s,box-shadow .15s}
.plan-opt:active{transform:scale(.98)}
.plan-opt.on{border-color:var(--cin);box-shadow:0 0 0 4px var(--cin-soft)}
.plan-opt .plan-name{font-size:calc(13px*var(--fs,1));color:var(--ink-2);font-weight:600}
.plan-opt .plan-price{font-family:var(--serif);font-size:calc(22px*var(--fs,1));font-weight:900;line-height:1.2}
.plan-opt .plan-eq{font-size:calc(12px*var(--fs,1));color:var(--muted);line-height:1.4}
.plan-opt[data-plan="yearly"] .plan-eq{color:var(--jade);font-weight:600}
.plan-badge{position:absolute;top:-11px;right:10px;background:var(--cin);color:#fff;font-size:calc(11.5px*var(--fs,1));font-weight:700;border-radius:999px;padding:2px 10px;transform:rotate(3deg);box-shadow:0 2px 6px rgba(212,67,47,.3)}
.plan-opt.on[data-plan="yearly"] .plan-badge{animation:ty-wiggle 1.6s ease-in-out infinite}
@keyframes ty-wiggle{0%,100%{transform:rotate(3deg)}50%{transform:rotate(-3deg) scale(1.06)}}
.notice{background:var(--gold-soft);border:1px solid #E8D7B0;color:var(--ink-2);border-radius:14px;padding:10px 14px;font-size:calc(13.5px*var(--fs,1));margin:0 0 14px}
.notice.ok{background:var(--jade-soft);border-color:#BFE0D2}
.hidden{display:none!important}
.price-eq{font-size:calc(13.5px*var(--fs,1));color:#8FE0C3;margin:2px 0 10px;font-weight:600}
.price-alt{font-size:calc(13px*var(--fs,1));opacity:.75;margin-top:10px}

/* ---- 简 / 繁 切换 ---- */
.script-toggle{display:inline-flex;border:1px solid var(--line);border-radius:999px;background:var(--card);font-size:calc(12px*var(--fs,1));line-height:1;overflow:hidden;flex:none}
.script-toggle button{border:0;background:transparent;font:inherit;color:var(--muted);padding:5px 9px;cursor:pointer}
.script-toggle button.on{background:var(--ink);color:#fff;font-weight:700}
.nav-links .script-toggle{margin-right:6px;vertical-align:middle}
.nav-links{display:flex;align-items:center;gap:8px}
:lang(zh-Hant){--serif:"Noto Serif TC","Noto Serif CJK TC","Songti TC","Noto Serif SC",serif;--sans:"Noto Sans TC","Noto Sans CJK TC","PingFang TC","Microsoft JhengHei","Noto Sans SC",system-ui,-apple-system,sans-serif}

.signed-in{padding:6px 0 4px;text-align:center}.signed-in p{margin:0 0 6px}.signed-in a,#notMeRow a{color:var(--cin)}
#notMeRow{margin:-4px 0 12px}
/* 推送渠道选择（whatsapp.html） */
.ch-pick{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:14px 0 6px}
.ch-opt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;background:var(--card);border:1.5px solid var(--line);border-radius:14px;padding:12px 13px;font:inherit;color:var(--ink);cursor:pointer;position:relative}
.ch-opt b{font-size:calc(15.5px*var(--fs,1))}.ch-opt small{font-size:calc(12px*var(--fs,1));color:var(--muted)}.ch-ic{font-size:calc(20px*var(--fs,1));line-height:1}
.ch-opt[aria-checked=true]{border-color:var(--jade);box-shadow:0 0 0 3px var(--jade-soft)}
.ch-opt .ch-tag{position:absolute;top:8px;right:9px;font-size:calc(10.5px*var(--fs,1));font-weight:700;color:var(--jade);background:var(--jade-soft);border-radius:999px;padding:2px 7px}
.ch-h{font-size:calc(19px*var(--fs,1));margin-bottom:8px}.ch-desc{font-size:calc(14.5px*var(--fs,1));color:var(--ink-2);margin-bottom:10px}
.ch-steps{margin:0 0 14px 18px;padding:0;font-size:calc(14.5px*var(--fs,1));line-height:1.7;color:var(--ink-2)}.ch-steps li{margin-bottom:6px}.ch-steps .btn{margin-top:6px}
.ch-code{display:inline-block;margin:6px 0 0 8px;font:700 calc(17px*var(--fs,1))/1 ui-monospace,Menlo,monospace;letter-spacing:2px;background:var(--gold-soft);border-radius:8px;padding:8px 10px;user-select:all;-webkit-user-select:all}
.ch-done .btn{margin-top:8px}
.btn.disabled{opacity:.38;pointer-events:none}
/* 宜/忌术语：超过 7 个时折叠 */
.tc-tags .x,.terms .x{display:none}
.tc-tags.open .x{display:inline-block}.terms.open .x{display:inline}
.tc-more{font:inherit;font-size:.62em;font-weight:800;color:inherit;background:transparent;border:1.5px dashed currentColor;border-radius:99em;padding:.05em .7em;cursor:pointer;opacity:.85;white-space:nowrap}
.terms .tc-more{font-size:calc(12px*var(--fs,1));padding:1px 8px;vertical-align:1px;color:var(--ink-2)}
/* 首页 · 黄历小课堂（静态文字，爬虫可见） */
.learn{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.learn article{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:var(--shadow)}
.learn article:first-child{grid-column:1/-1}
.learn h3{font-size:calc(16px*var(--fs,1));margin-bottom:6px}.learn p{font-size:calc(14.5px*var(--fs,1));color:var(--ink-2)}
.learn-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
@media (max-width:640px){.learn{grid-template-columns:1fr}}

/* ---- 八字合盘 · 引流 ---- */
.hp{max-width:520px}
.hp-teaser{font-size:calc(13px*var(--fs,1));color:var(--ink-2);background:var(--gold-soft);border:1px solid #E8D7B0;border-radius:12px;padding:10px 12px;margin:0 0 16px;line-height:1.5}
.hp-teaser a{color:var(--cin);font-weight:700;text-decoration:none}
.hp-types{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0 16px}
.hp-type{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;background:var(--card);border:1.5px solid var(--line);border-radius:16px;padding:14px 12px;font:inherit;color:var(--ink);cursor:pointer;min-width:0}
.hp-type b{font-size:calc(14px*var(--fs,1));line-height:1.35;font-weight:700}
.hp-type small{font-size:calc(11.5px*var(--fs,1));color:var(--muted);line-height:1.35}
.hp-emoji{font-size:calc(22px*var(--fs,1));line-height:1}
.hp-type[aria-checked=true],.hp-type.on{border-color:var(--cin);box-shadow:0 0 0 3px var(--cin-soft)}
.hp-form-h{font-family:var(--serif);font-size:calc(17px*var(--fs,1));margin:6px 0 12px;padding-top:6px;border-top:1px dashed var(--line)}
.hp-form-h:first-child{border:0;padding-top:0}
.hp-score{text-align:center;margin:4px auto 6px;width:132px;height:132px;border-radius:50%;display:grid;place-content:center;background:var(--card);border:3px dashed var(--line);box-shadow:none;position:relative}
.hp-score:before{content:"";position:absolute;inset:8px;border-radius:50%;border:1px solid rgba(184,146,74,.25);pointer-events:none}
.hp-score.high{border-color:rgba(35,119,95,.45);background:linear-gradient(160deg,var(--jade-soft),var(--card))}
.hp-score.mid{border-color:rgba(184,146,74,.55);background:linear-gradient(160deg,var(--gold-soft),var(--card))}
.hp-score.low{border-color:rgba(139,132,120,.45);background:linear-gradient(160deg,var(--paper-2),var(--card))}
.hp-score-num{font-family:var(--serif);font-weight:800;font-size:calc(44px*var(--fs-h,1));line-height:1;color:var(--ink);opacity:.92}
.hp-score-num small{font-size:calc(18px*var(--fs,1));margin-left:2px;font-weight:700;opacity:.7}
.hp-score-label{font-size:calc(11px*var(--fs,1));color:var(--muted);letter-spacing:.14em;margin-top:2px}
.hp-score-note{text-align:center;font-size:calc(12.5px*var(--fs,1));color:var(--muted);margin:0 0 10px;letter-spacing:.04em}
.hp-result-title{text-align:center;font-size:calc(19px*var(--fs,1));line-height:1.35;margin:0 0 8px;font-weight:800}
.hp-disc-top{text-align:center;font-size:calc(12.5px*var(--fs,1));color:var(--muted);margin:0 0 12px;line-height:1.5;padding:0 6px}
.hp-meta{text-align:center;font-size:calc(12.5px*var(--fs,1));color:var(--muted);margin:4px 0 10px;line-height:1.5}
.hp-tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-bottom:4px}
.hp-read{margin-top:12px;border-color:#E8D7B0;background:linear-gradient(180deg,#FFFDF7,var(--card))}
.hp-read-kicker{display:inline-block;font-size:calc(12px*var(--fs,1));font-weight:800;letter-spacing:.14em;color:var(--gold);background:var(--gold-soft);border-radius:999px;padding:4px 10px;margin-bottom:12px}
.hp-summary{display:grid;gap:10px}
.hp-summary p{font-size:calc(16px*var(--fs,1));line-height:1.65;color:var(--ink);font-family:var(--serif)}
.hp-summary p:first-child{font-size:calc(17px*var(--fs,1))}
.hp-tips-h{margin:16px 0 8px;font-size:calc(15px*var(--fs,1));font-family:var(--serif);color:var(--ink-2)}
.hp-tips{margin:0;padding-left:1.15em;color:var(--ink-2);font-size:calc(14.5px*var(--fs,1))}
.hp-tips li{margin-bottom:8px}
.hp-save h3,.hp-convert h3{font-family:var(--serif)}
.hp .back{background:none;border:0;color:var(--muted);font:600 calc(14px*var(--fs,1)) var(--sans);cursor:pointer;padding:0;margin-bottom:4px}
.hp-who{display:inline-flex;align-items:center;margin-top:10px;font-size:calc(12.5px*var(--fs,1));font-weight:800;color:var(--cin);background:var(--cin-soft);border:1px solid #F0C9C0;border-radius:999px;padding:5px 12px;letter-spacing:.02em}
.hp .err{color:var(--cin);font-size:calc(13.5px*var(--fs,1));margin-top:10px;min-height:1.2em}

/* 首页合盘钩子 */
.hepan-hooks{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hepan-card{display:flex;flex-direction:column;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 14px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);min-width:0;transition:transform .15s,border-color .15s}
.hepan-card:active{transform:scale(.98)}
.hepan-card:hover{border-color:var(--cin)}
.hepan-card .hc-emoji{font-size:calc(26px*var(--fs-h,1));line-height:1}
.hepan-card b{font-family:var(--serif);font-size:calc(16px*var(--fs,1));line-height:1.3}
.hepan-card span{font-size:calc(12.5px*var(--fs,1));color:var(--muted);line-height:1.4}
.hepan-card .hc-go{margin-top:4px;font-size:calc(13px*var(--fs,1));font-weight:700;color:var(--cin)}
@media (min-width:760px){
  .hepan-hooks{grid-template-columns:repeat(4,1fr)}
}

/* 更多玩法（assets/js/more.js） */
.more-list{display:grid;gap:14px}
.more-item{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;box-shadow:var(--shadow)}
.more-item .hepan-card{box-shadow:none;background:var(--paper)}
.more-head{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}
.more-item .more-head{margin-bottom:14px}
.mi-ic{flex:none;width:44px;height:44px;border-radius:14px;background:var(--cin-soft);display:grid;place-items:center;font-size:calc(22px*var(--fs,1))}
.mi-txt{flex:1;min-width:0}
.mi-txt b{display:block;font-family:var(--serif);font-size:calc(17px*var(--fs,1));line-height:1.3}
.mi-txt small{display:block;font-size:calc(12.5px*var(--fs,1));color:var(--muted);line-height:1.45;margin-top:2px}
.mi-go{flex:none;font-size:calc(13px*var(--fs,1));font-weight:700;color:var(--cin)}
.more-compact .more-row+.more-row{border-top:1px solid var(--line);padding-top:12px}
.more-compact .mi-txt b{font-size:calc(15.5px*var(--fs,1))}
.more-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.more-chip{display:inline-flex;align-items:center;gap:4px;font-size:calc(13.5px*var(--fs,1));font-weight:600;text-decoration:none;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:7px 13px}
.more-chip:hover{border-color:var(--cin);color:var(--cin)}
.tile h2 .more-all{font-size:calc(13px*var(--fs,1));font-weight:700;color:var(--cin);text-decoration:none}
.app-top .app-more{font-size:calc(13.5px*var(--fs,1));font-weight:700;color:var(--cin);text-decoration:none}
@media (max-width:420px){ .nav .nav-links .btn-sm{padding:9px 11px;font-size:calc(13.5px*var(--fs,1))} }
.app-top-r{display:flex;align-items:center;gap:8px}
.more-page{max-width:860px;padding-top:22px;padding-bottom:60px}
.more-page h1{font-family:var(--serif);font-size:calc(28px*var(--fs-h,1));line-height:1.3;margin:10px 0 6px}
.more-page .sub{color:var(--muted);margin-bottom:18px}
@media (max-width:420px){
  .nav:has(.nav-more) .nav-links{gap:6px}
  .nav:has(.nav-more) .logo>span{display:none}
  .nav-more .nm-long{display:none}
}
/* 化解建议（会员） */
.hj .hj-line{font-size:calc(14.5px*var(--fs,1));color:var(--ink-2);line-height:1.6}
.hj .hj-line b{display:inline-block;font-size:calc(12px*var(--fs,1));font-weight:800;color:var(--cin);background:var(--cin-soft);border-radius:999px;padding:2px 9px;margin-right:6px}
.hj ul.hj-tips{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:10px}
.hj-tips li{display:flex;gap:10px;align-items:flex-start;background:rgba(255,255,255,.75);border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin:0}
.hj-tips .hj-ic{flex:none;font-size:calc(20px*var(--fs,1));line-height:1.3}
.hj-tips b{display:block;font-size:calc(14px*var(--fs,1));color:var(--ink)}
.hj-tips p{font-size:calc(13.5px*var(--fs,1));color:var(--ink-2);line-height:1.55;margin-top:2px}
.hj-note{font-size:calc(11.5px*var(--fs,1));color:var(--muted);margin-top:10px}
.hj-locked{position:relative;margin-top:4px}
.hj-blur{filter:blur(5px);user-select:none;pointer-events:none;opacity:.7}
.hj-cta{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:10px;padding:0 18px;text-align:center}
.hj-cta p{font-size:calc(13.5px*var(--fs,1));font-weight:700;color:var(--ink)}

/* 大字模式（assets/js/fontsize.js）：正文 ×1.25，大标题 ×1.1 */
:root{--fs:1;--fs-h:1}
html.ty-lg{--fs:1.25;--fs-h:1.1}
html.ty-lg .tc-img{--fs:1;--fs-h:1}
/* 网页卡片里的宜忌小标签：默认就大一点（7 个一行仍能排开） */
.tc-web .tc-tags span{font-size:.78em}
.tc-web .tc-jie{font-size:.9em}
.fs-toggle{flex:none;display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:26px;padding:0 8px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink-2);font:700 calc(12.5px*var(--fs-h,1))/1 var(--sans);cursor:pointer;margin-right:6px;white-space:nowrap}
.fs-toggle[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.app-top .fs-toggle{margin-right:0}
/* 顶栏 / 导航保持原大小，手机 390px 不挤 */
html.ty-lg .nav,html.ty-lg .app-top,html.ty-lg .progress{--fs:1;--fs-h:1}
@media (max-width:420px){.fs-toggle .fs-l{display:none}}
/* 合盘结果：八字合冲 + 今日黄历条 */
.hp-points{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.hp-points li{display:flex;gap:10px;align-items:flex-start;background:var(--paper);border-radius:14px;padding:10px 12px}
.hp-points b{display:block;font-size:calc(14.5px*var(--fs,1));line-height:1.45}
.hp-points p{font-size:calc(14px*var(--fs,1));color:var(--ink-2);line-height:1.55;margin-top:2px}
.hp-pt-tag{flex:none;min-width:2.4em;text-align:center;font-size:calc(12px*var(--fs,1));font-weight:800;border-radius:999px;padding:3px 8px;margin-top:1px}
.hp-pt-tag.he{background:var(--jade-soft);color:var(--jade)}
.hp-pt-tag.chong{background:var(--cin-soft);color:var(--cin)}
.hp-pt-tag.mid{background:var(--paper-2);color:var(--ink-2)}
.hp-points-panel .hp-read-kicker{margin-bottom:10px}
.hp-teaser{display:grid;gap:4px}
.hpt-top{display:flex;align-items:baseline;gap:8px}
.hpt-top a{margin-left:auto;white-space:nowrap}
.hpt-row{display:flex;gap:6px;align-items:baseline;min-width:0}
.hpt-row i{font-style:normal;font-weight:800;flex:none}.hpt-row i.y{color:var(--jade)}.hpt-row i.j{color:var(--cin)}
.hpt-row span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
@media (min-width:560px){.hp-teaser{grid-template-columns:1fr 1fr}.hpt-top{grid-column:1/-1}}
/* 顶栏：任何宽度都不换行、不重叠 */
.nav .wrap{gap:8px}
.nav .logo{min-width:0;flex:0 1 auto}
.nav .logo>span{white-space:nowrap}
.nav .nav-links{flex:none}
.nav .nav-links .btn{white-space:nowrap}
.nav-more{gap:0}
@media (max-width:540px){
  .nav.nav-crowded .logo>span{display:none}
  .nav-more .nm-long{display:none}
  .fs-toggle .fs-l{display:none}
  .nav.nav-crowded .nav-links{gap:6px}
  .nav.nav-crowded .nav-links .btn-sm{padding:9px 11px}
  .nav.nav-crowded .script-toggle,.nav.nav-crowded .fs-toggle{margin-right:0}
}
@media (max-width:400px){
  .nav.nav-crowded .wrap{padding:0 12px}
  .nav.nav-crowded .nav-links{gap:5px}
  .nav.nav-crowded .nav-links .btn-sm{padding:8px 9px;font-size:13px}
  .nav.nav-crowded .nav-hide-xs{display:none}
}
.app-top{gap:8px}
.app-top .app-more,.app-top .back{white-space:nowrap}
@media (max-width:400px){
  .app-top:has(.app-top-r) .logo>span{display:none}
  .app-top .app-top-r{gap:6px}
}
/* 合盘：已登录时「你」一行 */
.hp-acct{display:flex;align-items:center;gap:10px;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:16px;min-height:46px}
.hp-acct-t{flex:1;min-width:0;font-size:calc(14.5px*var(--fs,1));font-weight:600;line-height:1.45}
.hp-acct-t small{font-weight:500;color:var(--muted);font-size:.86em;margin-left:2px}
.hp-acct-edit{flex:none;border:0;background:none;color:var(--cin);font:700 calc(14px*var(--fs,1)) var(--sans);cursor:pointer;padding:4px 2px}
.hp-skel{display:block;height:12px;border-radius:6px;background:linear-gradient(90deg,var(--paper-2),#F6F1E8,var(--paper-2));background-size:200% 100%;animation:hpSk 1.2s linear infinite;flex:1}
.hp-skel.short{flex:0 0 40px}
@keyframes hpSk{from{background-position:200% 0}to{background-position:-200% 0}}
/* 加载 / 出错状态（接收方式页、受保护页面网络慢时） */
.ch-spin{display:inline-block;width:14px;height:14px;border:2px solid var(--line);border-top-color:var(--cin);border-radius:50%;animation:chSpin .8s linear infinite;vertical-align:-2px;margin-right:6px}
@keyframes chSpin{to{transform:rotate(360deg)}}
.ch-state{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:calc(13.5px*var(--fs,1));color:var(--muted);margin:-4px 0 12px}
.ch-state.error{color:var(--ink-2);background:var(--gold-soft);border:1px solid #E8D7B0;border-radius:12px;padding:8px 12px}
.ch-state.warn{font-size:calc(12.5px*var(--fs,1))}
.ty-loading{position:fixed;inset:0;visibility:visible;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:var(--paper,#F7F3EC);z-index:99;padding:24px;text-align:center;font-size:calc(15px*var(--fs,1));color:var(--ink-2)}
.ty-loading .ch-spin{width:22px;height:22px;margin:0}
.ty-loading-btns{display:flex;gap:10px}
.notice.warn{background:#FDECEA;border-color:#F3C4BE;display:flex;flex-wrap:wrap;align-items:center;gap:8px}

/* 首屏：今天的宜忌小卡（替代旧的手机聊天样机） */
.ht-card{max-width:360px;margin:0 auto;background:var(--card);border:2px solid var(--ink);border-radius:22px;box-shadow:5px 5px 0 var(--ink);padding:14px 16px 12px;display:grid;gap:10px}
.ht-top{display:flex;align-items:center;gap:10px}
.ht-top b{font-size:calc(15px*var(--fs,1))}
.ht-logo{width:30px;height:30px;flex:none}
.ht-row{display:flex;gap:10px;align-items:flex-start}
.ht-row i{flex:none;font-style:normal;font-family:var(--serif);font-weight:900;font-size:calc(20px*var(--fs,1));width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#fff}
.ht-row.y i{background:var(--jade)}.ht-row.j i{background:var(--ink)}
.ht-row span{display:flex;flex-wrap:wrap;gap:6px;padding-top:3px}
.ht-row em{font-style:normal;font-weight:700;font-size:calc(14.5px*var(--fs,1));background:var(--paper);border-radius:999px;padding:4px 10px;line-height:1.35}
.ht-row.y em{background:var(--jade-soft)}
.ht-more{margin:0;font-size:calc(12.5px*var(--fs,1));color:var(--muted);border-top:1px dashed var(--line);padding-top:8px}
@media (max-width:560px){.hero{padding:22px 0 20px}.hero h1{margin:6px 0 10px}.hero .actions{flex-wrap:nowrap}.hero .actions .btn{flex:1 1 auto;justify-content:center;padding-left:14px;padding-right:14px;white-space:nowrap}.hero-grid{gap:22px}}

/* 打卡条（样本区下方，替代整段打卡演示） */
.habit-strip{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;padding:14px 16px;background:var(--card);border:1.5px solid var(--line);border-radius:18px}
.habit-strip .hs-left{display:grid;gap:2px;min-width:0}
.habit-strip b{font-size:calc(15.5px*var(--fs,1))}
.habit-strip span{font-size:calc(13px*var(--fs,1));color:var(--ink-2)}
.hs-badges{display:flex;flex-wrap:wrap;gap:6px}
.hs-badges span{background:var(--paper);border-radius:999px;padding:4px 10px;font-size:calc(12.5px*var(--fs,1));font-weight:700}
.hs-badges .lock{opacity:.45}
.ht-preview{margin:2px 0}.ht-preview .tc-mini,.ht-preview .tc{box-shadow:none;border:0;margin:0;padding:0;background:transparent}
