*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;scroll-behavior:smooth;font-size:16px}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}ul,ol{list-style:none}:root{--color-border:#e2dbd2;--color-bg:#f0ece5}body{color:#1e2028;background-color:#f0ece5;min-height:100dvh;font-family:DM Sans,system-ui,sans-serif;font-size:1rem;line-height:1.7}h1,h2,h3,h4,h5,h6{color:#c0503a;font-family:Playfair Display,georgia,serif;font-weight:700;line-height:1.2}h1{font-size:2.25rem}h2{font-size:1.75rem}h3{font-size:1.375rem}h4{font-size:1.125rem}h5{font-size:1rem}h6{font-size:.875rem}p{color:#4a4e5a;margin-bottom:1rem}p:last-child{margin-bottom:0}a{color:#c0503a;text-decoration:none;transition:color .15s}a:hover{color:#a8422e}ul,ol{margin-bottom:1rem;padding-left:1.5rem}ul:last-child,ol:last-child{margin-bottom:0}li{color:#4a4e5a;margin-bottom:.25rem}li:last-child{margin-bottom:0}section{margin-bottom:3rem}section:last-child{margin-bottom:0}input[type=text],input[type=email],input[type=password],input[type=search],input[type=number],textarea{color:#1e2028;background:#fff;border:1px solid #e2dbd2;border-radius:8px;outline:none;width:100%;padding:.5rem .75rem;font-family:DM Sans,system-ui,sans-serif;font-size:1rem;transition:border-color .15s,box-shadow .15s}input[type=text]::placeholder,input[type=email]::placeholder,input[type=password]::placeholder,input[type=search]::placeholder,input[type=number]::placeholder,textarea::placeholder{color:#8892a4}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=search]:focus,input[type=number]:focus,textarea:focus{border-color:#c0503a;box-shadow:0 0 0 3px #f5e8e5}.site-header{color:#fff;z-index:10;background:#2b2d33;padding:0 1.25rem;display:block;position:sticky;top:0;box-shadow:0 2px 12px #00000026}.site-header__inner{align-items:center;gap:.6rem;max-width:960px;height:56px;margin:0 auto;display:flex}.site-header__back{color:#ffffffbf;border-radius:6px;padding:.2rem .4rem;font-size:1.2rem;line-height:1;text-decoration:none;transition:background .2s}.site-header__back:hover{background:#ffffff26}.site-header__logo{font-size:1.25rem;line-height:1}.site-header__title{letter-spacing:.01em;flex:1;font-family:Playfair Display,georgia,serif;font-size:1.15rem;font-weight:600}.site-header__actions{align-items:center;gap:.5rem;display:flex}.site-header__btn{color:#ffffffd9;cursor:pointer;white-space:nowrap;background:#ffffff1f;border:1px solid #fff3;border-radius:7px;padding:.35rem .75rem;font-family:DM Sans,system-ui,sans-serif;font-size:.82rem;transition:background .2s}.site-header__btn:hover{background:#ffffff38}.hidden{display:none!important}.login{z-index:100;background-color:#2b2d33;background-image:radial-gradient(at 20%,#4e587080 0%,#0000 60%),radial-gradient(at 80% 20%,#c0503a33 0%,#0000 50%);background-position:0 0;background-repeat:repeat;background-size:auto;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.login__card{background:var(--color-bg);border-radius:20px;flex-direction:column;align-items:center;gap:.6rem;width:100%;max-width:380px;padding:2.5rem 2rem;animation:.45s cubic-bezier(.34,1.56,.64,1) both login-card-in;display:flex;box-shadow:0 12px 40px #00000021}.login__logo{margin-bottom:.4rem;font-size:2.2rem;line-height:1}.login__title{color:#2b2d33;font-family:Playfair Display,georgia,serif;font-size:1.7rem;font-weight:600}.login__sub{color:#8892a4;text-align:center;margin-bottom:.6rem;font-size:.88rem}.login__field{width:100%;margin-top:.4rem}.login__input{border:1.5px solid var(--color-border);color:#1e2028;background:#fff;border-radius:10px;outline:none;width:100%;padding:.8rem 1rem;font-family:DM Sans,system-ui,sans-serif;font-size:1rem;transition:border-color .2s,box-shadow .2s}.login__input:focus{border-color:#c0503a;box-shadow:0 0 0 3px #c0503a26}.login__error{color:#c0392b;text-align:center;min-height:1.2em;font-size:.82rem}.login__submit{color:#fff;cursor:pointer;background:#c0503a;border:none;border-radius:10px;width:100%;margin-top:.3rem;padding:.85rem;font-family:DM Sans,system-ui,sans-serif;font-size:1rem;font-weight:500;transition:background .2s,transform .2s}.login__submit:hover{background:#a8422e;transform:translateY(-1px)}.login__submit:active{transform:translateY(0)}.login__remember{color:#4a4e5a;cursor:pointer;align-items:center;gap:.5rem;margin-top:.2rem;font-size:.84rem;display:flex}.login__checkbox{accent-color:#c0503a;cursor:pointer;width:15px;height:15px}@keyframes login-card-in{0%{opacity:0;transform:translateY(24px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.container{max-width:960px;margin:0 auto;padding:2rem 1.25rem 3rem}.greeting{margin-bottom:2rem}.greeting__text{color:#2b2d33;font-family:Playfair Display,georgia,serif;font-size:1.6rem;font-style:italic;font-weight:600}.greeting__date{color:#8892a4;margin-top:.25rem;font-size:.88rem}.card-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.1rem;display:grid}.card-grid .card{animation:.4s both card-rise}.card-grid .card:first-child{animation-delay:50ms}.card-grid .card:nth-child(2){animation-delay:.1s}.card-grid .card:nth-child(3){animation-delay:.15s}.card-grid .card:nth-child(4){animation-delay:.2s}.card{border:1.5px solid var(--color-border);cursor:pointer;background:#fff;border-radius:14px;flex-direction:column;gap:.5rem;padding:1.4rem 1.3rem 1.1rem;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;position:relative;overflow:hidden;box-shadow:0 1px 4px #00000012}.card:before{content:"";transform-origin:0;background:#c0503a;height:3px;transition:transform .25s;position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.card:hover{border-color:#f5e8e5;transform:translateY(-3px);box-shadow:0 4px 20px #00000017}.card:hover:before{transform:scaleX(1)}.card:hover .card__arrow{color:#c0503a;transform:translate(3px)}.card__icon{font-size:1.6rem;line-height:1}.card__body{flex:1}.card__title{color:#1e2028;margin-bottom:.3rem;font-family:Playfair Display,georgia,serif;font-size:1.1rem;font-weight:600}.card__desc{color:#4a4e5a;font-size:.85rem;line-height:1.5}.card__desc--error{color:#c0392b}.card__meta{flex-direction:column;gap:2px;margin-top:.4rem;display:flex}.card__recipe-name{color:#1e2028;font-size:.85rem;font-weight:500;line-height:1.4}.card__recipe-desc{color:#4a4e5a;font-size:.8rem;line-height:1.4}.card__arrow{color:#8892a4;font-size:1rem;transition:transform .2s,color .2s;position:absolute;bottom:1rem;right:1.1rem}.card-tag{color:#4a4e5a;border:1px solid var(--color-border);border-radius:20px;padding:.1rem .5rem;font-size:.75rem}.card-tag.amber{color:#92570a;background:#fef3cd;border-color:#f5d78e}.menu-meal-line{color:#4a4e5a;white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:4px;font-size:.78rem;display:flex;overflow:hidden}.menu-meal-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.menu-meal-dot--morning{background:#f9a825}.menu-meal-dot--lunch{background:#43a047}.menu-meal-dot--snack{background:#5c6bc0}.menu-meal-dot--late-snack{background:#e91e63}.grocery-item-line{color:#4a4e5a;white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;font-size:.78rem;display:flex;overflow:hidden}.grocery-item-line:before{content:"";background:#c0503a;border-radius:50%;flex-shrink:0;width:6px;height:6px}.grocery-item-qty{color:#8892a4;font-size:.72rem}.cal-event-line{color:#4a4e5a;align-items:baseline;gap:6px;font-size:.78rem;display:flex;overflow:hidden}.cal-event-date{color:#c0503a;white-space:nowrap;flex-shrink:0;font-size:.72rem}.cal-event-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.site-footer{text-align:center;color:#8892a4;border-top:1px solid var(--color-border);padding:1.5rem;font-size:.82rem}#main-content{animation:.35s both fade-in}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes card-rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (width<=600px){.greeting__text{font-size:1.3rem}.card-grid{grid-template-columns:1fr}.login__card{padding:2rem 1.4rem}}
