/* Child-page Codex handoff overrides: fixed 1600x900 stage, cream/paper/deep-green. */
.fn,.pt,.bd{position:absolute!important;inset:0!important;overflow:hidden!important;background:var(--cream)!important;color:var(--ink)!important;font-family:var(--font)!important}.fn-hd,.pt-top,.bd-topbar{max-width:none!important;height:64px;padding:24px 30px 0!important;margin:0!important;display:flex!important;align-items:center!important;border-bottom:1px solid rgba(23,55,47,.12);color:var(--ink)!important}.fn-logo,.pt-logo,.bd-logo{color:var(--ink)!important;font-size:23px!important;letter-spacing:0!important}.fn-logo .heart,.pt-logo .heart,.bd-logo .bd-heart{display:none}.fn-back,.pt-back,.bd-back{margin-left:auto!important;border:1px solid var(--line)!important;border-radius:10px!important;background:var(--paper)!important;color:var(--ink)!important;padding:0 16px!important;height:44px!important}.fn-wrap,.pt-wrap,.bd-wrap{max-width:none!important;margin:0!important;padding:26px 30px!important;height:calc(100% - 64px);overflow:hidden!important}.fn-stage{height:100%;max-width:980px;margin:0 auto!important;min-height:0!important;background:var(--paper)!important;border:0!important;border-radius:22px!important;box-shadow:var(--shadow)!important;backdrop-filter:none!important;padding:42px!important}.fn-tag{color:var(--leaf)!important}.fn-title{color:var(--ink)!important;font-size:30px!important}.fn-sub,.fn-note{color:var(--ink2)!important;font-size:16px!important}.fn-key{border:1px solid var(--line)!important;border-radius:14px!important;background:var(--paper)!important;box-shadow:var(--shadow)!important}.fn-key:hover{border-color:var(--leaf)!important}.fn-key .kt{color:var(--ink)!important}.fn-main{background:var(--leaf)!important;box-shadow:none!important}.fn-ghost{border:1px solid var(--line)!important;color:var(--ink2)!important;background:var(--paper)!important}.pt-top,.bd-topbar{max-width:none!important}.pt-wrap,.bd-wrap{max-width:1180px!important;margin:0 auto!important;overflow:hidden!important}.pt-card,.bd-card{background:var(--paper)!important;border:0!important;border-radius:16px!important;box-shadow:var(--shadow)!important;backdrop-filter:none!important}.pt-c-t,.bd-ct{color:var(--deep)!important;font-size:20px!important}.pt-c-t .pt-hint{font-size:14px!important;color:var(--muted)!important}.pt-stage{padding:18px!important}.pt-circle{width:230px!important;background:var(--mint)!important;box-shadow:none!important}.pt-face{filter:none!important}.pt-act-row button{border:1px solid var(--line)!important;background:var(--paper)!important}.pt-rename.first{background:var(--leaf)!important;box-shadow:none!important}.pt-node.cur{background:var(--mint)!important;outline:2px solid var(--leaf)!important;box-shadow:none!important}.pt-tip{color:var(--deep)!important}.pt-rule{font-size:16px!important;line-height:1.9!important}.bd-intro{font-size:16px!important;color:var(--ink2)!important}.bd-card{padding:20px!important}.bd-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important}.bd-medal{border:1px solid var(--line)!important;border-radius:14px!important;background:var(--paper)!important;box-shadow:none!important}.bd-medal.bd-locked{background:var(--mist)!important}.bd-mn{color:var(--ink)!important}.bd-note{color:var(--deep)!important;background:var(--mint)!important}.bd-overlay{background:rgba(16,83,69,.46)!important}.bd-pop{background:var(--paper)!important;box-shadow:var(--shadow)!important}.bd-pop-btn{background:var(--leaf)!important}.fn .avatar-outer{width:120px!important}.fn .avatar{box-shadow:none!important}.fn .avatar img{transform:none!important}
@media(prefers-reduced-motion:reduce){.fn *,.pt *,.bd *{animation:none!important;transition:none!important}}

