:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#21372e;background:#f5f6f1;font-synthesis:none;--green:#216950;--muted:#7b857d;--line:#e4e8df;--paper:#fffefa}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #9ac7b4;outline-offset:3px}[hidden]{display:none!important}.muted{color:var(--muted);font-size:14px;line-height:1.6}h1,h2,h3,p{margin:0}h2{font-size:20px;font-weight:630;letter-spacing:-.6px}h3{font-size:15px}small{font-size:11px;color:var(--muted);line-height:1.6}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:700;color:var(--green);margin-bottom:9px}.brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:650;letter-spacing:-.6px;line-height:1.05}.brand img{width:43px;height:43px}.primary{border:0;border-radius:9px;padding:15px 20px;background:var(--green);color:white;font-weight:600;display:flex;justify-content:space-between;align-items:center}.subtle{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:9px 13px;font-size:12px;color:#4a6255;white-space:nowrap}.subtle:hover{background:#edf3e9}.fine{font-size:12px;line-height:1.7;color:var(--muted)}.error{color:#a44f3c;font-size:13px;line-height:1.5}.notice{border:1px solid #e4ddbb;background:#fff8e5;padding:13px 18px;border-radius:10px;margin:15px 0}.login-shell{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-art{position:relative;overflow:hidden;min-height:720px;background:#173d32;color:#f1f4e8;padding:54px 10%;display:flex;flex-direction:column;align-items:flex-start}.login-art .brand{margin-bottom:130px}.light{color:#bfcea8}.login-art h1{font-size:clamp(50px,6vw,90px);font-weight:500;letter-spacing:-4px;line-height:1.06;margin-bottom:30px}.login-art>p:not(.eyebrow){font-size:16px;line-height:1.8;color:#b1c7b8}.login-foot{margin-top:auto;padding-top:100px;font-size:11px;letter-spacing:.4px;color:#b1c7b8}.art-lines{position:absolute;bottom:50px;left:0;width:100%;opacity:.35;pointer-events:none}.art-lines svg{width:100%;fill:none;stroke:#d4eaa6;stroke-width:2}.art-lines path+path{stroke:#739d83}.login-form{display:flex;flex-direction:column;justify-content:center;gap:19px;width:min(360px,80%);margin:auto}.login-form h2{font-size:31px;letter-spacing:-1px}.mini-logo{display:flex;width:45px;height:45px;background:#e6edde;color:var(--green);align-items:center;justify-content:center;border-radius:11px;font-weight:700;margin-bottom:25px}.login-form .eyebrow{margin:0}.login-form label{font-size:12px;font-weight:600;display:flex;flex-direction:column;gap:9px}input:not([type=checkbox]){border:1px solid #dce2d7;border-radius:8px;padding:12px;background:var(--paper);color:#263d31;min-width:0}.app-shell{display:grid;grid-template-columns:220px minmax(0,1fr)}.sidebar{height:100vh;position:sticky;top:0;background:#fcfdf8;border-right:1px solid var(--line);padding:36px 23px 24px;display:flex;flex-direction:column}.sidebar .brand{position:relative;font-size:19px;margin-bottom:54px}.beta{font-size:8px;border:1px solid var(--line);padding:3px 5px;border-radius:4px;position:absolute;right:1px;top:4px;color:var(--muted);font-weight:500}.nav-label{font-size:9px;letter-spacing:1.3px;color:#939c92;margin:0 14px 13px}nav{display:grid;gap:6px}nav a{font-size:12px;color:#7c887d;padding:13px;border-radius:8px;display:flex;align-items:center;gap:12px}nav a.active{background:#e8efdf;color:#346144;font-weight:650}nav a:hover{background:#eef2e8}nav span{font-size:16px}.sidebar-note{margin-top:auto;border-top:1px solid var(--line);padding-top:21px;font-size:10px;color:#44614e}.sidebar-note p{font-size:10px;line-height:1.7;color:#8c958a;margin:8px 0 22px}.status-dot{display:inline-block;width:6px;height:6px;background:#7da66c;border-radius:50%;margin-right:6px}.logout{background:none;border:0;text-align:left;font-size:11px;color:#72806f;padding:0}main{max-width:1700px;width:100%;margin:auto;padding:45px 44px 20px}.page-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.page-header h1{font-size:38px;letter-spacing:-1.7px;font-weight:600;line-height:1.2;margin-bottom:9px}.page-header h1 span{color:#93b277}.header-meta{display:flex;flex-direction:column;align-items:flex-end;gap:9px}.live{font-size:10px;color:#557752}.header-meta button{font-size:10px;padding:5px 9px}.filters{display:flex;align-items:center;gap:20px;flex-wrap:wrap;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;margin-bottom:25px}.range-tabs{display:flex;gap:3px;border:1px solid var(--line);border-radius:8px;padding:3px;background:#eff1e9}.range-tabs button{background:none;border:0;padding:8px 12px;font-size:11px;color:#7d8878;border-radius:5px;white-space:nowrap}.range-tabs button.active{background:var(--paper);color:#375d40;box-shadow:0 1px 3px #203b2220}.dates{display:flex;align-items:center;gap:8px;font-size:11px;color:#879280}.dates label{display:flex;align-items:center;gap:7px}.dates input{font-size:11px;padding:7px 8px}.toggle{margin-left:auto;display:flex;align-items:center;gap:7px;font-size:11px;color:#65765e;white-space:nowrap}input[type=checkbox]{accent-color:var(--green);width:14px;height:14px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:24px}.metric{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:22px 21px;min-height:172px}.metric-heading{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#778371;gap:8px}.metric-heading>span{color:#91a785;font-size:17px}.metric-value{font-size:33px;font-weight:550;letter-spacing:-1.3px;margin:14px 0 10px;line-height:1}.metric-value .unit{font-size:13px;letter-spacing:0;color:#89927f;margin-left:4px;font-weight:400}.metric-detail{font-size:11px;line-height:1.5;color:#5b7353;margin-bottom:5px}.metric.accent{background:#e7eddd;border-color:#e0e8d5}.metric small{font-size:10px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:25px;margin-bottom:23px;min-width:0;scroll-margin-top:25px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.panel-heading .eyebrow{font-size:9px;letter-spacing:1.5px;color:#849679}.panel-heading h2{font-size:18px}.panel-heading .muted{font-size:11px;margin-top:7px}.chart-legend{display:flex;gap:16px;flex-wrap:wrap;justify-content:flex-end}.legend{font-size:9px;color:#7f8b78;display:flex;align-items:center;gap:5px}.legend:before{content:'';width:13px;height:2px;background:#a7bd90}.legend.seven:before{background:#2b7553;height:3px}.legend.twenty-eight:before{background:#d69c59}.legend.goal:before{background:none;border-top:1px dashed #9ca899}.chart-container{height:265px;width:100%;position:relative}.chart-container.small{height:220px}.chart-container svg{width:100%;height:100%;overflow:visible}.chart-empty{height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:#8a9682;font-size:13px;text-align:center;border:1px dashed var(--line);border-radius:8px}.chart-note{font-size:10px;color:#8f9987;line-height:1.7;margin-top:14px}.two-column{display:grid;grid-template-columns:1.15fr 1fr;gap:23px}.pill{font-size:9px;color:#798c6d;background:#f0f3e8;border:1px solid #e5ebdb;padding:6px 9px;border-radius:20px;white-space:nowrap}.goals-list{display:grid;gap:17px}.goal-line{display:grid;grid-template-columns:1fr auto;gap:6px;font-size:11px}.goal-line small{font-size:10px}.progress{height:5px;background:#eef1e7;border-radius:8px;grid-column:1/-1;overflow:hidden}.progress>span{display:block;height:100%;background:#8fae7a;border-radius:8px}.goal-calorie{background:#f2f5eb;border-radius:8px;padding:12px;font-size:12px;color:#6e825e;line-height:1.7}.calendar{display:grid;grid-template-columns:repeat(14,1fr);gap:6px;max-height:230px;overflow-y:auto}.calendar button{padding:0;border:1px solid #e9ece3;background:#f7f8f3;aspect-ratio:1;border-radius:5px;font-size:9px;color:#a1a995;min-width:0}.calendar button.complete{background:#83a96e;border-color:#83a96e;color:white}.calendar button.partial{background:#e5eccd;color:#6f8954;border-color:#cad8ae}.calendar-legend{display:flex;gap:18px;font-size:9px;color:#849278;margin-top:17px}.nutrients{display:grid;grid-template-columns:repeat(3,1fr);gap:19px}.nutrient{border-bottom:1px solid #eef0e8;padding-bottom:13px}.nutrient-name{font-size:10px;color:#849078}.nutrient-value{font-size:22px;font-weight:550;letter-spacing:-.6px;margin:6px 0 3px}.nutrient-value span{font-size:10px;color:#9aa58f;font-weight:400}.nutrient small{font-size:9px}select{border:1px solid var(--line);background:var(--paper);color:#687d5b;border-radius:7px;padding:8px 12px;font-size:11px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;white-space:nowrap;font-size:11px;text-align:left}th{font-weight:500;color:#9aa48f;font-size:10px;border-bottom:1px solid var(--line);padding:0 12px 12px}td{padding:14px 12px;border-bottom:1px solid #edf0e5;color:#627453}th:first-child,td:first-child{padding-left:0;color:#405b35}td:last-child{text-align:right}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:#f5f7ed}.state{padding:4px 8px;border-radius:5px;font-size:9px;background:#eaf1e1;color:#64814d}.state.partial{background:#f7efdb;color:#a18b55}.table-link{border:0;background:none;color:#5d8350;font-size:11px;padding:3px 8px}.food-list{display:grid;gap:16px}.food-item{display:flex;align-items:center;gap:13px}.food-rank{width:30px;height:30px;background:#f0f3e8;display:flex;align-items:center;justify-content:center;color:#869b74;border-radius:8px;font-size:10px}.food-name{font-size:12px;flex:1;overflow:hidden;text-overflow:ellipsis}.food-name small{display:block;font-size:9px;margin-top:4px}.food-count{font-size:11px;color:#70835c}.weekday{display:grid;grid-template-columns:35px minmax(0,1fr) 95px;align-items:center;gap:10px;font-size:10px;color:#879478;margin:12px 0}.weekday .progress{grid-column:auto;height:8px}.weekday strong{font-size:10px;font-weight:500;text-align:right}.weekday small{font-size:9px}footer{display:flex;align-items:center;justify-content:space-between;padding:16px 0 24px;gap:20px;color:#78896d;font-size:11px}footer strong{font-size:13px;font-weight:550;color:#536947}footer p{font-size:10px;margin-top:7px;line-height:1.7}dialog{border:1px solid #d8e1d0;border-radius:16px;background:var(--paper);padding:28px;width:min(640px,94vw);max-height:85vh;color:#294232}dialog::backdrop{background:#153b2ca6;backdrop-filter:blur(4px)}.dialog-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.day-entry{display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line);padding:16px 0}.day-entry img{width:70px;height:70px;object-fit:cover;border-radius:10px}.day-entry div{flex:1}.day-entry p{font-size:12px;margin-bottom:5px}.day-entry small{font-size:10px}.day-entry strong{font-size:13px;font-weight:550}.empty-text{font-size:12px;color:#8d9981;padding:20px 0;line-height:1.8}.chart-grid{stroke:#edf0e6;stroke-width:1}.chart-label{font-size:10px;fill:#98a28d}.chart-line{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.chart-daily{stroke:#c4d4ae;stroke-width:1.5}.chart-seven{stroke:#347a51;stroke-width:2.4}.chart-twenty-eight{stroke:#d1a06c;stroke-width:2}.chart-goal{stroke:#a4af9a;stroke-dasharray:5 5;stroke-width:1.2}.chart-dot{fill:#9cba7c;stroke:var(--paper);stroke-width:2}.chart-dot.partial{fill:var(--paper);stroke:#c8b56e}.chart-weight{stroke:#94ad7b;stroke-width:1.5}.chart-point{fill:#84a56c;stroke:var(--paper);stroke-width:2}@media(min-width:1600px){main{padding:50px 65px}.chart-container{height:300px}.metric-value{font-size:39px}}@media(max-width:1150px){.app-shell{grid-template-columns:185px minmax(0,1fr)}.sidebar{padding:30px 15px}.sidebar .brand{font-size:17px}.beta{display:none}main{padding:30px 25px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.two-column{grid-template-columns:1fr}.dates{gap:5px}.toggle{margin-left:0}.chart-legend{max-width:250px}.metric{min-height:150px}.panel{padding:22px}}@media(max-width:760px){.app-shell{display:block}.sidebar{height:auto;position:relative;display:block;padding:17px 20px;border-bottom:1px solid var(--line);border-right:0}.sidebar .brand{font-size:16px;margin:0}.brand br{display:none}.brand img{width:32px;height:32px}.sidebar nav{display:flex;overflow:auto;margin-top:17px;gap:6px}.sidebar nav a{white-space:nowrap;padding:9px 12px;font-size:10px}.sidebar nav span,.nav-label,.sidebar-note{display:none}.logout{position:absolute;right:20px;top:27px}.page-header h1{font-size:29px}.header-meta .live{font-size:9px}.header-meta small{display:none}main{padding:25px 17px}.page-header{align-items:flex-start;margin-bottom:22px}.page-header .muted{font-size:11px;max-width:210px}.header-meta{gap:8px}.filters{gap:14px}.dates{order:3;flex-wrap:wrap}.dates input{max-width:132px;font-size:10px}.toggle{margin-left:auto;font-size:10px}.range-tabs button{padding:7px 9px;font-size:10px}.metrics{gap:10px;margin-bottom:17px}.metric{padding:16px 14px;min-height:155px}.metric-heading{font-size:10px}.metric-value{font-size:29px}.metric-detail{font-size:10px}.metric small{font-size:9px}.panel{padding:19px 16px;margin-bottom:17px}.panel-heading{align-items:flex-start;margin-bottom:19px}.panel-heading h2{font-size:16px}.panel-heading .eyebrow{font-size:8px}.wide-chart .panel-heading{display:block}.chart-legend{max-width:none;justify-content:flex-start;gap:12px;margin-top:14px}.legend{font-size:8px}.chart-container{height:230px}.chart-container.small{height:200px}.two-column{gap:0}.calendar{gap:4px}.calendar button{font-size:8px}.nutrients{gap:15px}.nutrient-value{font-size:22px}.pill{font-size:8px;padding:5px 7px}footer{align-items:flex-start;flex-direction:column;gap:14px}.login-shell{display:block}.login-art{min-height:auto;padding:25px 30px 35px}.login-art .brand{margin-bottom:40px}.login-art h1{font-size:49px;letter-spacing:-2px;margin-bottom:18px}.login-art>p:not(.eyebrow){font-size:12px}.login-foot,.art-lines{display:none}.login-form{margin:40px auto 60px}.mini-logo{display:none}.login-form h2{font-size:27px}.food-list{gap:14px}.chart-label{font-size:9px}}

.pair-code{font-family:ui-monospace,monospace;font-size:30px;letter-spacing:3px;color:#216950;background:#e8efdf;border-radius:10px;padding:23px 10px;text-align:center;margin:22px 0}
