:root{--green-950: #142d1c;--green-900: #1c3f26;--green-800: #2b5d37;--green-700: #387044;--green-600: #57a356;--green-500: #69b15f;--green-300: #cbe7b9;--mint-200: #e6f2d9;--mint-100: #f2f8ea;--sun-500: #f4c95d;--sun-400: #f7d277;--sun-200: #fdeec0;--amber-500: #e4a24f;--amber-600: #d28f33;--sand-200: #f6ecda;--sand-100: #fdfaf2;--cream-50: #fffdf7;--text-900: #232a1e;--text-700: #44503f;--text-600: #57624f;--text-500: #6a7563;--line: #e8e6d8;--white: #ffffff;--cta-fill: linear-gradient(135deg, #f8d989 0%, #f1bd54 52%, #e3a338 100%);--cta-fill-hover: linear-gradient(135deg, #fae199 0%, #f4c662 52%, #e9ad42 100%);--cta-text: #1c3f26;--cta-shadow: 0 14px 30px rgba(199, 140, 42, .32);--cta-shadow-hover: 0 20px 42px rgba(199, 140, 42, .4);--shadow-soft: 0 2px 6px rgba(31, 42, 34, .04), 0 24px 70px rgba(31, 42, 34, .11);--shadow-card: 0 1px 3px rgba(31, 42, 34, .04), 0 16px 44px rgba(31, 42, 34, .08);--radius-xl: 32px;--radius-lg: 24px;--radius-md: 18px;--radius-sm: 12px;--kcal: #c98225;--kcal-soft: #fff0cf;--protein: #28784f;--protein-soft: #d7f0dd;--fat: #c96f4b;--fat-soft: #ffe2d7;--carbs: #367f87;--carbs-soft: #d8eff1;--gutter: 20px;--container-max: 960px;--nav-h: 72px;--ink: var(--text-900);--muted: var(--text-500);--text: var(--text-900);--accent: var(--green-600);--danger: #c45c4a;--panel: rgba(255, 255, 255, .86);--border: var(--line);--font-body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display: var(--font-body)}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}html{-webkit-font-smoothing:antialiased}body{margin:0;font-family:var(--font-body);color:var(--text-900);background:var(--sand-100)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;height:100lvh;pointer-events:none;z-index:-3;background:radial-gradient(circle at 14% 8%,rgba(247,206,110,.32),rgba(247,206,110,.1) 18rem,transparent 42rem),radial-gradient(circle at 88% 6%,rgba(248,224,158,.3),rgba(248,224,158,.09) 20rem,transparent 44rem),radial-gradient(circle at 82% 42%,rgba(105,177,95,.15),rgba(105,177,95,.05) 22rem,transparent 46rem),radial-gradient(circle at 38% 82%,rgba(246,236,218,.55),rgba(246,236,218,.18) 24rem,transparent 50rem)}a{color:inherit;text-decoration:none}button{font:inherit}:focus-visible{outline:2px solid var(--green-600);outline-offset:3px}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:min(calc(100% - 2rem),var(--container-max));margin:1rem auto 0;padding:.75rem 1rem;background:#fcfbf7eb;border:1px solid rgba(197,210,188,.55);border-radius:999px;box-shadow:var(--shadow-card)}.app-brand{display:inline-flex;align-items:center;gap:.55rem;color:var(--green-900);text-decoration:none;font-weight:800;font-size:1.08rem;letter-spacing:-.02em}.brand-text{display:flex;flex-direction:column;line-height:1.15}.brand-wordmark{font-weight:800}.app-brand img,.app-brand svg{width:32px;height:32px;flex-shrink:0}.app-nav{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;justify-content:flex-end}.app-nav a{color:var(--text-500);text-decoration:none;font-size:.88rem;font-weight:700}.app-nav a:hover,.app-nav a.active{color:var(--green-800)}.linkish{background:none;border:none;color:var(--text-500);font:inherit;font-weight:700;cursor:pointer;padding:0}.linkish:hover{color:var(--green-800)}.panel-header{align-items:center}.panel-title{margin:.15rem 0 0;color:var(--text-500);font-size:.82rem;font-weight:700}.app-content{flex:1}.page{max-width:var(--container-max);margin:0 auto;padding:1.5rem 1.25rem 4rem}.hero{margin-bottom:1.5rem}.hero h1{font-size:clamp(1.55rem,3vw,2.15rem);font-weight:900;letter-spacing:-.04em;line-height:1.1;margin:0 0 .45rem;color:var(--text-900)}.lede{margin:0;color:var(--text-600);line-height:1.6;max-width:36rem;font-size:1.02rem}.panel{background:var(--panel);border:1px solid rgba(232,230,216,.95);border-radius:var(--radius-lg);padding:1.25rem 1.35rem;box-shadow:var(--shadow-card);margin-bottom:1rem}.panel h2{font-size:1.05rem;font-weight:800;letter-spacing:-.02em;margin:0 0 .75rem;color:var(--green-900)}.panel.highlight{border-color:#5fae6e59;background:linear-gradient(145deg,#fffdf6,#f3f8ec 56%,#e7f1de)}.dashboard-surface{background:linear-gradient(180deg,#fff,#f4fbf3);border:1px solid rgba(95,174,110,.16);border-radius:var(--radius-xl);padding:1.25rem;box-shadow:var(--shadow-soft);margin-bottom:1rem}.supp-card{padding:.85rem 0;border-bottom:1px solid rgba(95,174,110,.14)}.supp-card:last-child{border-bottom:none;padding-bottom:0}.list-plain{list-style:none;margin:0;padding:0}.form-stack{display:flex;flex-direction:column;gap:.85rem}.form-stack label{display:flex;flex-direction:column;gap:.35rem;font-weight:600;color:var(--text-700)}.btn,.button,.form button[type=submit]{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;border:0;border-radius:999px;padding:.72rem 1.15rem;font-weight:800;letter-spacing:-.01em;cursor:pointer;text-decoration:none;transition:transform .22s ease,box-shadow .22s ease,background .22s ease}.btn-primary,.button,.form button[type=submit]{color:var(--cta-text);background:var(--cta-fill);box-shadow:var(--cta-shadow),inset 0 1px #ffffff8c}.btn-primary:hover,.button:hover,.form button[type=submit]:hover:not(:disabled){background:var(--cta-fill-hover);box-shadow:var(--cta-shadow-hover),inset 0 1px #ffffff8c;transform:translateY(-2px)}.btn-secondary{color:var(--green-800);background:#ddf3e2d1;border:1px solid rgba(95,174,110,.18);box-shadow:none}.btn-secondary:hover{transform:translateY(-1px)}.form button[type=submit]:disabled,.btn:disabled{opacity:.6;cursor:wait;transform:none}.chip-row{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.85rem}.chip{display:inline-flex;align-items:center;border-radius:999px;padding:.4rem .85rem;font-size:.85rem;font-weight:700;text-decoration:none;border:1px solid rgba(95,174,110,.18);background:#ddf3e2b3;color:var(--green-800)}.chip.primary{border-color:#c78c2a59;background:linear-gradient(135deg,#fdeec0,#f7d277);color:var(--green-900);box-shadow:0 8px 18px #c78c2a2e}.form{display:flex;flex-direction:column;gap:.9rem;margin:1rem 0 0}.form label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;font-weight:600;color:var(--text-700)}.form input[type=email],.form input[type=password],.form input[type=text],.form input[type=number],.form input[type=date],.form input[type=datetime-local],.form select,.form textarea{border:1px solid var(--line);background:var(--cream-50);color:var(--text-900);border-radius:var(--radius-sm);padding:.7rem .8rem;font:inherit}.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--green-600);outline-offset:1px}.checkbox{flex-direction:row!important;align-items:center;gap:.55rem!important;font-weight:600!important}.field-error,.form-error{color:var(--danger);font-size:.85rem;margin:.35rem 0}.auth-page{max-width:28rem}.auth-page h1{margin:0 0 .35rem;font-size:clamp(1.6rem,4vw,2rem);font-weight:900;letter-spacing:-.04em}.perm-list{max-height:14rem;overflow:auto;font-size:.85rem}.status-line{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.25rem}.check-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-top:1px solid var(--line)}.badge{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:999px;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.badge.ok{background:var(--protein-soft);color:var(--protein)}.badge.fail{background:var(--fat-soft);color:var(--fat)}.muted{color:var(--text-500)}.state.error{color:var(--danger)}.state.error p{margin:.35rem 0 0;color:var(--text-500)}.subnav{display:flex;gap:.45rem;flex-wrap:wrap;width:min(calc(100% - 2rem),var(--container-max));margin:.85rem auto 0;padding:.35rem;border-radius:999px;background:#ffffffb8;border:1px solid var(--line);box-shadow:var(--shadow-card)}.subnav a{color:var(--text-500);text-decoration:none;font-size:.88rem;font-weight:700;padding:.45rem .85rem;border-radius:999px}.subnav a.active{color:var(--green-900);background:var(--mint-100)}.stats-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1.25rem}.stat-value{font-size:1.75rem;font-weight:900;margin:0;letter-spacing:-.04em;color:var(--green-900)}.detail-list{display:grid;grid-template-columns:10rem 1fr;gap:.5rem 1rem;margin:0 0 1rem}.detail-list dt{color:var(--text-500)}.detail-list dd{margin:0}.data-table{width:100%;border-collapse:collapse;margin-top:1rem}.data-table th,.data-table td{text-align:left;padding:.65rem .5rem;border-bottom:1px solid var(--line)}.inline-form{display:flex;gap:.75rem;align-items:center;margin-bottom:1rem;flex-wrap:wrap}.inline-form input{flex:1;min-width:10rem}.tabs{display:flex;gap:.4rem;margin-bottom:1rem;flex-wrap:wrap;padding:.3rem;background:#ffffffb3;border:1px solid var(--line);border-radius:999px;width:fit-content;max-width:100%}.tab{background:transparent;border:0;color:var(--text-500);padding:.45rem .85rem;border-radius:999px;cursor:pointer;font-weight:700;font-size:.88rem}.tab.active{color:var(--green-900);background:var(--mint-100)}.notes-list{list-style:none;padding:0;margin:0 0 1.25rem}.notes-list li{padding:.85rem 0;border-bottom:1px solid var(--line)}.form-actions{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.row{display:flex;gap:.65rem;flex-wrap:wrap;margin-top:.5rem}.macro-stack{display:flex;flex-direction:column;gap:.85rem}.macro-row{display:flex;flex-direction:column;gap:.35rem}.macro-row-head{display:flex;justify-content:space-between;align-items:center;gap:.75rem;font-size:.88rem;font-weight:700;color:var(--text-700)}.macro-dot{width:.55rem;height:.55rem;border-radius:999px;display:inline-block;margin-right:.4rem}.macro-track{height:.7rem;border-radius:999px;background:#e8e6d8d9;overflow:hidden}.macro-fill{height:100%;border-radius:999px;width:var(--target, 0%);transition:width 1s cubic-bezier(.22,1,.36,1)}.macro-row.kcal .macro-dot,.macro-row.kcal .macro-fill{background:var(--kcal)}.macro-row.kcal .macro-track{background:var(--kcal-soft)}.macro-row.protein .macro-dot,.macro-row.protein .macro-fill{background:var(--protein)}.macro-row.protein .macro-track{background:var(--protein-soft)}.macro-row.carbs .macro-dot,.macro-row.carbs .macro-fill{background:var(--carbs)}.macro-row.carbs .macro-track{background:var(--carbs-soft)}.macro-row.fat .macro-dot,.macro-row.fat .macro-fill{background:var(--fat)}.macro-row.fat .macro-track{background:var(--fat-soft)}@media (max-width: 800px){.stats-row{grid-template-columns:repeat(2,minmax(0,1fr))}.app-header{border-radius:var(--radius-lg);align-items:flex-start;flex-direction:column}}@media (max-width: 640px){.stats-row,.detail-list{grid-template-columns:1fr}.tabs{width:100%}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.macro-fill{transition:none}}
