:root{--vc-navy: #0F172A;--vc-navy-raised: #29364F;--vc-rose: #F43F5E;--vc-coral: #FF6B78;--vc-orange: #FF9638;--vc-amber: #FFC247;--vc-teal: #11D7B5;--vc-mint: #9EE6A7;--vc-brand-gradient: linear-gradient(90deg, #F43F5E 0%, #FF6B78 27%, #FF9638 49%, #11D7B5 70%, #9EE6A7 100%);--vc-bg: #FFFFFF;--vc-surface: #FFFFFF;--vc-surface-muted: #F8FAFC;--vc-text: #0F172A;--vc-text-muted: #475569;--vc-border: #CBD5E1;--vc-border-strong: #64748B;--vc-link: #1D4ED8;--vc-focus: #2563EB;--vc-action: #BE123C;--vc-on-action: #FFFFFF;--vc-accent: #F43F5E;--vc-accent-soft: #FFF1F2;--vc-info: #1D4ED8;--vc-success: #166534;--vc-warning: #92400E;--vc-error: #B91C1C;--vc-source-typed: #9F1239;--vc-source-imported: #1D4ED8;--vc-source-calculated: #9D174D;--vc-source-overridden: #7C2D12;--vc-space-1: 4px;--vc-space-2: 8px;--vc-space-3: 12px;--vc-space-4: 16px;--vc-space-5: 20px;--vc-space-6: 24px;--vc-space-8: 32px;--vc-space-10: 40px;--vc-space-12: 48px;--vc-radius-sm: 6px;--vc-radius-md: 10px;--vc-radius-lg: 16px;--vc-radius-xl: 24px;--vc-radius-pill: 999px;--vc-font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--vc-font-size-xs: 12px;--vc-font-size-sm: 14px;--vc-font-size-md: 16px;--vc-font-size-lg: 18px;--vc-font-size-xl: 20px;--vc-font-size-2xl: 24px;--vc-font-size-3xl: 30px;--vc-line-height-tight: 1.2;--vc-line-height-normal: 1.5;--vc-chart-sleep: #2563EB;--vc-chart-mood: #E11D48;--vc-chart-eating: #0F766E;--vc-chart-sugar: #7C3AED;--vc-chart-alcohol: #C2410C;--vc-chart-weight: #475569;--vc-chart-steps: #0891B2;--vc-chart-active-energy: #4D7C0F;--vc-chart-exercise: #9333EA;--vc-chart-stand: #0369A1;--vc-chart-sleep-deep: #3730A3;--vc-chart-sleep-rem: #7C3AED;--vc-chart-sleep-core: #38BDF8}[data-theme=dark]{--vc-bg: #0B1220;--vc-surface: #111C2E;--vc-surface-muted: #172338;--vc-text: #F8FAFC;--vc-text-muted: #CBD5E1;--vc-border: #334155;--vc-border-strong: #64748B;--vc-link: #93C5FD;--vc-focus: #60A5FA;--vc-action: #FB7185;--vc-on-action: #0B1220;--vc-accent: #FB7185;--vc-accent-soft: #3A1D2A;--vc-info: #93C5FD;--vc-success: #86EFAC;--vc-warning: #FCD34D;--vc-error: #FDA4AF;--vc-source-typed: #FDA4AF;--vc-source-imported: #93C5FD;--vc-source-calculated: #F9A8D4;--vc-source-overridden: #FDBA74;--vc-chart-sleep: #93C5FD;--vc-chart-mood: #FDA4AF;--vc-chart-eating: #5EEAD4;--vc-chart-sugar: #C4B5FD;--vc-chart-alcohol: #FDBA74;--vc-chart-weight: #CBD5E1;--vc-chart-steps: #67E8F9;--vc-chart-active-energy: #BEF264;--vc-chart-exercise: #D8B4FE;--vc-chart-stand: #7DD3FC;--vc-chart-sleep-deep: #A5B4FC;--vc-chart-sleep-rem: #C4B5FD;--vc-chart-sleep-core: #7DD3FC}.vc-gradient-text{background:var(--vc-brand-gradient);-webkit-background-clip:text;background-clip:text;color:transparent}:root{color-scheme:light}[data-theme=dark]{color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--vc-bg);color:var(--vc-text);font-family:var(--vc-font-ui);font-size:var(--vc-font-size-md);line-height:var(--vc-line-height-normal);-webkit-text-size-adjust:100%}main{max-width:34rem;margin:0 auto;padding:var(--vc-space-4) var(--vc-space-4) calc(5rem + env(safe-area-inset-bottom))}main.wide{max-width:none;padding-inline:var(--vc-space-2)}h1{font-size:var(--vc-font-size-2xl);line-height:var(--vc-line-height-tight);margin:var(--vc-space-2) 0}h2{font-size:var(--vc-font-size-lg);line-height:var(--vc-line-height-tight);margin:var(--vc-space-6) 0 var(--vc-space-1)}a{color:var(--vc-link)}.muted,.hint{color:var(--vc-text-muted);font-size:var(--vc-font-size-sm)}.hint{margin:var(--vc-space-1) 0}.center{text-align:center}.error{color:var(--vc-error)}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.row{display:flex;align-items:center;justify-content:space-between;gap:var(--vc-space-3);flex-wrap:wrap}button,input{font:inherit;color:inherit}button{min-height:44px;padding:0 var(--vc-space-4);border-radius:var(--vc-radius-md);border:1px solid var(--vc-border-strong);background:var(--vc-surface);cursor:pointer}button.primary{background:var(--vc-action);color:var(--vc-on-action);border-color:var(--vc-action);font-weight:600}button.big{min-height:52px;width:100%;font-size:var(--vc-font-size-lg)}button:disabled{opacity:.6;cursor:default}input{min-height:44px;padding:0 var(--vc-space-3);border-radius:var(--vc-radius-md);border:1px solid var(--vc-border-strong);background:var(--vc-surface);width:100%}:focus-visible{outline:3px solid var(--vc-focus);outline-offset:1px}.nav{position:fixed;left:0;right:0;bottom:0;z-index:5;display:flex;align-items:stretch;background:var(--vc-surface);border-top:1px solid var(--vc-border);padding-bottom:env(safe-area-inset-bottom)}.nav .mark{display:none;width:32px;height:32px;flex:none}.nav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--vc-space-1);min-height:56px;padding:var(--vc-space-2) var(--vc-space-1);text-decoration:none;color:var(--vc-text-muted);font-size:var(--vc-font-size-xs);font-weight:500}.nav a.active{color:var(--vc-action);font-weight:700}.tab-icon{display:inline-flex;width:24px;height:24px}.tab-icon svg{width:24px;height:24px}@media(min-width:900px){.shell{display:grid;grid-template-columns:14rem 1fr;min-height:100vh}.nav{position:sticky;top:0;left:auto;right:auto;bottom:auto;height:100vh;flex-direction:column;align-items:stretch;gap:var(--vc-space-1);padding:var(--vc-space-6) var(--vc-space-3);border-top:0;border-right:1px solid var(--vc-border)}.nav .mark{display:block;margin:0 0 var(--vc-space-4) var(--vc-space-3)}.nav a{flex:none;flex-direction:row;justify-content:flex-start;gap:var(--vc-space-3);min-height:44px;padding:var(--vc-space-2) var(--vc-space-3);border-radius:var(--vc-radius-md);font-size:var(--vc-font-size-md)}.nav a.active{background:var(--vc-action);color:var(--vc-on-action)}main{margin:0;max-width:40rem;padding-bottom:var(--vc-space-6)}main.wide{max-width:none}}.login{padding-top:12vh;display:grid;gap:var(--vc-space-3)}.login form{display:grid;gap:var(--vc-space-3)}.login .logo{display:block;width:min(260px,70%);height:auto;margin:0 auto var(--vc-space-4)}.login .logo-on-dark,[data-theme=dark] .login .logo-on-light{display:none}[data-theme=dark] .login .logo-on-dark{display:block}.checkin{display:grid;gap:var(--vc-space-4)}.field{border:1px solid var(--vc-border);background:var(--vc-surface-muted);border-radius:var(--vc-radius-lg);padding:var(--vc-space-3);margin:0}.field legend{font-weight:600;padding:0 var(--vc-space-1)}.scale{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:2px;margin-bottom:var(--vc-space-2)}.chip{padding:0;min-height:44px;min-width:0;font-size:var(--vc-font-size-md);border-radius:var(--vc-radius-sm)}.chip.on{background:var(--vc-action);color:var(--vc-on-action);border-color:var(--vc-action);font-weight:700}.date input{width:auto;min-height:40px}.submitbar{position:sticky;bottom:calc(56px + env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--vc-bg) 25%);padding:var(--vc-space-4) 0 calc(var(--vc-space-2) + env(safe-area-inset-bottom))}.gridpage .status{font-size:var(--vc-font-size-sm);font-weight:600}.status.saving{color:var(--vc-text-muted)}.status.saved{color:var(--vc-success)}.status.error{color:var(--vc-error)}.gridwrap{overflow:auto;max-height:72vh;border:1px solid var(--vc-border);border-radius:var(--vc-radius-md);background:var(--vc-surface);-webkit-overflow-scrolling:touch}.grid{border-collapse:separate;border-spacing:0;font-size:var(--vc-font-size-sm)}.grid th,.grid td{border-bottom:1px solid var(--vc-border);border-right:1px solid var(--vc-border);padding:0}.grid thead th{position:sticky;top:0;z-index:2;background:var(--vc-surface);padding:var(--vc-space-2) var(--vc-space-1);font-size:var(--vc-font-size-xs);white-space:nowrap;text-align:center}.grid .date{position:sticky;left:0;z-index:1;background:var(--vc-surface);padding:0 var(--vc-space-2);min-width:4.2rem;text-align:left;font-weight:600}.grid thead .date{z-index:3}.yr{display:block;font-size:var(--vc-font-size-xs);color:var(--vc-text-muted);font-weight:400}.cell{position:relative}.cell input{border:0;border-radius:0;background:transparent;min-height:44px;width:4.6rem;padding:0 var(--vc-space-1);text-align:right}.cell.src-health{background:color-mix(in srgb,var(--vc-source-imported) 12%,var(--vc-surface))}.cell.src-derived{background:color-mix(in srgb,var(--vc-source-calculated) 12%,var(--vc-surface))}.cell.src-health:before,.cell.src-derived:before{position:absolute;top:1px;left:3px;font-size:10px;line-height:1;pointer-events:none}.cell.src-health:before{content:"↓";color:var(--vc-source-imported)}.cell.src-derived:before{content:"ƒ";color:var(--vc-source-calculated)}.cell.override input{box-shadow:inset 0 -2px 0 0 var(--vc-source-overridden)}.cell.saving{opacity:.7}.cell.err input,.cell.invalid input{box-shadow:inset 0 0 0 2px var(--vc-error)}.cell input::placeholder{color:var(--vc-text-muted);opacity:.7;font-style:italic}.more{margin-top:var(--vc-space-3)}.more input{width:auto}button.link{background:none;border:0;color:var(--vc-link);text-decoration:underline;min-height:44px}.segmented{display:inline-flex;border:1px solid var(--vc-border-strong);border-radius:var(--vc-radius-md);overflow:hidden}.seg{border:0;border-radius:0;background:var(--vc-surface);min-width:5rem}.seg+.seg{border-left:1px solid var(--vc-border-strong)}.seg.on{background:var(--vc-action);color:var(--vc-on-action);font-weight:600}.notice{border:1px solid var(--vc-warning);background:var(--vc-surface-muted);border-radius:var(--vc-radius-md);padding:var(--vc-space-3)}.quality{width:100%;border-collapse:collapse}.quality th,.quality td{text-align:left;padding:var(--vc-space-2);border-bottom:1px solid var(--vc-border)}.orig{display:block;padding:0 var(--vc-space-1) var(--vc-space-1);font-size:var(--vc-font-size-xs);color:var(--vc-text-muted);text-align:right;white-space:nowrap}.cell.inprogress:after{content:"";position:absolute;top:4px;right:4px;width:6px;height:6px;border-radius:50%;background:var(--vc-warning);pointer-events:none}.columns{margin:var(--vc-space-2) 0}.columns summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600}.columns-list{display:flex;flex-wrap:wrap;gap:var(--vc-space-2) var(--vc-space-4);padding-bottom:var(--vc-space-2)}.columns-list input{width:auto;min-height:0}
