:root{--bg:#f7f7f5;--panel:#fff;--text:#202422;--muted:#6e756f;--border:#dfe3df;--accent:#7d4e45;--accent-soft:#f3e8e4;--period:#c8a4b7}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;font-size:14px}button,input,select{font:inherit}.app{min-height:100vh;display:flex}.side-nav{width:180px;background:#fff;border-right:1px solid var(--border);padding:24px 16px;flex-shrink:0}.app-name{font-size:20px;font-weight:700;margin:0 8px 28px}.side-nav button{display:block;width:100%;border:0;background:transparent;text-align:left;padding:10px 12px;margin-bottom:4px;border-radius:4px;color:var(--muted);cursor:pointer}.side-nav button.active{background:#f0f1ef;color:var(--text);font-weight:700}.main-content{width:100%;min-width:0}.top-nav{height:64px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:center;gap:16px;padding:0 28px;position:sticky;top:0;z-index:5}.top-nav button{border:0;background:transparent;padding:8px;cursor:pointer}.top-nav strong{min-width:230px;text-align:center}.menu-button{display:none}.page{width:min(900px,calc(100% - 48px));margin:0 auto;padding:36px 0 60px}.page-title{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px}.page-title h1{font-size:28px;margin:0 0 6px}.page-title p,.section p{margin:0;color:var(--muted);font-size:13px}.section{background:var(--panel);border:1px solid var(--border);padding:20px;margin-bottom:16px}.section h2{font-size:16px;margin:0 0 5px}.section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.primary,.weight-control button{border:1px solid var(--accent);background:var(--accent);color:#fff;padding:9px 14px;border-radius:4px;cursor:pointer}.weight-section{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:18px}.weight-control{display:flex;align-items:center;border:1px solid var(--border);background:#fff}.weight-control input{width:84px;border:0;outline:0;padding:10px 8px;text-align:right;font-size:18px}.weight-control span{color:var(--muted);padding-right:8px}.weight-control button{border-radius:0;border-width:0 0 0 1px}.saved{color:#39724e;font-size:12px}.form-section h2{margin-bottom:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}.form-grid label,.period-form label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:12px}.form-grid .wide{grid-column:1/-1}.form-grid input,.form-grid select,.period-form input{border:1px solid var(--border);padding:9px;background:#fff;color:var(--text);border-radius:3px;min-width:0}.form-grid small{color:var(--muted)}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.back,.form-actions button,.period-status>button{border:1px solid var(--border);background:#fff;padding:9px 14px;border-radius:4px;cursor:pointer}.form-actions .primary,.period-status>.primary{background:var(--accent);border-color:var(--accent);color:#fff}.todo-section{padding-bottom:6px}.todo-list{margin-top:14px}.exercise-row,.todo-row{width:100%;display:flex;align-items:center;gap:12px;border:0;border-top:1px solid var(--border);background:#fff;text-align:left;padding:14px 4px;cursor:pointer}.todo-text{flex:1 1}.exercise-row small,.exercise-row strong,.todo-row small,.todo-row strong{display:block}.exercise-row small,.todo-row small{color:var(--muted);font-size:12px;margin-top:4px}.checkbox{height:20px;width:20px;border:1px solid #aeb4af;display:flex;align-items:center;justify-content:center;flex-shrink:0}.exercise-row.done .checkbox,.todo-row.done .checkbox{background:#39724e;border-color:#39724e;color:#fff}.exercise-row.done strong,.todo-row.done strong{text-decoration:line-through;color:var(--muted)}.open-label{color:var(--accent);font-size:12px}.empty{padding:24px 0}.period-status{display:flex;justify-content:space-between;align-items:center}.period-form{display:grid;grid-template-columns:180px 1fr auto;gap:18px;align-items:end}.field-label{display:block;color:var(--muted);font-size:12px;margin-bottom:6px}.flow-options{display:grid;grid-template-columns:repeat(3,1fr)}.flow-options button{border:1px solid var(--border);border-right:0;background:#fff;padding:9px;cursor:pointer}.flow-options button:last-child{border-right:1px solid var(--border)}.flow-options button.selected{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.save-flow{height:38px}.legend{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;white-space:nowrap}.legend i{width:18px;height:4px;display:inline-block;margin-left:8px}.line-key{background:var(--accent)}.bar-key{background:var(--period)}.data-chart{height:230px;margin-top:18px;position:relative;padding-left:42px}.data-chart:after,.data-chart:before{content:"";position:absolute;left:42px;right:0;border-top:1px solid #eceeec}.data-chart:before{top:44px}.data-chart:after{top:105px}.data-chart svg{width:100%;height:180px;overflow:visible}.flow-bar{fill:var(--period);opacity:.65}.weight-line{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.axis{position:absolute;left:0;color:var(--muted);font-size:11px}.axis.top{top:7px}.axis.mid{top:68px}.axis.bottom{top:129px}.x-labels{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;padding-top:4px}.history-section h2{margin-bottom:14px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}td,th{border-top:1px solid var(--border);padding:10px 8px;font-size:12px;white-space:nowrap}th{color:var(--muted);font-weight:600}.back{margin-bottom:12px}.exercise-list{padding-bottom:6px}.exercise-row>span:nth-child(2){flex:1 1}.exercise-load{color:var(--muted)}.menu-backdrop{display:none}@media(max-width:700px){.side-nav{position:fixed;left:-190px;top:0;bottom:0;z-index:20;transition:left .18s}.side-nav.open{left:0}.menu-backdrop{display:block;position:fixed;inset:0;background:#0004;border:0;z-index:15}.menu-button{display:block!important;position:absolute;left:12px}.top-nav{padding:0 12px;gap:6px}.top-nav strong{min-width:0;flex:1 1;font-size:13px}.page{width:calc(100% - 24px);padding:24px 0 40px}.page-title{align-items:flex-start;gap:12px}.page-title h1{font-size:24px}.weight-section{grid-template-columns:1fr}.weight-control{width:100%}.weight-control input{flex:1 1}.saved{position:absolute;margin-top:100px}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.period-status{align-items:flex-start;gap:14px}.period-form{grid-template-columns:1fr}.save-flow{width:100%}.section-header{display:block}.legend{margin-top:12px}.data-chart{padding-left:34px;height:215px}.data-chart:after,.data-chart:before{left:34px}.open-label{display:none}.todo-row{padding:14px 0}.exercise-load{display:none}.period-status>button{white-space:nowrap}.top-nav>button:not(.menu-button){padding:8px 4px}}body,html{overflow-x:hidden}.app{min-height:100dvh}@media(min-width:701px) and (max-width:1050px){.side-nav{width:150px;padding:22px 12px}.page{width:calc(100% - 36px);max-width:820px}.top-nav{padding:0 20px}.form-grid{grid-template-columns:1fr 1fr}.form-grid .wide{grid-column:1/-1}.period-form{grid-template-columns:160px 1fr}.save-flow{grid-column:1/-1;justify-self:end}.weight-section{grid-template-columns:1fr auto}.weight-section .saved{grid-column:2}.section{padding:18px}}@media(max-width:700px){.side-nav{left:min(-82vw,-280px);width:min(82vw,280px);padding-top:max(24px,env(safe-area-inset-top))}.side-nav button{min-height:46px;font-size:15px}.menu-backdrop{background:#0006}.menu-button{left:max(8px,env(safe-area-inset-left));font-size:19px}.top-nav{height:58px;padding:0 max(10px,env(safe-area-inset-right)) 0 max(48px,env(safe-area-inset-left));gap:5px}.top-nav strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-nav>button:not(.menu-button){min-width:40px;min-height:40px}.page{width:calc(100% - 24px);padding:22px 0 max(40px,env(safe-area-inset-bottom))}.page-title{margin-bottom:18px}.page-title .primary{min-height:42px}.section{padding:16px;margin-bottom:12px}.weight-section{gap:12px}.weight-control{min-height:44px}.weight-control input{width:auto;min-width:0}.weight-control button{min-height:44px}.saved{position:static;margin:0}.form-grid input,.form-grid select,.period-form input{min-height:44px}.back,.form-actions button,.period-status>button{min-height:42px}.flow-options button,.save-flow{min-height:44px}.chart-section{overflow:hidden}.x-labels{gap:4px}.x-labels span{flex:1 1;text-align:center}.exercise-row,.todo-row{min-height:58px;padding:13px 0}.checkbox{width:24px;height:24px}.table-wrap{margin:0 -16px;padding:0 16px}}@media(max-width:430px){body{font-size:13px}.top-nav strong{font-size:12px}.page{width:calc(100% - 20px)}.page-title{display:block}.page-title .primary{width:100%;margin-top:14px}.period-status{display:block}.period-status>button{width:100%;margin-top:14px}.legend{font-size:11px;white-space:normal;flex-wrap:wrap}.data-chart{height:195px;padding-left:30px}.data-chart:after,.data-chart:before{left:30px}.data-chart svg{height:160px}.x-labels span:nth-child(2n){visibility:hidden}.flow-options{grid-template-columns:1fr}.flow-options button{border-right:1px solid var(--border);border-bottom:0}.flow-options button:last-child{border-bottom:1px solid var(--border)}.todo-row{align-items:flex-start}.todo-text small{line-height:1.4}.exercise-row>span:nth-child(2){min-width:0}.exercise-row strong{white-space:normal}.app-name{margin-bottom:20px}}@media(max-height:500px) and (orientation:landscape) and (max-width:900px){.side-nav{overflow-y:auto}.top-nav{height:50px}.page{padding-top:16px}.page-title{margin-bottom:14px}}