:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fdf5f7;--surface:#fff;--surface-soft:#f9e8ee;--surface-warm:#fbe4ec;--text:#3a2b31;--text-soft:#9a838c;--line:#f2dce4;--accent:#e08098;--accent-strong:#c25f7c;--accent-soft:#fbe4ec;--danger:#cf7a36;--danger-soft:#faeede;--success:#3f9d7a;--shadow:0 10px 30px #be78911a;--radius-lg:22px;--radius-md:16px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html{background:#f3e2e8;min-height:100%}body{background:var(--bg);min-width:320px;min-height:100%;color:var(--text);margin:0}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}p,h1,h2,h3{margin-top:0}#root{min-height:100dvh}.app-frame{background:var(--bg);width:100%;max-width:480px;min-height:100dvh;margin:0 auto;box-shadow:0 0 42px #be78911a}.app-header{z-index:20;min-height:calc(78px + var(--safe-top));padding:calc(18px + var(--safe-top)) 20px 13px;background:color-mix(in srgb, var(--bg) 92%, transparent);border-bottom:1px solid color-mix(in srgb, var(--line) 80%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);justify-content:space-between;align-items:flex-end;display:flex;position:sticky;top:0}.app-header__brand{color:var(--text-soft);letter-spacing:.08em;margin-bottom:3px;font-size:12px;font-weight:650}.app-header h1{letter-spacing:-.03em;margin-bottom:0;font-size:25px}.page-content{padding:18px 16px calc(92px + var(--safe-bottom))}.page-stack{gap:16px;display:grid}.network-status{white-space:nowrap;border-radius:999px;align-items:center;gap:5px;min-height:30px;padding:6px 10px;font-size:12px;font-weight:700;display:inline-flex}.network-status.is-online{background:var(--accent-soft);color:var(--success)}.network-status.is-offline{background:var(--surface-warm);color:#7b5d3b}.bottom-nav{z-index:30;width:100%;max-width:480px;min-height:calc(66px + var(--safe-bottom));padding:6px 8px calc(6px + var(--safe-bottom));background:color-mix(in srgb, var(--surface) 94%, transparent);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);grid-template-columns:repeat(5,1fr);margin:0 auto;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -10px 30px #be789114}.bottom-nav__item{color:#a08b93;border-radius:13px;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-width:44px;min-height:52px;font-size:11px;font-weight:650;display:flex}.bottom-nav__item.is-active{color:var(--accent);background:var(--accent-soft)}.hero-card{border-radius:var(--radius-lg);color:#fff;background:linear-gradient(148deg,#ec8fa9 0%,#f3b3c5 60%,#f6c1d1 100%);justify-content:space-between;align-items:center;min-height:132px;padding:22px;display:flex;box-shadow:0 12px 28px #c46e8c4d}.hero-card p{color:#ffffffd9;text-shadow:0 1px 2px #a0466438;margin-bottom:8px;font-size:14px}.hero-card h2{letter-spacing:-.04em;text-shadow:0 1px 2px #a0466438;margin-bottom:0;font-size:34px}.hero-card>span{background:#ffffff2e;border:1px solid #ffffff59;border-radius:999px;padding:8px 11px;font-size:12px;font-weight:700}.hero-weight{flex-wrap:wrap;align-items:baseline;gap:8px;margin-top:6px;display:flex}.hero-weight strong{letter-spacing:-.04em;font-variant-numeric:tabular-nums;text-shadow:0 1px 2px #a0466438;font-size:48px;font-weight:800;line-height:1}.hero-weight__unit{color:#ffffffe0;font-size:16px;font-weight:650}.hero-weight__delta{background:#ffffff38;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700}.today-summary{align-items:center;gap:16px;display:flex}.progress-ring{flex:none;width:84px;height:84px;position:relative}.progress-ring__label{text-align:center;place-content:center;display:grid;position:absolute;inset:0}.progress-ring__label strong{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:19px}.progress-ring__label small{color:var(--text-soft);font-size:9px;font-weight:650}.today-summary__info{gap:4px;display:grid}.today-summary__info strong{letter-spacing:-.01em;font-size:15px}.today-summary__info p{color:var(--text-soft);margin:0;font-size:13px;line-height:1.6}.section-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);padding:18px}.section-card__header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px;display:flex}.section-card__header h2,.section-heading h2,.module-card h2{letter-spacing:-.02em;margin-bottom:0;font-size:18px}.eyebrow{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px;font-size:11px;font-weight:800}.supporting-copy{color:var(--text-soft);margin:0;font-size:13px;line-height:1.7}.module-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.module-card{min-height:122px;padding:15px}.module-card__title{color:var(--accent);align-items:center;gap:8px;display:flex}.module-card__bar{background:var(--surface-soft);border-radius:99px;height:6px;margin-top:12px;overflow:hidden}.module-card__bar span{border-radius:inherit;background:linear-gradient(90deg, var(--accent), #f0a9bc);height:100%;transition:width .2s;display:block}.module-card.is-done{background:linear-gradient(150deg, var(--accent-soft), var(--surface));border-color:#f0bccc}.module-card p{color:var(--text-soft);margin:10px 0 0;font-size:13px}.module-card__value{letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-top:12px;font-size:25px;display:block}.progress-block__meta{color:var(--text-soft);justify-content:space-between;margin-bottom:9px;font-size:12px;display:flex}.progress{background:var(--surface-soft);border-radius:99px;height:8px;overflow:hidden}.progress span{border-radius:inherit;background:var(--accent);height:100%;transition:width .2s;display:block}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:130px;padding:18px;display:flex}.empty-state__icon{background:var(--surface-soft);width:46px;height:46px;color:var(--accent);border-radius:15px;place-items:center;margin-bottom:12px;display:grid}.empty-state strong{font-size:15px}.empty-state p{max-width:280px;color:var(--text-soft);margin:7px 0 0;font-size:13px;line-height:1.55}.section-heading{justify-content:space-between;align-items:flex-end;margin:2px 4px 11px;display:flex}.section-heading p{margin-bottom:2px}.section-heading>span{color:var(--text-soft);font-size:12px}.day-list{gap:9px;display:grid}.day-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);grid-template-columns:44px 1fr 22px;align-items:center;gap:12px;min-height:70px;padding:11px 14px;display:grid;box-shadow:0 6px 20px #be78910f}.day-card__number{background:var(--accent-soft);width:42px;height:42px;color:var(--accent);border-radius:14px;place-items:center;font-weight:800;display:grid}.day-card strong,.day-card small{display:block}.day-card small{color:var(--text-soft);margin-top:4px}.back-link{min-height:44px;color:var(--accent);align-items:center;gap:6px;font-size:14px;font-weight:750;display:inline-flex}.day-detail-hero{border-radius:var(--radius-lg);color:#fff;background:linear-gradient(148deg,#ec8fa9 0%,#f3b3c5 60%,#f6c1d1 100%);padding:22px;box-shadow:0 12px 28px #c46e8c4d}.day-detail-hero p{color:#ffffffd9;margin-bottom:6px;font-size:12px;font-weight:700}.day-detail-hero h2{text-shadow:0 1px 2px #a0466438;margin-bottom:8px;font-size:28px}.day-detail-hero span{color:#ffffffe6;font-size:13px;line-height:1.55;display:block}.target-grid{grid-template-columns:1fr 1fr;gap:9px;display:grid}.target-grid>span{background:var(--surface-soft);border-radius:13px;gap:3px;padding:12px;display:grid}.target-grid strong{font-size:15px}.target-grid small{color:var(--text-soft);font-size:11px}.plan-goal{margin-top:13px}.week-grid{gap:9px;display:grid}.week-card{border:1px solid var(--line);border-radius:14px;grid-template-columns:60px 1fr;align-items:center;gap:3px 10px;padding:12px;display:grid}.week-card>span{background:var(--accent-soft);min-height:48px;color:var(--accent);border-radius:12px;grid-row:1/3;place-items:center;font-size:12px;font-weight:800;display:grid}.week-card strong{font-size:14px}.week-card p{color:var(--text-soft);margin:0;font-size:12px;line-height:1.5}.rule-warning{background:var(--surface-warm);color:#705838;border-radius:12px;margin:12px 0 0;padding:11px 12px;font-size:12px;font-weight:700}.meal-stack{gap:18px;display:grid}.meal-block+.meal-block{border-top:1px solid var(--line);padding-top:18px}.subheading{color:var(--accent);align-items:center;gap:8px;margin-bottom:10px;display:flex}.subheading h3{margin:0;font-size:15px}.check-list{gap:7px;display:grid}.check-item{width:100%;min-height:52px;color:var(--text);border:1px solid var(--line);text-align:left;background:#fdf7f9;border-radius:13px;grid-template-columns:28px 1fr;align-items:center;gap:8px;padding:9px 11px;display:grid}.check-item__icon{width:27px;height:27px;color:var(--text-soft);background:var(--surface-soft);border-radius:50%;place-items:center;display:grid}.check-item>span:last-child{gap:3px;display:grid}.check-item strong{font-size:14px}.check-item small{color:var(--text-soft);font-size:12px;line-height:1.4}.check-item.is-done{background:var(--accent-soft);border-color:#f0bccc}.check-item.is-done .check-item__icon{color:#fff;background:var(--accent)}.check-item.is-done strong{-webkit-text-decoration:line-through #c98aa0;text-decoration:line-through #c98aa0}.inline-note{color:var(--text-soft);margin:8px 0 0;font-size:12px}.fact-row{background:var(--surface-soft);min-height:52px;color:var(--accent);border-radius:13px;grid-template-columns:28px 1fr;align-items:center;gap:8px;padding:9px 11px;display:grid}.fact-row>span{color:var(--text);gap:3px;display:grid}.fact-row small{color:var(--text-soft);font-size:12px;line-height:1.45}.fact-row.compact{align-items:start;margin-top:13px}.plain-list{color:var(--text-soft);gap:9px;margin:0;padding-left:20px;font-size:13px;line-height:1.55;display:grid}.water-actions{grid-template-columns:repeat(3,1fr);gap:7px;margin-top:13px;display:grid}.water-actions button{min-height:40px;color:var(--accent);background:var(--accent-soft);border:0;border-radius:11px;padding:7px;font-size:12px;font-weight:750}.inline-loader{min-height:180px}.measurement-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.measurement-grid>:first-child{grid-column:1/-1}.record-list{gap:7px;display:grid}.record-row{border-bottom:1px solid var(--line);min-height:54px;color:var(--accent);grid-template-columns:28px 1fr auto;align-items:center;gap:8px;padding:8px 10px;display:grid}.record-row>span{color:var(--text);gap:3px;display:grid}.record-row small{color:var(--text-soft);align-items:center;gap:4px;display:inline-flex}.record-row b{color:var(--text);font-size:14px}.data-note{align-items:center;gap:6px;padding:0 4px;display:flex}.review-entry{border-radius:var(--radius-lg);color:#fff;background:linear-gradient(148deg,#ec8fa9 0%,#f3b3c5 60%,#f6c1d1 100%);grid-template-columns:48px 1fr 22px;align-items:center;gap:11px;min-height:88px;padding:15px;display:grid;box-shadow:0 12px 28px #c46e8c4d}.review-entry__icon{background:#fff3;border-radius:15px;place-items:center;width:46px;height:46px;display:grid}.review-entry>span:nth-child(2){gap:3px;display:grid}.review-entry small{color:#fffc;font-size:11px;font-weight:750}.review-entry strong{text-shadow:0 1px 2px #a0466438;font-size:17px}.review-entry em{color:#ffffffd9;font-size:11px;font-style:normal;line-height:1.45}.review-intro{margin-bottom:17px}.review-form{gap:16px}.review-section-title{color:var(--accent);align-items:center;gap:7px;margin:3px 0 -4px;padding-top:5px;font-size:13px;display:flex}.measurement-grid.two-column>:first-child{grid-column:auto}.coach-feedback{border:1px solid var(--line);background:var(--surface-soft);border-radius:16px;padding:15px}.coach-feedback--good{background:#fbe4ec;border-color:#f0bccc}.coach-feedback--recovery,.coach-feedback--pending{background:#f7f0df;border-color:#dfcfad}.coach-feedback--adjust{background:#f8e8e6;border-color:#e2bebe}.coach-feedback__heading{grid-template-columns:38px 1fr auto;align-items:center;gap:9px;display:grid}.coach-feedback__emoji{font-size:23px}.coach-feedback__heading>span:nth-child(2){gap:2px;display:grid}.coach-feedback__heading small{color:var(--text-soft);font-size:11px}.coach-feedback__heading strong{font-size:17px}.coach-feedback__heading a{background:#ffffff8c;border-radius:12px;place-items:center;min-width:42px;min-height:42px;display:grid}.coach-feedback>p{margin:13px 0 0;font-size:14px;font-weight:700;line-height:1.55}.coach-feedback>ul{color:var(--text-soft);gap:7px;margin:11px 0 0;padding-left:19px;font-size:13px;line-height:1.5;display:grid}.coach-feedback.is-compact{box-shadow:var(--shadow);border:0}.coach-feedback.is-compact>p{color:var(--text-soft);margin-left:47px;font-size:12px;font-weight:600}.review-history{gap:9px;display:grid}.review-history__item{border:1px solid var(--line);background:#fdf7f9;border-radius:14px;padding:13px}.review-history__item>div{color:var(--accent);align-items:center;gap:7px;display:flex}.review-history__item p{flex-wrap:wrap;gap:7px;margin:10px 0 7px;display:flex}.review-history__item p span{background:var(--surface-soft);border-radius:8px;padding:5px 8px;font-size:12px;font-weight:700}.review-history__item small{color:var(--text-soft);font-size:11px;line-height:1.5}.analysis-entry{border-radius:var(--radius-lg);background:var(--accent-soft);min-height:82px;color:var(--accent);border:1px solid #f0bccc;grid-template-columns:46px 1fr 20px;align-items:center;gap:10px;padding:14px;display:grid}.analysis-entry>span:first-child{background:var(--surface);border-radius:14px;place-items:center;width:44px;height:44px;display:grid}.analysis-entry>span:nth-child(2){gap:4px;display:grid}.analysis-entry small{font-size:11px;font-weight:750}.analysis-entry strong{color:var(--text);font-size:14px;line-height:1.4}.analysis-hero{border-radius:var(--radius-lg);color:#fff;padding:22px;box-shadow:0 12px 28px #c46e8c4d}.analysis-hero--excellent{background:linear-gradient(148deg,#ec8fa9 0%,#f3b3c5 60%,#f6c1d1 100%)}.analysis-hero--normal{background:linear-gradient(148deg,#b39aa4,#c9b3bd)}.analysis-hero--adjust{background:linear-gradient(148deg,#cf8a4e,#e0a876)}.analysis-hero p{color:#ffffffd9;margin-bottom:5px;font-size:12px;font-weight:750}.analysis-hero h2{text-shadow:0 1px 2px #78502833;margin-bottom:8px;font-size:32px}.analysis-hero span{color:#ffffffe6;font-size:13px;line-height:1.55;display:block}.analysis-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.analysis-grid>div{background:var(--surface-soft);border-radius:13px;gap:5px;min-height:70px;padding:11px;display:grid}.analysis-grid small{color:var(--text-soft);font-size:11px}.analysis-grid strong{align-self:end;font-size:16px}.next-step-card{color:var(--text);box-shadow:var(--shadow);border-radius:16px;grid-template-columns:42px 1fr 20px;align-items:center;gap:10px;padding:14px;display:grid}.next-step-card--excellent{background:#fbe4ec;border:1px solid #f0bccc}.next-step-card--normal{background:#f4f0e5;border:1px solid #ddd0ae}.next-step-card--adjust{background:#faeede;border:1px solid #ecc9a8}.next-step-card__icon{width:40px;height:40px;color:var(--accent);background:#ffffff94;border-radius:13px;place-items:center;display:grid}.next-step-card>span:nth-child(2){gap:3px;display:grid}.next-step-card small{color:var(--text-soft);font-size:11px;font-weight:750}.next-step-card strong{font-size:13px;line-height:1.5}.analysis-cautions{color:var(--text-soft);gap:7px;margin:13px 0 0;padding-left:20px;font-size:12px;line-height:1.55;display:grid}.adjustment-options{gap:9px;display:grid}.adjustment-options button{width:100%;min-height:72px;color:var(--text);border:1px solid var(--line);text-align:left;background:#fdf7f9;border-radius:14px;grid-template-columns:38px 1fr 22px;align-items:center;gap:8px;padding:11px;display:grid}.adjustment-options button>span{background:var(--surface-soft);width:36px;height:36px;color:var(--accent);border-radius:12px;grid-row:1/3;place-items:center;display:grid}.adjustment-options button strong{align-self:end;font-size:14px}.adjustment-options button small{color:var(--text-soft);align-self:start;font-size:11px}.adjustment-options button>svg{color:var(--text-soft);grid-area:1/3/3}.adjustment-options button.is-selected{border-color:var(--accent);background:var(--accent-soft)}.adjustment-options button.is-selected>svg{color:var(--success)}.choice-divider{color:var(--text-soft);justify-content:center;align-items:center;gap:7px;font-size:11px;font-weight:750;display:flex}.analysis-link{background:var(--accent-soft);width:100%;min-height:44px;color:var(--accent);border-radius:13px;justify-content:center;align-items:center;gap:7px;margin-top:13px;font-weight:750;display:inline-flex}.goal-empty-card,.profile-goal-entry{border-radius:var(--radius-lg);background:var(--accent-soft);min-height:82px;color:var(--accent);box-shadow:var(--shadow);border:1px solid #f0bccc;grid-template-columns:46px 1fr 20px;align-items:center;gap:10px;padding:14px;display:grid}.goal-empty-card>span:first-child,.profile-goal-entry>span:first-child{background:#fff;border-radius:14px;place-items:center;width:44px;height:44px;display:grid}.goal-empty-card>span:nth-child(2),.profile-goal-entry>span:nth-child(2){gap:3px;display:grid}.goal-empty-card small,.profile-goal-entry small{font-size:11px;font-weight:750}.goal-empty-card strong,.profile-goal-entry strong{color:var(--text);font-size:15px}.goal-empty-card em{color:var(--text-soft);font-size:11px;font-style:normal}.goal-progress-card{border-radius:var(--radius-lg);color:#fff;background:linear-gradient(148deg,#ec8fa9 0%,#f3b3c5 60%,#f6c1d1 100%);padding:17px;box-shadow:0 12px 28px #c46e8c4d}.goal-progress-card__top{justify-content:space-between;align-items:center;gap:10px;display:flex}.goal-progress-card__top>span,.goal-progress-card__top>a{align-items:center;gap:5px;display:inline-flex}.goal-progress-card__top>span{font-size:14px;font-weight:800}.goal-progress-card__top>a{color:#ffffffbf;min-height:36px;padding:5px 6px;font-size:11px}.goal-weight-row{grid-template-columns:repeat(3,1fr);gap:7px;margin:15px 0;display:grid}.goal-weight-row>div{background:#ffffff1a;border-radius:12px;gap:5px;padding:10px;display:grid}.goal-weight-row small{color:#ffffffab;font-size:10px}.goal-weight-row strong{font-size:16px}.goal-progress-meta{color:#ffffffc7;justify-content:space-between;margin-bottom:7px;font-size:11px;display:flex}.goal-progress-track{background:#ffffff2e;border-radius:99px;height:9px;overflow:hidden}.goal-progress-track span{border-radius:inherit;background:#ffe9f0;height:100%;display:block}.goal-stages{grid-template-columns:repeat(3,1fr);gap:6px;margin-top:14px;display:grid}.goal-stage{opacity:.62;background:#ffffff14;border-radius:11px;grid-template-columns:20px 1fr;gap:2px 5px;padding:8px 6px;display:grid}.goal-stage>span{grid-row:1/3;place-items:center;display:grid}.goal-stage small{color:#ffffffa6;font-size:9px}.goal-stage strong{white-space:nowrap;font-size:10px}.goal-stage.is-active{opacity:1;background:#ffffff2b}.goal-stage.is-completed{opacity:1}.goal-stage.is-completed>span{color:#ffd9e5}.goal-form-intro{align-items:center;gap:6px;margin-bottom:15px;display:flex}.stage-summary{gap:8px;display:grid}.stage-summary span{background:var(--surface-soft);min-height:44px;color:var(--accent);border-radius:12px;align-items:center;gap:8px;padding:10px;font-size:13px;font-weight:750;display:flex}.photo-privacy{background:var(--surface-soft);color:var(--text-soft);border-radius:11px;align-items:center;gap:6px;margin-bottom:13px;padding:9px 10px;font-size:11px;display:flex}.photo-actions{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;display:grid}.photo-actions button{width:100%;min-height:92px;color:var(--accent);background:#fdf5f7;border:1px dashed #e5b3c4;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:9px;display:flex}.photo-actions strong{color:var(--text);font-size:13px}.photo-actions small{color:var(--text-soft);font-size:10px}.photo-gallery{grid-template-columns:repeat(3,1fr);gap:7px;margin-top:13px;display:grid}.photo-gallery figure{background:var(--surface-soft);border-radius:12px;min-width:0;margin:0;overflow:hidden}.photo-gallery img{aspect-ratio:3/4;object-fit:cover;width:100%;display:block}.photo-gallery figcaption{color:var(--text-soft);align-items:center;gap:3px;padding:6px;font-size:9px;display:flex}.weight-markers{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.weight-markers>div{background:var(--surface-soft);min-height:66px;color:var(--accent);border-radius:13px;align-items:center;gap:6px;padding:10px;display:flex}.weight-markers span{gap:4px;display:grid}.weight-markers small{color:var(--text-soft);font-size:9px}.weight-markers strong{color:var(--text);font-size:14px}.weight-markers .is-current{background:var(--accent-soft);border:1px solid #f0bccc;justify-content:center}.distance-copy{background:var(--surface-warm);color:var(--text-soft);text-align:center;border-radius:12px;margin:13px 0 0;padding:11px;font-size:13px}.distance-copy strong{color:var(--text);font-size:17px}.weight-history{border-bottom:1px solid var(--line);align-items:flex-end;gap:5px;min-height:92px;margin-top:12px;padding-top:10px;display:flex}.weight-history>div{background:var(--accent-soft);border-radius:8px 8px 0 0;flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;min-width:0;height:55px;padding:6px 2px;display:flex}.weight-history span{font-size:9px;font-weight:750}.weight-history small{color:var(--text-soft);font-size:8px}.trend-goal-empty>a{background:var(--accent-soft);min-height:44px;color:var(--accent);border-radius:13px;justify-content:center;align-items:center;font-weight:750;display:flex}.weight-calendar-entry{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);min-height:76px;box-shadow:var(--shadow);justify-content:space-between;align-items:center;gap:16px;padding:15px 18px;display:flex}.weight-calendar-entry>span:first-child{gap:5px;display:grid}.weight-calendar-entry strong{font-size:16px}.weight-calendar-entry small{color:var(--text-soft);font-size:12px}.weight-calendar-entry>span:last-child{color:var(--accent);white-space:nowrap;font-size:13px;font-weight:750}.weight-month-summary{grid-template-columns:repeat(3,1fr);gap:0;margin:0;display:grid}.weight-month-summary>div{text-align:center;min-width:0;padding:3px 9px}.weight-month-summary>div+div{border-left:1px solid var(--line)}.weight-month-summary dt{color:var(--text-soft);font-size:11px}.weight-month-summary dd{color:var(--text);white-space:nowrap;margin:7px 0 0;font-size:17px;font-weight:800}.weight-calendar-card{padding:16px 10px}.weight-calendar-card .section-card__header{padding:0 8px}.month-switcher{grid-template-columns:repeat(2,38px);gap:6px;display:grid}.month-switcher button{width:38px;min-height:38px;color:var(--text);border:1px solid var(--line);background:0 0;border-radius:11px;place-items:center;padding:0;font-size:23px;line-height:1;display:grid}.weight-calendar__weekdays,.weight-calendar__grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.weight-calendar__weekdays{margin-bottom:7px}.weight-calendar__weekdays span{color:var(--text-soft);text-align:center;font-size:10px;font-weight:750}.weight-calendar__blank,.weight-calendar__day{min-width:0;min-height:72px}.weight-calendar__day{border:1px solid var(--line);text-align:center;background:0 0;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:6px 1px;display:flex}.weight-calendar__day time{color:var(--text-soft);white-space:nowrap;font-size:9px}.weight-calendar__day strong{color:var(--text);white-space:nowrap;font-size:11px;line-height:1}.weight-calendar__change,.weight-calendar__empty{white-space:nowrap;font-size:10px;line-height:1}.weight-calendar__empty,.weight-calendar__change.is-none,.weight-calendar__change.is-same{color:#b39fa6}.weight-calendar__change.is-down{color:var(--success)}.weight-calendar__change.is-up{color:var(--danger)}.weight-calendar__note{color:var(--text-soft);margin:13px 6px 0;font-size:11px;line-height:1.6}.button{border:0;border-radius:14px;justify-content:center;align-items:center;gap:7px;min-height:44px;padding:10px 15px;font-weight:750;transition:transform .15s,opacity .15s,background .15s;display:inline-flex}.button:active{transform:scale(.98)}.button:disabled{cursor:not-allowed;opacity:.5}.button--primary{background:var(--accent);color:#fff}.button--primary:hover{background:var(--accent-strong)}.button--secondary{background:var(--accent-soft);color:var(--accent-strong)}.button--ghost{background:var(--surface-soft);color:var(--text)}.button--danger{background:var(--danger-soft);color:var(--danger)}.button--full{width:100%}.button-row{justify-content:flex-end;gap:9px;display:flex}.form-stack{gap:14px;display:grid}.field{gap:7px;display:grid}.field__label{font-size:13px;font-weight:750}.field__hint{color:var(--text-soft);font-size:12px}.input{width:100%;min-height:48px;color:var(--text);border:1px solid var(--line);background:#fdf7f9;border-radius:13px;outline:none;padding:11px 13px;font-size:16px}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.textarea{resize:vertical;min-height:104px}.checkbox-row{align-items:center;gap:10px;min-height:44px;font-size:14px;display:flex}.checkbox-row input{width:21px;height:21px;accent-color:var(--accent)}.toggle-row{justify-content:space-between;align-items:center;gap:16px;min-height:60px;display:flex}.toggle-row>span{gap:3px;display:grid}.toggle-row small{color:var(--text-soft);line-height:1.4}.toggle-row input{appearance:none;background:#ecd7de;border-radius:99px;width:50px;height:30px;transition:background .2s;position:relative}.toggle-row input:after{content:"";background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .2s;position:absolute;top:4px;left:4px;box-shadow:0 2px 7px #0000002e}.toggle-row input:checked{background:var(--accent)}.toggle-row input:checked:after{transform:translate(20px)}.toggle-row.is-disabled{opacity:.55}.chart-placeholder{border-bottom:1px dashed var(--line);align-items:flex-end;gap:10px;height:92px;margin:8px 4px 0;padding:12px 6px 0;display:flex}.chart-placeholder span{background:var(--surface-soft);border-radius:6px 6px 2px 2px;flex:1;height:18%}.chart-placeholder span:nth-child(2){height:42%}.chart-placeholder span:nth-child(3){height:34%}.chart-placeholder span:nth-child(4){height:65%}.chart-placeholder span:nth-child(5){height:52%}.setting-list{gap:10px;display:grid}.setting-list>*+*{border-top:1px solid var(--line);padding-top:12px}.about-list{gap:0;margin:0 0 16px;display:grid}.about-list>div{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:48px;display:flex}.about-list dt{color:var(--text-soft)}.about-list dd{text-align:right;margin:0;font-weight:650}.data-manager{gap:16px;display:grid}.action-list{gap:8px;display:grid}.action-list button{min-height:60px;color:var(--text);border:0;border-bottom:1px solid var(--line);text-align:left;background:0 0;grid-template-columns:24px 1fr 20px;align-items:center;gap:10px;padding:9px 4px;display:grid}.action-list button>span{gap:3px;display:grid}.action-list small{color:var(--text-soft)}.backup-preview{border-radius:var(--radius-md);background:var(--surface-warm);border:1px solid #dbcdbd;padding:15px}.backup-preview dl{gap:8px;margin:12px 0;display:grid}.backup-preview dl>div{justify-content:space-between;gap:10px;display:flex}.backup-preview dd{margin:0;font-weight:700}.backup-preview>p:not(.eyebrow){color:#6f5b43;font-size:13px;line-height:1.55}.danger-zone{border-top:1px solid var(--line);padding-top:8px}.danger-zone__confirm{border-radius:var(--radius-md);background:var(--danger-soft);padding:14px}.danger-zone__confirm p{color:#7c5555;font-size:13px}.update-prompt{z-index:60;right:16px;bottom:calc(82px + var(--safe-bottom));background:var(--surface);border:1px solid #f0bccc;border-radius:18px;width:calc(100% - 32px);max-width:448px;margin:0 auto;padding:15px;position:fixed;left:16px;box-shadow:0 18px 50px #783c552e}.update-prompt p{color:var(--text-soft);margin:4px 0 12px;font-size:13px}.update-prompt__actions{justify-content:flex-end;gap:8px;display:flex}.toast-region{z-index:80;top:calc(14px + var(--safe-top));pointer-events:none;justify-items:center;gap:8px;display:grid;position:fixed;left:14px;right:14px}.toast{color:#fff;background:#573d47;border-radius:13px;max-width:360px;padding:11px 14px;font-size:14px;font-weight:650;box-shadow:0 12px 30px #0000002b}.toast--success{background:var(--success)}.toast--error{background:var(--danger)}.onboarding{width:min(100%,480px);min-height:100dvh;padding:calc(38px + var(--safe-top)) 24px calc(28px + var(--safe-bottom));background:var(--bg);flex-direction:column;justify-content:center;margin:0 auto;display:flex}.onboarding__mark{background:var(--accent);color:#fff;width:64px;height:64px;box-shadow:var(--shadow);border-radius:22px;place-items:center;margin-bottom:22px;display:grid}.onboarding h1{letter-spacing:-.05em;max-width:330px;margin-bottom:12px;font-size:clamp(32px,10vw,44px);line-height:1.06}.onboarding__lead{color:var(--text-soft);line-height:1.75}.onboarding__features{gap:10px;margin:24px 0;display:grid}.onboarding__features>div{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);align-items:center;gap:13px;min-height:68px;padding:13px;display:flex}.onboarding__features>div>span{gap:3px;display:grid}.onboarding__features small{color:var(--text-soft)}.onboarding__footnote{color:var(--text-soft);text-align:center;margin:12px 0 0;font-size:11px}.app-loading,.fatal-state{background:var(--bg);place-items:center;min-height:100dvh;padding:20px;display:grid}.app-loading span{border:4px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;width:38px;height:38px;animation:.8s linear infinite spin}.fatal-state__card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);width:min(100%,420px);box-shadow:var(--shadow);padding:24px}.fatal-state__card p{color:var(--text-soft);line-height:1.6}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}@keyframes spin{to{transform:rotate(360deg)}}html[data-reduce-motion=true] *,html[data-reduce-motion=true] :before,html[data-reduce-motion=true] :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (width>=700px){body{padding:24px 0}.app-frame,.onboarding{border-radius:28px;min-height:calc(100dvh - 48px);overflow:hidden}.bottom-nav{border-radius:0 0 28px 28px;bottom:24px}}
