:root{--paper:#f5f2e9;--ink:#293f3a;--muted:#748079;--green:#38594c;--line:#dcded3;--red:#a94f3f;--art:url('landscape.png')}*{box-sizing:border-box}body{margin:0;background:#eaece4;color:var(--ink);font-family:'Microsoft YaHei','PingFang SC',sans-serif;font-size:14px}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #b28650;outline-offset:3px}button{transition:background .2s,transform .2s}button:hover{filter:brightness(.97)}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}h1,h2,.app-title,.brand,.verse{font-family:'STKaiti','KaiTi','Noto Serif SC',serif}button,input{border-radius:10px}input{width:100%;border:1px solid var(--line);background:#fcfbf7;padding:17px;color:var(--ink);font-size:18px}input:focus{outline:2px solid #7b9483;outline-offset:2px}input::placeholder{color:#90958b}small{font-size:11px}.masthead{height:100px;max-width:1260px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:0 45px;border-bottom:1px solid #d3d8cc}.brand{display:flex;gap:13px;text-decoration:none;color:var(--ink);font-size:25px;letter-spacing:3px;align-items:center}.brand small{display:block;font:11px 'Microsoft YaHei',sans-serif;letter-spacing:2px;margin-top:6px;color:var(--muted)}.seal{background:var(--red);color:#fff1dd;font:17px serif;line-height:20px;padding:4px 7px;border-radius:3px;transform:rotate(-3deg);box-shadow:inset 0 0 0 3px #b56756}.top-right{display:flex;gap:25px;align-items:center}.version{font-size:11px;letter-spacing:1px;color:#64766a}.text-btn{background:none;border:0;color:var(--green);padding:12px 0}main{max-width:1170px;margin:auto;padding:0 32px}.intro{display:flex;justify-content:space-between;align-items:end;padding:38px 0 32px}.eyebrow{font-size:10px;letter-spacing:2.2px;color:#7b897b}h1{font-size:34px;letter-spacing:3px;font-weight:500;margin:12px 0}h1 em{font-style:normal;color:#637c69}.intro p{color:var(--muted);font-size:13px;letter-spacing:1px;margin-bottom:0}.flow{display:flex;gap:14px;font-size:11px;letter-spacing:1px;padding-bottom:5px;color:#7b867b}.flow i{font-style:normal;color:#b5bcb0}.workspace{display:grid;grid-template-columns:minmax(0,420px) 100px minmax(0,420px);justify-content:center;align-items:center}.device-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;font-size:12px;letter-spacing:1px}.device-label b{font-family:Georgia,serif;font-weight:400;color:#899987;margin-right:9px}.device-label small{color:#859083;letter-spacing:0}.phone{background:var(--paper);border:1px solid #fffdf3;border-radius:28px;overflow:hidden;min-height:825px;position:relative;box-shadow:0 18px 55px #32463410,0 2px 4px #32463409;padding-bottom:73px}.phone-top{display:flex;justify-content:space-between;padding:16px 25px 7px;font-size:11px;font-weight:600}.appbar{display:flex;align-items:center;justify-content:space-between;padding:15px 24px}.app-title{font-size:22px;letter-spacing:2px}.app-title i{display:inline-block;font:11px serif;background:var(--red);color:#fff4e4;font-style:normal;padding:3px;margin-left:4px;vertical-align:middle}.avatar{width:33px;height:33px;border:1px solid #cbd2c3;border-radius:50%;background:#e9eddf;color:#526853}.landscape{height:171px;position:relative;background-image:linear-gradient(90deg,#f5f2e924,#f5f2e900),var(--art);background-position:center 48%;background-size:cover}.landscape:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,var(--paper),transparent 26%);pointer-events:none}.verse{writing-mode:vertical-rl;position:absolute;right:22px;top:8px;font-size:11px;letter-spacing:3px;color:#607767}.hero-copy{position:absolute;left:24px;bottom:21px;z-index:1;text-shadow:0 1px 5px #f5f2e9}.hero-copy span{font-size:10px;letter-spacing:2px}.hero-copy h2{font-size:27px;font-weight:500;margin:12px 0 9px}.hero-copy p{font-size:12px;margin:0;color:#5c6e60}.phone-content{padding:0 24px}.connection{display:flex;align-items:center;gap:7px;font-size:11px;padding:11px 0 20px;color:#60735e}.connection small{margin-left:auto;background:#e9eade;padding:3px 6px;border-radius:4px;color:#74806b}.dot{display:inline-block;width:6px;height:6px;background:#739076;border-radius:50%}label{display:flex;align-items:center;justify-content:space-between;font-size:18px;font-weight:600;margin:0 0 11px}label span{font-size:10px;font-weight:400;color:#93988b}.presets{display:flex;gap:9px;margin:11px 0 24px}.presets button{border:1px solid #dce0d4;color:#6e7b6c;background:transparent;padding:8px 17px;font-size:12px}.presets button.active{border-color:#96aa93;background:#e7ecdf;color:#35583f}.duration{position:relative}.duration input{font-size:28px;font-family:Georgia,serif;padding:12px 17px}.duration span{position:absolute;right:19px;top:22px;font-size:13px;color:#7c8978}.times{margin-bottom:20px}.times button{flex:1;padding:9px 0}.primary{display:block;width:100%;min-height:56px;background:var(--green);border:0;color:#fffdf2;font-size:17px;letter-spacing:1px;padding:15px 12px}.primary span{float:right;margin-right:4px}.footnote{font-size:10px;text-align:center;color:#84907d;line-height:1.8}.field-error{font-size:12px;color:var(--red);margin:0 0 10px}.field-error:empty{display:none}.quiet-note{text-align:center;border-top:1px solid #e0e2d6;margin-top:22px;padding-top:16px;font-size:11px;color:#939c8b;letter-spacing:1px}.quiet-note span{color:#81957a;margin-right:5px}.bottom-nav{position:absolute;bottom:0;left:0;right:0;height:67px;border-top:1px solid #e1e3d8;display:flex;background:#f5f2e9ed}.bottom-nav button{flex:1;border:0;background:transparent;color:#8b9484;font-size:10px}.bottom-nav button span{display:block;font-size:22px;margin-bottom:2px}.bottom-nav button.active{color:#3c6048}.between{text-align:center;color:#9aa78f;font-size:11px;line-height:1.9;letter-spacing:3px}.between div{font:29px Georgia;margin:12px 0}.between small{font-size:9px;letter-spacing:0}.family-hero{height:171px;padding:24px;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(90deg,#f5f2e9eb,#f5f2e99c),var(--art) center 40%/cover}.family-hero h2{font-size:30px;font-weight:500;margin:12px 0}.family-hero p{font-size:12px;color:#839078}.round-seal{border:1px solid #a2b19a;color:#728b68;font:18px serif;padding:11px;border-radius:50%;transform:rotate(8deg)}.family-card{margin-top:10px;border:1px solid #dce2d3;border-radius:15px;background:#fbfaf4;padding:20px;min-height:211px}.card-head{display:flex;align-items:center;gap:10px}.mini-avatar{display:grid;place-items:center;height:39px;width:39px;border-radius:50%;background:#e5ebdc;color:#67805f;font:19px serif}.card-head b{font-size:15px}.card-head small{display:block;margin-top:5px;color:#929b89;font-size:10px}.status-pill{display:inline-block;border-radius:5px;background:#e9eedf;padding:5px 8px;font-size:10px;color:#6b815e}.card-head .status-pill{margin-left:auto}.family-card.urgent{border-color:#bc7361;background:#fff5ed}.urgent .status-pill,.status-pill.urgent{background:#f2ded5;color:#a04130}.status-pill.grace{background:#f1e7d2;color:#896c35}.family-empty{text-align:center;padding:23px 0 4px}.family-empty strong{display:block;font:23px 'KaiTi',serif;font-weight:400}.family-empty p{font-size:11px;color:#85917b;line-height:1.9}.task-summary{font-size:21px;line-height:1.4;margin:19px 0 13px;overflow-wrap:anywhere}.meta{display:flex;justify-content:space-between;gap:10px;color:#7d8b72;font-size:10px}.family-help{font-size:12px;color:#607052;line-height:1.8}.urgent .family-help{color:#a04130}.call{width:100%;border:1px solid #c98b78;background:#fff9f2;color:#a04130;padding:11px;margin-top:5px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-top:24px}.section-heading h3{font-size:15px;font-weight:500;margin:0}.section-heading span{font-size:10px;color:#96a18a}.messages{margin-top:13px;max-height:220px;overflow:auto}.message{border-left:1px solid #cdd7c2;padding:0 0 18px 15px;margin-left:4px;position:relative}.message:before{content:'';position:absolute;left:-4px;top:5px;width:7px;height:7px;border-radius:50%;background:#8fa47c}.message.urgent:before{background:var(--red)}.message b{font-size:12px;font-weight:500}.message time{float:right;font-size:10px;color:#94a086}.message p{font-size:11px;line-height:1.9;color:#7b886e;margin:7px 0 0;overflow-wrap:anywhere}.message.urgent b{color:var(--red)}.empty-message{font-size:12px;line-height:2;color:#9aa28e;text-align:center;padding:25px 10px}.delivery{display:flex;gap:13px;border-top:1px solid #e0e4d6;padding-top:15px;margin-top:16px;color:#87977c}.delivery>span{font-size:25px;margin-top:7px}.delivery p{font-size:11px;line-height:2;margin:0}.delivery b{font-weight:400;color:#657d59}.delivery small{font-size:9px}.demo-bar{max-width:940px;margin:30px auto 0;display:flex;justify-content:space-between;align-items:center;border:1px solid #d2d9c9;border-radius:12px;padding:19px 22px;background:#eef0e7}.demo-bar b{font-size:12px;font-weight:500}.demo-bar .dot{margin-right:7px}.demo-bar p{font-size:11px;color:#87947d;margin:7px 0 0}.demo-buttons{display:flex;gap:10px}.demo-buttons button{border:1px solid #cdd6c3;background:transparent;color:#667e58;padding:10px 12px;font-size:11px}footer{display:flex;gap:22px;align-items:center;margin:29px auto;max-width:940px;color:#88977c;font-family:serif;font-size:15px}footer span{font:11px sans-serif;color:#9aa58d}footer small{margin-left:auto;font:10px sans-serif;color:#9aa58d}.mobile-tabs{display:none}#timerPanel{text-align:center;padding-top:8px}#taskName{font-size:23px;font-weight:500;margin:15px 0;overflow-wrap:anywhere}.timer-ring{border:1px solid #becbb3;outline:5px solid #e9ecdf;border-radius:50%;width:202px;height:202px;margin:24px auto;display:flex;align-items:center;justify-content:center;flex-direction:column;background:radial-gradient(#faf9f3,#e9eddf)}.timer-ring>span{font-size:11px;color:#819271}.timer-ring strong{font:43px Georgia,serif;margin:10px 0;color:#41623d;letter-spacing:2px}.timer-ring small{font-size:10px;color:#8d9b7f}.timer-help{font-size:12px;line-height:1.9;min-height:42px;color:#7c8b6f;margin:20px 0}.secondary{width:100%;border:1px solid #9dad91;background:transparent;color:#557347;padding:15px;font-size:16px}.phone:has(.status-pill.urgent) .timer-ring{border-color:#bc7361;outline-color:#f0e1d8;background:#fff6ec}.phone:has(.status-pill.urgent) .timer-ring strong{color:var(--red)}#toast{position:fixed;left:50%;bottom:25px;transform:translateX(-50%) translateY(100px);opacity:0;background:#2c473e;color:#fff8ed;max-width:90vw;padding:15px 24px;border-radius:12px;z-index:10;transition:.25s;box-shadow:0 8px 30px #263c3b30;font-size:13px;pointer-events:none}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}dialog{border:1px solid #d5ddc9;border-radius:20px;padding:32px;background:var(--paper);color:var(--ink);max-width:420px;width:90vw}dialog::backdrop{background:#26392d66;backdrop-filter:blur(4px)}dialog h2{font-weight:400;font-size:27px}dialog p{font-size:14px;line-height:1.9;color:#6c7d61}dialog .primary{margin-top:23px}.close{position:absolute;right:16px;top:12px;font-size:26px;background:none;border:0;color:#859578}.wx{background:#e5ecdf;border:1px solid #ccd8be;padding:15px;text-align:center;border-radius:10px;color:#607e4d}dialog ul{padding-left:18px;line-height:2;font-size:13px;color:#6c7d61}[hidden]{display:none!important}
@media(min-width:1500px){main{padding-top:10px}.intro{padding-bottom:40px}.phone{min-height:850px}}@media(max-width:1000px){.between{display:none}.workspace{grid-template-columns:minmax(0,420px) minmax(0,420px);gap:24px}.flow{display:none}.phone-content{padding:0 18px}.presets{gap:7px}.presets button{padding:8px 12px}.demo-bar{gap:20px}.demo-buttons{flex-wrap:wrap}.hero-copy h2{font-size:24px}}@media(max-width:700px){body{background:var(--paper)}.masthead{height:76px;padding:0 22px}.brand{font-size:21px}.brand small{font-size:9px}.top-right{gap:0}.version{display:none}.text-btn{font-size:11px}.intro{padding:25px 4px 22px}.intro .eyebrow{font-size:8px}h1{font-size:26px;letter-spacing:1px}.intro p{font-size:11px}.mobile-tabs{display:flex;padding:4px;background:#e7ebde;border-radius:11px;margin-bottom:20px}.mobile-tabs button{width:50%;border:0;background:transparent;color:#7e8d71;padding:12px 0;font-size:12px}.mobile-tabs button.selected{background:#fbfaf4;color:#426139;box-shadow:0 2px 8px #2533290a}main{padding:0 14px}.workspace{display:block;max-width:430px;margin:auto}.device-label,.phone-top{display:none}.phone{box-shadow:none;border:1px solid #e0e4d5;border-radius:20px;min-height:780px}.family-col{display:none}.workspace.show-family .mother-col{display:none}.workspace.show-family .family-col{display:block}.phone-content{padding:0 23px}.landscape{height:180px}.hero-copy h2{font-size:27px}.presets button{padding:9px 15px}.times button{padding:10px 0}.demo-bar{display:block;padding:18px;margin-top:20px}.demo-buttons{margin-top:14px;gap:7px}.demo-buttons button{font-size:10px;padding:10px}footer{flex-wrap:wrap;gap:12px;font-size:13px}footer small{width:100%;margin:0}.family-hero{height:180px}}

@media(min-width:701px){.workspace{align-items:start}.between{align-self:center}}

/* MOBILE_ADAPTATION_V2: full-width app surface, not a phone mockup */
html{scroll-padding-bottom:110px}
.device-col,.phone-content,.card-head{min-width:0}
.task-summary,#taskName{overflow-wrap:anywhere}
@media(max-width:700px){
  :root{--mobile-gutter:clamp(16px,4.8vw,24px)}
  body{padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) calc(86px + env(safe-area-inset-bottom,0px)) env(safe-area-inset-left,0px)}
  .masthead,.intro,footer{display:none}
  main{width:100%;max-width:none;padding:0}
  .mobile-tabs{margin:8px var(--mobile-gutter) 0;padding:4px;border-radius:12px}
  .mobile-tabs button{min-height:44px;font-size:14px;padding:10px 6px}
  .workspace{width:100%;max-width:none;margin:0}
  .phone{width:100%;min-height:calc(100svh - 68px);border:0;border-radius:0;box-shadow:none;padding-bottom:24px;overflow:visible}
  .appbar{padding:16px var(--mobile-gutter) 12px}
  .app-title{font-size:24px}
  .avatar{width:44px;height:44px;font-size:17px;flex-shrink:0}
  .landscape{height:clamp(125px,34vw,155px)}
  .hero-copy{left:var(--mobile-gutter);right:34px;bottom:16px}
  .hero-copy h2{font-size:clamp(23px,6.4vw,28px);line-height:1.4;margin:8px 0}
  .hero-copy p{font-size:13px;line-height:1.6}
  .verse{right:12px;top:6px;font-size:10px}
  .phone-content{padding:0 var(--mobile-gutter)}
  .connection{font-size:12px;padding:12px 0 18px;flex-wrap:wrap}
  .connection small{font-size:11px}
  label{font-size:20px;line-height:1.4;gap:8px;flex-wrap:wrap}
  label span{font-size:12px;color:#6d7866}
  input{min-width:0;min-height:56px;font-size:18px;padding:14px 16px}
  .presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0 20px}
  .presets button{min-width:0;min-height:44px;padding:8px 2px;font-size:15px;color:#53664a}
  .times{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px}
  .duration input{font-size:28px;min-height:60px;padding-right:64px}
  .duration span{font-size:15px;top:21px}
  .primary,.secondary{min-height:58px;font-size:18px;line-height:1.5;padding:14px 10px}
  .footnote{font-size:12px;color:#64765a;line-height:1.8}
  .quiet-note{font-size:12px;margin-top:18px;line-height:1.8}
  .bottom-nav{position:fixed;z-index:5;left:env(safe-area-inset-left,0px);right:env(safe-area-inset-right,0px);bottom:0;height:calc(70px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:#f5f2e9f5;backdrop-filter:blur(12px)}
  .bottom-nav button{min-height:48px;font-size:13px}
  .bottom-nav button span{font-size:23px}
  .family-hero{height:155px;padding:16px var(--mobile-gutter)}
  .family-card{padding:16px;min-height:190px}
  .card-head{flex-wrap:wrap;gap:9px}
  .status-pill{font-size:12px;line-height:1.5}
  .card-head small,.meta{font-size:12px}
  .meta{flex-wrap:wrap;line-height:1.8}
  .family-help,.family-empty p{font-size:14px}
  .family-empty strong{font-size:23px}
  .section-heading h3{font-size:18px}
  .section-heading span{font-size:12px}
  .messages{max-height:none}
  .message b{font-size:14px}
  .message p{font-size:13px}
  .message time{font-size:12px}
  .delivery p{font-size:13px}
  .delivery small{font-size:11px}
  .call{min-height:48px;font-size:16px}
  .timer-help{font-size:15px}
  .timer-ring>span{font-size:13px}
  .timer-ring small{font-size:12px}
  .demo-bar{margin:14px var(--mobile-gutter);padding:14px}
  .demo-bar p{line-height:1.7}
  .demo-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .demo-buttons button{min-height:44px;font-size:12px;padding:8px 4px}
  .demo-buttons button:last-child{grid-column:1/-1}
  #toast{bottom:calc(84px + env(safe-area-inset-bottom,0px));width:max-content;max-width:calc(100vw - 32px);font-size:14px;line-height:1.7}
  dialog{max-height:calc(100dvh - 48px);overflow:auto;padding:24px;width:calc(100% - 32px)}
  .close{width:44px;height:44px;top:4px;right:4px}
}
@media(max-width:359px){label span{display:none}.hero-copy p{font-size:12px}.card-head .status-pill{margin-left:0}.hero-copy h2{letter-spacing:0}.mobile-tabs button{font-size:13px}}
.connection-state{display:block;width:calc(100% - 32px);margin:0 16px 12px;padding:12px;border:1px solid #bac8bb;border-radius:8px;background:#edf1e8;color:#38594c;white-space:normal;min-height:44px;text-align:left}#modalBody button,#modalBody select,#modalBody textarea{box-sizing:border-box;display:block;width:100%;min-height:48px;margin:12px 0;padding:12px;font:inherit;white-space:normal}#bindCode{overflow-wrap:anywhere;min-height:88px}#accountResult{overflow-wrap:anywhere}

#passwordForm{display:grid;gap:12px;min-width:0}#passwordForm input{width:100%;min-width:0;box-sizing:border-box;font-size:16px}#passwordForm button{min-height:48px;white-space:normal}#passwordForm [hidden]{display:none}

.history-item{border-bottom:1px solid var(--line);padding:12px 0;overflow-wrap:anywhere}.history-item h3{margin:4px 0}.history-item p{font-size:14px}

#countdown,.family-countdown{font-variant-numeric:tabular-nums}.family-countdown{font-size:20px;color:var(--green);overflow-wrap:anywhere}#complete{min-height:52px;white-space:normal}

#chatList{height:min(42dvh,360px);overflow:auto;overscroll-behavior:contain;padding:8px 2px;display:flex;flex-direction:column;gap:12px}
.chat-message{align-self:flex-start;max-width:88%;padding:10px 14px;border:1px solid #d6dccd;border-radius:12px;background:#f4f1e7;overflow-wrap:anywhere;flex-shrink:0}.chat-message.mine{align-self:flex-end;background:#e3ebdf}.chat-message small{font-size:12px;color:#68796a}.chat-message p{white-space:pre-wrap;margin:6px 0 0;font-size:17px}.chat-empty{text-align:center;color:#8a9484}
#chatText{resize:vertical;max-height:160px;min-height:80px;font-size:17px!important}#chatStatus{overflow-wrap:anywhere;font-size:14px}#olderMessages{overflow-wrap:anywhere}dialog:has(#chatList){max-width:520px}dialog:has(#chatList) #modalOkay{display:none}

/* Full conversation page; standard narrow viewport, no half-fold mode. */
dialog:has(#chatList){position:fixed;inset:0;margin:0;width:100%;max-width:none;height:100dvh;max-height:none;border:0;border-radius:0;box-sizing:border-box;padding:calc(16px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) calc(12px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));overflow:hidden;background:#f5f2e9}
dialog[open]:has(#chatList){display:flex;flex-direction:column}
dialog:has(#chatList)>.eyebrow{display:none}dialog:has(#chatList) h2{margin:0 48px 12px 0;font-size:22px;flex-shrink:0}
dialog:has(#chatList) .close{top:calc(6px + env(safe-area-inset-top,0px));right:10px;width:44px;height:44px}
dialog:has(#chatList) #modalBody{flex:1;min-height:0;display:flex;flex-direction:column;width:100%;max-width:760px;align-self:center}
#chatList{height:auto;flex:1;min-height:0}#modalBody #chatOlder{flex-shrink:0;margin:0;padding:8px;min-height:44px}#modalBody #chatOlder[hidden]{display:none}
#chatForm{flex-shrink:0;display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:8px;align-items:end;padding-top:8px}#chatForm label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}#modalBody #chatText{min-height:52px;height:70px;max-height:120px;margin:0;padding:10px;font-size:16px!important}#modalBody #chatSend{margin:0;min-height:52px;padding:10px}#chatStatus{margin:4px 0 0}#chatStatus:empty{display:none}

/* High-contrast conversation: paper incoming, ink-green outgoing. */
#chatList{gap:16px;padding:10px 6px;scrollbar-color:#687d71 #e6e6db}
#chatList .chat-message{background:#ffffff;border:1px solid #a8b6aa;border-left:4px solid #637f6c;border-radius:4px 16px 16px 16px;padding:12px 15px;max-width:88%;box-shadow:0 2px 5px #293f3a0d;color:#20382f}
#chatList .chat-message p{color:#20382f;font-size:18px;font-weight:500;line-height:1.65;margin:7px 0 0}
#chatList .chat-message small{display:block;color:#526459;font-size:12px;line-height:1.5}
#chatList .chat-message.mine{background:#285344;border-color:#285344;border-left-width:1px;border-radius:16px 4px 16px 16px;color:#ffffff}
#chatList .chat-message.mine p{color:#ffffff}
#chatList .chat-message.mine small{color:#dceadf}
#modalBody #chatText{border:1px solid #8b9c8e;background:#ffffff;color:#20382f;border-radius:12px}
#modalBody #chatText::placeholder{color:#596b60;opacity:1}
#modalBody #chatSend{background:#285344;color:#ffffff;font-size:17px;font-weight:600;border:1px solid #285344;border-radius:12px}
#modalBody #chatOlder{color:#285344;font-weight:600}
dialog:has(#chatList) .close{color:#285344}

/* Paired native-vector avatars; preserve full-page history and narrow screens. */
#chatList .chat-message{display:flex;align-items:flex-start;gap:10px;max-width:100%;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;min-width:0}
#chatList .chat-message.mine{flex-direction:row-reverse;background:transparent;border:0;border-radius:0}
#chatList .chat-bubble{min-width:0;max-width:calc(100% - 54px);padding:12px 15px;background:#fff;border:1px solid #a8b6aa;border-left:4px solid #637f6c;border-radius:4px 16px 16px 16px;box-shadow:0 2px 5px #293f3a0d;overflow-wrap:anywhere}
#chatList .mine .chat-bubble{background:#285344;border:1px solid #285344;border-radius:16px 4px 16px 16px}
#chatList .chat-avatar{display:block;flex:0 0 44px;width:44px;height:44px;border-radius:14px;border:1px solid #a5b4a7;background-size:cover;background-position:center;box-shadow:0 2px 4px #293f3a12}
.avatar-mother{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2096%2096%22%3E%3Crect%20width%3D%2296%22%20height%3D%2296%22%20fill%3D%22%23f5e8da%22%2F%3E%3Ccircle%20cx%3D%2270%22%20cy%3D%2225%22%20r%3D%2212%22%20fill%3D%22%23e9c5a8%22%2F%3E%3Cpath%20d%3D%22M12%2096Q38%2065%2038%2039M27%2075Q51%2063%2075%2046M37%2048L22%2032%22%20fill%3D%22none%22%20stroke%3D%22%23594d40%22%20stroke-width%3D%224%22%20stroke-linecap%3D%22round%22%2F%3E%3Cg%20fill%3D%22%23ad4e48%22%3E%3Ccircle%20cx%3D%2235%22%20cy%3D%2232%22%20r%3D%229%22%2F%3E%3Ccircle%20cx%3D%2224%22%20cy%3D%2239%22%20r%3D%229%22%2F%3E%3Ccircle%20cx%3D%2228%22%20cy%3D%2251%22%20r%3D%229%22%2F%3E%3Ccircle%20cx%3D%2241%22%20cy%3D%2251%22%20r%3D%229%22%2F%3E%3Ccircle%20cx%3D%2246%22%20cy%3D%2239%22%20r%3D%229%22%2F%3E%3Ccircle%20cx%3D%2268%22%20cy%3D%2253%22%20r%3D%226%22%2F%3E%3Ccircle%20cx%3D%2259%22%20cy%3D%2258%22%20r%3D%226%22%2F%3E%3Ccircle%20cx%3D%2263%22%20cy%3D%2267%22%20r%3D%226%22%2F%3E%3Ccircle%20cx%3D%2273%22%20cy%3D%2266%22%20r%3D%226%22%2F%3E%3Ccircle%20cx%3D%2277%22%20cy%3D%2257%22%20r%3D%226%22%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%22%23f7d88a%22%3E%3Ccircle%20cx%3D%2235%22%20cy%3D%2242%22%20r%3D%224%22%2F%3E%3Ccircle%20cx%3D%2268%22%20cy%3D%2260%22%20r%3D%223%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E")}
.avatar-family{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2096%2096%22%3E%3Crect%20width%3D%2296%22%20height%3D%2296%22%20fill%3D%22%23e5eee4%22%2F%3E%3Ccircle%20cx%3D%2270%22%20cy%3D%2224%22%20r%3D%2211%22%20fill%3D%22%23c58c59%22%2F%3E%3Cpath%20d%3D%22M0%2068L31%2022%2065%2067%2080%2048%2096%2065V96H0Z%22%20fill%3D%22%238ba494%22%2F%3E%3Cpath%20d%3D%22M0%2083L24%2056%2043%2074%2063%2037%2096%2077V96H0Z%22%20fill%3D%22%23345e4c%22%2F%3E%3Cpath%20d%3D%22M0%2083Q29%2072%2051%2085T96%2083V96H0Z%22%20fill%3D%22%23eff0df%22%2F%3E%3Cpath%20d%3D%22M17%2089Q40%2084%2070%2090%22%20fill%3D%22none%22%20stroke%3D%22%237d9b8b%22%20stroke-width%3D%222%22%2F%3E%3C%2Fsvg%3E")}
@media(max-width:380px){#chatList .chat-message{gap:8px}#chatList .chat-avatar{flex-basis:40px;width:40px;height:40px;border-radius:12px}#chatList .chat-bubble{max-width:calc(100% - 48px);padding:10px 12px}}

.avatar-editor{display:grid;gap:16px;max-width:400px;margin:auto}.avatar-preview{display:block;width:80px;height:80px;border:2px solid #667f6b;border-radius:20px;background-size:cover;background-position:center;margin:0 auto}.avatar-templates{display:flex;gap:16px}.avatar-templates button{flex:1;padding:12px;color:#243e32;background:#faf9f2;border:2px solid #c5cdbf}.avatar-templates button[aria-pressed="true"]{border-color:#285344;box-shadow:0 0 0 2px #285344}.avatar-editor input{max-width:100%;min-width:0;font-size:16px}.avatar-editor p{margin:0;color:#435a4d}.avatar-editor label{font-size:18px}
