:root{--dp-brand-green:#4d8f7a;--dp-brand-green-dark:#417c69;--dp-brand-blue:#2682a1;--dp-background:#f5f7f6;--dp-navbar:#e8efec;--dp-text:#111;--dp-muted:#66706c;--dp-border:#d6dfdb;--dp-primary-gradient:linear-gradient(135deg, #579777, #2682a1)}*,:before,:after{box-sizing:border-box}:root{font-family:Arial,Helvetica,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;padding:24px}.app-shell{background:#f5f5f5;min-height:100vh}.app-navbar{z-index:50;color:#111;background:#e8efec;border-bottom:1px solid #d6dfdb;position:sticky;top:0}.app-navbar-inner{align-items:center;gap:20px;max-width:1280px;margin:0 auto;padding:18px 20px;display:flex}.app-brand{color:#111;letter-spacing:-.02em;flex-shrink:0;font-size:22px;font-weight:700;text-decoration:none}.app-menu-toggle{color:#202624;cursor:pointer;background:#ffffff73;border:1px solid #aebbb6;border-radius:10px;margin-left:auto;padding:8px 12px;font-size:18px;display:none}.app-nav-area{flex:1;justify-content:space-between;align-items:center;gap:18px;display:flex}.app-nav-links{align-items:center;gap:6px;display:flex}.app-nav-link,.nav-dropdown-trigger{color:#2b3330;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:center;gap:6px;padding:10px 12px;font-size:15px;font-weight:600;text-decoration:none;transition:background .18s,color .18s,opacity .18s;display:inline-flex}:is(.app-nav-link:hover,.nav-dropdown-trigger:hover,.nav-dropdown:has(:focus-visible) .nav-dropdown-trigger){color:#111;background:#355c4f14}.app-nav-link.active{color:#fff;background:#ffffff14}.app-accent-link{color:#fff;background:linear-gradient(135deg,#579777,#2682a1);border:1px solid #0000;transition:transform .18s,box-shadow .18s,filter .18s;box-shadow:0 6px 16px #27788b24}.app-accent-link:hover,.app-accent-link.active{color:#fff;filter:brightness(1.06);background:linear-gradient(135deg,#579777,#2682a1);transform:translateY(-1px);box-shadow:0 8px 20px #27788b38}.nav-dropdown{position:relative}.nav-dropdown-arrow{opacity:.85;font-size:12px;transition:transform .18s}.nav-dropdown:hover .nav-dropdown-arrow{transform:rotate(180deg)}.nav-dropdown:has(:focus-visible) .nav-dropdown-arrow{transform:rotate(180deg)}.nav-dropdown-panel{opacity:0;visibility:hidden;pointer-events:none;z-index:100;min-width:340px;max-width:420px;padding-top:14px;transition:opacity .18s,transform .18s,visibility .18s;position:absolute;top:100%;left:0;transform:translateY(8px)}.nav-dropdown:hover .nav-dropdown-panel{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.nav-dropdown:has(:focus-visible) .nav-dropdown-panel{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.nav-dropdown-panel-inner{background:var(--dp-brand-green);border:1px solid #ffffff2e;border-radius:18px;padding:14px;box-shadow:0 18px 50px #315b4d38}.nav-dropdown-kicker{color:#ffffffb3;letter-spacing:.08em;text-transform:uppercase;margin:0 0 10px;padding:0 8px;font-size:11px;font-weight:700}.nav-dropdown-link{color:#fff;border-radius:12px;padding:12px 10px;text-decoration:none;transition:background .18s;display:block}.nav-dropdown-link:hover{background:#ffffff21}.nav-dropdown-link-title{margin-bottom:4px;font-size:15px;font-weight:700;display:block}.nav-dropdown-link-description{color:#ffffffc2;font-size:13px;line-height:1.4;display:block}.app-nav-actions{align-items:center;gap:14px;display:flex}.app-logout-button{color:#202624;cursor:pointer;background:#ffffff73;border:1px solid #aebbb6;border-radius:10px;padding:9px 15px;font-family:inherit;font-size:14px;font-weight:700;transition:background .18s,color .18s,border-color .18s}.app-logout-button:hover:not(:disabled){color:#111;background:#fff;border-color:#909d98}.app-logout-button:disabled{opacity:.5;cursor:not-allowed}.app-mobile-nav{display:none}.app-content{padding:0}.app-footer{color:#66706c;background:#e8efec;border-top:1px solid #d6dfdb}.app-footer-inner{max-width:1280px;margin:0 auto;padding:16px 20px;font-size:14px}.app-footer-inner p{margin:0}@media (width<=960px){.app-navbar-inner:has(.app-nav-area.is-open) .app-brand{flex-wrap:wrap;display:none}.app-menu-toggle{display:inline-flex}.app-nav-area{flex-direction:column;align-items:stretch;gap:16px;width:100%;padding-top:8px;display:none}.app-nav-area.is-open{display:flex}.app-nav-links,.app-nav-actions{display:none}.app-mobile-nav{flex-direction:column;gap:10px;display:flex}.nav-dropdown.mobile .nav-dropdown-trigger,.app-nav-link.mobile,.app-logout-button.mobile{text-align:left;background:#4d8f7a14;border-radius:12px;justify-content:space-between;width:100%;padding:12px 14px}.app-nav-link.mobile{display:flex}.app-nav-link.mobile.app-accent-link{color:#fff;background:linear-gradient(135deg,#579777,#2682a1);border:1px solid #0000}.app-logout-button.mobile{color:#202624;border-color:#aebbb6}.nav-dropdown.mobile .nav-dropdown-panel{opacity:1;visibility:visible;pointer-events:auto;min-width:0;max-width:none;margin-top:8px;padding-top:0;display:none;position:static;transform:none}.nav-dropdown.mobile.mobile-open .nav-dropdown-panel{display:block}.nav-dropdown.mobile .nav-dropdown-panel-inner{background:var(--dp-brand-green);box-shadow:none;border:1px solid #ffffff2e}.nav-dropdown.mobile .nav-dropdown-arrow{transform:rotate(0)}.nav-dropdown.mobile.mobile-open .nav-dropdown-arrow{transform:rotate(180deg)}}.home-page{background:radial-gradient(circle at 15% 15%,#68c4d629,#0000 34%),radial-gradient(circle at 88% 78%,#9cb87424,#0000 30%),#f5f7f6;min-height:calc(100vh - 120px);position:relative;overflow:hidden}.home-hero{z-index:1;grid-template-columns:minmax(0,1fr) minmax(420px,.9fr);align-items:center;gap:72px;max-width:1280px;min-height:680px;margin:0 auto;padding:72px 32px 88px;display:grid;position:relative}.home-hero-copy{max-width:650px}.home-eyebrow{color:#64726d;letter-spacing:.12em;text-transform:uppercase;margin:0 0 18px;font-size:13px;font-weight:700}.home-hero h1{color:#111;letter-spacing:-.045em;max-width:620px;margin:0;font-size:clamp(52px,5vw,76px);line-height:.98}.home-hero h1 span{color:var(--dp-brand-green)}.home-description{color:#5c6562;max-width:570px;margin:28px 0 0;font-size:18px;line-height:1.65}.home-actions{align-items:center;gap:12px;margin-top:34px;display:flex}.home-primary-action,.home-secondary-action{border-radius:11px;justify-content:center;align-items:center;gap:9px;min-height:48px;padding:0 20px;font-weight:700;text-decoration:none;transition:transform .18s,box-shadow .18s,background .18s;display:inline-flex}.home-primary-action{color:#fff;background:linear-gradient(135deg,#579777,#2682a1);box-shadow:0 10px 24px #27788b2e}.home-primary-action:hover{transform:translateY(-2px);box-shadow:0 14px 28px #27788b3d}.home-secondary-action{color:#202523;background:#ffffffb8;border:1px solid #d2d8d5}.home-secondary-action:hover{background:#fff;transform:translateY(-2px)}.home-secondary-action span{transition:transform .18s}.home-secondary-action:hover span{transform:translate(3px)}.home-helper{color:#7b8380;margin:20px 0 0;font-size:13px}.home-hero-visual{justify-content:center;align-items:center;min-height:510px;display:flex;position:relative}.home-visual-glow{filter:blur(55px);pointer-events:none;border-radius:50%;position:absolute}.home-visual-glow-one{background:#5797773d;width:260px;height:260px;top:40px;left:30px}.home-visual-glow-two{background:#2e89ad2e;width:270px;height:270px;bottom:20px;right:10px}.home-preview-card{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);color:#111;background:#ffffffd1;border:1px solid #ffffffc7;border-radius:22px;position:absolute;box-shadow:0 24px 65px #223e3621}.home-meal-preview{width:min(410px,88%);padding:25px;animation:6s ease-in-out infinite home-float-main;top:72px;left:50%;transform:translate(-54%)}.home-preview-header{color:#68716e;justify-content:space-between;align-items:center;gap:12px;font-size:13px;font-weight:700;display:flex}.home-preview-status{color:#4e806d;text-transform:uppercase;letter-spacing:.06em;background:#edf5f1;border-radius:999px;padding:6px 10px;font-size:11px}.home-calorie-total{color:#151918;letter-spacing:-.04em;margin:26px 0 22px;font-size:48px;font-weight:750}.home-calorie-total span{color:#6e7774;margin-left:6px;font-size:16px;font-weight:600}.home-macro-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.home-macro-grid div{text-align:center;background:#fafbfae0;border:1px solid #e6eae8;border-radius:13px;padding:13px 10px}.home-macro-grid strong{color:#222826;font-size:16px;display:block}.home-macro-grid span{color:#7b8481;margin-top:4px;font-size:11px;display:block}.home-progress-track{background:#e7ece9;border-radius:999px;height:8px;margin-top:22px;overflow:hidden}.home-progress-value{border-radius:inherit;background:linear-gradient(90deg,#579777,#2887a6);width:74%;height:100%}.home-equivalence-preview{width:min(350px,78%);padding:20px;animation:7s ease-in-out infinite home-float-secondary;bottom:42px;right:0}.home-equivalence-preview>p{color:#727b78;text-transform:uppercase;letter-spacing:.08em;margin:0 0 15px;font-size:11px;font-weight:700}.home-equivalence-row{grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;display:grid}.home-equivalence-row>div:not(.home-equivalence-symbol){text-align:center}.home-equivalence-row strong{font-size:21px;display:block}.home-equivalence-row span{color:#767f7c;margin-top:4px;font-size:12px;display:block}.home-equivalence-symbol{color:#4c8c78;font-size:28px;font-weight:700}.home-equivalence-preview small{color:#858d8a;text-align:center;margin-top:15px;font-size:11px;display:block}.home-floating-pill{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#57615e;background:#ffffffb8;border:1px solid #fffc;border-radius:999px;padding:9px 13px;font-size:12px;font-weight:700;position:absolute;box-shadow:0 12px 28px #19362e1a}.home-floating-pill-one{top:35px;right:40px}.home-floating-pill-two{bottom:110px;left:5px}@keyframes home-float-main{0%,to{transform:translate(-54%)translateY(0)}50%{transform:translate(-54%)translateY(-8px)}}@keyframes home-float-secondary{0%,to{transform:translateY(0)}50%{transform:translateY(7px)}}@media (width<=960px){.home-hero{grid-template-columns:1fr;gap:20px;min-height:auto;padding-top:60px}.home-hero-copy{max-width:720px}.home-hero-visual{width:100%;max-width:620px;min-height:500px;margin:0 auto}.home-meal-preview{left:48%}}@media (width<=600px){.home-page{min-height:auto}.home-hero{padding:48px 20px 64px}.home-hero h1{font-size:48px;line-height:1}.home-description{margin-top:22px;font-size:16px}.home-actions{flex-direction:column;align-items:stretch;margin-top:28px}.home-primary-action,.home-secondary-action{width:100%}.home-helper{text-align:center}.home-hero-visual{min-height:445px;margin-top:10px}.home-meal-preview{width:94%;padding:20px;top:55px;left:50%;transform:translate(-50%)}.home-calorie-total{font-size:40px}.home-equivalence-preview{width:82%;padding:17px;bottom:22px;right:0}.home-floating-pill-one{top:5px;right:5px}.home-floating-pill-two{display:none}@keyframes home-float-main{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(-6px)}}}@media (prefers-reduced-motion:reduce){.home-meal-preview,.home-equivalence-preview{animation:none}.home-primary-action,.home-secondary-action,.home-secondary-action span{transition:none}}.meal-card{color:inherit;background:#fff;border:1px solid #ddd;border-radius:16px;padding:22px;text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s;display:block}.meal-card:hover{border-color:#bbb;transform:translateY(-2px);box-shadow:0 8px 24px #00000014}.meal-card:focus-visible{outline-offset:3px;outline:2px solid #111}.meal-card-header{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:20px;display:flex}.meal-card-header h2{margin:0 0 6px;font-size:22px}.meal-card-notes{color:#666;margin:0;font-size:14px}.meal-card-calories{color:#fff;white-space:nowrap;background:#111;border-radius:10px;flex-shrink:0;padding:9px 13px;font-weight:700}.meal-card-recipes-header{color:#666;justify-content:space-between;align-items:center;gap:16px;margin-bottom:10px;font-size:14px;display:flex}.meal-card-view{color:#111;font-weight:600}.meal-card-recipes{border-top:1px solid #eee}.meal-card-recipe{border-bottom:1px solid #eee;justify-content:space-between;align-items:center;gap:20px;padding:12px 0;display:flex}.meal-card-recipe:last-child{border-bottom:none;padding-bottom:0}.meal-card-recipe-info{align-items:center;gap:10px;min-width:0;display:flex}.meal-card-recipe-order{background:#f2f2f2;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;font-weight:700;display:flex}.meal-card-recipe-name{font-weight:500}.meal-card-servings{color:#777;white-space:nowrap;font-size:14px}.meal-card-recipe-calories{color:#555;white-space:nowrap;font-size:14px}@media (width<=650px){.meal-card{padding:18px}.meal-card-header{flex-direction:column;gap:12px}.meal-card-calories{align-self:flex-start}.meal-card-recipe,.meal-card-recipe-info{align-items:flex-start}.meal-card-view{display:none}}.meals-page{max-width:1200px;margin:0 auto;padding:32px 20px 48px}.meals-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:28px;display:flex}.meals-header h1{margin:6px 0 10px;font-size:40px}.meals-header p{color:#555;margin:0}.create-meal-link{color:#fff;background:#111;border-radius:9px;padding:11px 16px;font-weight:600;text-decoration:none;transition:background .15s,transform .15s;display:inline-block}.create-meal-link:hover{background:#2a2a2a}.create-meal-link:active{transform:translateY(1px)}.meals-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:20px;margin-bottom:22px;display:flex}.meal-search{width:min(520px,100%)}.meal-search label{margin-bottom:8px;font-weight:600;display:block}.meal-search input{border:1px solid #ccc;border-radius:9px;width:100%;padding:11px 13px;font-size:16px}.meal-search input:focus{outline-offset:1px;outline:2px solid #222}.meals-count{color:#666;font-size:14px}.meals-list{gap:18px;display:grid}.meals-empty-state{text-align:center;background:#fff;border:1px solid #ddd;border-radius:16px;padding:32px}.meals-empty-state h2{margin-top:0}.meals-empty-state p{color:#666;margin-bottom:0}@media (width<=700px){.meals-header h1{font-size:34px}.create-meal-link{text-align:center;width:100%}}.meal-breakdown-page{max-width:1200px;margin:0 auto;padding:32px 20px 48px}.page-header{margin-bottom:28px}.page-title{margin:0;font-size:40px}.page-subtitle{color:#555;margin:8px 0 0}.meal-summary-card{background:#fafafa;border:1px solid #ddd;border-radius:16px;margin-bottom:28px;padding:24px}.meal-summary-top{margin-bottom:20px}.meal-summary-top h2{margin:0;font-size:32px}.meal-notes{color:#555;margin:8px 0 0}.summary-grid{grid-template-columns:repeat(4,minmax(140px,1fr));gap:16px;display:grid}.summary-box{background:#fff;border:1px solid #e2e2e2;border-radius:12px;padding:16px}.summary-label{color:#666;margin-bottom:8px;font-size:13px;display:block}.summary-box strong{align-items:baseline;gap:5px;font-size:24px;display:flex}.summary-unit{color:#666;font-size:14px;font-weight:600}.recipes-section h3{margin:0 0 16px;font-size:28px}.recipe-card{background:#fff;border:1px solid #ddd;border-radius:16px;margin-bottom:18px;padding:22px}.recipe-header{flex-wrap:wrap;justify-content:space-between;align-items:start;gap:16px;margin-bottom:12px;display:flex}.recipe-header h4{margin:0 0 8px;font-size:26px}.recipe-meta{color:#555;margin:0}.recipe-calories{background:#f4f4f4;border-radius:10px;padding:10px 14px;font-weight:700}.recipe-macros{flex-wrap:wrap;gap:12px;margin-bottom:18px;display:flex}.recipe-macros span{background:#f8f8f8;border:1px solid #e3e3e3;border-radius:999px;padding:8px 12px}.ingredients-table-wrapper{overflow-x:auto}.ingredients-table{border-collapse:collapse;width:100%}.ingredients-table th,.ingredients-table td{text-align:left;border-bottom:1px solid #ececec;padding:12px 10px}.ingredients-table th{color:#555;font-size:14px}@media (width<=900px){.summary-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}.page-title{font-size:32px}.meal-summary-top h2{font-size:28px}.recipe-header h4{font-size:22px}}@media (width<=600px){.summary-grid{grid-template-columns:1fr}}.back-link{color:#111;margin-bottom:10px;font-weight:600;text-decoration:none;display:inline-block}.add-ingredient-page{max-width:1000px;margin:0 auto;padding:32px 20px 48px}.add-ingredient-header{margin-bottom:24px}.add-ingredient-header h1{margin:6px 0 10px;font-size:40px}.add-ingredient-header p{color:#555;margin-top:0}.ingredient-form{flex-direction:column;gap:20px;display:flex}.form-card{background:#fff;border:1px solid #ddd;border-radius:16px;padding:24px}.form-card h2{margin-top:0;margin-bottom:20px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.nutrition-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.form-field{flex-direction:column;gap:8px;display:flex}.form-field-full{grid-column:1/-1}.form-field label{font-weight:600}.form-field input,.form-field select,.form-field textarea{width:100%;font:inherit;background:#fff;border:1px solid #ccc;border-radius:9px;padding:11px 12px}.form-field textarea{resize:vertical}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline-offset:1px;outline:2px solid #222}.calories-hint{color:#666;margin:18px 0 0;font-size:14px}.form-actions{justify-content:flex-end;gap:12px;display:flex}.result-grid{grid-template-columns:repeat(3,minmax(120px,1fr));gap:14px;display:grid}.result-grid div{background:#fff;border:1px solid #ddd;border-radius:10px;padding:14px}.result-grid span{color:#666;margin-bottom:6px;font-size:13px;display:block}.result-grid strong{font-size:18px}@media (width<=800px){.nutrition-grid,.form-grid{grid-template-columns:1fr}.form-field-full{grid-column:auto}.result-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}.add-ingredient-header h1{font-size:34px}}@media (width<=500px){.result-grid{grid-template-columns:1fr}.form-actions{flex-direction:column-reverse}.primary-button,.secondary-button{width:100%}}.ingredients-page{max-width:1200px;margin:0 auto;padding:32px 20px 48px}.ingredients-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:28px;display:flex}.ingredients-header h1{margin:6px 0 10px;font-size:40px}.ingredients-header p{color:#555;margin:0}.add-ingredient-link{color:#fff;background:#111;border-radius:9px;padding:11px 16px;font-weight:600;text-decoration:none;display:inline-block}.ingredients-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:20px;margin-bottom:20px;display:flex}.ingredient-search input{border:1px solid #ccc;border-radius:9px;width:100%;padding:11px 13px;font-size:16px}.ingredients-count{color:#666;font-size:14px}.ingredients-table-wrapper{background:#fff;border:1px solid #ddd;border-radius:16px;overflow-x:auto}.ingredients-list-table{border-collapse:collapse;width:100%}.ingredients-list-table th,.ingredients-list-table td{text-align:left;border-bottom:1px solid #eee;padding:14px 16px}.ingredients-list-table th{color:#555;background:#fafafa;font-size:14px}.ingredients-list-table tbody tr:last-child td{border-bottom:none}.ingredients-list-table tbody tr:hover{background:#fafafa}.ingredient-name{font-weight:600}.ingredient-notes{color:#555;min-width:180px;max-width:280px;line-height:1.4}@media (width<=700px){.ingredients-header h1{font-size:34px}.add-ingredient-link{text-align:center;width:100%}}.create-recipe-page{max-width:1200px;margin:0 auto;padding:32px 20px 48px}.create-recipe-header{margin-bottom:24px}.create-recipe-header h1{margin:6px 0 10px;font-size:40px}.create-recipe-header p{color:#555;margin-top:0}.recipe-name-card{background:#fff;border:1px solid #ddd;border-radius:16px;margin-bottom:20px;padding:22px}.recipe-name-card label{margin-bottom:8px;font-weight:600;display:block}.recipe-name-card input{box-sizing:border-box;border:1px solid #ccc;border-radius:9px;width:100%;padding:11px 12px;font-size:16px}.recipe-name-card input:focus{outline-offset:1px;outline:2px solid #222}.recipe-builder{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;display:grid}.recipe-builder-card{background:#fff;border:1px solid #ddd;border-radius:16px;padding:22px}.builder-card-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.builder-card-header h2{margin:0 0 6px}.builder-card-header p{color:#666;margin:0}.ingredient-search{width:100%}.ingredient-search label{margin-bottom:8px;font-weight:600;display:block}.ingredient-search input{box-sizing:border-box;border:1px solid #ccc;border-radius:9px;width:100%;padding:11px 12px;font-size:16px}.ingredient-search input:focus{outline-offset:1px;outline:2px solid #222}.available-ingredients-list,.selected-ingredients-list{flex-direction:column;gap:10px;margin-top:18px;display:flex}.available-ingredient{border:1px solid #e3e3e3;border-radius:11px;justify-content:space-between;align-items:center;gap:14px;padding:14px;display:flex}.available-ingredient-info{min-width:0}.available-ingredient strong,.selected-ingredient strong{display:block}.available-ingredient span,.selected-ingredient span{color:#666;margin-top:4px;font-size:14px;display:block}.ingredient-brand{color:#777;font-size:13px}.ingredient-macros{color:#555!important;font-size:13px!important}.available-ingredient button{color:#fff;cursor:pointer;white-space:nowrap;background:#111;border:none;border-radius:8px;flex-shrink:0;padding:9px 12px;font-weight:600}.available-ingredient button:hover{opacity:.85}.selected-ingredient{border:1px solid #e3e3e3;border-radius:11px;padding:14px}.selected-ingredient-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.remove-ingredient-button{color:#a12626;cursor:pointer;background:0 0;border:none;font-weight:600}.remove-ingredient-button:hover{text-decoration:underline}.selected-ingredient-fields{grid-template-columns:1fr 1fr;gap:12px;display:grid}.selected-ingredient-fields label{margin-bottom:6px;font-size:13px;font-weight:600;display:block}.selected-ingredient-fields input{box-sizing:border-box;width:100%;font:inherit;border:1px solid #ccc;border-radius:8px;padding:9px 10px}.selected-ingredient-fields input:focus{outline-offset:1px;outline:2px solid #222}.unit-display{box-sizing:border-box;color:#555;background:#f7f7f7;border:1px solid #ddd;border-radius:8px;width:100%;padding:9px 10px}.ingredient-nutrition-preview{border-top:1px solid #eee;grid-template-columns:repeat(4,minmax(90px,1fr));gap:10px;margin-top:14px;padding-top:14px;display:grid}.ingredient-nutrition-preview span{color:#666;margin:0;font-size:12px}.ingredient-nutrition-preview strong{color:#111;margin-top:4px;font-size:14px;display:block}.recipe-empty-state{text-align:center;color:#666;border:1px dashed #ccc;border-radius:11px;padding:22px}.state-message{background:#f7f7f7;border-radius:10px;margin-top:18px;padding:14px}.recipe-preview-summary{background:#fff;border:1px solid #ddd;border-radius:16px;grid-template-columns:repeat(5,minmax(120px,1fr));gap:14px;margin-top:20px;padding:20px;display:grid}.recipe-preview-summary div{background:#fafafa;border:1px solid #eee;border-radius:10px;padding:14px}.recipe-preview-summary span{color:#666;margin-bottom:6px;font-size:13px;display:block}.recipe-preview-summary strong{font-size:18px}.recipe-form-actions{justify-content:flex-end;gap:12px;margin-top:20px;display:flex}.primary-button:hover:not(:disabled),.secondary-button:hover:not(:disabled){opacity:.85}.result-kicker{text-transform:uppercase;letter-spacing:.06em;color:#555;margin:0 0 6px;font-size:13px}.form-result h2{margin:0 0 20px}.recipe-success-summary{grid-template-columns:repeat(3,minmax(120px,1fr));gap:14px;display:grid}.recipe-success-summary div{background:#fff;border:1px solid #ddd;border-radius:10px;padding:14px}.recipe-success-summary span{color:#666;margin-bottom:6px;font-size:13px;display:block}.recipe-success-summary strong{font-size:18px}@media (width<=950px){.recipe-builder{grid-template-columns:1fr}.recipe-preview-summary{grid-template-columns:repeat(3,minmax(120px,1fr))}}@media (width<=700px){.ingredient-nutrition-preview{grid-template-columns:repeat(2,minmax(90px,1fr))}.recipe-preview-summary{grid-template-columns:repeat(2,minmax(120px,1fr))}.create-recipe-header h1{font-size:34px}}@media (width<=500px){.available-ingredient{flex-direction:column;align-items:flex-start}.available-ingredient button{width:100%}.selected-ingredient-fields,.ingredient-nutrition-preview,.recipe-preview-summary,.recipe-success-summary{grid-template-columns:1fr}.recipe-form-actions{flex-direction:column-reverse}.primary-button,.secondary-button{width:100%}}.recipes-page{max-width:1200px;margin:0 auto;padding:32px 20px 48px}.recipes-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:28px;display:flex}.recipes-header h1{margin:6px 0 10px;font-size:40px}.recipes-header p{color:#555;margin:0}.create-recipe-link{color:#fff;background:#111;border-radius:9px;padding:12px 16px;font-weight:600;text-decoration:none;display:inline-block}.create-recipe-link:hover{opacity:.85}.recipes-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px;display:flex}.recipe-search{width:min(600px,100%)}.recipe-search label{margin-bottom:8px;font-weight:600;display:block}.recipe-search input{box-sizing:border-box;border:1px solid #ccc;border-radius:9px;width:100%;padding:11px 13px;font-size:16px}.recipe-search input:focus{outline-offset:1px;outline:2px solid #222}.recipes-count{color:#666;font-size:14px}.recipes-table-wrapper{background:#fff;border:1px solid #ddd;border-radius:16px;overflow-x:auto}.recipes-table{border-collapse:collapse;width:100%}.recipes-table th{color:#555;background:#fafafa;font-size:14px;font-weight:600}.recipes-table th,.recipes-table td{text-align:left;vertical-align:top;border-bottom:1px solid #eee;padding:16px}.recipes-table tbody tr:last-child td{border-bottom:none}.recipes-table tbody tr:hover{background:#fcfcfc}.recipes-table th:first-child{width:25%}.recipes-table th:nth-child(2){width:22%}.recipes-table th:nth-child(3){width:53%}.recipe-name-cell strong{font-size:16px;display:block}.recipe-name-cell span{color:#777;margin-top:6px;font-size:13px;display:block}.recipe-total-nutrition{flex-direction:column;gap:10px;display:flex}.recipe-calories{font-size:17px}.macro-badges{flex-wrap:wrap;gap:6px;display:flex}.macro-badges span{white-space:nowrap;background:#f3f3f3;border:1px solid #e4e4e4;border-radius:999px;padding:5px 8px;font-size:12px}.recipe-ingredients-list{flex-direction:column;display:flex}.recipe-ingredient-row{border-bottom:1px solid #eee;justify-content:space-between;align-items:center;gap:24px;padding:10px 0;display:flex}.recipe-ingredient-row:first-child{padding-top:0}.recipe-ingredient-row:last-child{border-bottom:none;padding-bottom:0}.recipe-ingredient-main{min-width:150px}.recipe-ingredient-main strong{display:block}.recipe-ingredient-main span{color:#777;margin-top:4px;font-size:13px;display:block}.recipe-ingredient-nutrition{text-align:right;white-space:nowrap}.recipe-ingredient-nutrition strong{font-size:14px;display:block}.recipe-ingredient-nutrition span{color:#666;margin-top:4px;font-size:12px;display:block}.state-message{background:#f7f7f7;border-radius:10px;padding:16px}.error-message{color:#a12626;background:#fff1f1}.empty-state{text-align:center;background:#fff;border:1px solid #ddd;border-radius:16px;padding:32px}.empty-state h2{margin-top:0}.empty-state p{color:#666;margin-bottom:0}@media (width<=800px){.recipes-header h1{font-size:34px}.create-recipe-link{box-sizing:border-box;text-align:center;width:100%}}@media (width<=650px){.recipe-ingredient-row{flex-direction:column;align-items:flex-start;gap:8px}.recipe-ingredient-nutrition{text-align:left}}.create-meal-page{max-width:1200px;margin:0 auto;padding:32px 20px 48px}.create-meal-header{margin-bottom:24px}.create-meal-header h1{margin:6px 0 10px;font-size:40px}.create-meal-header p{color:#555;margin-top:0}.meal-information-card{background:#fff;border:1px solid #ddd;border-radius:16px;margin-bottom:20px;padding:22px}.meal-information-card h2{margin:0 0 20px}.meal-information-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.meal-form-field{flex-direction:column;gap:8px;display:flex}.meal-form-field label{font-weight:600}.meal-form-field input{box-sizing:border-box;border:1px solid #ccc;border-radius:9px;width:100%;padding:11px 12px;font-size:16px}.meal-form-field input:focus{outline-offset:1px;outline:2px solid #222}.meal-builder{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;display:grid}.meal-builder-card{background:#fff;border:1px solid #ddd;border-radius:16px;padding:22px}.meal-builder-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.meal-builder-header h2{margin:0 0 6px}.meal-builder-header p{color:#666;margin:0}.meal-recipe-search label{margin-bottom:8px;font-weight:600;display:block}.meal-recipe-search input{box-sizing:border-box;border:1px solid #ccc;border-radius:9px;width:100%;padding:11px 12px;font-size:16px}.meal-recipe-search input:focus{outline-offset:1px;outline:2px solid #222}.available-recipes-list,.selected-recipes-list{flex-direction:column;gap:10px;margin-top:18px;display:flex}.available-recipe{border:1px solid #e3e3e3;border-radius:11px;justify-content:space-between;align-items:center;gap:14px;padding:14px;display:flex}.available-recipe-info{min-width:0}.available-recipe-info strong{display:block}.available-recipe-info span{color:#666;margin-top:4px;font-size:13px;display:block}.available-recipe-macros{color:#444!important}.times-added{font-weight:600;color:#111!important}.available-recipe button{color:#fff;cursor:pointer;background:#111;border:none;border-radius:8px;flex-shrink:0;padding:9px 12px;font-weight:600}.available-recipe button:hover{opacity:.85}.selected-recipe{border:1px solid #e3e3e3;border-radius:12px;padding:15px}.selected-recipe-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.selected-recipe-top strong{margin-top:6px;display:block}.meal-slot{color:#fff;background:#111;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:700;display:inline-block}.remove-recipe-button{color:#a12626;cursor:pointer;background:0 0;border:none;font-weight:600}.remove-recipe-button:hover{text-decoration:underline}.selected-recipe-nutrition{border-top:1px solid #eee;grid-template-columns:repeat(4,minmax(90px,1fr));gap:10px;margin-top:14px;padding-top:14px;display:grid}.selected-recipe-nutrition span{color:#666;font-size:12px}.selected-recipe-nutrition strong{color:#111;margin-top:4px;font-size:14px;display:block}.recipe-order-controls{gap:8px;margin-top:14px;display:flex}.recipe-order-controls button{cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:8px;padding:7px 10px;font-size:12px;font-weight:600}.recipe-order-controls button:disabled{opacity:.4;cursor:not-allowed}.selected-count{color:#fff;background:#111;border-radius:999px;justify-content:center;align-items:center;min-width:36px;height:36px;padding:0 10px;font-weight:700;display:flex}.meal-empty-state{text-align:center;color:#666;border:1px dashed #ccc;border-radius:11px;padding:22px}.meal-preview-summary{background:#fff;border:1px solid #ddd;border-radius:16px;grid-template-columns:repeat(5,minmax(120px,1fr));gap:14px;margin-top:20px;padding:20px;display:grid}.meal-preview-summary div{background:#fafafa;border:1px solid #eee;border-radius:10px;padding:14px}.meal-preview-summary span{color:#666;margin-bottom:6px;font-size:13px;display:block}.meal-preview-summary strong{font-size:18px}.meal-form-actions{justify-content:flex-end;gap:12px;margin-top:20px;display:flex}.primary-button,.secondary-button{cursor:pointer;border-radius:9px;padding:11px 18px;font-size:15px;font-weight:600}.primary-button{color:#fff;background:#111;border:none}.secondary-button{color:#111;background:#fff;border:1px solid #ccc}.primary-button:disabled,.secondary-button:disabled{opacity:.5;cursor:not-allowed}.form-result{border-radius:16px;margin-top:24px;padding:24px}.success-result{background:#f5fff7;border:1px solid #bddfc5}.error-result{background:#fff3f3;border:1px solid #e3baba}.result-kicker{color:#555;text-transform:uppercase;letter-spacing:.06em;margin:0 0 6px;font-size:13px}.meal-success-summary{grid-template-columns:repeat(3,minmax(120px,1fr));gap:14px;display:grid}.meal-success-summary div{background:#fff;border:1px solid #ddd;border-radius:10px;padding:14px}.meal-success-summary span{color:#666;margin-bottom:6px;font-size:13px;display:block}.meal-success-summary strong{font-size:18px}@media (width<=950px){.meal-builder{grid-template-columns:1fr}.meal-preview-summary{grid-template-columns:repeat(3,minmax(120px,1fr))}}@media (width<=700px){.meal-information-grid{grid-template-columns:1fr}.selected-recipe-nutrition{grid-template-columns:repeat(2,minmax(90px,1fr))}.meal-preview-summary{grid-template-columns:repeat(2,minmax(120px,1fr))}.create-meal-header h1{font-size:34px}}@media (width<=500px){.available-recipe{flex-direction:column;align-items:flex-start}.available-recipe button{width:100%}.selected-recipe-nutrition,.meal-preview-summary,.meal-success-summary{grid-template-columns:1fr}.recipe-order-controls{flex-direction:column}.meal-form-actions{flex-direction:column-reverse}.primary-button,.secondary-button{width:100%}}:root{--dp-navy:#1e5c22a0;--dp-light-blue:#7fc4d3;--dp-green:#71994d;--dp-yellow:#f2bb45;--dp-red:#db5760;--dp-background:#eef6f5;--dp-text:#173042;--dp-muted:#6f7f87;--dp-glass:#ffffff8f;--dp-glass-border:#ffffffc2}.login-page{min-height:100vh;color:var(--dp-text);background:linear-gradient(135deg,#dceff2 0%,#e7f3f2 48%,#f3f3e8 100%);justify-content:center;align-items:center;padding:24px;display:flex;position:relative;overflow:hidden}.login-background{pointer-events:none;position:absolute;inset:0;overflow:hidden}.login-blob{filter:blur(32px);opacity:.55;will-change:transform;border-radius:50%;position:absolute}.login-blob--blue{background:#7fc4d3b3;width:430px;height:430px;animation:14s ease-in-out infinite alternate moveBlue;top:-120px;left:-100px}@keyframes moveBlue{0%{transform:translate(0,0)scale(1)}50%{transform:translate(100px,70px)scale(1.12)}to{transform:translate(190px,-10px)scale(.95)}}.login-blob--green{background:#71994d66;width:380px;height:380px;animation:18s ease-in-out infinite alternate moveGreen;bottom:-100px;right:-90px}@keyframes moveGreen{0%{transform:translate(0,0)scale(1)}50%{transform:translate(-120px,-70px)scale(1.1)}to{transform:translate(-220px,30px)scale(.92)}}.login-blob--yellow{background:#f2bb4557;width:250px;height:250px;animation:16s ease-in-out infinite alternate moveYellow;top:58%;left:48%}@keyframes moveYellow{0%{transform:translate(0,0)scale(1)}50%{transform:translate(80px,-100px)scale(1.18)}to{transform:translate(-70px,-40px)scale(.95)}}.login-card{z-index:1;border:1px solid var(--dp-glass-border);background:var(--dp-glass);-webkit-backdrop-filter:blur(24px);border-radius:26px;width:min(420px,100%);padding:42px;animation:.7s cubic-bezier(.22,1,.36,1) loginEnter;position:relative;box-shadow:0 30px 80px #1b50702e,inset 0 1px #ffffffe6}@keyframes loginEnter{0%{opacity:0;transform:translateY(24px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.login-header{text-align:center;margin-bottom:34px}.login-logo{background:linear-gradient(135deg, var(--dp-navy), #2b7898);color:#fff;letter-spacing:-.3px;border-radius:18px;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 18px;font-size:19px;font-weight:800;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:0 12px 30px #1b507047}.login-logo:hover{transform:translateY(-2px)rotate(-2deg);box-shadow:0 16px 35px #1b507052}.login-header h1{color:var(--dp-brand-green);letter-spacing:-.7px;margin:0;font-size:30px;font-weight:750}.login-header p{color:var(--dp-muted);margin:8px 0 0;font-size:14px}.login-form{flex-direction:column;gap:20px;display:flex}.login-form label{color:var(--dp-brand-green);flex-direction:column;gap:8px;font-size:14px;font-weight:700;display:flex}.login-form input{box-sizing:border-box;width:100%;height:48px;color:var(--dp-text);background:#ffffffb8;border:1px solid #1b50702e;border-radius:12px;outline:none;padding:0 14px;font-size:15px;transition:border-color .18s,background .18s,box-shadow .18s,transform .18s}.login-form input:hover{background:#ffffffd1;border-color:#1b50704d}.login-form input:focus{border-color:var(--dp-light-blue);background:#fffffff2;box-shadow:0 0 0 4px #7fc4d33d}.login-form button{cursor:pointer;background:linear-gradient(120deg, var(--dp-navy), #287a98, var(--dp-navy));color:#fff;background-size:200% 100%;border:none;border-radius:13px;width:100%;height:50px;margin-top:6px;font-size:14px;font-weight:700;transition:transform .18s,box-shadow .18s,opacity .18s;animation:8s linear infinite buttonGradient;position:relative;overflow:hidden;box-shadow:0 8px 20px #1b507029}.login-form button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 28px #1b507047}.login-form button:active:not(:disabled){transform:translateY(0)}.login-form button:disabled{cursor:not-allowed;opacity:.62;transform:none}@keyframes buttonGradient{0%{background-position:0%}to{background-position:200%}}.login-error{color:#a33b44;background:#db57601a;border:1px solid #db576040;border-radius:10px;padding:11px 13px;font-size:13px}@media (width<=600px){.login-page{padding:18px}.login-card{border-radius:22px;padding:34px 24px}.login-header{margin-bottom:28px}.login-header h1{font-size:27px}.login-logo{border-radius:16px;width:52px;height:52px}.login-blob--blue{width:320px;height:320px}.login-blob--green{width:300px;height:300px}.login-blob--yellow{width:200px;height:200px}}@media (prefers-reduced-motion:reduce){.login-card,.login-blob,.login-form button{animation:none}.login-logo,.login-form input,.login-form button{transition:none}}.ingredient-combobox{position:relative}.ingredient-combobox>label{margin-bottom:8px;font-weight:600;display:block}.ingredient-combobox-control{position:relative}.ingredient-combobox-control input{box-sizing:border-box;background:#fff;border:1px solid #ccc;border-radius:9px;width:100%;padding:12px 40px 12px 13px;font-size:16px}.ingredient-combobox-control input:focus{outline-offset:1px;outline:2px solid #222}.ingredient-combobox-arrow{pointer-events:none;color:#666;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.ingredient-combobox-dropdown{z-index:30;background:#fff;border:1px solid #ccc;border-radius:10px;max-height:280px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto;box-shadow:0 10px 30px #0000001f}.ingredient-combobox-option{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:11px 13px;display:flex}.ingredient-combobox-option:hover,.ingredient-combobox-option.active{background:#f4f4f4}.ingredient-combobox-option.selected{background:#f1f1f1}.ingredient-combobox-option.disabled{opacity:.45;cursor:not-allowed}.ingredient-combobox-option.disabled:hover{background:0 0}.ingredient-combobox-option div{min-width:0}.ingredient-combobox-option strong{font-size:14px;display:block}.ingredient-combobox-option span{color:#777;margin-top:3px;font-size:12px;display:block}.ingredient-combobox-option small{color:#777;flex-shrink:0}.ingredient-combobox-empty{color:#666;text-align:center;padding:18px 13px}.equivalence-result{margin-top:32px}.equivalence-result-heading{margin-bottom:22px}.equivalence-result-heading h2{margin:4px 0 8px;font-size:28px}.equivalence-result-heading>p:last-child{color:#666;margin:0}.equivalence-result-kicker{color:#666;letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:12px;font-weight:700}.equivalence-main-result{color:#fff;background:#111;border-radius:16px;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;margin-bottom:24px;padding:24px;display:grid}.equivalence-serving{text-align:center}.equivalence-serving strong{font-size:28px;display:block}.equivalence-serving span{color:#d5d5d5;margin-top:5px;display:block}.equivalence-symbol{font-size:34px;font-weight:700}.equivalence-nutrition-grid{grid-template-columns:repeat(2,1fr);gap:18px;display:grid}.equivalence-nutrition-card{background:#fff;border:1px solid #ddd;border-radius:14px;overflow:hidden}.equivalence-nutrition-title{background:#fafafa;border-bottom:1px solid #eee;padding:16px}.equivalence-nutrition-title span{color:#666;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;font-size:12px;display:block}.equivalence-nutrition-title strong{font-size:18px}.equivalence-nutrition-row{border-bottom:1px solid #eee;justify-content:space-between;gap:20px;padding:12px 16px;display:flex}.equivalence-nutrition-row:last-child{border-bottom:none}.equivalence-nutrition-row span{color:#555}.equivalence-nutrition-row.calories{background:#fcfcfc}.equivalence-warning{color:#666;text-align:center;margin:18px 0 0;font-size:14px}@media (width<=700px){.equivalence-main-result{grid-template-columns:1fr;gap:12px}.equivalence-symbol{transform:rotate(90deg)}.equivalence-nutrition-grid{grid-template-columns:1fr}}.ingredient-equivalence-page{max-width:1200px;margin:0 auto;padding:32px 20px 48px}.ingredient-equivalence-header{max-width:760px;margin-bottom:30px}.ingredient-equivalence-header h1{margin:6px 0 10px;font-size:40px}.ingredient-equivalence-header>p:last-child{color:#555;margin:0;line-height:1.5}.equivalence-selection-grid{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;gap:18px;display:grid}.equivalence-selection-card{background:#fff;border:1px solid #ddd;border-radius:16px;padding:22px}.equivalence-card-label{color:#666;letter-spacing:.08em;text-transform:uppercase;margin-bottom:18px;font-size:12px;font-weight:700;display:block}.equivalence-quantity-field{margin-top:20px}.equivalence-quantity-field>label{margin-bottom:8px;font-weight:600;display:block}.equivalence-quantity-control{align-items:stretch;display:flex}.equivalence-quantity-control input{border:1px solid #ccc;border-right:none;border-radius:9px 0 0 9px;flex:1;min-width:0;padding:11px 13px;font-size:16px}.equivalence-quantity-control input:focus{z-index:1;outline-offset:0;outline:2px solid #222;position:relative}.equivalence-quantity-control input:disabled{cursor:not-allowed;background:#f6f6f6}.equivalence-quantity-control span{color:#555;background:#f4f4f4;border:1px solid #ccc;border-radius:0 9px 9px 0;align-items:center;min-width:60px;padding:0 14px;font-weight:600;display:flex}.equivalence-swap-wrapper{align-items:center;display:flex}.equivalence-swap-button{color:#111;cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:50%;width:46px;height:46px;font-size:22px;font-weight:700;transition:background .15s,transform .15s}.equivalence-swap-button:hover:not(:disabled){color:#fff;background:#111;transform:rotate(180deg)}.equivalence-swap-button:disabled{opacity:.35;cursor:not-allowed}.equivalence-target-help{color:#666;margin:20px 0 0;font-size:14px;line-height:1.45}.equivalence-actions{justify-content:center;margin-top:22px;display:flex}.calculate-equivalence-button{color:#fff;cursor:pointer;background:#111;border:none;border-radius:9px;padding:12px 20px;font-size:16px;font-weight:700}.calculate-equivalence-button:hover:not(:disabled){background:#292929}.calculate-equivalence-button:disabled{opacity:.45;cursor:not-allowed}@media (width<=800px){.ingredient-equivalence-header h1{font-size:34px}.equivalence-selection-grid{grid-template-columns:1fr}.equivalence-swap-wrapper{justify-content:center}.equivalence-swap-button{transform:rotate(90deg)}.equivalence-swap-button:hover:not(:disabled){transform:rotate(270deg)}}
