@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600&display=swap";html{--lumo-base-color: #1a1f2b;--lumo-primary-color: #c08050;--lumo-primary-text-color: #c08050;--lumo-primary-color-50pct: rgba(192,128,80,.5);--lumo-primary-color-10pct: rgba(192,128,80,.1);--lumo-success-color: #5a9e7e;--lumo-success-text-color: #5a9e7e;--lumo-error-color: #c75050;--lumo-error-text-color: #c75050;--lumo-body-text-color: #d8dce4;--lumo-header-text-color: #d8dce4;--lumo-secondary-text-color: #8890a0;--lumo-tertiary-text-color: #687080;--lumo-contrast: #d8dce4;--lumo-contrast-5pct: rgba(216,220,228,.05);--lumo-contrast-10pct: rgba(216,220,228,.1);--lumo-contrast-20pct: rgba(216,220,228,.2);--lumo-contrast-30pct: rgba(216,220,228,.3);--lumo-contrast-40pct: rgba(216,220,228,.4);--lumo-contrast-50pct: rgba(216,220,228,.5);--lumo-contrast-60pct: rgba(216,220,228,.6);--lumo-contrast-70pct: rgba(216,220,228,.7);--lumo-contrast-80pct: rgba(216,220,228,.8);--lumo-contrast-90pct: rgba(216,220,228,.9);--lumo-shade: #1a1f2b;--lumo-shade-5pct: rgba(26,31,43,.05);--lumo-shade-50pct: rgba(26,31,43,.5);--lumo-tint-5pct: rgba(216,220,228,.05);--lumo-tint-50pct: rgba(216,220,228,.5);--lumo-box-shadow-m: 0 2px 8px rgba(0,0,0,.4);--recipe-warning-color: #c0903c;--macro-protein: #c08050;--macro-carbs: #5a9e7e;--macro-fat: #c0903c;background-color:#1a1f2b;color:#d8dce4}.recipe-detail{align-items:center}.recipe-card{max-width:800px;width:100%;background:#232838;border-radius:var(--lumo-border-radius-l);box-shadow:var(--lumo-box-shadow-m);padding:var(--lumo-space-xl);display:flex;flex-direction:column;gap:var(--lumo-space-l)}.recipe-card .recipe-title{margin:0}.recipe-header-row{width:100%}.recipe-owner{color:var(--lumo-secondary-text-color)}.recipe-description{color:var(--lumo-secondary-text-color);font-style:italic;margin:0}.info-chip{background:var(--lumo-contrast-5pct);border-radius:var(--lumo-border-radius-m);padding:4px 12px;font-size:var(--lumo-font-size-s);color:var(--lumo-secondary-text-color);display:inline-flex;align-items:center;gap:var(--lumo-space-xs)}.recipe-section{border:1px solid var(--lumo-contrast-10pct);border-radius:var(--lumo-border-radius-m);padding:var(--lumo-space-m);display:flex;flex-direction:column;gap:var(--lumo-space-s)}.recipe-section h3{margin:0 0 var(--lumo-space-xs) 0}.macro-bar{flex-wrap:wrap}.macro-badge{color:#fff;border-radius:var(--lumo-border-radius-m);padding:6px 12px 8px;font-size:var(--lumo-font-size-s);display:inline-flex;flex-direction:column;align-items:center;gap:2px}.macro-badge .macro-label{font-size:var(--lumo-font-size-xs);opacity:.85;display:block;line-height:1}.macro-badge .macro-value{font-weight:600;display:block;line-height:1.2}.macro-badge:before{position:absolute}.macro-badge.calories{background-color:var(--lumo-error-color)}.macro-badge.protein{background-color:var(--lumo-primary-color)}.macro-badge.carbs{background-color:var(--lumo-success-color)}.macro-badge.fat{background-color:var(--recipe-warning-color)}.dialog-header-tag{font-family:JetBrains Mono,monospace;font-size:12px;color:#c08050;background:#c080501f;border:1px solid rgba(192,128,80,.25);padding:3px 10px;border-radius:3px;text-transform:uppercase;letter-spacing:1px}.dialog-header-title{font-size:19px;font-weight:600;color:#f0f2f6;letter-spacing:-.3px;margin:0}.form-section{box-sizing:border-box;width:100%;background:#d8dce40a;border:1px solid var(--section-border, rgba(192,128,80,.18));border-radius:6px;overflow:hidden;transition:border-color .3s,box-shadow .3s,background .3s}.form-section:hover{border-color:var(--section-border-hover, rgba(192,128,80,.35));box-shadow:0 0 20px var(--section-glow, rgba(192,128,80,.06));background:#d8dce40f}.form-section--primary{--section-accent: #c08050;--section-border: rgba(192,128,80,.18);--section-border-hover: rgba(192,128,80,.35);--section-glow: rgba(192,128,80,.08)}.form-section--success{--section-accent: #5a9e7e;--section-border: rgba(90,158,126,.18);--section-border-hover: rgba(90,158,126,.35);--section-glow: rgba(90,158,126,.08)}.form-section--warning{--section-accent: #c0903c;--section-border: rgba(192,144,60,.18);--section-border-hover: rgba(192,144,60,.35);--section-glow: rgba(192,144,60,.08)}.form-section--error{--section-accent: #c75050;--section-border: rgba(199,80,80,.18);--section-border-hover: rgba(199,80,80,.35);--section-glow: rgba(199,80,80,.08)}.section-header{padding:11px 16px;gap:10px;border-bottom:1px solid rgba(216,220,228,.05);background:#d8dce408;border-radius:6px 6px 0 0}.section-icon-square{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:var(--section-accent, #c08050);border-radius:6px;color:#fff;flex-shrink:0}.section-label{font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1.2px;color:var(--section-accent, #c08050)}.section-body{padding:14px 16px}.dialog-cancel-btn{background:#d8dce40f;color:#9098a8;border:1px solid rgba(216,220,228,.1);border-radius:5px}.dialog-cancel-btn:hover{color:#d8dce4;border-color:#d8dce433;background:#d8dce414}.ingredient-row{background:#d8dce40a;border:1px solid rgba(216,220,228,.08);border-radius:6px;padding:var(--lumo-space-xs) var(--lumo-space-s);margin-bottom:var(--lumo-space-xs);transition:border-color .2s,background .2s}.ingredient-row:hover{border-color:#d8dce426;background:#d8dce40f}.recipe-list-card{background:#232838;border-radius:var(--lumo-border-radius-l);box-shadow:var(--lumo-box-shadow-m);cursor:pointer;transition:transform .2s,box-shadow .2s;overflow:hidden}.recipe-list-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000080}.recipe-list-card-img{width:100%;height:180px;object-fit:cover;display:block}.recipe-list-card-img-placeholder{width:100%;height:180px;display:flex;align-items:center;justify-content:center;background:var(--lumo-contrast-5pct)}.recipe-list-card-content{padding:var(--lumo-space-m)}.dashboard-stat-card{transition:transform .2s,box-shadow .2s}.dashboard-stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000080}.meal-plan-grid{display:grid;grid-template-columns:100px repeat(7,1fr);gap:4px;width:100%;min-width:800px}.meal-plan-day-header{text-align:center;padding:8px 4px 10px;color:var(--lumo-secondary-text-color);border-bottom:2px solid rgba(216,220,228,.08)}.meal-plan-day-header.today{color:var(--lumo-primary-color);border-bottom-color:var(--lumo-primary-color)}.meal-plan-slot-label{display:flex;align-items:center;padding:0 10px;font-size:var(--lumo-font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.8px;border-left:3px solid}.meal-plan-slot-label.breakfast{border-color:#c0903c;color:#c0903c}.meal-plan-slot-label.lunch{border-color:#5a9e7e;color:#5a9e7e}.meal-plan-slot-label.dinner{border-color:#c08050;color:#c08050}.meal-plan-slot-label.snack{border-color:#8890a0;color:#8890a0}.meal-cell{min-height:72px;border-radius:6px;position:relative;min-width:0;overflow:hidden;transition:border-color .2s,box-shadow .2s,background .2s}.meal-cell-filled{background:#232838;border:1px solid rgba(216,220,228,.08);padding:8px 10px;cursor:default}.meal-cell-filled:hover{border-color:#d8dce42e}.meal-cell-filled.slot-breakfast{border-left:3px solid #c0903c}.meal-cell-filled.slot-lunch{border-left:3px solid #5a9e7e}.meal-cell-filled.slot-dinner{border-left:3px solid #c08050}.meal-cell-filled.slot-snack{border-left:3px solid #8890a0}.meal-cell-filled.slot-breakfast:hover{box-shadow:0 0 12px #c0903c1f}.meal-cell-filled.slot-lunch:hover{box-shadow:0 0 12px #5a9e7e1f}.meal-cell-filled.slot-dinner:hover{box-shadow:0 0 12px #c080501f}.meal-cell-filled.slot-snack:hover{box-shadow:0 0 12px #8890a01f}.meal-recipe-name{font-weight:600;font-size:var(--lumo-font-size-s);color:var(--lumo-body-text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;padding-right:20px}.meal-calorie-badge{font-size:var(--lumo-font-size-xs);color:var(--lumo-secondary-text-color);margin-top:4px;display:block}.meal-remove-btn{position:absolute;top:4px;right:4px;opacity:0;transition:opacity .2s;min-width:24px;min-height:24px;padding:0}.meal-cell-filled:hover .meal-remove-btn{opacity:1}.meal-cell-empty{border:1px dashed rgba(216,220,228,.1);display:flex;align-items:center;justify-content:center;cursor:pointer}.meal-cell-empty:hover{border-style:solid;border-color:#d8dce433;background:#d8dce408}.meal-plan-macro-label{display:flex;align-items:center;padding:0 10px;font-size:var(--lumo-font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--lumo-secondary-text-color)}.meal-plan-macro-cell{padding:8px 6px;text-align:center;background:#d8dce408;border-radius:6px}.macro-detail-row{display:flex;justify-content:center;gap:4px;margin-top:4px;flex-wrap:wrap}.macro-pill{font-size:var(--lumo-font-size-xxs);font-weight:600;padding:1px 5px;border-radius:4px;background:color-mix(in srgb,var(--pill-color) 18%,transparent);color:var(--pill-color);white-space:nowrap}.meal-plan-weekly-summary{background:#232838;border-radius:8px;padding:12px 20px;border:1px solid rgba(216,220,228,.08);flex-wrap:wrap;gap:var(--lumo-space-l)}.meal-plan-week-nav{gap:8px}.week-nav-btn{min-width:36px;height:36px}.recipe-picker-card{padding:10px 14px;cursor:pointer;border-bottom:1px solid rgba(216,220,228,.06);transition:background .15s}.recipe-picker-card:hover{background:#d8dce40f}.pantry-expiring-banner{display:flex;align-items:center;background:#c0903c1f;border:1px solid rgba(192,144,60,.3);border-radius:var(--lumo-border-radius-m);padding:var(--lumo-space-s) var(--lumo-space-m);color:var(--recipe-warning-color)}.shopping-progress-bar{--lumo-primary-color: var(--lumo-success-color)}.shopping-item{font-weight:500}.shopping-item-purchased{text-decoration:line-through;color:var(--lumo-secondary-text-color)}.shopping-category-header{margin:var(--lumo-space-m) 0 var(--lumo-space-xs) 0;font-size:var(--lumo-font-size-s);font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--lumo-secondary-text-color);border-bottom:1px solid rgba(216,220,228,.08);padding-bottom:var(--lumo-space-xs)}.shopping-item-row{transition:background .15s}.shopping-item-row:hover{background:#d8dce40a}.recommendation-card{transition:transform .2s,box-shadow .2s}.recommendation-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000080}.match-badge{font-weight:600}vaadin-button.toggle-inactive{--vaadin-button-background: rgba(216,220,228,.12);--vaadin-button-text-color: #d8dce4;--vaadin-button-border: 1px solid rgba(216,220,228,.25)}vaadin-button.toggle-inactive:hover{--vaadin-button-background: rgba(216,220,228,.18);--vaadin-button-border: 1px solid rgba(216,220,228,.4)}.oauth-divider{display:flex;align-items:center;text-align:center;margin:var(--lumo-space-m) 0;color:var(--lumo-secondary-text-color);font-size:var(--lumo-font-size-s)}.oauth-divider:before,.oauth-divider:after{content:"";flex:1;border-bottom:1px solid var(--lumo-contrast-20pct)}.oauth-divider:before{margin-right:var(--lumo-space-s)}.oauth-divider:after{margin-left:var(--lumo-space-s)}.oauth-btn{display:flex;align-items:center;justify-content:center;padding:var(--lumo-space-s) var(--lumo-space-m);border-radius:var(--lumo-border-radius-m);border:1px solid var(--lumo-contrast-20pct);text-decoration:none;font-size:var(--lumo-font-size-m);font-weight:500;cursor:pointer;transition:background .2s,border-color .2s;box-sizing:border-box}.oauth-btn:hover{border-color:var(--lumo-contrast-30pct)}.oauth-btn-google{background:#fff;color:#3c4043}.oauth-btn-google:hover{background:#f1f3f4}.oauth-btn-github{background:#24292e;color:#fff}.oauth-btn-github:hover{background:#2f363d}.wizard-card{background:#232838;border-radius:var(--lumo-border-radius-l);box-shadow:var(--lumo-box-shadow-m);padding:var(--lumo-space-xl);width:100%;box-sizing:border-box}.wizard-step-indicator{display:flex;justify-content:center;align-items:center;gap:0;width:100%}.wizard-step-item{display:flex;flex-direction:column;align-items:center;flex:1;position:relative}.wizard-step-dot{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;color:var(--lumo-contrast-50pct);background:var(--lumo-contrast-10pct);border:2px solid var(--lumo-contrast-20pct);transition:all .3s;z-index:1}.wizard-step-dot.active{background:var(--lumo-primary-color);border-color:var(--lumo-primary-color);color:#fff;box-shadow:0 0 12px #c0805066}.wizard-step-dot.completed{background:var(--lumo-success-color);border-color:var(--lumo-success-color);color:#fff}.wizard-step-line{position:absolute;top:16px;left:calc(50% + 16px);width:calc(100% - 32px);height:2px;background:var(--lumo-contrast-10pct)}.wizard-step-line.completed{background:var(--lumo-success-color)}.wizard-step-label{font-size:var(--lumo-font-size-xs);margin-top:6px;text-align:center}.wizard-review-section{background:#d8dce40a;border:1px solid var(--lumo-contrast-10pct);border-radius:6px;overflow:hidden;margin-top:var(--lumo-space-m)}.wizard-review-section-header{padding:10px 16px;background:#d8dce408;border-bottom:1px solid var(--lumo-contrast-5pct);font-weight:600;color:var(--lumo-primary-color);font-size:var(--lumo-font-size-s);text-transform:uppercase;letter-spacing:.8px}.wizard-review-row{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;width:100%;box-sizing:border-box}.wizard-review-row:nth-child(2n){background:#d8dce408}.wizard-review-label{color:var(--lumo-secondary-text-color);font-size:var(--lumo-font-size-s)}.wizard-review-value{font-weight:600;font-size:var(--lumo-font-size-s);color:var(--lumo-body-text-color);white-space:nowrap}.day-type-badge{cursor:pointer;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;display:inline-block;margin-top:4px;color:var(--lumo-tertiary-text-color);transition:background .2s,color .2s}.day-type-badge:hover{background:#d8dce41a}.day-type-badge.training{background:#5a9e7e33;color:var(--lumo-success-color)}.day-type-badge.training:hover{background:#5a9e7e4d}.day-type-badge.rest{background:#c0903c33;color:var(--recipe-warning-color)}.day-type-badge.rest:hover{background:#c0903c4d}.nutrition-chart-card{background:#232838;border-radius:var(--lumo-border-radius-l);box-shadow:var(--lumo-box-shadow-m);padding:var(--lumo-space-m);width:100%;box-sizing:border-box}
