:root{color-scheme:light;--paper:#faf8f5;--card:#fff;--ink:#2c3331;--sub:#888f89;--muted:#a6aaa5;--line:#eeece7;--coral:#cf766e;--peach:#f6e4df;--sage:#587d69;--pale:#eef4ed;--shadow:0 12px 48px rgba(68,60,48,.045);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}
*{box-sizing:border-box}html{min-height:100%;scroll-behavior:smooth}body{margin:0;min-height:100vh;background:var(--paper);color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:progress;opacity:.6}input,textarea,select{width:100%;background:#fff;border:1px solid #deded8;border-radius:13px;padding:13px 15px;color:var(--ink);outline:0;font-size:15px;min-height:47px}input:focus,textarea:focus,select:focus{border-color:#c88d83;box-shadow:0 0 0 3px #cf766e20}label{display:block;font-size:13px;font-weight:650;margin:0 0 9px}p{line-height:1.75}h1,h2,h3{line-height:1.3;letter-spacing:-.025em}h1{font-size:30px}h2{font-size:20px}button:focus-visible{outline:3px solid #8bafa0;outline-offset:3px}.boot{padding:25vh 30px;text-align:center;color:var(--sub)}.page-shell{width:min(100%,1130px);margin:auto;min-height:100vh;padding:0 34px 130px}.topbar{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ebe8e2;height:96px;gap:12px}.brand{display:flex;gap:12px;align-items:center}.brand-icon{width:44px;height:44px;background:#edf0e8;color:#567962;border-radius:16px;display:grid;place-items:center;font-size:27px}.brand-title{font-size:23px;font-weight:800;letter-spacing:.04em}.brand-title span{color:#adb0a9;font-size:11px;letter-spacing:.13em;font-weight:600;margin-left:5px}.brand-sub{color:#929993;font-size:11px;margin-top:4px;letter-spacing:.06em}.mode-chip{font-size:12px;color:#4b8065;background:#edf6ec;border:1px solid #dceadd;padding:8px 12px;border-radius:100px;white-space:nowrap;display:flex;gap:8px;align-items:center}.mode-chip.local{background:#fcf2e4;color:#9a7750;border-color:#f2e1cc}.status-dot{display:inline-block;width:7px;height:7px;background:#66a77b;border-radius:100%}.mode-chip.local .status-dot,.status-dot.warn{background:#cc9858}.main-content{padding-top:38px}.hello{margin-bottom:27px}.eyebrow{font-size:10px;color:#ba8a7c;letter-spacing:.19em;font-weight:850;margin-bottom:11px}.greeting{font-size:clamp(25px,4vw,33px);font-weight:760;letter-spacing:-.035em}.greeting span{color:#cf887c;margin-left:5px;font-size:23px}.hello p{color:var(--sub);font-size:13px;margin:9px 0 0}.hero-grid{display:grid;grid-template-columns:1.72fr 1fr;gap:16px}.hero-card{position:relative;background:linear-gradient(125deg,#f8e4dd,#fbece6 58%,#f4eae1);border:1px solid #f2dfd7;border-radius:23px;padding:28px 28px 22px;min-height:270px;overflow:hidden}.hero-card:after{content:'✺';position:absolute;right:-10px;top:-53px;color:#e9b1a345;font-size:190px;line-height:1;transform:rotate(20deg);pointer-events:none}.card-icon{font-size:28px;color:var(--coral);margin-bottom:24px}.hero-card .eyebrow{color:#a97e76}.hero-number{font-size:clamp(50px,7vw,68px);letter-spacing:-.075em;font-weight:760;line-height:1.13;font-variant-numeric:tabular-nums}.hero-number span{font-size:18px;color:#916f69;letter-spacing:0;font-weight:600}.hero-sub{font-size:12px;color:#866f68;margin-top:11px}.hero-bottom{border-top:1px solid #eac9c2;margin-top:22px;padding-top:13px;color:#a77e75;display:flex;justify-content:space-between;font-size:11px}.hero-bottom span:last-child{font-size:18px}.side-stats{display:grid;grid-template-rows:1fr 1fr;gap:16px}.stat-card{padding:22px 24px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:20px;display:flex;flex-direction:column;justify-content:center;gap:7px}.stat-card>span{font-size:12px;color:#8e968e}.stat-card strong{font-size:29px;font-weight:750;font-variant-numeric:tabular-nums}.stat-card strong small{font-size:12px;color:#849087;font-weight:550}.stat-card>small{font-size:11px;color:#adb0aa}.micro-stats{display:flex;gap:0;border:1px solid var(--line);background:#fff;border-radius:19px;margin:16px 0 22px;box-shadow:var(--shadow);padding:17px 12px}.micro-stats>div{flex:1;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;text-align:center;border-right:1px solid var(--line)}.micro-stats>div:last-child{border:0}.micro-stats strong{font-size:20px;letter-spacing:-.025em;font-variant-numeric:tabular-nums}.micro-stats span{color:var(--sub);font-size:11px}.panel{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}.chart-panel{padding:25px 26px 18px}.section-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.section-row h2{margin:0;font-size:20px}.section-row .eyebrow{margin-bottom:7px}.segments{display:flex;background:#f5f3ee;border-radius:10px;padding:3px;gap:3px}.segments button{border:0;background:transparent;color:#9b9d97;font-size:11px;border-radius:8px;padding:8px 11px}.segments .active{background:white;color:#c3726a;box-shadow:0 2px 5px #0000000c;font-weight:700}.chart-inner{min-height:230px;margin:17px 0 4px}.weight-chart{width:100%;height:230px;overflow:visible}.chart-empty{height:230px;display:flex;justify-content:center;align-items:center;flex-direction:column;gap:9px;color:var(--sub);text-align:center}.chart-empty span{font-size:31px;color:#d39c91}.chart-empty strong{color:#707c71;font-size:20px}.chart-empty p{font-size:12px;margin:0}.caption-line{color:var(--sub);font-size:11px;display:flex;align-items:center;gap:7px;border-top:1px solid #f5f2ee;padding-top:15px}.legend-dot{width:8px;height:8px;border-radius:50%;background:var(--coral)}.recent-head{margin:28px 0 13px}.text-btn{border:0;background:transparent;color:#b8756a;font-size:12px;font-weight:650;padding:8px}.list-panel{padding:0 21px}.record-row{min-height:84px;display:flex;align-items:center;border-bottom:1px solid #f0eeea;gap:14px;padding:12px 2px}.record-row:last-child{border-bottom:0}.record-date{display:flex;flex-direction:column;gap:3px;align-items:center;justify-content:center;min-width:43px;border-right:1px solid #f1eae4;padding-right:13px}.record-date strong{font-size:21px;color:#5c7262}.record-date small{font-size:11px;color:var(--sub)}.record-desc{flex:1;min-width:0}.record-weight{font-size:20px;font-weight:750;font-variant-numeric:tabular-nums}.record-weight small{font-weight:500;color:var(--sub);font-size:11px}.tiny-tag{font-size:10px;background:#faf1e8;color:#c09469;padding:4px 7px;border-radius:50px;vertical-align:middle;margin-left:8px;white-space:nowrap;font-weight:550}.tiny-tag.green{background:#edf6ee;color:#688e72}.record-note{font-size:11px;color:#8e968c;margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.record-note span{color:#b1b7ae}.health-note{background:#fff8ed;border:1px solid #f4e7cf;border-radius:16px;font-size:12px;line-height:1.85;padding:14px 17px;color:#987951;margin-top:17px}.empty-list{padding:35px 14px;text-align:center;display:flex;align-items:center;flex-direction:column;gap:10px}.empty-list span{font-size:34px;color:#d9a293}.empty-list strong{font-size:15px}.empty-list p{color:var(--sub);font-size:12px;margin:0 0 4px}.primary{border:none;border-radius:12px;background:#47735c;color:white;padding:13px 20px;font-weight:700;font-size:14px;min-height:47px}.primary:hover{background:#395f4b}.primary.small{min-height:38px;padding:8px 14px;font-size:12px}.outline{background:#fff;border:1px solid #e1dfda;border-radius:12px;padding:12px;color:#536f5c;font-weight:650;font-size:13px;min-height:46px}.outline:hover{border-color:#aec2b2;background:#f9fcf8}.outline.danger{color:#b45d55;border-color:#efd0ca}.outline.full,.primary.full{width:100%;margin-top:13px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:82px;padding:8px max(18px,calc((100vw - 480px)/2)) calc(8px + env(safe-area-inset-bottom));background:#fffefdf2;border-top:1px solid #eceae6;backdrop-filter:blur(18px);display:flex;justify-content:space-around;gap:12px;z-index:40;box-shadow:0 -7px 25px #44332906}.nav-link{background:none;border:0;color:#a4aba4;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:11px;gap:3px;min-width:64px}.nav-link.selected{color:#47735c;font-weight:750}.nav-glyph{font-size:24px;line-height:1.1}.floating-add{border:0;background:#48775d;color:#fff;border-radius:18px;width:52px;height:52px;box-shadow:0 6px 20px #48775d36;font-size:32px;line-height:1}.section-page{max-width:890px;margin:auto}.section-page>h1,.section-page .section-row h1{font-size:30px;margin:0}.section-page>p,.section-page .section-row p{margin:7px 0 22px;color:var(--sub);font-size:13px}.filters{display:flex;align-items:center;gap:12px;padding:14px 17px;margin:8px 0 22px}.filters label{margin:0}.filters select{width:auto;min-width:130px;margin-left:auto;font-size:12px;padding:7px 10px;min-height:37px}.filters span{color:var(--sub);font-size:12px;white-space:nowrap}.day-group{margin-bottom:24px}.day-group h3{font-size:16px;font-weight:750;display:flex;align-items:center;gap:12px}.day-group h3 small{font-size:11px;font-weight:500;color:var(--sub)}.form-panel{padding:25px;margin:19px 0}.form-panel h2{font-size:17px;margin:0 0 23px}.form-panel label{margin-top:15px}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-panel .primary{margin-top:22px}.form-panel p.help{margin-bottom:10px}.help{font-size:11px;line-height:1.7;color:#979c94;margin:8px 0}.button-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.security-row{display:flex;align-items:center;justify-content:space-between}.security-row strong{font-size:13px}.security-row p{font-size:12px;color:var(--sub);margin:5px 0}.strong-help{padding:13px;border-radius:10px;background:#fff8ed;color:#9f805b}.privacy-foot{margin:25px 0;text-align:center;color:#aaa99f;font-size:11px}.modal-backdrop{position:fixed;inset:0;z-index:70;background:#1c28267d;display:flex;align-items:flex-end;justify-content:center;padding:16px 12px 0}.modal{width:min(100%,560px);max-height:94dvh;overflow:auto;border-radius:25px 25px 0 0;background:#fffefc;padding:24px 24px calc(25px + env(safe-area-inset-bottom));box-shadow:0 0 70px #18231e29}.modal-title{display:flex;justify-content:space-between;align-items:start;margin-bottom:20px}.modal-title h2{font-size:23px;margin:0}.modal-title .eyebrow{margin:0 0 6px}.close{border:0;background:#f3f1ec;color:#718075;font-size:25px;border-radius:100%;width:36px;height:36px}.input-block{margin-bottom:18px}.input-block label{font-size:12px;margin-bottom:8px}.input-block label span{font-size:11px;color:var(--sub);font-weight:400}.input-block textarea{min-height:75px;resize:vertical}.weight-input{position:relative}.weight-input input{font-weight:750;font-size:27px;padding-right:65px}.weight-input span{position:absolute;right:19px;top:17px;color:var(--sub);font-size:14px}.form-actions{display:grid;grid-template-columns:1fr auto;gap:10px}.form-actions>.primary:only-child{grid-column:1/-1}.modal-privacy{text-align:center;color:var(--sub);font-size:11px;margin:17px 0 0}.toast{position:fixed;z-index:100;bottom:92px;left:50%;transform:translate(-50%,10px);opacity:0;pointer-events:none;transition:.2s;background:#2f4337;color:#fff;padding:12px 18px;border-radius:15px;min-width:170px;max-width:calc(100vw - 30px);text-align:center;font-size:13px;line-height:1.5;box-shadow:0 10px 25px #35483833}.toast.show{opacity:1;transform:translate(-50%,0)}.auth-screen{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;gap:0;background:#fff}.auth-decoration{background:linear-gradient(155deg,#e5ede2,#f8e8df);min-height:100vh;display:flex;flex-direction:column;align-items:start;justify-content:center;padding:clamp(35px,8vw,100px)}.auth-flower{font-size:80px;color:#70977a;margin-bottom:28px}.auth-decoration h1{font-size:clamp(36px,5vw,64px);line-height:1.26;margin:0}.auth-decoration p{font-size:14px;color:#8b9286;margin-top:20px}.auth-card{width:min(100%,440px);margin:auto;padding:35px}.auth-card h2{margin:34px 0 5px;font-size:26px}.auth-card>p{font-size:13px;color:var(--sub)}.auth-card form{margin-top:24px}.auth-card form button{margin-top:16px}.auth-card .centered{display:block;margin:16px auto}.auth-divider{display:flex;align-items:center;gap:12px;font-size:12px;color:#aaa;margin:18px 0 7px}.auth-divider:before,.auth-divider:after{content:'';flex:1;height:1px;background:var(--line)}
@media(min-width:900px){.main-content{max-width:880px;margin:auto}.bottom-nav{left:50%;transform:translateX(-50%);right:auto;width:420px;border:1px solid var(--line);border-bottom:0;border-radius:18px 18px 0 0}}
@media(max-width:700px){.page-shell{padding:0 17px 120px}.topbar{height:76px}.brand-icon{width:40px;height:40px}.brand-title{font-size:20px}.mode-chip{font-size:10px;padding:7px 9px}.main-content{padding-top:27px}.hero-grid{grid-template-columns:1fr}.hero-card{min-height:220px;padding:22px}.card-icon{margin-bottom:12px}.hero-number{font-size:58px}.side-stats{grid-template-columns:1fr 1fr;grid-template-rows:auto;gap:11px}.stat-card{padding:16px;min-height:119px;gap:6px}.stat-card strong{font-size:22px}.micro-stats{margin-top:13px}.chart-panel{padding:19px 16px 15px}.section-row h2{font-size:17px}.segments button{padding:7px 9px}.record-row{gap:8px}.record-weight{font-size:18px}.tiny-tag{font-size:9px;padding:4px 6px;margin-left:4px}.record-date{min-width:40px;padding-right:9px}.list-panel{padding:0 13px}.form-panel{padding:19px}.auth-screen{grid-template-columns:1fr}.auth-decoration{min-height:0;padding:34px 27px 27px}.auth-flower{font-size:40px;margin:0 0 13px}.auth-decoration h1{font-size:32px}.auth-decoration p{margin-top:9px}.auth-card{padding:25px 23px 35px}}
@media(max-width:365px){.mode-chip{max-width:108px;overflow:hidden;text-overflow:ellipsis}.micro-stats strong{font-size:17px}.hero-number{font-size:49px}.two-fields{grid-template-columns:1fr}.section-row{gap:7px}.filters{gap:5px;padding:10px}.filters select{min-width:108px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.auth-modes{display:flex;gap:4px;padding:4px;margin:15px 0 19px;border-radius:12px;background:#f5f3ee}.auth-modes button{flex:1;border:0;background:transparent;color:#747b75;font-size:13px;font-weight:650;border-radius:10px;padding:11px 3px;min-height:40px}.auth-modes button.selected{background:#fff;color:#b7655b;box-shadow:0 1px 8px #00000012}.auth-card input[type=password]{font-family:inherit}.auth-card form label:not(:first-child){margin-top:13px}.auth-card form button[type=submit]{margin-top:18px}
/* M2: individual-private lived moments */
.timeline-filters{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:13px 16px;margin:12px 0 8px}
.timeline-filters label{display:flex;align-items:center;gap:8px;color:var(--sub);font-size:12px;margin:0}.timeline-filters select,.timeline-filters input{width:auto;min-width:140px;padding:8px;font-size:12px;min-height:38px}.timeline-count{font-size:12px;color:var(--sub);margin:10px 0 18px}.timeline-day{margin:17px 0 28px;padding-left:16px;border-left:2px solid #e7ede4}.timeline-day-title{display:flex;align-items:center;gap:9px;margin-left:-26px;margin-bottom:13px}.timeline-day-title h2{font-size:17px;margin:0}.timeline-day-title small{font-size:11px;color:var(--sub)}.timeline-marker{background:#e9f1e6;color:#4b775a;border-radius:50%;width:21px;height:21px;display:inline-grid;place-items:center}.timeline-cards{display:grid;gap:12px}.journal-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px 21px;box-shadow:var(--shadow)}.journal-top,.journal-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px}.journal-type{font-size:11px;font-weight:700;background:#f7efe8;border-radius:50px;color:#af806d;padding:5px 10px}.journal-type.moment{background:#edf4ed;color:#5c806b}.journal-date,.journal-bottom{font-size:11px;color:var(--sub)}.journal-card h3{font-size:19px;margin:12px 0 8px;line-height:1.4;overflow-wrap:anywhere}.journal-tags{display:flex;gap:7px}.journal-tags span{font-size:11px;color:#9e8774;background:#f8f4ec;border-radius:6px;padding:4px 8px}.journal-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.85;font-size:13px;color:#67746b;margin:12px 0}.journal-bottom{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.photo-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;display:block}.photo-thumb{display:block;border-radius:10px;overflow:hidden}.photo-thumb:focus-visible{outline:2px solid var(--sage)}.photo-wait{padding:15px 7px;background:var(--paper);border-radius:10px;font-size:11px;color:var(--sub)}.timeline-weight{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:13px 17px}.timeline-weight span{color:var(--sub);font-size:12px}.timeline-weight strong{font-size:16px;white-space:nowrap}.compose-choices{display:grid;gap:10px}.compose-choices button{display:grid;grid-template-columns:48px 1fr;align-items:center;gap:0 10px;text-align:left;border:1px solid var(--line);border-radius:16px;padding:13px 16px;background:#fafbf9}.compose-choices button>span{font-size:29px;grid-row:span 2;text-align:center}.compose-choices strong{font-size:15px;color:var(--ink)}.compose-choices small{font-size:11px;color:var(--sub);margin-top:5px}.photo-add{border-top:1px solid var(--line);margin:17px 0;padding-top:14px}.photo-manage{position:relative}.photo-manage button{font-size:11px;display:block}.life-page .section-row h1{font-size:27px}
@media(max-width:700px){.timeline-filters{gap:9px}.timeline-filters label{flex:1;min-width:125px}.timeline-filters select,.timeline-filters input{min-width:0;width:100%}.journal-card{padding:16px}.timeline-weight{flex-wrap:wrap}.timeline-weight strong{margin-left:auto}.bottom-nav{gap:2px}.nav-link{min-width:46px}.floating-add{width:49px;height:49px}}
