@charset "UTF-8";
:root{--bg:#f6f5ef;--paper:#fffefa;--ink:#293025;--muted:#7b8173;--line:#e6e7dd;--green:#56633d;--pale:#e9eddf;--orange:#bc8861;--red:#a34e42;--blue:#728fa0;--purple:#9986a1;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}a{color:inherit}button{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #b7c39b;outline-offset:3px}input:focus,textarea:focus,select:focus{outline:2px solid #bdc9aa;outline-offset:1px}h1,h2,h3,p{margin:0}h1,h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-1.2px}h1{font-size:46px;line-height:1.12}h2{font-size:27px}h3{font-size:15px;font-weight:600}.muted{color:var(--muted);line-height:1.6}.small{font-size:12px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:2px;color:var(--muted)}.brand{text-decoration:none;font-size:31px;font-weight:650;letter-spacing:-1.8px;display:inline-flex;align-items:center;gap:5px}.brand span{font-size:11px;color:var(--green);align-self:flex-end;margin-bottom:9px}.shell{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100dvh;padding:38px 24px 23px;border-right:1px solid var(--line);display:flex;flex-direction:column;background:var(--bg)}.sidebar-caption{font-size:9px;letter-spacing:1.9px;color:var(--muted);margin-top:13px}nav{display:grid;gap:7px;margin-top:49px}.nav-item{display:flex;align-items:center;gap:13px;text-align:left;border:0;background:none;padding:13px 14px;border-radius:9px;font-size:13px;color:#6e7566}.nav-item span{font-size:20px;width:22px}.nav-item:hover{background:#efefe6}.nav-item.active{background:var(--pale);color:var(--green);font-weight:600}.sidebar-bottom{margin-top:auto;padding-top:36px}.chat-hint{border:1px solid var(--line);border-radius:12px;padding:15px 12px;font-size:11px;line-height:1.5}.chat-hint p{color:var(--muted);margin:6px 0 12px 14px}.connection-dot{display:inline-block;width:6px;height:6px;background:var(--green);border-radius:50%;margin-right:8px}.text-link{background:none;border:0;padding:0;color:var(--green);font-size:12px;text-underline-offset:4px;cursor:pointer}.identity{display:flex;align-items:center;gap:10px;padding-top:24px;font-size:12px}.identity strong{display:block;max-width:105px;overflow:hidden;text-overflow:ellipsis}.identity small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.avatar{border-radius:50%;width:33px;height:33px;display:grid;place-items:center;background:#e4e8d9;color:var(--green);flex-shrink:0}.icon-button{border:1px solid var(--line);border-radius:8px;background:transparent;padding:7px 10px;font-size:17px;line-height:1.1}.identity .icon-button{margin-left:auto;border:0;padding:4px}.workspace{padding:0 44px;max-width:1500px;width:100%;margin:auto}.topbar{height:88px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.topbar-note{font-size:11px;color:var(--muted)}.topbar-note span{font-size:23px;margin-left:12px;color:var(--green)}#page{min-height:calc(100dvh - 157px);padding:36px 0 42px}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px}.page-heading .muted{font-size:13px;margin-top:10px}.date-picker{display:flex;align-items:center;gap:5px;padding:5px;border:1px solid var(--line);border-radius:9px;background:var(--paper)}.date-picker input{background:transparent;border:0;font-size:12px;padding:5px;width:132px;color:var(--ink)}.date-picker button{border:0;background:transparent;padding:4px 8px;color:var(--muted)}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:25px}.metric{background:var(--paper);border:1px solid var(--line);border-radius:13px;padding:21px 19px}.metric.primary-metric{background:var(--green);border-color:var(--green);color:#fffefa}.metric-label{font-size:11px;display:flex;justify-content:space-between;align-items:center}.metric-label .dot{width:7px;height:7px;border-radius:50%;background:var(--orange)}.metric-number{font-size:31px;letter-spacing:-1px;margin:21px 0 5px;font-variant-numeric:tabular-nums}.metric-number small{font-size:11px;color:var(--muted);letter-spacing:0;margin-left:4px}.primary-metric small{color:#d6ddcb}.metric-goal{font-size:10px;color:var(--muted);min-height:13px}.primary-metric .metric-goal{color:#d6ddcb}.track{height:4px;background:#eeeee5;border-radius:10px;overflow:hidden;margin:18px 0 10px}.track span{display:block;background:var(--orange);height:100%;width:0;border-radius:10px}.primary-metric .track{background:#73815d}.primary-metric .track span{background:#d9e7bc}.metric-remaining{font-size:10px;color:var(--muted);min-height:12px}.primary-metric .metric-remaining{color:#d6ddcb}.over{color:var(--red)}.two-column{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:24px}.panel{border:1px solid var(--line);border-radius:13px;background:var(--paper);padding:24px}.panel-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}.panel-title h2{font-size:25px}.pill{display:inline-block;border-radius:20px;font-size:10px;padding:5px 9px;background:#eeefe7;color:var(--muted)}.meal{padding:19px 0;border-top:1px solid var(--line)}.meal:first-of-type{border-top:0}.meal summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:13px}.meal summary::-webkit-details-marker{display:none}.meal-symbol{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:#f0ede3;color:var(--orange);font-size:18px;flex-shrink:0}.meal-title{font-size:13px;font-weight:600}.meal-time{font-size:10px;color:var(--muted);margin-top:5px}.meal-calories{margin-left:auto;white-space:nowrap;font-size:15px;font-weight:500}.meal-calories small{font-size:10px;color:var(--muted);font-weight:400}.chevron{font-size:12px;color:var(--muted);margin-left:7px}.meal[open] .chevron{transform:rotate(180deg)}.meal-items{margin:19px 0 3px 49px}.food-row{display:flex;gap:12px;padding:10px 0;border-bottom:1px dashed var(--line);font-size:12px;align-items:flex-start}.food-row:last-child{border:0}.food-row>div:first-child{flex:1}.food-row small{display:block;color:var(--muted);font-size:10px;line-height:1.6;margin-top:3px}.food-row .food-value{white-space:nowrap;font-size:11px;text-align:right}.meal-notes{font-size:11px;color:var(--muted);line-height:1.6;margin:10px 0}.meal-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:10px;color:var(--muted);margin-top:13px}.danger-link{border:0;background:none;padding:0;color:var(--red);font-size:11px;cursor:pointer}.right-stack{display:grid;gap:18px;align-content:start}.weight-panel{background:#eeefe5}.weight-number{font-family:Georgia,serif;font-size:39px;margin:22px 0 6px;letter-spacing:-1px}.weight-number small{font-family:inherit;font-size:17px;color:var(--muted)}.weight-panel .muted{font-size:11px}.primary,.secondary{border-radius:8px;padding:12px 16px;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:12px;text-decoration:none}.primary{background:var(--green);color:white;border:1px solid var(--green)}.primary:hover{background:#485632}.secondary{background:transparent;border:1px solid #d6dacb;color:var(--green)}.secondary:hover{background:var(--pale)}.weight-panel button{width:100%;margin-top:22px}.note-panel{padding:22px 5px}.note-panel .note-icon{font-size:22px;color:var(--green);margin-bottom:13px}.note-panel p{font-size:12px;color:var(--muted);line-height:1.7;margin:11px 0 15px}.empty{padding:38px 16px;text-align:center}.empty-symbol{font-size:32px;color:#9fa98c;margin-bottom:16px}.empty h3{font-weight:500;font-size:15px;margin-bottom:10px}.empty p{font-size:12px;line-height:1.8;color:var(--muted);max-width:350px;margin:auto}.empty code{font:inherit;color:var(--green)}.journal-note{padding-top:16px;border-top:1px solid var(--line);font-size:10px;color:var(--muted);line-height:1.6;margin-top:6px}.range-controls{display:flex;gap:5px}.range-controls button{border:1px solid var(--line);border-radius:7px;padding:8px 12px;background:var(--paper);font-size:11px}.range-controls button.active{background:var(--pale);border-color:#d7dfc8;color:var(--green)}.summary-strip{display:flex;gap:30px;flex-wrap:wrap;margin-bottom:24px;padding:21px 25px;border-radius:12px;background:#edeee4}.summary-strip .stat-label{color:var(--muted);font-size:10px;display:block;margin-bottom:7px}.summary-strip .stat-value{font-size:22px}.summary-strip small{font-size:11px;color:var(--muted)}.chart-wrap{height:240px;position:relative;margin:15px 0 5px}.chart-wrap canvas{width:100%;height:100%;display:block}.chart-empty{height:100%;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px}.chart-caption{font-size:10px;color:var(--muted);margin-top:12px;line-height:1.6}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:12px;white-space:nowrap}th{color:var(--muted);font-size:10px;font-weight:400;padding:12px 14px;border-bottom:1px solid var(--line)}td{padding:15px 14px;border-bottom:1px solid #eeefe7;font-variant-numeric:tabular-nums}tr:last-child td{border-bottom:0}.table-day{background:none;border:0;font:inherit;text-align:left;padding:0;color:var(--green);text-decoration:underline;text-underline-offset:4px}.no-records{color:#a0a493}.settings-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}.stack{display:grid;gap:17px}.stack>p{line-height:1.7}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}label{font-size:11px;color:#666e5c;display:grid;gap:8px;line-height:1.5}input,textarea,select{width:100%;min-width:0;border:1px solid #dedfd3;border-radius:7px;background:var(--paper);padding:11px 12px;color:var(--ink);font-size:13px}textarea{resize:vertical}.full-width{grid-column:1/-1}.settings-grid .panel+.panel{margin-top:0}.connection-panel{margin-top:24px}.connection-panel .muted{font-size:12px}.endpoint{display:flex;align-items:center;gap:10px;padding:12px 14px;background:#f0f1e9;border-radius:8px;margin:15px 0}.endpoint code{font-size:12px;word-break:break-all;flex:1}.endpoint button{white-space:nowrap}.steps{margin:15px 0;padding-left:20px;font-size:12px;line-height:1.9;color:#69725f}.goal-history{margin-top:18px}.goal-history summary{font-size:12px;color:var(--green);cursor:pointer}.loading{padding:80px;text-align:center;color:var(--muted);font-size:13px}footer{height:69px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:1.7px;color:#959b89}footer span{font-size:10px;letter-spacing:0}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:14px 23px;background:var(--ink);color:white;box-shadow:0 8px 30px #29302520;border-radius:9px;font-size:12px;max-width:min(90vw,600px);line-height:1.6;z-index:100}.toast.error{background:#8e493f}dialog{border:1px solid var(--line);border-radius:16px;padding:28px;width:480px;max-width:calc(100vw - 32px);max-height:90dvh;box-shadow:0 30px 100px #29302530;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#29302550;backdrop-filter:blur(3px)}.dialog-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.dialog-header h2{margin-top:9px}.auth-page{display:grid;grid-template-columns:1fr 1fr;min-height:100dvh}.auth-card{width:360px;max-width:calc(100vw - 48px);margin:auto;padding:50px 0}.auth-card .brand{margin-bottom:62px}.auth-card h1{font-size:45px;margin:17px 0}.auth-card>p.muted{font-size:13px;margin-bottom:32px}.auth-card .primary{justify-content:space-between;padding:14px 17px}.auth-note{margin-top:30px;color:var(--muted);font-size:10px;line-height:1.6}.auth-art{background:#e9ecdf;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden;gap:55px}.art-circle{width:310px;height:310px;border-radius:50%;background:linear-gradient(135deg,#bac4a1,#5d7046);box-shadow:25px 25px 0 #d5ddc6,-25px -25px 0 #dfe5d3;position:relative}.art-circle:after{content:"";position:absolute;inset:50px;border-radius:50%;border:1px solid #e1e6d5;transform:rotate(-30deg) scaleX(.6)}.auth-art p{font:36px/1.3 Georgia,serif;color:#56633d;text-align:center;letter-spacing:-1px}.auth-art em{font-size:24px}.auth-art>span{font-size:9px;letter-spacing:2px;color:#889477}.form-error{color:var(--red);font-size:12px;line-height:1.6;margin:15px 0}.consent-page{display:block}.consent-page .auth-card{width:440px}.consent-page .auth-card>p{font-size:13px;line-height:1.8}.consent-list{padding-left:20px;font-size:12px;line-height:2;color:#69725f;margin:20px 0}.consent-page .text-link{display:inline-block;margin-top:24px}.consent-page .primary{justify-content:center}.section-gap{margin-top:24px}.progress-panels{display:grid;gap:24px}.weight-delta{font-size:12px;color:var(--green)}.button-row{display:flex;gap:10px;flex-wrap:wrap}.date-badge{color:var(--muted);font-size:11px}.refresh-button{border:0;background:none;color:var(--muted);font-size:10px;padding:0;cursor:pointer}.form-help{font-size:10px;color:var(--muted);line-height:1.6}
@media(min-width:1450px){.workspace{padding:0 60px}.two-column{grid-template-columns:minmax(0,1fr) 300px}}
@media(max-width:1150px){.shell{grid-template-columns:195px minmax(0,1fr)}.sidebar{padding:30px 16px}.workspace{padding:0 25px}.two-column{grid-template-columns:minmax(0,1fr) 220px;gap:16px}.metrics{gap:10px}.metric{padding:17px 13px}.metric-number{font-size:27px}.panel{padding:19px}.settings-grid{gap:16px}.topbar-note{display:none}.nav-item{padding:12px 10px;font-size:12px}}
@media(max-width:850px){.two-column{grid-template-columns:1fr}.right-stack{grid-template-columns:1fr 1fr;gap:20px}.note-panel{padding:10px}.settings-grid{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr)}.page-heading{align-items:flex-start;flex-wrap:wrap}h1{font-size:39px}.summary-strip{gap:22px}.auth-art{gap:45px}.art-circle{width:210px;height:210px}.auth-art p{font-size:26px}.auth-art em{font-size:20px}.auth-card{width:300px}.auth-card h1{font-size:36px}}
@media(max-width:620px){.shell{display:block}.sidebar{position:sticky;z-index:20;top:0;height:auto;padding:14px 18px 8px;border-right:0;border-bottom:1px solid var(--line)}.sidebar .brand{font-size:24px}.brand span{font-size:8px;margin-bottom:7px}.sidebar-caption,.sidebar-bottom{display:none}nav{display:flex;gap:4px;margin-top:14px;justify-content:space-between}.nav-item{padding:9px 8px;gap:5px;font-size:10px;white-space:nowrap;justify-content:center}.nav-item span{font-size:15px;width:auto}.workspace{padding:0 18px}.topbar{height:49px}#page{padding-top:25px;min-height:calc(100dvh - 229px)}h1{font-size:34px}.page-heading{gap:18px;margin-bottom:22px}.page-heading .muted{font-size:12px}.date-picker input{font-size:11px;width:125px}.metric{padding:18px 15px}.metric-number{margin-top:17px;font-size:29px}.metrics{gap:10px;margin-bottom:18px}.metric-remaining{font-size:9px}.metric-goal{font-size:9px}.track{margin-top:15px}.panel{padding:19px 16px}.panel-title h2{font-size:24px}.right-stack{gap:15px}.weight-panel{padding:19px 15px}.weight-number{font-size:32px}.weight-panel button{padding:10px 5px;font-size:10px}.note-panel p{font-size:10px}.note-panel h3{font-size:13px}.meal-items{margin-left:0}.meal-title{font-size:12px}.meal-calories{font-size:14px}.meal-symbol{width:31px;height:31px}.meal summary{gap:10px}.meal-footer{flex-wrap:wrap;line-height:1.6}.summary-strip{padding:18px;gap:24px}.summary-strip .stat-value{font-size:20px}.chart-wrap{height:215px}.table-scroll{margin:0 -8px}td{padding:14px 10px}th{padding:11px 10px}.chart-caption{font-size:9px}footer{font-size:8px;gap:20px}footer span{font-size:9px}.auth-page{display:block}.auth-card{width:350px}.auth-art{display:none}.auth-card .brand{margin-bottom:58px}.auth-card h1{font-size:43px}.auth-card .brand span{margin-bottom:9px}.endpoint{padding:10px;flex-wrap:wrap}.endpoint code{font-size:10px}.dialog-header h2{font-size:24px}dialog{padding:22px}.settings-grid .panel{padding:22px 17px}.date-badge{font-size:10px}.full-mobile{width:100%}}
@media(prefers-reduced-motion:no-preference){button,a{transition:background .15s,color .15s}.metric{animation:appear .35s ease both}@keyframes appear{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}}
