/* DAYLIGHT — pale-blue, calm, touch-first mobile UI; intentionally no external assets */
:root{
 --ink:#24485f; --ink-soft:#57788b; --muted:#87a1b0; --blue:#579fcb;
 --blue-deep:#377da9; --blue-light:#eaf6fd; --blue-soft:#d5eefa;
 --line:#e1edf4; --paper:#fff; --bg:#eff8fc; --peach:#ffcaac;
 --shadow:0 14px 40px rgba(83,136,171,.09);
 --radius:23px;
 color-scheme:light;
}
*{box-sizing:border-box}
html{background:#eff8fc;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
 background:linear-gradient(160deg,#f2fafe,#e9f4fb 62%,#f4f9fc);min-height:100vh}
button,input,select,textarea{font:inherit}
button{cursor:pointer;-webkit-tap-highlight-color:transparent}
button:disabled{opacity:.45;cursor:not-allowed}
:focus-visible{outline:3px solid #83c7e7;outline-offset:3px}
input,select,textarea{outline:0}
button{border:0;background:transparent}
svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.svg-defs{height:0;width:0;position:absolute;overflow:hidden}
.ambient{position:fixed;border-radius:50%;z-index:0;pointer-events:none;filter:blur(5px)}
.ambient-a{width:450px;height:450px;top:-210px;left:calc(50% - 390px);background:radial-gradient(circle,rgba(181,226,247,.46),transparent 68%)}
.ambient-b{width:480px;height:480px;top:32%;left:calc(50% + 80px);background:radial-gradient(circle,rgba(195,231,247,.46),transparent 70%)}
.app-shell{max-width:470px;min-height:100dvh;margin:0 auto;position:relative;isolation:isolate;background:rgba(248,252,254,.73);
 box-shadow:0 0 80px rgba(90,139,160,.08)}
.topbar{height:73px;padding:calc(12px + env(safe-area-inset-top,0px)) 22px 13px;box-sizing:content-box;
 display:flex;justify-content:space-between;align-items:center;position:relative;z-index:5}
.brandmark{font-size:11px;font-weight:750;letter-spacing:.18em;display:flex;gap:8px;align-items:center;color:#35769d}
.brandmark em{font-style:normal;font-size:10px;letter-spacing:.05em;font-weight:500;margin-left:4px;color:#729db6}
.brandmark-icon{width:27px;height:27px;display:grid;place-items:center;border-radius:10px;color:#fff;
 background:linear-gradient(145deg,#a1d3e9,#5c9fc8);box-shadow:0 4px 11px #84b9db3d;font-size:21px;line-height:1}
.icon-button{width:40px;height:40px;display:grid;place-items:center;border-radius:14px;background:#fff9;
 color:var(--ink-soft);border:1px solid #e3eff5}
.icon-button svg{width:19px;height:19px}
.content{padding:6px 20px calc(112px + env(safe-area-inset-bottom,0px));min-height:calc(100dvh - 83px);
 animation:fade .22s ease}
@keyframes fade{from{opacity:.45;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.eyebrow{font-size:10px;letter-spacing:.18em;font-weight:800;text-transform:uppercase;color:#82abc4}
.page-title{font-family:Georgia,"Songti SC","STSong","Noto Serif CJK SC",serif;font-size:30px;line-height:1.32;letter-spacing:-.035em;margin:9px 0 7px;font-weight:650}
.page-description{color:var(--ink-soft);font-size:12px;line-height:1.9;margin:0 0 20px}
.section-head{display:flex;align-items:end;justify-content:space-between;margin:26px 2px 12px}
.section-title{font-size:15px;font-weight:730;margin:0;letter-spacing:.02em}
.micro-label{font-size:10px;color:#93abba;letter-spacing:.04em}
.text-button{color:var(--blue-deep);font-size:11px;font-weight:680;padding:7px}
.calendar-top{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:4px 0 16px}
.date-chip{display:inline-flex;align-items:center;gap:7px;border:1px solid #dcecf5;background:#fff9;
 padding:8px 11px;border-radius:100px;color:#5b8198;font-size:11px}
.date-chip svg{width:14px;height:14px}
.day-arrows{display:flex;gap:7px;align-items:center}
.round-btn{display:grid;place-items:center;width:32px;height:32px;background:#fff;border:1px solid var(--line);
 border-radius:11px;color:#6a9bb9}
.round-btn svg{width:16px;height:16px}
.hero{background:linear-gradient(134deg,#dff1fb 0%,#cce7f7 64%,#b7def1 100%);min-height:222px;overflow:hidden;
 border:1px solid #c5e2f3;border-radius:27px;position:relative;padding:22px 21px 18px;
 box-shadow:0 16px 32px #83b8d61a}
.hero:before{content:"";position:absolute;width:218px;height:218px;right:-92px;top:-79px;border:1px solid #ffffff8a;border-radius:50%}
.hero:after{content:"";position:absolute;width:180px;height:180px;right:-78px;bottom:-135px;border:1px solid #ffffff8a;border-radius:50%}
.hero-kicker{font-size:10px;letter-spacing:.14em;color:#5e91ae;font-weight:750;text-transform:uppercase}
.hero-number{font-size:47px;font-weight:700;line-height:1;letter-spacing:-.045em;color:#285f81;margin-top:14px;font-variant-numeric:tabular-nums}
.hero-number small{font-size:14px;margin-left:5px;letter-spacing:0;font-weight:550}
.hero-sub{font-size:11px;color:#598ca9;margin-top:11px;line-height:1.7;max-width:255px}
.hero-illustration{position:absolute;right:12px;top:24px;width:144px;height:162px;opacity:.93;pointer-events:none}
.hero-illustration svg{height:100%;width:100%;stroke-width:1.1}
.hero-bottom{margin-top:23px;position:relative;border-top:1px solid #ffffffae;padding-top:13px;display:flex;gap:10px;
 justify-content:space-between;font-size:10px;color:#537d97}
.hero-bottom strong{color:#2f6d91;font-size:12px;margin-left:4px}
.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:12px}
.metric-card{padding:15px 11px 13px;border-radius:20px;border:1px solid #e2eef5;background:var(--paper);min-height:100px;
 box-shadow:0 5px 20px rgba(110,151,180,.04)}
.metric-icon{height:26px;width:26px;display:grid;place-items:center;border-radius:9px;background:#eaf5fb;color:#629fc0;margin-bottom:9px}
.metric-icon svg{height:15px;width:15px}
.metric-label{font-size:10px;color:#92a7b3;margin-bottom:5px}
.metric-value{font-size:17px;font-weight:740;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.metric-value small{font-size:10px;font-weight:500;color:#90a6b5;margin-left:2px}
.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.quick-item{background:#fff;border-radius:19px;min-height:98px;padding:13px 4px 11px;display:flex;align-items:center;
 flex-direction:column;justify-content:center;gap:10px;border:1px solid #e1edf3;
 box-shadow:0 7px 19px rgba(120,165,190,.045);color:#496d81}
.quick-item:active{transform:scale(.97)}
.quick-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:15px;background:#e9f6fc;color:#569dc4}
.quick-icon svg{width:20px;height:20px}
.quick-icon.peach{background:#fff2e9;color:#cf9977}
.quick-icon.mint{background:#eaf7f2;color:#75aaa0}
.quick-icon.lavender{background:#f0f0fc;color:#8b92c2}
.quick-item span:last-child{font-size:11px;font-weight:680}
.card{border-radius:23px;background:white;border:1px solid #e1edf4;padding:16px;box-shadow:var(--shadow)}
.empty{border-radius:22px;padding:30px 20px;background:#ffffffa8;text-align:center;border:1px dashed #cde4f1;color:#829db0;font-size:11px;line-height:1.9}
.empty-glyph{height:54px;width:54px;border-radius:17px;margin:0 auto 11px;display:grid;place-items:center;
 background:linear-gradient(145deg,#f0f9fd,#deeff8);color:#70a6c5}
.empty-glyph svg{width:25px;height:25px}
.meal-list{display:grid;gap:9px}
.meal-row{display:flex;align-items:center;gap:12px;min-width:0;border:1px solid var(--line);background:#fff;
 border-radius:18px;text-align:left;padding:9px 12px 9px 9px;width:100%;box-shadow:0 4px 15px #96bad013}
.meal-thumb{width:58px;height:58px;border-radius:13px;object-fit:cover;display:grid;place-items:center;background:#e6f4fa;
 font-size:24px;flex:none;color:#7caac6}
.meal-thumb img{width:100%;height:100%;object-fit:cover;border-radius:13px}
.meal-body{flex:1;min-width:0}
.meal-category{font-size:10px;color:#94aab7;margin-bottom:4px}
.meal-name{font-size:12px;font-weight:700;color:#3c6378;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.meal-extra{font-size:10px;color:#94aab5;margin-top:4px}
.meal-kcal{font-size:13px;font-weight:770;color:#518caf;white-space:nowrap}
.meal-kcal small{font-size:9px;color:#a7b8c2;font-weight:500}
.meal-arrow{display:grid;place-items:center;color:#a1b6c2}
.meal-arrow svg{width:14px;height:14px}
.tip{padding:13px 15px;background:#e8f5fb;border-radius:17px;color:#6d94a9;display:flex;gap:10px;align-items:flex-start;
 font-size:11px;line-height:1.7;margin-top:14px}
.tip svg{width:16px;height:16px;flex:none;margin-top:1px}
.pill{display:inline-flex;border-radius:50px;background:#eaf5fc;color:#528faf;padding:5px 9px;font-size:10px;font-weight:700;align-items:center;gap:5px}
.pill.peach{background:#fff0e7;color:#bf8b6e}
.pill.mint{background:#eaf6f2;color:#6c9f93}
.pill svg{width:12px;height:12px}
.info-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid #ebf2f6}
.info-row:last-child{border-bottom:0}
.info-row .key{font-size:11px;color:#829eaf}
.info-row .value{font-size:12px;font-weight:700;color:#416e89}
.activity-row{display:flex;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}
.activity-row:last-child{border:0}
.activity-bubble{width:34px;height:34px;display:grid;place-items:center;background:#edf7fd;border-radius:13px;font-size:16px;flex:none}
.activity-name{font-size:12px;font-weight:660}
.activity-detail{color:#8ba4b2;font-size:10px;margin-top:4px}
.activity-right{margin-left:auto;text-align:right;color:#518fb3;font-size:12px;font-weight:700}
.summary-band{display:flex;align-items:center;justify-content:space-between;padding:16px;background:#e5f2fa;border-radius:19px;
 border:1px solid #d5eaf5;margin-top:13px}
.summary-band h3{font-size:12px;margin:0 0 6px}
.summary-band p{margin:0;font-size:10px;color:#7399b2;line-height:1.65}
.summary-number{font-size:22px;font-weight:770;color:#4a8db3;text-align:right;white-space:nowrap}
.summary-number small{display:block;font-size:9px;font-weight:500;margin-top:4px;color:#85a7b8}
.segment{display:flex;gap:2px;padding:4px;background:#e6f2f9;border-radius:16px}
.segment button{border-radius:12px;padding:9px 13px;flex:1;color:#7a9aae;font-size:11px;font-weight:700}
.segment button.active{background:white;color:#3c87b0;box-shadow:0 2px 8px #5c9cb820}
.calendar-card{background:white;border-radius:24px;padding:17px;border:1px solid #e2eef5;box-shadow:var(--shadow)}
.month-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 15px}
.month-head strong{font-size:17px;color:#3d7090}
.month-weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;gap:5px}
.month-weekdays{color:#a1b2bd;font-size:10px;margin-bottom:10px}
.cal-day{min-height:44px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;
 color:#5f8093;border-radius:13px;position:relative;font-size:12px;font-weight:550}
.cal-day.other{color:#c4d3dd}
.cal-day.selected{background:#64a4cc;color:white;box-shadow:0 6px 12px #6ca7cb33}
.cal-day.current:not(.selected){background:#edf7fc;color:#3e89b2;font-weight:760}
.cal-dot{height:4px;width:4px;border-radius:50%;background:#92c5e2}
.cal-day.selected .cal-dot{background:#fff}
.legend{display:flex;justify-content:center;gap:14px;color:#9aaeb9;font-size:10px;margin-top:15px}
.dot-legend{display:inline-block;width:6px;height:6px;border-radius:50%;background:#92c5e2;vertical-align:1px;margin-right:4px}
.report-note{font-size:11px;color:#688b9e;line-height:1.85;margin:12px 0 0}
.report-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.report-title{font-size:13px;font-weight:750;margin:0}
.report-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.report-stat{background:#f1f9fd;border-radius:15px;padding:14px 13px;min-width:0}
.report-stat span{font-size:10px;color:#93aab8}
.report-stat strong{display:block;font-size:19px;color:#467c9e;margin-top:6px;font-weight:770}
.report-stat small{font-size:10px;margin-left:3px;color:#9ab0bf;font-weight:400}
.chart-wrap{margin:6px -4px 0}
.chart-svg{width:100%;height:auto;display:block;overflow:visible}
.chart-legend{display:flex;align-items:center;gap:8px;color:#8fa7b7;font-size:10px;margin-bottom:10px}
.chart-legend i{width:9px;height:9px;background:#9ed0ea;border-radius:3px}
.chart-legend i.line{background:#e9a889}
.chart-empty{padding:35px 0;color:#9bafba;text-align:center;font-size:11px}
.weight-chart{position:relative}
.profile-hero{background:linear-gradient(140deg,#deeff9,#eaf7fc);border-radius:26px;padding:22px 18px;border:1px solid #d3e8f4}
.profile-hero .profile-val{font-size:34px;font-weight:780;color:#377ca5;margin:8px 0 6px}
.profile-hero .profile-val small{font-size:12px;font-weight:550;margin-left:4px}
.progress-track{height:9px;border-radius:8px;background:#ffffffae;overflow:hidden;margin:16px 0 8px}
.progress-fill{height:100%;background:linear-gradient(90deg,#6db1d6,#93cfe9);border-radius:8px;transition:width .4s}
.progress-ends{display:flex;justify-content:space-between;font-size:10px;color:#7da0b5}
.profile-item{display:flex;align-items:center;gap:11px;padding:13px 2px;border-bottom:1px solid var(--line);text-align:left;width:100%}
.profile-item:last-child{border:0}
.profile-item svg{width:18px;height:18px;color:#659abb}
.profile-item span{flex:1;font-size:12px;font-weight:680;color:#4e7488}
.profile-item small{font-size:10px;color:#98afbb}
.profile-item .next{width:15px;height:15px;color:#9eb6c3}
.footnote{font-size:10px;line-height:1.85;text-align:center;color:#a1b6c3;margin:22px 18px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border-radius:14px;
 background:#5e9ec4;color:white;font-size:12px;font-weight:750;padding:12px 15px;box-shadow:0 7px 14px #76a9c926}
.button svg{width:16px;height:16px}
.button.secondary{background:#e6f3fa;color:#5b92b3;box-shadow:none}
.button.outline{border:1px solid #d6eaf5;background:white;color:#5f90aa;box-shadow:none}
.button.danger{background:#fff1f1;color:#b66c6c;box-shadow:none}
.button:active{transform:translateY(1px)}
.button.wide{width:100%}
.button-row{display:flex;gap:9px}
.button-row .button{flex:1}
.tabbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,470px);padding:12px 15px calc(11px + env(safe-area-inset-bottom,0px));
 display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.95);
 border-top:1px solid #e0ecf2;box-shadow:0 -9px 23px #aacbda13;z-index:7;backdrop-filter:blur(14px)}
.tab{display:flex;align-items:center;flex-direction:column;gap:6px;padding:5px 8px;color:#a0b7c4;font-size:10px;font-weight:650;border-radius:14px}
.tab svg{width:19px;height:19px}
.tab.active{color:#458cb8;background:linear-gradient(#edf7fc,#f7fbfd)}
.overlay{position:fixed;inset:0;display:flex;justify-content:center;align-items:flex-end;z-index:20;padding-top:30px}
.overlay.hidden{display:none}
.scrim{position:absolute;inset:0;background:rgba(28,58,73,.37);backdrop-filter:blur(4px)}
.sheet{position:relative;width:min(100%,470px);max-height:min(91dvh,890px);overflow-y:auto;border-radius:28px 28px 0 0;
 background:#fafdff;box-shadow:0 -20px 65px #1e4d6233;padding:0 21px calc(25px + env(safe-area-inset-bottom,0px));
 animation:sheetIn .25s cubic-bezier(.2,.7,.2,1)}
@keyframes sheetIn{from{transform:translateY(25px);opacity:.5}to{transform:translateY(0);opacity:1}}
.sheet-handle{width:39px;height:5px;background:#d5e7f0;border-radius:5px;margin:11px auto 17px}
.sheet-title{font-size:21px;letter-spacing:-.02em;margin:0}
.sheet-desc{font-size:11px;color:#90a6b6;line-height:1.7;margin:6px 0 19px}
.sheet-header{display:flex;justify-content:space-between;align-items:start}
.close{border:1px solid #e4eef4;border-radius:12px;color:#83a1b3;display:grid;place-items:center;height:32px;width:32px;background:white}
.close svg{width:15px;height:15px}
.form{display:grid;gap:15px}
.field{display:grid;gap:7px}
.field>label,.form-label{font-size:11px;font-weight:730;color:#63899e}
.hint{font-size:10px;color:#98adb9;line-height:1.65}
.control{border:1px solid #e0edf4;background:white;border-radius:13px;min-height:44px;
 width:100%;padding:11px 13px;color:#41697f;font-size:13px;appearance:none}
.control:focus{border-color:#93c6e5;box-shadow:0 0 0 3px #def1fa}
textarea.control{min-height:74px;resize:vertical;line-height:1.6}
.control::placeholder{color:#b3c5cf}
.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.choice-row{display:flex;flex-wrap:wrap;gap:7px}
.choice{padding:9px 11px;border:1px solid #d9e9f2;border-radius:11px;color:#6e91a5;font-size:11px;background:white;font-weight:680}
.choice.active{background:#e4f3fc;color:#367fa9;border-color:#9ccfe9}
.food-pick{min-height:150px;border:1.5px dashed #c4e1f0;border-radius:19px;
 display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
 overflow:hidden;background:linear-gradient(142deg,#f1faff,#eaf6fc);position:relative}
.food-pick img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.food-pick.has-image:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 50%,#1e536c6b)}
.food-pick svg{height:30px;width:30px;color:#82b7d4}
.food-pick .pick-title{font-size:12px;font-weight:750;color:#6da4c3}
.food-pick .pick-note{font-size:10px;color:#95b1c3}
.food-pick .image-badge{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);background:#ffffffed;
 padding:7px 14px;border-radius:20px;font-size:11px;color:#347da8;z-index:1;white-space:nowrap}
.ai-panel{background:#edf7fb;padding:13px;border-radius:16px;border:1px solid #deedf5}
.ai-panel-title{display:flex;align-items:center;justify-content:space-between;gap:7px;font-size:11px;color:#538bb0;font-weight:750}
.ai-panel-title svg{height:16px;width:16px}
.ai-status{font-size:10px;line-height:1.7;color:#86a4b6;margin:7px 0 0}
.ai-result{display:flex;gap:9px;align-items:flex-start;font-size:11px;line-height:1.65;color:#5c889f;margin-top:8px}
.ai-result svg{color:#62a2bf;width:15px;height:15px;flex:none;margin-top:1px}
.preset-row{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;padding-bottom:3px}
.preset-row::-webkit-scrollbar{display:none}
.preset{flex:none;border-radius:50px;border:1px solid #dbeaf4;padding:8px 12px;
 background:white;color:#7694a5;font-size:10px}
.checkbox-row{display:flex;gap:9px;align-items:start;font-size:11px;color:#67899e;line-height:1.7}
.checkbox-row input{accent-color:#669ec1;height:16px;width:16px;flex:none;margin-top:1px}
.form-separator{height:1px;background:var(--line);margin:3px 0}
.sheet-footer{position:sticky;bottom:-1px;padding:14px 0 2px;background:linear-gradient(transparent,#fafdff 24%)}
.sheet-footer .button{width:100%}
.toast{position:fixed;z-index:40;max-width:min(90vw,370px);left:50%;bottom:100px;transform:translateX(-50%) translateY(25px);
 opacity:0;pointer-events:none;background:#335d75;color:white;border-radius:13px;padding:12px 19px;box-shadow:0 10px 22px #456e8655;
 transition:transform .2s,opacity .2s;font-size:12px;text-align:center}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.mini-banner{display:flex;gap:10px;padding:12px 13px;background:#fff8f2;border:1px solid #f9e8d8;
 border-radius:15px;align-items:center;color:#aa856c;font-size:11px;line-height:1.6;margin:0 0 15px}
.mini-banner svg{flex:none;width:17px;height:17px}
.mini-banner button{margin-left:auto;color:#b88668;font-weight:700;white-space:nowrap;font-size:10px}
.inline-unit{position:relative}
.inline-unit .control{padding-right:44px}
.inline-unit small{position:absolute;right:13px;top:13px;color:#a7bfcc;font-size:11px}
.divider{height:1px;background:var(--line);margin:18px 0}
.footer-motto{text-align:center;color:#9db5c1;font-family:Georgia,"Songti SC",serif;font-size:12px;margin:29px 0 0;letter-spacing:.04em}
@media(min-width:660px){
 .app-shell{margin:28px auto;min-height:calc(100vh - 56px);border-radius:31px;overflow:hidden;border:1px solid #deedf4}
 .topbar{padding-top:15px}
 .tabbar{bottom:0}
}
@media(max-width:360px){.content{padding-left:15px;padding-right:15px}.hero-illustration{width:120px;right:4px}.hero-sub{max-width:195px}.quick-grid{gap:5px}.quick-item span:last-child{font-size:10px}.hero-bottom{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
