.auth-page{min-height:100vh;background:linear-gradient(135deg,#f1f5f9,#e0e7ff,#f0fdf4);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem;color:#1e293b;font-family:Inter,sans-serif}.auth-card{width:100%;max-width:420px;background:#fff;border-radius:24px;padding:2.5rem;box-shadow:0 8px 40px #6366f11f,0 2px 12px #0000000f;border:1px solid rgba(99,102,241,.12)}.auth-logo{width:72px;height:72px;border-radius:20px;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem;overflow:hidden;box-shadow:0 8px 24px #6366f133}.auth-logo img{width:100%;height:100%;object-fit:contain}.auth-title{font-size:2rem;font-weight:800;text-align:center;margin-bottom:.5rem;background:linear-gradient(135deg,#6366f1,#10b981);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-subtitle{color:#64748b;text-align:center;margin-bottom:2rem;font-size:.95rem}.auth-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.875rem;font-weight:600;color:#374151;margin-left:.25rem}.form-group input{background:#f8fafc;border:1.5px solid rgba(99,102,241,.2);border-radius:12px;padding:.75rem 1rem;color:#1e293b;font-size:1rem;transition:all .2s}.form-group input::placeholder{color:#94a3b8}.form-group input:focus{outline:none;border-color:#6366f1;background:#fff;box-shadow:0 0 0 3px #6366f11f}.btn-primary{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;border-radius:12px;padding:.875rem;font-size:1rem;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);margin-top:1rem;box-shadow:0 8px 20px #6366f14d;position:relative;overflow:hidden;width:100%;display:flex;align-items:center;justify-content:center;text-decoration:none}.btn-primary:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(to bottom right,#fff0,#fff0 40%,#fff3,#fff0 60%,#fff0);transform:rotate(45deg);transition:all .3s;pointer-events:none}.btn-primary:hover:after{left:50%;top:50%}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 32px #6366f159;filter:brightness(1.05)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.auth-footer{margin-top:2rem;text-align:center;color:#64748b;font-size:.875rem}.auth-link{color:#6366f1;background:none;border:none;font-weight:600;cursor:pointer;padding:0;margin-left:.25rem}.auth-link:hover{text-decoration:underline}.error-message{background:#ef444412;border:1px solid rgba(239,68,68,.2);color:#dc2626;padding:.75rem;border-radius:10px;font-size:.875rem;text-align:center}.loader{width:48px;height:48px;border:4px solid rgba(99,102,241,.1);border-top-color:#6366f1;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 480px){.auth-page{padding:0;background:#fff}.auth-card{border-radius:0;min-height:100vh;padding:2rem 1.5rem;border:none;box-shadow:none;display:flex;flex-direction:column;justify-content:center}.auth-title{font-size:1.75rem}.auth-subtitle{margin-bottom:1.5rem}}:root{font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;color:#1e293b;background-color:#f1f5f9}*{box-sizing:border-box}body{margin:0;background:#f1f5f9;background-image:radial-gradient(ellipse at top left,rgba(99,102,241,.08),transparent 50%),radial-gradient(ellipse at bottom right,rgba(16,185,129,.05),transparent 50%);color:#1e293b}a{color:inherit}button{font:inherit}.layout{display:flex;flex-direction:column;min-height:100vh;padding:7rem 2.5rem 3rem;gap:1.5rem;max-width:1200px;margin:0 auto}.layout__body{display:grid;grid-template-columns:2fr 1fr;gap:1.5rem}.layout__body--single{grid-template-columns:minmax(0,720px);justify-content:center}.layout__body--single .panel{grid-column:1;width:min(720px,100%);margin:0 auto}.panel--calendar{grid-column:1 / -1}.week-card{margin:0 auto;max-width:100%}.panel{background:#fff;border-radius:20px;padding:1.75rem;box-shadow:0 4px 24px #6366f112,0 1px 4px #0000000f;border:1px solid rgba(99,102,241,.1)}.week-planner{display:flex;flex-direction:column;gap:1rem}.week-card{border:1px solid rgba(99,102,241,.12);background:#f1f5f9b3;border-radius:18px;padding:1rem}.planner{display:flex;flex-direction:column;gap:2rem}.planner__week-section{display:flex;flex-direction:column;gap:1rem}.planner__week-label,.desktop-week__title{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#6366f1;margin:0 0 .25rem}.planner__mobile{display:flex;flex-direction:column;gap:2rem}.planner__desktop{display:none}.day-strip{display:flex;gap:.5rem;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.5rem;scrollbar-width:none}.day-strip::-webkit-scrollbar{display:none}.day-chip{display:flex;flex-direction:column;align-items:center;gap:.15rem;min-width:48px;padding:.6rem .4rem;border:1px solid rgba(99,102,241,.12);background:#f8fafcd9;border-radius:14px;color:#64748b;cursor:pointer;transition:all .2s ease;position:relative}.day-chip__name{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.day-chip__num{font-size:1.15rem;font-weight:800;line-height:1}.day-chip__dot{width:5px;height:5px;border-radius:50%;background:#6366f1;position:absolute;bottom:5px}.day-chip--today{border-color:#6366f166;color:#6366f1}.day-chip--selected{background:linear-gradient(135deg,#6366f1,#8b5cf6);border-color:transparent;color:#fff;box-shadow:0 8px 20px #6366f166}.meal-cards{display:flex;flex-direction:column;gap:.75rem}.meal-card{border-radius:16px;border:1px solid rgba(99,102,241,.1);background:#ffffffe6;padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.6rem;transition:all .2s ease}.meal-card--active{border-color:#6366f1;background:#6366f11a}.meal-card__header{display:flex;align-items:center;gap:.6rem}.meal-card__icon{font-size:1.2rem;line-height:1}.meal-card__label{font-weight:700;font-size:.9rem;color:#334155;flex:1}.meal-card__add{border:1px solid rgba(99,102,241,.4);background:#6366f11a;color:#818cf8;border-radius:999px;padding:.25rem .75rem;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.meal-card__add:hover{background:#6366f133;border-color:#6366f199}.meal-card__entries{display:flex;flex-wrap:wrap;gap:.4rem}.meal-card__empty{margin:0;font-size:.8rem;color:#475569;font-style:italic}.slot--breakfast{border-left:3px solid #fbbf24}.slot--midmorning{border-left:3px solid #34d399}.slot--lunch{border-left:3px solid #60a5fa}.slot--snack{border-left:3px solid #a78bfa}.slot--dinner{border-left:3px solid #f87171}.meal-pill{display:inline-flex;align-items:center;gap:.4rem;border-radius:999px;padding:.3rem .9rem;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.meal-pill:hover{transform:translateY(-1px);filter:brightness(1.15)}.meal-pill__servings{font-size:.7rem;opacity:.75;border-left:1px solid currentColor;padding-left:.4rem}@media (min-width: 900px){.planner__mobile{display:none}.planner__desktop{display:flex;flex-direction:column;gap:2rem}.desktop-week{display:flex;flex-direction:column;gap:.75rem}.desktop-grid{display:grid;grid-template-columns:120px repeat(7,1fr);gap:4px;background:#6366f108;border-radius:16px;padding:4px;overflow:hidden}.desktop-grid__corner{background:transparent}.desktop-grid__day-header{display:flex;flex-direction:column;align-items:center;padding:.6rem .4rem;font-size:.78rem;color:#64748b;background:#f8fafcd9;border-radius:10px;gap:.15rem}.desktop-grid__day-header strong{font-size:1.1rem;color:#1e293b}.desktop-grid__day-header--today{background:#6366f126;color:#6366f1;border:1px solid rgba(99,102,241,.3)}.desktop-grid__day-header--today strong{color:#818cf8}.desktop-grid__slot-label{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.2rem;padding:.5rem .75rem;font-size:.75rem;font-weight:700;color:#64748b;border-radius:10px;background:#f1f5f9cc}.desktop-grid__slot-label span:first-child{font-size:1rem}.desktop-grid__cell{display:flex;flex-direction:column;gap:3px;padding:4px;min-height:70px;background:#f1f5f9cc;border-radius:10px;transition:background .2s ease}.desktop-grid__cell:hover{background:#6366f10d}.desktop-grid__cell--active{background:#6366f11a;outline:1px solid rgba(99,102,241,.4)}.desktop-pill{display:block;width:100%;text-align:left;border:none;border-radius:6px;padding:.25rem .5rem;font-size:.72rem;font-weight:600;cursor:pointer;transition:all .15s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}.desktop-pill small{opacity:.7;font-size:.65rem}.desktop-pill:hover{filter:brightness(1.2);transform:scale(1.02)}.desktop-add{display:flex;align-items:center;justify-content:center;width:100%;border:1px dashed rgba(99,102,241,.3);background:transparent;color:#475569;border-radius:6px;padding:.2rem;font-size:.9rem;font-weight:700;cursor:pointer;flex:1;min-height:28px;transition:all .2s ease}.desktop-add:hover{border-color:#6366f199;color:#818cf8;background:#6366f114}}.plan-cell{display:flex;flex-direction:column;gap:.35rem;padding:.4rem}.plan-cell.selected{outline:1px solid #6366f1}.top-navbar-container{position:fixed;top:0;left:0;right:0;z-index:2000;background:#fffffff2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid rgba(99,102,241,.12);box-shadow:0 4px 20px #00000014}.top-navbar{display:flex;justify-content:space-between;align-items:center;padding:.6rem .75rem;max-width:1400px;margin:0 auto}.navbar-right{display:flex;align-items:center;gap:.75rem}.language-selector{display:flex;background:#ffffff0d;padding:2px;border-radius:8px;border:1px solid rgba(99,102,241,.12)}.language-selector button{background:transparent;border:none;color:#64748b;padding:.25rem .5rem;font-size:.65rem;font-weight:700;cursor:pointer;border-radius:6px;transition:all .2s ease}.language-selector button:hover{color:#1e293b}.language-selector button.active{background:#6366f1;color:#fff}.navbar-brand{display:flex;align-items:center;gap:.75rem}.navbar-logo-wrapper{width:44px;height:44px;border-radius:12px;overflow:hidden;flex-shrink:0;box-shadow:0 3px 10px #f9731640}.navbar-logo{width:100%;height:100%;object-fit:contain}.navbar-brand-text{display:flex;flex-direction:column;gap:0}.navbar-tagline{font-size:.65rem;font-weight:500;color:#94a3b8;letter-spacing:.04em}.navbar-title{font-weight:800;background:linear-gradient(135deg,#6366f1,#10b981);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-size:1.15rem;letter-spacing:-.02em}.navbar-menu{display:flex;gap:1.25rem;justify-content:center;padding:0 .75rem .6rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.navbar-menu::-webkit-scrollbar{display:none}.navbar-menu button{border:none;background:transparent;padding:.4rem .5rem;cursor:pointer;font-weight:600;color:#64748b;transition:all .2s ease;position:relative;font-size:.9rem;white-space:nowrap;flex-shrink:0}.navbar-menu button.active{color:#1e293b}.navbar-menu button.active:after{content:"";position:absolute;bottom:-4px;left:0;right:0;height:2px;background:#6366f1;border-radius:2px;box-shadow:0 0 8px #6366f199}.navbar-menu button:hover:not(.active){color:#475569}.navbar-user{display:flex;align-items:center;gap:1rem}.navbar-user-name{font-size:.85rem;font-weight:600;color:#64748b}.navbar-logout{background:#6366f11a;border:1px solid rgba(99,102,241,.2);color:#818cf8;padding:.35rem 1rem;border-radius:999px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:all .2s ease}.navbar-logout:hover{background:#6366f133;border-color:#6366f166}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem}.calendar-grid__weekday{text-align:center;font-weight:600;color:#64748b}.calendar-grid__cell{border-radius:14px;background:#fff;border:1px solid rgba(99,102,241,.12);min-height:220px;display:flex;flex-direction:column;padding:.5rem;gap:.25rem}.calendar-grid__cell--muted{background:#f8fafc;color:#94a3b8;border-color:#6366f10f}.calendar-grid__cell-header{font-weight:600;color:#475569}.calendar-grid__slot{border:1px dashed rgba(99,102,241,.4);border-radius:12px;background:#6366f10d;padding:.35rem;display:flex;flex-direction:column;align-items:flex-start;gap:.3rem;text-align:left;cursor:pointer;transition:all .2s ease}.calendar-grid__slot:hover{background:#6366f126;border-color:#6366f199}.calendar-grid__slot--empty{opacity:.7}.calendar-grid__slot-label{font-size:.75rem;text-transform:uppercase;color:#64748b}.calendar-grid__slot-empty-text{font-size:.85rem;color:#64748b}.carb-stack{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .65rem;border-radius:.75rem;font-size:.8rem;font-weight:600}.carb-stack--1{background:#34d39926;color:#34d399;border:1px solid rgba(52,211,153,.2)}.carb-stack--2{background:#fbbf2426;color:#fbbf24;border:1px solid rgba(251,191,36,.2)}.carb-stack--3{background:#f8717126;color:#f87171;border:1px solid rgba(248,113,113,.2)}.menu-form__header{display:flex;justify-content:space-between;align-items:center}.menu-form{display:flex;flex-direction:column;gap:.75rem}.menu-form input,.menu-form textarea,.menu-form select{width:100%;border-radius:10px;border:1px solid rgba(99,102,241,.12);padding:.5rem .75rem;background:#f1f5f9;color:#1e293b;transition:all .2s ease}.menu-form input:focus,.menu-form textarea:focus,.menu-form select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 2px #6366f133}.menu-form__ingredients{border:1px solid rgba(99,102,241,.15);border-radius:12px;padding:.75rem;background:#f8fafc;display:flex;flex-direction:column;gap:.5rem}.menu-form__ingredients-header{display:flex;justify-content:space-between;align-items:center}.menu-form__ingredients-columns{display:grid;grid-template-columns:2fr 1fr 1fr;font-size:.75rem;text-transform:uppercase;color:#64748b}.menu-form__ingredient-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:.35rem}.menu-list ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.menu-list__add{border-radius:999px;padding:.6rem 1.5rem;letter-spacing:.01em}.menu-list__add:before{content:"+";font-weight:700;font-size:1.2rem;margin-right:.35rem}.menu-list__header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.menu-list__header p{margin:.15rem 0 0;color:#64748b;font-size:.9rem}.menu-card{border:1px solid rgba(99,102,241,.12);border-radius:12px;padding:0;display:flex;flex-direction:column;overflow:hidden;background:#fff;transition:transform .2s ease,box-shadow .2s ease}.menu-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px #6366f11f;border-color:#fff3}.menu-card__toggle{border:none;background:transparent;padding:.9rem 1rem;display:flex;justify-content:space-between;align-items:center;gap:.75rem;width:100%;cursor:pointer;color:#1e293b;text-align:left}.menu-card__toggle>div{display:flex;flex-direction:column;align-items:flex-start}.chevron{font-size:1.25rem;color:#818cf8;font-weight:600;transition:transform .3s ease}.menu-card__toggle h3{margin:0;font-size:1rem}.menu-card__toggle .carb-stack{margin-top:.35rem}.menu-card--accordion.open{box-shadow:0 8px 28px #6366f126;border-color:#6366f166}.menu-card__details{border-top:1px solid rgba(99,102,241,.1);padding:1rem;display:flex;flex-direction:column;gap:.75rem;background:#f8fafc}.menu-card__recipe-label{text-transform:uppercase;font-size:.7rem;letter-spacing:.08em;color:#64748b;margin:0}.menu-card__recipe-copy{margin:0;color:#475569;white-space:pre-line}.menu-card__details-footer{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem}.menu-card__ingredients-wrapper{width:100%}.menu-card__ingredients{list-style:none;margin:.25rem 0 0;padding:0;display:flex;flex-direction:column;gap:.2rem}.menu-card__ingredients li{display:flex;justify-content:space-between;font-size:.9rem;color:#475569}.menu-card__actions{display:flex;flex-direction:column;gap:.5rem}.menu-card__actions--inline{flex-direction:row;gap:.5rem}.menu-card__actions--inline button{flex:1;width:auto}.filter-chip{border:1px solid rgba(99,102,241,.3);border-radius:999px;padding:.35rem .9rem;background:#6366f11a;color:#818cf8;cursor:pointer;transition:all .2s ease}.filter-chip.active{background:#6366f1;color:#fff;border-color:#6366f1}.filter-chip.carb-stack{border-radius:999px}.menu-card__actions button{width:100%;border:none;border-radius:10px;padding:.5rem;cursor:pointer}.primary{border:none;background:linear-gradient(135deg,#4f46e5,#6366f1);color:#fff;padding:.65rem 1.5rem;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;font-weight:600;box-shadow:0 8px 20px #4f46e54d;transition:all .2s ease}.primary:hover{transform:translateY(-2px);box-shadow:0 12px 25px #4f46e566;filter:brightness(1.1)}.primary:active{transform:translateY(0);box-shadow:0 4px 10px #4f46e54d}.menu-form .primary{width:100%}.ghost{border:1px solid rgba(99,102,241,.3);background:#6366f11a;color:#818cf8;border-radius:12px;padding:.45rem 1rem;font-weight:600;transition:all .2s ease}.ghost:hover{background:#6366f133;border-color:#6366f180}.danger{background:#ef44441a;color:#f87171;border:1px solid rgba(239,68,68,.3)}.danger:hover{background:#ef444433;border-color:#ef444480}.shopping-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.shopping-header h2{margin:0 0 .25rem}.shopping-header p{margin:0;color:#64748b;font-size:.85rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.shopping-changed-badge{background:#fbbf2426;border:1px solid rgba(251,191,36,.3);color:#fbbf24;border-radius:999px;padding:.1rem .6rem;font-size:.75rem;font-weight:700}.shopping-warning-banner{display:flex;align-items:flex-start;gap:.75rem;background:#fbbf2414;border:1px solid rgba(251,191,36,.25);border-radius:12px;padding:.85rem 1rem;color:#fde68a;font-size:.85rem;margin-top:.75rem;line-height:1.5}.shopping-warning-banner span:first-child{flex-shrink:0;font-size:1.1rem}.week-picker{display:flex;align-items:center;gap:.5rem;background:#6366f11a;border:1px solid rgba(99,102,241,.2);border-radius:999px;padding:.35rem .75rem;flex-shrink:0}.week-picker span{font-weight:600;color:#818cf8}.week-picker button{border:none;background:transparent;color:#818cf8;border-radius:999px;width:30px;height:30px;cursor:pointer;transition:background .2s ease}.week-picker button:hover{background:#6366f133}.shopping-list{margin:1.5rem 0 0;list-style:none;padding:0;display:flex;flex-direction:column;gap:.75rem}.shopping-list li{display:flex;justify-content:space-between;border:1px solid rgba(99,102,241,.12);background:#fff;border-radius:12px;padding:.75rem 1rem;font-weight:600;color:#1e293b;align-items:center;gap:1rem;transition:all .2s ease}.shopping-list li:hover{border-color:#fff3;background:#f1f5f9}.shopping-list li.checked{border-color:#34d3994d;background:#34d3990d;color:#64748b;text-decoration:line-through}.shopping-list li.weight-changed{border-color:#fbbf2466;background:#fbbf240d;text-decoration:none;color:#fde68a}.shopping-list li.weight-changed .shopping-list__name{text-decoration:line-through;text-decoration-color:#fbbf2480}.shopping-list__item{display:flex;align-items:center;gap:.75rem;color:inherit;font-weight:500;cursor:pointer;flex:1}.shopping-list__item input{display:none}.shopping-list__name{font-weight:600}.shopping-list__custom-right{display:flex;flex-direction:row;align-items:center;gap:.75rem;flex-shrink:0}.shopping-list__right{display:flex;flex-direction:column;align-items:flex-end;gap:.15rem;flex-shrink:0}.shopping-list__weight{font-size:.95rem}.shopping-list__change-hint{font-size:.7rem;font-weight:600;color:#fbbf24;white-space:nowrap}.checkbox{width:24px;height:24px;border-radius:8px;border:2px solid rgba(99,102,241,.5);background:#f1f5f9cc;display:inline-flex;align-items:center;justify-content:center;position:relative;transition:all .2s ease}.checkbox--checked{background:linear-gradient(135deg,#10b981,#34d399);border-color:transparent;box-shadow:0 4px 10px #10b9814d}.checkbox__mark{width:8px;height:14px;border-right:2px solid white;border-bottom:2px solid white;transform:rotate(45deg);opacity:0;transition:opacity .2s ease}.checkbox--checked .checkbox__mark{opacity:1}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a66;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;padding:1rem;z-index:50}.assign-modal{background:#fff;border-radius:24px;width:min(520px,100%);max-height:85vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #6366f126,0 4px 20px #00000014;border:1px solid rgba(99,102,241,.12);color:#1e293b}.assign-modal header{padding:1.25rem 1.5rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(99,102,241,.12)}.assign-modal__filters{padding:.75rem 1.5rem;border-bottom:1px solid rgba(99,102,241,.08);display:flex;flex-direction:column;gap:.5rem;background:#f1f5f9cc}.assign-modal__filters span{font-size:.85rem;color:#64748b;font-weight:600}.assign-modal__chips{display:flex;flex-wrap:wrap;gap:.4rem}.assign-modal header button{border:none;background:#6366f11a;color:#818cf8;padding:.35rem .75rem;border-radius:999px;cursor:pointer;transition:background .2s ease}.assign-modal header button:hover{background:#6366f133}.assign-modal__list{padding:1rem 1.5rem 1.5rem;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem}.assign-modal__servings{padding:.75rem 1.5rem;border-bottom:1px solid rgba(99,102,241,.12);display:flex;flex-direction:column;gap:.35rem}.servings-stepper{display:inline-flex;align-items:center;gap:.6rem;border:1px solid rgba(99,102,241,.25);border-radius:999px;padding:.15rem .5rem;width:max-content;background:#f1f5f9}.servings-stepper button{border:none;background:#6366f133;color:#818cf8;width:32px;height:32px;border-radius:50%;font-size:1.1rem;font-weight:600;cursor:pointer;transition:background .2s ease}.servings-stepper button:hover{background:#6366f14d}.servings-stepper span{min-width:24px;text-align:center;font-weight:600;color:#1e293b}.assign-modal__servings-hint{color:#64748b;font-size:.75rem}.recipe-modal__servings{padding:0 1.5rem 1.5rem;display:flex;flex-direction:column;gap:.45rem}.recipe-modal__servings .servings-stepper{border:1px solid rgba(99,102,241,.25)}.recipe-modal__servings .primary{align-self:flex-start}.assign-modal__list article{display:flex;justify-content:space-between;align-items:center;border:1px solid rgba(99,102,241,.12);background:#f8fafcb3;border-radius:14px;padding:.75rem 1rem;transition:background .2s ease}.assign-modal__list article:hover{background:#f1f5f9}.assign-modal__list article button{border:none;border-radius:10px;padding:.35rem .85rem;cursor:pointer}.recipe-modal{background:#fff;border-radius:24px;width:min(600px,100%);max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #6366f126,0 4px 20px #00000014;border:1px solid rgba(99,102,241,.12);color:#1e293b}.recipe-modal header,.recipe-modal footer{padding:1.25rem 1.5rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}.recipe-modal header{border-bottom:1px solid rgba(99,102,241,.12)}.recipe-modal header button,.recipe-modal footer button{border:none;border-radius:999px;padding:.4rem 1rem;cursor:pointer}.recipe-modal header button{background:#6366f11a;color:#818cf8}.recipe-modal__body{padding:1rem 1.5rem 0;overflow-y:auto;display:flex;flex-direction:column;gap:1rem}.recipe-modal__ingredients ul{list-style:none;padding:0;margin:.25rem 0 0;display:flex;flex-direction:column;gap:.4rem}.recipe-modal__ingredients li{display:flex;justify-content:space-between;border:1px solid rgba(99,102,241,.12);background:#f1f5f9cc;border-radius:10px;padding:.5rem .75rem}.recipe-modal footer{border-top:1px solid rgba(99,102,241,.1)}.menu-modal{background:#fff;border-radius:24px;width:min(640px,100%);max-height:90vh;display:flex;flex-direction:column;box-shadow:0 40px 120px #0009;border:1px solid rgba(99,102,241,.12);color:#1e293b}.menu-modal header{padding:1.5rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(99,102,241,.12)}.menu-modal header button{border:none;background:#6366f11a;color:#818cf8;border-radius:999px;padding:.4rem .95rem;cursor:pointer}.menu-modal__body{padding:1.25rem 1.5rem 1.5rem;overflow-y:auto}.month-selector button{border-radius:50%;width:40px;height:40px;border:1px solid rgba(99,102,241,.12);background:#f1f5f9;color:#1e293b;cursor:pointer;transition:all .2s ease}.month-selector button:hover{background:#475569}@media (max-width: 900px){.layout__body,.layout__body--single{grid-template-columns:1fr;justify-content:stretch}.panel--calendar{grid-column:1}.panel{padding:1.25rem}.layout__body--single .panel{width:100%}}@media (max-width: 768px){.layout{padding:7rem 1rem 2rem}.top-navbar-container{padding-bottom:.25rem}.top-navbar{padding:.6rem 1rem .25rem}.navbar-logo{width:24px;height:24px}.navbar-title{font-size:.85rem}.navbar-menu{position:static;transform:none;padding:.5rem 1rem;gap:1.25rem;justify-content:flex-start;overflow-x:auto;-webkit-overflow-scrolling:touch}.navbar-menu button{font-size:.8rem;white-space:nowrap;padding:.4rem .1rem}.navbar-user{display:flex;align-items:center;gap:.4rem}.navbar-user-name{display:none}.navbar-logout{padding:.3rem .65rem;font-size:.65rem}.calendar-grid{grid-template-columns:1fr}.calendar-grid__weekday{display:none}}@media (max-width: 480px){.navbar-title{display:none}}@media (max-width: 768px){.modal-overlay{padding:0}.assign-modal,.menu-modal,.recipe-modal{width:100%;max-height:none;height:100vh;border-radius:0}}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.admin-table-wrapper{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-table th,.admin-table td{padding:1rem;text-align:left;border-bottom:1px solid rgba(255,255,255,.05)}.admin-table th{color:#64748b;font-weight:600;text-transform:uppercase;font-size:.75rem;letter-spacing:.05em}.status-badge{padding:.25rem .6rem;border-radius:999px;font-size:.75rem;font-weight:700}.status-badge.active{background:#10b9811a;color:#10b981}.status-badge.pending{background:#f59e0b1a;color:#f59e0b}.admin-actions{display:flex;gap:.5rem}.ghost--sm,.danger--sm{padding:.25rem .5rem;font-size:.75rem}@media (max-width: 600px){.navbar-user-name,.navbar-tagline{display:none}.navbar-title{font-size:1rem}.navbar-logout{padding:.3rem .65rem;font-size:.7rem}.language-selector button{padding:.2rem .35rem;font-size:.6rem}.navbar-right{gap:.5rem}.navbar-logo-wrapper{width:40px;height:40px}.layout{padding:6rem 1rem 2rem}.navbar-menu{gap:.75rem;justify-content:flex-start;padding:0 .75rem .5rem}}@media (min-width: 601px){.layout{padding:7rem 1.5rem 3rem}}.shopping-header-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.shopping-add-btn{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;border-radius:999px;padding:.45rem 1.1rem;font-size:.82rem;font-weight:700;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #6366f140;white-space:nowrap}.shopping-add-btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px #6366f159}.shopping-add-form{display:flex;gap:.5rem;align-items:center;background:#f8fafc;border:1.5px solid rgba(99,102,241,.2);border-radius:14px;padding:.75rem 1rem;margin-top:.75rem;flex-wrap:wrap}.shopping-add-input{flex:1;min-width:140px;border:1.5px solid rgba(99,102,241,.2);border-radius:10px;padding:.5rem .75rem;font-size:.9rem;background:#fff;color:#1e293b;transition:border-color .2s}.shopping-add-input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 2px #6366f11f}.shopping-add-input--sm{flex:0 0 120px;min-width:90px}.shopping-add-form .primary{padding:.5rem 1.1rem;font-size:.85rem;border-radius:10px;flex-shrink:0}.shopping-list__custom{display:flex;justify-content:space-between;border:1px dashed rgba(99,102,241,.25);background:#fafaff;border-radius:12px;padding:.75rem 1rem;font-weight:600;color:#1e293b;align-items:center;gap:1rem;transition:all .2s ease;box-shadow:0 1px 3px #6366f108}.shopping-list__custom:hover{border-color:#6366f166;background:#f5f3ff}.shopping-list__custom.checked{opacity:.55}.shopping-list__delete{background:transparent;border:none;color:#94a3b8;cursor:pointer;font-size:.8rem;padding:.2rem .4rem;border-radius:6px;transition:all .2s ease;line-height:1}.shopping-list__delete:hover{background:#ef44441a;color:#ef4444}.shopping-empty{color:#64748b;font-size:.9rem;margin-top:1rem;text-align:center;padding:2rem 0}@media (max-width: 600px){.shopping-add-form{flex-direction:column;align-items:stretch}.shopping-add-input--sm{flex:1;min-width:unset}.shopping-header{flex-direction:column;align-items:flex-start}.shopping-header-actions{flex-direction:row;align-items:center;width:100%;justify-content:space-between}}.navbar-profile-btn{display:flex;align-items:center;gap:.5rem;background:transparent;border:1.5px solid rgba(99,102,241,.15);border-radius:999px;padding:.2rem .65rem .2rem .25rem;cursor:pointer;transition:all .2s ease;color:#1e293b}.navbar-profile-btn:hover,.navbar-profile-btn.active{background:#6366f114;border-color:#6366f14d}.navbar-avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#10b981);color:#fff;font-size:.75rem;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}.profile-page{display:flex;justify-content:center;padding:1rem 0 3rem}.profile-card{width:100%;max-width:480px;background:#fff;border-radius:24px;padding:2.5rem 2rem;box-shadow:0 4px 24px #6366f114,0 1px 4px #0000000f;border:1px solid rgba(99,102,241,.1);display:flex;flex-direction:column;align-items:center;gap:.5rem}.profile-avatar-large,.profile-avatar{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#10b981);color:#fff;font-size:2rem;font-weight:800;display:flex;align-items:center;justify-content:center;margin-bottom:.5rem;box-shadow:0 4px 16px #6366f140}.profile-title{font-size:1.4rem;font-weight:800;color:#1e293b;margin:0}.profile-email{font-size:.85rem;color:#64748b;margin:0 0 1rem}.profile-form{width:100%;display:flex;flex-direction:column;gap:1.25rem;margin-top:1rem}.profile-field{display:flex;flex-direction:column;gap:.4rem}.profile-label{font-size:.82rem;font-weight:700;color:#374151;text-transform:uppercase;letter-spacing:.04em}.profile-input{border:1.5px solid rgba(99,102,241,.2);border-radius:12px;padding:.7rem 1rem;font-size:.95rem;background:#f8fafc;color:#1e293b;transition:border-color .2s,box-shadow .2s;width:100%;box-sizing:border-box}.profile-input:focus{outline:none;border-color:#6366f1;background:#fff;box-shadow:0 0 0 3px #6366f11a}.profile-lang-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.profile-lang-btn{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.75rem .5rem;border:1.5px solid rgba(99,102,241,.15);border-radius:14px;background:#f8fafc;color:#475569;cursor:pointer;font-size:.85rem;font-weight:600;transition:all .2s ease}.profile-lang-btn.active{border-color:#6366f1;background:#6366f114;color:#4338ca;box-shadow:0 2px 8px #6366f126}.profile-lang-flag{font-size:1.6rem;line-height:1}.profile-save-btn{width:100%;margin-top:.5rem}.profile-success{background:#10b98114;border:1px solid rgba(16,185,129,.25);color:#059669;border-radius:10px;padding:.6rem 1rem;font-size:.85rem;font-weight:600;text-align:center;margin:0}.profile-error{background:#ef444412;border:1px solid rgba(239,68,68,.2);color:#dc2626;border-radius:10px;padding:.6rem 1rem;font-size:.85rem;text-align:center;margin:0}.profile-section-divider{width:100%;height:1px;background:#6366f11a;margin:.5rem 0}.profile-coming-soon{display:flex;align-items:center;gap:.6rem;color:#94a3b8;font-size:.85rem;font-style:italic}@media (max-width: 600px){.navbar-user-name{display:none}.navbar-profile-btn{padding:.2rem;border:none}.profile-card{border-radius:16px;padding:1.75rem 1.25rem}}.profile-lang-btn{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.85rem .5rem .7rem;border:1.5px solid rgba(99,102,241,.15);border-radius:14px;background:#f8fafc;color:#475569;cursor:pointer;transition:all .2s ease}.profile-lang-btn:hover{border-color:#6366f159;background:#f0f0ff;color:#4338ca}.profile-lang-btn.active{background:linear-gradient(135deg,#6366f1,#8b5cf6);border-color:transparent;color:#fff;box-shadow:0 4px 14px #6366f159}.profile-lang-abbr{font-size:1rem;font-weight:800;letter-spacing:.08em;line-height:1}.profile-lang-name{font-size:.72rem;font-weight:500;opacity:.85;line-height:1}.profile-lang-btn.active .profile-lang-abbr,.profile-lang-btn.active .profile-lang-name{color:#fff;opacity:1}.assign-modal__search{display:flex;align-items:center;gap:.5rem;background:#f8fafc;border:1.5px solid rgba(99,102,241,.18);border-radius:12px;padding:.5rem .75rem;margin:.75rem 0 0;transition:border-color .2s}.assign-modal__search:focus-within{border-color:#6366f1;background:#fff;box-shadow:0 0 0 3px #6366f11a}.assign-modal__search-icon{font-size:.95rem;flex-shrink:0;opacity:.6}.assign-modal__search-input{flex:1;border:none;background:transparent;font-size:.9rem;color:#1e293b;outline:none}.assign-modal__search-input::placeholder{color:#94a3b8}.assign-modal__search-clear{background:transparent;border:none;color:#94a3b8;cursor:pointer;font-size:.75rem;padding:.1rem .2rem;border-radius:4px;transition:color .2s;flex-shrink:0}.assign-modal__search-clear:hover{color:#ef4444}.assign-modal__menu-info{display:flex;align-items:center;gap:.4rem;min-width:0}.assign-modal__battery{font-size:.85rem;flex-shrink:0;line-height:1}.assign-modal__empty{color:#64748b;font-size:.9rem;text-align:center;padding:1.5rem 0}
