:root{--ink:#17261f;--muted:#6d766f;--paper:#f6f6f0;--card:#fff;--line:#dfe3dc;--green:#2e7655;--lime:#d9ee74;--soft:#edf1e9;--coral:#dc7b64;--shadow:0 18px 50px rgba(28,45,36,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif;-webkit-font-smoothing:antialiased}.page-shell{max-width:1240px;margin:auto;padding:0 20px}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;gap:10px;align-items:center;color:var(--ink);text-decoration:none;font:800 22px Manrope,sans-serif;letter-spacing:-.8px}.brand-mark{width:28px;height:28px;background:var(--ink);border-radius:50%;display:grid;place-items:center}.brand-mark span{width:11px;height:6px;border-left:2px solid var(--lime);border-bottom:2px solid var(--lime);transform:rotate(-45deg);margin-top:-3px}.today-chip{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.intro{padding:52px 0 42px;display:grid;gap:24px}.eyebrow,.section-kicker{margin:0 0 14px;color:var(--green);font-weight:800;font-size:11px;letter-spacing:.16em}.intro h1,.routine-intro h2{font:800 clamp(44px,9vw,82px)/.98 Manrope,sans-serif;letter-spacing:-.055em;margin:0}.intro h1 em,.routine-intro h2 em{color:var(--green);font-style:normal}.intro-copy{color:var(--muted);font-size:17px;line-height:1.65;max-width:420px;margin:0;align-self:end}.entry-card,.chart-card{background:var(--card);border:1px solid #e6e9e2;border-radius:22px;box-shadow:var(--shadow)}.entry-card{padding:24px}.entry-heading,.chart-header,.history-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.entry-heading h2,.chart-header h2,.history-heading h2{font:750 25px Manrope,sans-serif;letter-spacing:-.04em;margin:0}.private-pill{font-size:10px;color:var(--green);background:#edf6ef;border-radius:20px;padding:8px 11px;white-space:nowrap}.weight-form{display:grid;gap:14px;margin-top:24px}.field{display:flex;flex-direction:column;gap:8px;font-weight:700;font-size:12px}.field input{height:56px;border:1px solid #d8ded7;border-radius:12px;background:#fafbf8;color:var(--ink);font:600 16px "DM Sans";padding:0 14px;outline:none;width:100%}.field input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(46,118,85,.12)}.weight-input-wrap{position:relative}.weight-input-wrap input{font-size:21px;padding-right:48px}.weight-input-wrap b{position:absolute;right:15px;top:17px;color:var(--muted)}.save-button{height:56px;align-self:end;border:0;border-radius:12px;background:var(--ink);color:#fff;padding:0 18px;display:flex;align-items:center;justify-content:space-between;font:700 14px "DM Sans";cursor:pointer;transition:.2s}.save-button:hover{background:var(--green);transform:translateY(-1px)}.save-button:active{transform:translateY(0)}.save-button b{color:var(--lime);font-size:22px}.form-note{margin:12px 0 0;color:#8b928c;font-size:11px}.form-message{height:0;overflow:hidden;color:var(--green);font-size:12px;font-weight:700;transition:.2s}.form-message.show{height:24px;padding-top:8px}.stats-grid{display:grid;grid-template-columns:1fr;gap:12px;margin:14px 0}.stat-card{min-height:150px;background:#fff;border:1px solid #e6e9e2;border-radius:18px;padding:22px}.stat-card.dark{background:var(--ink);color:white;border-color:var(--ink)}.stat-card>p{margin:0 0 18px;color:#808a83;font-size:10px;font-weight:800;letter-spacing:.15em}.stat-card.dark>p{color:#b9c5bd}.stat-card>div{display:flex;align-items:baseline;gap:7px}.stat-card strong{font:750 38px Manrope,sans-serif;letter-spacing:-.05em}.stat-card>div>span:not(.trend-icon){color:#89928c}.stat-card small{display:block;margin-top:8px;color:#7b857e;font-size:11px}.stat-card.dark small{color:#b9c5bd}.trend-card>div{justify-content:space-between;align-items:center}.trend-card strong{font-size:25px}.trend-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--soft);font-size:22px;color:var(--green)}.chart-card{padding:24px;margin-bottom:60px}.range-tabs{display:flex;background:var(--soft);padding:3px;border-radius:10px}.range-tabs button{border:0;background:transparent;border-radius:8px;min-width:42px;height:34px;color:var(--muted);font:800 10px "DM Sans";cursor:pointer}.range-tabs button.active{background:#fff;color:var(--ink);box-shadow:0 2px 7px rgba(0,0,0,.08)}.chart-wrap{position:relative;height:290px;margin-top:24px}.chart-wrap canvas{width:100%;height:100%;touch-action:none}.empty-chart{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:repeating-linear-gradient(0deg,transparent,transparent 56px,rgba(223,227,220,.55) 57px)}.empty-chart.hidden{display:none}.empty-chart b{font:700 16px Manrope}.empty-chart p{margin:6px 0;color:var(--muted);font-size:12px}.empty-spark{font-size:46px;color:var(--green);line-height:1}.chart-tooltip{position:absolute;pointer-events:none;background:var(--ink);color:white;padding:8px 10px;border-radius:8px;font-size:11px;transform:translate(-50%,-115%);white-space:nowrap}.chart-legend{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:7px}.chart-legend>span{width:8px;height:8px;border-radius:50%;background:var(--green)}.chart-legend i{font-style:normal;margin-left:auto;color:#969e98}.routine-section{display:grid;gap:34px;padding:56px 0;border-top:1px solid var(--line)}.routine-intro h2{font-size:clamp(35px,6vw,55px)}.routine-intro>p:not(.section-kicker){color:var(--muted);line-height:1.65;font-size:14px;max-width:430px}.routine-progress{margin-top:28px}.routine-progress>span{font-size:11px;color:var(--muted)}.routine-progress>span b{color:var(--ink)}.routine-progress>div{height:6px;background:#e1e5dd;border-radius:6px;margin-top:10px;overflow:hidden}.routine-progress i{display:block;height:100%;width:0;background:var(--green);border-radius:6px;transition:.3s}.routine-list{border-top:1px solid var(--line)}.routine-item{display:grid;grid-template-columns:50px 1fr 42px;gap:12px;align-items:center;padding:17px 0;border-bottom:1px solid var(--line);cursor:pointer}.routine-item .time{font-size:10px;font-weight:800;letter-spacing:.08em;color:var(--green)}.routine-item b{display:block;font:700 14px Manrope}.routine-item small{color:var(--muted);font-size:11px}.check{appearance:none;width:30px;height:30px;border:1px solid #cfd6ce;border-radius:50%;display:grid;place-items:center;cursor:pointer;justify-self:end}.check:checked{background:var(--green);border-color:var(--green)}.check:checked:after{content:"\\2713";color:#fff;font-weight:800}.routine-item:has(.check:checked) b{text-decoration:line-through;color:#8a948d}.history-section{padding:48px 0;border-top:1px solid var(--line)}.text-button{background:none;border:0;color:var(--coral);font:700 11px "DM Sans";cursor:pointer;padding:10px}.history-list{margin-top:20px}.history-row{display:grid;grid-template-columns:1fr auto auto;gap:16px;align-items:center;padding:14px 2px;border-bottom:1px solid var(--line)}.history-row time{font-size:12px;color:var(--muted)}.history-row strong{font:700 15px Manrope}.delete-entry{border:0;background:transparent;color:#9aa19b;font-size:18px;cursor:pointer;width:38px;height:38px;border-radius:50%}.delete-entry:hover{background:#f2e8e5;color:var(--coral)}.history-empty{color:var(--muted);font-size:13px;padding:18px 0}footer{border-top:1px solid var(--line);min-height:150px;display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center;text-align:center}footer span{font:800 20px Manrope}footer p{margin:0;color:var(--muted);font-size:12px}footer small{color:#9ba19c;font-size:10px}
@media(min-width:720px){.page-shell{padding:0 36px}.topbar{height:88px}.intro{grid-template-columns:1.4fr .6fr;padding:72px 0 56px}.weight-form{grid-template-columns:1fr 1fr 1.1fr}.stats-grid{grid-template-columns:repeat(3,1fr)}.chart-card,.entry-card{padding:30px}.routine-section{grid-template-columns:1fr 1.15fr;gap:70px}.routine-intro{position:sticky;top:30px;align-self:start}}
@media(max-width:440px){.private-pill{display:none}.intro h1{font-size:46px}.chart-header{align-items:center}.chart-wrap{height:240px}.chart-legend i{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
