:root{font-family:'Microsoft YaHei','PingFang SC',sans-serif;color:#253e35;background:#f3f5ef;line-height:1.6;--green:#226857;--soft:#e8efe5;--muted:#7c8b80;--line:#e6ebe3;--orange:#b97636;--red:#ac5048}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible{outline:3px solid #d6ae64;outline-offset:3px}button,a{-webkit-tap-highlight-color:transparent}a{color:var(--green)}h1,h2,h3,p{margin:0}h1{font-size:27px;line-height:1.4}h2{font-size:19px;letter-spacing:.2px}h3{font-size:16px}.muted,small{color:var(--muted)}small{font-size:12px}.app-shell{max-width:1140px;margin:auto;padding:0 28px 108px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:24px 0 18px;gap:12px}.brand{display:flex;align-items:center;gap:10px}.brand-mark{background:var(--green);color:#fff;border-radius:12px;width:40px;height:40px;display:grid;place-items:center}.brand strong{font-size:19px}.brand small{display:block;font-size:10px;letter-spacing:2px}.icon{width:22px;height:22px;flex-shrink:0;vertical-align:middle}.role-button{border:1px solid #dbe4d8;background:#fff;color:var(--green);padding:8px 12px;border-radius:24px;font-size:13px;display:flex;align-items:center;gap:6px}.page-title{display:flex;justify-content:space-between;align-items:center;margin:5px 0 22px}.overline{font-size:10px;letter-spacing:2.3px;font-weight:700;color:#89a08d;margin-bottom:4px}.date{font-size:12px;color:var(--muted);margin-top:4px}.local-label{font-size:10px;background:#e6eddf;color:#6c8069;border-radius:5px;padding:3px 6px;white-space:nowrap}.hero{background:var(--green);color:#fff;padding:26px 28px;border-radius:22px;min-height:200px;display:flex;align-items:center;justify-content:space-between;position:relative;overflow:hidden;gap:12px}.hero h2{font-size:26px;font-weight:500;margin-bottom:10px;line-height:1.5}.hero p{color:#c9ded1;font-size:13px;max-width:390px}.hero .overline{color:#acc9b9}.hero .btn{margin-top:20px;background:#f7edcb;color:#4c5a3c;padding:10px 18px}.bot-art{width:135px;height:135px;position:relative;flex-shrink:0;border-radius:50%;background:#357561;display:grid;place-items:center;box-shadow:0 0 0 20px #2a6e5a,0 0 0 40px #286b58}.bot-face{width:93px;height:77px;background:#e9efdb;border-radius:34px 34px 30px 30px;position:relative;display:flex;justify-content:center;align-items:center;gap:20px;border-bottom:6px solid #c4d5b9}.bot-face:before,.bot-face:after{content:'';width:8px;height:12px;border-radius:8px;background:#2f6c54}.bot-smile{position:absolute;width:19px;height:10px;border-bottom:3px solid #608868;border-radius:50%;bottom:17px;left:37px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:26px 0 12px}.link-btn{border:0;background:none;color:var(--green);font-size:12px;display:flex;align-items:center;gap:4px;padding:6px 0}.card{border-radius:17px;border:1px solid var(--line);background:#fff;padding:20px}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.quick{border:0;background:#fff;border-radius:16px;padding:16px 8px;display:flex;flex-direction:column;align-items:center;gap:10px;color:#3b5042;font-size:13px;font-weight:600}.icon-box{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:#eaf2e7;color:#51815e}.icon-box.gold{background:#fbf1dc;color:#ad854c}.icon-box.rose{background:#f9eae5;color:#b97967}.icon-box.blue{background:#e8eff6;color:#6b8fa5}.list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0;border-bottom:1px solid var(--line);min-width:0}.list-row:first-child{padding-top:0}.list-row:last-child{padding-bottom:0;border-bottom:0}.list-main{display:flex;align-items:center;gap:13px;min-width:0}.list-main>div{min-width:0}.list-row h3{font-size:14px}.list-row p{font-size:12px;color:var(--muted);margin-top:3px;overflow-wrap:anywhere}.list-row .btn{flex-shrink:0}.time{font-size:17px;color:#62846b;min-width:48px}.btn{display:inline-flex;justify-content:center;align-items:center;gap:6px;border:0;background:var(--green);color:#fff;padding:11px 17px;border-radius:11px;font-size:13px;font-weight:600;min-height:42px;text-decoration:none}.btn.soft{background:#edf3e9;color:#527b58}.btn.outline{background:#fff;color:#657866;border:1px solid #dce5d8}.btn.red{background:#fbede9;color:var(--red)}.btn.small{padding:8px 12px;font-size:12px;min-height:36px}.tag{white-space:nowrap;font-size:11px;border-radius:6px;padding:4px 8px;display:inline-block;background:#edf3e7;color:#648156}.tag.orange{background:#fcf2df;color:#aa7c34}.tag.red{background:#fae9e5;color:#ad6053}.tag.gray{background:#f0f2ed;color:#86917f}.hint{color:#8b9688;font-size:11px;margin-top:12px;line-height:1.7}.empty{padding:28px 10px;text-align:center;color:#96a18e;font-size:13px}.empty .icon{display:block;margin:0 auto 8px;width:29px;height:29px}.metric{font-size:30px;font-weight:600;letter-spacing:-1px;color:#3c6d50;margin:7px 0 2px}.metric small{font-weight:400;font-size:12px;letter-spacing:0;margin-left:4px}.metric-title{font-size:12px;color:#84927d}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}.stat-grid .card{padding:16px}.daily-progress{height:5px;border-radius:5px;background:#eaf0e5;margin-top:10px;overflow:hidden}.daily-progress span{display:block;height:100%;background:#a6bca0}.mood-row{display:flex;justify-content:space-between;gap:6px;margin-top:15px}.mood-btn{border:1px solid transparent;background:#f6f7f2;border-radius:13px;padding:10px 5px;flex:1;color:#85917b;font-size:11px}.mood-btn b{display:block;font-size:24px;font-weight:400;margin-bottom:3px}.mood-btn.selected{background:#edf3e5;border-color:#a8bc97;color:#557a4e}.water-count{display:flex;gap:5px;margin:16px 0;flex-wrap:wrap}.water-count .icon{color:#dce8e7}.water-count .filled{color:#6eaaa4}.split{display:flex;justify-content:space-between;align-items:center;gap:12px}.avatar{width:46px;height:46px;display:grid;place-items:center;border-radius:50%;background:#efe7d7;color:#967e58;font-size:18px;flex-shrink:0}.family-note{background:#f9f4e9;border:1px solid #eee6d5;padding:18px;border-radius:16px}.family-note p{font-size:14px;margin-top:13px;line-height:1.8}.bottom-nav{position:fixed;left:50%;transform:translateX(-50%);bottom:0;z-index:2;width:min(100%,1140px);background:rgba(255,255,255,.97);border:1px solid #e8ece2;border-bottom:0;border-radius:20px 20px 0 0;display:flex;padding:10px 10px calc(10px + env(safe-area-inset-bottom))}.nav-item{flex:1;border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:4px;color:#9aa28e;font-size:11px;padding:4px 2px}.nav-item .icon{width:21px;height:21px}.nav-item.active{color:var(--green);font-weight:700}.nav-item.active:after{content:'';width:4px;height:4px;border-radius:50%;background:#408262;position:absolute;bottom:5px}.modal{position:fixed;inset:0;z-index:5;background:#1b322c77;display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(3px)}.hidden{display:none!important}.dialog{width:min(480px,100%);max-height:90vh;overflow:auto;background:#fafbf7;border-radius:22px;padding:24px}.dialog h2{margin-bottom:7px}.dialog p{font-size:13px;color:#81907b}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}.dialog-actions .btn{flex:1}label{display:block;font-size:13px;color:#576e55;margin:16px 0 6px}input,select,textarea{font:inherit;width:100%;border:1px solid #dce5d5;background:#fff;border-radius:10px;padding:11px 12px;color:#364d37;min-height:45px;outline:none}input:focus,textarea:focus,select:focus{border-color:#6f9779;box-shadow:0 0 0 3px #edf3e8}textarea{min-height:92px;resize:vertical}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.chip-row{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.chip{border:1px solid #e1e8d9;background:#fff;color:#77876c;padding:7px 12px;border-radius:20px;font-size:12px}.chip.active{background:#e6efdd;border-color:#9cb28a;color:#497043}.chat-shell{max-width:780px;margin:auto}.chat-intro{display:flex;align-items:center;gap:12px;background:#e7eedf;border-radius:16px;padding:16px}.chat-intro .icon-box{background:#dbe7d0}.chat-intro p{font-size:12px;color:#809174}.chat-log{min-height:290px;max-height:52vh;overflow:auto;padding:22px 0;display:flex;flex-direction:column;gap:16px;scroll-behavior:smooth}.chat-line{display:flex;gap:9px;align-items:flex-start}.chat-line.user{justify-content:flex-end}.chat-avatar{border-radius:50%;background:#e0e9d9;color:#5d8057;padding:7px;flex-shrink:0;display:grid;place-items:center}.chat-avatar .icon{width:17px;height:17px}.bubble{max-width:83%;background:#fff;border:1px solid #e4e9dd;border-radius:3px 16px 16px 16px;padding:13px 15px;font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere}.chat-line.user .bubble{background:#dce9d4;border-color:#dce9d4;border-radius:16px 3px 16px 16px}.bubble .read{border:0;background:none;color:#8b9e80;display:block;padding:8px 0 0;font-size:11px}.compose{display:flex;align-items:flex-end;gap:7px;background:#fff;border:1px solid #e2e8d9;border-radius:14px;padding:8px}.compose textarea{border:0;box-shadow:none;min-height:40px;height:44px;max-height:100px;font-size:14px;padding:8px;resize:none}.round-btn{width:42px;height:42px;border-radius:12px;border:0;background:#f0f4e9;color:#628255;display:grid;place-items:center;flex-shrink:0}.round-btn.send{background:var(--green);color:#fff}.service-card{display:flex;flex-direction:column;gap:10px}.service-card h3{font-size:17px}.service-card p{font-size:12px;color:#8a9780}.service-card .btn{align-self:flex-start;margin-top:auto}.service-card .icon-box{width:48px;height:48px}.timeline{padding-left:16px;border-left:2px solid #e1e9da;margin-left:4px}.timeline p{font-size:12px;color:#75876a;margin:12px 0;position:relative;overflow-wrap:anywhere}.timeline p:before{content:'';width:7px;height:7px;border-radius:50%;background:#a4b896;position:absolute;left:-21px;top:6px}.timeline small{display:block;font-size:10px;color:#9ca78f}.order-card{margin-bottom:12px}.order-card .split{align-items:flex-start}.order-card h3{margin-bottom:4px}.order-card>p{font-size:12px;color:#7e8e74;margin:12px 0}.order-card .btn{margin-top:10px}.profile-banner{display:flex;align-items:center;gap:15px;padding:24px;background:#e6eddc;border-radius:18px}.profile-banner .avatar{width:60px;height:60px;font-size:24px}.profile-banner p{font-size:12px;color:#819273}.setting-row{width:100%;border:0;background:none;color:#425d3e;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0;border-bottom:1px solid #e9eddf}.setting-row:last-child{border:0}.setting-row .icon{margin-right:10px;color:#899d7b}.setting-row small{margin-left:auto;font-size:11px}.switch{width:36px;height:22px;display:inline-block;border-radius:12px;background:#dbe3d1;position:relative}.switch:after{content:'';position:absolute;left:3px;top:3px;background:#fff;width:16px;height:16px;border-radius:50%}.switch.on{background:#648f55}.switch.on:after{left:17px}.health-value{font-size:23px;color:#456b42;font-weight:600}.chart{width:100%;height:95px;margin-top:12px}.health-record{font-size:12px;display:flex;justify-content:space-between;gap:8px;margin:9px 0;color:#829375}.notice{padding:14px 16px;border:1px solid #eee4cb;border-radius:13px;background:#faf5e9;color:#9b8353;font-size:12px;margin:16px 0}.sos-panel{text-align:center;padding:10px}.sos-circle{width:85px;height:85px;border-radius:50%;background:#f6e3dd;color:#b66d5d;display:grid;place-items:center;margin:15px auto}.sos-circle .icon{width:35px;height:35px}#toast{position:fixed;bottom:100px;left:50%;transform:translateX(-50%);background:#294e3c;color:#fff;padding:12px 19px;max-width:90vw;width:max-content;border-radius:12px;font-size:13px;z-index:10;opacity:0;pointer-events:none;transition:.2s}#toast.show{opacity:1}.large-text{font-size:18px}.large-text .list-row h3,.large-text .bubble{font-size:18px}.large-text .btn{font-size:16px}.large-text p{font-size:15px}.large-text .nav-item{font-size:13px}.action-line{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.report-line{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line);font-size:13px}.report-line:last-child{border:0}.report-line span{color:#849478}.error-text{color:#b56857;font-size:12px}.version{text-align:center;font-size:11px;color:#a0aa95;margin:24px 0}.heart-line{font-size:11px;text-align:center;color:#9ca992;margin-top:26px;letter-spacing:1px}@media(min-width:780px){.home-layout{display:grid;grid-template-columns:1.3fr 1fr;gap:24px}.home-layout>.left>.section-head:first-child,.home-layout>.right>.section-head:first-child{margin-top:26px}.quick-grid{gap:14px}.hero{min-height:230px}.hero h2{font-size:32px}.bot-art{margin-right:45px;width:155px;height:155px}.bottom-nav{max-width:650px;bottom:14px;border-radius:22px;border:1px solid #e1e7d7;box-shadow:0 8px 24px #34472b0d}.stat-grid .card{padding:22px}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.health-layout{display:grid;grid-template-columns:1fr 1fr;gap:18px}.chat-log{max-height:55vh}}@media(max-width:480px){.app-shell{padding:0 18px 102px}.topbar{padding:19px 0 17px}.hero{padding:23px 21px;min-height:204px;gap:0}.hero h2{font-size:23px}.hero p{max-width:195px;font-size:12px}.bot-art{width:82px;height:82px;box-shadow:0 0 0 13px #2a6e5a,0 0 0 26px #286b58}.bot-face{width:65px;height:55px;border-radius:23px;gap:13px;border-bottom-width:4px}.bot-face:before,.bot-face:after{width:6px;height:9px}.bot-smile{width:13px;height:7px;bottom:10px;left:26px;border-bottom-width:2px}.card{padding:17px}.quick{font-size:12px;padding:15px 5px}.quick .icon-box{width:41px;height:41px}h1{font-size:25px}.stat-grid{gap:7px}.stat-grid .card{padding:13px 10px}.metric{font-size:27px}.dialog{padding:23px 19px}.modal{padding:15px}.chat-log{max-height:49vh}.page-title{margin-bottom:18px}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.service-card .btn{width:100%}.setting-row{font-size:14px}.list-row .btn{padding:9px 10px}.list-row .icon-box{width:35px;height:35px;border-radius:10px}.time{font-size:15px;min-width:43px}}@media(max-width:350px){.app-shell{padding-left:12px;padding-right:12px}.bot-art{display:none}.quick-grid{gap:5px}.metric{font-size:23px}.hero p{max-width:100%}.grid2{gap:8px}.card{padding:13px}.service-grid{grid-template-columns:1fr}}
.chat-shell .chip-row{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:3px;margin:8px 0}.chat-shell .chip{white-space:nowrap;flex-shrink:0}.chat-shell .chat-log{min-height:130px;height:clamp(130px,calc(100dvh - 500px),560px);max-height:none}.chat-shell .hint{font-size:10px}.chat-shell .split{align-items:flex-start}.chat-shell .link-btn{white-space:nowrap}.chat-shell .compose{position:relative;z-index:1}
/* 适老与演示体验优化：触控尺寸、按压反馈、大字模式覆盖 */
.btn{min-height:44px}
.nav-item{min-height:46px;justify-content:center}
.mood-btn{min-height:58px;justify-content:center}
.quick,.mood-btn,.chip,.setting-row{transition:transform .12s ease}
.quick:active,.mood-btn:active,.chip:active{transform:scale(.97)}
.large-text .metric{font-size:22px}
.large-text .time,.large-text .list-row h3,.large-text .bubble{font-size:20px}
.large-text .list-row p,.large-text .card p,.large-text .dialog p,.large-text .hint{font-size:15px}
.large-text .chip{font-size:14px;padding:9px 14px}
.large-text .btn{min-height:48px}

.welcome-strip,.connection-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;background:#e6eddf;margin-bottom:16px;font-size:12px;color:#55704c}.connection-strip{background:#fff;border:1px solid #e1e8d9}.connection-strip>div{display:flex;align-items:center;gap:6px}.connection-strip.warning{background:#fcf3e6}.connection-dot{width:7px;height:7px;background:#a6afa0;border-radius:50%;display:inline-block;flex-shrink:0}.connection-dot.live{background:#528d62}.demo-watermark{padding:7px 10px;background:#fcf1d9;color:#876627;font-size:12px;margin-bottom:12px;border-radius:8px}.consent{display:flex;align-items:flex-start;gap:8px;line-height:1.7}.consent input{width:19px;min-height:19px;height:19px;flex-shrink:0;margin-top:3px}.invite-code{padding:18px;background:#e8efdf;border:1px solid #ccdabd;border-radius:12px;font-family:monospace;font-size:19px;letter-spacing:1px;overflow-wrap:anywhere;margin:15px 0}.receipt{border-bottom:1px solid #e7ecdf;padding:12px 0}.receipt:first-child{padding-top:0}.receipt:last-child{border:0}.receipt p{font-size:12px;color:#627654;margin-top:8px}:root{--muted:#61715f}.muted,small{color:#61715f}.mood-btn{color:#5f7355}.nav-item{color:#65745c}.chip{color:#586e4f}.hint{color:#64735c}.chat-shell .chat-log{height:clamp(130px,calc(100dvh - 565px),560px)}.dialog :focus-visible{outline:3px solid #b48a42;outline-offset:2px}.btn,.role-button,.round-btn{min-height:44px}.welcome-strip span{max-width:70%}

.family-welcome{text-align:center;padding:14px 0 22px}.family-symbol{margin:0 auto 14px;display:flex;align-items:center;justify-content:center;width:66px;height:66px;background:#e6efdf;color:#226857;border-radius:24px}.family-symbol svg{width:31px;height:31px}.family-welcome h3{font-size:21px;margin:0 0 10px}.family-welcome p{font-size:14px;line-height:1.9;color:#61715f}.family-actions{display:grid;gap:12px;margin-bottom:20px}.family-actions .btn{width:100%;min-height:52px;font-size:16px}
