:root{--bg:#f5f6f2;--surface:#fff;--surface2:#eef2eb;--ink:#15231c;--muted:#6f7c75;--line:#dfe5df;--brand:#173b2c;--brand2:#275b45;--lime:#cde978;--danger:#a13a3a;--shadow:0 18px 55px rgba(30,50,40,.08);--radius:20px;--radius-sm:12px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg)}button,input,select,textarea{font:inherit;color:inherit}button,a{transition:.16s ease}button{cursor:pointer}.hidden{display:none!important}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.69rem;font-weight:800;color:#708178}.brand{display:flex;align-items:center;gap:.75rem;color:var(--ink);text-decoration:none;font-weight:850;font-size:1.05rem}.brand img{width:34px;height:34px;border-radius:10px}.brand-light{color:white}.brand-light img{width:42px;height:42px}.primary,.secondary,.ghost,.danger{border:0;border-radius:12px;padding:.78rem 1rem;font-weight:750}.primary{background:var(--brand);color:white;box-shadow:0 5px 18px rgba(23,59,44,.16)}.primary:hover{background:var(--brand2)}.secondary{background:var(--surface);border:1px solid var(--line)}.secondary:hover{border-color:#b7c3ba}.ghost{background:transparent;color:var(--muted)}.danger{background:#f8e9e8;color:var(--danger)}.wide{width:100%;display:flex;justify-content:center;text-decoration:none}.small{font-size:.82rem;padding:.5rem .7rem}.compact{display:flex;align-items:center;gap:.45rem;padding:.65rem .9rem}.icon-button{border:0;background:transparent;font-size:1.35rem;padding:.4rem}.mobile-only{display:none}.toast{position:fixed;z-index:100;top:1rem;left:50%;transform:translate(-50%,-140%);background:#19251f;color:white;padding:.78rem 1.1rem;border-radius:999px;box-shadow:var(--shadow);transition:.22s ease;max-width:min(90vw,520px);font-weight:650}.toast.show{transform:translate(-50%,0)}.toast.error{background:#772d2d}
.auth-shell{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(430px,.9fr);min-height:100vh}.auth-hero{padding:3rem clamp(2rem,6vw,7rem);background:radial-gradient(circle at 20% 10%,#376850 0,transparent 35%),linear-gradient(145deg,#102b20,#173b2c 65%,#234b39);color:white;display:flex;flex-direction:column}.auth-copy{margin:auto 0;max-width:760px}.auth-copy .eyebrow{color:var(--lime)}.auth-copy h1{font-family:Georgia,serif;font-size:clamp(3rem,6vw,6.8rem);line-height:.92;letter-spacing:-.055em;margin:.6rem 0 1.4rem;font-weight:500}.auth-copy p{font-size:1.12rem;line-height:1.7;color:#d7e2dc;max-width:660px}.feature-pills{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:2rem}.feature-pills span{padding:.55rem .8rem;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.06);font-size:.84rem}.auth-panel{display:grid;place-items:center;padding:2rem;background:#f8f9f6}.auth-card{width:min(100%,430px);background:white;border:1px solid var(--line);border-radius:26px;padding:2rem;box-shadow:var(--shadow)}.auth-card h2{font-size:1.8rem;margin:1.6rem 0 .25rem}.segmented{display:grid;grid-template-columns:1fr 1fr;padding:.25rem;border-radius:12px;background:var(--surface2)}.segmented button{border:0;background:transparent;border-radius:9px;padding:.65rem;font-weight:700;color:var(--muted)}.segmented button.active{background:white;color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.06)}.stack-form{display:grid;gap:1rem;margin-top:1.4rem}.stack-form label,.field{display:grid;gap:.4rem;font-size:.82rem;font-weight:700}.stack-form input,.stack-form select,.field input,.field select,.field textarea,.search-box input{width:100%;border:1px solid var(--line);border-radius:11px;padding:.78rem .85rem;background:white;outline:none}.stack-form input:focus,.field input:focus,.field select:focus,.search-box input:focus{border-color:#76927f;box-shadow:0 0 0 3px rgba(39,91,69,.09)}.or{height:1px;background:var(--line);margin:1.6rem 0;position:relative}.or span{position:absolute;background:white;color:var(--muted);padding:0 .7rem;left:50%;top:50%;transform:translate(-50%,-50%);font-size:.78rem}.social-buttons{display:grid;gap:.7rem}
.app{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:#fafbf8;border-right:1px solid var(--line);padding:1.6rem 1.15rem;display:flex;flex-direction:column;z-index:20}.nav-list{display:grid;gap:.3rem;margin-top:2.3rem}.nav-list button{border:0;background:transparent;text-align:left;padding:.75rem .8rem;border-radius:12px;display:flex;align-items:center;gap:.8rem;color:#637168;font-weight:700}.nav-list button.active,.nav-list button:hover{background:#e9efe9;color:var(--brand)}.nav-icon{width:1.1rem;text-align:center}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding-top:1rem}.user-chip{display:flex;gap:.7rem;align-items:center;margin-bottom:.4rem;min-width:0}.user-chip>div:last-child{min-width:0}.user-chip strong,.user-chip small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-chip small{color:var(--muted);font-size:.7rem;margin-top:.12rem}.avatar{width:36px;height:36px;border-radius:50%;background:var(--brand);color:white;display:grid;place-items:center;font-weight:800;flex:0 0 auto}.main-column{margin-left:250px;min-height:100vh}.topbar{height:94px;display:flex;align-items:center;justify-content:space-between;padding:1.2rem clamp(1rem,4vw,3.2rem);border-bottom:1px solid var(--line);background:rgba(247,248,245,.92);backdrop-filter:blur(14px);position:sticky;top:0;z-index:15}.topbar h1{margin:.08rem 0 0;font-size:1.35rem}.top-actions{display:flex;gap:.65rem}.content{padding:2rem clamp(1rem,4vw,3.2rem) 6rem;max-width:1500px;margin:0 auto}.mobile-nav{display:none}
.date-strip{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.4rem}.date-nav{display:flex;align-items:center;gap:.45rem;background:white;border:1px solid var(--line);border-radius:13px;padding:.3rem}.date-nav button{border:0;background:transparent;width:34px;height:34px;border-radius:9px}.date-nav button:hover{background:var(--surface2)}.date-nav input{border:0;background:transparent;font-weight:750;outline:none;padding:.3rem}.quick-row{display:flex;gap:.6rem;flex-wrap:wrap}.metric-grid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}.metric-card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem;min-width:0}.metric-card.big{background:var(--brand);color:white;display:flex;justify-content:space-between;align-items:center}.metric-card small{display:block;color:var(--muted);font-weight:650;margin-bottom:.45rem}.metric-card.big small{color:#c9d6cf}.metric-value{font-size:1.7rem;font-weight:850;letter-spacing:-.04em}.metric-sub{font-size:.78rem;color:var(--muted);margin-top:.22rem}.ring{--p:0;width:92px;height:92px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--lime) calc(var(--p)*1%),rgba(255,255,255,.13) 0);position:relative;flex:0 0 auto}.ring:before{content:"";position:absolute;inset:8px;background:var(--brand);border-radius:50%}.ring span{z-index:1;font-weight:800;font-size:.8rem}.progress-track{height:7px;border-radius:999px;background:#e8ece8;overflow:hidden;margin-top:.85rem}.progress-track span{display:block;height:100%;background:var(--brand);border-radius:999px}.section-head{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin:1.6rem 0 .8rem}.section-head h2{font-size:1.15rem;margin:0}.section-head p{margin:.2rem 0 0}.meal-stack{display:grid;gap:.8rem}.meal-card{background:white;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.meal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.1rem;border-bottom:1px solid var(--line)}.meal-header h3{margin:0;font-size:1rem}.meal-header small{color:var(--muted)}.meal-items{display:grid}.food-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:1rem;padding:.9rem 1.1rem;border-bottom:1px solid #edf0ed}.food-row:last-child{border:0}.food-title{font-weight:750}.food-meta{font-size:.74rem;color:var(--muted);margin-top:.22rem}.food-kcal{text-align:right;font-weight:800}.food-kcal small{display:block;color:var(--muted);font-weight:500}.food-actions{display:flex;gap:.25rem}.food-actions button{border:0;background:transparent;color:var(--muted);padding:.35rem}.meal-empty{padding:1rem 1.1rem;color:var(--muted);font-size:.86rem}.meal-footer{padding:.7rem 1.1rem;background:#fbfcfa;display:flex;justify-content:space-between;align-items:center}.text-button{border:0;background:transparent;color:var(--brand);font-weight:800;padding:.3rem 0}
.panel{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem}.two-col{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr);gap:1rem}.chart-wrap{min-height:260px;display:flex;align-items:end}.chart{width:100%;height:250px;overflow:visible}.chart .gridline{stroke:#e7ebe7;stroke-width:1}.chart .line{fill:none;stroke:var(--brand);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.chart .area{fill:url(#chartGradient)}.chart .dot{fill:white;stroke:var(--brand);stroke-width:3}.chart text{font-size:10px;fill:#839087}.stat-list{display:grid;gap:.8rem}.stat-line{display:flex;justify-content:space-between;align-items:center;padding:.8rem 0;border-bottom:1px solid var(--line)}.stat-line:last-child{border:0}.stat-line strong{font-size:1.05rem}.range-tabs{display:flex;gap:.35rem;background:var(--surface2);padding:.3rem;border-radius:12px}.range-tabs button{border:0;background:transparent;border-radius:9px;padding:.5rem .7rem;font-size:.78rem;font-weight:700}.range-tabs button.active{background:white;box-shadow:0 2px 7px rgba(0,0,0,.05)}.list{display:grid;gap:.6rem}.list-row{border:1px solid var(--line);border-radius:14px;padding:.9rem 1rem;display:flex;justify-content:space-between;gap:1rem;align-items:center}.list-row .meta{color:var(--muted);font-size:.76rem;margin-top:.2rem}.empty-state{padding:3.5rem 1rem;text-align:center;color:var(--muted)}.empty-state .glyph{font-size:2.4rem;margin-bottom:.7rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.form-grid .span-2{grid-column:span 2}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.settings-card h2{margin-top:0;font-size:1.08rem}.settings-card p{font-size:.84rem}.button-row{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1rem}.callout{border-radius:14px;padding:.85rem 1rem;background:#f0f4e8;border:1px solid #dce7c8;font-size:.83rem;color:#455440}
.modal{border:0;border-radius:22px;padding:0;width:min(94vw,720px);max-height:90vh;box-shadow:0 30px 100px rgba(0,0,0,.25);background:white}.modal::backdrop{background:rgba(10,20,15,.48);backdrop-filter:blur(2px)}.modal-shell{padding:1.2rem}.modal-head{display:flex;align-items:start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.modal-head h2{margin:.2rem 0 0}.modal-close{border:0;background:var(--surface2);border-radius:50%;width:36px;height:36px}.search-box{display:flex;gap:.5rem;margin-bottom:1rem}.search-box input{flex:1}.search-results{display:grid;gap:.55rem;max-height:55vh;overflow:auto}.food-result{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;padding:.85rem;border:1px solid var(--line);border-radius:14px;align-items:center}.food-result strong{display:block}.food-result small{color:var(--muted)}.result-macros{font-size:.7rem;color:var(--muted);margin-top:.3rem}.result-actions{display:flex;gap:.4rem}.camera-box{background:#111;border-radius:16px;overflow:hidden;aspect-ratio:4/3;position:relative;display:grid;place-items:center;color:white}.camera-box video,.camera-box img{width:100%;height:100%;object-fit:cover}.scan-guide{position:absolute;inset:25% 10%;border:2px solid var(--lime);border-radius:16px;box-shadow:0 0 0 999px rgba(0,0,0,.2)}.photo-preview{max-height:320px}.analysis-list{display:grid;gap:.6rem;margin-top:1rem}.analysis-item{border:1px solid var(--line);border-radius:14px;padding:.85rem}.analysis-item-grid{display:grid;grid-template-columns:2fr repeat(5,1fr);gap:.5rem;align-items:end}.analysis-item input{width:100%;border:1px solid var(--line);border-radius:9px;padding:.55rem}.confidence{font-size:.72rem;color:var(--muted)}
@media(max-width:1050px){.metric-grid{grid-template-columns:1fr 1fr}.metric-card.big{grid-column:span 2}.two-col,.settings-grid{grid-template-columns:1fr}.auth-shell{grid-template-columns:1fr 420px}.auth-hero{padding:2rem}.auth-copy h1{font-size:4rem}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.2s ease;box-shadow:var(--shadow)}.sidebar.open{transform:none}.main-column{margin-left:0}.topbar{height:78px;padding:.85rem 1rem}.topbar .eyebrow{display:none}.topbar h1{font-size:1.15rem}.mobile-only{display:block}.top-actions .secondary span{display:none}.content{padding:1rem .85rem 7rem}.mobile-nav{display:grid;grid-template-columns:1fr 1fr 58px 1fr 1fr;position:fixed;z-index:18;bottom:0;left:0;right:0;padding:.45rem .6rem max(.45rem,env(safe-area-inset-bottom));background:rgba(255,255,255,.96);border-top:1px solid var(--line);backdrop-filter:blur(14px)}.mobile-nav button{border:0;background:transparent;display:grid;place-items:center;gap:.08rem;color:var(--muted);font-size:1.05rem}.mobile-nav button.active{color:var(--brand)}.mobile-nav small{font-size:.63rem}.mobile-nav .add-fab{width:48px;height:48px;border-radius:50%;background:var(--brand);color:white;font-size:1.8rem;align-self:center;justify-self:center;margin-top:-18px;box-shadow:0 7px 20px rgba(23,59,44,.25)}.date-strip{align-items:stretch;flex-direction:column}.quick-row{display:grid;grid-template-columns:1fr 1fr 1fr}.quick-row button{justify-content:center}.metric-grid{gap:.7rem}.metric-card{padding:1rem}.metric-card.big{grid-column:span 2}.ring{width:78px;height:78px}.metric-value{font-size:1.45rem}.food-row{grid-template-columns:minmax(0,1fr) auto;gap:.5rem}.food-actions{grid-column:1/-1;justify-content:flex-end;margin-top:-.4rem}.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:span 1}.analysis-item-grid{grid-template-columns:1fr 1fr}.auth-shell{display:block;background:#f8f9f6}.auth-hero{min-height:310px;padding:1.4rem;background:linear-gradient(145deg,#102b20,#173b2c)}.auth-copy{margin:3rem 0 1rem}.auth-copy h1{font-size:2.9rem}.auth-copy p{font-size:.96rem}.feature-pills{display:none}.auth-panel{padding:0 1rem 2rem;margin-top:-20px;position:relative}.auth-card{padding:1.4rem}.modal{width:100vw;max-width:none;border-radius:22px 22px 0 0;margin:auto 0 0;max-height:92vh}.modal-shell{padding:1rem}.search-results{max-height:60vh}}
