:root{font-family:Roboto,Noto Sans,system-ui,sans-serif;line-height:1.5;color-scheme:light;--bg: #f6f5fa;--surface: #fff;--text: #302a48;--sub: #69637a;--accent: #6758a4;--on: #fff;--selected: #ebe8f7;--line: #e2dfeb;--control: #777088;--focus: #49367e;--disabled: #6a647c;--success: #266339;--successbg: #e6f4ea;--warn: #734c00;--warnbg: #fff3d6;--error: #9c2f32;--errorbg: #fde9e8;--info: #1f5a8c;--infobg: #e6f1fb;--s1: .25rem;--s2: .5rem;--s3: .75rem;--s4: 1rem;--s6: 1.5rem;--radius: 1rem;--radius-control: .75rem;--touch: 2.75rem}html[data-theme=dark]{color-scheme:dark;--bg: #15161c;--surface: #22232d;--text: #f5f4fa;--sub: #bcb9cc;--accent: #b8adff;--on: #17132c;--selected: #383346;--line: #41414e;--control: #aaa6bf;--focus: #c9bfff;--disabled: #bcb9cc;--success: #b7e7c5;--successbg: #173b25;--warn: #f7d98a;--warnbg: #44370d;--error: #ffb4ab;--errorbg: #4b2525;--info: #a9d6ff;--infobg: #18384f}@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--bg: #15161c;--surface: #22232d;--text: #f5f4fa;--sub: #bcb9cc;--accent: #b8adff;--on: #17132c;--selected: #383346;--line: #41414e;--control: #aaa6bf;--focus: #c9bfff;--disabled: #bcb9cc;--success: #b7e7c5;--successbg: #173b25;--warn: #f7d98a;--warnbg: #44370d;--error: #ffb4ab;--errorbg: #4b2525;--info: #a9d6ff;--infobg: #18384f}}html{font-size:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%}html[data-text-scale=large]{font-size:115%}html[data-text-scale=xlarge]{font-size:130%}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);overflow-wrap:break-word}a{color:var(--accent);overflow-wrap:anywhere}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,pre:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:3px}main:focus,h1[tabindex="-1"]:focus:not(:focus-visible),h3[tabindex="-1"]:focus:not(:focus-visible){outline:none}button,input,select,textarea{font:inherit}button,select,input[type=date],input[type=text],input[type=url],.button{min-height:var(--touch);border:1px solid var(--control);border-radius:var(--radius-control);padding:var(--s3) var(--s4);color:var(--text);background:var(--surface)}.button{display:inline-flex;align-items:center;justify-content:center;text-align:center;text-decoration:none;font-weight:500}input[type=text],input[type=url]{max-width:100%}button{cursor:pointer}button.primary,.button.primary{background:var(--accent);color:var(--on);border-color:var(--accent);font-weight:600}button.ghost{border:0;background:transparent;color:var(--accent)}button.active,button[aria-pressed=true]{background:var(--selected);color:var(--accent);font-weight:700;box-shadow:inset 0 0 0 2px var(--accent)}@media(hover:hover){button:not(:disabled):hover,.button:hover{background:var(--selected)}button.primary:not(:disabled):hover,.button.primary:hover{background:color-mix(in srgb,var(--accent) 86%,var(--text))}button.ghost:not(:disabled):hover{background:var(--selected)}}button:not(:disabled):active,.button:active{background:var(--selected)}button.primary:not(:disabled):active,.button.primary:active{background:color-mix(in srgb,var(--accent) 74%,var(--text))}button:disabled,button.primary:disabled{cursor:not-allowed;color:var(--disabled);background:var(--selected);border-color:var(--line)}h1{font-size:1.5rem;line-height:1.33;margin:0 0 var(--s4)}h2{font-size:1.25rem;line-height:1.4;margin:0 0 var(--s3)}h3{font-size:1rem;line-height:1.5;margin:0 0 var(--s2)}p{margin:0 0 var(--s3)}dl,dd{margin:0}ul,ol{margin:0 0 var(--s3);padding-left:var(--s6)}code{overflow-wrap:anywhere}.muted{color:var(--sub)}.number{font-variant-numeric:tabular-nums;font-weight:650}.value{font-size:1.75rem;line-height:1.3}.unit{font-size:.875rem;color:var(--sub);margin-left:var(--s1)}.tiny{font-size:.8125rem}.shell{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;max-width:90rem;margin:0 auto}.app-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--s2) var(--s3);padding:var(--s3) var(--s4);padding-top:max(var(--s3),env(safe-area-inset-top));border-bottom:1px solid var(--line);background:var(--surface)}.brand{font-weight:700;font-size:1.1875rem;letter-spacing:-.03em}.main{flex:1 0 auto;width:100%;min-width:0;max-width:68.75rem;margin:0 auto;padding:var(--s6) var(--s4) var(--s4)}.app-footer,.foot{color:var(--sub);font-size:.8125rem;padding:var(--s4);padding-bottom:calc(7rem + env(safe-area-inset-bottom))}.skip{position:absolute;top:-6rem;left:var(--s3);z-index:99;background:var(--surface);border:2px solid var(--focus);border-radius:var(--radius-control);padding:var(--s3)}.skip:focus{top:var(--s3)}.sronly{position:absolute;clip:rect(0,0,0,0);white-space:nowrap;width:1px;height:1px;overflow:hidden}.header{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);flex-wrap:wrap;margin-bottom:var(--s6)}.header h1,.screen-header h1{margin-bottom:var(--s1)}.screen-header p{margin-bottom:0}.bottom-nav{position:fixed;z-index:20;bottom:0;left:0;right:0;display:flex;align-items:stretch;background:var(--surface);border-top:1px solid var(--line);padding:var(--s1) max(var(--s1),env(safe-area-inset-right)) calc(var(--s1) + env(safe-area-inset-bottom)) max(var(--s1),env(safe-area-inset-left))}.bottom-nav-item{flex:1 1 0;min-width:0;min-height:3.5rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:var(--s2) 2px;border-radius:var(--radius-control);color:var(--sub);text-decoration:none;text-align:center;font-size:.75rem;line-height:1.2;font-weight:500}.bottom-nav-item[aria-current=page]{background:var(--selected);color:var(--accent);font-weight:700}.bottom-nav-symbol{font-size:1.375rem;line-height:1.2}.bottom-nav-label{max-width:100%;overflow-wrap:anywhere;word-break:normal;hyphens:auto;-webkit-hyphens:auto}@media(hover:hover){.bottom-nav-item:hover{background:var(--selected)}}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16.5rem),1fr));gap:var(--s4)}.card{min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--s4);margin-bottom:var(--s4)}.card p:last-child{margin-bottom:0}.hero{display:grid;grid-template-columns:1fr;gap:var(--s4)}.row{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}.between{justify-content:space-between}.actions{display:flex;gap:var(--s2);flex-wrap:wrap;align-items:center}.stack{display:grid;gap:var(--s3)}.section{margin:var(--s6) 0}.banner{padding:var(--s3) var(--s4);margin:var(--s3) 0;border-radius:var(--radius-control);background:var(--selected)}.banner>:last-child{margin-bottom:0}.banner.warning,.warning{background:var(--warnbg);color:var(--warn)}.banner.error,.error{background:var(--errorbg);color:var(--error)}.banner.success,.success{background:var(--successbg);color:var(--success)}.banner button:not(.primary):not(.ghost){color:var(--text)}.banner.warning button.ghost,.banner.error button.ghost{color:inherit;text-decoration:underline}.pending-selection,.kpi-empty,.google-link-ready{background:var(--infobg);color:var(--info)}.pending-selection .muted{color:inherit}.badge{display:inline-block;padding:3px var(--s2);border-radius:999px;background:var(--selected);color:var(--sub);font-size:.75rem;line-height:1.33;font-weight:700}.badge.warning{background:var(--warnbg);color:var(--warn)}.badge.success{background:var(--successbg);color:var(--success)}.badge-estimated{background:var(--infobg);color:var(--info);border:1px dashed var(--info)}.badge-status,.badge-meal,.badge-day-state{white-space:normal}.badge-hint{display:inline}.data-badge-group{display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--s1) var(--s2)}.error-slot{position:sticky;top:var(--s2);z-index:30;margin:0;padding:0}.error-notice{border:1px solid var(--error);margin-top:0;box-shadow:0 2px 8px #0000002e}.error-notice-text{font-weight:600}.error-notice-wait{margin-bottom:var(--s2)}.error-notice-actions{margin-top:var(--s2)}.error-notice-diagnostic{margin:var(--s2) 0 0}.error-notice button:not(.primary):not(.ghost),.error-notice button.primary{color:var(--text);background:var(--surface);border-color:var(--control)}.error-notice button:disabled{color:var(--disabled);background:var(--selected)}.field-error{color:var(--error);font-weight:600;margin:0}.offline{margin-top:0}.data-status{color:var(--sub)}.data-expired,.data-failed,.timezone-missing{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s2) var(--s4)}.data-expired p,.data-failed p,.timezone-missing p{margin:0;flex:1 1 14rem}.diagnostics-info{margin-top:var(--s3)}.diagnostics-info ul{margin-bottom:0}.boundary{display:grid;align-content:center;gap:var(--s3);max-width:32rem;min-height:100vh;margin:0 auto;padding:var(--s6) var(--s4)}.boundary-title{margin-bottom:0}.wizard-head{display:grid;gap:var(--s2)}.wizard-progress{margin:0}.wizard-steps{display:flex;gap:var(--s1);margin:0;padding:0;list-style:none}.wizard-steps li{flex:1 1 0;height:.5rem;overflow:hidden;border-radius:999px;background:var(--line);color:transparent;white-space:nowrap}.wizard-steps li.done{background:var(--accent);opacity:.55}.wizard-steps li.current,.wizard-steps li[aria-current=step]{background:var(--accent);opacity:1}.wizard-step h1:focus{outline:none}.wizard-reset{margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--line)}.wizard-nav{margin-top:var(--s4);justify-content:space-between}.wizard-foot{justify-content:center}.check{display:flex;align-items:flex-start;gap:var(--s3);min-height:var(--touch);margin-bottom:var(--s3);cursor:pointer}.check input{flex:none;width:1.5rem;height:1.5rem;margin:var(--s1) 0 0;accent-color:var(--accent)}.google-link{display:grid;gap:var(--s3);justify-items:start}.google-link-ready,.google-link-waiting{width:100%}.google-link-ready p:last-child{margin-bottom:0}.google-link-waiting{display:grid;gap:var(--s2);justify-items:start}.google-link-waiting p{margin:0}.reconnect,.disconnect-confirm{display:grid;gap:var(--s3)}.reconnect>p,.disconnect-confirm>p,.disconnect-confirm>h3{margin:0}.day-meta{gap:var(--s2) var(--s4)}.day-meta p{margin:0}.progress{height:.625rem;border-radius:20px;background:var(--selected);overflow:hidden;margin:var(--s2) 0}.progress>span{display:block;height:100%;background:var(--accent)}.ring{width:9.25rem;height:9.25rem;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--accent) var(--percent, 0%),var(--selected) 0);flex-shrink:0}.ring-inner{width:7.25rem;height:7.25rem;border-radius:50%;background:var(--surface);display:grid;place-content:center;text-align:center;padding:var(--s2)}.ring-inner strong{font-size:1.375rem;line-height:1.2}.ring-inner small{font-size:.75rem}.metric-card{margin-bottom:0}.metric-card h3{margin-bottom:var(--s3)}.empty-day h2{margin-bottom:var(--s2)}.empty-day p{margin-bottom:0}.entry-list{list-style:none;margin:0;padding:0}.entry{border-bottom:1px solid var(--line)}.entry:last-child{border-bottom:0}.entry-summary{display:grid;gap:var(--s1);width:100%;min-height:4rem;border:0;border-radius:0;padding:var(--s3) 0;background:transparent;text-align:left}.entry-summary .row{align-items:baseline;flex-wrap:nowrap;gap:var(--s3)}.entry-detail{padding:var(--s3) var(--s4);border:1px solid var(--line);border-radius:var(--radius-control);margin:0 0 var(--s3);overflow-wrap:anywhere}.entry-detail .row{align-items:baseline;justify-content:space-between}.unassigned h2{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2)}.daycards{display:grid;gap:var(--s4)}.stats-controls{display:grid;gap:var(--s2)}.stats-controls .field{margin-bottom:0}.stats-controls p{margin:0}.kpi{margin-bottom:var(--s4)}.kpi-title{font-size:1.25rem;margin-bottom:var(--s3)}.kpi-metric{font-weight:400;font-size:1rem}.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,9.5rem),1fr));gap:var(--s3);margin:0}.kpi-tile{min-width:0;padding:var(--s3) var(--s4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.kpi-tile dt{color:var(--sub);font-size:.8125rem;line-height:1.33;margin-bottom:var(--s1)}.kpi-tile dd{font-size:1.25rem;line-height:1.4;overflow-wrap:anywhere}.kpi-tile dd .unit{font-size:.8125rem}.kpi-note{margin:var(--s2) 0 0}.bar-chart{display:flex;align-items:flex-end;gap:var(--s2);height:11rem;border-bottom:1px solid var(--control);overflow-x:auto;padding:var(--s6) 2px 0}.bar-chart div{flex:1;min-width:2.75rem;max-width:4.5rem;position:relative;background:var(--accent);min-height:2px;border-radius:5px 5px 0 0}.bar-chart .partial-bar{background:repeating-linear-gradient(45deg,var(--warn) 0 .375rem,var(--warnbg) .375rem .75rem);outline:2px solid var(--warn);outline-offset:-2px}.bar-chart div span{position:absolute;bottom:100%;left:50%;transform:translate(-50%);font-size:.75rem;line-height:1.33;white-space:nowrap;font-variant-numeric:tabular-nums}.tablewrap{overflow-x:auto}.tablewrap table{width:100%;border-collapse:collapse;text-align:left;font-size:.875rem}.tablewrap th,.tablewrap td{padding:var(--s3);border-bottom:1px solid var(--line);vertical-align:top}.tablewrap caption{text-align:left;font-weight:700;padding:var(--s2) 0}.date-strip{margin-bottom:var(--s4)}.date-strip-bar{display:flex;align-items:center;gap:var(--s1)}.date-strip-step{flex:none;width:var(--touch);padding:0;font-size:1.5rem;line-height:1}.date-strip-days{flex:1 1 auto;display:flex;gap:var(--s1);margin:0;padding:.375rem;list-style:none;overflow-x:auto;scroll-snap-type:x proximity}.date-strip-days li{flex:1 0 var(--touch);scroll-snap-align:center}.date-strip-day{display:grid;align-content:center;justify-items:center;gap:0;width:100%;min-width:var(--touch);min-height:3.5rem;padding:var(--s1);border-color:var(--line)}.date-strip-weekday{font-size:.75rem;line-height:1.33;color:var(--sub);text-transform:uppercase}.date-strip-number{font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums}.date-strip-day.today{border-color:var(--accent);border-width:2px}.date-strip-day.selected{background:var(--accent);color:var(--on);border-color:var(--accent);box-shadow:none}.date-strip-day.selected .date-strip-weekday{color:var(--on)}.date-strip-day.selected:hover,.date-strip-day.selected:active,.calendar-day.selected:hover,.calendar-day.selected:active{background:var(--accent);color:var(--on)}.date-strip-day:disabled .date-strip-weekday{color:inherit}.date-strip-tools{margin-top:var(--s1);justify-content:space-between}.calendar{margin:var(--s2) 0 var(--s4);padding:var(--s2);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);margin-bottom:var(--s2)}.calendar-month{margin:0;text-align:center;text-transform:capitalize}.calendar-grid{width:100%;table-layout:fixed;border-collapse:collapse}.calendar-grid th{padding:var(--s1) 0;font-size:.75rem;font-weight:500;color:var(--sub);text-align:center}.calendar-grid td{padding:1px;text-align:center}.calendar-day{width:100%;min-width:0;min-height:var(--touch);padding:0;border:1px solid transparent;background:transparent;font-variant-numeric:tabular-nums}.calendar-day.today{border:2px solid var(--accent)}.calendar-day.selected{background:var(--accent);color:var(--on);border-color:var(--accent);font-weight:700;box-shadow:none}.calendar-day:disabled{background:transparent;border-color:transparent;text-decoration:line-through}.calendar-day[tabindex="0"]:not(.selected){border-color:var(--control)}.field{display:grid;gap:var(--s2);margin-bottom:var(--s4)}.field input,.field select{width:100%}.settings-group{margin:0 0 var(--s6);padding:0;border:0;min-width:0}.settings-group legend{padding:0;margin-bottom:var(--s2);font-weight:600}.settings>.card h2{margin-bottom:var(--s3)}.ai-panel{display:grid;gap:var(--s3)}.ai-panel>*{margin:0}.ai-panel-photo{padding:var(--s3) var(--s4);border-radius:var(--radius-control);background:var(--infobg);color:var(--info)}.ai-panel-link{display:grid;gap:var(--s2)}.ai-panel-link .field{margin-bottom:0}.ai-panel-prompts{margin-top:var(--s1)}.ai-prompt-card{display:grid;gap:var(--s2);padding:var(--s3);border:1px solid var(--line);border-radius:var(--radius-control)}.ai-prompt-card>*{margin:0}.prompt{width:100%;min-height:13rem;max-height:21rem;white-space:pre-wrap;overflow:auto;background:var(--bg);color:var(--text);padding:var(--s4);border-radius:var(--radius-control);border:1px solid var(--line);font-size:.8125rem;overflow-wrap:anywhere}@media(min-width:37.5rem){.main{padding:var(--s6) var(--s6) var(--s4)}.hero{grid-template-columns:minmax(15.5rem,.95fr) 1.05fr}.daycards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:64rem){.shell{display:grid;grid-template-columns:minmax(14rem,16rem) minmax(0,1fr);grid-template-rows:auto 1fr auto}.shell:before{content:"";grid-column:1;grid-row:1 / -1;background:var(--surface);border-right:1px solid var(--line)}.app-header{grid-column:1;grid-row:1;z-index:1;padding:var(--s6) var(--s4) var(--s3);border-bottom:0;background:transparent}.brand{font-size:1.3125rem}.bottom-nav{position:sticky;top:0;grid-column:1;grid-row:2 / 4;align-self:start;z-index:1;flex-direction:column;gap:var(--s1);border-top:0;padding:var(--s2) var(--s4) var(--s6);background:transparent}.bottom-nav-item{flex:none;flex-direction:row;justify-content:flex-start;gap:var(--s3);min-height:3rem;padding:var(--s3);text-align:left;font-size:.9375rem}.bottom-nav-symbol{width:1.75rem;text-align:center;font-size:1.3125rem}.bottom-nav-label{-webkit-hyphens:manual;hyphens:manual}.main{grid-column:2;grid-row:1 / 3;padding:var(--s6) 2.25rem var(--s4)}.app-footer,.foot{grid-column:2;grid-row:3;padding:var(--s4) 2.25rem var(--s6)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
