:root{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;color:#24364b;background:#f1ece5;font-size:18px}*{box-sizing:border-box}body{margin:0}button,textarea{font:inherit}button,summary{cursor:pointer}button:disabled{opacity:.5}button:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid #b17424;outline-offset:2px}[hidden]{display:none!important}
main{position:relative;display:flex;flex-direction:column;gap:8px;width:100%;max-width:480px;height:100svh;height:100dvh;min-height:620px;margin:auto;padding:12px 16px calc(8px + env(safe-area-inset-bottom));background:#faf7f1}header{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:28px}h1{font-size:20px;margin:0}.badge{font-size:12px;color:#647180}.intro{font-size:20px;font-weight:500;margin:0;text-align:center}#family-current{display:flex;justify-content:space-between;align-items:center;font-size:16px;min-height:36px}.change-family{font:inherit;border:0;background:transparent;color:#405778;padding:8px;min-height:36px}
.photo{position:relative;display:block;flex:1 1 210px;min-height:120px;max-height:32svh;width:100%;padding:0;border:0;border-radius:16px;overflow:hidden;background:#dce5ed}.photo img{width:100%;height:100%;object-fit:cover;object-position:50% 42%;display:block}.photo-caption{position:absolute;bottom:0;left:0;right:0;padding:20px 8px 8px;color:#fff;background:linear-gradient(transparent,#000b);font-size:16px}.photo[data-state=recording]{outline:3px solid #a66443}.photo[data-state=speaking]{outline:3px solid #7893a2}.hint{font-size:12px;text-align:center;color:#647180;margin:0}.status{font-size:17px;line-height:1.4;margin:0;min-height:24px;max-height:48px;overflow:auto;text-align:center;color:#4a5c72}
.primary,.secondary{border-radius:14px;padding:10px 8px;min-height:48px;border:1px solid #bac4ce;color:#243c61;background:transparent}.primary{background:#243c61;color:#fff;border:0;font-size:23px}.primary.recording{background:#86442f}.easy-chat{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px}.easy-chat button{font-size:19px;background:#e9eef2;border:0;min-height:52px}.conversation{flex:0 1 auto;max-height:110px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}.conversation:empty{display:none}.bubble{font-size:19px;line-height:1.55;background:white;border-radius:12px;padding:8px 12px;white-space:pre-wrap;overflow-wrap:anywhere}.bubble.user,.bubble.assistant:not(:last-child){display:none}.speaker{display:block;font-size:11px;color:#6b7886;margin-bottom:2px}.tools{display:flex;justify-content:space-between;align-items:start;gap:6px;min-height:44px;margin-top:auto}.tools>button,.tools>details{flex:1;min-width:0}.tools>button{min-height:44px;padding:8px 4px;font-size:16px}.tools summary{list-style:none;text-align:center;padding:10px 5px;min-height:44px;border:1px solid #bac4ce;border-radius:12px;color:#243c61;font-size:16px}.tools summary::-webkit-details-marker{display:none}.tools>details[open]{position:fixed;z-index:5;inset:8vh max(12px,calc((100vw - 460px)/2));padding:18px;background:#faf7f1;border:1px solid #bac4ce;border-radius:18px;box-shadow:0 0 0 100vmax #172a4266;overflow:auto;max-height:84dvh}.tools>details[open]>summary{background:#e9eef2;margin-bottom:14px}.tools>details[open]>summary:after{content:' · 点此收起'}
textarea{width:100%;font:inherit;font-size:20px;line-height:1.6;padding:12px;border:1px solid #aeb8c3;border-radius:10px}label{display:block;margin:10px 0}#send{width:100%;margin-top:12px}audio{width:100%}.small,footer{font-size:15px;line-height:1.7;color:#5b6979}footer{margin-top:20px}.original-section button{width:100%;font-size:19px}h3{font-size:20px}#recording-preview{max-height:130px;overflow:auto}.family-choice{position:absolute;inset:52px 12px 12px;z-index:4;background:#faf7f1;padding:18px 4px}.family-choice h2{font-size:25px;margin:12px 0 24px}.family-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.family-grid button{font:inherit;font-size:24px;min-height:80px;background:#243c61;color:white;border:0;border-radius:14px;padding:10px}
@media(max-height:740px){main{gap:5px}.photo{max-height:25svh;min-height:90px}.conversation{max-height:64px}.intro{font-size:18px}.easy-chat button{font-size:18px}}@media(min-width:700px){main{box-shadow:0 0 40px #58432b12}}@media(prefers-reduced-motion:no-preference){button:active{transform:scale(.99)}}

/* Two rows of quick topics, keeping the original one-screen layout. */
.photo{flex-basis:155px;max-height:26svh}.easy-chat{row-gap:6px}.easy-chat button{min-height:46px;padding:8px 5px}@media(max-height:740px){.photo{flex-basis:105px;min-height:80px;max-height:19svh}.conversation{max-height:58px}}

#choose-relative{grid-column:1 / -1;min-height:72px}#choose-relative span{display:block;font-size:16px;font-weight:400;margin-top:5px;opacity:.9}.family-choice{overflow:auto}

/* Show the entire portrait and let text determine page height. */
main{height:auto;min-height:100svh;gap:10px;padding-bottom:calc(16px + env(safe-area-inset-bottom))}
.photo{flex:none;height:clamp(260px,45svh,390px);min-height:0;max-height:none;background:#e5e9eb}
.photo img{object-fit:contain;object-position:center;height:100%;width:100%}
.photo-caption{font-size:16px;padding-top:26px}
.conversation{flex:none;max-height:none;overflow:visible}
.bubble{font-size:18px;line-height:1.65;padding:12px 14px}
.speaker{font-size:13px}
.tools{margin-top:8px;flex:none}
.status{max-height:none;overflow:visible}
#reply-player{padding:10px 12px;border-radius:14px;background:#e9eef2}
#reply-audio{display:block;width:100%;min-height:44px}
.audio-help{font-size:14px;line-height:1.5;color:#4a5c72;margin:8px 0}
#direct-audio{font-size:14px;color:#243c61;text-underline-offset:3px}
.family-choice{bottom:0;min-height:600px}
@media(max-width:360px){main{padding-left:10px;padding-right:10px}h1{font-size:18px}.easy-chat button{font-size:17px}}
