:root{--life-bg:#f2f2f7;--life-card:#fff;--life-ink:#1c1c1e;--life-sub:#63636a;--life-muted:#8e8e93;--life-line:#e5e5ea;--life-accent:#cb7050;--life-soft:#fff8f4}
/* Travel form refinements: one navigation action, deliberately aligned fields. */
.life-travel-compose-head{display:block!important;padding:5px 2px 1px!important}.life-travel-compose-head>span{display:block;margin:0 0 4px;color:#a07f72;font-size:12px;line-height:18px}.life-travel-compose-head h2{margin:0!important;letter-spacing:-.7px}.life-travel-compose-head p{margin:7px 0 0;color:#858b92;font-size:12px;line-height:18px}.life-travel-empty{width:100%;min-height:170px!important;margin:0!important;box-sizing:border-box;justify-content:center!important}.life-travel-quick-row{align-items:end}.life-travel-kind-picker,.life-travel-date-field{min-width:0}.life-travel-kind-picker button{display:flex!important;align-items:center;justify-content:center;white-space:nowrap}.life-travel-kind-picker button i{line-height:1}.life-travel-date-field input{font-size:12px!important;text-align:center}.life-review-travel{display:grid!important;grid-template-columns:62px minmax(0,1fr);align-items:center;gap:11px}.life-review-travel>span{display:grid!important;place-items:center;width:52px;height:52px;border-radius:16px;background:#fff0e8;color:#ba674e;font-size:23px}.life-review-travel>img{display:block;width:62px;height:62px;border-radius:15px;object-fit:cover}.life-review-travel div{min-width:0}.life-review-travel small,.life-review-travel b,.life-review-travel p{display:block}.life-review-travel p{margin:4px 0 0;color:var(--life-muted);font-size:12px;line-height:17px;white-space:pre-wrap}
body.life-mode .life-travel-page.life-travel-timeline-page>header{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;gap:8px;align-items:center;padding:calc(9px + env(safe-area-inset-top)) 16px 11px;border-bottom:1px solid rgba(226,222,220,.7);background:rgba(250,250,252,.9)}body.life-mode .life-travel-page.life-travel-timeline-page>header>div{text-align:center}body.life-mode .life-travel-page.life-travel-timeline-page>header b{font-size:18px;line-height:23px;letter-spacing:-.4px}body.life-mode .life-travel-page.life-travel-timeline-page>header small{margin-top:1px;font-size:10px;line-height:14px}.life-travel-back,.life-travel-header-add{display:grid!important;place-items:center;width:40px;min-height:40px!important;padding:0!important;border:0!important;border-radius:50%!important;background:#fff!important;box-shadow:0 3px 10px rgba(52,56,62,.08)!important}.life-travel-back{color:#555c63!important}.life-travel-back i,.life-travel-header-add i{font-size:21px!important}.life-travel-header-add{color:#bd654d!important}.life-travel-header-spacer{display:block;width:40px;height:40px}.life-travel-summary{grid-template-columns:70px minmax(0,1fr)!important;gap:10px!important;padding:15px!important;border-radius:22px!important}.life-travel-summary img{width:70px!important;height:70px!important}.life-travel-summary .life-travel-summary-copy{min-width:0}.life-travel-summary .life-travel-summary-copy h2{margin:1px 0 3px;font-size:19px;line-height:25px}.life-travel-summary .life-travel-summary-copy p{font-size:11px;line-height:16px}.life-travel-summary-counts{position:static!important;grid-column:1/-1;display:flex!important;justify-content:flex-end;gap:10px;padding-top:3px;border-top:1px solid rgba(220,191,177,.46)}.life-travel-summary-counts span{display:flex!important;align-items:baseline;gap:3px;margin:0!important;color:#a47b6c!important;font-size:11px!important;line-height:17px!important}.life-travel-summary-counts b{font-size:17px!important;color:#bd674f!important}.life-travel-section-head{margin:2px 0 9px!important}.life-travel-section-head h2{font-size:22px!important;line-height:28px!important}.life-travel-empty{display:grid!important;place-items:center;gap:6px;min-height:150px;margin-left:24px;padding:18px!important;text-align:center;font:inherit!important}.life-travel-empty i{font-size:24px;color:#bd674f}.life-travel-empty b{color:#3b3634;font-size:15px}.life-travel-empty span{color:#89817e;font-size:12px;line-height:19px}.life-travel-compose-head{align-items:flex-start!important}.life-travel-compose-head h2{font-size:25px!important;line-height:31px!important}.life-travel-compose-head button{display:grid;place-items:center;width:36px;height:36px;padding:0!important;border-radius:50%!important}.life-travel-quick-form{display:grid;gap:13px;padding:16px;border:1px solid #e5e7eb;border-radius:22px;background:#fff;box-shadow:0 8px 24px rgba(66,79,91,.055)}.life-travel-quick-form label>span,.life-travel-kind-picker>span{display:block;margin-bottom:6px;color:#8c9298;font-size:11px;font-weight:600}.life-travel-place-field input{height:50px!important;font-size:16px}.life-travel-quick-row{display:grid;grid-template-columns:minmax(0,1fr) 118px;gap:10px}.life-travel-kind-picker>div{display:flex;gap:5px}.life-travel-kind-picker button{flex:1;min-height:38px;padding:5px 4px;border:1px solid #e6e8eb;border-radius:12px;background:#fafafb;color:#747a80;font:600 11px/1 inherit}.life-travel-kind-picker button i{margin-right:2px;font-size:13px}.life-travel-kind-picker button.active{border-color:#efcfc2;background:#fff0e9;color:#bd654d}.life-travel-date-field input{box-sizing:border-box;width:100%;height:38px;padding:0 8px;border:1px solid #e5e7eb;border-radius:12px;background:#fafafb;color:#535960;font:600 11px/1 inherit}.life-travel-note-field textarea{box-sizing:border-box;min-height:76px!important;margin:0!important;border-radius:14px!important;background:#fafafb!important;font-size:14px!important}.life-travel-extra-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.life-travel-extra-actions .life-travel-photo,.life-travel-extra-actions .life-travel-location{display:flex!important;align-items:center;justify-content:center;gap:5px;min-height:40px;padding:8px!important;border-radius:13px!important;background:#fafafb!important;color:#727980!important;font:600 12px/1 inherit}.life-travel-extra-actions .life-travel-photo>i,.life-travel-extra-actions .life-travel-location>i{font-size:16px;color:#bf6d54}.life-travel-extra-actions .life-travel-location b,.life-travel-extra-actions .life-travel-location small{display:inline;font:inherit}.life-travel-quick-form .life-sheet-primary{margin:0!important;min-height:48px!important}
/* Timeline travel view: dates and memories are the focus, not a decorative map. */
.life-sheet.life-sheet-travel{background:#f2f4f8!important}.life-sheet-travel>.life-sheet-body{height:100dvh!important;overflow-y:auto!important;overscroll-behavior:contain}.life-travel-timeline-page{height:auto;min-height:100dvh;overflow:visible;background:linear-gradient(180deg,#fff8f3 0,#f2f4f8 34%,#f2f4f8 100%)}.life-travel-timeline-page>header{position:sticky;top:0;z-index:5;padding:calc(10px + env(safe-area-inset-top)) 14px 10px;background:linear-gradient(180deg,rgba(255,248,243,.97),rgba(255,248,243,.85));backdrop-filter:blur(20px)}.life-travel-timeline-page>header>div{min-width:0}.life-travel-timeline-page>header button{white-space:nowrap}.life-travel-header-add{display:flex!important;align-items:center;justify-content:center;gap:3px;color:#ba624a!important}.life-travel-header-add i{font-size:15px}.life-travel-timeline-page>main{display:grid;gap:18px;padding:7px 16px calc(34px + env(safe-area-inset-bottom))}.life-travel-summary{position:relative;display:grid;grid-template-columns:78px minmax(0,1fr);gap:12px;align-items:center;overflow:hidden;padding:18px 15px 16px;border:1px solid rgba(237,208,191,.75);border-radius:25px;background:linear-gradient(130deg,#fffdfb,#fff2e8);box-shadow:0 10px 28px rgba(150,95,69,.08)}.life-travel-summary:after{content:"";position:absolute;right:-28px;top:-36px;width:112px;height:112px;border:18px solid rgba(240,174,138,.1);border-radius:50%}.life-travel-summary img{position:relative;z-index:1;width:78px;height:78px;object-fit:contain}.life-travel-summary div{position:relative;z-index:1;min-width:0}.life-travel-summary span,.life-travel-summary p{display:block;color:#9a7769;font-size:11px;line-height:17px}.life-travel-summary h2{margin:2px 0 4px;color:#2d2928;font-size:20px;line-height:27px;letter-spacing:-.4px}.life-travel-summary p{margin:0}.life-travel-summary-counts{position:absolute!important;z-index:1;right:15px;bottom:14px;display:grid!important;grid-template-columns:auto auto;column-gap:5px;align-items:baseline!important;color:#bd674f}.life-travel-summary-counts b{font-size:16px;line-height:1}.life-travel-summary-counts span{margin-right:7px;color:#aa8678;font-size:10px;line-height:1}.life-travel-timeline-wrap{padding:2px 2px 0}.life-travel-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:0 0 12px}.life-travel-section-head span{display:block;color:#a07f72;font-size:11px;line-height:15px}.life-travel-section-head h2{margin:1px 0 0;font-size:23px;line-height:29px;letter-spacing:-.5px}.life-travel-section-head button{display:flex;align-items:center;gap:4px;min-height:34px;padding:7px 11px;border:1px solid #ecd7cb;border-radius:999px;background:#fffaf7;color:#b76049;font:600 12px/1 inherit}.life-travel-section-head button i{font-size:15px}.life-travel-timeline{position:relative;display:grid;gap:13px;padding-left:24px}.life-travel-timeline:before{content:"";position:absolute;left:7px;top:9px;bottom:22px;width:2px;border-radius:999px;background:linear-gradient(#e7ab94,#e9d7cd 86%,transparent)}.life-travel-entry{position:relative}.life-travel-dot{position:absolute;z-index:1;left:-23px;top:19px;width:12px;height:12px;border:3px solid #fff5ef;border-radius:50%;background:#cf7258;box-shadow:0 2px 8px rgba(156,89,69,.2)}.life-travel-entry.is-wish .life-travel-dot{background:#987eb7}.life-travel-entry-card{overflow:hidden;padding:13px;border:1px solid #e6e8eb;border-radius:19px;background:rgba(255,255,255,.9);box-shadow:0 6px 17px rgba(66,79,91,.055)}.life-travel-entry-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#838b93;font-size:11px;line-height:16px}.life-travel-entry-meta span{padding:3px 7px;border-radius:999px;background:#fff0e8;color:#b85f47;font-weight:600}.life-travel-entry.is-wish .life-travel-entry-meta span{background:#f2ecfb;color:#80649d}.life-travel-entry h3{margin:5px 0 2px;color:#252729;font-size:18px;line-height:24px}.life-travel-entry-location{display:flex;align-items:center;gap:4px;margin:0;color:#9b725f;font-size:11px;line-height:17px}.life-travel-entry-location i{font-size:14px}.life-travel-entry-note{margin:7px 0 0;color:#60676e;font-size:13px;line-height:20px;white-space:pre-wrap;word-break:break-word}.life-travel-entry img{display:block;width:100%;max-height:250px;margin-top:10px;border-radius:13px;object-fit:cover;background:#eef0f3}.life-travel-entry-foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px;color:#9aa0a6;font-size:10px}.life-travel-entry-foot button{padding:4px 0;border:0;background:transparent;color:#bf6d55;font:600 11px/1 inherit}.life-travel-empty{margin-left:24px;padding:28px 14px!important;border:1px dashed #dfc8bd;border-radius:18px;background:rgba(255,255,255,.65)!important;color:#8a7469!important}.life-travel-compose{display:grid;gap:15px;padding:7px 1px 18px}.life-travel-compose-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 1px}.life-travel-compose-head span{display:block;color:#a07f72;font-size:11px;line-height:15px}.life-travel-compose-head h2{margin:2px 0 0;font-size:24px;line-height:30px}.life-travel-compose-head button{display:flex;align-items:center;gap:3px;padding:7px 9px;border:0;border-radius:12px;background:#e9edf1;color:#69737b;font:600 11px/1 inherit}.life-travel-compose .life-travel-form{padding:14px;border:1px solid #e5e7eb;border-radius:21px;background:#fff;box-shadow:0 8px 24px rgba(66,79,91,.055)}
@media(min-width:700px){.life-travel-timeline-page>main{max-width:600px;margin:0 auto}.life-travel-timeline-page>header{left:50%;right:auto;width:min(100%,760px);transform:translateX(-50%)}}
body.life-mode{margin:0;background:radial-gradient(circle at 8% 8%,rgba(255,220,203,.58),transparent 28%),radial-gradient(circle at 90% 24%,rgba(218,233,255,.7),transparent 30%),#f4f5fa;color:var(--life-ink);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC","Microsoft YaHei UI",sans-serif}
body.life-mode::before,body.life-mode::after{content:'';position:fixed;z-index:0;pointer-events:none;border-radius:50%;filter:blur(1px);opacity:.72;animation:lifeDrift 13s ease-in-out infinite}body.life-mode::before{width:126px;height:126px;right:-50px;top:44%;background:radial-gradient(circle at 34% 36%,#fff7f1 0 13%,#ffd8c7 14% 19%,transparent 20%),radial-gradient(circle at 68% 65%,#fff 0 10%,#e9e7ff 11% 17%,transparent 18%)}body.life-mode::after{width:96px;height:96px;left:-40px;bottom:18%;background:radial-gradient(circle at 42% 40%,#fff 0 14%,#dff0ff 15% 23%,transparent 24%),radial-gradient(circle at 72% 70%,#ffe8df 0 10%,transparent 11%)}@keyframes lifeDrift{0%,100%{transform:translateY(0)}50%{transform:translateY(-18px)}}
body.life-mode::before{opacity:.86}body.life-mode::after{opacity:.9}
/* iOS Safari can briefly reveal the rectangular compositing layer of fixed
   decorative gradients while scrolling. Keep these ornaments clipped to a
   circle and avoid a filtered layer, so only the intended bubbles remain. */
body.life-mode::before,body.life-mode::after{filter:none;-webkit-clip-path:circle(50% at 50% 50%);clip-path:circle(50% at 50% 50%);will-change:transform}
@media(prefers-reduced-motion:reduce){body.life-mode::before,body.life-mode::after{animation:none}}
@media(min-width:431px){.life-page{max-width:760px}.life-page::before{right:2%;top:45px}.life-section{max-width:680px}}
body.life-mode .app,body.life-mode .bottom-nav,body.life-mode .bg-bubbles,body.life-mode .bg-motes,body.life-mode #musicFloat,body.life-mode #modalMask,body.life-mode #toast{display:none!important}.life-mode #modalMask.show{display:flex!important;z-index:400}.life-mode #toast.show{display:block!important;z-index:500}.life-app{display:none}.life-mode .life-app{position:relative;display:block;min-height:100vh;padding-bottom:calc(92px + env(safe-area-inset-bottom));overflow:hidden;background:radial-gradient(540px 360px at 100% 0,#f8e7dd 0%,var(--life-bg) 58%,#edf0f5 100%);-webkit-text-size-adjust:100%}
.life-mode .life-app:before,.life-mode .life-app:after{content:"";position:fixed;z-index:0;width:18px;height:18px;border:1px solid rgba(220,131,107,.25);border-radius:50%;pointer-events:none;animation:life-float 15s linear infinite}.life-mode .life-app:before{right:9%;bottom:6%;box-shadow:42px 110px 0 -5px rgba(185,201,222,.33),-18px 255px 0 -7px rgba(220,131,107,.25)}.life-mode .life-app:after{left:6%;bottom:-30px;width:12px;height:12px;border-color:rgba(185,201,222,.38);box-shadow:64px -140px 0 -4px rgba(220,131,107,.22),18px -350px 0 -6px rgba(185,201,222,.31);animation-delay:-8s}
@keyframes life-float{0%{transform:translateY(20px);opacity:0}15%,80%{opacity:1}100%{transform:translateY(-110vh);opacity:0}}
.life-chat-sheet{padding-bottom:2px}.life-chat-title{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px}.life-chat-title h2{margin:0!important}.life-chat-title span{padding:5px 9px;border-radius:999px;background:#f0eff4;color:var(--life-muted);font-size:12px}.life-chat-sheet .life-message-history{min-height:190px;max-height:48vh;padding:4px 1px;overflow:auto}.life-chat-sheet .life-chat{max-width:82%;margin:0 0 10px;padding:11px 13px;border:0;border-radius:17px 17px 17px 5px;background:#f0f0f4;box-shadow:none}.life-chat-sheet .life-chat.mine{margin-left:auto;border-radius:17px 17px 5px 17px;background:#ffece3}.life-chat-sheet .life-chat p{margin:0;font-size:15px;line-height:21px;white-space:pre-wrap;word-break:break-word}.life-chat-sheet .life-chat time{margin-top:5px}.life-chat-empty{display:grid;place-items:center;min-height:190px;padding:18px;color:var(--life-muted);font-size:14px;line-height:20px;text-align:center}.life-chat-sheet .life-message-composer{position:sticky;bottom:-12px;margin:8px -20px -12px;padding:12px 20px calc(12px + env(safe-area-inset-bottom));border-top:1px solid #e8e8ed;background:rgba(250,250,252,.97);backdrop-filter:blur(18px)}.life-chat-sheet .life-message-composer textarea{min-height:52px!important;margin:0;padding:12px 13px}.life-message-actions{display:flex;align-items:center;gap:10px;margin-top:8px}.life-message-actions .life-sheet-primary{flex:1;min-height:42px;margin:0}.life-message-actions input[type=file]{display:none}.life-photo-button{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#f0eff4;color:#ad624b;font-size:20px}
.life-status{padding-right:82px}.life-status-pet{top:10px!important;right:8px!important;bottom:auto!important;width:64px!important;height:64px!important;max-width:64px!important;max-height:64px!important;object-fit:contain!important;background:transparent!important}.life-status.life-status-empty{padding-right:15px}.life-status.life-status-empty .life-status-pet{top:auto!important;right:9px!important;bottom:9px!important;width:70px!important;height:70px!important;max-width:70px!important;max-height:70px!important}.life-chat-image{display:block;width:100%;max-height:220px;margin:0 0 8px;border-radius:12px;object-fit:cover}.life-record-image{display:block;width:100%;max-height:150px;margin-top:8px;border-radius:10px;object-fit:cover}.life-message-history{display:grid;gap:9px;margin:12px 0}.life-message-composer{margin-top:16px;padding-top:12px;border-top:1px solid var(--life-line)}.life-sheet-subtitle{margin:20px 0 10px;font-size:16px;line-height:22px}.life-sheet-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin:12px 0 16px;padding:14px;border-radius:18px;background:#fff}.life-sheet-calendar span{display:grid;place-items:center;min-height:34px;border-radius:50%;font-size:14px;color:var(--life-sub)}.life-sheet-calendar .week{min-height:20px;color:var(--life-muted);font-size:12px}.life-sheet-calendar .today{background:var(--life-accent);color:#fff}.life-sheet-calendar .marked{background:#fde8df;color:#aa6248}.life-calendar-switch{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;margin:10px 0}.life-calendar-switch b{text-align:center;font-size:18px}.life-calendar-switch button{display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:50%;background:#ececf0;color:var(--life-ink);font-size:18px}.life-fortune-pair{display:grid;gap:10px}.life-fortune-person{padding:16px;border-radius:17px;background:#fff}.life-fortune-person span{color:var(--life-muted);font-size:13px}.life-fortune-person b{display:block;margin-top:6px;font-size:18px}.life-fortune-person p{margin:7px 0 0}.life-us-hero{position:relative;display:grid;grid-template-columns:1fr 48px 1fr;align-items:center;gap:10px;padding:24px 18px 38px;border:1px solid var(--life-line);border-radius:24px;background:linear-gradient(135deg,#fff 0%,#fff6f1 100%)}.life-us-person{text-align:center}.life-us-person b{display:grid;place-items:center;width:62px;height:62px;margin:0 auto 9px;border-radius:22px;background:#fbe8df;color:#b96549;font-size:22px}.life-us-person span{font-size:15px}.life-us-link{display:grid;place-items:center;color:#d46b58;font-size:24px}.life-us-hero small{position:absolute;bottom:13px;left:0;right:0;color:var(--life-muted);font-size:12px;text-align:center}.life-us-stats{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:10px}.life-us-stats div{padding:16px 12px;border:1px solid var(--life-line);border-radius:18px;background:#fff}.life-us-stats b{display:block;color:var(--life-accent);font-size:28px;line-height:32px}.life-us-stats span{display:block;margin-top:4px;color:var(--life-muted);font-size:12px}.life-sheet-top{touch-action:none;cursor:grab}.life-sheet-top:active{cursor:grabbing}
.life-page{position:relative;z-index:1;display:none;box-sizing:border-box;width:min(100%,430px);margin:auto;padding:calc(20px + env(safe-area-inset-top)) 20px 28px;isolation:isolate}.life-page.active{display:block}.life-page>*{position:relative;z-index:1}.life-page::before{content:'';position:absolute;z-index:-1;top:30px;right:-34px;width:130px;height:130px;border-radius:42px;background:linear-gradient(145deg,rgba(255,255,255,.72),rgba(255,230,218,.32));filter:blur(.2px);transform:rotate(17deg)}.life-page::after{content:'♥ · ✦';position:absolute;z-index:-1;top:152px;left:2px;color:rgba(218,129,104,.28);font:700 13px/1 sans-serif;letter-spacing:8px;transform:rotate(-8deg)}.life-head{position:relative;padding:4px 0 20px}.life-eyebrow{font-size:13px;line-height:18px;color:var(--life-muted);letter-spacing:.1px}.life-title{margin:4px 0 0;font-size:36px;line-height:41px;letter-spacing:-1.3px}.life-sub{max-width:280px;margin:4px 0 0;font-size:14px;line-height:20px;color:var(--life-muted)}
.life-sync{position:absolute;top:7px;right:0;display:flex;align-items:center;gap:6px;max-width:155px;padding:7px 10px;border:1px solid #e8ddd8;border-radius:999px;background:#ffffffbd;color:var(--life-sub);font-size:12px;line-height:16px;backdrop-filter:blur(10px)}.life-sync-dot{width:7px;height:7px;border-radius:50%;background:#a9abb0}.life-sync.ok .life-sync-dot{background:#55a46a}.life-sync.bad .life-sync-dot{background:#d46b58}
.life-section{margin:25px 0}.life-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.life-section-title{margin:0;font-size:21px;line-height:25px;font-weight:700;letter-spacing:-.55px}.life-pill{min-height:30px;padding:5px 10px;border:1px solid rgba(225,190,175,.55);border-radius:999px;background:#fffaf8;color:#b9684c;font:600 13px/1 inherit;box-shadow:0 3px 9px rgba(164,95,72,.07)}.life-card{overflow:hidden;border:1px solid rgba(255,255,255,.88)!important;border-radius:24px!important;background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(255,255,255,.76))!important;box-shadow:0 10px 26px rgba(74,68,86,.075),0 2px 5px rgba(74,68,86,.035)!important;backdrop-filter:blur(18px)}
.life-weather{display:grid;grid-template-columns:minmax(0,1fr) 136px;min-height:158px;align-items:center;padding-left:18px;overflow:hidden}.life-weather-label{display:block;overflow:hidden;font-size:13px;color:var(--life-muted);white-space:nowrap;text-overflow:ellipsis}.life-temp{margin-top:4px;overflow:hidden;font-size:32px;font-weight:700;letter-spacing:-1.1px;line-height:38px;white-space:nowrap;text-overflow:ellipsis}.life-weather-copy{height:40px;margin:5px 0 0;overflow:hidden;font-size:14px;line-height:20px;color:var(--life-sub);white-space:nowrap}.life-weather .life-pet{display:block!important;width:130px!important;height:130px!important;max-width:130px!important;max-height:130px!important;min-width:0!important;min-height:0!important;object-fit:contain!important;justify-self:center!important;cursor:pointer;transform-origin:50% 80%}.life-pet-love .life-pet{animation:life-pet-hop .48s ease-out}.life-pet-love:after{content:"";position:absolute;right:88px;top:22px;width:10px;height:10px;border-radius:50%;background:#e7797b;box-shadow:17px 8px 0 -2px #e7797b;animation:life-hearts .75s ease-out forwards}@keyframes life-pet-hop{50%{transform:translateY(-9px) rotate(-3deg)}100%{transform:translateY(0)}}@keyframes life-hearts{0%{opacity:0;transform:translateY(8px)}35%{opacity:1}100%{opacity:0;transform:translateY(-17px)}}
.life-partner-today{margin-top:22px}.life-partner-summary{overflow:hidden;border-radius:21px;background:linear-gradient(145deg,#fff,#fff9f6)}.life-partner-summary-grid{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--life-line)}.life-partner-summary-grid article{min-width:0;padding:14px 15px}.life-partner-summary-grid article+article{border-left:1px solid var(--life-line)}.life-partner-summary-grid span{display:inline-grid;place-items:center;width:28px;height:28px;margin-bottom:9px;border-radius:10px;background:#fbe9e1;color:#bd6c50;font-size:16px}.life-partner-summary-grid small,.life-partner-insight small,.life-partner-note small{display:block;color:var(--life-muted);font-size:12px;line-height:16px}.life-partner-summary-grid b{display:block;overflow:hidden;margin-top:3px;color:var(--life-ink);font-size:14px;line-height:20px;white-space:nowrap;text-overflow:ellipsis}.life-partner-insight,.life-partner-note{display:grid;grid-template-columns:30px minmax(0,1fr) 18px;gap:10px;align-items:center;width:100%;padding:13px 15px;border:0;background:transparent;text-align:left;color:var(--life-sub)}.life-partner-insight{border-bottom:1px solid var(--life-line)}.life-partner-insight>span,.life-partner-note>span{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:#f4effd;color:#8071b5;font-size:16px}.life-partner-note>span{background:#fff0e8;color:#c77255}.life-partner-insight b,.life-partner-note b{display:block;overflow:hidden;margin-top:2px;color:var(--life-ink);font-size:13px;font-weight:600;line-height:18px;white-space:nowrap;text-overflow:ellipsis}.life-partner-insight>i,.life-partner-note>i{color:#a8aab2;font-size:16px}
.life-companion-float{position:fixed;z-index:240;display:grid;place-items:center;width:86px;height:86px;touch-action:none;user-select:none;cursor:grab;filter:drop-shadow(0 10px 11px rgba(106,75,60,.18));transition:left .2s ease,top .2s ease;will-change:left,top}.life-companion-float img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;transform-origin:50% 65%}.life-companion-float.is-dragging{cursor:grabbing;transition:none}.life-companion-float.is-updated img{animation:life-companion-arrive .48s ease-out}.life-companion-float[data-tone="quiet"] img{animation:life-companion-breathe 4.8s ease-in-out infinite}.life-companion-float[data-tone="missing"] img{animation:life-companion-missing 3.8s ease-in-out infinite}.life-companion-float[data-tone="happy"] img{animation:life-companion-happy 3.2s ease-in-out infinite}.life-companion-float[data-tone="goodnight"] img{animation:life-companion-goodnight 5s ease-in-out infinite}.life-companion-float[data-tone="days"] img{animation:life-companion-days 4.2s ease-in-out infinite}.life-companion-float[data-tone="things"] img{animation:life-companion-things 3.5s ease-in-out infinite}.life-companion-float[data-tone="home"] img{animation:life-companion-home 4.6s ease-in-out infinite}.life-companion-float.is-swimming{animation:life-companion-propel .28s ease-in-out infinite}.life-companion-float.is-swimming img{animation:none!important}@keyframes life-companion-arrive{0%{transform:scale(.82) rotate(-4deg);opacity:.55}60%{transform:scale(1.08) rotate(2deg);opacity:1}100%{transform:scale(1) rotate(0)}}@keyframes life-companion-breathe{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.025)}}@keyframes life-companion-missing{0%,76%,100%{transform:translateY(0) rotate(0)}82%{transform:translateY(-4px) rotate(-2deg)}90%{transform:translateY(-1px) rotate(2deg)}}@keyframes life-companion-happy{0%,70%,100%{transform:translateY(0) scale(1) rotate(0)}78%{transform:translateY(-7px) scale(1.05,.96) rotate(-3deg)}87%{transform:translateY(-2px) scale(.98,1.03) rotate(3deg)}}@keyframes life-companion-goodnight{0%,100%{transform:translateY(0) scale(.99);opacity:.88}50%{transform:translateY(2px) scale(1.01);opacity:1}}@keyframes life-companion-days{0%,100%{transform:rotate(0)}50%{transform:translateY(-3px) rotate(2deg)}}@keyframes life-companion-things{0%,100%{transform:translateY(0) rotate(0)}55%{transform:translateY(-4px) rotate(-2deg)}}@keyframes life-companion-home{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-2px) scale(1.025)}}@keyframes life-companion-propel{0%,100%{transform:translateX(0) rotate(-1.5deg)}50%{transform:translateX(2px) rotate(1.5deg)}}@media(max-width:360px){.life-companion-float{width:74px;height:74px}}@media(prefers-reduced-motion:reduce){.life-companion-float,.life-companion-float img{transition:none!important;animation:none!important}}
.life-interaction-streak{display:grid;grid-template-columns:20px auto minmax(0,1fr);gap:7px;align-items:center;margin:10px 13px 2px;padding:10px 11px;border-radius:14px;background:#fff4ef;color:#a85e47}.life-interaction-streak i{font-size:17px;color:#db7c63}.life-interaction-streak b{font-size:13px;line-height:18px;white-space:nowrap}.life-interaction-streak span{overflow:hidden;color:#9b8a84;font-size:11px;line-height:16px;text-align:right;white-space:nowrap;text-overflow:ellipsis}.life-fortune-hero{background:linear-gradient(145deg,#fff8ef,#fff)!important}.life-fortune-hero img{width:102px;height:102px;object-fit:contain}.life-fortune-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.life-fortune-person{min-width:0;padding:14px;border:1px solid var(--life-line);border-radius:17px;background:#fff}.life-fortune-person.mine{border-color:#f0d9ce;background:#fffaf7}.life-fortune-person small{display:block;color:var(--life-muted);font-size:12px}.life-fortune-person b{display:block;overflow:hidden;margin-top:8px;color:var(--life-ink);font-size:15px;line-height:21px;white-space:nowrap;text-overflow:ellipsis}.life-fortune-person p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;margin:6px 0 0;color:var(--life-sub);font-size:12px;line-height:18px}
.life-interaction-streak{grid-template-columns:18px auto minmax(0,1fr);gap:5px;margin:8px 12px 2px;padding:8px 10px}.life-interaction-streak i{font-size:16px}.life-interaction-streak b{font-size:12px;line-height:17px}.life-interaction-streak b em{font-size:15px;font-style:normal}.life-interaction-streak span{font-size:11px;line-height:16px}
.life-review-hero{display:grid;grid-template-columns:minmax(0,1fr) 112px;align-items:center;min-height:138px;padding:15px 16px;border-radius:21px;background:linear-gradient(140deg,#fff7ef,#fff);overflow:hidden}.life-review-hero>div{min-width:0}.life-review-hero>div>span{display:block;color:#b2725e;font-size:12px;line-height:17px}.life-review-hero h2{margin:4px 0 0;color:var(--life-ink);font-size:25px;line-height:32px;letter-spacing:-.7px}.life-review-hero p{margin:5px 0 0;color:var(--life-sub);font-size:13px;line-height:20px}.life-review-hero img{width:112px;height:112px;object-fit:contain}.life-review-week{background:linear-gradient(140deg,#fff7f0,#fffdf9)}.life-review-month{background:linear-gradient(140deg,#fff6f4,#fff)}.life-review-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:13px}.life-review-stats article{display:grid;place-items:center;padding:11px 3px;border-radius:15px;background:#fafafb}.life-review-stats b{font-size:18px;line-height:23px;color:var(--life-ink)}.life-review-stats span{color:var(--life-muted);font-size:11px;line-height:16px}.life-review-list{display:grid;gap:9px;margin-top:13px}.life-review-list article{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:center;padding:12px;border:1px solid var(--life-line);border-radius:16px;background:#fff}.life-review-list article>span{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:#fff1e9;color:#bf7156;font-size:16px}.life-review-list small{display:block;color:var(--life-muted);font-size:11px;line-height:16px}.life-review-list b{display:block;margin-top:2px;color:var(--life-ink);font-size:13px;font-weight:600;line-height:19px}.life-review-list .life-review-photo{grid-template-columns:58px minmax(0,1fr)}.life-review-photo img{width:58px;height:58px;border-radius:12px;object-fit:cover}.life-review-actions{display:grid;grid-template-columns:1fr 1.35fr;gap:9px;margin-top:15px}.life-review-actions button{min-height:43px;border:1px solid var(--life-line);border-radius:14px;background:#fff;color:var(--life-sub);font:600 13px/1 inherit}.life-review-actions .life-sheet-primary{margin:0}
.life-presence-pill{display:inline-flex;flex:0 0 auto;align-items:center;gap:5px;max-width:142px;min-height:29px;padding:0 9px;border:1px solid #e8ddd8;border-radius:999px;background:rgba(255,255,255,.9);box-shadow:0 5px 14px rgba(64,48,42,.06);color:#7d7470}.life-presence-pill>span{width:7px;height:7px;border-radius:50%;background:#b5b6bb;box-shadow:0 0 0 3px #f1f1f2}.life-presence-pill.is-online>span{background:#58b980;box-shadow:0 0 0 3px #e8f7ee}.life-presence-pill b{overflow:hidden;font-size:11px;font-weight:650;line-height:17px;white-space:nowrap;text-overflow:ellipsis}.life-presence-sheet{display:grid;grid-template-columns:46px minmax(0,1fr);gap:12px;align-items:center;padding:5px 1px}.life-presence-sheet-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:16px;background:#fff0e8;color:#c77557;font-size:22px}.life-presence-sheet small{display:block;color:var(--life-muted);font-size:12px;line-height:17px}.life-presence-sheet h2{margin:2px 0;color:var(--life-ink);font-size:19px;line-height:25px}.life-presence-sheet p{margin:0;color:var(--life-sub);font-size:12px;line-height:19px}.life-presence-note{margin-top:15px;padding:12px 13px;border-radius:14px;background:#faf8f7;color:var(--life-sub);font-size:12px;line-height:19px}
.life-partner-fortune{min-width:0;padding:14px 15px;border:0;border-left:1px solid var(--life-line);background:transparent;text-align:left;color:inherit}.life-partner-fortune:active{background:#fff8f4}.life-partner-fortune b{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;text-overflow:clip}.life-fortune-person b{display:block;overflow:visible;white-space:normal;text-overflow:clip;word-break:break-word}.life-fortune-person p{display:block;overflow:visible;margin-bottom:0;-webkit-line-clamp:unset}
.life-partner-fortune{position:relative;padding-right:30px}.life-partner-fortune b{display:block;overflow:hidden;-webkit-line-clamp:unset;font-size:13px;line-height:20px;white-space:nowrap;text-overflow:ellipsis}.life-partner-fortune>i{position:absolute;right:11px;bottom:15px;color:#abaeb5;font-size:16px}.life-fortune-pair{grid-template-columns:1fr}.life-fortune-person{min-height:0}.life-fortune-person b{font-size:17px;line-height:23px}.life-fortune-person p{font-size:14px;line-height:21px}
.life-two,.life-rituals,.life-quick{display:grid;grid-template-columns:1fr 1fr;gap:10px}.life-status,.life-ritual,.life-quick-card{box-sizing:border-box;min-width:0;border:1px solid var(--life-line);border-radius:18px;background:#fff;text-align:left}.life-status{position:relative;min-height:108px;padding:15px;overflow:hidden;cursor:pointer}.life-status small{font-size:12px;line-height:17px;color:var(--life-muted)}.life-status b{display:block;margin-top:15px;font-size:16px;line-height:21px}.life-status span{display:block;margin-top:4px;font-size:13px;line-height:18px;color:var(--life-sub)}.life-status-pet{position:absolute;right:5px;bottom:5px;width:40px;height:40px;object-fit:contain;pointer-events:none}.life-quick-status{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px}.life-quick-status button{min-height:30px;padding:6px 5px;border:1px solid var(--life-line);border-radius:11px;background:#fafafa;color:var(--life-sub);font:12px/1 inherit}.life-quick-status button.active{border-color:#e4b6a5;background:#fff0e9;color:#a9593e;font-weight:600}
.life-ritual{min-height:124px;padding:15px}.life-ritual-top{display:flex;justify-content:space-between;font-size:12px;color:var(--life-muted)}.life-ritual-icon,.life-quick-icon,.life-icon{display:grid;place-items:center;border-radius:12px;background:#fbe8df;color:#b96549}.life-ritual-icon{width:30px;height:30px;font-size:16px}.life-ritual b{display:block;overflow:hidden;margin-top:13px;font-size:16px;line-height:21px;text-overflow:ellipsis;white-space:nowrap}.life-ritual p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;margin:4px 0 0;font-size:13px;line-height:18px;color:var(--life-sub)}.life-quick-card{min-height:108px;padding:15px}.life-quick-icon{width:35px;height:35px;margin-bottom:13px;font-size:18px}.life-quick-card b{display:block;font-size:16px;line-height:21px}.life-quick-card span{display:block;margin-top:3px;font-size:13px;line-height:18px;color:var(--life-muted)}
.life-stories{display:flex;gap:12px;overflow:auto;padding:2px 0 8px;scroll-snap-type:x mandatory;scrollbar-width:none}.life-stories::-webkit-scrollbar{display:none}.life-story{box-sizing:border-box;flex:0 0 255px;min-height:172px;padding:15px;border:1px solid var(--life-line);border-radius:18px;background:#fff;scroll-snap-align:start}.life-story time,.life-label{display:block;color:var(--life-muted);font-size:13px;line-height:18px}.life-story h3{margin:12px 0 6px;font-size:17px;line-height:22px}.life-story p{margin:0;font-size:14px;line-height:20px;color:var(--life-sub);word-break:break-word}.life-story-photo{width:100%;height:72px;margin-top:12px;border-radius:11px;object-fit:cover;background:#f2f2f7}.life-empty,.life-data-empty{padding:18px;border:1px dashed #d8d8de;border-radius:16px;background:#ffffff9c;color:var(--life-muted);font-size:14px;line-height:20px;text-align:center}
.life-mini-list,.life-todo-list{overflow:hidden;border:1px solid var(--life-line);border-radius:17px;background:#fff}.life-row,.life-todo-row{display:flex;align-items:center;gap:12px;padding:14px 15px;border-bottom:1px solid #f0f0f3}.life-row:last-child,.life-todo-row:last-child{border-bottom:0}.life-icon{flex:0 0 34px;width:34px;height:34px;font-size:16px}.life-row-main{min-width:0;flex:1}.life-value{display:block;overflow:hidden;margin-top:3px;font-size:16px;line-height:21px;text-overflow:ellipsis;white-space:nowrap}.life-row-button,.life-training-day{width:100%;border:0;background:transparent;color:inherit;font:inherit;text-align:left}.life-row-action{flex:0 0 auto;padding:6px;border:0;background:none;color:#b45d49;font-size:12px}
.life-row.is-complete{background:#f8f8fa!important}.life-row.is-complete .life-icon{border:0;background:#e8eee8!important;color:#718b75!important}.life-row.is-complete .life-value{color:#8b8b92;text-decoration:line-through;text-decoration-color:#b9b9be}.life-row.is-complete .life-label,.life-row.is-complete .life-row-action{color:#9a9aa1}
.life-hero{padding:20px;border:1px solid #f0ddd4;border-radius:20px;background:#fff9f5}.life-hero-number{display:block;font-size:42px;line-height:48px;font-weight:700;letter-spacing:-2px;color:var(--life-accent)}.life-hero p{margin:4px 0 0;font-size:14px;line-height:20px;color:var(--life-sub)}.life-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;padding:14px}.life-calendar span{display:grid;place-items:center;min-height:32px;border-radius:50%;font-size:13px;color:var(--life-sub)}.life-calendar .week{min-height:20px;color:var(--life-muted);font-size:11px}.life-calendar .today{background:var(--life-accent);color:#fff}.life-calendar .marked{background:#fae9e1;color:#b96549}
.life-todo-row{gap:10px;padding:12px 12px 12px 14px}.life-todo-check,.life-todo-edit{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;padding:0;border:0;border-radius:10px;background:#fff7f3;color:var(--life-accent);font-size:20px}.life-todo-content{min-width:0;flex:1;padding:0;border:0;background:none;color:var(--life-ink);text-align:left}.life-todo-content b{display:block;overflow:hidden;font-size:16px;line-height:21px;text-overflow:ellipsis;white-space:nowrap}.life-todo-content span{display:block;margin-top:3px;color:var(--life-muted);font-size:12px;line-height:17px}.life-todo-row.done .life-todo-content b{color:var(--life-muted);text-decoration:line-through}
.life-inline-chat{display:grid;gap:8px;padding:14px 15px;border:1px solid var(--life-line);border-radius:18px;background:#fff}.life-chat{padding:12px 13px;border-radius:16px;background:#f6f6fa;color:var(--life-ink);font-size:15px;line-height:22px}.life-chat.mine{margin-left:26px;background:#fff0e9}.life-chat time{display:block;margin-top:5px;color:var(--life-muted);font-size:11px}.life-chat button{display:block;margin-top:7px;padding:0;border:0;background:none;color:var(--life-muted);font-size:11px}.life-things-wishes{padding:15px;border:1px solid var(--life-line);border-radius:18px;background:#fff}.life-wish-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.life-wish{position:relative;box-sizing:border-box;min-height:112px;padding:14px 12px;overflow:hidden;background:#fff1b7;color:#584826;box-shadow:0 6px 12px rgba(68,54,24,.1);transform:rotate(-1deg)}.life-wish:nth-child(2n){background:#dff2df;transform:rotate(1deg)}.life-wish:nth-child(3n){background:#e2ecff;transform:rotate(-.4deg)}.life-wish b{display:block;margin:8px 0;font-size:14px;line-height:19px}.life-wish small{display:block;color:#776b4d;font-size:11px}.life-wish button{position:absolute;right:8px;bottom:8px;padding:5px 8px;border:1px solid #d1ad55;border-radius:999px;background:#fff8d7;color:#8b6822;font-size:11px}
.life-photo-hero{position:relative;min-height:218px;overflow:hidden;border:1px solid var(--life-line);border-radius:22px;background:#e8e2df}.life-photo-hero img{display:block;width:100%;height:218px;object-fit:cover}.life-photo-shade{position:absolute;inset:auto 0 0;padding:42px 16px 14px;background:linear-gradient(transparent,rgba(28,28,30,.64));color:#fff}.life-photo-shade b{display:block;font-size:15px;line-height:21px}.life-photo-shade span{display:block;margin-top:3px;font-size:12px;line-height:17px;opacity:.86}.life-photo-count{position:absolute;top:12px;right:12px;padding:5px 9px;border:1px solid rgba(255,255,255,.42);border-radius:999px;background:rgba(28,28,30,.34);color:#fff;font-size:12px}
.life-photo-hero{touch-action:pan-y}.life-photo-track{display:flex;width:100%;transition:transform .42s cubic-bezier(.22,.8,.25,1);will-change:transform}.life-photo-hero .life-photo-track img{display:block;flex:0 0 100%;width:100%;height:218px;object-fit:cover}.life-photo-dots{position:absolute;right:14px;bottom:16px;display:flex;gap:4px;z-index:2}.life-photo-dots i{width:5px;height:5px;border-radius:999px;background:rgba(255,255,255,.52);transition:width .2s ease,background .2s ease}.life-photo-dots i.active{width:13px;background:#fff}
.life-couple{display:flex;align-items:center;justify-content:space-between;padding:19px}.life-person{text-align:center}.life-avatar{display:grid;place-items:center;width:57px;height:57px;margin:auto auto 7px;border-radius:21px;background:#fbe8df;color:#b96549;font-size:18px;font-weight:700}.life-link{font-size:20px;color:#d46b58}.life-progress{height:8px;margin-top:10px;overflow:hidden;border-radius:999px;background:#e5e5ea}.life-progress i{display:block;width:68%;height:100%;border-radius:inherit;background:var(--life-accent)}.life-tools{width:100%;padding:14px;border:1px solid #eadbd4;border-radius:16px;background:#fffaf8;color:#9c5a43;font:600 15px/1.2 inherit}
.life-nav{position:fixed;z-index:110;bottom:0;left:50%;display:flex;justify-content:space-around;box-sizing:border-box;width:min(100%,430px);padding:8px 12px calc(8px + env(safe-area-inset-bottom));transform:translateX(-50%);border-top:1px solid var(--life-line);background:#fffffff2;backdrop-filter:blur(18px)}.life-nav button{display:grid;justify-items:center;gap:3px;width:66px;padding:0;border:0;background:none;color:var(--life-muted);font:11px/14px inherit}.life-nav button.active{color:var(--life-accent)}.life-nav i{font-size:21px;line-height:32px}.life-nav .life-nav-icon{display:grid;place-items:center;width:32px;height:32px}.life-nav .life-nav-pet{display:none;width:32px;height:32px;object-fit:contain}.life-nav button.active .life-nav-icon{display:none}.life-nav button.active .life-nav-pet{display:block}
.life-sheet-mask{position:fixed;z-index:300;inset:0;display:flex;align-items:flex-end;visibility:hidden;opacity:0;pointer-events:none;padding:0!important;background:rgba(20,24,32,.36)!important;backdrop-filter:blur(5px);transition:opacity 200ms ease,visibility 0s linear 210ms}.life-sheet-mask.show{visibility:visible;opacity:1;pointer-events:auto;transition-delay:0s}.life-sheet-mask.is-closing{visibility:visible;pointer-events:none}.life-sheet{width:min(100%,540px)!important;max-height:min(82dvh,720px)!important;margin:0 auto!important;padding:0 0 calc(14px + env(safe-area-inset-bottom))!important;overflow:hidden!important;border:1px solid rgba(255,255,255,.82)!important;border-bottom:0!important;border-radius:26px 26px 0 0!important;background:rgba(250,250,252,.96)!important;box-shadow:0 -16px 44px rgba(24,27,34,.16)!important;opacity:.96;transform:translate3d(0,100%,0);transition:transform 210ms cubic-bezier(.22,.61,.36,1),opacity 180ms ease}.life-sheet-mask.show .life-sheet{opacity:1;transform:translate3d(0,0,0)}.life-sheet-top{position:relative;display:flex;align-items:center;justify-content:center;height:48px}.life-sheet-handle{width:38px!important;height:5px!important;margin:0!important;border-radius:999px;background:#c9c9cf!important}.life-sheet-close{position:absolute;top:8px!important;right:15px!important;display:grid;place-items:center;width:32px!important;height:32px!important;border:0!important;border-radius:50%;background:#ececf0!important;color:#6e6e77!important;font-size:24px!important;font-weight:300!important}.life-sheet-body{max-height:calc(min(82dvh,720px) - 62px)!important;padding:0 20px 12px!important;overflow:auto!important}.life-sheet-body h2{margin:1px 42px 7px 0!important;font-size:25px!important;line-height:32px!important;letter-spacing:-.65px}.life-sheet-body h2+p{margin:0 0 16px;color:#74747d;font-size:14px;line-height:21px}.life-sheet-body textarea,.life-sheet-input{box-sizing:border-box;width:100%;min-height:44px;padding:10px 12px;border:0!important;border-radius:14px!important;background:#eeeef2!important;color:var(--life-ink);font:15px/22px inherit}.life-sheet-body textarea{min-height:94px;resize:none}.life-field-label{display:block;margin:14px 0 6px;color:var(--life-sub);font-size:13px}.life-moods,.life-inline-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.life-mood,.life-inline-actions button,.life-inline-actions label{min-height:34px;padding:7px 11px;border:0;border-radius:11px;background:#ebeaf0;color:#5d5c65;font:600 13px/1 inherit}.life-mood.active,.life-inline-actions button.active{background:#f9dfd6;color:#ae5f46}.life-sheet-primary{width:100%;min-height:48px;margin-top:14px;padding:13px;border:0;border-radius:15px;background:#dc7658;color:#fff;font:600 16px inherit}.life-sheet-secondary{width:100%;min-height:44px;margin-top:8px;padding:11px;border:0;border-radius:14px;background:transparent;color:#74747d;font:15px inherit}.life-horo{padding:14px;border-radius:16px;background:#fff}.life-horo+.life-horo{margin-top:10px}.life-horo b{display:block;font-size:16px}.life-horo p{margin:6px 0 0;color:var(--life-sub);font-size:15px;line-height:22px}.life-media-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.life-media-grid article{position:relative;overflow:hidden;border:1px solid var(--life-line);border-radius:14px;background:#fff}.life-media-grid img{display:block;width:100%;aspect-ratio:1;object-fit:cover}.life-media-grid span{display:block;padding:7px;overflow:hidden;color:var(--life-sub);font-size:12px;white-space:nowrap;text-overflow:ellipsis}.life-media-grid button{position:absolute;top:7px;right:7px;padding:5px 7px;border:0;border-radius:999px;background:#ffffffdd;color:#9f4d38;font-size:11px}.life-water{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border:1px solid var(--life-line);border-radius:18px;background:#fff}.life-water button{display:grid;place-items:center;width:40px;height:40px;border:1px solid #dce8ef;border-radius:50%;background:#f3fbff;color:#4b91af;font-size:22px}.life-water b{font-size:26px;line-height:32px}.life-water small{color:var(--life-muted);font-size:13px;font-weight:400}
@media(max-width:360px){.life-page{padding-inline:16px}.life-weather{grid-template-columns:minmax(0,1fr) 118px;padding-left:15px}.life-weather .life-pet{width:112px!important;height:112px!important;max-width:112px!important;max-height:112px!important}.life-title{font-size:32px}}@media(min-width:431px){.life-page{width:min(100%,760px);padding:36px 32px 38px}.life-nav{width:min(100%,760px);border:1px solid var(--life-line);border-bottom:0;border-radius:20px 20px 0 0}.life-weather{grid-template-columns:minmax(0,1fr) 160px;min-height:174px}.life-weather .life-pet{width:144px!important;height:144px!important;max-width:144px!important;max-height:144px!important}.life-two,.life-rituals{gap:14px}.life-sheet{border-radius:26px!important}.life-sheet-body{padding-inline:24px!important}}
.life-home-nest{display:grid;grid-template-columns:minmax(0,1fr) 108px;align-items:center;gap:5px;min-height:118px;margin-top:18px;padding:14px 12px 12px 17px;border:1px solid #eedfd7;border-radius:21px;background:linear-gradient(135deg,#fff8f2,#fff);overflow:hidden}.life-home-nest>div{min-width:0}.life-home-nest span{display:block;color:#b8755d;font-size:12px;line-height:18px}.life-home-nest b{display:block;margin-top:4px;color:var(--life-ink);font-size:16px;line-height:22px;letter-spacing:-.25px}.life-home-nest p{margin:5px 0 0;color:var(--life-muted);font-size:12px;line-height:18px}.life-home-nest img{width:105px;height:105px;object-fit:contain;align-self:end}
.life-companion-float[data-tone="celebrate"] img{animation:life-companion-celebrate .72s cubic-bezier(.2,.8,.3,1) 1}@keyframes life-companion-celebrate{0%,100%{transform:translateY(0) scale(1)}45%{transform:translateY(-12px) scale(1.09,.93) rotate(-4deg)}70%{transform:translateY(-4px) scale(.98,1.04) rotate(3deg)}}
.life-companion-nudge{position:fixed;z-index:239;right:88px;bottom:126px;display:grid;gap:2px;max-width:min(218px,58vw);padding:9px 12px;border:1px solid #eaded8;border-radius:16px 16px 5px 16px;background:rgba(255,255,255,.96);box-shadow:0 9px 25px rgba(83,65,57,.13);color:var(--life-ink);text-align:left;opacity:0;transform:translateY(8px) scale(.96);transition:opacity .24s ease,transform .24s ease}.life-companion-nudge.show{opacity:1;transform:translateY(0) scale(1)}.life-companion-nudge span{color:#b5715b;font-size:11px;line-height:15px}.life-companion-nudge b{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:12px;line-height:17px}.life-companion-response{display:grid;grid-template-columns:88px minmax(0,1fr);gap:8px;align-items:center;margin:3px 0 18px;padding:10px 5px}.life-companion-response img{width:84px;height:84px;object-fit:contain}.life-companion-response span,.life-rediscovery-sheet span{display:block;color:#b5715b;font-size:12px;line-height:18px}.life-companion-response h2{margin:4px 0 0;color:var(--life-ink);font-size:19px;line-height:27px;letter-spacing:-.35px}.life-rediscovery-sheet{overflow:hidden;border:1px solid #eee0d8;border-radius:20px;background:linear-gradient(135deg,#fff8f2,#fff)}.life-rediscovery-sheet>div{padding:17px 17px 12px}.life-rediscovery-sheet h2{margin:4px 0 0;font-size:23px;line-height:31px;letter-spacing:-.6px}.life-rediscovery-sheet p{margin:6px 0 0;color:var(--life-sub);font-size:14px;line-height:21px}.life-rediscovery-sheet img{display:block;width:100%;max-height:230px;object-fit:cover}@media(max-width:360px){.life-companion-nudge{right:76px;max-width:196px;padding:8px 10px}}@media(prefers-reduced-motion:reduce){.life-companion-nudge{transition:none}}
.life-companion-nudge.is-left{right:auto;left:88px;border-radius:16px 16px 16px 5px}@media(max-width:360px){.life-companion-nudge.is-left{left:76px}}
.life-companion-float.is-idle-action{animation:life-companion-idle-swim .62s ease-in-out}@keyframes life-companion-idle-swim{0%,100%{transform:translateY(0) rotate(0)}35%{transform:translateY(-3px) rotate(-3deg)}70%{transform:translateY(1px) rotate(2deg)}}
.life-companion-accent{position:absolute;z-index:2;right:10px;top:4px;color:#df7568;font-size:17px;font-weight:700;line-height:1;pointer-events:none;text-shadow:0 1px 0 rgba(255,255,255,.8);animation:life-companion-expression 1.45s ease-out forwards}@keyframes life-companion-expression{0%{opacity:0;transform:translate(0,7px) scale(.65)}28%{opacity:1;transform:translate(var(--life-accent-shift),0) scale(1)}100%{opacity:0;transform:translate(var(--life-accent-shift),-23px) scale(.88)}}
.life-companion-float.is-action-reaction img{animation:life-companion-action-reaction .78s cubic-bezier(.2,.78,.3,1) both!important}.life-companion-action-feedback{position:absolute;z-index:3;right:72px;top:7px;width:max-content;max-width:min(178px,calc(100vw - 112px));padding:8px 11px;border:1px solid #eaded8;border-radius:14px 14px 4px 14px;background:rgba(255,255,255,.97);box-shadow:0 8px 20px rgba(83,65,57,.12);color:#6b5550;font:650 12px/17px inherit;pointer-events:none;animation:life-companion-feedback .78s ease both}.life-companion-action-feedback.is-right{right:auto;left:72px;border-radius:14px 14px 14px 4px}@keyframes life-companion-action-reaction{0%{transform:translateY(2px) scale(.92)}38%{transform:translateY(-8px) scale(1.07,.95) rotate(-3deg)}68%{transform:translateY(-2px) scale(.99,1.03) rotate(2deg)}100%{transform:translateY(0) scale(1) rotate(0)}}@keyframes life-companion-feedback{0%{opacity:0;transform:translateY(5px) scale(.94)}24%,74%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-4px) scale(.98)}}@media(prefers-reduced-motion:reduce){.life-companion-float.is-action-reaction img,.life-companion-action-feedback{animation:none!important}}
.life-companion-float[data-tone="quiet"] img,.life-companion-float[data-tone="missing"] img,.life-companion-float[data-tone="happy"] img,.life-companion-float[data-tone="days"] img,.life-companion-float[data-tone="things"] img,.life-companion-float[data-tone="home"] img{animation:life-companion-breathe 7.4s ease-in-out infinite}.life-companion-float[data-tone="goodnight"] img{animation:life-companion-goodnight 8.2s ease-in-out infinite}@keyframes life-companion-breathe{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-1.5px) scale(1.012)}}@keyframes life-companion-goodnight{0%,100%{transform:translateY(0) scale(.995);opacity:.9}50%{transform:translateY(1px) scale(1.006);opacity:1}}
/* Companion greeting: keep the message light and readable on narrow phones. */
.life-sheet-body .life-companion-response{grid-template-columns:82px minmax(0,1fr);gap:13px;align-items:center;margin:2px 0 12px;padding:15px;border:1px solid #eee3df;border-radius:20px;background:linear-gradient(135deg,#fffaf7,#fff)}
.life-sheet-body .life-companion-response img{width:78px;height:78px}
.life-sheet-body .life-companion-response span{font-size:12px;line-height:18px}
.life-sheet-body .life-companion-response p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;margin:4px 0 0;color:var(--life-ink);font-size:18px;line-height:26px;font-weight:650;letter-spacing:-.35px}
.life-sheet-body .life-companion-response+.life-sheet-primary{min-height:46px;margin-top:8px}
.life-sheet-body .life-companion-response~.life-sheet-secondary{min-height:40px;margin-top:4px;font-size:14px}
@keyframes life-page-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.life-page.active.life-page-entering{animation:life-page-enter 200ms cubic-bezier(.22,.61,.36,1) both}
.life-media-grid article{position:relative}.life-media-delete{display:block;margin:7px 0 0;padding:5px 9px;border:1px solid #ecd4cc;border-radius:999px;background:#fff7f3;color:#b96549;font:600 12px/16px inherit}.life-media-delete:active{background:#ffece4}

/* P3 · Time atmosphere changes color temperature only; layout and controls stay fixed. */
body.life-mode[data-life-time]{--life-time-base:#f4f5fa;--life-time-glow-primary:rgba(255,220,203,.58);--life-time-glow-secondary:rgba(218,233,255,.7);--life-time-app-top:#f8e7dd;--life-time-app-bottom:#edf0f5;--life-time-page-glow:rgba(255,230,218,.32);--life-time-mark:rgba(218,129,104,.28);--life-time-mote-warm:#ffd8c7;--life-time-mote-cool:#e9e7ff;--life-time-card-a:rgba(255,255,255,.94);--life-time-card-b:rgba(255,255,255,.76);--life-time-card-shadow:rgba(74,68,86,.075);--life-time-nav:rgba(255,255,255,.8);--life-time-nav-shadow:rgba(43,42,50,.06);--life-time-pet-shadow:rgba(106,75,60,.18);background:radial-gradient(circle at 8% 8%,var(--life-time-glow-primary),transparent 28%),radial-gradient(circle at 90% 24%,var(--life-time-glow-secondary),transparent 30%),var(--life-time-base);transition:background-color 700ms ease,color 700ms ease}
body.life-mode[data-life-time="morning"]{--life-time-base:#f7f4ee;--life-time-glow-primary:rgba(255,218,174,.68);--life-time-glow-secondary:rgba(220,238,244,.54);--life-time-app-top:#f9e4c9;--life-time-app-bottom:#eef2f1;--life-time-page-glow:rgba(255,226,187,.38);--life-time-mark:rgba(218,137,78,.3);--life-time-mote-warm:#ffd49f;--life-time-mote-cool:#dceff2;--life-time-card-shadow:rgba(119,86,58,.075);--life-time-pet-shadow:rgba(132,91,53,.2)}
body.life-mode[data-life-time="day"]{--life-time-base:#f3f5f8;--life-time-glow-primary:rgba(255,228,209,.48);--life-time-glow-secondary:rgba(208,231,250,.68);--life-time-app-top:#f8e9df;--life-time-app-bottom:#eaf1f6;--life-time-page-glow:rgba(232,242,255,.52);--life-time-mark:rgba(204,125,101,.24);--life-time-mote-warm:#ffe0d1;--life-time-mote-cool:#d9edff;--life-time-card-shadow:rgba(68,78,94,.068);--life-time-pet-shadow:rgba(75,92,112,.17)}
body.life-mode[data-life-time="evening"]{--life-time-base:#f6f1f3;--life-time-glow-primary:rgba(244,178,151,.56);--life-time-glow-secondary:rgba(218,207,239,.62);--life-time-app-top:#f4d8cf;--life-time-app-bottom:#eeeaf3;--life-time-page-glow:rgba(248,202,186,.36);--life-time-mark:rgba(188,104,107,.27);--life-time-mote-warm:#f4bfae;--life-time-mote-cool:#ded2ee;--life-time-card-shadow:rgba(92,65,82,.078);--life-time-nav:rgba(255,252,253,.84);--life-time-pet-shadow:rgba(118,69,77,.2)}
body.life-mode[data-life-time="night"]{--life-time-base:#eff1f6;--life-time-glow-primary:rgba(224,190,184,.25);--life-time-glow-secondary:rgba(159,178,220,.34);--life-time-app-top:#e6dfe6;--life-time-app-bottom:#e5eaf2;--life-time-page-glow:rgba(207,215,238,.42);--life-time-mark:rgba(112,118,166,.26);--life-time-mote-warm:#ebcfc8;--life-time-mote-cool:#cbd6f0;--life-time-card-a:rgba(255,255,255,.92);--life-time-card-b:rgba(249,250,255,.78);--life-time-card-shadow:rgba(49,57,86,.09);--life-time-nav:rgba(249,250,255,.86);--life-time-nav-shadow:rgba(38,44,70,.09);--life-time-pet-shadow:rgba(50,58,91,.24)}
body.life-mode[data-life-time] .life-app{background:radial-gradient(540px 360px at 100% 0,var(--life-time-app-top) 0%,var(--life-time-base) 58%,var(--life-time-app-bottom) 100%);transition:background 700ms ease}
body.life-mode[data-life-time]::before{background:radial-gradient(circle at 34% 36%,#fff 0 13%,var(--life-time-mote-warm) 14% 19%,transparent 20%),radial-gradient(circle at 68% 65%,#fff 0 10%,var(--life-time-mote-cool) 11% 17%,transparent 18%)}
body.life-mode[data-life-time]::after{background:radial-gradient(circle at 42% 40%,#fff 0 14%,var(--life-time-mote-cool) 15% 23%,transparent 24%),radial-gradient(circle at 72% 70%,var(--life-time-mote-warm) 0 10%,transparent 11%)}
body.life-mode[data-life-time] .life-page::before{background:linear-gradient(145deg,rgba(255,255,255,.72),var(--life-time-page-glow))}
body.life-mode[data-life-time] .life-page::after{color:var(--life-time-mark)}
body.life-mode[data-life-time] .life-card{background:linear-gradient(145deg,var(--life-time-card-a),var(--life-time-card-b))!important;box-shadow:0 10px 26px var(--life-time-card-shadow),0 2px 5px rgba(74,68,86,.035)!important}
body.life-mode[data-life-time] .life-nav{background:var(--life-time-nav)!important;box-shadow:0 -8px 23px var(--life-time-nav-shadow)}
body.life-mode[data-life-time] .life-companion-float{filter:drop-shadow(0 10px 11px var(--life-time-pet-shadow))}
body.life-mode[data-life-time="morning"] .life-companion-float[data-tone="morning"] img{animation:life-companion-morning 6.8s ease-in-out infinite}
body.life-mode[data-life-time="evening"] .life-companion-float[data-tone="evening"] img{animation:life-companion-evening 7.2s ease-in-out infinite}
@keyframes life-companion-morning{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-2px) rotate(-1deg)}}
@keyframes life-companion-evening{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(1px) scale(.997);opacity:.94}}
@media(prefers-reduced-motion:reduce){body.life-mode[data-life-time],body.life-mode[data-life-time] .life-app{transition:none}body.life-mode[data-life-time="morning"] .life-companion-float[data-tone="morning"] img,body.life-mode[data-life-time="evening"] .life-companion-float[data-tone="evening"] img{animation:none}}
@media(max-width:360px){.life-sheet-body .life-companion-response{grid-template-columns:70px minmax(0,1fr);padding:13px;gap:10px}.life-sheet-body .life-companion-response img{width:68px;height:68px}.life-sheet-body .life-companion-response p{font-size:17px;line-height:24px}}
.life-home-nest-button{position:relative;width:100%;border:0;text-align:left;color:inherit;font:inherit;cursor:pointer}.life-home-nest-button>i{position:absolute;right:11px;top:14px;color:#c18a75;font-size:16px}.life-home-nest-button:active{transform:scale(.985)}.life-nest-hero{display:grid;grid-template-columns:minmax(0,1fr) 132px;align-items:center;min-height:162px;margin:2px 0 18px;padding:16px 10px 13px 17px;border:1px solid #eeded5;border-radius:22px;background:linear-gradient(135deg,#fff8f2,#fff);overflow:hidden}.life-nest-hero>div{min-width:0}.life-nest-hero span,.life-nest-title span{display:block;color:#b5715b;font-size:12px;line-height:18px}.life-nest-hero h2{margin:4px 0 0!important;font-size:23px!important;line-height:30px!important;letter-spacing:-.55px}.life-nest-hero p{margin:6px 0 0;color:var(--life-sub);font-size:13px;line-height:19px}.life-nest-hero img{width:126px;height:126px;object-fit:contain}.life-nest-section{margin:18px 0}.life-nest-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.life-nest-title small{color:var(--life-muted);font-size:11px}.life-nest-counts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.life-nest-counts article{padding:13px 7px;border:1px solid var(--life-line);border-radius:15px;background:#fff;text-align:center}.life-nest-counts b{display:block;color:var(--life-accent);font-size:24px;line-height:28px}.life-nest-counts span{display:block;margin-top:3px;color:var(--life-muted);font-size:11px}.life-nest-shelf{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding:13px;border:1px solid var(--life-line);border-radius:17px;background:#fff}.life-nest-shelf.has-image{grid-template-columns:76px minmax(0,1fr);align-items:center}.life-nest-shelf img{width:76px;height:76px;border-radius:13px;object-fit:cover}.life-nest-shelf b{display:block;color:var(--life-ink);font-size:15px;line-height:21px}.life-nest-shelf p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;margin:4px 0 0;color:var(--life-sub);font-size:13px;line-height:19px}.life-nest-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px}.life-nest-actions button{display:grid;justify-items:center;gap:5px;min-height:68px;padding:8px 3px;border:1px solid var(--life-line);border-radius:15px;background:#fff;color:var(--life-sub);font:600 11px/15px inherit}.life-nest-actions i{color:#bb7057;font-size:18px}
.life-nest-room{position:relative;min-height:236px;margin:2px 0 18px;overflow:hidden;border:1px solid #eeded5;border-radius:22px;background:#fff4e9}.life-nest-room>img{display:block;width:100%;height:236px;object-fit:cover}.life-nest-room>div{position:absolute;inset:0 auto 0 0;display:flex;flex-direction:column;justify-content:center;width:56%;padding:18px;background:linear-gradient(90deg,rgba(255,248,239,.98) 0%,rgba(255,248,239,.9) 72%,rgba(255,248,239,0) 100%)}.life-nest-room span{display:block;color:#b5715b;font-size:12px;line-height:18px}.life-nest-room h2{margin:4px 0 0!important;color:var(--life-ink);font-size:22px!important;line-height:29px!important;letter-spacing:-.55px}.life-nest-room p{margin:6px 0 0;color:var(--life-sub);font-size:12px;line-height:18px}@media(max-width:360px){.life-nest-room>div{width:62%;padding-left:14px}.life-nest-room h2{font-size:20px!important;line-height:27px!important}}
.life-nest-page{padding:4px 0 12px}.life-nest-page .life-nest-room{margin:0 0 23px;box-shadow:0 9px 24px rgba(118,89,72,.09)}.life-nest-page .life-nest-section{margin:0 0 24px}.life-nest-page .life-nest-title{padding:0 2px;margin-bottom:10px}.life-nest-page .life-nest-title span{color:#b87660;font-size:14px;font-weight:650;letter-spacing:.1px}.life-nest-page .life-nest-title small{font-size:12px}.life-nest-page .life-nest-counts article,.life-nest-page .life-nest-shelf,.life-nest-page .life-nest-actions button{border-color:#e8e3e1;box-shadow:0 4px 14px rgba(92,76,69,.045)}.life-nest-page .life-nest-counts article{padding:15px 7px;border-radius:17px}.life-nest-page .life-nest-shelf{padding:14px;border-radius:19px}.life-nest-page .life-nest-actions button{min-height:76px;border-radius:17px;background:linear-gradient(145deg,#fff,#fffaf7)}.life-nest-page .life-nest-actions button:active{transform:scale(.975);background:#fff6f1}.life-nest-page .life-data-empty{margin:0;border:1px solid #e8e3e1;border-radius:19px;background:rgba(255,255,255,.9);box-shadow:0 4px 14px rgba(92,76,69,.035)}
/* Rich interaction panel and mood sheet refresh. */
.life-section-caption{margin:2px 0 0;color:var(--life-muted);font-size:12px;line-height:17px}
.life-today-together .life-section-head{align-items:flex-start}
.life-today-together .life-section-head>.life-label{margin-top:3px;padding:5px 8px;border-radius:999px;background:#fff4ef;color:#b96549;font-size:11px}
.life-today-together .life-participation-row{grid-template-columns:54px minmax(0,1fr) 30px!important}
.life-today-together .life-participation-row>span{overflow:hidden;align-self:center;color:var(--life-ink);font-size:13px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}
.life-today-together .life-participation-row>div{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;min-width:0}
.life-today-together .life-participation-row>small{align-self:center;color:var(--life-muted);font-size:11px;text-align:right;white-space:nowrap}
.life-today-together .life-together-card{padding:12px 13px 11px;border:1px solid #eadfdc;border-radius:22px;background:linear-gradient(145deg,#fff,#fffaf8);box-shadow:0 8px 24px rgba(100,78,66,.06)}
.life-today-together .life-participation-row{grid-template-columns:54px minmax(0,1fr) 30px;gap:9px;min-height:74px;padding:8px 0}
.life-today-together .life-participation-row+.life-participation-row{border-top:1px solid #f0e9e6}
.life-participation-person{display:grid;align-content:center;gap:3px}
.life-participation-person span{overflow:hidden;color:var(--life-ink);font-size:13px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}
.life-participation-person small{color:var(--life-muted);font-size:11px}
.life-participation-list{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.life-participation-item{display:grid;grid-template-columns:22px minmax(0,1fr) 14px;align-items:center;gap:4px;min-width:0;min-height:47px;padding:7px 6px;border:1px solid #e7e4e4;border-radius:14px;background:#fbfbfd;color:#8e8e93;text-align:left}
.life-participation-item:active{transform:scale(.97)}
.life-participation-item>span{display:grid;place-items:center;width:22px;height:22px;border-radius:8px;background:#f0eff4;font-size:13px}
.life-participation-item small{overflow:hidden;font-size:10px;line-height:13px;text-overflow:ellipsis;white-space:nowrap}
.life-participation-item>i{font-size:12px;text-align:right}
.life-participation-item.is-done{border-color:#efc8bb;background:#fff5f0;color:#bb654c}
.life-participation-item.is-done>span{background:#fbe1d7}.life-participation-item.is-done>i{color:#d06d53}
.life-today-together .life-interaction-streak{margin:9px 0 0!important;padding:10px 11px!important;border-radius:15px!important;background:#fff1eb!important}
.life-challenge-entry{display:grid;grid-template-columns:30px minmax(0,1fr) 18px;gap:10px;align-items:center;width:100%;min-height:56px;padding:9px 2px 12px;border:0;border-bottom:1px solid #f0e9e6;background:transparent;color:inherit;text-align:left;font:inherit}.life-challenge-entry>span{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:#fff0e8;color:#c87558;font-size:16px}.life-challenge-entry div{min-width:0}.life-challenge-entry small{display:block;color:var(--life-muted);font-size:11px;line-height:16px}.life-challenge-entry b{display:block;overflow:hidden;margin-top:1px;color:var(--life-ink);font-size:13px;line-height:19px;text-overflow:ellipsis;white-space:nowrap}.life-challenge-entry>i{color:#aaa6a5;font-size:16px}.life-interaction-subhead{display:flex;align-items:center;justify-content:space-between;padding:11px 2px 3px;color:var(--life-muted);font-size:12px}.life-interaction-subhead b{color:#b7664c;font-size:12px;font-weight:650}.life-challenge-sheet{padding:5px 1px 7px}.life-challenge-eyebrow{color:#b5715b;font-size:12px;line-height:18px}.life-challenge-sheet h2{margin:5px 0 17px;color:var(--life-ink);font-size:24px;line-height:33px;letter-spacing:-.55px}.life-challenge-options{display:grid;gap:10px}.life-challenge-options button{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:58px;padding:0 16px;border:1px solid #e8ddd8;border-radius:17px;background:#fff;color:var(--life-ink);font:650 15px/1 inherit;text-align:left}.life-challenge-options button:active{transform:scale(.985);background:#fff8f3}.life-challenge-options button.selected{border-color:#ebc8ba;background:#fff4ee;color:#b45f47}.life-challenge-options button:disabled{opacity:1}.life-challenge-options i{color:#c2765d;font-size:19px}.life-challenge-note{margin:15px 2px 3px;color:var(--life-muted);font-size:13px;line-height:20px}.life-challenge-result{text-align:center}.life-challenge-result>img{display:block;width:92px;height:92px;margin:-4px auto 1px;object-fit:contain}.life-challenge-result h2{margin-bottom:14px;font-size:20px;line-height:28px}.life-challenge-result-grid{display:grid;grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);gap:7px;align-items:center;text-align:center}.life-challenge-result-grid article{min-width:0;padding:14px 8px;border:1px solid var(--life-line);border-radius:16px;background:#fff}.life-challenge-result-grid small{display:block;overflow:hidden;color:var(--life-muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.life-challenge-result-grid b{display:block;overflow:hidden;margin-top:6px;color:var(--life-ink);font-size:14px;line-height:20px;text-overflow:ellipsis;white-space:nowrap}.life-challenge-result-grid>span{color:#c1765d;font-size:18px}.life-challenge-result>p{margin:14px 0 3px;color:var(--life-sub);font-size:13px;line-height:20px}.life-challenge-result.is-same>p{color:#a9604a;font-weight:650}
.life-mood-hero{display:grid;grid-template-columns:minmax(0,1fr) 112px;align-items:center;min-height:144px;margin:0 0 14px;padding:15px 16px;border:1px solid #efdcd4;border-radius:21px;background:linear-gradient(135deg,#fff7f1,#fff)}
.life-mood-hero>div{min-width:0}.life-mood-hero span{color:#b5715b;font-size:12px}.life-mood-hero h2{margin:5px 0 4px!important;font-size:22px!important;line-height:29px!important}.life-mood-hero p{margin:0;color:var(--life-muted);font-size:13px}.life-mood-hero img{width:106px;height:106px;object-fit:contain}
.life-mood-options{display:grid;gap:8px}.life-mood-option{display:grid;grid-template-columns:34px minmax(0,1fr) 20px;align-items:center;gap:10px;width:100%;min-height:59px;padding:9px 11px;border:1px solid var(--life-line);border-radius:16px;background:#fff;color:var(--life-sub);text-align:left}.life-mood-option:active{transform:scale(.985)}.life-mood-option.active{border-color:#e8b8a8;background:#fff6f1;color:#9f533e}.life-mood-option-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:#f3f1f5;color:#927a72;font-size:18px}.life-mood-option.active .life-mood-option-icon{background:#fbe0d6;color:#c06a50}.life-mood-option b{display:block;color:var(--life-ink);font-size:14px;line-height:19px}.life-mood-option small{display:block;margin-top:2px;color:var(--life-muted);font-size:11px;line-height:15px}.life-mood-option>i{color:#b6b6bd;font-size:18px}.life-mood-option.active>i{color:#c96b51}
.life-app button:not(:disabled),.life-sheet-mask button:not(:disabled),.life-sheet-mask label.life-photo-button{touch-action:manipulation;-webkit-tap-highlight-color:transparent;transform-origin:center;transition:transform 160ms cubic-bezier(.22,.61,.36,1),background-color 160ms ease,border-color 160ms ease,box-shadow 160ms ease,color 160ms ease}.life-app button:not(:disabled):active,.life-sheet-mask button:not(:disabled):active,.life-sheet-mask label.life-photo-button:active{transform:scale(.96);transition-duration:90ms}.life-app :is(.life-quick-card,.life-participation-item,.life-music-person,.life-partner-insight,.life-partner-note,.life-partner-fortune,.life-row-button,.life-home-nest-button):not(:disabled):active,.life-sheet-mask .life-mood-option:not(:disabled):active{transform:scale(.985)}
@media(prefers-reduced-motion:reduce){.life-page.active.life-page-entering{animation:none}.life-app button:not(:disabled),.life-sheet-mask button:not(:disabled),.life-sheet-mask label.life-photo-button{transition-duration:.01ms!important}.life-app button:not(:disabled):active,.life-sheet-mask button:not(:disabled):active,.life-sheet-mask label.life-photo-button:active{transform:none!important}}

/* =====================
   Home · Compact layout
   ===================== */
body.life-mode #musicFloat,
body.life-mode #musicFloat *{display:none!important}

.life-home-companion{padding-bottom:8px}

.life-companion-row{display:flex;overflow:hidden;border:1px solid var(--life-line);border-radius:17px;background:#fff}
.life-companion-row button{display:flex;align-items:center;justify-content:center;gap:7px;flex:1;min-height:46px;border:0;background:transparent;color:#4b4544;font:600 14px/1 inherit}
.life-companion-row button+button{border-left:1px solid #f0f0f3}
.life-companion-row .ph{color:#bd7259;font-size:18px}

.life-today-priority{margin-top:16px}
.life-today-together .life-together-card{padding:10px 14px}
.life-today-together .life-participation-row{min-height:34px}

.life-home-music .life-music-pair{border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important}
.life-home-music .life-music-person{min-height:92px;outline:0}
.life-home-music .life-music-person:focus-visible{outline:2px solid rgba(203,112,80,.38);outline-offset:3px}

/* Music · current recommendation */
.life-music-now{display:grid;grid-template-columns:42px minmax(0,1fr) 18px;align-items:center;gap:12px;width:100%;min-height:132px;padding:16px 15px;border:1px solid rgba(255,255,255,.9);border-radius:22px;background:linear-gradient(145deg,#fffdfa,#fff7f2);color:var(--life-ink);text-align:left;box-shadow:0 10px 26px rgba(74,68,86,.075),0 2px 5px rgba(74,68,86,.035)}
.life-music-now:active{transform:scale(.985)}
.life-music-now-icon,.life-music-detail-note{display:grid;place-items:center;width:42px;height:42px;border-radius:15px;background:#fbe3d7;color:#bd694f;font-size:23px;font-weight:500}
.life-music-now-copy{display:grid;min-width:0;gap:2px}.life-music-now-copy small{color:#b5715b;font-size:11px;line-height:16px}.life-music-now-copy b{overflow:hidden;margin-top:2px;font-size:19px;line-height:25px;text-overflow:ellipsis;white-space:nowrap}.life-music-now-copy>span{overflow:hidden;color:var(--life-muted);font-size:12px;line-height:18px;text-overflow:ellipsis;white-space:nowrap}.life-music-now-copy em{display:-webkit-box;overflow:hidden;margin-top:4px;color:var(--life-sub);font-size:12px;font-style:normal;line-height:18px;-webkit-box-orient:vertical;-webkit-line-clamp:2}.life-music-now-arrow{color:#b8735c;font-size:27px;font-weight:300}
.life-music-detail{padding:5px 1px 8px}.life-music-detail-eyebrow{color:#b5715b;font-size:12px;line-height:18px}.life-music-detail-hero{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:12px;margin:8px 0 15px}.life-music-detail-note{width:48px;height:48px;border-radius:16px;font-size:25px}.life-music-detail-hero h2{margin:0;color:var(--life-ink);font-size:23px;line-height:30px;letter-spacing:-.5px}.life-music-detail-hero p{margin:2px 0 0;color:var(--life-muted);font-size:13px;line-height:19px}.life-music-detail-reason{padding:13px 14px;border:1px solid #f0ddd5;border-radius:17px;background:#fff8f3}.life-music-detail-reason small,.life-music-history-head span{display:block;color:#b5715b;font-size:11px;line-height:16px}.life-music-detail-reason>b{display:block;margin-top:3px;color:var(--life-ink);font-size:14px;line-height:21px}.life-music-reasons{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.life-music-reasons span{padding:4px 8px;border-radius:999px;background:#fff;color:#9a796e;font-size:10px;line-height:15px}.life-music-history-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:19px 1px 8px}.life-music-history-head h3{margin:0;color:var(--life-ink);font-size:16px;line-height:22px}.life-music-history{display:grid;gap:7px;margin:0;padding:0;list-style:none}.life-music-history-item{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:10px;min-height:52px;padding:8px 10px;border:1px solid var(--life-line);border-radius:15px;background:#fff}.life-music-history-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:10px;background:#f7f0ed;color:#bd694f;font-size:14px}.life-music-history-item div{display:grid;min-width:0;grid-template-columns:auto minmax(0,1fr);column-gap:7px;align-items:baseline}.life-music-history-item small{color:var(--life-muted);font-size:11px;line-height:16px}.life-music-history-item b{overflow:hidden;color:var(--life-ink);font-size:13px;line-height:19px;text-overflow:ellipsis;white-space:nowrap}.life-music-history-item em{grid-column:2;color:var(--life-muted);font-size:11px;font-style:normal;line-height:16px}.life-music-history-item.is-locked{background:#fafafe}.life-music-history-item.is-locked .life-music-history-mark{background:#f0eff8;color:#8b82a8}.life-music-history-item.is-empty{opacity:.76}
@media(max-width:360px){.life-music-now{grid-template-columns:36px minmax(0,1fr) 14px;gap:9px;padding-inline:12px}.life-music-now-icon{width:36px;height:36px}.life-music-now-copy b{font-size:17px}}
.life-music-slot-svg{width:18px;height:18px}.life-music-history-mark .life-music-slot-svg{width:17px;height:17px}.life-music-history-item p{grid-column:2;margin:2px 0 0;color:var(--life-sub);font-size:11px;line-height:16px}.life-music-history-item.is-retroactive{background:#fffaf5}.life-music-history-item.is-retroactive .life-music-history-mark{background:#fff0e5;color:#bd694f}

@media(min-width:700px){
  .life-home-companion,
  .life-home-music,
  .life-partner-dynamics,
  .life-today-together,
  .life-today-priority{max-width:680px}
}

/* =====================
   Home · Unified visuals
   ===================== */
.life-home-todos,.life-together-card,.life-partner-events,.life-music-pair,.life-quick-card{border-color:rgba(255,255,255,.88)!important;box-shadow:0 10px 26px rgba(74,68,86,.075),0 2px 5px rgba(74,68,86,.035)!important}
.life-weather{overflow:visible!important;min-height:156px;box-shadow:0 16px 34px rgba(161,118,91,.13)!important}.life-weather::after{content:'✦';position:absolute;right:112px;top:18px;color:#e7a685;font-size:16px;letter-spacing:3px;animation:lifeTwinkle 2.8s ease-in-out infinite}.life-weather .life-pet{filter:drop-shadow(0 11px 10px rgba(177,107,72,.17));transform:translateY(-3px);transition:transform .24s ease,filter .24s ease}.life-weather:active .life-pet{transform:translateY(-8px) rotate(-3deg) scale(1.04);filter:drop-shadow(0 15px 12px rgba(177,107,72,.22))}@keyframes lifeTwinkle{50%{transform:scale(1.25) rotate(15deg);opacity:.5}}
.life-row-button:active,.life-quick-card:active,.life-music-person:active,.life-ritual:active{transform:scale(.985)}
.life-quick{gap:12px}.life-quick-card{position:relative;min-height:120px!important;border-radius:22px!important;background:linear-gradient(150deg,rgba(255,255,255,.96),rgba(255,248,244,.84))!important}.life-quick-card:nth-child(2n){background:linear-gradient(150deg,rgba(255,255,255,.96),rgba(245,247,255,.9))!important}.life-quick-icon{border-radius:15px!important;box-shadow:0 7px 15px rgba(183,104,76,.11)}.life-quick-card::after{content:'+';position:absolute;right:12px;bottom:9px;color:rgba(195,109,81,.22);font-size:23px;font-weight:300}.life-quick-card:nth-child(2)::after{content:'✦';color:rgba(133,130,194,.23)}.life-quick-card:nth-child(3)::after{content:'⌁';color:rgba(103,166,154,.26)}.life-quick-card:nth-child(4)::after{content:'♥';color:rgba(216,118,130,.24)}
.life-participation-dot.is-done{box-shadow:0 4px 8px rgba(212,111,78,.15);animation:lifePop .35s ease both}@keyframes lifePop{0%{transform:scale(.8)}70%{transform:scale(1.12)}100%{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.life-weather::after{animation:none}}
@media(min-width:431px){.life-weather{max-width:680px}}

/* =====================
   Navigation
   ===================== */
.life-nav{background:rgba(255,255,255,.8)!important;backdrop-filter:blur(20px);box-shadow:0 -8px 23px rgba(43,42,50,.06)}.life-nav button{transition:transform .2s ease,color .2s ease}.life-nav button.active{transform:translateY(-3px)}.life-nav button.active::before{box-shadow:0 5px 12px rgba(210,112,81,.22)}

/* =====================
   Bottom Sheet · visual surface
   ===================== */
.life-sheet{background:rgba(249,250,253,.93)!important;box-shadow:0 -18px 54px rgba(27,31,42,.2)!important}.life-sheet-body{padding-bottom:18px!important}.life-sheet-body h2{letter-spacing:-.9px}.life-horo,.life-fortune-person,.life-media-grid article{border:1px solid rgba(255,255,255,.9);box-shadow:0 7px 18px rgba(83,81,98,.06)}.life-sheet-primary{box-shadow:0 9px 17px rgba(200,106,78,.22)}

/* =====================
   Shared panels · Hero · Us
   ===================== */
.life-mini-list{overflow:hidden;border:1px solid rgba(255,255,255,.88)!important;border-radius:20px!important;background:rgba(255,255,255,.8)!important;box-shadow:0 10px 26px rgba(74,68,86,.075),0 2px 5px rgba(74,68,86,.035)!important}.life-row{min-height:66px;background:transparent!important;transition:transform .2s ease,background .2s ease}.life-row+.life-row{border-top:1px solid rgba(226,226,233,.72)}.life-icon{border-radius:14px!important;box-shadow:inset 0 1px rgba(255,255,255,.75)}
.life-hero{padding:24px!important;border-color:rgba(255,255,255,.88)!important;border-radius:24px!important;background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(255,255,255,.76))!important;box-shadow:0 16px 32px rgba(106,100,128,.1)!important;backdrop-filter:blur(18px)}.life-hero-number{color:#ca7154!important;text-shadow:0 5px 13px rgba(202,113,84,.13)}
.life-us-hero,.life-us-stats div{border-color:rgba(255,255,255,.88)!important;box-shadow:0 10px 26px rgba(74,68,86,.075),0 2px 5px rgba(74,68,86,.035)!important}.life-us-hero{overflow:hidden;border-radius:24px!important;background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(255,255,255,.76))!important;backdrop-filter:blur(18px)}.life-us-hero::before{content:'';position:absolute;width:120px;height:120px;border-radius:50%;background:rgba(255,225,214,.45);left:50%;top:-68px;transform:translateX(-50%)}.life-us-person b{box-shadow:0 9px 16px rgba(186,101,76,.12)}.life-us-stats div{border-radius:19px!important;background:rgba(255,255,255,.84)!important}.life-us-stats div:first-child{background:linear-gradient(145deg,#fff8f4,#fff)!important}

/* Hydration: two independent, sync-safe daily meters. */
.life-home-hydration .life-section-head>div{min-width:0}.life-hydration-card{display:grid;grid-template-columns:1fr 1fr;gap:9px}.life-hydration-gauge{position:relative;display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:7px;min-width:0;min-height:124px;padding:12px 10px;border:1px solid #e1e9ed;border-radius:22px;background:linear-gradient(150deg,#fff,#f7fcff);color:var(--life-ink);text-align:left;box-shadow:0 8px 22px rgba(67,89,104,.06)}.life-hydration-gauge.drink{border-color:#eee1dc;background:linear-gradient(150deg,#fff,#fff8f4)}.life-hydration-visual{position:relative;display:block;width:70px;height:88px;overflow:visible}.life-hydration-visual img{position:absolute;z-index:2;inset:0;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.life-hydration-liquid{position:absolute;z-index:1;left:19%;right:19%;bottom:12%;height:calc(var(--hydration-fill) * .7);max-height:62%;border-radius:12px 12px 20px 20px;background:linear-gradient(#88d9ff,#38aee9);box-shadow:inset 0 5px 0 rgba(255,255,255,.28);transition:height .45s cubic-bezier(.22,.61,.36,1)}.life-hydration-gauge.drink .life-hydration-liquid{left:22%;right:22%;bottom:13%;max-height:57%;background:linear-gradient(#ff9b70,#ee684b)}.life-hydration-copy{display:block;min-width:0}.life-hydration-copy small,.life-hydration-copy span{display:block;color:var(--life-muted);font-size:10px;line-height:15px}.life-hydration-copy b{display:block;margin:3px 0;color:var(--life-ink);font-size:20px;line-height:24px;white-space:nowrap}.life-hydration-copy em{font-size:10px;font-style:normal;font-weight:600}.life-hydration-gauge>i{position:absolute;right:9px;bottom:9px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#e7f7ff;color:#368db5;font-size:13px}.life-hydration-gauge.drink>i{background:#fff0e9;color:#bd684f}.life-hydration-celebrate,.life-hydration-angry{position:absolute;z-index:3;left:-4px;right:-4px;top:-5px;color:#e7a12f;font-size:13px;letter-spacing:7px;text-align:center;animation:lifeHydrationCelebrate 1.8s ease-in-out infinite}.life-hydration-angry{left:auto;right:-2px;top:2px;color:#df594d;font-size:18px;font-weight:800;letter-spacing:0;animation:lifeHydrationAngry 1.2s ease-in-out infinite}.life-hydration-gauge.is-complete{border-color:#d9e9d5;background:linear-gradient(150deg,#fff,#f7fff4)}.life-hydration-gauge.is-warning{border-color:#f2c5bb;background:linear-gradient(150deg,#fff,#fff2ed);box-shadow:0 8px 22px rgba(194,83,62,.10)}@keyframes lifeHydrationCelebrate{50%{transform:translateY(-3px);opacity:.72}}@keyframes lifeHydrationAngry{50%{transform:rotate(-8deg) scale(1.08)}}
.life-hydration-sheet-hero{display:grid;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:12px;margin-bottom:14px;padding:14px;border:1px solid #e2e9ed;border-radius:19px;background:linear-gradient(140deg,#f5fbff,#fff)}.life-hydration-sheet-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:17px;background:#dff4ff;color:#3c92b8;font-size:25px}.life-hydration-sheet-hero small{color:#6590a3;font-size:11px}.life-hydration-sheet-hero h2{margin:1px 0!important;font-size:21px!important;line-height:27px!important}.life-hydration-sheet-hero p{margin:0!important;color:var(--life-muted);font-size:12px!important;line-height:18px!important}.life-hydration-kind{display:grid;grid-template-columns:1fr 1fr;gap:8px}.life-hydration-kind button{display:grid;grid-template-columns:24px 1fr;align-items:center;gap:2px 7px;min-height:64px;padding:10px 12px;border:1px solid var(--life-line);border-radius:16px;background:#fff;color:var(--life-sub);text-align:left}.life-hydration-kind button>i{grid-row:1/3;font-size:22px}.life-hydration-kind button b{font-size:11px;color:var(--life-muted)}.life-hydration-kind button.active{border-color:#9fd6ef;background:#f0faff;color:#297ca2}.life-hydration-kind button.active+button,.life-hydration-kind button:nth-child(2).active{border-color:#efbcae;background:#fff5f1;color:#b45e48}.life-hydration-presets{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.life-hydration-presets button{min-height:40px;padding:7px;border:1px solid var(--life-line);border-radius:13px;background:#fff;color:var(--life-sub);font:600 12px/1.2 inherit}.life-hydration-presets button.active{border-color:#99d1ea;background:#edf9ff;color:#2f83a9}.life-hydration-custom{position:relative;margin-top:9px}.life-hydration-custom input{padding-right:48px!important}.life-hydration-custom span{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--life-muted);font-size:13px}.life-hydration-history .life-row{grid-template-columns:38px minmax(0,1fr) auto}.life-hydration-history .life-row-action{border:0;background:transparent;color:#b66a54;font-size:12px}
@media(max-width:370px){.life-hydration-gauge{grid-template-columns:62px minmax(0,1fr);padding-inline:8px}.life-hydration-visual{width:61px;height:78px}.life-hydration-copy b{font-size:18px}.life-hydration-copy span{font-size:9px}}
@media(prefers-reduced-motion:reduce){.life-hydration-celebrate,.life-hydration-angry{animation:none}.life-hydration-liquid{transition:none}}
.life-hydration-liquid{height:var(--hydration-fill)}
.life-hydration-kind button.active+button:not(.active){border-color:var(--life-line);background:#fff;color:var(--life-sub)}
.life-hydration-visual .life-hydration-liquid{left:27%;right:27%;bottom:23%;max-height:47%;border-radius:5px 5px 10px 10px;clip-path:polygon(7% 0,93% 0,100% 100%,0 100%)}
.life-hydration-gauge.drink .life-hydration-liquid{left:29%;right:29%;bottom:22%;max-height:45%;border-radius:4px 4px 9px 9px;clip-path:polygon(5% 0,95% 0,100% 100%,0 100%)}
.life-hydration-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 9px}.life-hydration-toolbar>span,.life-hydration-readonly{color:var(--life-muted);font-size:11px}.life-hydration-audience{display:grid;grid-template-columns:1fr 1fr;width:112px;padding:3px;border-radius:13px;background:#e9edf2}.life-hydration-audience button{min-height:28px;padding:3px 13px;border:0;border-radius:10px;background:transparent;color:#7c8088;font:600 12px/1 inherit}.life-hydration-audience button.active{background:#fff;color:#26282d;box-shadow:0 2px 8px rgba(56,62,71,.1)}.life-hydration-readonly{padding:6px 10px;border:1px solid #e4e5e8;border-radius:999px;background:#f7f7f9}.life-hydration-gauge.is-readonly>i{background:#f1f1f4;color:#85858c}.life-hydration-sheet-hero.is-readonly{border-color:#e4e4e7;background:linear-gradient(140deg,#f7f7f9,#fff)}.life-hydration-sheet-hero.is-readonly .life-hydration-sheet-icon{background:#eeeef2;color:#777980}

/* Small-things portals: photo album and travel share one visual language. */
.life-things-portals{display:grid;gap:11px}.life-things-portal{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 112px;align-items:center;min-height:142px;width:100%;padding:17px 10px 15px 17px;overflow:hidden;border:1px solid #e9ded9;border-radius:24px;background:linear-gradient(145deg,#fff,#fff8f4);color:var(--life-ink);font:inherit;text-align:left;box-shadow:0 10px 26px rgba(92,72,61,.055)}.life-things-portal>div{position:relative;z-index:2;min-width:0}.life-things-portal span{display:block;color:#b8735c;font-size:12px;line-height:18px}.life-things-portal b{display:block;margin:5px 0 4px;font-size:18px;line-height:24px;letter-spacing:-.3px}.life-things-portal small{display:block;color:var(--life-muted);font-size:12px;line-height:18px}.life-things-portal img{position:relative;z-index:1;width:108px;height:108px;object-fit:contain;image-rendering:pixelated}.life-things-portal>i{position:absolute;right:10px;top:10px;color:#c38c78;font-size:16px}.life-things-travel{background:linear-gradient(145deg,#f8fbff,#fff)}.life-things-travel span{color:#7086a6}@media(max-width:360px){.life-things-portal{grid-template-columns:minmax(0,1fr) 94px;min-height:130px;padding-left:14px}.life-things-portal img{width:92px;height:92px}.life-things-portal b{font-size:17px}}

/* Full-screen travel map. Content stays behind the bottom action dock until requested. */
.life-sheet.life-sheet-travel{width:100%!important;max-width:none!important;height:100dvh!important;max-height:100dvh!important;padding:0!important;border:0!important;border-radius:0!important;background:#eef3f7!important}.life-sheet-travel>.life-sheet-top{position:absolute;z-index:12;top:0;left:0;right:0;height:calc(50px + env(safe-area-inset-top));pointer-events:none}.life-sheet-travel>.life-sheet-top .life-sheet-handle,.life-sheet-travel>.life-sheet-top .life-sheet-close{display:none}.life-sheet-travel>.life-sheet-body{height:100dvh!important;max-height:none!important;padding:0!important;overflow:hidden!important}.life-travel-page{position:relative;width:100%;height:100dvh;overflow:hidden;background:#edf3f7}.life-travel-page>header{position:absolute;z-index:8;top:calc(10px + env(safe-area-inset-top));left:12px;right:12px;display:grid;grid-template-columns:74px minmax(0,1fr) 64px;align-items:center;gap:6px}.life-travel-page>header>div{text-align:center}.life-travel-page>header b,.life-travel-page>header small{display:block}.life-travel-page>header b{font-size:16px;line-height:21px}.life-travel-page>header small{color:#6f7d88;font-size:10px;line-height:14px}.life-travel-page>header button{min-height:38px;padding:7px 9px;border:1px solid rgba(211,220,226,.85);border-radius:14px;background:rgba(255,255,255,.82);color:#586670;font:600 12px/1 inherit;backdrop-filter:blur(16px)}.life-travel-world{position:absolute;inset:0;overflow:hidden;background:radial-gradient(circle at 54% 46%,#fff 0,#eef5f8 56%,#e3edf2 100%)}.life-travel-world svg{position:absolute;inset:4% -8% 12%;width:116%;height:84%;filter:drop-shadow(0 7px 16px rgba(77,99,110,.07))}.life-travel-world svg path{fill:#dfe8e9;stroke:#cbd9dc;stroke-width:.8}.life-travel-world svg path:nth-child(3){fill:#f2dfd5}.life-travel-map-copy{position:absolute;left:18px;top:calc(82px + env(safe-area-inset-top));display:grid;gap:3px;padding:9px 12px;border:1px solid rgba(255,255,255,.8);border-radius:16px;background:rgba(255,255,255,.66);backdrop-filter:blur(14px)}.life-travel-map-copy span{color:#76848e;font-size:11px}.life-travel-map-copy b{font-size:13px}.life-travel-marker{position:absolute;z-index:4;left:var(--travel-x);top:var(--travel-y);display:block;padding:0;border:0;background:transparent;color:#a95e49;font:600 10px/1 inherit;transform:translate(-50%,-50%)}.life-travel-marker i{display:block;width:12px;height:12px;margin:auto;border:3px solid #fff;border-radius:50%;background:#d46f50;box-shadow:0 2px 8px rgba(117,76,62,.28)}.life-travel-marker span{display:block;max-width:76px;margin-top:4px;overflow:hidden;padding:4px 6px;border-radius:999px;background:rgba(255,255,255,.86);text-overflow:ellipsis;white-space:nowrap;backdrop-filter:blur(8px)}.life-travel-marker.is-wish i{background:#8e79b8}.life-travel-dock{position:absolute;z-index:10;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(4,1fr);gap:5px;padding:7px;border:1px solid rgba(255,255,255,.84);border-radius:22px;background:rgba(250,250,252,.86);box-shadow:0 12px 32px rgba(53,67,74,.14);backdrop-filter:blur(20px)}.life-travel-dock button{display:grid;justify-items:center;gap:3px;min-height:52px;padding:7px 2px;border:0;border-radius:15px;background:transparent;color:#75818a;font:600 10px/1 inherit}.life-travel-dock i{font-size:20px}.life-travel-dock button.active{background:#d66f50;color:#fff}.life-travel-panel{position:absolute;z-index:9;left:0;right:0;bottom:0;max-height:67dvh;padding:16px 16px calc(88px + env(safe-area-inset-bottom));overflow:auto;border-radius:28px 28px 0 0;background:rgba(249,249,251,.97);box-shadow:0 -16px 42px rgba(42,53,59,.15);backdrop-filter:blur(22px);animation:lifeTravelPanelIn .22s ease-out}.life-travel-panel:before{content:"";display:block;width:38px;height:5px;margin:-6px auto 13px;border-radius:999px;background:#c8cdd1}.life-travel-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.life-travel-panel-head span,.life-travel-panel-head b{display:block}.life-travel-panel-head span{color:#899299;font-size:11px}.life-travel-panel-head b{margin-top:2px;font-size:19px}.life-travel-panel-head button{padding:7px 10px;border:0;border-radius:999px;background:#eceef1;color:#6e747a;font:600 11px/1 inherit}.life-travel-list{display:grid;gap:8px}.life-travel-row{display:grid;grid-template-columns:48px minmax(0,1fr) 32px;align-items:center;gap:10px;padding:10px;border:1px solid #e4e6e8;border-radius:17px;background:#fff}.life-travel-row img,.life-travel-row-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;object-fit:cover;background:#fff0e9;color:#bd694f;font-size:20px}.life-travel-row div{min-width:0}.life-travel-row b,.life-travel-row small{display:block}.life-travel-row b{font-size:14px}.life-travel-row small{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;margin-top:3px;color:#85898e;font-size:11px;line-height:16px}.life-travel-row>button{display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:10px;background:#f2f2f5;color:#b26650}.life-travel-recent{overflow:hidden;border:1px solid #e4e6e8;border-radius:20px;background:#fff}.life-travel-recent img{display:block;width:100%;max-height:230px;object-fit:cover}.life-travel-recent>div{padding:15px}.life-travel-recent small{color:#8a8d92}.life-travel-recent h3{margin:4px 0;font-size:21px}.life-travel-recent p{margin:0;color:#696d72;font-size:13px;line-height:20px;white-space:pre-wrap}.life-travel-form{display:grid;gap:11px}.life-travel-form label{display:grid;gap:5px;color:#73777d;font-size:12px}.life-travel-form textarea{min-height:78px}.life-travel-form-two{display:grid;grid-template-columns:1fr 1fr;gap:9px}.life-travel-location,.life-travel-photo{display:grid!important;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:9px;min-height:54px;padding:9px 11px;border:1px solid #e1e4e6;border-radius:15px;background:#fff;color:#626b72;text-align:left}.life-travel-location>i,.life-travel-photo>i{font-size:21px;color:#bf6d54}.life-travel-location b,.life-travel-location small{display:block}.life-travel-location b{font-size:13px}.life-travel-location small{margin-top:2px;color:#90959a;font-size:10px}.life-travel-photo input{display:none}@keyframes lifeTravelPanelIn{from{transform:translateY(22px);opacity:.4}to{transform:translateY(0);opacity:1}}@media(min-width:700px){.life-sheet.life-sheet-travel{width:min(100%,760px)!important}.life-travel-world svg{inset:2% 0 10%;width:100%}.life-travel-dock{left:50%;right:auto;width:420px;transform:translateX(-50%)}}@media(prefers-reduced-motion:reduce){.life-travel-panel{animation:none}}
body.life-mode .life-sheet.life-sheet-travel{width:100%!important;max-width:none!important;height:100dvh!important;max-height:100dvh!important;padding:0!important;border:0!important;border-radius:0!important;background:#f2f4f8!important}body.life-mode .life-sheet-travel>.life-sheet-body{height:100dvh!important;max-height:none!important;padding:0!important;overflow-y:auto!important;overscroll-behavior:contain}.life-travel-page.life-travel-timeline-page{position:relative;width:100%;height:auto;min-height:100dvh;overflow:visible;background:linear-gradient(180deg,#fff8f3 0,#f2f4f8 34%,#f2f4f8 100%)}.life-travel-page.life-travel-timeline-page>header{position:sticky;top:0;z-index:8;left:0;right:0;padding:calc(10px + env(safe-area-inset-top)) 14px 10px;background:linear-gradient(180deg,rgba(255,248,243,.97),rgba(255,248,243,.85));backdrop-filter:blur(20px)}

/* Mobile return and scroll continuity: lock the page behind overlays without losing its place. */
/* Keep the page in its normal compositing layer while a sheet is open.
   iOS Safari/PWA can repaint a position:fixed body as a flat color behind
   the mask, which hides the Life page underneath the sheet. The full-screen
   mask already captures the gesture, so locking overflow is sufficient. */
html.life-sheet-open,body.life-mode.life-sheet-open{overscroll-behavior:none}.life-sheet-mask{overscroll-behavior:none}.life-sheet,.life-sheet-body{touch-action:pan-y}.life-sheet-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}

/* Local upload state and per-message receipts. Keep the metadata on one line inside narrow chat bubbles. */
.life-message-meta{display:flex;align-items:center;justify-content:flex-end;gap:7px;min-width:0;margin-top:5px;color:var(--life-muted);font-size:10px;line-height:15px}.life-message-meta time{display:block;min-width:0;flex:1;overflow:hidden;margin:0!important;color:inherit;font:inherit;text-overflow:ellipsis;white-space:nowrap}.life-message-receipt{display:inline-flex;align-items:center;gap:3px;flex:0 0 auto;max-width:76px;margin:0;padding:0;border:0;background:transparent;color:#6f8f78;font:600 10px/15px var(--font);white-space:nowrap}.life-message-receipt i{flex:0 0 auto;font-size:12px;line-height:1}.life-message-receipt span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.life-message-receipt.is-local{color:#8b8e96}.life-message-receipt.is-pending{color:#a57b45}.life-message-receipt.is-syncing{color:#b66c54}.life-message-receipt.is-failed{color:#bf5d53;cursor:pointer}.life-message-receipt.is-syncing i{animation:lifeReceiptSpin 1.15s linear infinite}.life-room-capsule.is-pending{border-color:#eadcc5;background:#fffaf3}.life-room-capsule.is-pending span{background:#c79755;box-shadow:0 0 0 3px #f6ead7}.life-room-capsule.is-busy{border-color:#edd8cf;background:#fff9f6}.life-room-capsule.is-busy span{background:#c9785c;box-shadow:0 0 0 3px #f8e6de;animation:lifeSyncPulse 1.25s ease-in-out infinite}@keyframes lifeReceiptSpin{to{transform:rotate(360deg)}}@keyframes lifeSyncPulse{50%{opacity:.55;transform:scale(.78)}}@media(prefers-reduced-motion:reduce){.life-message-receipt.is-syncing i,.life-room-capsule.is-busy span{animation:none}}
.life-sheet-mask button.is-submitting{position:relative;pointer-events:none;cursor:wait!important;opacity:.76}.life-sheet-mask button.is-submitting::after{content:"";position:absolute;top:7px;right:8px;width:8px;height:8px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;opacity:.72;animation:lifeSubmitSpin .75s linear infinite}@keyframes lifeSubmitSpin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.life-sheet-mask button.is-submitting::after{animation:none}}

/* Foreground incoming-message card: immediately visible, tappable and clear of iPhone safe areas. */
.life-live-message-notice{position:fixed;z-index:490;top:calc(10px + env(safe-area-inset-top));left:50%;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;box-sizing:border-box;width:min(400px,calc(100vw - 24px));min-height:62px;padding:10px 12px;border:1px solid rgba(238,211,199,.96);border-radius:19px;background:rgba(255,250,247,.96);box-shadow:0 15px 38px rgba(63,45,39,.18);color:var(--life-ink);font-family:var(--font);text-align:left;opacity:0;pointer-events:none;transform:translate(-50%,-6px) scale(.98);transition:opacity .18s ease,transform .18s ease;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.life-live-message-notice[hidden]{display:none!important}.life-live-message-notice.show{opacity:1;pointer-events:auto;transform:translate(-50%,0) scale(1)}.life-live-message-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:13px;background:#fde8de;color:#be684e;font-size:20px}.life-live-message-copy{display:block;min-width:0}.life-live-message-copy small,.life-live-message-copy b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.life-live-message-copy small{color:#a06958;font-size:11px;font-weight:650;line-height:16px}.life-live-message-copy b{margin-top:2px;color:#353234;font-size:14px;font-weight:650;line-height:19px}.life-live-message-action{align-self:center;padding:6px 8px;border-radius:999px;background:#fff;color:#b8624a;font-size:11px;font-weight:700;white-space:nowrap}@media(max-width:360px){.life-live-message-notice{grid-template-columns:34px minmax(0,1fr) auto;gap:8px;padding:9px 10px}.life-live-message-icon{width:34px;height:34px}.life-live-message-action{padding:5px 7px}}@media(prefers-reduced-motion:reduce){.life-live-message-notice{transition:none}}

/* iPhone keyboard-safe sheets: follow VisualViewport and keep one mirrored save action visible. */
.life-sheet-mask{top:var(--life-visual-top,0px);bottom:auto;height:var(--life-visual-height,100dvh)}
.life-sheet{position:relative}
.life-keyboard-dock{position:absolute;z-index:24;right:0;bottom:0;left:0;padding:8px 20px calc(8px + env(safe-area-inset-bottom));border-top:1px solid rgba(225,225,231,.84);background:linear-gradient(180deg,rgba(249,250,253,.7),rgba(249,250,253,.98) 28%);box-shadow:0 -10px 24px rgba(31,34,43,.09);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.life-keyboard-dock .life-keyboard-action{width:100%;margin:0!important}
.life-sheet-mask.is-keyboard-open .life-sheet{max-height:min(calc(var(--life-visual-height,100dvh) - 8px),720px)!important}
.life-sheet-mask.is-keyboard-open .life-sheet-body{max-height:calc(var(--life-visual-height,100dvh) - 56px)!important;padding-bottom:calc(86px + env(safe-area-inset-bottom))!important;scroll-padding-top:12px;scroll-padding-bottom:86px}
.life-sheet-mask.is-keyboard-open .life-sheet.life-sheet-travel{height:var(--life-visual-height,100dvh)!important;max-height:var(--life-visual-height,100dvh)!important}
.life-sheet-mask.is-keyboard-open .life-sheet-travel>.life-sheet-body{height:var(--life-visual-height,100dvh)!important;max-height:var(--life-visual-height,100dvh)!important;padding-bottom:calc(86px + env(safe-area-inset-bottom))!important}
@media(max-width:360px){.life-keyboard-dock{padding-inline:16px}}

/* Form feedback stays close to the affected field without shifting primary actions. */
.life-field-counter{display:block;margin:4px 2px 0;color:#9a9ca4;font-size:10px;line-height:14px;text-align:right;font-variant-numeric:tabular-nums}.life-field-counter.is-near-limit{color:#b56a52}.life-field-error{display:flex;align-items:flex-start;gap:5px;margin:6px 2px 0;color:#b9574d;font-size:12px;line-height:17px}.life-field-error::before{content:'!';display:grid;place-items:center;flex:0 0 auto;width:15px;height:15px;margin-top:1px;border-radius:50%;background:#f8ddd8;color:#a94f46;font-size:10px;font-weight:700}.life-sheet-body :is(input,textarea,select).is-invalid{background:#fff6f4!important;box-shadow:0 0 0 2px rgba(197,81,68,.38)!important;outline:0}.life-form-feedback{display:flex;align-items:flex-start;gap:7px;margin:10px 0;padding:10px 11px;border:1px solid #efd0ca;border-radius:13px;background:#fff6f4;color:#a85047;font-size:12px;line-height:18px}.life-form-feedback[hidden]{display:none!important}.life-form-feedback::before{content:'!';display:grid;place-items:center;flex:0 0 auto;width:17px;height:17px;border-radius:50%;background:#f5d8d2;font-size:11px;font-weight:700}.life-form-feedback.is-info{border-color:#dbe4ee;background:#f6f9fc;color:#667786}.life-form-feedback.is-info::before{content:'…';background:#e2eaf2;color:#617487}.life-chat-sheet .life-message-composer>.life-field-counter{margin:3px 1px 0}.life-chat-sheet .life-form-feedback{margin:8px 0}.life-travel-compose .life-form-feedback{margin:10px 0 0}

/* Remote updates stay attached to their real destination without opening another overlay. */
.life-partner-summary-grid .life-partner-mood{min-width:0;padding:14px 15px;border:0;background:transparent;color:inherit;font:inherit;text-align:left}.life-partner-summary-grid .life-partner-mood+article{border-left:1px solid var(--life-line)}.life-partner-mood:active{background:#fff8f4}.life-partner-mood-note{margin-top:12px;padding:11px 13px;border-radius:14px;background:#f3f3f6;color:var(--life-muted);font-size:12px;line-height:18px}
.life-remote-update-target,.life-nav button.has-remote-update{position:relative!important}.life-remote-update-target.has-remote-update::after,.life-nav button.has-remote-update::after{content:"";position:absolute;z-index:6;width:8px;height:8px;border:2px solid #fff;border-radius:50%;background:#e26955;box-shadow:0 2px 7px rgba(179,76,58,.32);pointer-events:none}.life-remote-update-target.has-remote-update::after{top:7px;right:7px}.life-nav button.has-remote-update::after{top:0;left:calc(50% + 8px)}.life-remote-update-target.is-remote-highlight{animation:lifeRemoteUpdateHighlight 1s ease-out}@keyframes lifeRemoteUpdateHighlight{0%{box-shadow:0 0 0 0 rgba(226,105,85,0)}35%{box-shadow:0 0 0 4px rgba(226,105,85,.2),0 9px 24px rgba(171,91,68,.12)}100%{box-shadow:0 0 0 0 rgba(226,105,85,0)}}
@media(prefers-reduced-motion:reduce){.life-sheet-mask,.life-sheet{transition:none!important}.life-remote-update-target.is-remote-highlight{animation:none}}

/* Floating navigation dock: a compact glass island with a calm, tactile active state. */
body.life-mode .life-app{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
body.life-mode .life-nav{
  --life-nav-surface-start:rgba(255,255,255,.94);
  --life-nav-border:rgba(255,255,255,.9);
  --life-nav-icon-bg:rgba(237,239,244,.78);
  --life-nav-active:linear-gradient(145deg,rgba(255,248,244,.98),rgba(251,224,213,.9));
  --life-nav-active-shadow:rgba(178,97,72,.15);
  bottom:max(8px,env(safe-area-inset-bottom));
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  justify-content:stretch;
  gap:3px;
  box-sizing:border-box;
  width:calc(min(100%,430px) - 32px);
  min-height:62px;
  padding:5px;
  overflow:visible;
  border:1px solid var(--life-nav-border);
  border-radius:23px;
  background:linear-gradient(145deg,var(--life-nav-surface-start),var(--life-time-nav))!important;
  box-shadow:0 16px 38px var(--life-time-nav-shadow),0 4px 12px rgba(48,51,61,.08),inset 0 1px 0 rgba(255,255,255,.84);
  -webkit-backdrop-filter:blur(24px) saturate(1.16);
  backdrop-filter:blur(24px) saturate(1.16);
}
body.life-mode[data-life-time] .life-nav{background:linear-gradient(145deg,var(--life-nav-surface-start),var(--life-time-nav))!important;box-shadow:0 16px 38px var(--life-time-nav-shadow),0 4px 12px rgba(48,51,61,.08),inset 0 1px 0 rgba(255,255,255,.84)}
body.life-mode[data-life-time="morning"] .life-nav{--life-nav-icon-bg:rgba(244,235,218,.76);--life-nav-active:linear-gradient(145deg,#fffaf1,rgba(250,222,183,.92));--life-nav-active-shadow:rgba(164,109,57,.16)}
body.life-mode[data-life-time="day"] .life-nav{--life-nav-icon-bg:rgba(228,237,246,.8);--life-nav-active:linear-gradient(145deg,#fff9f5,rgba(247,221,212,.92));--life-nav-active-shadow:rgba(153,96,78,.14)}
body.life-mode[data-life-time="evening"] .life-nav{--life-nav-surface-start:rgba(255,253,254,.95);--life-nav-icon-bg:rgba(238,230,241,.8);--life-nav-active:linear-gradient(145deg,#fff8f8,rgba(237,211,226,.94));--life-nav-active-shadow:rgba(137,81,111,.15)}
body.life-mode[data-life-time="night"] .life-nav{--life-nav-surface-start:rgba(250,251,255,.94);--life-nav-border:rgba(255,255,255,.76);--life-nav-icon-bg:rgba(225,229,241,.82);--life-nav-active:linear-gradient(145deg,#f8f8ff,rgba(215,221,240,.94));--life-nav-active-shadow:rgba(72,82,124,.16)}
.life-nav button{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-rows:30px 14px;
  align-content:center;
  justify-items:center;
  gap:1px;
  width:auto;
  min-width:0;
  min-height:50px;
  margin:1px 2px;
  padding:2px 2px 1px;
  border:0;
  border-radius:16px;
  background:transparent;
  color:var(--life-muted);
  font:600 10px/14px var(--font-body);
  letter-spacing:.05px;
  -webkit-tap-highlight-color:transparent;
  transition:color 180ms ease,background 180ms ease,box-shadow 180ms ease,transform 120ms ease;
}
.life-nav button>span{align-self:center;font-size:10px;font-weight:600;line-height:14px;white-space:nowrap}
.life-nav button>i{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:var(--life-nav-icon-bg);color:#858992;font-size:18px;line-height:1;transition:background 180ms ease,color 180ms ease,transform 180ms ease}
.life-nav button.active{background:var(--life-nav-active);box-shadow:0 6px 14px var(--life-nav-active-shadow),inset 0 1px 0 rgba(255,255,255,.88);color:var(--life-accent);transform:none}
.life-nav button.active .life-nav-pet{display:block;width:30px;height:30px;object-fit:contain;filter:drop-shadow(0 3px 4px rgba(92,63,51,.13));animation:lifeNavPetArrive 240ms cubic-bezier(.2,.78,.3,1) both}
.life-nav button:active{transform:scale(.95)}
.life-nav button:focus-visible{outline:2px solid rgba(203,112,80,.5);outline-offset:1px}
.life-nav button.has-remote-update::after{top:4px;left:calc(50% + 9px)}
@keyframes lifeNavPetArrive{from{opacity:.5;transform:translateY(3px) scale(.82)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:360px){body.life-mode .life-nav{width:calc(100% - 20px);gap:1px}.life-nav button{margin-inline:1px;border-radius:15px}}
@media(prefers-reduced-motion:reduce){.life-nav button,.life-nav button>i{transition:none}.life-nav button.active .life-nav-pet{animation:none}.life-nav button:active{transform:none}}

/* iOS Safari: remove the expensive backdrop layer as soon as a sheet starts closing. */
.life-sheet-mask.is-closing{background:transparent!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}

/* iOS paint stability: a full-screen backdrop blur can hide the transformed
   sheet layer. Keep the dimmer lightweight and the dialog on its own layer. */
.life-sheet-mask{background:rgba(24,28,36,.24)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
.life-sheet-mask>.life-sheet{position:relative;z-index:1;visibility:visible;isolation:isolate;will-change:transform,opacity}
.life-sheet-mask.is-closing>.life-sheet{opacity:0;transform:translate3d(0,100%,0)}

/* Home weather: quiet secondary almanac details. */
.life-photo-hero+.life-weather{margin-top:16px}
.life-weather>div{min-width:0}
.life-weather{min-height:188px!important}
.life-weather-main{min-width:0}
.life-weather-pet-column{position:relative;display:grid;align-items:center;justify-items:center;min-width:0;align-self:stretch}
.life-weather-almanac{display:grid;gap:0;max-width:100%;margin-top:8px;padding-left:0}
.life-weather-almanac::before{content:none}
.life-weather-almanac-date{position:absolute;top:13px;right:0;left:0;overflow:hidden;color:rgba(65,65,65,.5);font-size:11px;font-weight:400;line-height:16px;text-align:center;white-space:nowrap;text-overflow:ellipsis}
.life-weather-lunar-date{margin-left:0;color:rgba(65,65,65,.62);font-weight:500}
.life-weather-almanac-row{display:flex;align-items:baseline;gap:8px;min-width:0;color:rgba(65,65,65,.72);font-size:11px;line-height:16px}
.life-weather-almanac-row+.life-weather-almanac-row{margin-top:0}
.life-weather-almanac-label{display:inline;flex:0 0 auto;min-width:0;height:auto;padding:0;border-radius:0;background:none;box-shadow:none;font-size:11px;font-weight:600;letter-spacing:0;line-height:16px}
.life-weather-almanac-label.is-good{color:rgba(83,112,88,.78)}
.life-weather-almanac-label.is-bad{color:rgba(139,88,84,.74)}
.life-weather-almanac-text{display:block;min-width:0;overflow:hidden;color:rgba(65,65,65,.72);font-size:11px;font-weight:400;letter-spacing:.01em;line-height:16px;white-space:nowrap;text-overflow:ellipsis}

/* Home summaries: preserve every action while reducing vertical chrome. */
.life-partner-summary-grid .life-partner-summary-compact,.life-partner-summary-grid .life-partner-fortune{display:grid;grid-template-columns:28px minmax(0,1fr) 14px;gap:8px;align-items:center;min-width:0;min-height:56px;padding:10px 12px;border:0;background:transparent;color:inherit;font:inherit;text-align:left}
.life-partner-summary-grid .life-partner-fortune{border-left:1px solid var(--life-line)}
.life-partner-summary-compact>span,.life-partner-fortune>span{display:grid;place-items:center;width:28px;height:28px;margin:0;border-radius:10px;background:#fbe9e1;color:#bd6c50;font-size:16px}
.life-partner-summary-compact>div,.life-partner-fortune>div{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.life-partner-summary-compact small,.life-partner-fortune small{display:inline;color:var(--life-muted);font-size:11px;line-height:16px}
.life-partner-summary-compact small::after,.life-partner-fortune small::after{content:' · '}
.life-partner-summary-compact b,.life-partner-fortune b{display:inline;overflow:hidden;margin:0;color:var(--life-ink);font-size:12px;font-weight:600;line-height:16px;text-overflow:ellipsis;white-space:nowrap}
.life-partner-fortune>i{color:#aaa6a5;font-size:15px}
.life-today-together .life-section-head{align-items:center;margin-bottom:8px}
.life-interaction-streak-inline{display:inline-flex;align-items:center;gap:4px;color:#a85e47;font-size:11px;line-height:16px;white-space:nowrap}
.life-interaction-streak-inline>i{font-size:13px;color:#d47760}
.life-interaction-streak-inline b{font-size:13px;font-weight:700}
.life-today-together .life-together-card{padding:8px 13px 9px}
.life-challenge-entry{grid-template-columns:26px minmax(0,1fr) 16px;gap:8px;min-height:44px;padding:6px 1px 8px}
.life-challenge-entry>span{width:26px;height:26px;border-radius:9px;font-size:14px}
.life-challenge-entry small,.life-challenge-entry b{display:inline;overflow:hidden;margin:0;font-size:12px;line-height:18px;white-space:nowrap;text-overflow:ellipsis}
.life-challenge-entry small{color:var(--life-muted)}
.life-challenge-entry small::after{content:' · '}
.life-challenge-entry b{color:var(--life-ink);font-weight:600}
.life-challenge-entry>i{font-size:15px}
.life-interaction-subhead{padding:7px 1px 2px;font-size:11px}
.life-interaction-subhead b{font-size:11px}
.life-today-together .life-participation-row{grid-template-columns:40px minmax(0,1fr) 28px!important;gap:8px;min-height:38px;padding:4px 0}
.life-today-together .life-participation-row>span{font-size:12px}
.life-today-together .life-participation-row>div{gap:5px}
.life-participation-item{position:relative;display:grid;grid-template-columns:1fr;place-items:center;min-height:30px;padding:0;border:1px solid #e9e7e8;border-radius:10px;background:#fbfbfd;color:#96969d;text-align:center}
.life-participation-item>span{display:grid;place-items:center;width:22px;height:22px;border-radius:8px;background:transparent;font-size:15px}
.life-participation-item>i{position:absolute;right:2px;bottom:1px;font-size:9px;line-height:1;color:#a7a7ad}
.life-participation-item.is-done{border-color:#efc8bb;background:#fff5f0;color:#bb654c}
.life-participation-item.is-done>span{background:transparent}.life-participation-item.is-done>i{color:#d06d53}
.life-interaction-waiting{display:flex;align-items:center;gap:8px;margin:6px 1px 3px;padding:8px 10px;border:1px solid #f0ddd6;border-radius:12px;background:#fffaf7;color:#a06655;font-size:11px;line-height:15px}.life-interaction-waiting>i{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border-radius:9px;background:#fff0e9;color:#cf765d;font-size:14px}.life-interaction-waiting small{color:#9a8b85;font-size:10px;line-height:14px}.life-companion-float[data-tone="celebrate"] .life-companion-action-feedback{border-color:#eadbc3;background:#fffdf8;color:#8d6a42}
