:root{--bg: oklch(95% .018 80);--bg2: oklch(92% .018 80);--bg3: oklch(88% .02 80);--card: oklch(97% .015 80);--input-bg: oklch(90% .02 80);--border: oklch(82% .018 70);--text: oklch(15% .015 70);--text-mid: oklch(45% .015 70);--text-dim: oklch(65% .01 70);--accent: oklch(32% .07 50);--accent-dim: oklch(32% .07 50 / .12);--danger: oklch(65% .18 25)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overscroll-behavior:none}body{font-family:DM Sans,system-ui,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{font-family:inherit;cursor:pointer}.app-shell{min-height:100%;background:var(--bg);display:flex;flex-direction:column;width:100%}@media (min-width: 720px){body{min-height:100vh;display:flex;justify-content:center;align-items:center;padding:40px 24px;background:radial-gradient(1200px 600px at 15% 10%,oklch(96% .03 70 / .9),transparent 60%),radial-gradient(900px 500px at 90% 90%,oklch(88% .04 60 / .7),transparent 55%),linear-gradient(180deg,#f3eadd,#eadbcd);background-attachment:fixed}.app-shell{width:440px;flex:none;height:min(860px,calc(100vh - 80px));min-height:680px;border-radius:32px;overflow:hidden;border:1px solid oklch(82% .018 70 / .5);box-shadow:0 1px #fff9 inset,0 30px 60px -20px #2c1e1340,0 12px 24px -12px #2c1e1326}}@media (min-width: 1100px){body:before{content:"tare";position:fixed;top:48px;left:56px;font-size:22px;font-weight:300;letter-spacing:-.02em;color:var(--accent);opacity:.7}body:after{content:"weigh yourself every morning. watch the pattern.";position:fixed;bottom:48px;left:56px;max-width:240px;font-size:13px;line-height:1.5;color:var(--text-mid);opacity:.65}}.screen{flex:1;display:flex;flex-direction:column;min-height:0}.scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.signin{flex:1;display:flex;flex-direction:column;padding:60px 32px calc(52px + env(safe-area-inset-bottom));background:var(--bg)}.signin-hero{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.logo-tile{width:64px;height:64px;border-radius:20px;background:var(--accent);display:flex;align-items:center;justify-content:center;margin-bottom:8px}.wordmark{font-size:36px;font-weight:300;letter-spacing:-.03em;color:var(--text)}.tagline{font-size:14px;color:var(--text-mid);font-weight:400;text-align:center;max-width:220px;line-height:1.5}.g-btn{width:100%;height:52px;border-radius:14px;background:#fff;border:1.5px solid var(--border);display:flex;align-items:center;justify-content:center;gap:10px;color:#333;font-size:15px;font-weight:500;transition:background .15s}.g-btn:disabled{background:var(--bg3);cursor:default}.signin-fine{text-align:center;font-size:11px;color:var(--text-dim);margin-top:12px}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--border);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.err-banner{background:#e858541f;color:var(--danger);padding:10px 14px;border-radius:10px;font-size:13px;margin-top:12px;text-align:center}.section-pad{padding:48px 28px 52px;display:flex;flex-direction:column;flex:1}.kicker{font-size:11px;font-weight:600;letter-spacing:.1em;color:var(--text-dim);text-transform:uppercase;margin-bottom:12px}.h1{font-size:28px;font-weight:300;color:var(--text);letter-spacing:-.02em;margin-bottom:8px}.sub{font-size:14px;color:var(--text-mid)}.unit-row{display:flex;gap:12px;margin:40px 0}.unit-btn{flex:1;height:64px;border-radius:16px;background:var(--input-bg);border:1.5px solid var(--border);color:var(--text);font-size:18px;font-weight:500;transition:background .15s,color .15s,border-color .15s}.unit-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.primary-btn{width:100%;height:52px;border-radius:14px;background:var(--accent);border:none;color:#fff;font-size:15px;font-weight:500;transition:opacity .15s}.primary-btn:disabled{opacity:.5;cursor:default}.picker{flex:1;display:flex;align-items:center;justify-content:center}.picker-row{display:flex;align-items:flex-end;gap:6px}.picker-col{display:flex;flex-direction:column;align-items:center;gap:12px}.picker-big{font-size:72px;font-weight:300;color:var(--text);letter-spacing:-.04em;line-height:1;min-width:110px;text-align:center;font-variant-numeric:tabular-nums}.picker-big.dim{color:var(--text-mid);min-width:44px}.picker-dot{font-size:72px;font-weight:300;color:var(--text-dim);padding-bottom:28px}.picker-unit{font-size:22px;font-weight:400;color:var(--text-dim);padding-bottom:32px;margin-left:4px}.adj{width:44px;height:44px;border-radius:12px;background:var(--input-bg);border:1.5px solid var(--border);color:var(--text);font-size:22px;font-weight:300;display:flex;align-items:center;justify-content:center}.home-header{padding:28px 24px 16px}.home-date{font-size:12px;color:var(--text-dim);font-weight:500;margin-bottom:4px}.home-greeting{font-size:22px;font-weight:300;color:var(--text);letter-spacing:-.02em}.stat-row{display:flex;gap:10px;padding:0 24px 20px}.stat{flex:1;background:var(--card);border-radius:14px;padding:12px 10px;border:1px solid var(--border)}.stat-label{font-size:10px;color:var(--text-dim);font-weight:500;margin-bottom:4px;text-transform:uppercase;letter-spacing:.06em}.stat-val{font-size:14px;font-weight:500;color:var(--text)}.stat-val.good{color:var(--accent)}.stat-val.bad{color:var(--danger)}.entry-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:0 32px}.entry-label{font-size:13px;color:var(--text-mid);font-weight:500}.btn-wrap{padding:16px 24px calc(24px + env(safe-area-inset-bottom))}.log-btn{width:100%;height:54px;border-radius:16px;background:var(--accent);border:none;color:#fff;font-size:16px;font-weight:500;letter-spacing:-.01em;transition:opacity .15s}.log-btn:disabled{opacity:.5;cursor:default}.logged{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:32px;text-align:center}.logged-tile{width:64px;height:64px;border-radius:20px;background:var(--accent-dim);display:flex;align-items:center;justify-content:center}.logged-h{font-size:24px;font-weight:300;color:var(--text);letter-spacing:-.02em}.logged-val{font-size:42px;font-weight:300;color:var(--accent);letter-spacing:-.03em}.logged-val .unit{font-size:20px;color:var(--text-mid)}.logged-sub{font-size:13px;color:var(--text-mid)}.ghost-btn{margin-top:8px;height:44px;padding:0 24px;border-radius:12px;background:var(--input-bg);border:1.5px solid var(--border);color:var(--text-mid);font-size:14px;font-weight:500}.range-tabs{display:flex;gap:8px;padding:0 24px 20px}.range-tab{flex:1;height:32px;border-radius:8px;border:1.5px solid var(--border);background:var(--input-bg);color:var(--text-mid);font-size:12px;font-weight:500;transition:color .15s,background .15s,border-color .15s}.range-tab.active{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.chart-card{margin:0 20px 24px;background:var(--card);border-radius:20px;padding:20px 12px 16px;border:1px solid var(--border)}.stats-grid{padding:0 24px 16px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.stats-grid .stat{flex:unset;padding:14px 16px;border-radius:14px}.stats-grid .stat-val{font-size:18px;font-weight:400}.history{padding:0 24px 32px}.history-title{font-size:11px;font-weight:500;color:var(--text-mid);margin-bottom:12px;text-transform:uppercase;letter-spacing:.06em}.history-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border)}.history-label{font-size:13px;color:var(--text-mid)}.history-right{display:flex;align-items:center;gap:10px}.history-delta{font-size:12px;font-weight:500}.history-delta.good{color:var(--accent)}.history-delta.bad{color:var(--danger)}.history-val{font-size:15px;font-weight:400;color:var(--text);font-variant-numeric:tabular-nums}.empty-state{text-align:center;padding:40px 24px;color:var(--text-dim);font-size:14px}.settings-header{padding:28px 24px 16px}.settings-h{font-size:22px;font-weight:300;color:var(--text);letter-spacing:-.02em}.profile-card{margin:0 24px 20px;background:var(--card);border-radius:20px;padding:16px 20px;border:1px solid var(--border);display:flex;align-items:center;gap:14px}.avatar{width:48px;height:48px;border-radius:24px;background:var(--accent-dim);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:500;color:var(--accent);overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.profile-name{font-size:16px;font-weight:500;color:var(--text)}.profile-email{font-size:13px;color:var(--text-mid)}.settings-section{padding:0 24px}.settings-kicker{font-size:11px;font-weight:600;color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--border)}.settings-label{font-size:15px;color:var(--text)}.seg{display:flex;gap:6px}.seg-btn{height:28px;padding:0 10px;border-radius:8px;background:var(--input-bg);border:1px solid var(--border);color:var(--text-mid);font-size:12px;font-weight:500}.seg-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.toggle{width:44px;height:26px;border-radius:13px;background:var(--bg3);position:relative;transition:background .2s}.toggle.on{background:var(--accent)}.toggle-knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:10px;background:#fff;box-shadow:0 1px 4px #1c140c33;transition:left .2s}.toggle.on .toggle-knob{left:21px}.signout{padding:16px 0;color:var(--danger);font-size:15px;background:none;border:none;text-align:left;width:100%}.footer{padding:40px 24px calc(24px + env(safe-area-inset-bottom));text-align:center;font-size:12px;color:var(--text-dim)}.nav{display:flex;background:var(--bg);border-top:1px solid var(--border);padding:8px 0 calc(4px + env(safe-area-inset-bottom))}.nav-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;background:none;border:none;color:var(--text-dim);padding:4px 0;transition:color .15s}.nav-btn.active{color:var(--accent)}.nav-label{font-size:10px;font-weight:400;letter-spacing:.04em;text-transform:capitalize}.nav-btn.active .nav-label{font-weight:600}.fullscreen-load{flex:1;display:flex;align-items:center;justify-content:center;background:var(--bg)}
