:root{--ink:#17243b;--text:#202d43;--muted:#53627a;--canvas:#f5f7fb;--surface:#fff;--border:#dbe2ed;--primary:#3157d5;--primary-hover:#2545b5;--primary-soft:#edf1ff;--teal:#137c70;--teal-soft:#e8f5f1;--warning:#865500;--warning-soft:#fff4d6;--danger:#b42336;--danger-soft:#fff0f2;--focus:#3157d5;--radius-sm:6px;--radius-control:8px;--radius-card:12px;--radius-dialog:16px;--shadow-dialog:0 16px 48px rgb(23 36 59 / 16%);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-12:48px;--font-ui:'Inter',ui-sans-serif,system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--text);font:400 16px/1.5 var(--font-ui);font-variant-numeric:tabular-nums}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{touch-action:manipulation}button,a{transition:background-color 140ms,color 140ms}button{cursor:pointer}svg{width:20px;height:20px;flex-shrink:0}h1,h2,h3,p{margin:0}h1{font-size:28px;line-height:1.2;font-weight:650;letter-spacing:-.025em;color:var(--ink)}h2{font-size:18px;line-height:1.3;font-weight:600;color:var(--ink)}h3{font-size:16px;font-weight:600}p+p{margin-top:12px}strong{font-weight:600}small,.meta{font-size:13px;line-height:1.4;color:var(--muted)}.muted{color:var(--muted)}.eyebrow{font-size:12px;font-weight:600;letter-spacing:.12em;color:var(--muted);margin-bottom:8px}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;left:16px;top:-60px;padding:12px;background:#fff;z-index:100}.skip:focus{top:12px}.brand{display:flex;gap:10px;align-items:center;font-size:26px;font-weight:750;letter-spacing:-.04em;color:var(--ink)}.brand svg{height:28px;width:28px;fill:var(--primary)}.sidebar{width:224px;background:var(--ink);color:#fff;position:fixed;inset:0 auto 0 0;padding:32px 16px 20px;display:flex;flex-direction:column}.sidebar .brand{color:white;padding-left:12px}.sidebar .brand svg{fill:white}.brand-link:hover{text-decoration:none}.workspace-label{font-size:12px;letter-spacing:.12em;color:#b9c5d8;padding:40px 14px 12px}.sidebar nav{display:grid;gap:6px}.sidebar nav a,.settings-link{color:#c7d1e2;display:flex;align-items:center;gap:12px;min-height:46px;padding:10px 14px;border-radius:8px;font-size:14px;position:relative}.sidebar nav a:hover,.settings-link:hover{background:#243550;text-decoration:none;color:white}.sidebar nav a.active{background:#293c5e;color:white}.sidebar nav a.active:before{content:'';position:absolute;left:0;top:12px;bottom:12px;width:3px;background:#8faaff;border-radius:3px}.sidebar-bottom{margin-top:auto;padding-top:32px}.account{margin:16px 8px 0;padding-top:20px;border-top:1px solid #3d4c64;display:flex;gap:10px;align-items:center;min-width:0}.account>div{min-width:0;overflow-wrap:anywhere}.account strong{font-size:14px}.account small{display:block;color:#b9c5d8;font-size:12px}.avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#344c70;flex-shrink:0}.main{margin-left:224px;padding:32px;max-width:1424px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px}.button,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border:1px solid var(--border);border-radius:8px;background:var(--surface);font-size:14px;font-weight:600;color:var(--text);text-align:center}.button:hover,.icon-button:hover{background:var(--primary-soft);text-decoration:none}.primary{background:var(--primary);color:#fff;border-color:var(--primary)}.primary:hover{background:var(--primary-hover);color:#fff}.danger{color:var(--danger);border-color:#e8b5bd}.icon-button{min-width:44px;padding:6px;font-size:24px}.text-button{border:0;background:none;color:var(--primary);font-size:14px;font-weight:600;padding:10px;min-height:44px}.date-strip{display:flex;align-items:center;gap:8px;margin-bottom:24px}.date-form{display:flex;gap:4px;align-items:center}.date-form input{width:170px;background:var(--surface);font-size:14px}.date-label{font-size:14px;color:var(--muted);margin-left:auto}.today-button{margin-left:4px}.card{padding:20px;background:var(--surface);border:1px solid var(--border);border-radius:12px;min-width:0}.card p{overflow-wrap:anywhere}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.summary-card{color:var(--text);min-height:166px;display:block}.summary-card:hover{text-decoration:none;border-color:#aabbe8}.card-label{display:flex;gap:8px;align-items:center;font-size:14px;font-weight:500;color:var(--muted);margin-bottom:18px}.card-label svg{color:var(--primary)}.stat{font-size:30px;font-weight:650;line-height:1.15;letter-spacing:-.03em}.stat span{font-size:14px;font-weight:400;letter-spacing:normal}.summary-card p.muted{font-size:13px;margin-top:12px}.empty-stat{font-size:24px;letter-spacing:-.02em}.content-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(250px,1fr);gap:24px;align-items:start}.context-stack{display:grid;gap:24px}.context-stack .card>h2,.context-stack .card>.section-heading{margin-bottom:12px}.context-stack .card>a{display:inline-flex;align-items:center;min-height:44px;margin-top:4px;font-size:14px;font-weight:600}.privacy-card>svg{color:var(--teal);width:24px;height:24px;margin-bottom:12px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.section-heading>a{font-size:14px;min-height:44px;display:flex;align-items:center}.badge{background:var(--primary-soft);color:var(--primary);padding:4px 9px;border-radius:6px;font-size:13px;line-height:1.4;white-space:nowrap}.timeline-row{display:grid;grid-template-columns:64px minmax(0,1fr);gap:16px;padding:12px 0}.timeline-time{font-size:13px;color:var(--muted);padding-top:9px}.timeline-entry{position:relative;border-left:1px solid var(--border);padding:0 0 12px 20px;min-width:0}.timeline-entry:before{position:absolute;content:'';width:8px;height:8px;border-radius:50%;background:var(--primary);top:15px;left:-4px;box-shadow:0 0 0 4px white}.entry-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}.entry-top>a{font-size:14px;padding:8px;min-height:44px}.timeline-entry h3{margin-bottom:12px;overflow-wrap:anywhere}.entry-macros{display:flex;flex-wrap:wrap;gap:8px 18px;background:var(--canvas);padding:12px;border-radius:8px;font-size:14px;color:var(--muted);margin-bottom:8px}.entry-macros strong{color:var(--text)}summary{cursor:pointer;color:var(--primary);font-size:14px;min-height:44px;padding:12px 0}details>p{margin-bottom:12px}.delete-confirm summary{color:var(--muted);font-size:13px}.delete-confirm[open]{padding-bottom:12px}.empty-state{text-align:center;padding:52px 12px}.empty-state h3{font-size:18px;margin-bottom:8px}.empty-state p{color:var(--muted);margin-bottom:20px}.empty-icon{display:grid;place-items:center;width:48px;height:48px;margin:0 auto 16px;background:var(--primary-soft);border-radius:12px;color:var(--primary)}.empty-icon svg{height:24px;width:24px}.target-list,.nutrient-detail{margin:12px 0}.target-list>div,.nutrient-detail>div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);padding:12px 0;min-height:48px;font-size:14px}.target-list dd,.nutrient-detail dd{margin:0;text-align:right}.target-list dd .meta{display:block}.entry-notes{white-space:pre-wrap;font-size:14px;padding:12px 0}.macro-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.macro-card h2{font-size:14px;color:var(--muted);margin-bottom:14px}.macro-card .stat{margin-bottom:12px}.stat .unknown{font-size:22px;font-weight:600}.meal-section{margin-bottom:24px}.notice,.error{padding:16px 20px;border-radius:8px;margin-bottom:24px}.notice{background:var(--teal-soft);color:var(--teal)}.error{background:var(--danger-soft);color:var(--danger)}.error p{margin-top:6px}.trash{margin-top:24px}.page-intro{color:var(--muted);margin-bottom:24px}.entry-form{max-width:880px}.entry-form h2{margin-bottom:20px}label{display:flex;flex-direction:column;gap:8px;font-size:14px;font-weight:500}input,select,textarea{width:100%;min-height:44px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);padding:10px 12px;font-size:16px;min-width:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.full{grid-column:1/-1}.full p{margin-bottom:12px}.nutrient-heading{margin:32px 0 0}.nutrient-heading h2{margin:0}.nutrient-form{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0}.nutrient-form fieldset{border:1px solid var(--border);border-radius:8px;padding:16px;min-width:0}.nutrient-form legend{font-size:14px;font-weight:600;padding:0 6px}.nutrient-inputs{display:grid;grid-template-columns:1fr 1fr;gap:8px}.assumption-label{margin-top:14px;font-size:13px}.assumption-label input{font-size:14px}.form-actions{display:flex;gap:12px;padding-top:24px}.entry-form>p.meta{margin-top:20px}.settings-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;max-width:960px}.stack-form{display:grid;gap:20px;margin-top:24px}.stack-form .button{justify-self:start}.empty-feature{padding:48px;max-width:780px}.empty-feature>svg{display:none}.empty-feature h2{margin:20px 0 12px}.empty-feature p{margin-bottom:24px}.login-page{max-width:600px;margin:8vh auto;padding:24px}.login-page>.brand-link,.login-page>a{display:inline-block}.login-card{margin:40px 0 24px;padding:36px;border:1px solid var(--border);background:white;border-radius:12px}.login-card h1{font-size:40px;line-height:1.15;margin:16px 0}.login-card>.button{margin:28px 0 20px}.login-card .notice{margin:24px 0 0;font-size:14px}.mobile-header,.mobile-bottom{display:none}.saving-label{display:none}.htmx-request .save-label{display:none}.htmx-request .saving-label{display:inline}button:disabled{opacity:.7;cursor:wait}
@media(min-width:1600px){.main{margin-right:auto;margin-left:calc(224px + (100vw - 1600px)/2)}}
@media(max-width:1190px){.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.date-label{display:none}.macro-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.content-grid{grid-template-columns:minmax(0,1.6fr) minmax(230px,1fr)}}
@media(max-width:1023px){.sidebar{display:none}.main{margin-left:0;padding:24px}.mobile-header{display:flex;min-height:64px;align-items:center;justify-content:space-between;padding:8px 24px;background:white;border-bottom:1px solid var(--border)}.mobile-header details{position:relative}.mobile-header summary{padding:12px;list-style:none}.mobile-header nav{position:absolute;right:0;top:48px;background:white;box-shadow:var(--shadow-dialog);border:1px solid var(--border);border-radius:8px;min-width:200px;z-index:10;padding:8px}.mobile-header nav a{display:block;padding:12px;font-size:14px}.date-label{display:block}.main{max-width:1200px}.content-grid{grid-template-columns:1.7fr 1fr}}
@media(max-width:767px){.main{padding:24px 16px calc(90px + env(safe-area-inset-bottom))}.mobile-header{padding:8px 16px;min-height:56px}.mobile-header .brand{font-size:24px}.page-heading{margin-bottom:20px;align-items:center;flex-wrap:wrap}.page-heading .eyebrow{display:none}h1{font-size:24px}.summary-grid{gap:12px}.summary-card{min-height:150px;padding:16px}.summary-card .stat{font-size:24px}.summary-card .empty-stat{font-size:21px}.card-label{font-size:14px;gap:6px}.content-grid,.settings-grid{grid-template-columns:1fr}.date-strip{gap:4px;flex-wrap:wrap}.date-label{display:none}.date-form{gap:0;flex:1}.date-form input{width:100%;padding:8px;font-size:14px}.date-form .text-button{padding:8px}.today-button{padding:10px;margin-left:0}.macro-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.macro-card{padding:16px}.macro-card .stat{font-size:26px}.stat .unknown{font-size:20px}.card{padding:16px}.context-stack{gap:16px}.timeline-row{grid-template-columns:1fr;gap:0}.timeline-time{padding:4px 0 0 16px}.timeline-entry{padding-left:16px}.timeline-entry:before{top:-10px}.form-grid,.nutrient-form{grid-template-columns:1fr}.nutrient-inputs{grid-template-columns:1fr 1fr}.nutrient-form fieldset{padding:12px}.empty-state{padding:36px 8px}.section-heading{flex-wrap:wrap;gap:8px}.entry-macros{gap:8px 14px}.mobile-bottom{display:flex;position:fixed;bottom:0;inset-inline:0;background:white;border-top:1px solid var(--border);padding:4px 8px calc(4px + env(safe-area-inset-bottom));z-index:5;justify-content:space-around}.mobile-bottom a{padding:14px 8px;min-width:64px;text-align:center;color:var(--muted);font-size:14px}.mobile-bottom a:hover{color:var(--primary)}.login-page{margin:24px auto}.login-card{padding:24px}.login-card h1{font-size:34px}.empty-feature{padding:24px}.target-list>div,.nutrient-detail>div{flex-wrap:wrap}.target-list dd,.nutrient-detail dd{text-align:left}.form-actions{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

progress{display:block;width:100%;height:6px;border:none;border-radius:4px;overflow:hidden;margin:0 0 12px;background:var(--border)}progress::-webkit-progress-bar{background:var(--border)}progress::-webkit-progress-value{background:var(--primary);border-radius:4px}progress::-moz-progress-bar{background:var(--primary)}
.spaced{margin-top:24px;margin-bottom:16px}.record-fieldset{border:1px solid var(--border);border-radius:12px;padding:20px;margin:24px 0;min-width:0}.record-fieldset legend,.set-fieldset legend{font-size:16px;font-weight:600;padding:0 8px}.set-fieldset{border:1px solid var(--border);border-radius:8px;margin:20px 0;padding:16px;min-width:0}.set-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.table-scroll{overflow-x:auto;margin:16px 0}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--border);vertical-align:top;min-height:48px}th{font-weight:600;color:var(--muted);background:var(--canvas)}.exercise-detail{padding:20px 0;border-bottom:1px solid var(--border)}.record-meta{color:var(--muted);margin:8px 0}.sleep-summary{display:grid;grid-template-columns:2fr 1fr 1fr;gap:24px;margin:20px 0}.metric-estimate{display:block;color:var(--muted);font-size:12px}.record-actions{display:flex;gap:24px;align-items:center;margin-top:16px}.record-actions>a{font-size:14px;min-height:44px;display:flex;align-items:center}.nutrient-form fieldset>label+label{margin-top:12px}@media(max-width:767px){.set-grid{grid-template-columns:1fr 1fr}.sleep-summary{grid-template-columns:1fr}.record-fieldset{padding:12px}.record-actions{flex-wrap:wrap}.table-scroll table{font-size:13px}.table-scroll th,.table-scroll td{padding:10px 8px}.summary-grid{grid-template-columns:1fr}}
.check-label{display:flex;flex-direction:row;align-items:center;gap:12px;min-height:44px;font-weight:400}.check-label input{width:20px;height:20px;min-height:20px;flex-shrink:0}.check-label small{display:block}.share-field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:24px 0}.share-field-grid label{border:1px solid var(--border);padding:12px;border-radius:8px}.share-field-grid .sensitive-field{background:var(--warning-soft)}.share-grant{padding:24px 0;border-bottom:1px solid var(--border)}.shared-values{margin:0}.shared-values>div{padding:12px 0;border-bottom:1px solid var(--border)}.shared-values dt{font-weight:600;margin-bottom:8px}.shared-values dd{margin:0;color:var(--muted);font-size:14px;overflow-wrap:anywhere}.shared-values dd p+p{margin-top:4px}.recipient-header{padding:20px 32px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:20px;background:white}.recipient-main{max-width:1000px;margin:auto;padding:32px}@media(max-width:767px){.share-field-grid{grid-template-columns:1fr 1fr}.recipient-main{padding:24px 16px}.recipient-header{padding:16px;flex-wrap:wrap}}
.trend-chart{display:block;width:100%;height:auto;max-height:280px;margin:20px 0;overflow:visible}.trend-chart text{fill:var(--muted);font:12px var(--font-ui)}.chart-axis{stroke:var(--border);fill:none}.chart-line{stroke:var(--primary);stroke-width:2;fill:none}.chart-point{fill:var(--primary)}.summary-grid+.context-stack{margin-top:24px}

.raw-transcription{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;max-height:28rem;overflow:auto}
.import-source{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%;font-size:.85rem;line-height:1.5}
.error:focus{outline:2px solid var(--focus);outline-offset:3px}
