:root{color:#20221f;background:#f7f6f2;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,Hiragino Sans GB,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--background: #f7f6f2;--surface: #ffffff;--text: #20221f;--muted: #8c8d88;--separator: #e7e7e2;--accent: #5f864f;--accent-soft: #edf3e9;--danger: #b64b45;--shadow: 0 18px 50px rgb(36 40 32 / .06)}*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:var(--background)}body{margin:0;min-width:320px;min-height:100vh;min-height:100dvh;background:var(--background)}button,input,select,textarea{color:inherit;font:inherit}button{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgb(95 134 79 / .26);outline-offset:2px}.app-frame{position:relative;width:min(100%,520px);min-height:100vh;min-height:100dvh;margin:0 auto;background:var(--background)}.app-content{min-height:100vh;min-height:100dvh;padding:max(42px,env(safe-area-inset-top)) 20px calc(110px + env(safe-area-inset-bottom))}.today-screen,.standard-screen{animation:screen-in .22s ease-out}.today-header,.screen-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:0 4px 32px}.today-header h1,.screen-header h1{margin:0;color:var(--text);font-size:clamp(30px,9vw,40px);font-weight:720;letter-spacing:-.045em;line-height:1.08}.today-header p,.screen-header p{margin:11px 0 0;color:#666762;font-size:17px;line-height:1.4}.icon-button,.circle-add-button{display:grid;flex:0 0 auto;width:44px;height:44px;place-items:center;border:0;border-radius:50%;background:transparent;cursor:pointer}.icon-button:hover,.circle-add-button:hover{background:#20221f0d}.icon-button svg,.circle-add-button svg{width:22px;height:22px;stroke-width:2}.settings-button{margin-top:-6px;color:#5f605c}.today-measurement-reminder{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px 14px;margin:-8px 0 18px;padding:17px;border:1px solid rgb(95 134 79 / .09);border-radius:21px;background:var(--accent-soft)}.today-reminder-icon{display:grid;width:44px;height:44px;place-items:center;border-radius:14px;background:#ffffffbf;color:var(--accent)}.today-reminder-icon svg{width:22px;height:22px;stroke-width:1.8}.today-reminder-copy{min-width:0}.today-reminder-copy small{color:#6a7764;font-size:11px;font-weight:700;letter-spacing:.04em}.today-reminder-copy h2{margin:3px 0 0;color:#2f4029;font-size:19px;letter-spacing:-.025em}.today-reminder-copy p{margin:5px 0 0;color:#657060;font-size:13px;line-height:1.45}.today-reminder-action{min-height:42px;grid-column:1 / -1;border:0;border-radius:13px;background:var(--accent);color:#fff;cursor:pointer;font-size:14px;font-weight:650}.today-reminder-action:hover{background:#527542}.habit-list{overflow:hidden;border:1px solid rgb(32 34 31 / .035);border-radius:26px;background:var(--surface);box-shadow:var(--shadow)}.habit-row{display:grid;width:100%;min-height:118px;grid-template-columns:60px 1fr 42px;align-items:center;gap:18px;padding:18px 22px;border:0;background:transparent;cursor:pointer;text-align:left}.habit-row+.habit-row{position:relative}.habit-row+.habit-row:before{position:absolute;top:0;right:22px;left:100px;height:1px;background:var(--separator);content:""}.habit-row:hover{background:#fafaf8}.habit-row:active{background:#f4f4f0}.habit-icon{display:grid;width:60px;height:60px;place-items:center;border-radius:50%;background:#f3f3f1;color:#595a56}.habit-icon.is-complete{background:var(--accent-soft);color:var(--accent)}.habit-icon svg{width:28px;height:28px;stroke-width:1.8}.habit-copy{display:grid;min-width:0;gap:7px}.habit-copy strong{overflow:hidden;color:var(--text);font-size:21px;font-weight:680;letter-spacing:-.025em;text-overflow:ellipsis;white-space:nowrap}.habit-copy>span{overflow:hidden;color:var(--muted);font-size:15px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.habit-status{display:grid;width:34px;height:34px;place-items:center;border:2px solid #d8d9d5;border-radius:50%}.habit-status.is-complete{border-color:transparent;background:var(--accent-soft);color:var(--accent)}.habit-status svg{width:19px;height:19px;stroke-width:2.4}.daily-progress{margin:26px 0 0;color:#6b6c68;font-size:17px;text-align:center}.daily-progress strong{color:var(--text);font-size:20px;font-weight:620}.daily-progress.is-complete strong{color:var(--accent)}.gentle-hint{margin:18px 0 0;color:#a0a19c;font-size:14px;text-align:center}.journal-entry{display:flex;width:100%;min-height:76px;align-items:center;gap:15px;margin:24px 0 0;padding:13px 17px;border:1px solid #e2e2dd;border-radius:18px;background:transparent;color:#5e605b;cursor:pointer;text-align:left}.journal-entry:hover{background:#ffffff8f}.journal-entry>svg{width:26px;height:26px;stroke-width:1.7}.journal-entry span{display:grid;gap:3px}.journal-entry strong{color:#41423e;font-size:16px}.journal-entry small{color:var(--muted);font-size:13px}.bottom-nav{position:fixed;z-index:20;right:max(0px,calc((100vw - 520px)/2));bottom:0;left:max(0px,calc((100vw - 520px)/2));display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgb(32 34 31 / .09);background:#fafaf8eb;padding:8px 12px max(8px,env(safe-area-inset-bottom));backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.bottom-nav button{display:grid;min-height:58px;place-items:center;gap:4px;border:0;background:transparent;color:#777874;cursor:pointer}.bottom-nav button.is-active{color:var(--accent)}.bottom-nav svg{width:24px;height:24px;stroke-width:2}.bottom-nav span{font-size:12px;font-weight:560}.screen-header{align-items:center;margin-bottom:28px}.screen-header.with-action{align-items:flex-start}.circle-add-button{margin-top:-2px;background:var(--accent);color:#fff}.circle-add-button:hover{background:#527542}.history-list,.measurement-list{overflow:hidden;border-radius:22px;background:var(--surface);box-shadow:var(--shadow)}.history-item{padding:20px}.history-item+.history-item{border-top:1px solid var(--separator)}.history-date{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.history-date strong{font-size:16px}.history-date span{color:var(--accent);font-size:13px;font-weight:600}.history-item>p{margin:14px 0 0;color:#555650;font-size:15px;line-height:1.6}.history-item>img{width:100%;max-height:300px;margin-top:15px;border-radius:14px;object-fit:cover}.history-empty-detail{display:flex;align-items:center;gap:8px;margin-top:14px;color:#aaa9a5;font-size:13px}.history-empty-detail svg{width:17px}.empty-state{display:grid;min-height:360px;place-content:center;justify-items:center;padding:30px;text-align:center}.empty-state h2{margin:0;font-size:21px}.empty-state p{max-width:260px;margin:10px 0 24px;color:var(--muted);font-size:15px;line-height:1.55}.growth-summary{margin-bottom:18px;padding:24px;border-radius:22px;background:var(--accent-soft)}.growth-summary>span{color:#64705f;font-size:14px}.growth-summary>strong{display:block;margin-top:8px;color:#31422b;font-size:42px;letter-spacing:-.04em}.growth-summary>strong small{font-size:17px;font-weight:600}.growth-summary p{margin:8px 0 0;color:#64705f;font-size:14px}.measurement-prompt{display:grid;grid-template-columns:48px minmax(0,1fr);gap:15px;margin-bottom:22px;padding:22px;border:1px solid rgb(95 134 79 / .08);border-radius:24px;background:var(--accent-soft);box-shadow:var(--shadow)}.measurement-prompt.is-complete{background:#f0f1ed;box-shadow:none}.prompt-icon{display:grid;width:48px;height:48px;place-items:center;border-radius:15px;background:#ffffffb8;color:var(--accent)}.prompt-icon svg{width:24px;height:24px;stroke-width:1.8}.prompt-copy{min-width:0}.prompt-copy>span,.section-heading span,.reference-panel>span{color:#6a7764;font-size:12px;font-weight:700;letter-spacing:.04em}.prompt-copy h2{margin:5px 0 0;color:#2f4029;font-size:25px;letter-spacing:-.035em}.prompt-copy p{margin:8px 0 0;color:#657060;font-size:14px;line-height:1.55}.prompt-action{grid-column:1 / -1;margin-top:3px}.latest-growth,.reference-panel{margin-bottom:22px;padding:22px;border-radius:24px;background:var(--surface);box-shadow:var(--shadow)}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.section-heading h2,.reference-panel h2{margin:4px 0 0;font-size:21px;letter-spacing:-.025em}.section-heading>small{color:var(--muted);font-size:12px;text-align:right}.growth-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:20px}.growth-metrics>div{min-width:0}.growth-metrics>div+div{margin-left:18px;padding-left:18px;border-left:1px solid var(--separator)}.growth-metrics span{color:var(--muted);font-size:13px}.growth-metrics strong{display:block;margin-top:5px;font-size:clamp(27px,8vw,36px);letter-spacing:-.045em;white-space:nowrap}.growth-metrics strong small{font-size:14px;font-weight:650;letter-spacing:0}.growth-metrics p{margin:7px 0 0;color:#667061;font-size:13px}.measurement-context{margin:20px 0 0;padding-top:16px;border-top:1px solid var(--separator);color:var(--muted);font-size:12px;line-height:1.6}.growth-section{margin:28px 0 22px}.growth-section>.section-heading{margin:0 4px 13px}.trend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.trend-card{min-width:0;padding:16px;border-radius:20px;background:var(--surface);box-shadow:var(--shadow)}.trend-card header,.trend-card footer{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.trend-card header span,.trend-card footer{color:var(--muted);font-size:11px}.trend-card header strong{font-size:14px}.trend-card svg{display:block;width:100%;margin:9px 0 4px;overflow:visible}.trend-card svg line{stroke:#e5e8e1;stroke-width:1}.trend-card svg polyline{fill:none;stroke:var(--accent);stroke-linecap:round;stroke-linejoin:round;stroke-width:2.5}.trend-card svg circle{fill:var(--surface);stroke:var(--accent);stroke-width:2}.reference-panel{background:#f2f3ef;box-shadow:none}.reference-panel p{margin:14px 0 0;color:#5f625b;font-size:14px}.reference-panel strong{display:block;margin-top:7px;color:#3d4939;font-size:15px}.reference-panel small{display:block;margin-top:14px;color:var(--muted);font-size:11px;line-height:1.55}.first-record-note{margin:18px 8px 0;color:var(--muted);font-size:13px;line-height:1.6;text-align:center}.measurement-list article{display:grid;min-height:76px;grid-template-columns:42px 1fr auto;align-items:center;gap:14px;padding:13px 18px}.measurement-list article+article{border-top:1px solid var(--separator)}.measurement-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:50%;background:#f2f3ef;color:#62655d}.measurement-icon svg{width:21px}.measurement-list article>span:nth-child(2){display:grid;gap:4px}.measurement-list article strong{font-size:16px}.measurement-list article small,.measurement-weight{color:var(--muted);font-size:13px}.sheet-layer{position:fixed;z-index:50;top:0;right:0;bottom:0;left:0;display:grid;align-items:end;background:#13141247;animation:fade-in .18s ease-out}.sheet{width:min(100%,520px);max-height:min(86vh,760px);margin:0 auto;overflow:auto;border-radius:28px 28px 0 0;background:#fbfbf9;box-shadow:0 -16px 50px #0000001f;animation:sheet-up .24s cubic-bezier(.22,.8,.25,1)}.sheet-handle{width:38px;height:5px;margin:10px auto 2px;border-radius:10px;background:#d7d7d2}.sheet-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 20px 12px}.sheet-header h2{margin:0;font-size:25px;letter-spacing:-.03em}.sheet-header p{margin:6px 0 0;color:var(--muted);font-size:14px}.sheet-content{display:grid;gap:18px;padding:10px 20px 24px}.sheet-footer{position:sticky;bottom:0;padding:12px 20px max(16px,env(safe-area-inset-bottom));border-top:1px solid var(--separator);background:#fbfbf9f0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.field{display:grid;gap:9px}.field>span,.choice-field legend{color:#5e605a;font-size:14px;font-weight:600}.field>span em{margin-left:6px;color:var(--accent);font-size:11px;font-style:normal;font-weight:650}.field input,.field select,.field textarea{width:100%;min-height:50px;padding:12px 14px;border:1px solid #dddeda;border-radius:13px;background:var(--surface);font-size:16px;outline:0}.field textarea{resize:vertical}.choice-field{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0;padding:0;border:0}.choice-field legend{grid-column:1 / -1;margin-bottom:1px}.choice-field label{cursor:pointer}.choice-field input{position:absolute;opacity:0;pointer-events:none}.choice-field span{display:grid;min-height:44px;place-items:center;padding:8px;border:1px solid #dddeda;border-radius:12px;background:var(--surface);color:#696a66;font-size:13px;text-align:center}.choice-field input:checked+span{border-color:#acc2a1;background:var(--accent-soft);color:#3f6531;font-weight:600}.neck-exercise-moves{display:grid;gap:10px;margin:0;padding:0;counter-reset:neck-move;list-style:none}.neck-exercise-moves li{display:grid;min-height:54px;grid-template-columns:34px 1fr;align-items:center;gap:12px;padding:10px 14px;border:1px solid #e2e3de;border-radius:15px;background:var(--surface);color:#4d5049;font-size:15px;counter-increment:neck-move}.neck-exercise-moves li:before{display:grid;width:30px;height:30px;place-items:center;border-radius:50%;background:var(--accent-soft);color:var(--accent);content:counter(neck-move);font-size:13px;font-weight:700}.primary-button,.secondary-button,.danger-button{display:inline-flex;min-height:50px;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border:0;border-radius:14px;cursor:pointer;font-size:16px;font-weight:650}.primary-button{width:100%;background:var(--accent);color:#fff}.primary-button:disabled{background:#c7ccc3;cursor:default}.secondary-button{background:#efefec;color:#555650}.secondary-button svg{width:18px}.danger-button{width:100%;margin-top:12px;background:#faecea;color:var(--danger)}.photo-picker{display:grid;min-height:112px;place-items:center;align-content:center;gap:8px;border:1px dashed #cfd0ca;border-radius:16px;background:var(--surface);color:#777873;cursor:pointer}.photo-picker svg{width:26px}.photo-picker input{position:absolute;opacity:0;pointer-events:none}.photo-preview{display:grid;gap:10px;justify-items:start}.photo-preview img{width:100%;max-height:300px;border-radius:16px;object-fit:cover}.settings-note{padding:16px;border-radius:16px;background:var(--surface)}.settings-note strong{font-size:15px}.settings-note p{margin:7px 0 0;color:var(--muted);font-size:14px;line-height:1.55}.logout-button{width:100%;min-height:50px;border:0;border-radius:14px;background:#efefec;color:#555650;cursor:pointer;font-size:16px;font-weight:650}.sync-status{position:relative;z-index:30;width:fit-content;max-width:calc(100% - 40px);margin:8px auto 0;display:flex;flex-wrap:wrap;min-height:34px;align-items:center;gap:10px;padding:7px 12px;border:1px solid rgb(79 103 67 / .12);border-radius:999px;background:#fffffff0;box-shadow:0 8px 24px #2f352b1a;color:#5b6357;font-size:13px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.sync-status.is-error{color:#8c5b50}.sync-status button{padding:2px 0;border:0;background:transparent;color:var(--accent);cursor:pointer;font:inherit;font-weight:700}.login-screen,.auth-loading{display:grid;min-height:100dvh;place-items:center;padding:max(24px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom));background:radial-gradient(circle at 50% 12%,rgb(222 234 216 / .72),transparent 38%),#f5f4ef}.login-panel{width:min(100%,390px);padding:34px 28px 28px;border:1px solid rgb(75 91 65 / .08);border-radius:28px;background:#ffffffe6;box-shadow:0 22px 60px #343a2f17;text-align:center;animation:screen-in .28s ease-out both}.login-mark,.auth-loading-mark{display:grid;width:68px;height:68px;margin:0 auto 18px;place-items:center;border-radius:22px;background:var(--accent);color:#fff;font-size:18px;font-weight:750;letter-spacing:.08em}.login-eyebrow{color:#5f8051;font-size:13px;font-weight:700;letter-spacing:.08em}.login-panel h1{margin:10px 0 8px;font-size:clamp(28px,8vw,34px);letter-spacing:-.04em}.login-panel>p{margin:0 auto 26px;color:var(--muted);font-size:15px;line-height:1.6}.login-panel form{display:grid;gap:16px;text-align:left}.login-panel small{display:block;margin-top:20px;color:#92938d;font-size:12px}.login-error{margin:-4px 0 0;color:var(--danger);font-size:14px}.auth-loading{align-content:center;gap:4px;color:var(--muted);font-size:14px}@keyframes screen-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}}@keyframes sheet-up{0%{transform:translateY(24px);opacity:0}}@media(min-width:700px){body{background:#ebeae5}.app-frame{box-shadow:0 0 60px #27282314}}@media(max-width:360px){.app-content{padding-right:14px;padding-left:14px}.habit-row{min-height:104px;grid-template-columns:52px 1fr 34px;gap:13px;padding:14px 16px}.habit-icon{width:52px;height:52px}.habit-row+.habit-row:before{right:16px;left:81px}.trend-grid{grid-template-columns:1fr}.measurement-prompt,.latest-growth,.reference-panel{padding:18px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.child-selector{display:flex;width:min(100%,520px);margin:0 auto;box-sizing:border-box;align-items:center;justify-content:center;gap:12px;padding:10px 20px;font-size:14px;color:#53635b;background:#f8faf6}.child-selector select{max-width:220px;padding:7px 12px;border:1px solid #d9e3d8;border-radius:10px;background:#fff;color:inherit;font:inherit}
