/* ==========================================================
   pages.css — 各业务页面样式
   ========================================================== */
/* ============ 手动输入 ============ */
.garow{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;cursor:pointer;}
.garow+.garow{border-top:1px solid var(--line);}
.garow .l{font-size:13px;color:#8B7A76;}
.garow .r{font-size:14px;font-weight:700;display:flex;align-items:center;gap:6px;}
.field{display:flex;align-items:center;justify-content:space-between;background:#fff;
  border-radius:16px;padding:0 16px;height:53px;margin-top:8px;border:1.5px solid transparent;
  cursor:pointer;box-shadow:0 4px 12px -8px rgba(120,80,75,.20),0 1px 2px rgba(120,80,75,.04);}
.field.focus{border-color:var(--pink);box-shadow:0 0 0 3px rgba(245,120,155,.13);}
.fl b{font-size:14px;font-weight:700;letter-spacing:.3px;}
.fl span{font-size:11px;color:var(--mute);margin-left:5px;}
.fv{display:flex;align-items:baseline;gap:3px;}
.fv b{font-size:21px;font-weight:700;letter-spacing:-.4px;}
.fv i{font-style:normal;font-size:11.5px;color:var(--mute);}
.fv .ph{font-size:14px;color:#D6C7C2;font-weight:400;}
.caret{width:2px;height:22px;background:var(--pink);border-radius:1px;margin-left:1px;
  animation:blink 1.05s steps(1) infinite;}
@keyframes blink{0%,49%{opacity:1}50%,100%{opacity:0}}
.okd{width:18px;height:18px;border-radius:50%;background:var(--greenbg);display:flex;
  align-items:center;justify-content:center;margin-left:10px;}
.accbox{margin-top:10px;background:linear-gradient(120deg,#FFF3EE 0%,#FDF0F4 100%);
  border-radius:16px;padding:12px 15px;}
.acch{display:flex;align-items:center;justify-content:space-between;}
.acch .t{font-size:13px;font-weight:700;color:#7A6660;}
.acch .s{font-size:13px;color:#F2A03C;letter-spacing:2px;}
.accp{height:6px;border-radius:3px;background:#F5E5DE;margin-top:9px;overflow:hidden;}
.accf{height:6px;border-radius:3px;background:linear-gradient(90deg,#FFC48A,var(--pink));
  transition:width .35s ease;}
.acct{font-size:11.5px;color:#A8938C;margin-top:8px;line-height:1.5;}
/* keypad */
.floatbtn{position:absolute;left:18px;right:18px;bottom:244px;z-index:12;}
.kp{position:absolute;left:0;right:0;bottom:0;height:232px;background:#F0EAE6;z-index:12;
  padding:8px 5px 22px;display:grid;grid-template-columns:repeat(4,1fr);
  grid-template-rows:repeat(4,1fr);gap:6px;}
.key{background:#fff;border-radius:8px;display:flex;align-items:center;justify-content:center;
  font-size:23px;color:#2B2B2B;cursor:pointer;box-shadow:0 1px 0 rgba(0,0,0,.10);}
.key:active{background:#E4DDD8;}
.key.gray{background:#D6CFC9;box-shadow:none;}
.key.done{background:linear-gradient(135deg,var(--pink2),var(--pink));color:#fff;font-size:15px;
  font-weight:700;grid-row:span 2;box-shadow:none;}
.key.del{grid-row:span 2;background:#D6CFC9;box-shadow:none;}

/* ============ OCR ============ */
.shot{background:#EDE7E3;border-radius:18px;padding:14px 13px 12px;position:relative;overflow:hidden;}
.shot .sh{text-align:center;font-size:11px;color:#8A7C76;letter-spacing:3px;
  padding-bottom:9px;border-bottom:1px dashed #CFC5BF;}
.srow{display:flex;justify-content:space-between;align-items:center;font-size:11px;
  color:#6B5F5A;padding:7px 8px;border-radius:7px;margin-top:3px;}
.srow.hit{background:rgba(245,120,155,.13);border:1px dashed rgba(245,120,155,.75);}
.srow.miss{background:rgba(233,150,60,.14);border:1px dashed rgba(233,150,60,.8);}
.srow b{font-weight:700;color:#463D39;}
.scan{position:absolute;left:0;right:0;height:60px;pointer-events:none;
  background:linear-gradient(180deg,rgba(245,120,155,0),rgba(245,120,155,.25),rgba(245,120,155,0));
  animation:scanmove 2.6s ease-in-out infinite;}
@keyframes scanmove{0%{top:-60px}100%{top:100%}}
.rv{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;gap:8px;}
.rv+.rv{border-top:1px solid var(--line);}
.rv .k{font-size:14.5px;font-weight:700;}
.rv .k span{font-size:12px;color:var(--mute);font-weight:400;margin-left:4px;}
.rv .rt{display:flex;align-items:center;gap:9px;}
.rv .n{font-size:20px;font-weight:700;}
.rv .n i{font-style:normal;font-size:12px;color:var(--mute);font-weight:400;}
.rv .n.empty{color:var(--amber);font-size:14px;}
.chip{font-size:10.5px;font-weight:700;border-radius:7px;padding:3px 7px;white-space:nowrap;}
.chip.g{background:var(--greenbg);color:var(--green);}
.chip.a{background:var(--amberbg);color:var(--amberink);}
.warn{margin-top:11px;display:flex;gap:9px;padding:11px 14px;border-radius:15px;background:#FFF6E9;}
.warn .tx{font-size:11.5px;color:#9A7B4E;line-height:1.65;}
.warn .tx b{color:#6E5540;}
/* 小锁改成描边 SVG，和行内文字基线对齐 */
.privacy{margin-top:10px;display:flex;align-items:center;justify-content:center;gap:4px;
  font-size:10.5px;color:#B3A29D;}
.privacy svg{width:12px;height:12px;flex:none;}

/* ============ 曲线 ============ */
.ptitle{display:flex;align-items:center;justify-content:space-between;padding:4px 4px 12px;}
.ptitle .h{font-size:21px;font-weight:700;letter-spacing:-.2px;}
.stdchip{display:flex;align-items:center;gap:5px;background:#fff;border-radius:12px;cursor:pointer;
  padding:6px 11px;font-size:12px;font-weight:700;color:#7A6660;
  box-shadow:0 3px 8px -5px rgba(120,80,75,.3);}
.chartcard{padding:12px 10px 10px;}
.legend{display:flex;justify-content:center;gap:14px;padding-top:8px;font-size:10.5px;color:#95837E;}
.legend i{display:inline-block;width:14px;height:3px;border-radius:2px;
  vertical-align:middle;margin-right:4px;}
.sect{font-size:15px;font-weight:700;margin:16px 4px 9px;}
.hrow{display:flex;align-items:center;gap:11px;padding:12px 15px;}
.hrow+.hrow{border-top:1px solid var(--line);}
.hdot{width:9px;height:9px;border-radius:50%;flex:none;}
.hrow .hi{flex:1;}
.hrow .h1{font-size:14px;font-weight:700;}
.hrow .h2{font-size:11.5px;color:var(--mute);margin-top:3px;}
.hrow .hw{font-size:18px;font-weight:700;letter-spacing:-.4px;}
.hrow .hw i{font-style:normal;font-size:11.5px;color:var(--mute);font-weight:400;}
.pbadge{font-size:11px;font-weight:700;border-radius:8px;padding:3px 7px;
  background:var(--greenbg);color:var(--green);}
.pbadge.a{background:var(--amberbg);color:var(--amberink);}
.pbadge.v{background:#EFEAFB;color:#7A6BC9;}
/* 历次记录「展开全部 / 收起」 */
.histmore{display:flex;align-items:center;justify-content:center;gap:5px;
  height:42px;border-top:1px solid var(--line);
  font-size:13px;font-weight:600;color:#A8918C;cursor:pointer;}
.histmore:active{background:#FAF6F4;}
.histmore .ar{transition:transform .2s;}
.histmore .ar.up{transform:rotate(180deg);}

/* ============ 结果页建议 ============ */
.advice{margin-top:12px;padding:15px 17px;}
.ah2{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:700;}
.adv{display:flex;gap:9px;margin-top:11px;}
.adv .no{width:17px;height:17px;border-radius:50%;background:var(--amberbg);color:var(--amberink);
  font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;
  flex:none;margin-top:1px;}
.adv .tt{font-size:11.5px;color:#6A5A57;line-height:1.65;}
.adv .tt b{color:var(--ink);}
.softbtn{height:46px;border-radius:15px;display:flex;align-items:center;justify-content:center;
  gap:7px;font-size:14px;font-weight:700;color:#fff;margin-top:12px;cursor:pointer;
  background:linear-gradient(135deg,#F7B76F,#EE9560);box-shadow:0 10px 20px -9px rgba(230,150,70,.6);}

/* ============ 我的 ============ */
/* 页面大标题，与「我的」这类 tab 页配套 */
.pgttl{padding:16px 18px 8px;font-size:26px;font-weight:800;letter-spacing:-.5px;color:#2E2724;}

.mrow{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;}
.mrow+.mrow{border-top:1px solid var(--line);}
.mrow .mt{flex:1;font-size:14.5px;font-weight:600;}
.mrow .mv{font-size:12.5px;color:var(--mute);}
.mrow .chev{flex:none;}

/* 扁平线性图标：统一 30×30 圆角底 + 描边 SVG，颜色靠 .ic-* 区分 */
.mi{width:30px;height:30px;border-radius:10px;flex:none;display:flex;
  align-items:center;justify-content:center;}
.mi svg{width:18px;height:18px;}
.ic-doc  {background:#FFF0E2;color:#EE9A55;}
.ic-chart{background:#E8F5F0;color:#2FA98A;}
.ic-help {background:#EEF1FC;color:#7B8BD8;}
.ic-lock {background:#F3EFFB;color:#9182CE;}
.ic-del  {background:#FDEDF1;color:#E0607F;}
.ic-info {background:#F3F1F0;color:#A2948F;}

/* 档案卡 */
.profile{padding:17px 18px;display:flex;align-items:center;gap:14px;cursor:pointer;}
.profile .pfm{flex:1;min-width:0;}
.profile .pfn{display:flex;align-items:center;gap:6px;font-size:17px;font-weight:700;color:#2E2724;}
/* 孕周那行拼上了预产期，字数变长；这里统一截断兜底，避免窄屏把卡片撑破 */
.profile .pfs{font-size:12.5px;color:var(--mute);margin-top:4px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
/* 宝宝那行是「辅」：再淡一档，和上面妈妈的孕期信息拉开层次 */
.profile .pfb{color:#BCADA8;}
.profile .chev{flex:none;}
.avatar{width:52px;height:52px;border-radius:50%;flex:none;display:flex;align-items:center;
  justify-content:center;background:linear-gradient(135deg,#FFC0A4,#F58AB4);font-size:24px;
  overflow:hidden;background-size:cover;background-position:center;}
.avatar.big{width:64px;height:64px;font-size:30px;}

/* 妈妈盒子入口卡：奶油底 + 描边，跟普通 .card 区分开 */
.boxentry{margin-top:16px;display:flex;align-items:center;gap:12px;padding:15px 16px;
  background:#FDF6E6;border:1px solid #F3E4C2;border-radius:16px;cursor:pointer;
  transition:transform .12s;}
.boxentry:active{transform:scale(.985);}
.boxentry .bei{width:34px;height:34px;border-radius:11px;flex:none;display:flex;
  align-items:center;justify-content:center;background:#FDECB4;color:#C68A2E;}
.boxentry .bei svg{width:20px;height:20px;}
.boxentry .bet{flex:1;font-size:14px;font-weight:700;color:#6B5A44;line-height:1.5;}
.boxentry .chev{flex:none;}
/* 入口卡下面的一句话：说清「点进去图什么」。
   紧跟卡片（9px）并沿用卡片的暖褐色系，让它归属上面的入口；
   字号 11.5px 比免责声明大一档，免得被当成灰色小字一起略过。 */
.boxtag{margin-top:9px;text-align:center;font-size:11.5px;color:#B0906A;
  line-height:1.55;letter-spacing:.2px;padding:0 12px;}
/* 和免责声明拉开距离：一句是情感文案，一句是法律声明，连读会两边都失效 */
.boxtag + .dis{margin-top:20px;}

/* ============ 修改档案表单 ============ */
.edav{display:flex;align-items:center;gap:14px;padding:2px 0 4px;}
.edavb{display:flex;gap:8px;}
.minibtn{height:34px;padding:0 14px;border-radius:11px;background:#F7F1ED;
  display:flex;align-items:center;justify-content:center;
  font-size:12.5px;font-weight:600;color:#6B5A55;cursor:pointer;}
.minibtn:active{background:#EFE6E0;}
/* 表单分段标题（妈妈信息 / 宝宝信息）：细线贯穿 + 中间留出文字，
   比纯加粗标题更能把两段信息切开，用户一眼知道「先填妈妈、再填宝宝」 */
.edsec{display:flex;align-items:center;gap:10px;margin:22px 0 2px;
  font-size:12.5px;font-weight:700;color:#A8938C;letter-spacing:.3px;}
.edsec::before,.edsec::after{content:'';height:1px;background:var(--line);}
.edsec::before{width:14px;flex:none;}
.edsec::after{flex:1;}
.edsec:first-of-type{margin-top:2px;}
.edlb{margin-top:16px;margin-bottom:7px;font-size:13px;font-weight:700;color:#6B5A55;}
.edin{width:100%;height:46px;border:1px solid var(--line);border-radius:13px;
  padding:0 13px;font-size:14.5px;font-weight:600;color:#2E2724;background:#FCF9F8;
  outline:none;font-family:inherit;box-sizing:border-box;}
.edin:focus{border-color:#EFA97F;background:#fff;}
.edhint{margin-top:7px;font-size:11.5px;line-height:1.65;color:#B0A29D;}
.seg{display:flex;gap:8px;}
.sgi{flex:1;height:44px;border-radius:12px;background:#F7F1ED;display:flex;align-items:center;
  justify-content:center;font-size:13px;font-weight:600;color:#7A6A65;cursor:pointer;
  border:1.5px solid transparent;}
.sgi.on{background:#FFF1E7;border-color:#EFA97F;color:#D4763C;}

/* ============ 分享海报 ============ */
.poster{position:absolute;left:22px;right:22px;top:50%;transform:translateY(-50%) scale(.92);
  z-index:42;background:#fff;border-radius:22px;overflow:hidden;opacity:0;visibility:hidden;
  transition:.28s cubic-bezier(.22,.9,.3,1);box-shadow:0 30px 60px -20px rgba(90,40,60,.5);}
.poster.on{opacity:1;visibility:visible;transform:translateY(-50%) scale(1);}
.phead{background:linear-gradient(150deg,#FFAFA6,#F5789B);padding:17px 20px 20px;
  position:relative;overflow:hidden;}
.brand{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:#fff;
  position:relative;}
.brand .bi{width:21px;height:21px;border-radius:7px;background:rgba(255,255,255,.26);
  display:flex;align-items:center;justify-content:center;}
.pbody{padding:16px 20px 14px;}
.pquote{font-size:14.5px;font-weight:700;line-height:1.6;}
.pquote em{font-style:normal;color:var(--pink);}
.stats{display:flex;gap:9px;margin-top:13px;}
.ps{flex:1;background:#FDF2F1;border-radius:13px;padding:9px 6px;text-align:center;}
.ps .k{font-size:9.5px;color:#B09A96;}
.ps .v{font-size:16px;font-weight:700;margin-top:3px;letter-spacing:-.4px;}
.ps .v i{font-style:normal;font-size:10px;color:var(--mute);font-weight:400;}
.pbot{display:flex;align-items:center;gap:13px;padding:13px 20px 17px;
  border-top:1px dashed #F0E2E4;}
.qr{width:56px;height:56px;border-radius:10px;background:#fff;border:1px solid #EFE6E2;
  display:flex;align-items:center;justify-content:center;flex:none;}
.pbot .t1{font-size:12.5px;font-weight:700;}
.pbot .t2{font-size:9.5px;color:var(--mute);margin-top:4px;line-height:1.55;}
.pclose{position:absolute;top:-42px;right:0;width:32px;height:32px;border-radius:50%;
  background:rgba(255,255,255,.9);display:flex;align-items:center;justify-content:center;
  cursor:pointer;font-size:17px;color:#6A5A57;}

/* ============ 妈妈盒子占位页 ============ */
.boxnav{height:44px;display:flex;align-items:center;padding:0 14px;background:#EDEDED;
  border-bottom:.5px solid #DDD;flex:none;gap:10px;}
.boxnav .bt{font-size:16px;font-weight:600;color:#111;flex:1;text-align:center;margin-left:-30px;}
.boxcap{margin:14px 18px 0;padding:15px 17px;border-radius:18px;background:#fff;
  box-shadow:0 6px 18px -8px rgba(120,80,75,.16);}
.boxcap .bh{display:flex;align-items:center;gap:10px;}
.boxcap .bi2{width:40px;height:40px;border-radius:13px;display:flex;align-items:center;
  justify-content:center;font-size:20px;background:linear-gradient(140deg,#FFC48A,#F5789B);}
.boxcap .b1{font-size:15px;font-weight:700;}
.boxcap .b2{font-size:11px;color:var(--mute);margin-top:3px;}
.codebox{background:#2F2A2E;border-radius:13px;padding:13px 14px;margin-top:13px;
  font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10.5px;line-height:1.75;
  color:#E8DCE2;overflow-x:auto;white-space:pre;}
.codebox .kw{color:#FF9EC1;} .codebox .st{color:#9BE59B;} .codebox .cm{color:#7E7280;}
.slot{display:flex;align-items:center;justify-content:space-between;padding:11px 0;
  font-size:12px;border-bottom:1px dashed var(--line);}
.slot:last-child{border-bottom:0;}
.slot .sk{color:#8B7A76;}
.slot .sv{font-weight:700;color:#C0504F;background:#FDECEC;border-radius:6px;padding:2px 7px;font-size:11px;}

/* ============ 上传 / OCR ============ */
.pickrow{display:flex;align-items:center;gap:12px;padding:15px 6px;font-size:15px;
  font-weight:600;cursor:pointer;}
.pickrow+.pickrow{border-top:1px solid var(--line);}
/* 扁平描边图标，与「我的」页 .mi 同一套风格 */
.pickrow .pi{width:36px;height:36px;border-radius:12px;flex:none;
  display:flex;align-items:center;justify-content:center;}
.pickrow .pi svg{width:21px;height:21px;}
.pickrow .pi.ic-cam{background:#FFF0E2;color:#EE9A55;}
.pickrow .pi.ic-alb{background:#E9F2FB;color:#5C93CE;}
.pickrow .pd{font-size:11.5px;color:var(--mute);font-weight:400;margin-top:3px;}
.ghostbtn{height:48px;border-radius:15px;display:flex;align-items:center;justify-content:center;
  font-size:15px;font-weight:700;color:#7A6660;background:#F5EFEB;margin-top:14px;cursor:pointer;}
.photowrap{position:relative;border-radius:18px;overflow:hidden;background:#EDE7E3;
  min-height:150px;display:flex;align-items:center;justify-content:center;}
.photowrap img{width:100%;display:block;max-height:230px;object-fit:cover;}
.scanning:after{content:"";position:absolute;left:0;right:0;height:70px;pointer-events:none;
  background:linear-gradient(180deg,rgba(245,120,155,0),rgba(245,120,155,.42),rgba(245,120,155,0));
  animation:scanmove 1.5s ease-in-out infinite;}
.scanlbl{position:absolute;left:0;right:0;bottom:0;padding:9px 12px;font-size:12px;color:#fff;
  background:linear-gradient(0deg,rgba(30,20,22,.72),rgba(30,20,22,0));display:flex;
  align-items:center;gap:7px;}
.simchip{display:inline-flex;align-items:center;gap:4px;background:#F1ECFA;color:#7A6BC9;
  font-size:10.5px;font-weight:700;border-radius:7px;padding:3px 8px;margin-top:9px;}
.rv.tap{cursor:pointer;}
.rv .ed{font-size:11px;color:var(--pink);font-weight:700;border:1px solid #F8D3DE;
  border-radius:7px;padding:2.5px 7px;}
.sect2{display:flex;align-items:center;justify-content:space-between;margin:16px 4px 9px;}
.sect2 .h{font-size:15px;font-weight:700;}
/* 模拟报告单 */
.fake{width:100%;padding:15px 16px;background:#F7F4F1;font-size:10.5px;color:#6E5F5C;line-height:1.9;}
.fake .fh{font-size:11.5px;font-weight:700;color:#4A3C3C;text-align:center;
  padding-bottom:7px;margin-bottom:7px;border-bottom:1px solid #E4DAD5;}
.fake .fl2{color:#9C8B86;font-size:9.5px;}
.fake .fg{display:flex;justify-content:space-between;padding:1px 0;}
.fake .fg b{font-weight:700;color:#33272A;font-variant-numeric:tabular-nums;}
/* 识别结果行 */
.rv .rk{font-size:14.5px;font-weight:700;}
.rv .rk span{font-size:12px;color:var(--mute);font-weight:400;margin-left:4px;}
.rv .rvv{display:flex;align-items:center;gap:8px;}
.rv .rvv b{font-size:20px;font-weight:700;letter-spacing:-.4px;}
.rv .rvv i{font-style:normal;font-size:12px;color:var(--mute);font-weight:400;margin-left:-5px;}
.cf{font-size:10.5px;font-weight:700;color:#C9A227;background:#FCF5DF;border-radius:6px;padding:2.5px 6px;}
.cf.hi{color:var(--green);background:var(--greenbg);}
.miss{font-size:14px;font-weight:700;color:var(--amber);}
.skel{width:96px;height:19px;border-radius:7px;
  background:linear-gradient(90deg,#F1EAE6 25%,#F8F3F0 37%,#F1EAE6 63%);
  background-size:400% 100%;animation:shim 1.3s ease infinite;}
@keyframes shim{0%{background-position:100% 0}100%{background-position:0 0}}
.okchip{font-size:11px;font-weight:700;color:var(--green);background:var(--greenbg);
  border-radius:8px;padding:3px 8px;}
.okbar{margin-top:12px;padding:11px 14px;border-radius:13px;background:var(--greenbg);
  color:#0E8C6B;font-size:12.5px;font-weight:600;line-height:1.6;}
.warnbar{margin-top:12px;padding:11px 14px;border-radius:13px;background:var(--amberbg);
  color:var(--amberink);font-size:12.5px;font-weight:600;line-height:1.6;}
.floatnote{margin-top:10px;text-align:center;font-size:10.5px;color:#B3A29D;}
@media (max-width:820px){
  body{padding:0;display:block;background:var(--bg);}
  .phone{width:100%;height:100dvh;border-radius:0;box-shadow:none;}
  .status{display:none;} .screens{top:0;} .homebar{display:none;}
  .sidebar{display:none;}
}