/* R5 mobile child surfaces: shared readability, touch, and cream-paper rhythm. */
#app .pp-mquiz,
#app .pp-mletter,
#app .pp-mplan,
#app .pp-mfinish,
#app .pp-mpet,
#app .pp-mbadges{
  width:min(100%,32rem);
  min-height:100vh;
  min-height:100svh;
  margin-inline:auto;
  overflow-x:clip;
  background:#f7f1e5;
  color:#17372f;
  font-family:"HarmonyOS Sans SC","Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  font-size:17px;
  letter-spacing:0;
}
#app .pp-mquiz button,
#app .pp-mletter button,
#app .pp-mplan button,
#app .pp-mfinish button,
#app .pp-mpet button,
#app .pp-mbadges button{
  min-height:44px;
}

/* 02 First profile */
#app .pp-mquiz .privacy,
#app .pp-mquiz .counter,
#app .pp-mquiz .save-state,
#app .pp-mquiz .legend span,
#app .pp-mquiz .selection-note,
#app .pp-mquiz .field label,
#app .pp-mquiz .field small,
#app .pp-mquiz .choice-tag{font-size:17px!important}
#app .pp-mquiz .question-head{padding:24px 0 16px}
#app .pp-mquiz .question-head h1{max-width:18ch;font-size:clamp(28px,8vw,34px);letter-spacing:0}
#app .pp-mquiz .choice.sel,
#app .pp-mquiz .choice[aria-pressed="true"],
#app .pp-mquiz .chip.sel,
#app .pp-mquiz .chip[aria-pressed="true"]{
  border-color:#19745f;
  background:#e7f1e9;
  box-shadow:0 0 0 2px rgba(25,116,95,.1);
}
#app .pp-mquiz .choice.sel .choice-mark{color:#fff;background:#19745f}
#app .pp-mquiz .chips>.legend{flex:1 0 100%}
#app .pp-mquiz .qz-hc{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:4px 12px;
  width:100%;
  min-height:76px;
  text-align:left;
}
#app .pp-mquiz .qz-hc .habit-icon{grid-row:1 / span 2;display:grid;width:44px;height:44px;place-items:center;border-radius:12px;background:#f0f1ed}
#app .pp-mquiz .qz-hc .habit-copy{align-self:end;font-size:18px}
#app .pp-mquiz .qz-hc .choice-tag{grid-column:2;width:auto;max-width:100%;margin:0;padding:0;background:transparent}
#app .pp-mquiz .dock .nav-btn,
#app .pp-mquiz .dock .primary{min-height:56px!important;border-radius:10px!important;font-size:17px!important}
#app .pp-mquiz.qz-built .page{display:grid;min-height:100vh;min-height:100svh;place-items:center;padding:clamp(20px,6vw,32px)}
#app .pp-mquiz.qz-built .profile{display:grid;gap:16px;width:100%;padding:24px;border-radius:22px;color:#fff;background:#105345;box-shadow:0 18px 44px rgba(41,64,54,.14)}
#app .pp-mquiz.qz-built .profile h1{margin:0;font-size:clamp(28px,8vw,34px);line-height:1.25}
#app .pp-mquiz.qz-built .profile p{margin:0;color:rgba(255,255,255,.84);font-size:17px;line-height:1.7}
#app .pp-mquiz.qz-built .profile .primary{min-height:56px;border-radius:10px;color:#17372f;background:#edae3f;font-size:17px;font-weight:800}

/* 03 Letter */
#app .pp-mletter .page{padding-bottom:max(24px,env(safe-area-inset-bottom))}
#app .pp-mletter .context{border-radius:16px;padding:20px}
#app .pp-mletter .context-kicker,
#app .pp-mletter .context>p,
#app .pp-mletter .fact,
#app .pp-mletter .letter-kicker,
#app .pp-mletter .date,
#app .pp-mletter .letter-body,
#app .pp-mletter .signature{font-size:17px!important}
#app .pp-mletter .fact{grid-template-columns:minmax(82px,.75fr) minmax(0,1.25fr);gap:12px}
#app .pp-mletter .paper{padding:22px 20px 28px!important;border-radius:16px!important}
#app .pp-mletter .letter-head h2{max-width:16ch;font-size:27px}
#app .pp-mletter .letter-body{line-height:1.78}
#app .pp-mletter .print-icon{width:auto!important;min-width:58px!important;padding:0 12px!important;border-radius:10px!important;font-size:16px!important}
#app .pp-mletter .dock .primary,
#app .pp-mletter .dock .secondary{min-height:56px!important;border-radius:10px!important;font-size:17px!important;white-space:normal!important}

