:root{font-family:system-ui,-apple-system,"Noto Sans JP",sans-serif;color:#392f2a;background:#f8f2ed;line-height:1.5;--accent:#a85f45;--dark:#68402f;--paper:#fffdfa;--line:#dfd1c8}
*{box-sizing:border-box}
body{margin:0;padding-bottom:76px}
header{position:sticky;top:0;z-index:3;background:rgba(248,242,237,.95);backdrop-filter:blur(8px);padding:10px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}
h1{font-size:1.05rem;margin:0}h2{font-size:1.35rem}h3{margin-bottom:8px}
#status{font-size:.8rem;color:#49744d;margin:0;min-height:1.2em}
main{max-width:680px;margin:auto;padding:14px}.view{display:none}.view.active{display:block}
.card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:16px;margin:12px 0;box-shadow:0 3px 12px #5a38250b}
.settings-form>label,fieldset label{display:block;margin:0 0 16px;font-weight:650}
.record-section{padding:4px 0 8px}.record-section+.record-section{border-top:1px solid var(--line);padding-top:12px}.record-section h3{color:var(--dark);font-size:1.15rem;margin:0 0 12px}
.record-item{display:block;margin:0 0 18px;font-weight:650}.record-item small{display:block;color:#806e64;font-size:.78rem;font-weight:400;margin-top:1px}
.field-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.save-indicator{color:#638164;font-size:.75rem;font-weight:650;opacity:0;transition:opacity .25s,color .25s}.save-indicator.visible{opacity:.55}.save-indicator.just-saved{color:#287532;opacity:1}
input,button{font:inherit}input[type=text],input[type=number],input[type=date],input[type=month]{width:100%;min-height:46px;border:1px solid #cbb9ae;border-radius:10px;background:white;padding:8px;color:inherit}
button,.file-button{min-height:44px;border:1px solid #c9b4a8;border-radius:12px;background:#fff;color:var(--dark);padding:8px 14px;font-weight:700;cursor:pointer}.primary{background:var(--accent);border-color:var(--accent);color:white}.wide{width:100%;margin-top:12px}
.date-nav{display:grid;grid-template-columns:52px 1fr 52px;gap:8px}.date-nav button{font-size:1.6rem}.step{display:grid;grid-template-columns:52px 1fr 52px;gap:7px;margin-top:5px}.step button{font-size:1.3rem}.step input{text-align:center}
fieldset{border:0;padding:0;margin:0 0 18px}legend{font-weight:650;margin-bottom:7px}.chips,.segmented{display:flex;gap:7px;flex-wrap:wrap}.chips button.selected,.segmented button.selected{background:#ead2c5;border-color:var(--accent);color:#633521}
.toggle-row{display:flex!important;align-items:center;justify-content:space-between}.toggle-row input{width:52px;height:28px;accent-color:var(--accent)}
nav{position:fixed;z-index:5;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(4,1fr);padding:7px max(7px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(7px,env(safe-area-inset-left));background:#fff;border-top:1px solid var(--line)}nav button{border:0;background:transparent;padding:6px 3px;min-height:48px}nav button.active{color:var(--accent);background:#f7e7de}
.actions{display:flex;gap:9px;flex-wrap:wrap}.actions>*{flex:1}.file-button{text-align:center;position:relative}.file-button input{position:absolute;inset:0;opacity:0;width:100%}
#report-preview{white-space:pre-wrap;min-height:220px;font-family:inherit}#weight-chart svg{display:block;width:100%;height:auto}.legend{display:flex;gap:16px;font-size:.85rem;justify-content:center}.legend .am{color:#a85f45}.legend .pm{color:#446d88}.legend .goal{color:#698154}
.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;background:var(--paper)}th,td{padding:9px;border-bottom:1px solid var(--line);text-align:right}th:first-child,td:first-child{text-align:left}
.goal-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;align-items:center}.goal-grid input{min-width:0}.repeat-row{display:grid;grid-template-columns:80px 1fr;gap:8px;margin-bottom:7px}.text-list{display:block!important;margin-bottom:7px!important}.empty-chart{padding:60px 0;text-align:center;color:#806e64}
@media(min-width:600px){main{padding:20px}}
