.auth-container{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:1rem}.auth-card{background-color:#ffffff0d;border-radius:12px;padding:2rem;width:100%;max-width:420px;box-shadow:0 4px 6px #0000001a}.auth-card h2{margin-bottom:.5rem;font-size:1.75rem;text-align:center}.auth-subtitle{color:#ffffffb3;text-align:center;margin-bottom:2rem;font-size:.9rem}.auth-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:500;font-size:.9rem;color:#ffffffe6}.form-group input{padding:.75rem;border-radius:6px;border:1px solid rgba(255,255,255,.2);background-color:#ffffff0d;color:#ffffffde;font-size:1rem;font-family:inherit;transition:border-color .2s,background-color .2s}.form-group input:focus{outline:none;border-color:#646cff;background-color:#ffffff14}.form-group input:disabled{opacity:.5;cursor:not-allowed}.form-group input::placeholder{color:#fff6}.form-hint{font-size:.8rem;color:#fff9;margin-top:-.25rem}.error-message{background-color:#dc262626;border:1px solid rgba(220,38,38,.5);color:#fca5a5;padding:.75rem;border-radius:6px;margin-bottom:1rem;font-size:.9rem}.btn-primary{padding:.875rem 1.5rem;font-size:1rem;font-weight:600;background-color:#646cff;color:#fff;border:none;border-radius:8px;cursor:pointer;transition:background-color .2s,transform .1s;margin-top:.5rem}.btn-primary:hover:not(:disabled){background-color:#535bf2;transform:translateY(-1px)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.auth-footer{margin-top:1.5rem;text-align:center;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.1)}.auth-footer p{font-size:.9rem;color:#ffffffb3}.auth-link{color:#646cff;text-decoration:none;font-weight:500;transition:color .2s}.auth-link:hover{color:#535bf2;text-decoration:underline}@media (prefers-color-scheme: light){.auth-card{background-color:#fff;box-shadow:0 4px 6px #0000000d,0 1px 3px #0000001a}.auth-subtitle{color:#0009}.form-group label{color:#000000d9}.form-group input{border:1px solid rgba(0,0,0,.2);background-color:#fff;color:#000000de}.form-group input:focus{border-color:#646cff;background-color:#fafafa}.form-group input::placeholder{color:#0006}.form-hint{color:#00000080}.error-message{background-color:#dc26261a;border:1px solid rgba(220,38,38,.3);color:#b91c1c}.auth-footer p{color:#0009}.auth-footer{border-top:1px solid rgba(0,0,0,.1)}}.checkbox-group{display:flex;flex-direction:column;gap:.625rem;margin-top:.5rem}.checkbox-label{display:flex;align-items:center;gap:.625rem;cursor:pointer;padding:.5rem;border-radius:6px;transition:background-color .2s}.checkbox-label:hover{background-color:#ffffff0d}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#646cff}.checkbox-label input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.checkbox-label span{font-size:.95rem;color:#ffffffde}.form-group textarea{padding:.75rem;border-radius:6px;border:1px solid rgba(255,255,255,.2);background-color:#ffffff0d;color:#ffffffde;font-size:1rem;font-family:inherit;resize:vertical;transition:border-color .2s,background-color .2s}.form-group textarea:focus{outline:none;border-color:#646cff;background-color:#ffffff14}.form-group textarea:disabled{opacity:.5;cursor:not-allowed}.form-group textarea::placeholder{color:#fff6}@media (prefers-color-scheme: light){.checkbox-label:hover{background-color:#00000008}.checkbox-label span{color:#000000de}.form-group textarea{border:1px solid rgba(0,0,0,.2);background-color:#fff;color:#000000de}.form-group textarea:focus{border-color:#646cff;background-color:#fafafa}.form-group textarea::placeholder{color:#0006}}@media (max-width: 480px){.auth-card{padding:1.5rem}.auth-card h2{font-size:1.5rem}.auth-form{gap:1rem}.checkbox-group{gap:.5rem}.checkbox-label{padding:.375rem}}.recipe-container{max-width:1200px;margin:0 auto;padding:2rem 1rem}.recipe-header{margin-bottom:2rem}.recipe-header h1{font-size:2rem;margin-bottom:.5rem}.recipe-subtitle{color:#ffffffb3;font-size:1rem}.recipe-search-section{margin-bottom:2rem}.search-input-wrapper{position:relative;max-width:600px}.search-input{width:100%;padding:.875rem 3rem .875rem 1rem;border-radius:8px;border:1px solid rgba(255,255,255,.2);background-color:#ffffff0d;color:#ffffffde;font-size:1rem;font-family:inherit;transition:border-color .2s,background-color .2s}.search-input:focus{outline:none;border-color:#646cff;background-color:#ffffff14}.search-input:disabled{opacity:.5;cursor:not-allowed}.search-input::placeholder{color:#fff6}.clear-search-button{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:none;border:none;color:#ffffff80;font-size:1.25rem;cursor:pointer;padding:.25rem .5rem;transition:color .2s}.clear-search-button:hover{color:#ffffffe6}.results-count{margin-bottom:1rem;color:#fff9;font-size:.9rem}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.recipe-card{background-color:#ffffff0d;border-radius:12px;padding:1.5rem;transition:transform .2s,background-color .2s,box-shadow .2s;text-decoration:none;color:inherit;display:block;border:1px solid rgba(255,255,255,.1)}.recipe-card:hover{transform:translateY(-4px);background-color:#ffffff14;box-shadow:0 8px 16px #0003}.recipe-card-content{display:flex;flex-direction:column;gap:.75rem}.recipe-card-title{font-size:1.25rem;font-weight:600;margin:0;color:#fffffff2}.recipe-card-description{color:#ffffffb3;font-size:.9rem;line-height:1.5;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-card-meta{display:flex;gap:1rem;flex-wrap:wrap}.recipe-meta-item{display:flex;align-items:center;gap:.375rem;color:#fff9;font-size:.85rem}.meta-icon{font-size:1rem}.recipe-card-ingredients{padding-top:.75rem;border-top:1px solid rgba(255,255,255,.1)}.ingredients-label{color:#ffffff80;font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;font-weight:500}.loading-state,.empty-state{text-align:center;padding:4rem 2rem;color:#fff9}.empty-state p{margin-bottom:1.5rem;font-size:1.1rem}.btn-primary{display:inline-block;padding:.875rem 1.5rem;font-size:1rem;font-weight:600;background-color:#646cff;color:#fff;border:none;border-radius:8px;cursor:pointer;transition:background-color .2s,transform .1s;text-decoration:none}.btn-primary:hover{background-color:#535bf2;transform:translateY(-1px)}.btn-secondary{display:inline-block;padding:.875rem 1.5rem;font-size:1rem;font-weight:600;background-color:#ffffff1a;color:#ffffffde;border:1px solid rgba(255,255,255,.2);border-radius:8px;cursor:pointer;transition:background-color .2s,transform .1s;text-decoration:none}.btn-secondary:hover{background-color:#ffffff26;transform:translateY(-1px)}.btn-secondary:active{transform:translateY(0)}@media (prefers-color-scheme: light){.recipe-subtitle{color:#0009}.search-input{border:1px solid rgba(0,0,0,.2);background-color:#fff;color:#000000de}.search-input:focus{border-color:#646cff;background-color:#fafafa}.search-input::placeholder{color:#0006}.clear-search-button{color:#00000080}.clear-search-button:hover{color:#000c}.results-count{color:#00000080}.recipe-card{background-color:#fff;border:1px solid rgba(0,0,0,.1);box-shadow:0 1px 3px #0000000d}.recipe-card:hover{background-color:#fafafa;box-shadow:0 4px 12px #0000001a}.recipe-card-title{color:#000000f2}.recipe-card-description{color:#0009}.recipe-meta-item{color:#00000080}.recipe-card-ingredients{border-top:1px solid rgba(0,0,0,.1)}.ingredients-label{color:#0006}.loading-state,.empty-state{color:#00000080}.btn-secondary{background-color:#0000000d;color:#000000de;border:1px solid rgba(0,0,0,.2)}.btn-secondary:hover{background-color:#0000001a}.error-message{background-color:#dc26261a;border:1px solid rgba(220,38,38,.3);color:#b91c1c}}@media (max-width: 768px){.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.recipe-header h1{font-size:1.75rem}}@media (max-width: 480px){.recipe-container{padding:1rem}.recipe-header h1{font-size:1.5rem}.recipe-grid{grid-template-columns:1fr}.recipe-card{padding:1.25rem}.search-input{font-size:.95rem}}.recipe-detail-header{margin-bottom:2rem}.recipe-detail-title-section{margin-bottom:1.5rem}.recipe-detail-title-section h1{font-size:2.5rem;margin-bottom:.75rem;color:#fffffff2}.recipe-detail-description{font-size:1.125rem;color:#ffffffb3;line-height:1.6;margin:0}.recipe-detail-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1.5rem;padding:1.5rem;background-color:#ffffff0d;border-radius:12px;border:1px solid rgba(255,255,255,.1)}.recipe-detail-meta .recipe-meta-item{display:flex;align-items:center;gap:.75rem;color:#ffffffde}.recipe-detail-meta .meta-icon{font-size:1.5rem}.meta-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;color:#ffffff80;margin-bottom:.25rem}.meta-value{font-size:1.125rem;font-weight:600;color:#fffffff2}.recipe-detail-actions{display:flex;gap:1rem;margin-bottom:2rem;flex-wrap:wrap}.btn-danger{display:inline-block;padding:.875rem 1.5rem;font-size:1rem;font-weight:600;background-color:#dc262633;color:#fca5a5;border:1px solid rgba(220,38,38,.5);border-radius:8px;cursor:pointer;transition:background-color .2s,transform .1s;text-decoration:none}.btn-danger:hover{background-color:#dc26264d;transform:translateY(-1px)}.btn-danger:active{transform:translateY(0)}.delete-confirm-dialog{background-color:#dc262626;border:1px solid rgba(220,38,38,.5);border-radius:8px;padding:1.5rem;margin-bottom:2rem}.delete-confirm-dialog p{color:#fca5a5;margin:0}.recipe-detail-content{display:grid;grid-template-columns:1fr;gap:2.5rem}.recipe-detail-section{background-color:#ffffff0d;border-radius:12px;padding:2rem;border:1px solid rgba(255,255,255,.1)}.section-title{font-size:1.5rem;margin-bottom:1.5rem;color:#fffffff2;padding-bottom:.75rem;border-bottom:2px solid rgba(255,255,255,.1)}.ingredients-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.ingredient-item{display:flex;align-items:baseline;padding:.75rem;background-color:#ffffff08;border-radius:6px;transition:background-color .2s}.ingredient-item:hover{background-color:#ffffff0f}.ingredient-quantity{font-weight:600;color:#646cff;min-width:100px;margin-right:1rem}.ingredient-name{color:#ffffffde;font-size:1rem}.instructions-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1.5rem;counter-reset:step-counter}.instruction-step{display:flex;gap:1rem;align-items:flex-start}.step-number{flex-shrink:0;width:2.5rem;height:2.5rem;background-color:#646cff;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.125rem}.step-content{flex:1;color:#ffffffde;line-height:1.6;font-size:1rem;padding-top:.5rem}.empty-message{color:#ffffff80;font-style:italic;margin:0}.instructions-html{color:#ffffffde;line-height:1.7;font-size:1rem}.instructions-html p{margin:0 0 .875rem}.instructions-html p:last-child{margin-bottom:0}.instructions-html ol,.instructions-html ul{padding-left:1.5rem;margin:0 0 .875rem}.instructions-html li{margin-bottom:.5rem;line-height:1.7}.instructions-html strong{font-weight:700;color:#fffffff2}.instructions-html em{font-style:italic}@media (prefers-color-scheme: light){.recipe-detail-title-section h1{color:#000000f2}.recipe-detail-description{color:#0009}.recipe-detail-meta{background-color:#f9fafb;border:1px solid rgba(0,0,0,.1)}.recipe-detail-meta .recipe-meta-item{color:#000000de}.meta-label{color:#00000080}.meta-value{color:#000000f2}.btn-danger{background-color:#dc26261a;color:#b91c1c;border:1px solid rgba(220,38,38,.3)}.btn-danger:hover{background-color:#dc262633}.delete-confirm-dialog{background-color:#dc26261a;border:1px solid rgba(220,38,38,.3)}.delete-confirm-dialog p{color:#b91c1c}.recipe-detail-section{background-color:#fff;border:1px solid rgba(0,0,0,.1);box-shadow:0 1px 3px #0000000d}.section-title{color:#000000f2;border-bottom:2px solid rgba(0,0,0,.1)}.ingredient-item{background-color:#f9fafb}.ingredient-item:hover{background-color:#f3f4f6}.ingredient-name,.step-content{color:#000000de}.empty-message{color:#0006}.instructions-html{color:#000000de}.instructions-html strong{color:#000000f2}}@media (max-width: 768px){.recipe-detail-title-section h1{font-size:2rem}.recipe-detail-meta{grid-template-columns:repeat(2,1fr);gap:1rem;padding:1rem}.recipe-detail-actions{flex-direction:column}.recipe-detail-actions button{width:100%}.recipe-detail-section{padding:1.5rem}.section-title{font-size:1.25rem}}@media (max-width: 480px){.recipe-detail-title-section h1{font-size:1.75rem}.recipe-detail-description{font-size:1rem}.recipe-detail-meta{grid-template-columns:1fr}.recipe-detail-section{padding:1rem}.ingredient-quantity{min-width:80px;font-size:.9rem}.ingredient-name{font-size:.9rem}.step-number{width:2rem;height:2rem;font-size:1rem}.step-content{font-size:.95rem}}.rich-text-editor{border:1px solid rgba(255,255,255,.2);border-radius:8px;background-color:#ffffff0d;transition:border-color .2s}.rich-text-editor:focus-within{border-color:#646cff;background-color:#ffffff14}.rich-text-editor--disabled{opacity:.5;cursor:not-allowed}.rich-text-editor__toolbar{display:flex;align-items:center;gap:.25rem;padding:.5rem .75rem;border-bottom:1px solid rgba(255,255,255,.1)}.toolbar-btn{padding:.25rem .5rem;min-width:2rem;background:none;border:1px solid transparent;border-radius:4px;color:#ffffffb3;font-size:.875rem;cursor:pointer;transition:background-color .15s,color .15s,border-color .15s;line-height:1.4}.toolbar-btn:hover:not(:disabled){background-color:#ffffff1a;color:#fffffff2}.toolbar-btn--active{background-color:#646cff33;border-color:#646cff66;color:#646cff}.toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.toolbar-divider{width:1px;height:1.25rem;background-color:#ffffff26;margin:0 .25rem}.rich-text-editor__content-wrapper{position:relative;min-height:12rem}.rich-text-editor__placeholder{position:absolute;top:.875rem;left:.875rem;color:#ffffff59;font-size:.95rem;pointer-events:none;white-space:pre-line}.rich-text-editor__content{min-height:12rem;padding:.875rem;outline:none;color:#ffffffde;font-size:1rem;line-height:1.6;cursor:text}.rich-text-editor__content .ProseMirror{outline:none;min-height:10rem}.rich-text-editor__content .ProseMirror p{margin:0 0 .75rem}.rich-text-editor__content .ProseMirror p:last-child{margin-bottom:0}.rich-text-editor__content .ProseMirror ol,.rich-text-editor__content .ProseMirror ul{padding-left:1.5rem;margin:0 0 .75rem}.rich-text-editor__content .ProseMirror li{margin-bottom:.375rem;line-height:1.6}.rich-text-editor__content .ProseMirror strong{font-weight:700;color:#fffffff2}.rich-text-editor__content .ProseMirror em{font-style:italic}@media (prefers-color-scheme: light){.rich-text-editor{border-color:#0003;background-color:#fff}.rich-text-editor:focus-within{border-color:#646cff;background-color:#fafafa}.rich-text-editor__toolbar{border-bottom-color:#0000001a}.toolbar-btn{color:#0009}.toolbar-btn:hover:not(:disabled){background-color:#00000012;color:#000000e6}.toolbar-divider{background-color:#00000026}.rich-text-editor__placeholder{color:#00000059}.rich-text-editor__content{color:#000000de}.rich-text-editor__content .ProseMirror strong{color:#000000f2}}.cooking-mode-container{height:100dvh;min-height:100vh;background:linear-gradient(135deg,#1a1a2e,#16213e);color:#fffffff2;display:flex;flex-direction:column;padding:2rem;position:relative;overflow:hidden;box-sizing:border-box}.cooking-mode-container:fullscreen{padding:3rem}.cooking-mode-container:-webkit-full-screen{padding:3rem}.cooking-mode-container:-moz-full-screen{padding:3rem}.cooking-mode-container:-ms-fullscreen{padding:3rem}.cooking-mode-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;gap:1rem}.cooking-mode-title h1{font-size:2rem;margin:0 0 .5rem;color:#fffffff2}.cooking-mode-servings{font-size:1rem;color:#fff9;margin:0}.cooking-mode-exit{background-color:#dc262633;color:#fca5a5;border:1px solid rgba(220,38,38,.5);padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;flex-shrink:0}.cooking-mode-exit:hover{background-color:#dc26264d;transform:translateY(-1px)}.cooking-mode-progress-bar{width:100%;height:8px;background-color:#ffffff1a;border-radius:4px;overflow:hidden;margin-bottom:1rem}.cooking-mode-progress-fill{height:100%;background:linear-gradient(90deg,#646cff,#535bf2);transition:width .3s ease;border-radius:4px}.cooking-mode-step-counter{text-align:center;font-size:1.125rem;color:#fff9;margin-bottom:2rem;text-transform:uppercase;letter-spacing:1px;font-weight:500}.cooking-mode-step-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;margin:1rem 0;background-color:#ffffff0d;border-radius:16px;border:2px solid rgba(255,255,255,.1);min-height:0;overflow:hidden}.cooking-mode-step-number{width:5rem;height:5rem;background:linear-gradient(135deg,#646cff,#535bf2);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2.5rem;font-weight:700;margin-bottom:2rem;box-shadow:0 4px 16px #646cff4d}.cooking-mode-step-text{font-size:1.75rem;line-height:1.8;text-align:center;color:#fffffff2;margin:0;max-width:800px}.cooking-mode-controls{display:flex;gap:1rem;justify-content:center;margin-top:2rem;margin-bottom:1rem}.cooking-mode-nav-button{padding:1rem 2.5rem;font-size:1.25rem;font-weight:600;background-color:#ffffff1a;color:#ffffffde;border:2px solid rgba(255,255,255,.2);border-radius:12px;cursor:pointer;transition:all .2s;min-width:150px}.cooking-mode-nav-button:hover:not(:disabled){background-color:#ffffff26;transform:translateY(-2px);box-shadow:0 4px 12px #0003}.cooking-mode-nav-button:active:not(:disabled){transform:translateY(0)}.cooking-mode-nav-button:disabled{opacity:.3;cursor:not-allowed}.cooking-mode-nav-button-primary{background-color:#646cff;color:#fff;border-color:#646cff}.cooking-mode-nav-button-primary:hover:not(:disabled){background-color:#535bf2;border-color:#535bf2}.cooking-mode-hints{text-align:center;color:#fff6;font-size:.875rem;margin-top:1rem}.cooking-mode-error,.cooking-mode-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;min-height:0;text-align:center;padding:2rem}.cooking-mode-error h2{font-size:2rem;margin-bottom:1rem;color:#fca5a5}.cooking-mode-error p{font-size:1.125rem;color:#ffffffb3;margin-bottom:2rem}.cooking-mode-loading p{font-size:1.5rem;color:#fff9}.cooking-mode-notification{position:absolute;top:6rem;left:50%;transform:translate(-50%);background-color:#ffa50033;border:1px solid rgba(255,165,0,.5);color:#ffd699;padding:.75rem 1.5rem;border-radius:8px;font-size:.9rem;z-index:10}@media (prefers-color-scheme: light){.cooking-mode-container{background:linear-gradient(135deg,#f0f4f8,#e2e8f0);color:#000000f2}.cooking-mode-title h1{color:#000000f2}.cooking-mode-servings{color:#0009}.cooking-mode-exit{background-color:#dc26261a;color:#b91c1c;border:1px solid rgba(220,38,38,.3)}.cooking-mode-exit:hover{background-color:#dc262633}.cooking-mode-progress-bar{background-color:#0000001a}.cooking-mode-step-counter{color:#0009}.cooking-mode-step-content{background-color:#fff;border:2px solid rgba(0,0,0,.1);box-shadow:0 4px 16px #0000000d}.cooking-mode-step-text{color:#000000f2}.cooking-mode-nav-button{background-color:#fff;color:#000000de;border:2px solid rgba(0,0,0,.2)}.cooking-mode-nav-button:hover:not(:disabled){background-color:#f9fafb}.cooking-mode-hints{color:#0006}.cooking-mode-error h2{color:#b91c1c}.cooking-mode-error p{color:#000000b3}.cooking-mode-loading p{color:#0009}.cooking-mode-notification{background-color:#ffa50026;border:1px solid rgba(255,165,0,.4);color:#b45309}}@media (max-width: 768px){.cooking-mode-container{padding:1.5rem}.cooking-mode-container:fullscreen{padding:2rem}.cooking-mode-title h1{font-size:1.5rem}.cooking-mode-step-number{width:4rem;height:4rem;font-size:2rem}.cooking-mode-step-text{font-size:1.5rem}.cooking-mode-nav-button{padding:.875rem 1.75rem;font-size:1.125rem;min-width:120px}}@media (max-width: 480px){.cooking-mode-container{padding:.75rem}.cooking-mode-container:fullscreen{padding:1rem}.cooking-mode-header{flex-direction:row;align-items:center;margin-bottom:.75rem;gap:.5rem}.cooking-mode-title h1{font-size:1rem;margin:0}.cooking-mode-servings{font-size:.75rem}.cooking-mode-exit{padding:.5rem .875rem;font-size:.875rem;flex-shrink:0}.cooking-mode-step-counter{font-size:.875rem;margin-bottom:.5rem}.cooking-mode-step-content{padding:1rem;margin:.5rem 0}.cooking-mode-step-number{width:2.5rem;height:2.5rem;font-size:1.25rem;margin-bottom:.75rem}.cooking-mode-step-text{font-size:1.125rem;line-height:1.5}.cooking-mode-controls{flex-direction:row;gap:.5rem;margin-top:.75rem;margin-bottom:.25rem}.cooking-mode-nav-button{flex:1;padding:.75rem .5rem;font-size:.9375rem;min-width:0}.cooking-mode-hints{font-size:.6875rem;margin-top:.25rem}.cooking-mode-progress-bar{margin-bottom:.5rem;height:6px}}@media (pointer: coarse){.cooking-mode-exit,.cooking-mode-nav-button{min-height:48px}}.timer-container{background-color:#ffffff0d;border:2px solid rgba(255,255,255,.1);border-radius:16px;padding:1.5rem;margin:1rem 0;display:flex;flex-direction:column;align-items:center;gap:1rem}.timer-header{width:100%;text-align:center;margin-bottom:.5rem}.timer-title{font-size:1.25rem;font-weight:600;color:#ffffffde;margin:0}.timer-display{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:1rem 0}.timer-time{font-size:3rem;font-weight:700;font-variant-numeric:tabular-nums;color:#fffffff2;letter-spacing:.05em;text-align:center}.timer-running .timer-time{color:#646cff;animation:timerPulse 1s ease-in-out infinite}.timer-expired .timer-time{color:#fca5a5;animation:timerBlink .5s ease-in-out infinite}.timer-expired-label{font-size:1rem;font-weight:600;color:#fca5a5;margin-top:.5rem;text-transform:uppercase;letter-spacing:1px;animation:timerBlink .5s ease-in-out infinite}@keyframes timerPulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes timerBlink{0%,to{opacity:1}50%{opacity:.4}}.timer-progress-ring{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:-1}.timer-controls{display:flex;gap:.75rem;width:100%;max-width:400px}.timer-button{flex:1;padding:.875rem 1.5rem;font-size:1rem;font-weight:600;border-radius:10px;cursor:pointer;transition:all .2s;border:2px solid transparent}.timer-button-start{background-color:#646cff;color:#fff;border-color:#646cff}.timer-button-start:hover{background-color:#535bf2;border-color:#535bf2;transform:translateY(-1px);box-shadow:0 4px 12px #646cff4d}.timer-button-pause{background-color:#f59e0b33;color:#fbbf24;border-color:#f59e0b80}.timer-button-pause:hover{background-color:#f59e0b4d;transform:translateY(-1px)}.timer-button-reset{background-color:#ffffff1a;color:#ffffffde;border-color:#fff3}.timer-button-reset:hover:not(:disabled){background-color:#ffffff26;transform:translateY(-1px)}.timer-button-reset:disabled{opacity:.3;cursor:not-allowed}.timer-button:active:not(:disabled){transform:translateY(0)}.timer-presets{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:center;width:100%;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1)}.timer-presets-label{font-size:.875rem;color:#fff9;font-weight:500}.timer-preset{padding:.5rem 1rem;font-size:.875rem;font-weight:600;background-color:#ffffff0d;color:#ffffffb3;border:1px solid rgba(255,255,255,.15);border-radius:8px;cursor:pointer;transition:all .2s}.timer-preset:hover{background-color:#ffffff1a;border-color:#ffffff40;color:#ffffffde}.timer-preset-active{background-color:#646cff33;color:#646cff;border-color:#646cff}.timer-preset-active:hover{background-color:#646cff4d}@media (prefers-color-scheme: light){.timer-container{background-color:#fff;border:2px solid rgba(0,0,0,.1);box-shadow:0 2px 8px #0000000d}.timer-title{color:#000000de}.timer-time{color:#000000f2}.timer-running .timer-time{color:#646cff}.timer-expired .timer-time,.timer-expired-label{color:#b91c1c}.timer-button-pause{background-color:#f59e0b26;color:#d97706;border-color:#f59e0b66}.timer-button-pause:hover{background-color:#f59e0b40}.timer-button-reset{background-color:#f9fafb;color:#000000de;border-color:#0003}.timer-button-reset:hover:not(:disabled){background-color:#f3f4f6}.timer-presets{border-top:1px solid rgba(0,0,0,.1)}.timer-presets-label{color:#0009}.timer-preset{background-color:#f9fafb;color:#000000b3;border:1px solid rgba(0,0,0,.15)}.timer-preset:hover{background-color:#f3f4f6;border-color:#00000040;color:#000000de}.timer-preset-active{background-color:#646cff26;color:#646cff;border-color:#646cff}.timer-preset-active:hover{background-color:#646cff40}}@media (max-width: 768px){.timer-time{font-size:2.5rem}.timer-progress-ring svg{width:100px;height:100px}.timer-button{padding:.75rem 1.25rem;font-size:.9375rem}}@media (max-width: 480px){.timer-container{padding:.75rem 1rem;margin:.5rem 0;gap:.5rem;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between}.timer-header{margin-bottom:0;flex:0 0 auto}.timer-title{font-size:.9375rem}.timer-display{margin:0;flex:0 0 auto}.timer-time{font-size:1.75rem}.timer-expired-label{font-size:.75rem;margin-top:.25rem}.timer-progress-ring{display:none}.timer-controls{flex-direction:row;gap:.375rem;flex:1 1 100%}.timer-button{padding:.625rem .75rem;font-size:.875rem}.timer-presets{padding-top:.5rem;flex:1 1 100%;gap:.375rem}.timer-presets-label{font-size:.75rem}.timer-preset{padding:.375rem .625rem;font-size:.75rem}}@media (pointer: coarse){.timer-button,.timer-preset{min-height:44px}}.meal-plan-container{max-width:1400px;margin:0 auto;padding:2rem 1rem}.meal-plan-header{margin-bottom:2rem}.meal-plan-header-content{margin-bottom:1rem}.meal-plan-header h1{font-size:2rem;margin-bottom:.5rem}.meal-plan-subtitle{color:#ffffffb3;font-size:1rem}.week-navigation{display:flex;align-items:center;justify-content:center;gap:1.5rem;margin-top:1rem}.week-nav-button{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background-color:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#ffffffe6;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s}.week-nav-button:hover:not(:disabled){background-color:#ffffff26;border-color:#ffffff4d}.week-nav-button:disabled{opacity:.5;cursor:not-allowed}.nav-arrow{font-size:1.5rem;line-height:1;font-weight:300}.nav-text{font-size:.9rem}.date-range{padding:.75rem 1.5rem;background-color:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fffffff2;font-size:1rem;font-weight:600;min-width:240px;text-align:center}.loading-state{text-align:center;padding:4rem 2rem;color:#fff9}.error-message{background-color:#dc262626;border:1px solid rgba(220,38,38,.5);color:#fca5a5;padding:.75rem;border-radius:6px;font-size:.9rem}.calendar-grid{display:flex;flex-direction:column;gap:0;background-color:#ffffff0d;border-radius:12px;border:1px solid rgba(255,255,255,.1);overflow:hidden}.calendar-header-row{display:grid;grid-template-columns:120px repeat(7,1fr);background-color:#ffffff14;border-bottom:2px solid rgba(255,255,255,.15)}.empty-cell{background-color:#ffffff08;border-right:1px solid rgba(255,255,255,.1)}.day-header{padding:1rem .75rem;text-align:center;font-weight:600;font-size:.95rem;color:#fffffff2;border-right:1px solid rgba(255,255,255,.1)}.day-header:last-child{border-right:none}.meal-row{display:grid;grid-template-columns:120px repeat(7,1fr);border-bottom:1px solid rgba(255,255,255,.1)}.meal-row:last-child{border-bottom:none}.meal-header{padding:1rem .75rem;font-weight:600;font-size:.95rem;color:#ffffffde;background-color:#ffffff08;border-right:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center}.meal-slot{padding:1rem .75rem;min-height:100px;background-color:#ffffff05;border-right:1px solid rgba(255,255,255,.1);transition:background-color .2s;cursor:pointer;display:flex;align-items:center;justify-content:center}.meal-slot:hover{background-color:#ffffff0d}.meal-slot:last-child{border-right:none}.meal-slot-content{display:flex;flex-direction:column;gap:.5rem;width:100%;text-align:center}.recipe-name-row{display:flex;align-items:flex-start;gap:.25rem;justify-content:center}.recipe-name{font-weight:600;color:#fffffff2;font-size:.9rem;line-height:1.3;flex:1;min-width:0}.recipe-link-button{flex-shrink:0;background:none;border:none;color:#6366f1cc;font-size:.85rem;cursor:pointer;padding:0;line-height:1.3;transition:color .2s}.recipe-link-button:hover{color:#6366f1}.servings-info{font-size:.75rem;color:#ffffff80}.servings-adjustment{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.5rem}.servings-label-inline{font-size:.75rem;color:#fff9;font-weight:500}.servings-input-inline{width:60px;padding:.25rem .5rem;border:1px solid rgba(255,255,255,.2);border-radius:4px;background-color:#ffffff0d;color:#fffffff2;font-size:.75rem;text-align:center;transition:border-color .2s}.servings-input-inline:focus{outline:none;border-color:#6366f180}.servings-input-inline:disabled{opacity:.6;cursor:not-allowed}.servings-input-inline::-webkit-inner-spin-button,.servings-input-inline::-webkit-outer-spin-button{opacity:.5}.meal-slot-empty{width:100%;height:100%;display:flex;align-items:center;justify-content:center;opacity:.3;transition:opacity .2s}.meal-slot:hover .meal-slot-empty{opacity:.6}.empty-text{font-size:1.5rem;color:#ffffff80;font-weight:300}@media (prefers-color-scheme: light){.meal-plan-subtitle{color:#0009}.loading-state{color:#00000080}.error-message{background-color:#dc26261a;border:1px solid rgba(220,38,38,.3);color:#b91c1c}.week-nav-button{background-color:#f3f4f6;border:1px solid rgba(0,0,0,.2);color:#000000e6}.week-nav-button:hover:not(:disabled){background-color:#e5e7eb;border-color:#0000004d}.date-range{background-color:#f9fafb;border:1px solid rgba(0,0,0,.1);color:#000000f2}.calendar-grid{background-color:#fff;border:1px solid rgba(0,0,0,.1)}.calendar-header-row{background-color:#f9fafb;border-bottom:2px solid rgba(0,0,0,.1)}.empty-cell{background-color:#f3f4f6;border-right:1px solid rgba(0,0,0,.1)}.day-header{color:#000000f2;border-right:1px solid rgba(0,0,0,.1)}.meal-row{border-bottom:1px solid rgba(0,0,0,.1)}.meal-header{color:#000000de;background-color:#f9fafb;border-right:1px solid rgba(0,0,0,.1)}.meal-slot{background-color:#fff;border-right:1px solid rgba(0,0,0,.1)}.meal-slot:hover{background-color:#f9fafb}.recipe-name{color:#000000f2}.recipe-link-button{color:#4f46e5cc}.recipe-link-button:hover{color:#4f46e5}.servings-info{color:#00000080}.servings-label-inline{color:#0009}.servings-input-inline{border:1px solid rgba(0,0,0,.2);background-color:#fff;color:#000000f2}.servings-input-inline:focus{border-color:#6366f180}.empty-text{color:#0000004d}}@media (max-width: 1024px){.week-navigation{gap:1rem}.week-nav-button{padding:.625rem 1rem}.date-range{padding:.625rem 1rem;min-width:200px;font-size:.9rem}.calendar-header-row,.meal-row{grid-template-columns:100px repeat(7,1fr)}.day-header,.meal-header{font-size:.85rem;padding:.875rem .5rem}.meal-slot{padding:.875rem .5rem;min-height:90px}.recipe-name{font-size:.85rem}.servings-info{font-size:.7rem}}@media (max-width: 768px){.meal-plan-container{padding:1rem .5rem}.meal-plan-header h1{font-size:1.75rem}.week-navigation{gap:.75rem}.week-nav-button{padding:.5rem .75rem}.nav-text{display:none}.nav-arrow{font-size:1.25rem}.date-range{padding:.5rem .75rem;min-width:150px;font-size:.85rem}.calendar-header-row,.meal-row{grid-template-columns:80px repeat(7,minmax(60px,1fr))}.day-header,.meal-header{font-size:.75rem;padding:.75rem .25rem}.day-header{font-size:.7rem}.meal-slot{padding:.5rem .25rem;min-height:70px}.recipe-name{font-size:.75rem}.servings-info{font-size:.65rem}.servings-adjustment{gap:.25rem}.servings-label-inline{font-size:.65rem}.servings-input-inline{width:50px;font-size:.65rem;padding:.2rem .4rem}.empty-text{font-size:1.25rem}}@media (max-width: 480px){.meal-plan-header h1{font-size:1.5rem}.week-navigation{gap:.5rem}.week-nav-button{padding:.5rem;min-width:40px}.date-range{padding:.5rem;min-width:120px;font-size:.75rem}.calendar-header-row,.meal-row{grid-template-columns:70px repeat(7,minmax(50px,1fr))}.day-header,.meal-header{font-size:.7rem;padding:.5rem .125rem}.meal-slot{min-height:60px}.recipe-name{font-size:.7rem}.servings-info{display:none}.servings-adjustment{margin-top:.25rem}.servings-label-inline{display:none}.servings-input-inline{width:40px;font-size:.6rem;padding:.15rem .25rem}}.calendar-header-row--transposed{grid-template-columns:72px repeat(3,1fr)}.day-row{display:grid;grid-template-columns:72px repeat(3,1fr);border-bottom:1px solid rgba(255,255,255,.1)}.day-row:last-child{border-bottom:none}.day-header--row{padding:.75rem .5rem;font-weight:600;font-size:.8rem;color:#ffffffde;background-color:#ffffff08;border-right:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;text-align:center;word-break:break-word}.meal-header--col{padding:.75rem .5rem;font-size:.8rem;text-align:center;border-right:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center}.meal-header--col:last-child{border-right:none}.calendar-grid--transposed .meal-slot{min-height:90px;padding:.75rem .5rem}@media (prefers-color-scheme: light){.day-row{border-bottom:1px solid rgba(0,0,0,.1)}.day-header--row{color:#000000de;background-color:#f9fafb;border-right:1px solid rgba(0,0,0,.1)}.meal-header--col{border-right:1px solid rgba(0,0,0,.1)}}.meal-slot[draggable=true]{cursor:grab}.meal-slot.dragging{opacity:.5;cursor:grabbing;transform:scale(.95)}.meal-slot.drag-over{background-color:#6366f126;border:2px solid rgba(99,102,241,.5);transform:scale(1.02)}@media (prefers-color-scheme: light){.meal-slot.drag-over{background-color:#6366f11a;border:2px solid rgba(99,102,241,.4)}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background-color:#1a1a1a;border-radius:12px;border:1px solid rgba(255,255,255,.1);box-shadow:0 20px 60px #00000080;max-width:800px;width:100%;max-height:90vh;display:flex;flex-direction:column}.modal-header{padding:1.5rem;border-bottom:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;align-items:flex-start}.modal-header h2{font-size:1.5rem;margin:0;color:#fffffff2}.modal-subtitle{color:#fff9;font-size:.9rem;margin-top:.25rem}.modal-close-button{background:none;border:none;color:#fff9;font-size:1.5rem;cursor:pointer;padding:.25rem .5rem;transition:color .2s;line-height:1}.modal-close-button:hover:not(:disabled){color:#fffffff2}.modal-close-button:disabled{opacity:.5;cursor:not-allowed}.modal-body{padding:1.5rem;overflow-y:auto;flex:1}.search-input-wrapper{position:relative;margin-bottom:1.5rem}.search-input{width:100%;padding:.75rem 2.5rem .75rem 1rem;border:1px solid rgba(255,255,255,.2);border-radius:8px;background-color:#ffffff0d;color:#fffffff2;font-size:.95rem;transition:border-color .2s,background-color .2s}.search-input:focus{outline:none;border-color:#6366f180;background-color:#ffffff14}.search-input:disabled{opacity:.6;cursor:not-allowed}.clear-search-button{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:none;border:none;color:#ffffff80;cursor:pointer;font-size:1rem;padding:.25rem;transition:color .2s}.clear-search-button:hover:not(:disabled){color:#fffffff2}.clear-search-button:disabled{opacity:.5;cursor:not-allowed}.recipe-picker-list{display:flex;flex-direction:column;gap:.75rem;max-height:400px;overflow-y:auto}.recipe-picker-item{display:flex;align-items:center;justify-content:space-between;padding:1rem;border:1px solid rgba(255,255,255,.1);border-radius:8px;background-color:#ffffff05;cursor:pointer;transition:all .2s}.recipe-picker-item:hover{background-color:#ffffff0d;border-color:#fff3}.recipe-picker-item.selected{background-color:#6366f126;border-color:#6366f180}.recipe-picker-item-content{flex:1}.recipe-picker-item-title{font-size:1rem;font-weight:600;margin:0 0 .25rem;color:#fffffff2}.recipe-picker-item-description{font-size:.85rem;color:#fff9;margin:0 0 .5rem;line-height:1.4}.recipe-picker-item-meta{display:flex;gap:1rem;font-size:.8rem;color:#ffffff80}.meta-item{display:flex;align-items:center;gap:.25rem}.meta-icon{font-size:.9rem}.recipe-picker-item-indicator{font-size:1.5rem;color:#6366f1cc;margin-left:1rem}.servings-selector{margin-top:1.5rem;padding:1rem;background-color:#ffffff0d;border-radius:8px;border:1px solid rgba(255,255,255,.1)}.servings-label{display:block;font-size:.9rem;color:#fffc;margin-bottom:.5rem;font-weight:500}.servings-input{width:100px;padding:.5rem .75rem;border:1px solid rgba(255,255,255,.2);border-radius:6px;background-color:#ffffff0d;color:#fffffff2;font-size:.95rem;transition:border-color .2s}.servings-input:focus{outline:none;border-color:#6366f180}.servings-input:disabled{opacity:.6;cursor:not-allowed}.modal-footer{padding:1.5rem;border-top:1px solid rgba(255,255,255,.1)}.modal-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem}.modal-actions-right{display:flex;gap:.75rem}.btn-primary,.btn-secondary,.btn-danger{padding:.75rem 1.5rem;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s;border:none}.btn-primary{background-color:#6366f1cc;color:#fff}.btn-primary:hover:not(:disabled){background-color:#6366f1}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background-color:#ffffff1a;color:#ffffffe6;border:1px solid rgba(255,255,255,.2)}.btn-secondary:hover:not(:disabled){background-color:#ffffff26}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-danger{background-color:#dc2626cc;color:#fff}.btn-danger:hover:not(:disabled){background-color:#dc2626}.btn-danger:disabled{opacity:.5;cursor:not-allowed}@media (prefers-color-scheme: light){.modal-overlay{background-color:#00000080}.modal-content{background-color:#fff;border:1px solid rgba(0,0,0,.1)}.modal-header{border-bottom:1px solid rgba(0,0,0,.1)}.modal-header h2{color:#000000f2}.modal-subtitle,.modal-close-button{color:#0009}.modal-close-button:hover:not(:disabled){color:#000000f2}.modal-footer{border-top:1px solid rgba(0,0,0,.1)}.search-input{border:1px solid rgba(0,0,0,.2);background-color:#00000005;color:#000000f2}.search-input:focus{border-color:#6366f180;background-color:#0000000d}.clear-search-button{color:#00000080}.clear-search-button:hover:not(:disabled){color:#000000f2}.recipe-picker-item{border:1px solid rgba(0,0,0,.1);background-color:#fff}.recipe-picker-item:hover{background-color:#f9fafb;border-color:#0003}.recipe-picker-item.selected{background-color:#6366f11a;border-color:#6366f180}.recipe-picker-item-title{color:#000000f2}.recipe-picker-item-description{color:#0009}.recipe-picker-item-meta{color:#00000080}.servings-selector{background-color:#f9fafb;border:1px solid rgba(0,0,0,.1)}.servings-label{color:#000c}.servings-input{border:1px solid rgba(0,0,0,.2);background-color:#fff;color:#000000f2}.servings-input:focus{border-color:#6366f180}.btn-secondary{background-color:#f3f4f6;color:#000000e6;border:1px solid rgba(0,0,0,.2)}.btn-secondary:hover:not(:disabled){background-color:#e5e7eb}}@media (max-width: 768px){.modal-overlay{padding:0}.modal-content{max-height:100vh;border-radius:0;max-width:100%}.modal-header{padding:1rem}.modal-header h2{font-size:1.25rem}.modal-body{padding:1rem}.recipe-picker-list{max-height:300px}.modal-footer{padding:1rem}.modal-actions{flex-direction:column}.modal-actions-right{width:100%}.btn-primary,.btn-secondary,.btn-danger{flex:1;padding:.875rem 1rem}}.shopping-list-container{max-width:1200px;margin:0 auto;padding:2rem 1rem}.shopping-list-header{margin-bottom:2rem}.shopping-list-header-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem;margin-bottom:.5rem}.btn-generate{font-size:.9rem;padding:.5rem 1rem;white-space:nowrap}.shopping-list-header h1{font-size:2rem;margin-bottom:.5rem}.shopping-list-subtitle{color:#ffffffb3;font-size:1rem}.loading-state{text-align:center;padding:4rem 1rem;color:#ffffffb3}.error-message{background-color:#f443361a;border:1px solid rgba(244,67,54,.3);color:#f44336;padding:1rem;border-radius:8px;margin-bottom:1rem}.empty-state{text-align:center;padding:4rem 1rem}.empty-state p{color:#ffffffb3;margin-bottom:.5rem;font-size:1.125rem}.empty-state-hint{font-size:1rem;color:#ffffff80;margin-bottom:2rem}.shopping-list-content{max-width:800px;margin:0 auto}.shopping-list-info{margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:center}.item-count{color:#ffffffb3;font-size:.875rem}.category-groups{display:flex;flex-direction:column;gap:2rem}.category-section{background-color:#ffffff0d;border-radius:12px;padding:1.5rem;border:1px solid rgba(255,255,255,.1)}.category-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid rgba(255,255,255,.1)}.category-name{font-size:1.25rem;font-weight:600;margin:0;color:#fffffff2}.category-count{font-size:.875rem;color:#ffffff80;font-weight:500}.category-items{display:flex;flex-direction:column;gap:.75rem}.shopping-item{background-color:#ffffff08;border-radius:8px;padding:.75rem 1rem;transition:background-color .2s,opacity .2s;border:1px solid transparent}.shopping-item:hover{background-color:#ffffff14;border-color:#ffffff26}.shopping-item.checked{opacity:.6}.shopping-item.checked .shopping-item-name{text-decoration:line-through;color:#ffffff80}.shopping-item-label{display:flex;align-items:center;cursor:pointer;gap:1rem;width:100%}.shopping-item-checkbox{width:20px;height:20px;cursor:pointer;flex-shrink:0;accent-color:#4caf50}.shopping-item-content{display:flex;justify-content:space-between;align-items:center;flex:1;gap:1rem}.shopping-item-name{font-size:1rem;color:#ffffffde;font-weight:500;flex:1}.shopping-item-quantity{font-size:.875rem;color:#fff9;font-weight:400;white-space:nowrap}.btn-primary{display:inline-block;background-color:#4caf50;color:#fff;padding:.75rem 1.5rem;border-radius:8px;text-decoration:none;font-weight:500;transition:background-color .2s,transform .1s;border:none;cursor:pointer;font-size:1rem}.btn-primary:hover{background-color:#45a049;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{background-color:#4caf5080;cursor:not-allowed;transform:none;opacity:.6}@media (max-width: 768px){.shopping-list-container{padding:1rem}.shopping-list-header h1{font-size:1.5rem}.shopping-list-header-row{flex-direction:column;align-items:flex-start}.btn-generate{width:100%;text-align:center}.category-section{padding:1rem}.category-name{font-size:1.125rem}.shopping-item{padding:.625rem .875rem}.shopping-item-content{flex-direction:column;align-items:flex-start;gap:.25rem}.shopping-item-quantity{font-size:.8125rem}}@media (max-width: 480px){.shopping-list-header h1{font-size:1.25rem}.shopping-list-subtitle{font-size:.875rem}.category-groups{gap:1.5rem}}.preview-summary{padding:1rem;background-color:#ffffff0d;border-radius:8px;border:1px solid rgba(255,255,255,.1);margin-bottom:1.5rem}.summary-text{color:#ffffffde;font-size:1rem;font-weight:500;margin:0;text-align:center}.recipe-preview-list{display:flex;flex-direction:column;gap:1.5rem;max-height:500px;overflow-y:auto}.recipe-preview-item{padding:1.25rem;border:1px solid rgba(255,255,255,.1);border-radius:8px;background-color:#ffffff08}.recipe-preview-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem;gap:1rem}.recipe-preview-title{font-size:1.125rem;font-weight:600;margin:0;color:#fffffff2;flex:1}.recipe-preview-meta{display:flex;gap:1rem;font-size:.8rem;color:#ffffff80;flex-shrink:0}.recipe-preview-description{font-size:.9rem;color:#ffffffb3;margin:0 0 1rem;line-height:1.5}.recipe-ingredients-preview{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1)}.ingredients-title{font-size:.9rem;font-weight:600;color:#ffffffde;margin:0 0 .75rem}.ingredients-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.ingredient-item{display:flex;gap:.75rem;font-size:.875rem;color:#ffffffb3;padding:.5rem 0}.ingredient-quantity{font-weight:500;color:#fffc;min-width:80px}.ingredient-name{flex:1}@media (prefers-color-scheme: light){.preview-summary{background-color:#f9fafb;border:1px solid rgba(0,0,0,.1)}.summary-text{color:#000000de}.recipe-preview-item{border:1px solid rgba(0,0,0,.1);background-color:#fff}.recipe-preview-title{color:#000000f2}.recipe-preview-meta{color:#00000080}.recipe-preview-description{color:#000000b3}.recipe-ingredients-preview{border-top:1px solid rgba(0,0,0,.1)}.ingredients-title{color:#000000de}.ingredient-item{color:#000000b3}.ingredient-quantity{color:#000c}}@media (max-width: 768px){.recipe-preview-list{max-height:400px}.recipe-preview-header{flex-direction:column;gap:.5rem}.recipe-preview-meta{gap:.75rem;font-size:.75rem}.recipe-preview-item{padding:1rem}.recipe-preview-title{font-size:1rem}.ingredient-quantity{min-width:70px;font-size:.8125rem}.ingredient-name{font-size:.8125rem}}@media (max-width: 480px){.recipe-preview-list{max-height:300px}.recipe-preview-title{font-size:.95rem}.recipe-preview-description,.ingredients-title{font-size:.85rem}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease;font-family:inherit;line-height:1.5;text-decoration:none;white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:focus-visible{outline:2px solid #646cff;outline-offset:2px}.btn:disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.btn-primary{background-color:#646cff;color:#fff}.btn-primary:hover:not(:disabled){background-color:#535bf2;transform:translateY(-1px);box-shadow:0 4px 8px #646cff4d}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background-color:#ffffff1a;color:#ffffffde;border:1px solid rgba(255,255,255,.2)}.btn-secondary:hover:not(:disabled){background-color:#ffffff26;border-color:#ffffff4d;transform:translateY(-1px)}.btn-danger{background-color:#dc2626;color:#fff}.btn-danger:hover:not(:disabled){background-color:#b91c1c;transform:translateY(-1px);box-shadow:0 4px 8px #dc26264d}.btn-ghost{background-color:transparent;color:#ffffffde}.btn-ghost:hover:not(:disabled){background-color:#ffffff0d}.btn-small{padding:.5rem 1rem;font-size:.875rem}.btn-medium{padding:.75rem 1.5rem;font-size:1rem}.btn-large{padding:1rem 2rem;font-size:1.125rem}.btn-full-width{width:100%}.btn-loading{position:relative;color:transparent}.btn-spinner{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:1rem;height:1rem;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}.btn-icon-left,.btn-icon-right,.btn-content{display:inline-flex;align-items:center}@media (prefers-color-scheme: light){.btn-secondary{background-color:#f3f4f6;color:#000000de;border:1px solid #e5e7eb}.btn-secondary:hover:not(:disabled){background-color:#e5e7eb;border-color:#d1d5db}.btn-ghost{color:#000000de}.btn-ghost:hover:not(:disabled){background-color:#0000000d}}.input-wrapper{display:flex;flex-direction:column;gap:.5rem}.input-wrapper-full-width{width:100%}.input-label{font-weight:500;font-size:.9rem;color:#ffffffe6;display:flex;align-items:center;gap:.25rem}.input-required{color:#dc2626;font-weight:600}.input-container{position:relative;display:flex;align-items:center}.input{padding:.75rem;border-radius:6px;border:1px solid rgba(255,255,255,.2);background-color:#ffffff0d;color:#ffffffde;font-size:1rem;font-family:inherit;transition:border-color .2s,background-color .2s;width:100%}.input:focus{outline:none;border-color:#646cff;background-color:#ffffff14}.input:disabled{opacity:.5;cursor:not-allowed}.input::placeholder{color:#fff6}.input-error{border-color:#dc2626}.input-error:focus{border-color:#dc2626;box-shadow:0 0 0 3px #dc26261a}.input-full-width{width:100%}.input-with-left-icon{padding-left:2.75rem}.input-with-right-icon{padding-right:2.75rem}.input-icon-left,.input-icon-right{position:absolute;display:flex;align-items:center;justify-content:center;color:#ffffff80;pointer-events:none}.input-icon-left{left:.75rem}.input-icon-right{right:.75rem}.input-hint{font-size:.8rem;color:#fff9}.input-error-message{font-size:.8rem;color:#fca5a5;display:flex;align-items:center;gap:.25rem}@media (prefers-color-scheme: light){.input-label{color:#000000d9}.input{border:1px solid rgba(0,0,0,.2);background-color:#fff;color:#000000de}.input:focus{border-color:#646cff;background-color:#fafafa}.input::placeholder{color:#0006}.input-icon-left,.input-icon-right,.input-hint{color:#00000080}.input-error-message{color:#b91c1c}}.card{border-radius:12px;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column}.card-default{background-color:#ffffff0d;border:1px solid rgba(255,255,255,.1)}.card-outlined{background-color:transparent;border:1px solid rgba(255,255,255,.2)}.card-elevated{background-color:#ffffff0d;box-shadow:0 4px 6px #0000001a,0 2px 4px #0000000f;border:none}.card-clickable{cursor:pointer}.card-clickable:hover{transform:translateY(-2px);box-shadow:0 8px 12px #00000026,0 4px 8px #0000001a}.card-padding-none{padding:0}.card-padding-small{padding:1rem}.card-padding-medium{padding:1.5rem}.card-padding-large{padding:2rem}.card-header{padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:1rem;font-weight:600;font-size:1.125rem}.card-body{flex:1}.card-footer{padding-top:1rem;border-top:1px solid rgba(255,255,255,.1);margin-top:1rem}@media (prefers-color-scheme: light){.card-default{background-color:#fff;border:1px solid #e5e7eb}.card-outlined{background-color:transparent;border:1px solid #d1d5db}.card-elevated{background-color:#fff;box-shadow:0 4px 6px #0000000d,0 2px 4px #00000008}.card-header{border-bottom:1px solid #e5e7eb}.card-footer{border-top:1px solid #e5e7eb}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000000bf;display:flex;align-items:center;justify-content:center;z-index:10000;padding:1rem;animation:fadeIn .2s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background-color:#ffffff0d;border-radius:12px;box-shadow:0 20px 25px -5px #0000004d,0 10px 10px -5px #0003;display:flex;flex-direction:column;max-height:calc(100vh - 2rem);animation:slideUp .3s ease-out;border:1px solid rgba(255,255,255,.1)}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-small{width:100%;max-width:400px}.modal-medium{width:100%;max-width:600px}.modal-large{width:100%;max-width:900px}.modal-full{width:100%;max-width:calc(100vw - 2rem);height:calc(100vh - 2rem)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid rgba(255,255,255,.1)}.modal-title{margin:0;font-size:1.5rem;font-weight:600;color:#fffffff2}.modal-close-button{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;background-color:transparent;color:#fff9;cursor:pointer;border-radius:6px;font-size:1.75rem;line-height:1;transition:background-color .2s,color .2s;padding:0}.modal-close-button:hover{background-color:#ffffff1a;color:#ffffffe6}.modal-close-button:focus-visible{outline:2px solid #646cff;outline-offset:2px}.modal-body{flex:1;padding:1.5rem;overflow-y:auto;color:#ffffffde}.modal-footer{padding:1.5rem;border-top:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:flex-end;gap:.75rem}@media (prefers-color-scheme: light){.modal-overlay{background-color:#00000080}.modal{background-color:#fff;border:1px solid #e5e7eb}.modal-header{border-bottom:1px solid #e5e7eb}.modal-title{color:#000000f2}.modal-close-button{color:#0009}.modal-close-button:hover{background-color:#0000000d;color:#000000e6}.modal-body{color:#000000de}.modal-footer{border-top:1px solid #e5e7eb}}@media (max-width: 640px){.modal-overlay{padding:.5rem}.modal{max-height:calc(100vh - 1rem)}.modal-small,.modal-medium,.modal-large{max-width:100%}.modal-full{width:100%;max-width:100%;height:calc(100vh - 1rem)}.modal-header,.modal-body,.modal-footer{padding:1rem}.modal-title{font-size:1.25rem}}.language-switcher{display:inline-flex;gap:.25rem;background-color:#ffffff0d;border-radius:8px;padding:.25rem;border:1px solid rgba(255,255,255,.1)}.lang-button{padding:.375rem .75rem;border:none;background-color:transparent;color:#ffffff80;cursor:pointer;border-radius:6px;font-size:.8rem;font-weight:600;font-family:inherit;letter-spacing:.05em;transition:all .2s ease}.lang-button:hover:not(.lang-button-active){color:#fffc;background-color:#ffffff0d}.lang-button:focus-visible{outline:2px solid #646cff;outline-offset:1px}.lang-button-active{background-color:#646cff;color:#fff}@media (prefers-color-scheme: light){.language-switcher{background-color:#f3f4f6;border:1px solid #e5e7eb}.lang-button{color:#0006}.lang-button:hover:not(.lang-button-active){color:#000000b3;background-color:#0000000d}.lang-button-active{background-color:#646cff;color:#fff}}.offline-indicator{position:fixed;top:0;left:0;right:0;background-color:#f59e0bf2;color:#fff;padding:.75rem 1rem;z-index:9999;box-shadow:0 2px 8px #00000026;animation:slideDown .3s ease-out}.offline-indicator-content{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:.75rem}.offline-icon{font-size:1.25rem;line-height:1}.offline-message{font-size:.95rem;font-weight:500;line-height:1.4}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@media (prefers-color-scheme: light){.offline-indicator{background-color:#f59e0bfa;color:#fff;box-shadow:0 2px 8px #0000001a}}@media (max-width: 768px){.offline-indicator{padding:.625rem .75rem}.offline-icon{font-size:1.125rem}.offline-message{font-size:.875rem}.offline-indicator-content{gap:.5rem}}@media (max-width: 480px){.offline-indicator{padding:.5rem}.offline-message{font-size:.8125rem;line-height:1.3}}.component-demo{min-height:100vh;padding:2rem 1rem;background:linear-gradient(135deg,#646cff0d,#646cff05)}.demo-container{max-width:1200px;margin:0 auto}.demo-header{text-align:center;margin-bottom:3rem}.demo-header h1{font-size:2.5rem;margin-bottom:.5rem;background:linear-gradient(135deg,#646cff,#535bf2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.demo-subtitle{color:#ffffffb3;font-size:1.125rem}.demo-section{margin-bottom:3rem;background-color:#ffffff08;border-radius:12px;padding:2rem;border:1px solid rgba(255,255,255,.1)}.section-title{font-size:1.75rem;margin-bottom:1.5rem;color:#fffffff2;padding-bottom:.75rem;border-bottom:2px solid rgba(100,108,255,.3)}.demo-subsection{margin-bottom:2rem}.demo-subsection:last-child{margin-bottom:0}.demo-subsection h3{font-size:1.125rem;margin-bottom:1rem;color:#ffffffd9;font-weight:500}.demo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;align-items:start}.demo-grid-vertical{display:flex;flex-direction:column;gap:1.25rem;max-width:500px}.demo-info{background-color:#646cff1a;border:1px solid rgba(100,108,255,.3);border-radius:8px;padding:1.25rem;margin-top:1.5rem}.demo-info p{margin:0 0 .75rem;color:#ffffffe6}.demo-info ul{margin:0;padding-left:1.5rem;color:#fffc}.demo-info li{margin-bottom:.5rem}@media (prefers-color-scheme: light){.component-demo{background:linear-gradient(135deg,#646cff0d,#646cff05)}.demo-subtitle{color:#0009}.demo-section{background-color:#ffffffb3;border:1px solid rgba(0,0,0,.1)}.section-title{color:#000000f2}.demo-subsection h3{color:#000000d9}.demo-info{background-color:#646cff14;border:1px solid rgba(100,108,255,.2)}.demo-info p{color:#000000e6}.demo-info ul{color:#000c}}@media (max-width: 768px){.component-demo{padding:1.5rem 1rem}.demo-header h1{font-size:2rem}.demo-subtitle{font-size:1rem}.demo-section{padding:1.5rem}.section-title{font-size:1.5rem}.demo-grid{grid-template-columns:1fr}}@media (max-width: 480px){.demo-header{margin-bottom:2rem}.demo-header h1{font-size:1.75rem}.demo-section{padding:1rem}}.app-layout{display:flex;flex-direction:column;min-height:100vh;width:100%}.app-layout-header{position:sticky;top:0;z-index:100;background-color:#1e1e1eeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.1)}.app-layout-header-inner{max-width:1200px;margin:0 auto;padding:0 1.25rem;height:56px;display:flex;align-items:center;justify-content:space-between;gap:1rem}.app-layout-logo{font-size:1.25rem;font-weight:700;color:#fffffff2;text-decoration:none;letter-spacing:-.01em;white-space:nowrap;flex-shrink:0}.app-layout-logo:hover{color:#646cff}.app-layout-header-right{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.app-layout-logout{padding:.375rem .875rem;border-radius:6px;border:1px solid rgba(255,255,255,.18);background-color:transparent;color:#ffffffb3;font-size:.85rem;font-weight:500;font-family:inherit;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s;margin-top:0}.app-layout-logout:hover{background-color:#dc262626;border-color:#dc262680;color:#fca5a5}.app-layout-nav{background-color:#181818d9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;gap:.25rem;padding:0 1.25rem;position:sticky;top:56px;z-index:99}.app-layout-nav-link{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;text-decoration:none;color:#ffffff8c;font-size:.9rem;font-weight:500;border-bottom:2px solid transparent;transition:color .2s,border-color .2s,background-color .2s;white-space:nowrap}.app-layout-nav-link:hover{color:#ffffffe6;background-color:#ffffff0a}.app-layout-nav-link--active{color:#646cff;border-bottom-color:#646cff}.app-layout-nav-icon{font-size:1rem;line-height:1}.app-layout-main{flex:1;width:100%}@media (max-width: 768px){.app-layout-nav{position:fixed;bottom:0;left:0;right:0;top:auto;z-index:100;border-bottom:none;border-top:1px solid rgba(255,255,255,.1);justify-content:space-around;padding:0;gap:0;padding-bottom:env(safe-area-inset-bottom,0)}.app-layout-nav-link{flex:1;flex-direction:column;justify-content:center;gap:.2rem;padding:.6rem .25rem;border-bottom:none;border-top:2px solid transparent;font-size:.7rem}.app-layout-nav-link--active{border-top-color:#646cff;border-bottom-color:transparent}.app-layout-nav-icon{font-size:1.3rem}.app-layout-main{padding-bottom:calc(64px + env(safe-area-inset-bottom,0))}}@media (prefers-color-scheme: light){.app-layout-header{background-color:#ffffffeb;border-bottom-color:#e5e7eb}.app-layout-logo{color:#000000de}.app-layout-logo:hover{color:#646cff}.app-layout-logout{border-color:#00000026;color:#0000008c}.app-layout-logout:hover{background-color:#dc262614;border-color:#dc262666;color:#dc2626}.app-layout-nav{background-color:#f8f8f8eb;border-bottom-color:#e5e7eb}.app-layout-nav-link{color:#00000073}.app-layout-nav-link:hover{color:#000c;background-color:#00000008}.app-layout-nav-link--active{color:#646cff}@media (max-width: 768px){.app-layout-nav{background-color:#fffffff5;border-top-color:#e5e7eb}}}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;margin:0;padding:0}body{margin:0;display:flex;flex-direction:column;align-items:stretch;min-width:320px;min-height:100vh}#root{width:100%;margin:0 auto;padding:0;text-align:center}.app-header{margin-bottom:2rem}.app-header-top{display:flex;align-items:center;justify-content:center;gap:1rem}.app-header h1{font-size:3.2em;line-height:1.1;margin-bottom:.5rem}.welcome{padding:2rem}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s;margin-top:1rem}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[role=button]:focus-visible,[role=link]:focus-visible,[tabindex]:focus-visible{outline:2px solid #646cff;outline-offset:2px}a:focus:not(:focus-visible),button:focus:not(:focus-visible),input:focus:not(:focus-visible),select:focus:not(:focus-visible),textarea:focus:not(:focus-visible),[role=button]:focus:not(:focus-visible),[role=link]:focus:not(:focus-visible){outline:none}.skip-link{position:absolute;top:-40px;left:0;background:#646cff;color:#fff;padding:8px;text-decoration:none;z-index:10000}.skip-link:focus{top:0}@media (max-width: 768px){.app-header h1{font-size:2.5em}}@media (max-width: 480px){.app-header h1{font-size:2em}.welcome{padding:1.5rem}}@media (max-width: 320px){.app-header h1{font-size:1.75em}.welcome{padding:1rem}}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}button{background-color:#f9f9f9}}