/* 04 Weekly plan */
#app .pp-mplan .page{padding-bottom:max(28px,env(safe-area-inset-bottom))}
#app .pp-mplan .top h1{font-size:20px!important}
#app .pp-mplan .top .save-icon{width:auto!important;min-width:58px!important;padding:0 10px!important;font-size:16px!important}
#app .pp-mplan .hero h2{font-size:clamp(28px,8vw,34px)!important}
#app .pp-mplan .hero>p,
#app .pp-mplan .truth,
#app .pp-mplan .section-head span,
#app .pp-mplan .order-rule,
#app .pp-mplan .board-note,
#app .pp-mplan .pool-empty,
#app .pp-mplan .day-empty,
#app .pp-mplan .pc-t small,
#app .pp-mplan .dc-t small,
#app .pp-mplan .day-head small{font-size:17px!important;line-height:1.55}
#app .pp-mplan .pc-t strong,
#app .pp-mplan .dc-t strong,
#app .pp-mplan .day-head b{font-size:18px!important;line-height:1.4}
#app .pp-mplan .pool-card,
#app .pp-mplan .day-card{min-height:60px!important;border-radius:12px!important}
#app .pp-mplan .pool-list,
#app .pp-mplan .days{grid-template-columns:minmax(0,1fr)!important}
#app .pp-mplan .pool-card{padding-right:106px!important}
#app .pp-mplan .day-card{padding-right:106px!important}
#app .pp-mplan .pc-t,
#app .pp-mplan .dc-t{min-width:0!important;max-width:100%!important}
#app .pp-mplan .pc-t strong,
#app .pp-mplan .pc-t small,
#app .pp-mplan .dc-t strong,
#app .pp-mplan .dc-t small{overflow:visible!important;text-overflow:clip!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:break-word!important}
#app .pp-mplan .pc-time svg,
#app .pp-mplan .pc-x svg,
#app .pp-mplan .dc-time svg,
#app .pp-mplan .dc-x svg{width:20px;height:20px}
#app .pp-mplan .top svg,
#app .pp-mplan .week-nav svg,
#app .pp-mpet .top svg,
#app .pp-mbadges .top svg{width:22px;height:22px}
#app .pt-back,
#app .bd-back{display:inline-flex!important;align-items:center!important;gap:8px!important}
#app .pt-back svg,
#app .bd-back svg{width:18px;height:18px;flex:none}
#app .pp-mplan [data-time],
#app .pp-mplan [data-del],
#app .pp-mplan [data-remove],
#app .pp-mplan [data-add]{min-width:44px!important;min-height:44px!important}
#app .pp-mplan .plan-dialog{width:min(calc(100% - 24px),420px)!important;max-height:min(90vh,760px);max-height:min(90svh,760px);overflow:auto;border-radius:16px!important}
#app .pp-mplan .plan-dialog .dhead h2,
#app .pp-mplan .plan-form label,
#app .pp-mplan .plan-form legend,
#app .pp-mplan .plan-form .optional,
#app .pp-mplan .plan-form .choices button,
#app .pp-mplan .dialog-note{font-size:17px!important;line-height:1.45}
#app .pp-mplan .plan-form input{font-size:17px!important}

/* 07 Finish ritual */
#app .pp-mfinish .top h1{font-size:20px}
#app .pp-mfinish .kicker,
#app .pp-mfinish .intro,
#app .pp-mfinish .choice small,
#app .pp-mfinish .optional label,
#app .pp-mfinish .response p,
#app .pp-mfinish .done p,
#app .pp-mfinish .empty-note span{font-size:17px!important;line-height:1.55}
#app .pp-mfinish .panel h2{font-size:clamp(28px,8vw,38px)}
#app .pp-mfinish .choice strong{font-size:18px}
#app .pp-mfinish .primary,
#app .pp-mfinish .secondary{min-height:56px;border-radius:10px;font-size:17px}
#app .pp-mfinish textarea{font-size:17px}

