:root{--primary:#c8401a;--primary-dark:#a83210;--primary-light:#e86040;--secondary:#e8960c;--accent:#3e7d52;--background:#fbf5eb;--surface:#fff;--surface-2:#f7edd8;--text:#1a1614;--text-muted:#7a6e68;--text-soft:#5c5048;--glass:#fffffff0;--glass-border:#c8401a21;--glass-border-hover:#c8401a52;--shadow-sm:0 1px 3px #1a161412, 0 2px 8px #1a16140d;--shadow-md:0 4px 14px #1a161417, 0 8px 28px #1a16140f;--shadow-lg:0 8px 28px #1a161421, 0 16px 48px #1a161417;--radius:16px;--radius-sm:10px;--radius-lg:24px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html{scroll-behavior:smooth}body{background-color:var(--background);color:var(--text);background-image:radial-gradient(65% 45% at 15% -5%,#c8401a17 0%,#0000 55%),radial-gradient(55% 40% at 88% 100%,#e8960c17 0%,#0000 55%),radial-gradient(40% 30% at 75% 20%,#3e7d520a 0%,#0000 50%);min-height:100vh;font-family:Plus Jakarta Sans,sans-serif;line-height:1.6;overflow-x:hidden}button{cursor:pointer;border:none;outline:none;font-family:inherit}input,textarea,select{font-family:inherit;font-size:1rem}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#d4541a40;border-radius:999px}.glass-card{background:var(--surface);border:1px solid var(--glass-border);border-radius:var(--radius);box-shadow:var(--shadow-md);transition:border-color .25s,box-shadow .25s,transform .25s}.glass-card:hover{border-color:var(--glass-border-hover);box-shadow:var(--shadow-lg)}.glass-card.day-card{border-top:3px solid var(--primary)}.display-title{background:linear-gradient(135deg, var(--primary) 0%, #e05a2a 50%, var(--secondary) 100%);-webkit-text-fill-color:transparent;letter-spacing:-.5px;-webkit-background-clip:text;background-clip:text;font-family:Playfair Display,serif}h1,h2,h3,h4{color:var(--text)}.btn-primary{background:linear-gradient(135deg, var(--primary-light) 0%, var(--primary) 100%);color:#fff;border-radius:var(--radius-sm);letter-spacing:.2px;border:none;padding:11px 22px;font-size:.875rem;font-weight:700;transition:all .2s;box-shadow:0 2px 10px #c8401a4d,0 1px 3px #c8401a33}.btn-primary:hover{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);transform:translateY(-2px);box-shadow:0 6px 20px #c8401a61,0 2px 6px #c8401a38}.btn-primary:active{transform:translateY(0);box-shadow:0 1px 5px #c8401a33}.btn-primary:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-outline{color:var(--text-muted);border-radius:var(--radius-sm);background:0 0;border:1.5px solid #1c191726;padding:10px 22px;font-size:.875rem;font-weight:600;transition:all .2s}.btn-outline:hover{color:var(--primary);background:#d4541a0a;border-color:#d4541a66}.btn-danger{color:#dc2626;border-radius:var(--radius-sm);background:#dc262612;border:1.5px solid #dc262633;padding:8px 16px;font-size:.8rem;font-weight:600;transition:all .2s}.btn-danger:hover{background:#dc26261f;border-color:#dc262666}.btn-icon{color:var(--text-muted);border-radius:var(--radius-sm);background:0 0;border:1.5px solid #0000;justify-content:center;align-items:center;padding:8px;transition:all .2s;display:flex}.btn-icon:hover{background:var(--surface-2);color:var(--text);border-color:#1c19171a}.btn-icon.edit:hover{color:var(--primary);background:#d4541a12;border-color:#d4541a40}.btn-icon.del:hover{color:#dc2626;background:#dc262612;border-color:#dc262640}.form-input{background:var(--surface);border-radius:var(--radius-sm);width:100%;color:var(--text);border:1.5px solid #1c19171f;padding:10px 14px;font-size:.9rem;transition:border-color .2s,box-shadow .2s}.form-input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #d4541a1a}.form-input::placeholder{color:var(--text-muted);opacity:.65}.form-input.error{border-color:#dc2626;box-shadow:0 0 0 3px #dc26261a}select.form-input{cursor:pointer}.form-label{text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);margin-bottom:6px;font-size:.72rem;font-weight:700;display:block}.badge{text-transform:uppercase;letter-spacing:.4px;color:var(--primary);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#c8401a1c;border:1px solid #c8401a38;border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:.7rem;font-weight:700;display:inline-flex}.page-container{max-width:1280px;margin:0 auto;padding:2.5rem}@media (width<=768px){.page-container{padding:1.25rem 1.25rem 6.5rem}}.main-layout{min-height:100vh;display:flex}.sidebar{background:var(--surface);z-index:50;border-right:1px solid #1c191714;flex-direction:column;align-items:center;gap:.4rem;width:76px;height:100vh;padding:1.5rem 0;display:flex;position:fixed;top:0;left:0;box-shadow:2px 0 12px #1c19170a}.sidebar-logo{background:linear-gradient(135deg, var(--primary-light) 0%, var(--primary) 100%);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;margin-bottom:1.75rem;display:flex;box-shadow:0 4px 14px #c8401a59}.sidebar-nav-item{width:52px;height:52px;color:var(--text-muted);cursor:pointer;background:0 0;border:1.5px solid #0000;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:3px;transition:all .18s;display:flex}.sidebar-nav-item span{text-transform:uppercase;letter-spacing:.3px;font-size:.52rem;font-weight:700}.sidebar-nav-item:hover{color:var(--primary);background:#d4541a0f;border-color:#d4541a26}.sidebar-nav-item.active{color:var(--primary);background:#d4541a17;border-color:#d4541a40}.main-content{flex:1;min-height:100vh;margin-left:76px}.bottom-nav{background:var(--surface);z-index:50;border-top:1px solid #1c191714;justify-content:space-around;align-items:center;height:64px;padding:0 1rem;display:none;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #1c19170f}.bottom-nav-item{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:12px;flex-direction:column;align-items:center;gap:3px;padding:8px 18px;transition:all .18s;display:flex}.bottom-nav-item span{text-transform:uppercase;letter-spacing:.3px;font-size:.58rem;font-weight:700}.bottom-nav-item.active,.bottom-nav-item.active span{color:var(--primary)}@media (width<=768px){.sidebar{display:none}.bottom-nav{display:flex}.main-content{margin-left:0}}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#1c191773;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-box{background:var(--surface);border-radius:var(--radius-lg);border:1px solid #1c191714;flex-direction:column;width:100%;max-height:90vh;display:flex;position:relative;box-shadow:0 24px 80px #1c191733,0 8px 24px #1c19171a}.modal-box.sm{max-width:440px}.modal-box.lg{max-width:700px}.modal-header{flex-shrink:0;padding:1.75rem 1.75rem 0}.modal-body{flex:1;padding:1.5rem 1.75rem;overflow-y:auto}.modal-footer{background:var(--surface-2);border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg);border-top:1px solid #1c19170f;flex-shrink:0;gap:.75rem;padding:1.25rem 1.75rem 1.75rem;display:flex}.recipe-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid #1c191712;flex-direction:column;transition:all .25s;display:flex;overflow:hidden}.recipe-card:hover{box-shadow:var(--shadow-lg);border-color:#d4541a33;transform:translateY(-3px)}.recipe-card-img{background:var(--surface-2);height:190px;position:relative;overflow:hidden}.recipe-card-img img{object-fit:cover;width:100%;height:100%;transition:transform .5s}.recipe-card:hover .recipe-card-img img{transform:scale(1.04)}.recipe-card-img-placeholder{color:#c8401a38;background:linear-gradient(135deg,#c8401a14 0%,#e8960c14 100%);justify-content:center;align-items:center;width:100%;height:100%;display:flex}.recipe-card-body{flex-direction:column;flex:1;gap:.5rem;padding:1.2rem 1.2rem 1rem;display:flex}.recipe-card-title{color:var(--text);line-clamp:1;letter-spacing:-.1px;font-family:Playfair Display,serif;font-size:1.02rem;font-weight:700}.recipe-card-desc{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;font-size:.82rem;line-height:1.5;display:-webkit-box;overflow:hidden}.recipe-card-meta{align-items:center;gap:.75rem;font-size:.8rem;font-weight:600;display:flex}.recipe-card-tags{flex-wrap:wrap;gap:4px;display:flex}.admin-recipe-row{border-radius:var(--radius-sm);background:var(--surface);border:1px solid #1c191712;align-items:center;gap:1rem;padding:.9rem 1rem;transition:all .2s;display:flex}.admin-recipe-row:hover{background:var(--surface-2);box-shadow:var(--shadow-sm);border-color:#d4541a26}.admin-recipe-thumb{object-fit:cover;background:var(--surface-2);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;display:flex;overflow:hidden}.admin-recipe-thumb img{object-fit:cover;width:100%;height:100%}.empty-state{text-align:center;padding:4rem 2rem}.empty-state-icon{color:#d4541a66;background:#d4541a12;border:1.5px solid #d4541a26;border-radius:20px;justify-content:center;align-items:center;width:72px;height:72px;margin:0 auto 1.25rem;display:flex}.divider{background:#1c191712;height:1px;margin:1.25rem 0}.meal-item{background:var(--background);border:1.5px solid #1a161414;border-radius:12px;align-items:center;gap:.8rem;padding:.85rem;transition:all .2s;display:flex}.meal-item:hover{background:#c8401a0a;border-color:#c8401a47;transform:translateY(-1px);box-shadow:0 3px 10px #c8401a1a}.ingredient-grid{grid-template-columns:1fr 70px 70px 1fr 36px;align-items:center;gap:6px;display:grid}@media (width<=500px){.ingredient-grid{grid-template-columns:1fr 60px 60px 1fr 32px}}.login-card{background:var(--surface);border-radius:var(--radius-lg);max-width:380px;box-shadow:var(--shadow-lg);border:1px solid #1c191714;margin:auto;padding:2.5rem}.confirm-box{background:var(--surface);border-radius:var(--radius);max-width:360px;box-shadow:var(--shadow-lg);border:1.5px solid #dc262633;padding:2rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.anim-fade{animation:.3s forwards fadeIn}.anim-scale{animation:.2s forwards scaleIn}.shopping-check{width:18px;height:18px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}@media (width<=500px){.hidden-mobile{display:none}}.recipe-detail-modal{max-width:700px;overflow:hidden}.recipe-detail-img{flex-shrink:0;height:240px;position:relative;overflow:hidden}.recipe-detail-img img{object-fit:cover;width:100%;height:100%}.recipe-detail-img-placeholder{color:#d4541a40;background:linear-gradient(135deg,#d4541a14,#e8a02014);justify-content:center;align-items:center;width:100%;height:100%;display:flex}.recipe-detail-img-overlay{background:linear-gradient(#0000 0%,#0a08060d 45%,#0a0806bf 100%);position:absolute;inset:0}.recipe-detail-close{width:36px;height:36px;color:var(--text);cursor:pointer;z-index:2;box-shadow:var(--shadow-sm);background:#ffffffe6;border:1px solid #1c19171a;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex;position:absolute;top:12px;right:12px}.recipe-detail-close:hover{box-shadow:var(--shadow-md);background:#fff;transform:scale(1.05)}.recipe-detail-img-content{z-index:1;padding:1.25rem 1.75rem;position:absolute;bottom:0;left:0;right:0}.recipe-meta-chip{background:var(--surface-2);color:var(--text-soft);border:1.5px solid #1c191714;border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-size:.82rem;font-weight:600;display:flex}@media (width<=768px){.recipe-grid-mobile{grid-template-columns:1fr!important}.page-header-mobile{flex-direction:column;gap:.75rem;align-items:flex-start!important}.page-header-mobile>div:last-child{justify-content:flex-end;width:100%}.modal-backdrop{align-items:flex-end;padding:0}.modal-box{border-bottom:none;border-bottom-right-radius:0;border-bottom-left-radius:0;max-height:92vh}.modal-footer{border-bottom-right-radius:0;border-bottom-left-radius:0}.modal-box.sm,.modal-box.lg{max-width:100%}.ingredient-grid{grid-template-columns:1fr 55px 55px auto 32px;gap:4px}.meal-item{padding:.65rem}.admin-recipe-row{flex-wrap:wrap}}@media (width<=400px){.ingredient-grid{grid-template-columns:1fr 48px 1fr 32px}.ingredient-grid .unit-col{display:none}}
