:root{--green:#087f72;--green-dark:#075e56;--orange:#ff5b3e;--cream:#fff9ef;--ink:#18322f;--muted:#687c78;--line:#dce8e5;--card:#fff;--shadow:0 8px 28px rgba(12,76,68,.11)}
*{box-sizing:border-box}body{margin:0;background:#eaf3f1;color:var(--ink);font-family:"Microsoft YaHei","PingFang SC",sans-serif;font-size:18px}.app-shell{width:min(100%,480px);min-height:100vh;margin:auto;background:var(--cream);position:relative;padding-bottom:92px;box-shadow:0 0 40px rgba(0,0,0,.08)}button{font:inherit;cursor:pointer}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:rgba(255,249,239,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px}.brand img{width:48px;height:48px;border-radius:14px}.brand strong{font-size:24px;display:block}.brand span{font-size:13px;color:var(--muted)}.voice{border:1px solid #b8d6d1;background:#fff;color:var(--green-dark);border-radius:12px;padding:9px 12px;font-weight:700}main{padding:18px}.hero{background:linear-gradient(135deg,var(--green),#0ba18f);color:#fff;padding:22px;border-radius:24px;box-shadow:var(--shadow)}.hero .date{opacity:.85;font-size:15px}.hero h1{font-size:28px;margin:8px 0}.hero p{margin:0;line-height:1.6}.status-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.status{background:rgba(255,255,255,.14);padding:12px;border-radius:14px}.status b{display:block;font-size:22px}.section{margin-top:24px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section h2{font-size:22px;margin:0}.link{border:0;background:none;color:var(--green);font-weight:700}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.quick{border:0;background:var(--card);border-radius:18px;padding:18px 14px;text-align:left;box-shadow:var(--shadow);min-height:105px;color:var(--ink)}.quick .icon{font-size:30px;display:block;margin-bottom:8px}.quick b{font-size:19px}.quick small{display:block;color:var(--muted);margin-top:4px}.card{background:#fff;border-radius:18px;padding:17px;box-shadow:var(--shadow);margin-bottom:12px}.medicine-card{display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center}.time-badge{background:#e2f3ef;color:var(--green-dark);height:52px;border-radius:14px;display:grid;place-items:center;font-weight:800}.medicine-card h3,.service-card h3{margin:0 0 5px}.medicine-card p,.service-card p{margin:0;color:var(--muted);font-size:15px}.check{border:0;background:var(--orange);color:#fff;border-radius:13px;padding:11px 13px;font-weight:800}.check.done{background:#dce8e5;color:#46635e}.alert{display:flex;gap:12px;align-items:center;background:#fff0ec;border:2px solid #ffd3ca;border-radius:18px;padding:16px;margin-top:20px}.alert button{margin-left:auto;background:var(--orange);color:white;border:0;padding:12px;border-radius:12px;font-weight:800}.page-title{margin:4px 0 16px;font-size:28px}.notice{background:#fff2d9;color:#744b03;border-radius:14px;padding:13px;font-size:14px;line-height:1.5;margin-bottom:15px}.service-card{display:flex;gap:14px;align-items:center}.service-card .service-icon{width:54px;height:54px;display:grid;place-items:center;border-radius:16px;background:#e2f3ef;font-size:28px}.service-card .grow{flex:1}.price{color:var(--orange);font-weight:800}.outline{border:2px solid var(--green);background:#fff;color:var(--green-dark);padding:10px 13px;border-radius:12px;font-weight:800}.family-profile{text-align:center;padding:24px}.avatar{width:76px;height:76px;border-radius:50%;background:#ffe2d8;display:grid;place-items:center;font-size:38px;margin:auto}.family-profile h2{margin:12px 0 5px}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.metric{text-align:center;background:#f2f8f6;border-radius:15px;padding:15px 6px}.metric b{font-size:22px;color:var(--green-dark);display:block}.metric span{font-size:13px;color:var(--muted)}.setting{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:16px 2px}.setting:last-child{border:0}.setting span:first-child{font-size:26px}.setting b{flex:1}.switch{width:52px;height:30px;border-radius:20px;background:var(--green);position:relative}.switch:after{content:"";position:absolute;width:24px;height:24px;background:#fff;border-radius:50%;right:3px;top:3px}.tabbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,480px);height:78px;background:#fff;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);z-index:6;padding-bottom:env(safe-area-inset-bottom)}.tabbar button{border:0;background:#fff;color:#71827f;font-size:13px;font-weight:700}.tabbar span{display:block;font-size:25px;line-height:30px}.tabbar button.active{color:var(--green)}.toast{position:fixed;left:50%;bottom:100px;transform:translateX(-50%) translateY(20px);background:#18322f;color:#fff;padding:12px 18px;border-radius:12px;opacity:0;pointer-events:none;transition:.25s;z-index:20;white-space:nowrap}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.modal{position:fixed;inset:0;background:rgba(0,0,0,.45);display:grid;place-items:center;padding:22px;z-index:30}.modal.hidden{display:none}.modal-card{background:#fff;border-radius:24px;padding:24px;width:min(100%,420px);text-align:center}.modal-card h2{margin-top:0}.modal-actions{display:grid;gap:10px}.modal-actions button{border:0;border-radius:14px;padding:14px;font-weight:800}.primary{background:var(--orange);color:#fff}.secondary{background:#e4f2ef;color:var(--green-dark)}@media(max-width:360px){body{font-size:16px}.topbar{padding:10px 12px}.brand span{display:none}main{padding:14px}.hero h1{font-size:24px}}
