*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
:root{
  --bg:#F5F8FC;--bg2:#FFFFFF;--bg3:#EEF3F9;
  --blue:#2E7DD1;--blue-l:#E8F2FC;--blue-b:#C2DAFF;
  --pink:#E05580;--pink-l:#FEF0F4;--pink-b:#F9D0DC;
  --green:#28966A;--green-l:#EDFAF4;--green-b:#B0E8CE;
  --amber:#C87820;--amber-l:#FFF6E8;--amber-b:#F5D8A0;
  --red:#D04040;
  --t1:#1A2332;--t2:#3D5068;--t3:#7A90A8;--t4:#B8C8D8;
  --border:#E0E8F0;--tab-h:64px;--safe:env(safe-area-inset-bottom,0px);--app-vh:100vh;--topbar-h:47px;
}
html,body{height:100%;font-family:-apple-system,'PingFang SC','Helvetica Neue',sans-serif;background:var(--bg);color:var(--t1);font-size:15px;line-height:1.58;overscroll-behavior:none;-webkit-text-size-adjust:100%;text-size-adjust:100%}
@supports (height: 100dvh) {
  :root { --app-vh: 100dvh; }
}
#app{max-width:480px;margin:0 auto;min-height:var(--app-vh);background:var(--bg)}

/* ── 登录 ── */
.login-wrap{min-height:var(--app-vh);background:
  radial-gradient(circle at 14% 18%,rgba(121,193,255,.22) 0,rgba(121,193,255,0) 24%),
  radial-gradient(circle at 88% 12%,rgba(46,125,209,.22) 0,rgba(46,125,209,0) 28%),
  linear-gradient(180deg,#F4F9FF 0%,#EDF5FF 40%,#F7FAFF 100%);
display:flex;flex-direction:column;justify-content:center;padding:36px 22px;position:relative;overflow:hidden}
.login-wrap::before{content:'';position:absolute;inset:18px 14px;border-radius:28px;background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(255,255,255,.82));border:1px solid rgba(194,218,255,.9);box-shadow:0 18px 44px rgba(46,125,209,.12);pointer-events:none}
.login-wrap>*:not(.login-circle){position:relative;z-index:1;width:100%;max-width:388px;margin-left:auto;margin-right:auto}
.login-circle{position:absolute;border-radius:50%;pointer-events:none;filter:blur(2px)}
.lc1{width:260px;height:260px;top:-92px;right:-86px;background:radial-gradient(circle,rgba(46,125,209,.20) 0,rgba(46,125,209,.06) 46%,rgba(46,125,209,0) 74%)}
.lc2{width:220px;height:220px;bottom:-78px;left:-82px;background:radial-gradient(circle,rgba(91,159,224,.20) 0,rgba(91,159,224,.05) 50%,rgba(91,159,224,0) 76%)}
.logo-wrap{text-align:center;margin-bottom:26px}
.logo-box{width:74px;height:74px;background:linear-gradient(135deg,#1F7BF2,#5BAAF7);border-radius:22px;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;box-shadow:0 16px 30px rgba(31,123,242,.30),inset 0 1px 0 rgba(255,255,255,.25)}
.logo-title{font-size:28px;font-weight:800;color:#173A62;letter-spacing:3px}
.logo-sub{font-size:12px;color:#547395;margin-top:6px;letter-spacing:.6px}
.seg{display:flex;background:rgba(19,88,180,.08);border:1px solid rgba(194,218,255,.92);border-radius:16px;padding:4px;margin-bottom:20px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:inset 0 1px 0 rgba(255,255,255,.6)}
.seg-btn{flex:1;text-align:center;padding:11px 10px;border-radius:12px;font-size:14px;color:#68829E;cursor:pointer;transition:all .22s;font-weight:700}
.seg-btn.on{background:linear-gradient(180deg,#FFFFFF 0%,#F4F8FF 100%);color:#1F6FD4;box-shadow:0 8px 18px rgba(46,125,209,.12)}
.fld{margin-bottom:14px}
.fld-lbl{font-size:10px;color:#68829E;letter-spacing:1.1px;text-transform:uppercase;margin-bottom:7px;display:block;font-weight:700}
.fld-inp{width:100%;padding:15px 15px;background:rgba(255,255,255,.92);border:1.5px solid rgba(194,218,255,.95);border-radius:16px;font-size:16px;color:#18324F;font-family:inherit;outline:none;transition:border-color .2s,box-shadow .2s,transform .2s;box-shadow:0 8px 18px rgba(46,125,209,.06)}
.fld-inp:focus{border-color:#5B9FE0;box-shadow:0 0 0 4px rgba(46,125,209,.10),0 14px 28px rgba(46,125,209,.08);transform:translateY(-1px)}
.fld-inp::placeholder{color:#A9BDD2}
.btn-pri{width:100%;padding:15px 16px;background:linear-gradient(135deg,#1E78EA,#5BAAF7);border-radius:16px;border:none;color:#fff;font-size:16px;font-weight:800;font-family:inherit;cursor:pointer;letter-spacing:.7px;margin-top:10px;box-shadow:0 14px 28px rgba(31,123,242,.28);transition:transform .2s,opacity .2s,box-shadow .2s}
.btn-pri:active{opacity:.92;transform:translateY(1px);box-shadow:0 10px 18px rgba(31,123,242,.22)}
.btn-pri[disabled]{opacity:.7;transform:none}
.switch-row{text-align:center;font-size:12px;color:var(--t3);margin-top:12px}
.switch-row span{color:var(--blue);cursor:pointer}
.dis-box{margin-top:18px;padding:12px 14px;background:linear-gradient(180deg,rgba(235,244,255,.92),rgba(245,249,255,.88));border:1px solid rgba(194,218,255,.95);border-radius:16px;font-size:11px;color:#6C84A0;text-align:center;line-height:1.8;box-shadow:0 10px 24px rgba(46,125,209,.08)}
.login-icp{margin-top:10px;text-align:center;font-size:11px;color:#7A90A8;line-height:1.7}
.login-icp a{color:#5C7EA6;text-decoration:none}
.login-icp a:active{opacity:.8}
.err{color:var(--red);text-align:center;margin-top:12px;font-size:13px;font-weight:600}

/* ── 顶栏 ── */
.topbar{position:fixed;top:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;z-index:120;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding:8px 14px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 4px 14px rgba(18,77,156,.05)}
.brand{font-size:16px;font-weight:700;color:var(--blue)}
.topbar-note{font-size:12px;font-weight:600;color:#6A85AC;letter-spacing:.2px;white-space:nowrap}
.view-scheme-bar{position:sticky;top:var(--topbar-h);z-index:115;padding:8px 12px;display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}
.view-scheme-lbl{font-size:12px;font-weight:800;color:var(--t2);flex-shrink:0}
.view-scheme-btn{border:1px solid var(--border);background:#fff;color:var(--t2);font-size:12px;font-weight:700;padding:7px 12px;border-radius:999px;cursor:pointer;line-height:1;min-height:34px}
.view-scheme-btn.on{border-color:var(--blue-b);background:var(--blue-l);color:var(--blue)}

/* ── 页面内容 ── */
.page{padding-top:var(--topbar-h);padding-bottom:calc(var(--tab-h) + var(--safe) + 12px)}

/* ── 英雄区 ── */
.hero{background:#fff;border-bottom:1px solid var(--border);padding:16px 16px 18px}
.hero-inner{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.hero-l{flex-shrink:0}
.hero-lbl{font-size:9px;color:var(--t3);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:5px}
.hero-numrow{display:flex;align-items:baseline;gap:3px}
.hero-num{font-size:56px;font-weight:700;color:var(--blue);line-height:1;transition:all .25s}
.hero-unit{font-size:17px;color:var(--blue);opacity:.7}
.hero-r{flex:1}
.fruit-card{background:var(--blue-l);border:1px solid var(--blue-b);border-radius:12px;padding:10px 12px}
.fruit-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.fruit-ico{font-size:26px;line-height:1}
.fruit-name{font-size:15px;font-weight:600;color:var(--t1)}
.fruit-size{font-size:12px;color:var(--t3)}
.due-chip{display:inline-block;background:rgba(46,125,209,0.1);color:var(--blue);font-size:12px;padding:2px 9px;border-radius:20px;font-weight:500;margin-top:4px}
.prog-area{}
.prog-meta{display:flex;justify-content:space-between;margin-bottom:5px}
.prog-t{font-size:10px;color:var(--t3)}
.prog-v{font-size:10px;color:var(--blue);font-weight:500}
.nav-row{display:flex;align-items:center;gap:10px}
.nav-btn{width:30px;height:30px;background:#fff;border:1.5px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}
.nav-arr{width:6px;height:6px;border-right:1.5px solid var(--blue);border-top:1.5px solid var(--blue)}
.nav-arr.l{transform:rotate(-135deg);margin-left:2px}
.nav-arr.r{transform:rotate(45deg);margin-right:2px}
.prog-bar{flex:1;height:5px;background:var(--bg3);border-radius:3px;overflow:hidden}
.prog-fill{height:100%;background:linear-gradient(90deg,var(--blue),#5B9FE0);border-radius:3px;transition:width .4s ease}

/* ── 分区标题 ── */
.sec-hd{padding:12px 16px 6px;font-size:10px;color:var(--t3);letter-spacing:1.5px;text-transform:uppercase;display:flex;align-items:center;gap:6px;font-weight:500}
.sec-hd::after{content:'';flex:1;height:1px;background:var(--border)}

/* ── 卡片 ── */
.cards{padding:0 12px 8px;display:flex;flex-direction:column;gap:8px}
.card{border-radius:14px;border:1px solid;overflow:hidden;background:#fff;cursor:pointer;transition:box-shadow .2s}
.card:active{box-shadow:0 4px 16px rgba(0,0,0,0.1)}
.card-stripe{height:3px}
.card-head{padding:10px 12px 9px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(0,0,0,0.05)}
.card-head-l{display:flex;align-items:center;gap:8px}
.card-ico{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.card-ttl{font-size:14px;font-weight:600}
.card-arrow{width:16px;height:16px;display:flex;align-items:center;justify-content:center;color:var(--t4)}
.card-body-preview{padding:10px 12px 9px}
.preview-md{font-size:11px;line-height:1.7;color:var(--t2)}
.preview-md h2,.preview-md h3{font-size:11px;font-weight:600;margin:6px 0 3px}
.preview-md p{margin-bottom:4px}
.preview-md ul,.preview-md ol{padding-left:14px;margin-bottom:4px}
.preview-md li{margin-bottom:2px}
.card-foot{padding:5px 12px 7px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(0,0,0,0.04)}
.card-src{font-size:11px;display:flex;align-items:center;gap:4px;min-width:0;max-width:72%}
.card-src-dot{width:6px;height:6px;border-radius:1.5px;flex-shrink:0}
.card-src-txt{display:inline-block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit;text-decoration:none}
.card-more{font-size:12px;font-weight:500;display:flex;align-items:center;gap:2px}
.card-summary{padding:10px 12px 9px}
.summary-text{font-size:14px;color:var(--t2);line-height:1.65;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* pink */
.ck-p{border-color:var(--pink-b);background:linear-gradient(180deg,var(--pink-l) 0%,#fff 40%)}
.ck-p .card-stripe{background:linear-gradient(90deg,var(--pink),#F472A0)}
.ck-p .card-ico{background:rgba(224,85,128,0.1)}
.ck-p .card-ttl{color:var(--pink)}
.ck-p .card-more{color:var(--pink)}
.ck-p .card-src{color:var(--pink)}
.ck-p .card-src-dot{background:var(--pink)}
/* blue */
.ck-b{border-color:var(--blue-b);background:linear-gradient(180deg,var(--blue-l) 0%,#fff 40%)}
.ck-b .card-stripe{background:linear-gradient(90deg,var(--blue),#5B9FE0)}
.ck-b .card-ico{background:rgba(46,125,209,0.1)}
.ck-b .card-ttl{color:var(--blue)}
.ck-b .card-more{color:var(--blue)}
.ck-b .card-src{color:var(--blue)}
.ck-b .card-src-dot{background:var(--blue)}
/* green */
.ck-g{border-color:var(--green-b);background:linear-gradient(180deg,var(--green-l) 0%,#fff 40%)}
.ck-g .card-stripe{background:linear-gradient(90deg,var(--green),#50C090)}
.ck-g .card-ico{background:rgba(40,150,106,0.1)}
.ck-g .card-ttl{color:var(--green)}
.ck-g .card-more{color:var(--green)}
.ck-g .card-src{color:var(--green)}
.ck-g .card-src-dot{background:var(--green)}
/* amber */
.ck-a{border-color:var(--amber-b);background:linear-gradient(180deg,var(--amber-l) 0%,#fff 40%)}
.ck-a .card-stripe{background:linear-gradient(90deg,var(--amber),#E0A040)}
.ck-a .card-ico{background:rgba(200,120,32,0.1)}
.ck-a .card-ttl{color:var(--amber)}
.ck-a .card-more{color:var(--amber)}
.ck-a .card-src{color:var(--amber)}
.ck-a .card-src-dot{background:var(--amber)}

.ptr-wrap{position:relative;overflow:hidden}
.ptr-indicator{position:fixed;top:var(--topbar-h);left:50%;width:100%;max-width:480px;height:48px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;color:var(--t3);transform:translate(-50%,-118%);opacity:0;transition:transform .2s ease,opacity .2s ease;z-index:119;background:var(--bg)}
.ptr-indicator.visible{transform:translate(-50%,0);opacity:1}
.ptr-spinner{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}
.ptr-spinner.loading{border-top-color:var(--blue)}
@keyframes spin{to{transform:rotate(360deg)}}
.notice{margin:4px 12px 12px;padding:9px 11px;background:rgba(46,125,209,0.04);border-left:2px solid var(--blue-b);font-size:11px;color:var(--t4);line-height:1.7}
.labor-tip{margin:0 12px 12px;padding:14px 14px 12px;border-radius:14px;background:linear-gradient(145deg,#FFF7EC 0%,#FFFFFF 100%);border:1px solid #F7D9A8;box-shadow:0 6px 18px rgba(245,163,58,.12)}
.labor-tip-title{font-size:13px;line-height:1.8;color:#8A5A16;font-weight:700;margin-bottom:8px}
.labor-tip-item{margin-bottom:8px}
.labor-tip-flag{font-size:13px;line-height:1.6;color:#A46412;font-weight:700;margin-bottom:3px}
.labor-tip-text{font-size:12px;line-height:1.8;color:#6F4B1C}
.labor-tip-foot{font-size:12px;line-height:1.8;color:#8A5A16;font-weight:600;margin-top:2px}

/* ── 症状 ── */
.search-wrap{padding:12px 14px}
.search-box{display:flex;align-items:center;gap:8px;background:#fff;border:1.5px solid var(--border);border-radius:12px;padding:10px 13px}
.search-box input{flex:1;background:none;border:none;outline:none;font-size:14px;color:var(--t1);font-family:inherit}
.search-box input::placeholder{color:var(--t4)}
.tags-row{padding:0 14px 10px;display:flex;flex-wrap:wrap;gap:7px}
.stag{padding:5px 12px;background:#fff;border:1px solid var(--border);border-radius:20px;font-size:12px;color:var(--t2);cursor:pointer;transition:all .2s}
.stag.on{background:var(--blue-l);border-color:var(--blue-b);color:var(--blue);font-weight:500}
.em-section{padding:0 14px 10px}
.em-title{font-size:10px;color:var(--red);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:8px;font-weight:600}
.em-item{background:rgba(208,64,64,0.05);border:1px solid rgba(208,64,64,0.15);border-radius:12px;padding:11px 13px;margin-bottom:7px;cursor:pointer;transition:background .2s}
.em-item:active{background:rgba(208,64,64,0.1)}
.em-item-name{font-weight:600;color:var(--red);font-size:13px}
.em-item-hint{font-size:11px;color:var(--t3);margin-top:2px}
.sym-list{padding:0 14px;display:flex;flex-direction:column;gap:7px}
.sym-item{background:#fff;border:1px solid var(--border);border-radius:12px;padding:12px 13px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;transition:border-color .2s}
.sym-item:active{border-color:var(--blue-b)}
.sym-name{font-size:13px;font-weight:500;color:var(--t1)}
.sym-cat{font-size:11px;color:var(--t3);margin-top:2px}

/* ── 大礼包 ── */
.cl-prog{margin:12px 14px 8px;background:#fff;border:1px solid var(--border);border-radius:14px;padding:14px}
.cl-prog-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}
.cl-prog-lbl{font-size:13px;color:var(--t2);font-weight:600}
.cl-cnt{font-size:20px;font-weight:700;color:var(--blue)}
.cl-sub{font-size:12px;color:var(--t3);margin-left:2px}
.cl-bar-wrap{height:5px;background:var(--bg3);border-radius:3px;overflow:hidden}
.cl-bar-fill{height:100%;background:linear-gradient(90deg,var(--blue),#5B9FE0);border-radius:3px;transition:width .5s}
.stage-nav{display:flex;gap:7px;padding:0 14px 10px;overflow-x:auto}
.stage-btn{flex:1 0 auto;min-width:82px;text-align:center;padding:8px 5px;background:#fff;border:1px solid var(--border);border-radius:10px;font-size:13px;color:var(--t3);cursor:pointer;transition:all .2s}
.stage-btn.on{background:var(--blue-l);border-color:var(--blue-b);color:var(--blue);font-weight:600}
.cl-items{margin:0 14px;background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden}
.cl-item{display:flex;align-items:center;gap:12px;padding:12px 13px;border-bottom:1px solid var(--border)}
.cl-item:last-child{border-bottom:none}
.chk-circle{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}
.chk-circle.on{background:var(--green);border-color:var(--green);color:#fff;font-size:12px;font-weight:700}
.cl-info{flex:1}
.cl-name{font-size:15px;color:var(--t1);font-weight:700}
.cl-name.dn{color:var(--t4);text-decoration:line-through}
.cl-desc{font-size:13px;color:var(--t2);margin-top:4px;line-height:1.75}
.cl-vendors{margin-top:6px}
.cl-vendor{font-size:13px;color:var(--t2);line-height:1.75}
.cl-cat-tag{font-size:11px;color:var(--blue);background:var(--blue-l);padding:2px 7px;border-radius:6px}
.cl-actions{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.cl-del-btn{border:none;background:transparent;color:#9CA3AF;font-size:12px;cursor:pointer;padding:0}
.cl-del-btn:active{color:#EF4444}
.add-cl-btn{margin:10px 14px;padding:12px;background:none;border:1.5px dashed var(--border);border-radius:12px;width:calc(100% - 28px);color:var(--t3);font-size:14px;cursor:pointer;font-family:inherit;transition:all .2s}
.add-cl-btn:active{border-color:var(--blue);color:var(--blue)}

/* ── 产检记录 ── */
.rec-banner{margin:12px 14px;background:linear-gradient(135deg,var(--blue),#5B9FE0);border-radius:14px;padding:16px;color:#fff}
.rec-banner-title{font-size:14px;font-weight:700;margin-bottom:3px}
.rec-banner-sub{font-size:11px;opacity:.85}
.rec-items{padding:0 14px;display:flex;flex-direction:column;gap:10px}
.rec-item{background:#fff;border:1px solid var(--border);border-radius:14px;padding:0;cursor:pointer;transition:all .2s;overflow:hidden}
.rec-item:active{border-color:var(--blue-b);box-shadow:0 2px 12px rgba(46,125,209,0.1)}
.rec-item.upcoming{border-color:var(--amber-b)}
.rec-item-inner{display:flex;align-items:center;gap:12px;padding:13px 14px}
.rec-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.rd-done{background:var(--green)}
.rd-upcoming{background:var(--amber)}
.rd-future{background:var(--t4)}
.rec-info{flex:1}
.rec-name{font-size:14px;font-weight:600;color:var(--t1)}
.rec-date{font-size:12px;color:var(--t3);margin-top:3px}
.rec-badge{font-size:11px;padding:3px 10px;border-radius:10px;font-weight:600;white-space:nowrap;flex-shrink:0}
.rb-done{background:var(--green-l);color:var(--green)}
.rb-soon{background:var(--amber-l);color:var(--amber)}
.rb-future{background:var(--bg3);color:var(--t3)}
.rec-add-btn{margin:12px 14px;padding:14px;background:var(--blue-l);border:1.5px dashed var(--blue-b);border-radius:12px;width:calc(100% - 28px);text-align:center;font-size:14px;color:var(--blue);font-weight:600;cursor:pointer;font-family:inherit;transition:all .2s}
.rec-add-btn:active{background:rgba(46,125,209,0.15)}

/* ── 我的 ── */
.profile-hero{padding:24px 16px 20px;background:linear-gradient(135deg,var(--blue-l),#fff);border-bottom:1px solid var(--border)}
.profile-avatar{width:60px;height:60px;border-radius:18px;background:linear-gradient(135deg,var(--blue),#5B9FE0);display:flex;align-items:center;justify-content:center;font-size:26px;margin-bottom:12px;box-shadow:0 4px 16px rgba(46,125,209,0.2)}
.profile-name{font-size:20px;font-weight:700;color:var(--t1)}
.profile-info{font-size:12px;color:var(--t3);margin-top:5px}
.profile-chip{display:inline-block;margin-top:8px;padding:3px 11px;border-radius:20px;background:var(--blue-l);border:1px solid var(--blue-b);font-size:11px;color:var(--blue)}
.menu-section{padding:12px 14px 0}
.menu-group{background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden;margin-bottom:10px}
.menu-row{display:flex;align-items:center;gap:12px;padding:14px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s}
.menu-row:last-child{border-bottom:none}
.menu-row:active{background:var(--bg3)}
.menu-ico{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.mi-b{background:var(--blue-l)}
.mi-g{background:var(--green-l)}
.mi-a{background:var(--amber-l)}
.mi-r{background:rgba(208,64,64,0.08)}
.menu-txt{flex:1;font-size:14px;color:var(--t1)}
.menu-arr{color:var(--t4);font-size:14px}

/* ── TabBar ── */
.tabbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;background:rgba(255,255,255,0.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border);display:flex;height:var(--tab-h);padding-bottom:var(--safe);z-index:100}
.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;color:var(--t4);font-size:12px;padding-top:3px;transition:color .2s}
.tab.on{color:var(--blue)}
.tab-dot{width:3px;height:3px;border-radius:50%;background:var(--blue);opacity:0;margin-top:-1px}
.tab.on .tab-dot{opacity:1}

/* ── 弹出层 ── */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,0.4);z-index:200;display:flex;align-items:flex-end}
.sheet{background:#fff;border-radius:20px 20px 0 0;width:100%;max-height:90vh;overflow-y:auto;padding-bottom:calc(20px + var(--safe));transition:transform .3s}
.sheet-handle{width:36px;height:4px;background:var(--border);border-radius:2px;margin:12px auto 0}
.sheet-header{padding:14px 16px 10px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);position:sticky;top:0;background:#fff;z-index:10}
.sheet-title{font-size:16px;font-weight:700;color:var(--t1)}
.sheet-close{width:28px;height:28px;border-radius:50%;background:var(--bg3);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--t3);font-size:16px;border:none;font-family:inherit}
.sheet-body{padding:14px 16px}
.card-detail-sheet{max-height:96vh}
.detail-loading{text-align:center;padding:40px 20px;color:var(--t3);font-size:14px}
.dl-dots span{display:inline-block;width:7px;height:7px;background:var(--blue);border-radius:50%;margin:0 3px;animation:dp 1.4s infinite}
.dl-dots span:nth-child(2){animation-delay:.2s}
.dl-dots span:nth-child(3){animation-delay:.4s}
@keyframes dp{0%,80%,100%{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}
.detail-md{font-size:14px;line-height:1.85;color:var(--t2)}
.detail-md h2{font-size:14px;font-weight:700;color:var(--t1);margin:16px 0 6px;padding-bottom:6px;border-bottom:1px solid var(--border)}
.detail-md h3{font-size:13px;font-weight:600;color:var(--t1);margin:12px 0 5px}
.detail-md p{margin-bottom:7px}
.detail-md ul,.detail-md ol{padding-left:16px;margin-bottom:8px}
.detail-md li{margin-bottom:4px}
.detail-md strong{color:var(--t1)}
.detail-md table{width:100%;border-collapse:collapse;margin-bottom:10px;font-size:12px}
.detail-md th,.detail-md td{border:1px solid var(--border);padding:6px 8px;text-align:left}
.detail-md th{background:var(--bg3);font-weight:600;color:var(--t1)}
.detail-src{margin-top:14px;padding:10px;background:var(--bg3);border-radius:8px;font-size:11px;color:var(--t3)}
.detail-src-hd{display:flex;align-items:center;gap:5px;margin-bottom:6px}
.detail-src-item{display:flex;align-items:flex-start;gap:6px;line-height:1.65;margin-bottom:3px}
.detail-src-dot{width:4px;height:4px;border-radius:50%;background:var(--t3);margin-top:7px;flex-shrink:0}

/* 症状弹窗 */
.sym-content{font-size:13px;line-height:1.85;color:var(--t2)}
.sym-content h2,.sym-content h3{font-size:13px;font-weight:600;color:var(--t1);margin:12px 0 5px}
.sym-content p{margin-bottom:7px}
.sym-content ul,.sym-content ol{padding-left:16px;margin-bottom:8px}
.sym-content li{margin-bottom:4px}
/* 紧急 */
.em-alert{color:var(--red);font-size:14px;font-weight:700;text-align:center;margin-bottom:14px}
.em-steps{display:flex;flex-direction:column;gap:9px;margin-bottom:16px}
.em-step{display:flex;gap:10px;align-items:flex-start}
.em-step-num{width:24px;height:24px;border-radius:50%;background:var(--red);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}
.em-step-txt{font-size:13px;color:var(--t2);line-height:1.7;padding-top:2px}
.sos-btn{width:100%;padding:14px;background:linear-gradient(135deg,#D04040,#E06060);color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit;box-shadow:0 4px 14px rgba(208,64,64,0.25)}

/* 弹窗输入 */
.sheet-input{width:100%;padding:12px 14px;background:var(--bg3);border:1px solid var(--border);border-radius:10px;font-size:14px;color:var(--t1);font-family:inherit;outline:none;margin-bottom:11px;transition:border-color .2s}
.sheet-input:focus{border-color:var(--blue)}
.sheet-input::placeholder{color:var(--t4)}
select.sheet-input{-webkit-appearance:none}
.sheet-btn{width:100%;padding:13px;background:linear-gradient(135deg,var(--blue),#5B9FE0);color:#fff;border:none;border-radius:11px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit}
.sheet-msg{text-align:center;margin-top:10px;font-size:13px}

/* 产检记录弹窗 */
.analyze-btn{width:100%;padding:12px;background:linear-gradient(135deg,var(--green),#50C090);color:#fff;border:none;border-radius:11px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;margin-bottom:10px}
.ai-result{margin-top:12px;padding:12px;background:var(--green-l);border:1px solid var(--green-b);border-radius:10px}
.analysis-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:2px 0 10px}
.analysis-tab{border:1px solid var(--border);background:#fff;color:var(--t2);font-size:12px;padding:6px 10px;border-radius:999px;cursor:pointer;line-height:1}
.analysis-tab.on{border-color:var(--blue-b);background:var(--blue-l);color:var(--blue);font-weight:700}
.ai-result-hd{font-size:11px;color:var(--green);font-weight:600;margin-bottom:6px;display:flex;align-items:center;gap:5px}
.ai-result-body{font-size:12px;line-height:1.75;color:var(--t2)}
.ai-result-body h2,.ai-result-body h3{font-size:12px;font-weight:600;color:var(--t1);margin:8px 0 4px}
.ai-result-body p{margin-bottom:5px}
.ai-result-body ul,.ai-result-body ol{padding-left:14px;margin-bottom:5px}
.upload-trigger{border:1.5px dashed var(--blue-b);border-radius:10px;padding:20px 14px;text-align:center;cursor:pointer;background:var(--blue-l);display:block;width:100%;-webkit-tap-highlight-color:rgba(46,125,209,0.1)}
.upload-trigger:active{background:rgba(46,125,209,0.15)}
.upload-hint{font-size:14px;color:var(--blue);font-weight:600}
.upload-sub{font-size:12px;color:var(--t3);margin-top:5px}
.upload-selected{font-size:12px;color:var(--green);font-weight:600;margin-top:6px}
.analyzing-txt{text-align:center;color:var(--green);font-size:13px;margin:10px 0}
/* ── 爸爸工具箱 ── */
.toolkit-hero{margin:14px;background:linear-gradient(135deg,#2E7DD1,#5B9FE0);border-radius:16px;padding:18px;color:#fff;position:relative;overflow:hidden}
.toolkit-hero::after{content:'';position:absolute;right:-20px;top:-20px;width:100px;height:100px;border-radius:50%;background:rgba(255,255,255,0.08)}
.toolkit-hero-title{font-size:16px;font-weight:700;margin-bottom:4px}
.toolkit-hero-sub{font-size:12px;opacity:.85}
.toolkit-grid{padding:0 14px;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.toolkit-item{background:#fff;border:1px solid var(--border);border-radius:16px;padding:16px 14px;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;gap:8px}
.toolkit-item:active{transform:scale(.97);box-shadow:0 4px 16px rgba(46,125,209,0.12)}
.toolkit-item-icon{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px}
.ti-blue{background:var(--blue-l)}
.ti-pink{background:var(--pink-l)}
.ti-green{background:var(--green-l)}
.ti-amber{background:var(--amber-l)}
.ti-purple{background:#F5EEFF}
.toolkit-item-name{font-size:14px;font-weight:600;color:var(--t1)}
.toolkit-item-desc{font-size:11px;color:var(--t3);margin-top:-4px}

/* ── 我的（重设计）── */
.mine-hero{background:linear-gradient(160deg,#EBF4FF 0%,#F5F8FC 100%);padding:20px 16px 0}
.mine-user-card{background:#fff;border-radius:18px;padding:18px;box-shadow:0 2px 16px rgba(46,125,209,0.08);margin-bottom:16px}
.mine-user-top{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.mine-avatar{width:56px;height:56px;border-radius:16px;background:linear-gradient(135deg,var(--blue),#5B9FE0);display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0}
.mine-user-info{}
.mine-username{font-size:18px;font-weight:700;color:var(--t1)}
.mine-user-sub{font-size:12px;color:var(--t3);margin-top:3px}
.mine-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px;background:var(--border);border-radius:12px;overflow:hidden}
.mine-stat{background:#fff;padding:10px 8px;text-align:center}
.mine-stat-val{font-size:20px;font-weight:700;color:var(--blue)}
.mine-stat-lbl{font-size:10px;color:var(--t3);margin-top:2px}
.mine-progress-card{background:#fff;border-radius:14px;padding:14px 16px;margin-bottom:16px;border:1px solid var(--border)}
.mine-prog-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.mine-prog-label{font-size:13px;color:var(--t2);font-weight:500}
.mine-prog-val{font-size:13px;color:var(--blue);font-weight:600}
.mine-prog-bar{height:7px;background:var(--bg3);border-radius:4px;overflow:hidden;margin-bottom:6px}
.mine-prog-fill{height:100%;background:linear-gradient(90deg,var(--blue),#5B9FE0);border-radius:4px;transition:width .5s}
.mine-prog-sub{font-size:11px;color:var(--t3)}
.feedback-tip{padding:11px 12px;border-radius:12px;background:var(--amber-l);border:1px solid var(--amber-b);font-size:13px;line-height:1.7;color:#7A4A1E;margin-bottom:12px}
.feedback-list{display:flex;flex-direction:column;gap:10px}
.feedback-item{padding:13px 14px;border-radius:14px;background:#fff;border:1px solid var(--border);box-shadow:0 3px 12px rgba(16,33,59,.04);cursor:pointer}
.feedback-item-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.feedback-type-tag{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:var(--blue-l);border:1px solid var(--blue-b);font-size:12px;font-weight:700;color:var(--blue)}
.feedback-status-tag{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700}
.feedback-status-tag.is-pending{background:#FFF4E8;color:#C56A1B}
.feedback-status-tag.is-replied{background:var(--green-l);color:var(--green)}
.feedback-status-tag.is-rejected{background:#FEECEC;color:#C44A4A}
.feedback-preview{font-size:14px;line-height:1.8;color:var(--t2);margin-top:10px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.feedback-item-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:var(--t3);margin-top:10px;flex-wrap:wrap}
.feedback-image-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.feedback-thumb{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:12px;border:1px solid var(--border);background:var(--bg3)}
.feedback-detail-block{margin-bottom:14px;padding:13px 14px;border-radius:14px;background:#fff;border:1px solid var(--border)}
.feedback-detail-label{font-size:12px;font-weight:700;color:var(--t3);margin-bottom:7px}
.feedback-detail-text{font-size:14px;line-height:1.85;color:var(--t2);white-space:pre-wrap;word-break:break-word}
.feedback-reply-block{background:var(--green-l);border-color:var(--green-b)}

/* ── 故事讲堂 ── */
.story-banner{margin:12px 14px;background:linear-gradient(135deg,#7C4DCC,#AB7AE0);border-radius:14px;padding:16px;color:#fff}
.story-banner-title{font-size:15px;font-weight:700;margin-bottom:3px}
.story-banner-sub{font-size:12px;opacity:.85}
.story-list{padding:0 14px;display:flex;flex-direction:column;gap:10px}
.story-card{background:#fff;border:1px solid #E8D8F8;border-radius:14px;overflow:hidden;cursor:pointer;transition:box-shadow .2s}
.story-card:active{box-shadow:0 4px 16px rgba(124,77,204,0.15)}
.story-card-top{height:3px;background:linear-gradient(90deg,#7C4DCC,#AB7AE0)}
.story-card-body{padding:15px 14px 14px}
.story-title{font-size:16px;font-weight:800;color:#3A1A60;line-height:1.45;margin-bottom:7px}
.story-preview{font-size:14px;color:var(--t2);line-height:1.75;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.story-foot{padding:9px 14px 11px;display:flex;align-items:center;justify-content:flex-end;border-top:1px solid #F0E8FC}
.story-src{font-size:11px;color:#9B7AC0}
.story-play-hint{font-size:13px;color:#7C4DCC;font-weight:700;letter-spacing:.2px}
.story-actions{display:flex;gap:10px;padding:0 14px 10px}
.story-action-main,.story-action-lite{border:none;border-radius:10px;cursor:pointer}
.story-action-main{flex:1;height:40px;font-size:14px;font-weight:700;background:linear-gradient(135deg,#7C4DCC,#AB7AE0);color:#fff;box-shadow:0 6px 16px rgba(124,77,204,.24)}
.story-action-lite{height:34px;padding:0 12px;align-self:center;font-size:12px;font-weight:600;background:#F5EEFF;color:#7C4DCC;border:1px solid #DEC6FF}
.story-action-main:disabled,.story-action-lite:disabled{opacity:.6;cursor:not-allowed}
/* 故事详情 */
.story-detail-head{text-align:center;padding:8px 0 16px;border-bottom:1px solid var(--border);margin-bottom:16px}
.story-detail-title{font-size:18px;font-weight:700;color:#3A1A60;margin-bottom:6px}
.story-detail-meta{font-size:12px;color:var(--t3)}
.story-content{font-size:15px;line-height:2;color:var(--t1);white-space:pre-wrap;letter-spacing:.3px}
.tts-bar{background:#F5EEFF;border:1px solid #E0C8FF;border-radius:14px;padding:14px 16px;margin-bottom:16px;display:flex;align-items:center;gap:12px}
.tts-play-btn{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#7C4DCC,#AB7AE0);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;box-shadow:0 3px 10px rgba(124,77,204,0.3)}
.tts-info{flex:1}
.tts-label{font-size:13px;font-weight:600;color:#3A1A60}
.tts-sub{font-size:11px;color:#9B7AC0;margin-top:2px}
.tts-progress{flex:1;height:4px;background:#E0C8FF;border-radius:2px;overflow:hidden;margin-top:8px}
.tts-progress-fill{height:100%;background:linear-gradient(90deg,#7C4DCC,#AB7AE0);border-radius:2px;transition:width .3s}
/* 个性化建议 */
.personal-advice-box{margin:14px 0;background:linear-gradient(135deg,#FFF8E7,#FFFBF0);border:1px solid #F5D8A0;border-radius:12px;overflow:hidden}
.pa-header{padding:10px 14px 8px;display:flex;align-items:center;gap:7px;border-bottom:1px solid #F5D8A0}
.pa-icon{font-size:16px}
.pa-title{font-size:13px;font-weight:700;color:#C87820}
.pa-body{padding:10px 14px 12px;font-size:12px;line-height:1.8;color:#5A4020}
.pa-body h2,.pa-body h3{font-size:12px;font-weight:600;color:#A06010;margin:8px 0 4px}
.pa-body p{margin-bottom:5px}
.pa-body ul,.pa-body ol{padding-left:14px;margin-bottom:5px}
.pa-body li{margin-bottom:3px}

/* ── Visual Upgrade 2026 ── */
:root{
  --bg:#EEF3FF;--bg2:#FFFFFF;--bg3:#F3F6FB;
  --blue:#1467FF;--blue-l:#EAF1FF;--blue-b:#B9D2FF;
  --pink:#D04A73;--pink-l:#FFF0F4;--pink-b:#F5C7D5;
  --green:#1A9C7A;--green-l:#EAFBF6;--green-b:#AEE8D9;
  --amber:#C56A1B;--amber-l:#FFF4E8;--amber-b:#F4CC9F;
  --red:#D83D3D;
  --t1:#10213B;--t2:#334E74;--t3:#6F85A6;--t4:#B4C2D8;
  --border:#DDE7F4;
}
html,body{
  font-family:'Outfit','Noto Sans SC','PingFang SC','Hiragino Sans GB',sans-serif;
  background:
    radial-gradient(980px 420px at -8% -10%, rgba(20,103,255,.16), transparent 68%),
    radial-gradient(820px 360px at 108% 0%, rgba(208,74,115,.12), transparent 72%),
    linear-gradient(180deg,#F4F7FF 0%, #EEF3FF 45%, #F6FAFF 100%);
}
body::before{
  content:'';
  position:fixed;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(120deg, rgba(255,255,255,.22) 10%, transparent 38% 62%, rgba(255,255,255,.16) 88%);
  z-index:0;
}
#app{
  position:relative;
  z-index:1;
  max-width:520px;
  background:
    radial-gradient(440px 220px at 104% -6%, rgba(255,137,190,.14), transparent 70%),
    radial-gradient(360px 190px at -4% 16%, rgba(104,149,255,.16), transparent 72%),
    linear-gradient(180deg,#F8FAFF 0%, #F2F6FF 55%, #F7FBFF 100%);
  box-shadow:0 18px 56px rgba(28,59,119,.16);
  overflow:hidden;
}
#app::before{
  content:'';
  position:absolute;
  right:-86px;
  top:138px;
  width:220px;
  height:220px;
  border-radius:50%;
  background:radial-gradient(circle at 30% 30%, rgba(255,183,214,.46), rgba(255,183,214,0) 72%);
  pointer-events:none;
}
#app::after{
  content:'';
  position:absolute;
  left:-82px;
  top:420px;
  width:210px;
  height:210px;
  border-radius:50%;
  background:radial-gradient(circle at 65% 40%, rgba(125,169,255,.36), rgba(125,169,255,0) 74%);
  pointer-events:none;
}

.topbar{
  min-height:47px;
  padding:8px 14px;
  background:linear-gradient(120deg,rgba(255,255,255,.92),rgba(243,248,255,.88));
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(198,216,248,.76);
  box-shadow:0 4px 18px rgba(20,103,255,.09);
}
.brand{
  font-size:17px;
  font-weight:800;
  letter-spacing:.5px;
  color:#134EA4;
}
.topbar-note{
  font-size:12px;
  font-weight:700;
  color:#6A85AC;
}
.view-scheme-bar{
  top:56px;
  padding:9px 12px 10px;
  background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(247,251,255,.9));
}
.page{padding-bottom:calc(var(--tab-h) + var(--safe) + 18px)}

.hero{
  margin:14px 12px 12px;
  padding:20px 16px 21px;
  border:1px solid rgba(20,103,255,.16);
  border-radius:24px;
  background:
    radial-gradient(120px 80px at 96% 18%, rgba(255,255,255,.48), transparent 70%),
    linear-gradient(145deg,#F1F6FF 0%, #FFFFFF 46%, #F4F7FF 100%);
  box-shadow:0 14px 36px rgba(20,103,255,.14);
}
.hero-lbl{
  font-size:11px;
  letter-spacing:1px;
  color:#5E7EA7;
  font-weight:700;
}
.hero-num{
  font-size:60px;
  color:#0F5DD8;
  text-shadow:0 5px 18px rgba(20,103,255,.22);
}
.fruit-card{
  border-radius:14px;
  border:1px solid rgba(20,103,255,.22);
  background:linear-gradient(145deg,#EEF4FF 0%, #FFFFFF 100%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.8);
}
.fruit-name{font-size:16px}
.fruit-size{font-size:13px}
.due-chip{
  font-size:13px;
  font-weight:600;
  background:rgba(20,103,255,.13);
}
.nav-btn{
  width:34px;
  height:34px;
  border:1px solid rgba(20,103,255,.24);
  box-shadow:0 6px 14px rgba(20,103,255,.14);
}

.sec-hd{
  padding:14px 16px 9px;
  font-size:12px;
  font-weight:800;
  letter-spacing:1.3px;
  color:#5477A4;
}
.cards{padding:0 12px 12px;gap:14px}
.card{
  border-radius:18px;
  box-shadow:0 10px 28px rgba(30,69,134,.1);
  transition:transform .26s ease, box-shadow .26s ease, border-color .26s ease;
  position:relative;
  overflow:hidden;
}
.card:active{
  transform:translateY(1px) scale(.992);
  box-shadow:0 6px 18px rgba(30,69,134,.16);
}
.card::after{
  content:'';
  position:absolute;
  right:-26px;
  top:-26px;
  width:84px;
  height:84px;
  border-radius:50%;
  background:rgba(255,255,255,.25);
  pointer-events:none;
}
.card-stripe{height:4px}
.card-head{padding:13px 14px 11px;border-bottom:1px solid rgba(21,71,141,.08)}
.card-ttl{font-size:16px;font-weight:800;line-height:1.35}
.card-body-preview,.card-summary{padding:12px 13px 10px}
.summary-text{font-size:13px;line-height:1.8}
.card-more{font-size:13px;font-weight:700}
.notice{
  font-size:13px;
  border-left:0;
  border-radius:12px;
  background:linear-gradient(145deg,#F1F6FF,#FFFFFF);
  box-shadow:inset 0 0 0 1px rgba(20,103,255,.14);
}
.labor-tip{
  border-color:#F1C98D;
  box-shadow:0 10px 22px rgba(217,139,34,.16);
}

.toolkit-hero{
  border:1px solid rgba(20,103,255,.16);
  background:linear-gradient(128deg,#0E6BFF 0%,#2E9DE4 58%,#6E7BFF 100%);
  box-shadow:0 14px 32px rgba(20,103,255,.26);
  position:relative;
}
.toolkit-hero::before{
  content:'';
  position:absolute;
  left:-24px;
  bottom:-24px;
  width:120px;
  height:120px;
  border-radius:50%;
  background:rgba(255,255,255,.14);
}
.toolkit-hero::after{
  content:'';
  position:absolute;
  right:-18px;
  top:-22px;
  width:100px;
  height:100px;
  border-radius:50%;
  background:rgba(255,255,255,.18);
}
.toolkit-layout{padding:0 14px 14px}
.toolkit-primary{
  border-radius:20px;
  padding:16px 15px;
  margin-bottom:12px;
  border:1px solid #BED4FF;
  background:linear-gradient(145deg,#EAF2FF 0%, #FFFFFF 55%, #F3EEFF 100%);
  box-shadow:0 12px 26px rgba(20,103,255,.2);
  position:relative;
  overflow:hidden;
  cursor:pointer;
}
.toolkit-primary::after{
  content:'';
  position:absolute;
  right:-26px;
  top:-20px;
  width:120px;
  height:120px;
  border-radius:50%;
  background:rgba(20,103,255,.16);
}
.toolkit-primary-row{display:flex;align-items:flex-start;gap:12px;position:relative;z-index:1}
.toolkit-primary-badge{display:inline-block;font-size:10px;color:#0E60E8;background:#DFECFF;border:1px solid #BED4FF;border-radius:999px;padding:4px 9px;margin-bottom:8px;font-weight:700}
.toolkit-primary-title{font-size:20px;line-height:1.35;color:#0F4DA3;font-weight:900}
.toolkit-primary-desc{font-size:13px;line-height:1.75;color:#3A6AA2;margin-top:6px}
.toolkit-primary-cta{margin-top:10px;font-size:12px;color:#0C62ED;font-weight:800}
.toolkit-subgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.toolkit-item{
  padding:17px 14px;
  border-radius:18px;
  border:1px solid rgba(179,205,242,.54);
  box-shadow:0 9px 22px rgba(37,65,120,.12);
  background:linear-gradient(180deg,#FFFFFF 0%, #F6FAFF 100%);
}
.toolkit-item:active{box-shadow:0 10px 26px rgba(20,103,255,.2)}
.toolkit-item-name{font-size:16px;font-weight:800}
.toolkit-item-desc{font-size:13px;line-height:1.5}
.toolkit-item:nth-child(4n+1){background:linear-gradient(180deg,#FFFFFF 0%,#F2F8FF 100%)}
.toolkit-item:nth-child(4n+2){background:linear-gradient(180deg,#FFFFFF 0%,#F0FBF6 100%)}
.toolkit-item:nth-child(4n+3){background:linear-gradient(180deg,#FFFFFF 0%,#F6F2FF 100%)}
.toolkit-item:nth-child(4n){background:linear-gradient(180deg,#FFFFFF 0%,#FFF3F8 100%)}

.rec-banner{
  box-shadow:0 10px 30px rgba(20,103,255,.2);
}
.rec-item{
  border-radius:16px;
  box-shadow:0 8px 20px rgba(32,66,126,.06);
}

.story-banner{
  border:1px solid rgba(20,103,255,.16);
  background:linear-gradient(130deg,#0E6BFF,#2899D8);
  box-shadow:0 14px 28px rgba(20,103,255,.26);
}
.story-card{
  border-color:#C8E5F3;
  box-shadow:0 9px 22px rgba(18,87,168,.11);
}
.story-card-top{background:linear-gradient(90deg,#0F6DFF,#29A5D8)}
.story-title{color:#124A8C}
.story-src,.story-play-hint{color:#2B7EB1}
.story-action-main{background:linear-gradient(135deg,#0F6DFF,#29A5D8);box-shadow:0 10px 20px rgba(20,103,255,.27)}
.story-action-lite{background:#EAF4FF;color:#2B7EB1;border-color:#C9E2FF}
.tts-bar{
  background:#EAF4FF;
  border:1px solid #C9E2FF;
}
.tts-play-btn{
  background:linear-gradient(135deg,#0F6DFF,#2CA3D7);
  box-shadow:0 4px 14px rgba(20,103,255,.28);
}
.tts-label{color:#124A8C}
.tts-sub{color:#4C7FA8}
.tts-progress{background:#CFE3FA}
.tts-progress-fill{background:linear-gradient(90deg,#0F6DFF,#2CA3D7)}

.mine-hero{
  background:linear-gradient(165deg,#E8F1FF 0%,#F5F8FF 62%,#F4F9FF 100%);
}
.mine-user-card,.mine-progress-card{
  border:1px solid rgba(20,103,255,.12);
  box-shadow:0 12px 26px rgba(20,103,255,.12);
}
.mine-avatar{
  box-shadow:0 10px 20px rgba(20,103,255,.24);
}

.menu-group,.sym-item,.cl-items,.cl-prog,.rec-item,.story-card,.sheet,.toolkit-item,.card{
  border-color:rgba(20,103,255,.14);
}
.search-box,.sheet-input,.fld-inp{
  border-color:rgba(20,103,255,.18);
  background:linear-gradient(180deg,#FFFFFF,#F7FBFF);
}
.sheet-input,.sheet-btn,.btn-pri,.analyze-btn,.sos-btn,.rec-add-btn,.add-cl-btn{min-height:44px}
.fld-inp:focus,.sheet-input:focus{
  box-shadow:0 0 0 4px rgba(20,103,255,.12);
  border-color:rgba(20,103,255,.45);
}

.btn-pri,.sheet-btn{
  background:linear-gradient(135deg,#0F6DFF,#2C97FF);
  box-shadow:0 8px 22px rgba(20,103,255,.28);
}
.analyze-btn{
  background:linear-gradient(135deg,#1AA37E,#23C79A);
  box-shadow:0 8px 18px rgba(26,156,122,.24);
}
.sos-btn{
  box-shadow:0 8px 20px rgba(216,61,61,.26);
}

.overlay{
  background:rgba(11,24,46,.48);
  backdrop-filter:blur(2px);
}
.sheet{
  border-radius:22px 22px 0 0;
  box-shadow:0 -12px 32px rgba(8,20,45,.22);
}
.sheet-header{
  background:rgba(255,255,255,.86);
  backdrop-filter:blur(10px);
}

.tabbar{
  bottom:10px;
  width:calc(100% - 20px);
  max-width:480px;
  border:1px solid rgba(20,103,255,.18);
  border-radius:18px;
  height:58px;
  box-shadow:0 14px 26px rgba(20,103,255,.2);
}
.tab{font-size:11px;font-weight:600}
.tab-dot{width:4px;height:4px}

/* ── 阅读方案（同一HTML内多方案） ── */
html[data-ui-scheme="compact"] body{font-size:15px}
html[data-ui-scheme="compact"] .hero{margin:10px;border-radius:18px}
html[data-ui-scheme="compact"] .hero-num{font-size:50px}
html[data-ui-scheme="compact"] .sec-hd{padding:12px 14px 6px;font-size:10px}
html[data-ui-scheme="compact"] .cards{gap:10px}
html[data-ui-scheme="compact"] .card-ttl{font-size:15px}
html[data-ui-scheme="compact"] .summary-text{font-size:14px;line-height:1.65}
html[data-ui-scheme="compact"] .toolkit-item-name{font-size:14px}
html[data-ui-scheme="compact"] .toolkit-item-desc{font-size:11px}
html[data-ui-scheme="compact"] .toolkit-primary-title{font-size:18px}
html[data-ui-scheme="compact"] .toolkit-primary-desc{font-size:12px}
html[data-ui-scheme="compact"] .tab{font-size:11px}

html[data-ui-scheme="clear"] body{font-size:16px}
html[data-ui-scheme="clear"] .hero{margin:12px;border-radius:22px}
html[data-ui-scheme="clear"] .hero-num{font-size:58px}
html[data-ui-scheme="clear"] .fruit-name{font-size:17px}
html[data-ui-scheme="clear"] .fruit-size{font-size:13px}
html[data-ui-scheme="clear"] .due-chip{font-size:13px}
html[data-ui-scheme="clear"] .sec-hd{font-size:12px;letter-spacing:1.3px}
html[data-ui-scheme="clear"] .card-ttl{font-size:17px}
html[data-ui-scheme="clear"] .summary-text{font-size:16px;line-height:1.75}
html[data-ui-scheme="clear"] .card-head{padding:13px 14px 11px}
html[data-ui-scheme="clear"] .card-summary{padding:13px 14px 11px}
html[data-ui-scheme="clear"] .card-more{font-size:14px}
html[data-ui-scheme="clear"] .notice{font-size:13px;line-height:1.8}
html[data-ui-scheme="clear"] .labor-tip-title{font-size:15px}
html[data-ui-scheme="clear"] .labor-tip-flag{font-size:14px}
html[data-ui-scheme="clear"] .labor-tip-text{font-size:14px;line-height:1.9}
html[data-ui-scheme="clear"] .labor-tip-foot{font-size:14px}
html[data-ui-scheme="clear"] .toolkit-item-name{font-size:16px}
html[data-ui-scheme="clear"] .toolkit-item-desc{font-size:13px}
html[data-ui-scheme="clear"] .toolkit-primary-title{font-size:21px}
html[data-ui-scheme="clear"] .toolkit-primary-desc{font-size:14px}
html[data-ui-scheme="clear"] .view-scheme-btn{font-size:13px}
html[data-ui-scheme="clear"] .sheet-title{font-size:18px}
html[data-ui-scheme="clear"] .sheet-input{font-size:16px}
html[data-ui-scheme="clear"] .sheet-btn{font-size:16px}
html[data-ui-scheme="clear"] .detail-md{font-size:16px;line-height:1.95}
html[data-ui-scheme="clear"] .tab{font-size:12px}

html[data-ui-scheme="large"] body{font-size:17px}
html[data-ui-scheme="large"] .hero{margin:12px;border-radius:24px}
html[data-ui-scheme="large"] .hero-num{font-size:62px}
html[data-ui-scheme="large"] .fruit-name{font-size:18px}
html[data-ui-scheme="large"] .fruit-size{font-size:14px}
html[data-ui-scheme="large"] .due-chip{font-size:14px}
html[data-ui-scheme="large"] .sec-hd{font-size:13px;letter-spacing:1.1px}
html[data-ui-scheme="large"] .card-head{padding:14px 14px 12px}
html[data-ui-scheme="large"] .card-ttl{font-size:18px}
html[data-ui-scheme="large"] .summary-text{font-size:17px;line-height:1.82}
html[data-ui-scheme="large"] .card-more{font-size:15px}
html[data-ui-scheme="large"] .notice{font-size:14px;line-height:1.9}
html[data-ui-scheme="large"] .toolkit-item-name{font-size:17px}
html[data-ui-scheme="large"] .toolkit-item-desc{font-size:14px}
html[data-ui-scheme="large"] .toolkit-primary-title{font-size:23px}
html[data-ui-scheme="large"] .toolkit-primary-desc{font-size:15px}
html[data-ui-scheme="large"] .sheet-title{font-size:20px}
html[data-ui-scheme="large"] .sheet-input{font-size:17px}
html[data-ui-scheme="large"] .sheet-btn{font-size:17px}
html[data-ui-scheme="large"] .detail-md{font-size:17px;line-height:2}
html[data-ui-scheme="large"] .view-scheme-btn{font-size:13px;min-height:38px}
html[data-ui-scheme="large"] .tab{font-size:13px}

@keyframes riseIn{
  from{opacity:0;transform:translateY(12px)}
  to{opacity:1;transform:translateY(0)}
}
.hero,.toolkit-hero,.mine-user-card,.mine-progress-card{animation:riseIn .52s ease both}
.cards .card,.toolkit-item,.rec-item,.story-card{animation:riseIn .45s ease both}
.cards .card:nth-child(1),.toolkit-item:nth-child(1){animation-delay:.02s}
.cards .card:nth-child(2),.toolkit-item:nth-child(2){animation-delay:.06s}
.cards .card:nth-child(3),.toolkit-item:nth-child(3){animation-delay:.1s}
.cards .card:nth-child(4),.toolkit-item:nth-child(4){animation-delay:.14s}

@media (min-width:768px){
  #app{
    margin:18px auto;
    min-height:calc(100vh - 36px);
    border-radius:24px;
    overflow:hidden;
  }
}
@media (prefers-reduced-motion:reduce){
  .hero,.toolkit-hero,.mine-user-card,.mine-progress-card,.cards .card,.toolkit-item,.rec-item,.story-card{animation:none}
}

/* ── Father Mode 2026 ── */
.view-scheme-bar{display:none !important}
.hero.hero-mission{
  padding:18px 16px 18px;
  border-radius:28px;
  background:
    radial-gradient(220px 140px at 100% 0%, rgba(156,214,255,.22), transparent 68%),
    radial-gradient(220px 150px at 0% 100%, rgba(98,156,255,.22), transparent 72%),
    linear-gradient(155deg,#062C74 0%,#0B4AC4 42%,#1381F3 100%);
  color:#fff;
  box-shadow:0 0 0 1px rgba(145,196,255,.12),0 18px 34px rgba(9,56,148,.34),0 0 26px rgba(26,126,255,.18);
  border:1px solid rgba(159,210,255,.12);
}
.hero-chip-row{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.hero-chip{display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.5px}
.hero-chip-live{background:rgba(255,255,255,.16);box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}
.hero-chip-outline{background:rgba(255,255,255,.12);box-shadow:inset 0 0 0 1px rgba(255,255,255,.2)}
.hero-mission-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}
.hero-mission-head.is-compact{align-items:center}
.hero-kicker{font-size:28px;line-height:1.18;font-weight:900;letter-spacing:.2px;max-width:220px}
.hero-mission-copy{font-size:13px;line-height:1.8;opacity:.95;margin-top:8px;max-width:248px}
.hero-mission-anchor{width:116px;min-height:102px;border:none;border-radius:24px;padding:14px 12px;background:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,.12));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18),0 10px 20px rgba(5,24,78,.18);display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;text-align:left;flex-shrink:0}
.hero-mission-anchor-kicker{font-size:11px;font-weight:800;opacity:.8;letter-spacing:.7px}
.hero-mission-anchor-main{font-size:15px;line-height:1.45;font-weight:900}
.hero-mission-anchor-arrow{font-size:16px;font-weight:900;opacity:.95}
.hero-mission-ring{width:102px;height:102px;border-radius:50%;padding:10px;background:conic-gradient(from 220deg,#FFFFFF 0%,rgba(255,255,255,.88) 18%,rgba(255,255,255,.28) 18%,rgba(255,255,255,.14) 100%);box-shadow:0 12px 24px rgba(8,38,92,.2);flex-shrink:0}
.hero-mission-ring-inner{width:100%;height:100%;border-radius:50%;background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(233,244,255,.98));display:flex;flex-direction:column;align-items:center;justify-content:center;color:#0F5DD8}
.hero-mission-ring-num{font-size:42px;line-height:1;font-weight:900}
.hero-mission-ring-unit{font-size:13px;font-weight:800;margin-top:2px}
.hero-dashboard{display:grid;grid-template-columns:1.2fr .9fr;gap:12px;margin-bottom:16px}
.hero-dashboard-card,.hero-fruit-card{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.hero-dashboard-card{border-radius:18px;padding:14px 14px 13px}
.hero-dashboard-card.is-setup{display:flex;flex-direction:column;justify-content:flex-start}
.hero-dashboard-label{font-size:11px;opacity:.8;font-weight:700;letter-spacing:.6px}
.hero-dashboard-main{font-size:24px;line-height:1.25;font-weight:900;margin-top:6px}
.hero-dashboard-sub{font-size:12px;line-height:1.7;opacity:.88;margin-top:6px}
.hero-dashboard-cta{margin-top:12px;height:38px;border:none;border-radius:12px;padding:0 14px;background:#fff;color:#0A59D8;font-size:13px;font-weight:900;align-self:flex-start;box-shadow:0 8px 16px rgba(7,35,108,.16)}
.hero-fruit-card{border-radius:18px;padding:12px 12px 11px}
.hero-fruit-card .fruit-name,.hero-fruit-card .fruit-size,.hero-fruit-card .due-chip{color:#fff}
.hero-fruit-card .due-chip{background:rgba(255,255,255,.14)}
.hero-fruit-card .fruit-row{margin-bottom:8px;gap:10px}
.hero-fruit-card .fruit-ico{width:40px;height:40px;display:flex;align-items:center;justify-content:center}
.fruit-emoji-img{display:block;width:40px;height:40px;object-fit:contain;filter:drop-shadow(0 3px 6px rgba(7,35,108,.16))}
.meeting-progress-card{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.16);border-radius:20px;padding:14px 14px 16px;margin-bottom:14px}
.meeting-progress-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.meeting-progress-top .prog-t,.meeting-progress-top .prog-v{color:#fff;font-size:12px;font-weight:800}
.meeting-progress-track{position:relative;height:42px}
.duo-track-line{position:absolute;left:16px;right:16px;top:14px;height:10px;border-radius:999px;background:rgba(255,255,255,.22)}
.duo-track-fill{position:absolute;left:16px;top:14px;height:10px;border-radius:999px;background:linear-gradient(90deg,#FFFFFF,#FFF2C7);box-shadow:0 0 12px rgba(255,255,255,.34)}
.duo-endpoint{position:absolute;top:4px}
.duo-endpoint-left{left:8px}
.duo-endpoint-right{right:8px}
.duo-endpoint-icon{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.88);font-size:14px;box-shadow:0 6px 10px rgba(9,38,92,.2)}
.duo-walker{position:absolute;top:-2px;transform:translateX(-50%);text-align:center;max-width:92px}
.duo-walker-icon{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:26px;padding:0 8px;border-radius:999px;background:#fff;font-size:13px;box-shadow:0 8px 14px rgba(9,38,92,.26)}
.duo-walker-text{font-size:11px;color:#F3F8FF;font-weight:800;margin-top:4px;white-space:nowrap}
.duo-final{position:absolute;right:6px;top:-1px;display:flex;flex-direction:column;align-items:center;text-align:center}
.duo-final-icons{display:inline-flex;align-items:center;gap:4px;min-height:28px;padding:0 10px;border-radius:999px;background:#fff;box-shadow:0 8px 14px rgba(9,38,92,.26)}
.duo-final-icons span{font-size:14px;line-height:1}
.duo-final-text{font-size:11px;color:#F3F8FF;font-weight:800;margin-top:4px;white-space:nowrap}
.meeting-progress-legend{display:flex;justify-content:space-between;align-items:center;margin-top:8px}
.legend-item{display:flex;align-items:center;gap:5px;font-size:11px;color:#ECF4FF;font-weight:700}
.legend-icon{font-size:13px;line-height:1}
.hero-action-row{display:flex;gap:10px}
.hero-nav-btn{height:42px;border:none;border-radius:14px;padding:0 16px;font-size:13px;font-weight:800;background:rgba(255,255,255,.16);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.2)}
.hero-nav-btn-pri{background:#fff;color:#0F63E8}
.card-more{letter-spacing:.2px}

.toolkit-hero-kicker{font-size:11px;font-weight:900;letter-spacing:1.6px;opacity:.76;margin-bottom:8px}
.toolkit-arsenal-wall{display:flex;flex-direction:column;gap:12px}
.toolkit-icon-shell{box-shadow:inset 0 0 0 1px rgba(255,255,255,.45),0 8px 14px rgba(20,103,255,.12)}
.toolkit-featured{padding:16px 15px;border-radius:20px;border:1px solid rgba(198,144,56,.24);background:linear-gradient(145deg,#FFF8E7 0%,#FFFFFF 52%,#FFF4DA 100%);box-shadow:0 12px 26px rgba(207,154,56,.16);cursor:pointer;position:relative;overflow:hidden}
.toolkit-featured::after{content:'';position:absolute;right:-24px;bottom:-24px;width:120px;height:120px;border-radius:50%;background:rgba(255,207,120,.2)}
.toolkit-featured-head{position:relative;z-index:1;display:flex;align-items:center;gap:12px;margin-bottom:10px}
.toolkit-featured-title{font-size:22px;line-height:1.2;font-weight:900;color:#7D4D0E}
.toolkit-featured-desc{position:relative;z-index:1;font-size:13px;line-height:1.8;color:#7A6237}
.toolkit-featured-cta{position:relative;z-index:1;margin-top:10px;font-size:12px;font-weight:900;color:#A56C12}
.toolkit-gear-grid{grid-template-columns:1fr 1fr}
.is-breathing{animation:breathGlow 2.8s ease-in-out infinite}
@keyframes breathGlow{
  0%,100%{transform:translateY(0);box-shadow:0 12px 24px rgba(20,103,255,.14)}
  50%{transform:translateY(-2px);box-shadow:0 18px 32px rgba(20,103,255,.22)}
}
.tool-page-back{display:flex;align-items:center;gap:8px;padding:12px 14px 6px;cursor:pointer;font-size:13px;font-weight:700;color:var(--blue)}
.tool-page-banner{margin:0 14px 12px;border-radius:18px;padding:16px 16px 14px;color:#fff;box-shadow:0 12px 24px rgba(20,103,255,.18)}
.tool-page-banner-blue{background:linear-gradient(135deg,#0F63E8,#2E9EFF)}
.tool-page-banner-pink{background:linear-gradient(135deg,#D14B75,#F17B96)}
.tool-page-banner-indigo{background:linear-gradient(135deg,#3648D1,#6B7CFF)}
.tool-page-banner-amber{background:linear-gradient(135deg,#BB731C,#E2A03A)}
.tool-page-title{font-size:22px;line-height:1.2;font-weight:900}
.tool-page-sub{font-size:13px;line-height:1.8;opacity:.92;margin-top:6px}

.emotion-shell{padding:0 14px 14px}
.emotion-quick-card,.emotion-section{background:#fff;border:1px solid var(--border);border-radius:18px;padding:14px;margin-bottom:12px;box-shadow:0 10px 22px rgba(31,64,118,.08)}
.emotion-quick-title,.emotion-section-title{font-size:15px;font-weight:900;color:var(--t1);margin-bottom:12px}
.emotion-chat-list{max-height:220px;overflow:auto;background:var(--bg3);border:1px solid var(--border);border-radius:12px;padding:10px;margin-bottom:10px}
.emotion-chat-item{padding:8px 10px;border-radius:10px;margin-bottom:8px}
.emotion-chat-item:last-child{margin-bottom:0}
.emotion-chat-item.is-ai{background:#EEF6FF}
.emotion-chat-item.is-user{background:#F8F1FF}
.emotion-chat-role{font-size:11px;font-weight:800;color:#45678F;margin-bottom:4px}
.emotion-chat-content{font-size:13px;line-height:1.75;color:var(--t2)}
.emotion-quick-grid{display:grid;grid-template-columns:1fr;gap:10px}
.emotion-quick-item{border-radius:14px;padding:12px 12px 11px;background:linear-gradient(145deg,#FFF8E7,#FFFFFF);border:1px solid #F1D8A9;display:flex;flex-direction:column;gap:4px}
.emotion-quick-item strong{font-size:14px;color:#9B6717}
.emotion-quick-item span{font-size:12px;line-height:1.7;color:#6D5B38}
.emotion-phrase{display:flex;gap:10px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--border)}
.emotion-phrase:last-child{border-bottom:none;padding-bottom:0}
.emotion-phrase-tag{flex-shrink:0;min-width:58px;height:28px;border-radius:999px;background:var(--blue-l);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:var(--blue)}
.emotion-phrase-text{font-size:13px;line-height:1.8;color:var(--t2)}
.emotion-scene{padding:12px;border-radius:16px;background:linear-gradient(145deg,#F6FAFF,#FFFFFF);border:1px solid rgba(20,103,255,.12);margin-bottom:10px}
.emotion-scene:last-child{margin-bottom:0}
.emotion-scene-title{font-size:15px;font-weight:900;color:#15498F}
.emotion-scene-sub{font-size:12px;line-height:1.7;color:#6280A6;margin-top:4px}
.emotion-scene-list{padding-left:18px;margin-top:10px}
.emotion-scene-list li{font-size:13px;line-height:1.8;color:var(--t2);margin-bottom:6px}
.emotion-alert-card{border-radius:16px;background:linear-gradient(145deg,#FFF4E8,#FFFFFF);border:1px solid #F0C48F;padding:12px}
.emotion-alert-item{font-size:13px;line-height:1.75;color:#86551B;padding:8px 0;border-bottom:1px dashed rgba(197,106,27,.22)}
.emotion-alert-item:last-child{border-bottom:none;padding-bottom:0}
.emotion-footnote{font-size:12px;line-height:1.8;color:var(--t3);padding:0 2px 6px}

.tool-launch-overlay{position:fixed;inset:0;z-index:260;background:rgba(9,24,48,.52);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.tool-launch-card{width:280px;max-width:calc(100vw - 40px);padding:22px 20px;border-radius:24px;background:linear-gradient(145deg,#0C56D6,#1C7DFF);box-shadow:0 24px 44px rgba(8,29,75,.34);text-align:center;color:#fff;position:relative;overflow:hidden}
.tool-launch-card::after{content:'';position:absolute;right:-26px;top:-32px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.14)}
.tool-launch-radar{width:66px;height:66px;border-radius:50%;margin:0 auto 14px;background:radial-gradient(circle at 50% 50%, rgba(255,255,255,.95) 0 12%, rgba(255,255,255,.18) 13% 38%, rgba(255,255,255,0) 39% 100%);box-shadow:0 0 0 1px rgba(255,255,255,.14);animation:scanPulse 1.6s ease-in-out infinite}
.tool-launch-kicker{font-size:11px;font-weight:900;letter-spacing:1.8px;opacity:.78}
.tool-launch-title{font-size:24px;line-height:1.25;font-weight:900;margin-top:8px}
.tool-launch-sub{font-size:13px;line-height:1.8;opacity:.88;margin-top:8px}
@keyframes scanPulse{
  0%,100%{transform:scale(1);opacity:.92}
  50%{transform:scale(1.08);opacity:1}
}

.due-sheet-intro{margin-bottom:12px;padding:14px;border-radius:16px;background:linear-gradient(145deg,#EEF5FF,#FFFFFF);border:1px solid #C7DBFF}
.due-sheet-intro-title{font-size:16px;font-weight:900;color:#1754A6}
.due-sheet-intro-sub{font-size:12px;line-height:1.8;color:#6886AE;margin-top:6px}

/* Home cards body text: align with emotion card main text scale */
html[data-ui-scheme] .cards .summary-text{font-size:13px;line-height:1.8}

/* Adaptive layout tuning for different phones */
body{
  font-size:clamp(14px, 3.8vw, 16px);
}
#app{
  width:min(100%, 520px);
}
.btn-pri,.sheet-btn,.analyze-btn,.rec-add-btn,.add-cl-btn,.hero-nav-btn{
  min-height:clamp(42px, 11vw, 48px);
}
.card,.toolkit-item,.cl-items,.rec-item,.story-card,.sheet{
  border-radius:clamp(12px, 3.4vw, 18px);
}
.card-ttl,.toolkit-item-name,.rec-name,.story-title{
  font-size:clamp(15px, 4.2vw, 18px);
}
.toolkit-item-desc,.rec-date,.story-preview,.cl-desc,.cl-vendor{
  font-size:clamp(12px, 3.4vw, 14px);
}

@media (max-width:360px){
  .topbar{padding:7px 12px;min-height:44px}
  .topbar-note{font-size:11px}
  .hero-fruit-card .fruit-ico{width:34px;height:34px}
  .fruit-emoji-img{width:34px;height:34px}
  .hero.hero-mission{padding:14px 12px 14px}
  .hero-kicker{font-size:22px}
  .hero-mission-ring{width:90px;height:90px}
  .hero-mission-ring-num{font-size:36px}
  .toolkit-layout,.emotion-shell,.cards,.rec-items,.story-list{padding-left:10px;padding-right:10px}
  .tool-page-banner{margin:0 10px 10px;padding:13px 13px 12px}
  .tabbar{width:calc(100% - 14px)}
}

@media (min-width:430px){
  .hero.hero-mission{padding:22px 20px}
  .hero-kicker{font-size:30px}
  .tool-page-banner{padding:18px 18px 16px}
  .cards{gap:16px}
}

@media (max-width:420px){
  .hero-dashboard{grid-template-columns:1fr}
  .hero-kicker{font-size:25px;max-width:none}
  .hero-mission-copy{max-width:none}
  .toolkit-featured-title{font-size:20px}
}