/* 08 Star pet */
#app .pp-mpet .top h1{font-size:20px}
#app .pp-mpet .food,
#app .pp-mpet .pet-name p,
#app .pp-mpet .section-head span,
#app .pp-mpet .stage span,
#app .pp-mpet .growth-note p,
#app .pp-mpet .feed span,
#app .pp-mpet .rule,
#app .pp-mpet .readonly-note p,
#app .pp-mpet .rename-error{font-size:17px!important;line-height:1.55}
#app .pp-mpet .name-row button{width:auto!important;min-width:54px;padding:0 8px;border:1px solid rgba(23,55,47,.12);background:#fffdf8;font-size:16px}
#app .pp-mpet .stage{min-height:72px}
#app .pp-mpet .rename-card{padding:20px;border-radius:16px}
#app .pp-mpet .rename-card h2{font-size:22px}
#app .pp-mpet .rename-card input,
#app .pp-mpet .rename-actions button{min-height:52px;font-size:17px}

/* 09 Badge wall */
#app .pp-mbadges .top h1{font-size:20px}
#app .pp-mbadges .hero p,
#app .pp-mbadges .hero .desc,
#app .pp-mbadges .keepsake span,
#app .pp-mbadges .wall-head span,
#app .pp-mbadges .medal strong,
#app .pp-mbadges .medal small,
#app .pp-mbadges .mystery,
#app .pp-mbadges .bd-note{font-size:17px!important;line-height:1.55}
#app .pp-mbadges .hero h2{font-size:clamp(28px,8vw,38px)}
#app .pp-mbadges .wall-head h3{font-size:21px}
#app .pp-mbadges .medal{min-height:116px;border-radius:14px}
#app .pp-mbadges .new-pop{width:min(calc(100% - 24px),400px);max-height:90vh;max-height:90svh;overflow:auto;border-radius:16px}
#app .pp-mbadges .new-inner{padding:24px 20px}
#app .pp-mbadges .new-inner button{min-height:52px;font-size:17px}

/* 05 Study session: preserve OLED black and the single compact action. */
#ppStudyPage .study-stage{min-width:0}
#ppStudyPage .companion-orbit{top:max(calc(var(--safe-top) + 16px),clamp(42px,6.5svh,68px))}
#ppStudyPage .study-controls{bottom:calc(var(--safe-bottom) + 8px);gap:12px}
#ppStudyPage .timer-value{font-size:clamp(32px,9vw,42px);font-weight:600}
#ppStudyPage .end-button{width:min(100%,216px);min-height:56px;font-size:17px}
#ppStudyPage .end-button span{padding-left:28px;letter-spacing:0}
#ppStudyPage .end-button::after{width:48px;height:48px}
@media(max-height:640px) and (orientation:portrait){
  #ppStudyPage .study-stage{--avatar-size:min(78vw,280px)}
  #ppStudyPage .companion-orbit{top:max(calc(var(--safe-top) + 8px),28px)}
  #ppStudyPage .study-controls{bottom:calc(var(--safe-bottom) + 4px)}
}

@media(max-width:350px){
  #app .pp-mletter .dock-inner{grid-template-columns:1fr!important}
  #app .pp-mplan .week-nav{grid-template-columns:44px minmax(0,1fr) 44px!important}
  #app .pp-mbadges .keepsake{grid-template-columns:56px minmax(0,1fr)!important;padding-inline:12px}
}

/* 08 星宠：饲料与主动喂养 */
.pt-food-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;background:var(--cream);border-radius:12px;padding:10px 14px}
.pt-food-lbl{font-size:16px;font-weight:700}
.pt-food-lbl b{color:#8a6420;font-size:20px;margin:0 3px}
.pt-feed{height:42px;border:1px solid var(--leaf);border-radius:10px;background:var(--leaf);color:#fff;font-weight:700;padding:0 18px;cursor:pointer;font-size:15px}
.pt-feed:hover{background:var(--deep)}
.pt-foodmsg{font-size:14px;color:var(--deep);min-height:22px;margin-top:8px;text-align:center;font-weight:600}
