/* Shared web language: warm paper, quiet green and readable controls. */
:root{--pf-ink:#2d4337;--pf-green:#3c6148;--pf-muted:#78876e;--pf-line:#e4e9db;--pf-paper:#fffefa;--pf-wash:#f4f6ee}
body{background:#e9ece3;color:var(--pf-ink);font-family:"Microsoft YaHei UI","PingFang SC",system-ui,sans-serif}
.wrap{background:#f6f7f1;box-shadow:0 16px 65px #34472c12;padding-bottom:100px;min-height:100dvh}
.wrap button,.wrap select,.wrap input,.modal-box,.modal-box input,.modal-box button{font-family:inherit}
.wrap button{touch-action:manipulation}
.wrap [hidden],.pf-help [hidden]{display:none!important}
button:focus-visible,a:focus-visible,[role=button]:focus-visible{outline:3px solid #95aa76;outline-offset:3px}
.top-bar{padding:15px 19px;background:#fffefa;border-bottom:1px solid var(--pf-line);gap:8px;min-height:62px}
.top-brand{min-width:0;flex:1;gap:8px;font-size:14px;color:#334b39}.top-brand #topTitle{max-width:155px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.top-actions{gap:6px;flex-shrink:0}.status-pill{padding:4px 7px;font-size:10px;color:#56734c;background:#edf3e6}.login-tag-btn{border-radius:10px;background:var(--pf-green);font-size:11px;padding:8px 10px}
.icon-btn{background:#eef2e6;color:#657a58;border-radius:10px;font-weight:500;padding:8px 11px;font-size:12px}.icon-btn:hover{background:#e5ecd9}
.nav{position:fixed;left:50%;right:auto;transform:translateX(-50%);bottom:0;width:min(100%,440px);z-index:300;background:#fffefbf5;backdrop-filter:blur(12px);border-top:1px solid #e1e7d6;padding:7px 9px calc(8px + env(safe-area-inset-bottom));box-shadow:0 -4px 20px #34472c04;gap:1px}
.nav button{font-size:10px;gap:4px;color:#8b9680;padding:3px 0;min-height:52px}.nav button .nav-icon{display:grid;place-items:center;width:40px;height:30px;font-size:19px;border-radius:11px;transition:background .15s}
.nav button.active{color:#3c6046;font-weight:700}.nav button.active .nav-icon{background:#e9efdf}
.panel:not(#home):not(#advisor):not(#healthArchive){padding:20px 18px 26px}
.card{background:var(--pf-paper);border:1px solid var(--pf-line);border-radius:22px;box-shadow:0 3px 15px #34472c03;padding:18px;margin-bottom:14px;overflow-wrap:anywhere}
.row{gap:11px;padding:14px 0;border-bottom:1px solid #edf0e6;min-width:0}.row>div:not(.circle){min-width:0}.row b{font-size:14px;line-height:1.6}.row .muted{margin-top:4px;line-height:1.8;color:#7c8a71;font-size:11px}
.circle{width:41px;height:41px;border-radius:14px;background:#edf1e3;color:#526f48}.muted{color:#7e8b75;line-height:1.8}
.wrap .primary:not(#wechatBindBtn):not(#logoutBtn){background:var(--pf-green)!important;font-weight:600;border-radius:13px;font-size:13px}
.hero{position:relative;isolation:isolate;background:#eaf0df;padding:24px 22px 21px;border-radius:0 0 28px 28px;color:#334d37;border-bottom:1px solid #dfe7d3}
.hero::before{content:'✿';position:absolute;right:17px;top:65px;color:#dce6cf;font-size:118px;line-height:1;z-index:-1;transform:rotate(-14deg);pointer-events:none}
.hero .eyebrow{font-size:11px;color:#7a8a6e;letter-spacing:.3px}.hero .hello{font-size:21px;line-height:1.7;letter-spacing:-.7px;margin-top:6px;max-width:280px}.hero .avatar{border-radius:18px;background:#fffefa;width:48px;height:48px;box-shadow:none;border:1px solid #dfe7d3;flex-shrink:0}
.hero .pet{margin-top:23px;gap:10px}.hero .name{font-size:30px;line-height:1.6;letter-spacing:-1px}.hero .meta{font-size:12px;color:#7b896e}.hero .num{font-size:23px;min-width:67px;color:#3e5c3c;line-height:1.5}.hero .num small{font-size:10px;color:#829274}.hero .track{height:6px;margin-top:17px;background:#fffefa}.hero .fill{background:#73905b}
.hero .pet-paging{gap:6px}.hero .pet-paging select{background:#f9fbf3;border-color:#dae4ce;font-size:12px;color:#58714b}.hero .pet-paging #petPosition{font-size:10px;color:#849378}
.hero .icon-btn{background:#fffefaad!important;color:#6b7e59;border:1px solid #e0e7d5}
.section-head{padding:22px 19px 12px;gap:8px}.section-head b{font-size:16px;letter-spacing:-.3px}.section-head span{font-size:11px;color:#879476;font-weight:400}.section-head button{background:#eaf0df!important;color:#547044!important;font-size:11px!important;padding:8px 10px!important;white-space:nowrap}
.quick{gap:8px;padding:0 19px}.quick button{background:#fffefa;border:1px solid var(--pf-line);border-radius:18px;min-width:62px;flex:1;padding:12px 6px;font-size:11px;color:#6e805c;box-shadow:none}.quick i{font-size:25px;margin-bottom:7px}.quick button:nth-child(2n){background:#f0f5e9}.quick button:hover{border-color:#bacaab}
.tasks{padding:0 19px}.task{border:1px solid var(--pf-line);background:#fffefa;border-radius:19px;padding:13px;box-shadow:none;gap:0}.task .task-icon{background:#edf2e4;border-radius:13px;width:40px;height:40px;font-size:21px}.task-main{min-width:0}.task-top{gap:8px;align-items:start}.task-top b{font-size:13px;line-height:1.7;overflow-wrap:anywhere}.task .time{font-size:10px;white-space:nowrap;color:#91a07f}.task .who{font-size:10px;color:#869579;line-height:1.7}.task .complete{border-radius:11px;padding:8px 11px;background:#42664b;font-size:11px}.task.done{opacity:.72}.task .check{background:#e8efdf;color:#73905e}.task-del-btn{font-size:12px;color:#a3ac98}
#healthReminders>div[style*="text-align:center"],#tasks>div[style*="text-align:center"]{background:#fffefa!important;border:1px dashed #d9e2ce;border-radius:20px!important;color:#839376!important;font-size:12px!important;line-height:1.9}
.pf-page-head{padding:23px 22px;background:#eaf0df;border:1px solid #e1e8d6;border-radius:24px;margin:0 0 18px;position:relative;overflow:hidden}.pf-page-head .pf-eyebrow{font-size:10px;color:#819171;letter-spacing:1.5px}.pf-page-head h1{font-size:24px;line-height:1.5;margin:8px 0 6px;letter-spacing:-.8px;color:#344e37}.pf-page-head p{font-size:12px;line-height:1.9;color:#7b896f;margin:0;max-width:83%}.pf-page-symbol{position:absolute;right:16px;top:20px;font-size:38px;opacity:.65}.pf-page-help{display:inline-flex;border:1px solid #d5e1c8;border-radius:10px;background:#f8faf1;color:#6b8059;padding:7px 11px;font-size:11px;cursor:pointer;margin-top:15px}
#records .record-filters{background:#fffefa;border:1px solid var(--pf-line);padding:13px;border-radius:18px;gap:7px;margin-bottom:14px}#records .record-filters button{font-size:11px;background:#f0f4e8;padding:8px 11px}#records .record-filters button[aria-pressed=true]{background:#406248;color:#fff}
#records .timeline{padding:6px 18px}#records .timeline .row{position:relative;padding:17px 0;gap:12px}#records .timeline .circle{border-radius:13px;background:#eef3e4;font-size:20px;width:38px;height:38px}#records .timeline .row>div:last-child{font-size:12px;line-height:1.8;color:#6b7d5d}#records .timeline .row b{color:#354d39;font-size:13px}#recordPaging{align-items:center;color:#7f8f70;font-size:11px;margin:18px 0}
#family #famCardTitle{font-size:18px!important;color:#3e5840}#family #famCardMeta{font-size:11px;color:#7c8d70}#family .card>div[style*="background:#f5f4ef"]{background:#f0f4e8!important;border:1px dashed #d5e0c9;border-radius:14px}#family .card>div[style*="background:#f9fbf9"]{background:#fafbf5!important;color:#738567!important;border-color:#e7ecdd!important;font-size:11px!important}#family #petList .row button{flex-shrink:0;font-size:11px}#family .card button[style*="background:#252522"]{background:#406248!important;color:white}
#mine #unloggedCard{background:#f1f5e8!important;border-color:#dee7d2!important}#mine #mineUsernameTag{max-width:120px;overflow:hidden;text-overflow:ellipsis;background:#eff3e8!important;color:#7a896d!important}#mine #loggedCard .row>div:nth-child(3)>div{flex-wrap:wrap}#mine #loggedCard .row .icon-btn{font-size:10px;padding:7px 9px}#mine .card>.row{gap:8px}#mine .card>.row b{font-size:13px}#mine .vip-entry-card{background:linear-gradient(135deg,#354b36,#4c6042);border-color:#5f7450;box-shadow:none}#mine .vip-entry-card>.row{border-color:#80916e}#mine .vip-entry-card .vip-perks-row{gap:6px;flex-wrap:wrap}.vip-perk-item{font-size:10px}#mine #logoutBtn{background:#fffaf7!important;border-color:#eacfc3!important;color:#a06a55!important;border-radius:13px;font-size:12px}
.modal-box{color:#344c3b;border:1px solid #e0e7d6;background:#fffefa;max-height:90dvh;overflow-y:auto}.modal-input{background:#f8faf3;border-color:#dfe7d4;font:inherit;font-size:13px;color:#3d563e}.modal-input:focus{border-color:#90a575}.modal-title{font-size:18px;color:#354f39}.health-type-option.active{background:#e8efde;border-color:#9aaf80}.chip-btn{background:#eef2e5;color:#738360}
.pf-start{margin:19px 19px 0;padding:18px 17px;border-radius:21px;background:#fffefa;border:1px solid var(--pf-line)}.pf-start-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.pf-start h2{margin:0;font-size:15px;color:#405b3e}.pf-text-button{border:0;background:transparent;color:#8a987b;font:inherit;font-size:11px;padding:5px;cursor:pointer}.pf-start-caption{font-size:11px;color:#839474;line-height:1.8;margin:7px 0 13px}.pf-start-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.pf-start-step{border:1px solid #e5ebdb;border-radius:14px;background:#f8faf2;text-align:left;padding:12px 10px;font:inherit;color:#5e7850;cursor:pointer;min-width:0}.pf-start-step>span{display:block;font-size:20px;margin-bottom:8px}.pf-start-step strong{display:block;font-size:11px}.pf-start-step small{display:block;font-size:10px;color:#9aa58d;margin-top:5px;line-height:1.6}.pf-start-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.pf-start-links button{border:0;background:none;color:#73905d;font:inherit;font-size:11px;padding:5px 0;cursor:pointer}
.pf-context-help{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid #e0e8d4;border-radius:14px;background:#f1f6e9;padding:12px 14px;margin:0 0 15px;font-size:11px;color:#80956d}.pf-context-help button{background:none;border:0;padding:2px;color:#5b7a47;font:inherit;cursor:pointer;font-size:11px}
.pf-help{width:min(440px,calc(100vw - 24px));max-width:440px;max-height:88dvh;border:1px solid #e0e7d6!important;background:#fffefa;color:#344b3b;border-radius:25px!important;padding:0!important;overflow:auto;line-height:1.8;font:13px/1.8 "Microsoft YaHei UI","PingFang SC",sans-serif;box-shadow:0 20px 70px #24362026}.pf-help::backdrop{background:#263b2b66;backdrop-filter:blur(3px)}.pf-help-head{padding:22px 21px 18px;background:#eaf0df;border-bottom:1px solid #dfe8d2}.pf-help-head h2{margin:5px 0;font-size:23px;letter-spacing:-.7px}.pf-help-head p{margin:0;color:#7d8f6d;font-size:11px}.pf-help-head .icon-btn{float:right;background:#fafcf4}.pf-help-body{padding:20px}.pf-help details{margin:10px 0;border:1px solid #e5ebdb;padding:13px;border-radius:15px;background:#fffefa;scroll-margin-top:15px}.pf-help summary{cursor:pointer;color:#4f6b47;font-size:13px;line-height:1.7}.pf-help details p,.pf-help details li{font-size:12px;color:#7c8d6f;line-height:1.9}.pf-help details ol{padding-left:21px}.pf-help h3{font-size:15px;margin:20px 0 10px;color:#476540}.pf-help-index{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 16px}.pf-help-index button{border:0;border-radius:9px;background:#eef3e5;color:#6b8558;font:inherit;font-size:11px;padding:8px 11px;cursor:pointer}.pf-help-figure{margin:13px 0}.pf-help-figure img{width:100%;max-height:220px;object-fit:cover;object-position:top;border:1px solid #e1e8d5;border-radius:13px}.pf-help-figure figcaption{font-size:10px;color:#91a17e;margin-top:5px}
.pf-video-card{border:1px solid #e0e8d3;background:#f7faf0;border-radius:18px;margin:12px 0;padding:14px}.pf-video-card button{width:100%;display:flex;gap:12px;align-items:center;border:0;background:none;color:#4d6d43;font:inherit;text-align:left;cursor:pointer;padding:0}.pf-video-play{display:grid;place-items:center;background:#e2eccf;border-radius:13px;width:42px;height:42px;flex-shrink:0;font-size:19px}.pf-video-card strong{font-size:13px;display:block}.pf-video-card small{font-size:10px;color:#8c9e78;display:block;margin-top:4px}.pf-video-frame{margin-top:13px}.pf-video-frame video{display:block;width:100%;max-height:60dvh;background:#172218;border-radius:14px}.pf-video-frame p{font-size:11px;color:#859878}.pf-video-frame a{color:#5d7d45;font-size:11px}
.pf-pet-context{font-size:11px;color:#7d8e6e;line-height:1.8;margin:0 0 14px;overflow-wrap:anywhere}.pf-inline-note{background:#f5f8ef;padding:12px;border-radius:13px;color:#849675;font-size:11px;margin-top:12px}
.pf-family-space{background:#edf3e4!important;color:#3c5b3e!important}.pf-family-space .muted{color:#7e9270!important}.pf-family-space #renameFamilyAction{background:#fffefa!important;color:#6e8559!important}.pf-invite-title{display:block;flex-basis:100%;font-size:14px}.card:has(.pf-invite-title)>div:first-child{flex-wrap:wrap;gap:12px}.card:has(.pf-invite-title)>div:first-child>div{flex-wrap:wrap}.card:has(.pf-invite-title) .icon-btn{white-space:nowrap;font-size:11px}.top-brand .status-pill{flex-shrink:0}
.vip-upgrade-btn{white-space:nowrap;flex-shrink:0}.vip-entry-card>div:first-child{gap:10px}.vip-entry-card>div:first-child>div{min-width:0;flex:1}.vip-entry-card>div:first-child>div>div:last-child>div:first-child{flex-wrap:wrap!important}.vip-entry-card b{font-size:15px!important}.pf-start-step strong{font-size:12px}.pf-start-step small{font-size:11px}.quick button{font-size:12px}
.pf-help-head{position:sticky;top:0;z-index:3}.pf-help details,.pf-help #help-videos{scroll-margin-top:125px}
.pf-tool-row{display:flex;align-items:center;width:100%;border:0;border-bottom:1px solid #edf0e6;background:transparent;padding:14px 0;text-align:left;color:inherit;font:inherit;cursor:pointer}.pf-tool-copy{display:block;flex:1;min-width:0}.pf-tool-copy .muted{display:block;line-height:1.8;margin-top:4px;font-size:11px;color:#7c8a71}.pf-tool-arrow{color:#aaa;font-size:17px;margin-left:8px}
@media(max-width:470px){body{background:#f6f7f1}.wrap{margin:0;border-radius:0;box-shadow:none;max-width:440px}}
@media(max-width:360px){.panel:not(#home):not(#advisor):not(#healthArchive){padding:16px 13px}.top-bar{padding:12px}.top-brand #topTitle{max-width:108px}.top-brand{font-size:12px;gap:5px}.top-actions .icon-btn{font-size:10px;padding:7px}.hero{padding:21px 18px}.hero .hello{font-size:19px}.hero .name{font-size:26px}.pf-page-head{padding:20px 17px}.pf-page-head h1{font-size:22px}.pf-start{margin:16px 13px 0;padding:15px 12px}.pf-start-steps{gap:6px}.pf-start-step{padding:11px 7px}.card{padding:15px}.section-head{padding-left:13px;padding-right:13px}.quick,.tasks{padding-left:13px;padding-right:13px}.quick{gap:6px}.quick button{min-width:54px;font-size:10px}.task{padding:11px}.task-top{flex-wrap:wrap;gap:0}.task .task-icon{margin-right:8px;width:34px}.task .complete{padding:8px}.pf-help-body{padding:15px}.vip-entry-card>div:first-child{flex-wrap:wrap;gap:12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Readable mobile form text prevents iOS from zooming the page on focus.
   Apply to dialogs outside .wrap too; keep the ordinary viewport/pinch gestures. */
@media(max-width:768px),(pointer:coarse){
  body input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]):not([type=range]):not([type=color]):not([type=button]):not([type=submit]):not([type=reset]):not([type=image]),
  body textarea,body select{font-size:16px!important}
}
#authModal #wxPrimaryAuthBtn.primary:disabled,#mine #wechatBindBtn.primary:disabled{background:#e9eee4!important;color:#7b8973!important;opacity:1;cursor:default}
#wxPrimaryAuthBtn:disabled svg{fill:currentColor}
