:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#211923;font-synthesis:none;text-rendering:optimizelegibility;background:#fff7fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 15% 0,#f35b9f47,#0000 32rem),linear-gradient(145deg,#fff7fb 0%,#fff 46%,#f4fbff 100%);min-width:320px;min-height:100vh;margin:0}button,input,textarea{font:inherit}button{cursor:pointer;border:0}.login-screen{place-items:center;min-height:100vh;padding:1.25rem;display:grid}.login-card,.panel{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:#ffffffc7;border:1px solid #5b374e21;box-shadow:0 24px 70px #6f3a5924}.login-card{border-radius:22px;width:min(100%,25rem);padding:2rem}.login-card h1,.hero h1,.panel h2{letter-spacing:0;margin:0}.login-card h1{font-size:2.35rem;line-height:1.05}.login-card p{color:#6f5b68;margin:.65rem 0 0;line-height:1.45}.login-card form{gap:.85rem;margin-top:1.75rem;display:grid}.app-shell{width:min(100%,76rem);margin:0 auto;padding:1rem}.hero{justify-content:space-between;align-items:center;gap:1rem;min-height:34vh;padding:clamp(1rem,4vw,3rem) 0 1.5rem;display:flex}.hero h1{max-width:48rem;font-size:clamp(2.6rem,8vw,6.3rem);line-height:.93}.hero-copy{color:#5f4b58;max-width:38rem;font-size:1.05rem;line-height:1.55}.eyebrow{color:#d3367e;letter-spacing:.14em;text-transform:uppercase;margin:0 0 .5rem;font-size:.76rem;font-weight:800}.dashboard-grid{grid-template-columns:minmax(0,1.08fr) minmax(20rem,.92fr);align-items:start;gap:1rem;padding-bottom:2rem;display:grid}.app-menu{z-index:5;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:#ffffffc7;border:1px solid #5b374e21;border-radius:18px;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;margin-bottom:1rem;padding:.35rem;display:grid;position:sticky;top:.75rem;box-shadow:0 16px 40px #6f3a591f}.app-menu button{color:#6f5b68;background:0 0;border-radius:14px;min-height:2.9rem;font-weight:950}.app-menu button.active{color:#fff;background:#211923}.panel{border-radius:24px;padding:1rem}.panel-heading{justify-content:space-between;align-items:start;gap:1rem;display:flex}.field{color:#43323d;gap:.45rem;margin-top:1rem;font-weight:700;display:grid}.field input,.field textarea,.date-input{color:#211923;background:#ffffffe6;border:1px solid #41293829;border-radius:16px;outline:none;width:100%;padding:.9rem 1rem}.field input:focus,.field textarea:focus,.date-input:focus{border-color:#f35b9f;box-shadow:0 0 0 4px #f35b9f24}.field small{color:#806d79;font-weight:500;line-height:1.35}.source-hint{color:#806d79;margin:.75rem 0 0;font-size:.9rem;font-weight:600;line-height:1.35}.field textarea{resize:vertical;min-height:5.5rem}.compact{margin-top:.75rem}.date-input{max-width:10.5rem}.add-row{grid-template-columns:1fr auto auto;gap:.6rem;display:grid}.add-row button,.primary-button,.ghost-button{border-radius:16px;min-height:3rem;font-weight:900}.add-row button,.primary-button{color:#fff;background:#211923;padding:0 1.1rem}.add-row .lookup-button{color:#ac1b62;background:#fff0f7}.meal-stack{gap:.6rem;margin-top:1rem;display:grid}.meal-card{background:#ffffffb8;border:1px solid #4129381a;border-radius:18px;transition:border-color .16s,background .16s,box-shadow .16s;overflow:hidden}.meal-card.active{background:linear-gradient(135deg,#fffffff5,#fff0f7ad);border-color:#f35b9f3d;box-shadow:0 12px 30px #6f3a5914}.meal-card-top{width:100%;min-height:4.25rem;color:inherit;text-align:left;background:0 0;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem;display:flex}.meal-card-top:hover,.meal-card-top:focus-visible{background:#fff0f78f}.meal-card-top:focus-visible{outline-offset:-3px;outline:3px solid #f35b9f42}.meal-title-group,.meal-summary-line{gap:.16rem;min-width:0;display:grid}.meal-title{color:#2f2330;letter-spacing:0;font-size:1rem;font-weight:950}.meal-hint{color:#7b6674;font-size:.84rem;font-weight:700}.meal-summary-line{color:#806d79;flex:1;grid-template-columns:auto minmax(0,1fr) auto;place-items:center end;font-size:.86rem;font-weight:800}.meal-count{color:#6b5260;white-space:nowrap;background:#f3edf1;border-radius:999px;padding:.36rem .58rem}.meal-count.filled{color:#146554;background:#e8faf5}.meal-preview{color:#6f5b68;text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.meal-chevron{color:#fff;background:#211923;border-radius:999px;place-items:center;width:2rem;height:2rem;font-size:1.1rem;line-height:1;display:grid}.meal-card-body{border-top:1px solid #41293814;padding:0 .85rem .85rem}.meal-chips:empty{display:none}.meal-empty{color:#806d79;margin:.75rem 0 0;font-size:.9rem;font-weight:700}.ingredient-box{background:#e8faf59e;border:1px solid #48c6a733;border-radius:18px;gap:.55rem;margin-top:.85rem;padding:.85rem;display:grid}.ingredient-box strong{color:#1d4d44;display:block}.ingredient-box-heading{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.ingredient-box span,.ingredient-box p,.ingredient-box a{color:#42635d;font-size:.9rem;font-weight:700;line-height:1.35}.ingredient-box p{margin:0}.ingredient-box button{color:#fff;background:#1d4d44;border-radius:14px;min-height:2.5rem;font-weight:900}.ingredient-box .ingredient-close{color:#1d4d44;background:#1d4d441a;border-radius:999px;flex:none;width:2rem;min-height:2rem;padding:0;font-size:1.35rem;line-height:1}.ingredient-box .ingredient-close:hover,.ingredient-box .ingredient-close:focus-visible{background:#1d4d4433}.ingredient-box .ingredient-tag{color:#1d4d44;background:#fff;border:1px solid #1d4d4433;border-radius:999px;min-height:0;padding:.42rem .65rem;font-size:.86rem}.ingredient-box .ingredient-tag:hover:not(:disabled),.ingredient-box .ingredient-tag:focus-visible{background:#dff7ef;border-color:#1d4d44}.ingredient-box .ingredient-tag.added{color:#42635d;cursor:default;opacity:1;background:#dff7ef;border-color:#0000}.ingredient-box a{text-decoration:none}.edit-banner{color:#6f244b;background:#fff0f7;border:1px solid #f35b9f2e;border-radius:18px;justify-content:space-between;align-items:center;gap:.75rem;margin-top:1rem;padding:.75rem;font-weight:850;display:flex}.edit-banner button{color:#ac1b62;background:#fff;border-radius:999px;flex:none;min-height:2.3rem;padding:0 .8rem;font-weight:900}.primary-button{background:linear-gradient(135deg,#211923,#7d315e 55%,#f35b9f);width:100%;margin-top:1rem}.primary-button:disabled{opacity:.45;cursor:not-allowed}.autosave-status{color:#806d79;margin-top:1rem;font-size:.9rem;font-weight:800}.ghost-button{color:#432939;background:#ffffffb8;border:1px solid #41293821;flex:none;padding:0 1rem}.chip-list{flex-wrap:wrap;gap:.5rem;margin-top:.85rem;display:flex}.chip,.mini-tags span,.signal-list span{color:#4b3945;background:#f3edf1;border-radius:999px;padding:.58rem .78rem;font-weight:800}.chip.selected{color:#ac1b62;background:#ffe1ef}.switch{align-items:center;gap:.75rem;margin-top:1.2rem;font-weight:800;display:flex}.switch input{accent-color:#f35b9f;width:1.25rem;height:1.25rem}.symptom-box,.signal-card{background:#ffebf5bd;border:1px solid #f35b9f29;border-radius:20px;margin-top:1rem;padding:1rem}.symptom-box>span,.signal-card strong{color:#33222d;font-weight:900}.symptom-subtitle{margin-top:1rem;display:block}.signal-list{flex-wrap:wrap;gap:.45rem;margin-top:.7rem;display:flex}.signal-list span{background:#fff}.stats-row{grid-template-columns:1fr 1fr;gap:.75rem;margin:1rem 0;display:grid}.calendar-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.calendar-nav{gap:.45rem;display:flex}.calendar-nav button{color:#432939;background:#f4edf1;border-radius:14px;width:2.55rem;height:2.55rem;font-size:1.5rem;font-weight:900}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem;margin-top:1rem;display:grid}.weekday{color:#806d79;text-align:center;font-size:.76rem;font-weight:900}.calendar-empty,.calendar-day{aspect-ratio:1;border-radius:14px;min-width:0}.calendar-day{color:#33222d;background:#ffffffc7;place-items:center;font-weight:900;display:grid;position:relative;box-shadow:inset 0 0 0 1px #4129381a}.calendar-day.good{color:#146554;background:#e8faf5;box-shadow:inset 0 0 0 1px #3abea047}.calendar-day.bad{color:#9f174f;background:#ffe1ef;box-shadow:inset 0 0 0 1px #f35b9f57}.calendar-day.selected{outline-offset:2px;outline:3px solid #211923e0}.calendar-day small{font-size:.64rem;position:absolute;bottom:.2rem;right:.28rem}.calendar-legend{color:#6f5b68;flex-wrap:wrap;gap:.8rem;margin-top:.85rem;font-size:.84rem;font-weight:800;display:flex}.calendar-legend span{align-items:center;gap:.35rem;display:inline-flex}.calendar-legend i{border-radius:50%;width:.75rem;height:.75rem}.legend-good{background:#48c6a7}.legend-bad{background:#f35b9f}.selected-day-list{background:#ffffffb8;border-radius:18px;gap:.45rem;margin-top:1rem;padding:.75rem;display:grid}.selected-day-list strong{color:#3a2934}.selected-day-list button{color:#4b3945;text-align:left;background:#f4edf1;border-radius:14px;width:100%;min-height:2.6rem;padding:0 .75rem;font-weight:850}.timeline-eyebrow{margin-top:1.4rem}.trigger-panel{margin-bottom:2rem}.ai-analysis-panel{gap:1rem;min-height:18rem;margin-bottom:2rem;display:grid}.ai-analysis-loading,.ai-analysis-result{color:#33222d;text-align:center;background:#ffffffb8;border:1px solid #4129381a;border-radius:20px;align-content:center;justify-items:center;gap:.9rem;min-height:12rem;display:grid}.ai-analysis-loading strong,.ai-analysis-result strong{font-size:1.25rem}.ai-analysis-result span{color:#806d79;font-weight:750}.ai-spinner{border:.32rem solid #f3edf1;border-top-color:#f35b9f;border-radius:50%;width:3rem;height:3rem;animation:.9s linear infinite ai-spin}@keyframes ai-spin{to{transform:rotate(360deg)}}.trigger-list{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:.85rem;margin-top:1rem;display:grid}.trigger-card{background:linear-gradient(135deg,#fff,#fff0f7);border:1px solid #f35b9f2e;border-radius:20px;padding:1rem}.trigger-card strong{color:#2f2330;text-transform:capitalize;font-size:1.1rem}.trigger-card p{color:#755d6b;margin:.3rem 0 0;font-weight:750;line-height:1.35}.trigger-card small{color:#806d79;margin-top:.75rem;font-weight:800;display:block}.stats-row div{background:linear-gradient(135deg,#fff0f7,#effbff);border-radius:18px;padding:1rem}.stats-row strong{font-size:2rem;display:block}.stats-row span{color:#6f5b68;font-weight:700}.timeline{gap:.75rem;max-height:38rem;padding-right:.25rem;display:grid;overflow:auto}.empty,.note{color:#6f5b68;line-height:1.45}.day-card{background:#fff;border:1px solid #4129381f;border-radius:20px;padding:.9rem}.day-card.bad{background:#fff6fa;border-color:#f35b9f57}.day-top{justify-content:space-between;gap:1rem;display:flex}.day-top time{font-weight:900}.day-top p{color:#755d6b;margin:.2rem 0 0}.day-actions{align-items:flex-start;gap:.4rem;display:flex}.day-actions button{color:#6b5260;background:#f4edf1;border-radius:999px;min-height:2rem;font-weight:900;line-height:1}.day-actions button:first-child{padding:0 .75rem;font-size:.78rem}.day-actions button:last-child{width:2rem;height:2rem;font-size:1.3rem}.mini-tags{flex-wrap:wrap;gap:.4rem;margin-top:.7rem;display:flex}.meal-summary{gap:.75rem;margin-top:.85rem;display:grid}.meal-summary strong{color:#4f3b47;font-size:.82rem}.meal-summary .mini-tags{margin-top:.35rem}.mini-tags span{padding:.42rem .58rem;font-size:.86rem}.error{color:#b3134d;margin:0;font-weight:800}@media (width<=760px){.app-shell{padding:.8rem}.hero{align-items:flex-start;min-height:auto;padding-top:1.2rem}.hero h1{font-size:3.35rem}.hero{flex-direction:column}.dashboard-grid{grid-template-columns:1fr}.panel-heading{flex-direction:column}.meal-card-top{flex-direction:column;align-items:stretch}.meal-summary-line{justify-items:stretch;width:100%}.meal-preview{justify-self:stretch}.date-input{max-width:none}.timeline{max-height:none}.calendar-empty,.calendar-day{border-radius:12px}}@media (width<=420px){.login-card,.panel{border-radius:20px}.hero h1{font-size:2.75rem}.add-row{grid-template-columns:1fr 1fr}.add-row input{grid-column:1/-1}.add-row button{padding:0 .75rem}.app-menu{top:auto;bottom:.75rem}.app-menu button{min-height:2.75rem;padding:0 .45rem;font-size:.86rem}.calendar-grid{gap:.25rem}.calendar-day small{display:none}.day-top{flex-direction:column;align-items:flex-start}}
