*{margin:0;padding:0;box-sizing:border-box}body{background:linear-gradient(135deg,#335c67,#4f6d7a);color:#23303e;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;min-height:100vh}.gradient-screen{min-height:100vh;width:100%;background:linear-gradient(135deg,#335c67,#4f6d7a)}body.modal-open{overflow:hidden}.app{max-width:1400px;margin:0 auto;padding:2rem}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;appearance:textfield}.app-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:3rem;padding:1.5rem 2rem;background:#305461;border-radius:20px;box-shadow:0 4px 20px #091b245e}.app-header h1{font-size:2.5rem;color:#f2f2f2;font-weight:700;margin:0;line-height:1}.app-header .app-logo{width:60px;height:auto;display:inline-block;margin-right:.5rem;margin-top:0;vertical-align:middle}.app-brand{display:flex;align-items:center;gap:.5rem}.app-brand h1{margin-top:4px}.app-title{font-size:3rem;color:#f2f2f2;margin-bottom:.5rem;font-weight:700}.app-subtitle{font-size:1.2rem;color:#f2f2f2;font-weight:400}.btn{padding:.75rem 1.5rem;border:none;border-radius:10px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .3s ease;display:inline-flex;align-items:center;gap:.5rem}.btn-small{padding:.5rem 1rem;font-size:.9rem}.btn-primary:hover{background:#f2f2f2;transform:translateY(-2px);box-shadow:0 4px 15px #134b8b1a}.btn-secondary{background:#466571;color:#f2f2f2;border:2px solid rgba(140,188,210,.3)}.btn-secondary:hover{background:#335c67}.btn-hover{background:#466571;color:#fff}.btn-hover:hover{background:#577685}.btn-danger{background:#e57373;color:#f2f2f2}.btn-danger:hover{background:#f44336}.btn-add{background:#466571;display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;color:#f7fbff;border:1px solid rgba(255,255,255,.15);box-shadow:0 14px 32px #1f4c5e73;gap:8px;white-space:nowrap}.btn-add:hover{background:#577685;color:#fff}.btn-new-recipe{background:#466571;color:#f7fbff;border:1px solid rgba(255,255,255,.15);box-shadow:0 14px 32px #1f4c5e73}.btn-new-recipe:hover{background:#577685;color:#fff;box-shadow:0 14px 32px #1a425273}.close-btn{position:absolute;top:1rem;right:1rem;background:#f2f2f2;border:none;border-radius:50%;width:50px;height:50px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.2rem;color:#3e2723;z-index:10}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem;overflow-y:auto}.modal-content{background:#4a6a76;border-radius:20px;max-width:800px;min-width:60%;max-height:90vh;overflow-y:auto;position:relative}.modal-content .btn,.modal-content .btn-add{width:auto}.modal-content .form-actions .btn,.modal-content .form-actions .btn-add{width:auto!important;max-width:none!important;align-self:flex-start!important}.modal-content button,.modal-content input[type=button],.modal-content input[type=submit],.modal-content .btn,.modal-content .btn-add{display:inline-flex!important;max-width:none!important}.loading,.empty-state{text-align:center;padding:4rem;color:#f2f2f2}.empty-state h3{margin-bottom:1rem;color:#f2f2f2}.recipe-rating,.recipe-rating-large{display:inline-flex;align-items:center;gap:.35rem;color:#f2f2f2;font-weight:600}.rating-stars{color:#ffc857;letter-spacing:.1rem}.recipe-rating .rating-stars{font-size:1.6rem}.recipe-rating-large .rating-stars{font-size:1.8rem}.rating-value{font-size:.95rem;color:#f2f2f2}.rating-votes{font-size:.85rem;color:#f2f2f2b3}.rating-empty .rating-stars{color:#ffc85766}.rating-placeholder{font-size:.85rem;color:#f2f2f2a6;font-style:italic}.search-filters-container{background:#305461;padding:2rem;border-radius:15px;margin-bottom:2rem;box-shadow:0 2px 15px #8b45131a}.search-bar{width:100%;padding:1rem;border:2px solid rgba(140,170,210,.3);border-radius:10px;font-size:1rem;margin-bottom:1.5rem;background:#f2f2f2;color:#335c67}.search-bar:focus{outline:none;border-color:#335c67;box-shadow:0 0 0 3px #3f7dcd1a}.filters-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.filter-group{display:flex;flex-direction:column}.filter-label{font-weight:500;color:#f2f2f2;margin-bottom:.5rem}.filter-select{padding:.75rem;border:2px solid rgba(127,175,202,.3);border-radius:8px;background:#f2f2f2;color:#335c67;font-size:.9rem}.filter-select:focus{outline:none;border-color:#4a6a76}@media(max-width:768px){.app{padding:1rem}.app-title{font-size:2rem}.filters-row{grid-template-columns:1fr}.close-btn{position:absolute;top:1rem;right:1rem;width:32px;height:32px;font-size:1.2rem}}@media(max-width:480px){.modal-overlay{padding:.5rem}.close-btn{top:.8rem;right:.8rem;width:28px;height:28px;font-size:1rem}}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:2rem;margin-top:2rem}.recipe-card{background:#4f6d7a;border-radius:15px;overflow:hidden;box-shadow:0 4px 20px #13698b1a;transition:all .3s ease;cursor:pointer;display:flex;flex-direction:column;height:440px;min-height:440px}.recipe-card:hover{transform:translateY(-5px);box-shadow:0 8px 30px #135b8b1a}.recipe-card-image{height:40%;background:#f2f2f2;display:flex;align-items:center;justify-content:center;color:#335c67;font-size:3rem;position:relative}.recipe-card-content{padding:1.5rem;flex-grow:1;display:flex;flex-direction:column;background:#305461}.recipe-card-title{font-size:1.3rem;font-weight:600;color:#f2f2f2;margin-bottom:.5rem}.recipe-card-description{color:#f2f2f2;font-size:.9rem;line-height:1.4;margin-bottom:1rem;flex-grow:1;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.recipe-card-tags{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.recipe-tag{background:#466571;color:#f2f2f2;padding:.2rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500;border:solid 1px #4c7484}.recipe-card-meta{display:flex;justify-content:space-between;align-items:center;margin-top:auto}.recipe-time{display:flex;align-items:center;gap:.3rem;color:#f2f2f2;font-size:.85rem;background-color:#466571;padding:.2rem .5rem;border-radius:40px}.recipe-servings{display:flex;align-items:center;gap:.3rem;color:#f2f2f2;font-size:.85rem;background-color:#335c67;padding:.2rem .5rem;border-radius:40px;border:solid 1px #466571}.recipe-info{color:#f2f2f2;font-size:.85rem}.recipe-rating{margin-top:.5rem;font-size:.9rem}.recipe-card-additional-times{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem}.recipe-card-additional-times .time-badge{display:inline-flex;align-items:center;gap:.2rem;background:#466571;color:#f2f2f2;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500;border:1px solid #314750;white-space:nowrap}.recipe-card-additional-times .time-badge:hover{background:#16313e;border-color:#609fb899;transform:scale(1.05);transition:all .2s ease}@media(max-width:768px){.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.recipe-card{height:420px;min-height:420px}}@media(max-width:480px){.recipe-grid{grid-template-columns:1fr;gap:1rem}.recipe-card{height:380px;min-height:380px}}.modal-content.recipe-detail{padding:0;background:#305461;border-radius:24px;box-shadow:0 25px 60px #122a4259;max-height:90vh;overflow-y:auto}.recipe-detail{max-width:900px;width:min(900px,100%);background:transparent;border-radius:0;overflow:visible;box-shadow:none}.recipe-detail-header{position:relative;display:flex;flex-direction:column;padding:2rem}.recipe-detail-image{width:200px;height:200px;border-radius:15px;overflow:hidden;margin:0 auto 2rem;box-shadow:0 4px 20px #1c6ea51a}.recipe-detail-image img{width:100%;height:100%;object-fit:cover}.placeholder-image{width:100%;height:100%;background:linear-gradient(135deg,#335c67,#4f6d7a);display:flex;align-items:center;justify-content:center;font-size:4rem;color:#f2f2f2}.recipe-detail-title-section{text-align:center}.recipe-detail-title{font-size:2.5rem;color:#f2f2f2;margin-bottom:1rem;font-weight:700}.recipe-detail-description{font-size:1.2rem;color:#f2f2f2;margin-bottom:1.5rem;line-height:1.5}.recipe-detail-badges{display:flex;gap:1rem;justify-content:center;margin-bottom:1rem;flex-wrap:wrap}.badge-category{background:#335c67}.badge-type{background:#4f6d7a}.recipe-rating-large{font-size:1.5rem}.recipe-detail-actions{display:flex;gap:1rem;justify-content:center;padding:1rem 2rem;border-bottom:1px solid rgba(48,98,128,.39);flex-wrap:wrap}.share-link-section{padding:2rem;background:#b3e6f54d;border-bottom:1px solid rgba(140,182,210,.3)}.share-link-section h3{color:#335c67;margin-bottom:1rem;font-size:1.3rem}.share-link-container{display:flex;gap:1rem;margin-bottom:1rem;align-items:stretch}.share-link-input{flex-grow:1;padding:.75rem;border:2px solid rgba(140,182,210,.5);border-radius:8px;background:#f2f2f2;color:#335c67;font-family:monospace;font-size:.9rem}.share-link-input:focus{outline:none;border-color:#4a6a76}.share-link-info{color:#f2f2f2;font-size:.9rem;line-height:1.4;margin:0;font-style:italic}.recipe-detail-times{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;padding:2rem;border-bottom:1px solid rgba(140,179,210,.3)}.time-info{text-align:center;padding:1rem;background:#4f6d7a;border-radius:10px;box-shadow:0 2px 10px #13558b1a}.time-label{display:block;font-size:.9rem;color:#f2f2f2;margin-bottom:.5rem}.time-total{background:#335c67!important;font-weight:700}.servings-calculator{padding:2rem;text-align:center;border-bottom:1px solid rgba(140,179,210,.3)}.servings-calculator h3{margin-bottom:1rem;color:#f2f2f2}.servings-input{background:#f2f2f2;border:2px solid rgba(140,170,210,.3);border-radius:8px;padding:.5rem;font-size:1.2rem;font-weight:600;text-align:center;width:80px;color:#335c67}.servings-input:focus{outline:none;border-color:#3f88cd;box-shadow:0 0 0 3px #3f7dcd1a}.servings-unit{font-size:1.1rem;font-weight:500;color:#f2f2f2;min-width:100px;text-align:left}.servings-display{font-size:1.2rem;font-weight:600;color:#f2f2f2;min-width:120px}.proportions-info{color:#3fa0cd;font-weight:500;font-style:italic}.recipe-detail-section{padding:2rem;border-bottom:1px solid rgba(140,145,210,.3)}.recipe-detail-section:last-child{border-bottom:none}.recipe-detail-section h3{font-size:1.5rem;color:#f2f2f2;margin-bottom:1.5rem;font-weight:600}.ingredient-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:#234f79b3;border-radius:10px;border:1px solid rgba(41,90,122,.3)}.ingredient-quantity{font-weight:600;color:#f2f2f2;min-width:80px}.ingredient-name{flex-grow:1;color:#f2f2f2}.original-quantity{font-size:.8rem;color:#f2f2f2;font-style:italic}.steps-list{list-style:none;display:grid;gap:1.5rem;margin-bottom:2rem}.step-number{background:#335c67;color:#f2f2f2;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;flex-shrink:0}.step-text{flex-grow:1;padding:1rem 1.25rem;line-height:1.6;color:#f2f2f2;background:#466571;border-radius:10px;min-height:120px;max-height:200px;overflow-y:auto;word-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;display:flex;align-items:flex-start}.tag{background:#335c67;color:#f2f2f2;padding:.5rem 1rem;border-radius:20px;font-size:.9rem;font-weight:500}.recipe-notes{background:#ffffffb3;padding:1.5rem;border-radius:10px;border:1px solid rgba(140,194,210,.3);line-height:1.6;color:#335c67}@media(max-width:768px){.recipe-detail-times{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;padding:1.25rem .75rem}.time-info{padding:.65rem .4rem}.time-label{font-size:.7rem;margin-bottom:.2rem}.time-value{font-size:1rem}.time-total{grid-column:1 / -1}.recipe-detail-actions{flex-direction:column}}@media(max-width:480px){.recipe-detail-times{gap:.5rem;padding:1rem .5rem}.time-info{padding:.5rem .35rem;border-radius:8px}.time-label{font-size:.65rem}.time-value{font-size:.9rem}}@media(max-width:480px){.step-text{min-height:100px;max-height:800px;width:100%}}.modal-content.recipe-form{background:#335c67;border-radius:28px;border:1px solid rgba(255,255,255,.08);box-shadow:0 25px 60px #0409108c;padding:0;min-width:min(920px,calc(100vw - 2.5rem));width:min(1200px,calc(100vw - 2.5rem));max-height:92vh;display:flex;flex-direction:column;overflow:hidden}.recipe-form{width:100%;max-width:none;max-height:none}.form-header{display:flex;justify-content:space-between;align-items:center;padding:2rem 2.25rem;border-bottom:1px solid rgba(255,255,255,.08);background:#305461;box-shadow:0 18px 40px #050a1273;flex-shrink:0}.form-header h2{color:#f2f2f2;font-size:1.8rem;font-weight:600}.recipe-form-content{flex:1;padding:2rem;overflow-y:auto;background:#33505c;color:#f2f2f2}.form-section{margin-bottom:1.75rem;padding:1.75rem;border-radius:22px;color:#f2f2f2}.form-section:last-of-type{margin-bottom:0}.form-section h3{color:#f2f2f2;font-size:1.3rem;margin-bottom:1.5rem;font-weight:600}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem}.form-group{display:flex;flex-direction:column}.form-group label{font-weight:600;color:#f2f2f2;margin-bottom:.35rem}.form-input,.form-select,.form-textarea{padding:.85rem;border:1px solid rgba(255,255,255,.2);border-radius:14px;font-size:1rem;background:#fefefe;color:#0f141c;transition:border-color .3s ease,box-shadow .3s ease;margin-bottom:1.25rem;box-shadow:0 10px 24px #03080f26}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:#4f6d7ae6;box-shadow:0 0 0 3px #4f6d7a59}.form-textarea{resize:vertical;min-height:80px;font-family:inherit;line-height:1.5}.base-calculation-block{background:#3e5b67;border:1px solid rgba(255,255,255,.15);border-radius:22px;padding:2rem;margin:1.5rem 0;box-shadow:0 18px 40px #060b1266}.base-calculation-block label{font-weight:700;color:#f2f2f2;margin-bottom:1.2rem;font-size:1.2rem;display:flex;align-items:center;gap:.5rem}.base-input-group{background:#fffffffa;padding:1rem;border-radius:12px;border:1px solid rgba(63,136,197,.3);box-shadow:inset 0 1px 3px #0000001a;display:flex;gap:1rem;align-items:center;margin-bottom:.5rem}.base-input-group .base-value{flex:0 0 120px;font-weight:600;text-align:center}.base-input-group .base-unit{flex:1}.form-hint{color:#f2f2f2;font-size:.9rem;font-style:italic;margin-top:.5rem;display:block;background:#ffffff14;padding:.65rem .85rem;border-radius:10px;border-left:3px solid rgba(255,255,255,.3)}.ingredient-row{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1rem}.ingredient-row .form-input{flex:1}.ingredient-row .form-input:nth-child(1){flex:2}.ingredient-row .form-input:nth-child(2){flex:1}.ingredient-row .form-input:nth-child(3){flex:1}.step-row{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1rem;width:100%}.step-row .step-number{background:#335c67;color:#f2f2f2;width:35px;height:35px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;flex-shrink:0;margin-top:.75rem}.step-row .form-textarea{flex-grow:1;min-height:80px;resize:vertical;width:100%;box-sizing:border-box}.step-input-container{flex-grow:1;position:relative;width:100%}.step-input-container .form-textarea{width:100%;min-height:80px;resize:vertical;box-sizing:border-box}.character-counter{font-size:.75rem;color:#666;text-align:right;margin-top:.25rem}.counter-warning{color:#ff6b35!important;font-weight:600}.form-actions{display:flex;gap:1rem;justify-content:flex-end;padding-top:2rem;border-top:1px solid rgba(255,255,255,.08)}.form-subrecipe{margin-top:1.5rem;padding:1.25rem;border:2px dashed rgba(255,255,255,.35);border-radius:18px;background:#3b5661;box-shadow:inset 0 0 0 1px #ffffff0d}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.section-header h3{margin:0;color:#f2f2f2;font-size:1.3rem;font-weight:600}.visibility-compact{display:flex;align-items:center;gap:.75rem}.visibility-compact-label{font-size:.9rem;color:#f2f2f2cc;margin:0}.visibility-compact-options{display:flex;gap:.5rem}.visibility-compact-btn{min-width:80px;height:32px;border:2px solid rgba(140,205,210,.3);border-radius:8px;background:#f2f2f21a;color:#f2f2f2;font-size:11px;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;padding:0 8px;white-space:nowrap}.visibility-compact-btn:hover{background:#f2f2f226;border-color:#8ccdd280;transform:scale(1.1)}.visibility-compact-btn.active{background:#8ccdd24d;border-color:#8ccdd2;box-shadow:0 0 0 2px #8ccdd233}@media(max-width:768px){.modal-content.recipe-form{min-width:calc(100vw - 1rem);width:calc(100vw - 1rem);max-height:calc(100vh - 1rem);border-radius:22px}.recipe-form{max-width:100%;max-height:none;margin:0}.form-header{padding:1.25rem;flex-direction:column;gap:1rem;text-align:center}.form-header h2{font-size:1.4rem;margin:0}.recipe-form-content{padding:1.25rem}.form-section{margin-bottom:1.25rem;padding:1.25rem}.form-section h3{font-size:1.1rem;margin-bottom:1rem}.form-row{grid-template-columns:1fr;gap:.8rem;margin-bottom:.8rem}.ingredient-row,.step-row{flex-direction:column;gap:.5rem}.ingredient-row .form-input{flex:none;width:100%}.step-row .step-number{align-self:flex-start;margin-top:0;width:30px;height:30px;font-size:.9rem}.step-row .form-textarea{min-height:60px;width:100%}.base-calculation-block{padding:1rem;margin:1rem 0}.base-input-group{flex-direction:column;gap:.5rem;align-items:stretch}.base-input-group .base-value,.base-input-group .base-unit{flex:none;width:100%}.form-actions{flex-direction:column;gap:.8rem;padding:1rem 0 0}.form-actions button{width:100%;padding:.8rem;font-size:1rem}.form-actions .btn-add{width:auto;display:inline-flex;padding:.8rem 1rem}.form-input,.form-select,.form-textarea{font-size:16px;-webkit-appearance:none;appearance:none;border-radius:8px}.image-upload-container{text-align:center}.upload-label{display:block;padding:1rem;font-size:.9rem}.image-preview img{max-width:100%;max-height:120px}.section-header{flex-direction:column;align-items:flex-start;gap:1rem}.visibility-compact{align-self:flex-end}.visibility-compact-btn{min-width:70px;height:28px;font-size:10px;padding:0 6px}}@media(max-width:480px){.recipe-form{max-height:98vh}.form-header{padding:.8rem}.form-header h2{font-size:1.2rem}.recipe-form-content{padding:.8rem}.form-section{margin-bottom:1rem;padding-bottom:1rem}.form-input,.form-select,.form-textarea{padding:.6rem;font-size:.95rem;font-size:16px}.ingredient-row,.step-row{gap:.4rem}.step-row .step-number{width:28px;height:28px;font-size:.8rem}.base-calculation-block{padding:.8rem}.form-actions{padding:.8rem;margin:0 -.8rem -.8rem}.form-actions button{padding:.7rem;font-size:.95rem}}.image-upload-container{margin-top:8px}.image-upload-container input[type=file]{display:none}.upload-label{display:inline-block;padding:10px 16px;width:20%;background:#304c58;color:#e4e5e7;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;transition:background-color .2s}.image-preview{margin-top:12px;display:flex;align-items:center;gap:12px}.remove-image-btn{background:#f44!important;color:#f2f2f2!important;border:none!important;border-radius:4px!important;padding:6px 12px!important;cursor:pointer!important;font-size:12px!important;transition:background-color .2s!important}.remove-image-btn:hover{background:#c00!important}.note-image-uploader{margin-bottom:1rem}.uploader-header{margin-bottom:.8rem}.uploader-header h4{margin:0;color:#335c67;font-size:1rem}.upload-zone{border:2px dashed #8ccad2;border-radius:8px;padding:2rem;text-align:center;cursor:pointer;transition:all .3s ease;background:#f8feff;min-height:120px;display:flex;align-items:center;justify-content:center}.upload-zone:hover{border-color:#335c67;background:#f2feff}.upload-zone.dragging{border-color:#335c67;background:#e8f7f9;transform:scale(1.02)}.upload-zone.disabled{opacity:.6;cursor:not-allowed}.upload-content{width:100%}.upload-icon{font-size:2rem;margin-bottom:.5rem;color:#335c67}.upload-zone p{margin:.5rem 0;color:#335c67}.upload-hint{font-size:.9rem;color:#666!important}.upload-status{display:flex;flex-direction:column;align-items:center;gap:.5rem}.upload-spinner{width:24px;height:24px;border:3px solid #f3f3f3;border-top:3px solid #335c67;border-radius:50%;animation:spin 1s linear infinite}.upload-limit-reached,.uploader-info{text-align:center;padding:1rem;background:#e8f4fd;border:1px solid #8ccad2;border-radius:8px;color:#335c67}.uploader-info p{margin:0;font-size:.9rem}.note-image-thumbnails{margin:1rem 0}.thumbnails-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.8rem;margin-top:.8rem}.thumbnail-item{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;cursor:pointer;transition:all .3s ease;border:2px solid transparent;background:#f8f8f8;animation:thumbnailAppear .3s ease}.thumbnail-item:hover{border-color:#8ccad2;transform:scale(1.05)}.thumbnail-image{width:100%;height:100%;object-fit:cover;transition:opacity .3s ease}.thumbnail-item:hover .thumbnail-image{opacity:.8}.thumbnail-overlay{position:absolute;inset:0;background:#335c67cc;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.thumbnail-item:hover .thumbnail-overlay{opacity:1}.thumbnail-zoom-icon{font-size:1.5rem;color:#fff}.thumbnail-delete-btn{position:absolute;top:4px;right:4px;width:24px;height:24px;border:none;border-radius:50%;background:#ff4444e6;color:#fff;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease;z-index:2}.thumbnail-item:hover .thumbnail-delete-btn{opacity:1}.thumbnail-delete-btn:hover{background:#f44;transform:scale(1.1)}.mini-delete-confirm{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000}.mini-delete-modal{background:#fff;padding:1.5rem;border-radius:8px;max-width:300px;text-align:center;box-shadow:0 4px 20px #0000004d}.mini-delete-modal p{margin:0 0 1rem;color:#335c67}.mini-delete-actions{display:flex;gap:.5rem;justify-content:center}.notes-images-section{margin-bottom:1rem}@keyframes thumbnailAppear{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@media(max-width:768px){.upload-zone{padding:1.5rem 1rem;min-height:100px}.thumbnails-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:.5rem}}@media(max-width:480px){.thumbnails-grid{grid-template-columns:repeat(auto-fill,minmax(60px,1fr))}}.image-gallery-overlay{position:fixed;inset:0;background:#000000f2;z-index:10000;display:flex;align-items:center;justify-content:center}.image-gallery{width:100%;height:100%;display:flex;flex-direction:column;outline:none}.gallery-header{background:#335c67e6;padding:1rem;display:flex;justify-content:space-between;align-items:center;color:#fff}.gallery-info{display:flex;align-items:center;gap:1rem}.image-counter{font-weight:700;background:#fff3;padding:.3rem .8rem;border-radius:20px;font-size:.9rem}.image-name{font-size:.9rem;opacity:.8;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gallery-actions{display:flex;gap:.5rem}.gallery-btn{width:40px;height:40px;border:none;border-radius:50%;background:#fff3;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;font-size:1rem}.gallery-btn:hover{background:#ffffff4d;transform:scale(1.1)}.delete-btn:hover{background:#f44c}.gallery-main{flex:1;display:flex;align-items:center;justify-content:center;position:relative;padding:1rem}.gallery-nav{position:absolute;top:50%;transform:translateY(-50%);width:50px;height:50px;border:none;border-radius:50%;background:#fff3;color:#fff;font-size:1.5rem;cursor:pointer;transition:all .3s ease;z-index:1}.gallery-nav:hover{background:#ffffff4d;transform:translateY(-50%) scale(1.1)}.prev-btn{left:2rem}.next-btn{right:2rem}.gallery-image-container{max-width:90%;max-height:90%;display:flex;align-items:center;justify-content:center}.gallery-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;box-shadow:0 4px 20px #00000080}.gallery-thumbnails{background:#335c67e6;padding:1rem;max-height:120px;overflow-y:auto}.thumbnails-container{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}.gallery-thumbnails .thumbnail{width:60px;height:60px;border:2px solid transparent;border-radius:4px;overflow:hidden;cursor:pointer;transition:all .3s ease;background:none;padding:0}.gallery-thumbnails .thumbnail:hover{border-color:#ffffff80}.gallery-thumbnails .thumbnail.active{border-color:#fff}.gallery-thumbnails .thumbnail img{width:100%;height:100%;object-fit:cover}.swipe-indicator{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);background:#000000b3;color:#fff;padding:.5rem 1rem;border-radius:20px;font-size:.8rem;opacity:.7;pointer-events:none}.delete-confirm-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:10001}.delete-confirm-modal{background:#fff;padding:2rem;border-radius:8px;max-width:400px;text-align:center;box-shadow:0 4px 20px #0000004d}.delete-confirm-modal h3{margin:0 0 1rem;color:#335c67}.delete-confirm-modal p{margin:0 0 1.5rem;color:#666}.delete-confirm-actions{display:flex;gap:1rem;justify-content:center}@media(max-width:768px){.gallery-header{padding:.8rem}.image-name{display:none}.gallery-nav{width:40px;height:40px;font-size:1.2rem}.prev-btn{left:1rem}.next-btn{right:1rem}.gallery-thumbnails{padding:.8rem;max-height:100px}.gallery-thumbnails .thumbnail{width:50px;height:50px}.swipe-indicator{display:block}.delete-confirm-modal{padding:1.5rem;margin:1rem}}@media(max-width:480px){.gallery-main{padding:.5rem}.gallery-nav{width:35px;height:35px;font-size:1rem}.prev-btn{left:.5rem}.next-btn{right:.5rem}}.notifications-container{position:fixed;bottom:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:10px;max-width:400px}.notification{display:flex;align-items:center;justify-content:space-between;padding:16px;border-radius:12px;box-shadow:0 4px 20px #00000026;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;transition:all .3s ease;animation:slideInRight .3s ease-out;min-height:60px}.notification:hover{transform:translate(-5px);box-shadow:0 6px 25px #0003}.notification-success{background:linear-gradient(135deg,#4caf50,#45a049);color:#f2f2f2;border-left:4px solid #2e7d32}.notification-error{background:linear-gradient(135deg,#f44336,#d32f2f);color:#f2f2f2;border-left:4px solid #c62828}.notification-content{display:flex;align-items:center;gap:12px;flex:1}.notification-icon{font-size:20px;flex-shrink:0}.notification-message{font-size:14px;font-weight:500;line-height:1.4}.notification-close{background:none;border:none;color:#fffc;font-size:20px;font-weight:700;cursor:pointer;padding:4px;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.notification-close:hover{background:#fff3;color:#f2f2f2}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@media(max-width:768px){.notifications-container{left:20px;right:20px;max-width:none}.notification{padding:12px}.notification-message{font-size:13px}}.image-cropper-overlay{position:fixed;inset:0;background-color:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;box-sizing:border-box}.image-cropper-container{background:#fff;border-radius:12px;padding:20px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 10px 30px #0000004d}.image-cropper-header{text-align:center;margin-bottom:20px}.image-cropper-header h3{margin:0 0 8px;color:#333;font-size:1.2rem}.image-cropper-header p{margin:0;color:#666;font-size:.9rem}.image-cropper-canvas-container{display:flex;justify-content:center;margin-bottom:20px;overflow:hidden;border-radius:8px}.image-cropper-canvas{border:2px solid #ddd;border-radius:8px;cursor:move;touch-action:none;max-width:100%;height:auto}.image-cropper-canvas:active{cursor:grabbing}.image-cropper-controls{display:flex;gap:12px;justify-content:center}.image-cropper-controls button{padding:12px 24px;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease;min-width:100px}.btn-cancel{background-color:#f5f5f5;color:#666}.btn-cancel:hover{background-color:#e0e0e0}.btn-confirm{background-color:#4caf50;color:#fff}.btn-confirm:hover{background-color:#45a049}.image-cropper-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:#666}.loading-spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #4caf50;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:768px){.image-cropper-overlay{padding:10px}.image-cropper-container{padding:16px;max-height:95vh;border-radius:8px}.image-cropper-header h3{font-size:1.1rem}.image-cropper-header p{font-size:.85rem}.image-cropper-controls{flex-direction:column}.image-cropper-controls button{padding:14px 20px;font-size:1.1rem;min-width:auto}.image-cropper-canvas{border-width:1px}}@media(max-width:480px){.image-cropper-overlay{padding:5px}.image-cropper-container{padding:12px;border-radius:6px}.image-cropper-header,.image-cropper-canvas-container{margin-bottom:16px}.image-cropper-controls{gap:8px}.image-cropper-controls button{padding:16px 20px;font-size:1.1rem;border-radius:6px}}@media(pointer:coarse){.image-cropper-canvas{cursor:grab}.image-cropper-controls button{padding:16px 24px;font-size:1.1rem}.image-cropper-canvas{touch-action:manipulation}}.image-cropper-overlay{animation:fadeIn .3s ease-out}.image-cropper-container{animation:slideIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}@media(prefers-color-scheme:dark){.image-cropper-container{background:#2a2a2a;color:#fff}.image-cropper-header h3{color:#fff}.image-cropper-header p{color:#ccc}.image-cropper-canvas{border-color:#444}.btn-cancel{background-color:#444;color:#ccc}.btn-cancel:hover{background-color:#555}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;position:relative;overflow:hidden}.login-container:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#667eea,#764ba2);background-image:radial-gradient(circle at 20% 30%,rgba(255,255,255,.1) 0%,transparent 50%),radial-gradient(circle at 80% 70%,rgba(255,255,255,.1) 0%,transparent 50%),radial-gradient(circle at 40% 80%,rgba(255,255,255,.05) 0%,transparent 50%);filter:blur(8px);z-index:-1}.login-card{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid #2c3e50;border-radius:24px;padding:48px 40px;box-shadow:0 32px 64px #00000026,0 0 0 1px #ffffff0d;text-align:center;max-width:420px;width:100%;z-index:1}.login-header h1{margin:0 0 16px;color:#2c3e50;font-size:2.8rem;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.1)}.login-header p{margin:0 0 36px;color:#5a6c7d;font-size:1.15rem;line-height:1.5;font-weight:400}.login-content{margin:36px 0}.google-login-btn{display:flex;align-items:center;justify-content:center;gap:14px;width:100%;padding:18px 24px;border:2px solid #e8e8e8;border-radius:16px;background:linear-gradient(145deg,#fff,#f8f9fa);color:#2c3e50;font-size:1.15rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #0000000d,0 2px 4px #0000000d}.google-login-btn:hover{border-color:#2c3e50;background:linear-gradient(145deg,#fff,#f0f4ff);box-shadow:0 8px 25px #1d349233,0 4px 12px #0000001a;transform:translateY(-3px)}.google-login-btn:active{transform:translateY(-1px);box-shadow:0 4px 15px #2e35a033,0 2px 6px #0000001a}.google-icon{width:26px;height:26px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.1))}.login-footer p{margin:32px 0 0;color:#7a8b9a;font-size:.95rem;font-weight:500;opacity:.8}.login-card{animation:slideInUp .6s cubic-bezier(.4,0,.2,1)}@keyframes slideInUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:480px){.login-container{padding:16px}.login-card{padding:36px 24px;border-radius:20px}.login-header h1{font-size:2.4rem}.login-header p{font-size:1.05rem}}.app-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:3rem;padding:1.5rem 2rem;background:#305461;border-radius:20px;box-shadow:0 4px 20px #3f4e615e}.app-header h1{font-size:2.5rem;color:#f2f2f2;font-weight:700;margin:0}nav.main-nav{display:flex;gap:12px;align-items:center;padding:12px 24px;background-color:#305461;border-radius:16px;margin-bottom:24px}nav.main-nav a{color:#f2f2f2;text-decoration:none;padding:10px 18px;border-radius:10px;font-weight:600;font-size:15px;transition:all .2s ease;position:relative}nav.main-nav a:hover{background:#f2f2f21a;transform:translateY(-1px)}nav.main-nav a.active{background:#f2f2f226}.nav-compact{display:flex;gap:12px;align-items:center}.nav-logo{display:flex;align-items:center;gap:12px}.nav-logo img{height:40px;width:40px;border-radius:10px;box-shadow:0 4px 12px #0003}@media(max-width:768px){.app-header{padding:1rem 1.5rem}.app-header h1{font-size:1.8rem}nav.main-nav{padding:10px 16px;gap:8px}nav.main-nav a{padding:8px 12px;font-size:14px}}.shared-recipe-page{min-height:100vh;background:linear-gradient(135deg,#335c67,#4f6d7a);color:#f2f2f2;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif}.shared-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.2rem 2rem;background:#305461;box-shadow:0 2px 10px #13518b1a;border-bottom:2px solid #335c67}.brand h1{font-size:2rem;color:#f2f2f2;margin:0;font-weight:700}.brand{display:flex;align-items:center;gap:.75rem}.brand-logo{width:64px;height:auto;display:block}.brand-logo{margin-bottom:6px}.brand p{color:#f2f2f2;margin:0;font-size:.9rem;font-style:italic}.user-info{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#f2f2f2;border-radius:25px;color:#335c67;font-size:.9rem}.user-info img{width:32px;height:32px;border-radius:50%;object-fit:cover}.shared-actions{display:flex;justify-content:center;gap:1rem;padding:2rem}.shared-actions .btn{padding:1rem 2rem;font-size:1.1rem;font-weight:600;border-radius:12px;border:none;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:.5rem}.shared-actions .btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px #13518b1a}.shared-actions .btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.recipe-content{max-width:1000px;margin:0 auto;padding:2rem}.recipe-header{display:flex;gap:2rem;margin-bottom:3rem;padding:2rem;background:#305461;border-radius:20px;box-shadow:0 4px 20px #13518b1a}.recipe-image{width:250px;height:250px;border-radius:15px;overflow:hidden;flex-shrink:0;box-shadow:0 4px 15px #135b8b1a}.recipe-image img{width:100%;height:100%;object-fit:cover}.placeholder-image{width:100%;height:100%;background:linear-gradient(135deg,#5190a1,#4b778a);display:flex;align-items:center;justify-content:center;font-size:4rem;color:#f2f2f2}.recipe-info{flex-grow:1}.recipe-title{font-size:2.5rem;color:#f2f2f2;margin-bottom:1rem;font-weight:700;line-height:1.2}.recipe-description{font-size:1.2rem;color:#f2f2f2;margin-bottom:1.5rem;line-height:1.5}.recipe-badges{display:flex;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.badge{padding:.5rem 1rem;border-radius:20px;font-size:.9rem;font-weight:500;color:#f2f2f2}.badge-category,.badge-type{background:#466571}.recipe-rating{font-size:1.5rem;margin:.5rem 0}.recipe-author{color:#f2f2f2;font-style:italic;margin-top:1rem;font-size:1rem}.recipe-times{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem;padding:1.5rem;background:#305461;border-radius:15px;box-shadow:0 2px 10px #13478b1a}.time-info{text-align:center;padding:1rem;background:#466571;border-radius:10px;box-shadow:0 2px 8px #13558b0d}.time-label{display:block;font-size:.9rem;color:#f2f2f2;margin-bottom:.5rem;font-weight:500}.time-value{display:block;font-size:1.5rem;font-weight:600;color:#f2f2f2}.servings-calculator{padding:1.5rem;text-align:center;background:#305461;border-radius:15px;box-shadow:0 2px 10px #13558b1a;margin-bottom:2rem}.servings-calculator h3{margin-bottom:1rem;color:#f2f2f2;font-size:1.3rem}.servings-controls{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1rem}.servings-controls .btn{width:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:700}.servings-display{font-size:1.2rem;font-weight:600;color:#f2f2f2;min-width:150px}.proportions-info{color:#f2f2f2;margin-top:.5rem}.recipe-section{margin-bottom:3rem;padding:2rem;background:#305461;border-radius:15px;box-shadow:0 2px 10px #1543801a}.recipe-section h3{font-size:1.8rem;color:#f2f2f2;margin-bottom:1.5rem;font-weight:600;border-left:5px solid #f2f2f2;padding-left:1rem}.ingredients-list{list-style:none;display:grid;gap:1rem}.ingredient-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:#cad0d625;border-radius:10px;border-left:3px solid #f2f2f2}.ingredient-quantity{font-weight:600;color:#f2f2f2;min-width:100px;font-size:1rem}.ingredient-name{flex-grow:1;color:#f2f2f2;font-size:1rem}.steps-list{list-style:none;display:grid;gap:1.5rem}.step-item{display:flex;gap:1rem;align-items:flex-start}.step-number{background:#466571;color:#f2f2f2;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;flex-shrink:0;font-size:1rem}.step-text{flex-grow:1;padding:1rem 1.25rem;line-height:1.6;color:#f2f2f2;font-size:1rem;background:#466571;border-radius:10px;min-height:80px;max-height:400px;overflow-y:auto;word-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;width:100%}.tags-list{display:flex;gap:.5rem;flex-wrap:wrap}.tag{background:#466571;color:#f2f2f2;padding:.5rem 1rem;border-radius:20px;font-size:.9rem;font-weight:500;border:1px solid #315764}.recipe-notes{background:#466571;padding:1.5rem;border-radius:10px;border:1px solid rgba(58,97,112,.199);line-height:1.6;color:#f2f2f2;font-size:1rem}.shared-footer{text-align:center;padding:3rem 2rem;background:#305461;margin-top:2rem}.shared-footer p{color:#f2f2f2;margin-bottom:1.5rem;font-size:1.1rem}.shared-footer .btn{padding:1rem 2rem;font-size:1.1rem;font-weight:600}.loading,.error-state{text-align:center;padding:4rem 2rem;color:#f2f2f2;max-width:600px;margin:0 auto}.error-state h2{color:#d32f2f;margin-bottom:1rem}.error-state p{margin-bottom:1rem;line-height:1.6}@media(max-width:768px){.shared-header{flex-direction:column;gap:1rem;text-align:center}.shared-actions{flex-direction:column;align-items:center}.recipe-content{padding:1rem}.recipe-header{flex-direction:column;align-items:center;text-align:center}.recipe-image{width:200px;height:200px}.recipe-title{font-size:2rem}.recipe-times{grid-template-columns:1fr}.servings-controls{flex-wrap:wrap}.step-item{flex-direction:row;text-align:left;align-items:center}.step-number{align-self:flex-start}}.btn{padding:.75rem 1.5rem;border:none;border-radius:10px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .3s ease;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;text-decoration:none}.btn-primary{background:#2f5661;color:#f2f2f2}.btn-primary:hover{background:#376470;transform:translateY(-2px);box-shadow:0 4px 15px #07397433}.btn-secondary{background:#376470;color:#f2f2f2;border:2px solid rgba(52,84,99,.3)}.btn-secondary:hover{background:#6693a5}.my-subrecipes{max-width:1200px;margin:32px auto;padding:0 24px}.my-subrecipes h2{font-size:2.5rem;font-weight:700;color:#f2f2f2;margin:0 0 32px;letter-spacing:-.02em}.my-subrecipes-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;margin-top:24px}.subrecipe-card-wrapper{animation:slideIn .3s ease-out}.subrecipe-card{background:#4f6d7a;border-radius:15px;overflow:hidden;box-shadow:0 4px 20px #13698b1a;transition:all .3s ease;cursor:pointer;display:flex;flex-direction:column}.subrecipe-card:hover{transform:translateY(-5px);box-shadow:0 8px 30px #135b8b1f}.subrecipe-card .thumb{width:100%;height:180px;object-fit:cover;transition:transform .4s ease}.subrecipe-card .thumb.placeholder{background:linear-gradient(135deg,#e1e8ed,#cbd5e0);display:flex;align-items:center;justify-content:center;position:relative}.subrecipe-card .thumb.placeholder:after{content:"Sous-recette";font-size:14px;font-weight:600;color:#6b7280;text-align:center}.subrecipe-card:hover .thumb{transform:scale(1.05)}.subrecipe-card .meta{padding:1.25rem;flex-grow:1;display:flex;flex-direction:column;background:#305461}.subrecipe-card .name{font-size:1.2rem;font-weight:600;color:#f2f2f2;margin:0 0 8px;line-height:1.3}.subrecipe-card .desc{color:#f2f2f2;font-size:.95rem;line-height:1.4;margin-bottom:1rem;flex-grow:1;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.subrecipe-card .actions{display:flex;gap:8px;padding-top:12px;border-top:1px solid #e1e8ed}.subrecipe-form{background:#335c67;padding:28px;border-radius:16px;box-shadow:0 18px 40px #060b1266;color:#f2f2f2}.subrecipe-form label{display:block;font-size:14px;font-weight:600;color:#23303e;margin-bottom:8px;letter-spacing:.01em}.subrecipe-form input[type=text],.subrecipe-form input[type=number],.subrecipe-form input[type=file],.subrecipe-form textarea,.subrecipe-form select{width:100%;padding:12px 16px;border:1px solid rgba(255,255,255,.15);border-radius:12px;font-size:15px;color:#0f141c;background:#fefefe;transition:all .2s ease;box-sizing:border-box;box-shadow:0 10px 24px #03080f1f}.subrecipe-form input:focus,.subrecipe-form textarea:focus,.subrecipe-form select:focus{outline:none;border-color:#4f6d7ae6;box-shadow:0 0 0 3px #4f6d7a59}.subrecipe-form .form-group{margin-bottom:20px}.subrecipe-form h4{font-size:16px;font-weight:700;color:#335c67;margin:24px 0 12px}.subrecipe-form button{padding:12px 24px;border-radius:10px;border:none;background:#4f6d7a;color:#f2f2f2;font-weight:600;font-size:15px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #4f6d7a40}.subrecipe-form button:hover:not([disabled]){background:#335c67;transform:translateY(-2px);box-shadow:0 6px 20px #4f6d7a59}.subrecipe-form button:active:not([disabled]){transform:translateY(0)}.subrecipe-form button[disabled]{opacity:.5;cursor:not-allowed}.ingredient-row,.step-row{display:flex;gap:10px;align-items:flex-start;margin-bottom:12px;padding:12px;background:#ffffff0a;border-radius:10px;border:1px solid transparent;transition:all .2s ease}.ingredient-row:hover,.step-row:hover{border-color:#e1e8ed}.ingredient-row input{flex:1;min-width:0}.step-row .step-number{display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;background:#335c67;color:#f2f2f2;border-radius:50%;font-weight:700;font-size:14px;flex-shrink:0}.step-row .step-input-container{flex:1}.btn{padding:10px 18px;border-radius:10px;border:none;font-weight:600;font-size:14px;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:6px}.btn-primary{background:#4f6d7a;color:#f2f2f2;box-shadow:0 4px 12px #4f6d7a40}.btn-primary:hover{background:#376470;transform:translateY(-2px);box-shadow:0 6px 20px #4f6d7a59}.btn-secondary{background:#466571;color:#f2f2f2;box-shadow:0 2px 8px #2f566133}.btn-secondary:hover{background:#2a4e58;transform:translateY(-1px)}.btn-danger{background:#e57373;color:#f2f2f2;box-shadow:0 2px 8px #e5737333}.btn-danger:hover{background:#e53935;transform:translateY(-1px)}.btn-small{padding:6px 12px;font-size:13px}.form-subrecipe{background:#3b5661;padding:24px;border-radius:16px;border:2px dashed rgba(255,255,255,.12);color:#f2f2f2;margin:24px 0}.form-subrecipe h3{font-size:18px;font-weight:700;color:#f2f2f2;margin:0 0 16px;display:flex;align-items:center;gap:8px}.select-menu{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.select-menu .form-input,.select-menu .form-select,.select-menu .form-textarea,.select-menu select{margin-bottom:0}.select-menu .form-select{flex:1;min-width:200px;height:50px}.select-menu a{color:#f2f2f2;font-weight:600;text-decoration:none;padding:10px 12px;background-color:#376470;border-radius:10px;transition:all .2s ease}.select-menu a:hover{background:#2a4e58;text-decoration:none}.subrecipe-block{background:#33505c;border:1px solid rgba(255,255,255,.06);border-radius:20px;padding:32px 32px 24px;margin:24px 0;box-shadow:0 18px 40px #060b1259;max-width:900px;width:100%;position:relative;overflow:visible;animation:slideIn .3s ease-out}.my-subrecipes-list .subrecipe-block{margin:0}.step-item-subrecipe{list-style:none;margin-left:-20px;margin-bottom:24px}.step-item-subrecipe .subrecipe-block{margin:0}.subrecipe-block:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:#4f6d7a}.subrecipe-header{display:flex;gap:16px;align-items:flex-start;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.06)}.subrecipe-thumb{width:160px;height:120px;border-radius:14px;border:3px solid rgba(255,255,255,.06)}.subrecipe-thumb.placeholder{background:linear-gradient(135deg,#e1e8ed,#cbd5e0);display:flex;align-items:center;justify-content:center;position:relative}.subrecipe-thumb.placeholder:after{content:"Image";font-size:12px;font-weight:600;color:#23303e}.subrecipe-meta{flex:1;min-width:0}.subrecipe-meta strong{display:block;font-size:22px;font-weight:700;color:#f2f2f2;margin-bottom:10px;line-height:1.3}.subrecipe-actions{margin-top:8px}.subrecipe-body{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:24px}@media(max-width:768px){.subrecipe-body{grid-template-columns:1fr}}.subrecipe-ingredients,.subrecipe-instructions{background:#ffffff08;padding:20px;border-radius:12px;border:1px solid rgba(255,255,255,.04)}.subrecipe-body em{display:block;font-weight:700;font-size:15px;color:#335c67;margin-bottom:14px;text-transform:uppercase;letter-spacing:.05em;font-style:normal}.subrecipe-body ul,.subrecipe-body ol{margin:0;padding-left:20px;color:#23303e}.subrecipe-body ul li,.subrecipe-body ol li{margin-bottom:8px;line-height:1.6;font-size:14px}.subrecipe-body ul li::marker{color:#4f6d7a}.subrecipe-body ol li::marker{color:#4f6d7a;font-weight:700}.subrecipe-preview-image{width:100%;height:200px;object-fit:cover;border-radius:10px;box-shadow:0 4px 16px #0000001a}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0;max-height:0}to{opacity:1;max-height:1000px}}.subrecipe-card,.subrecipe-block{animation:slideIn .3s ease-out}@media(max-width:768px){.my-subrecipes{padding:0 16px;margin:20px auto}.my-subrecipes h2{font-size:2rem}.my-subrecipes-list{grid-template-columns:1fr;gap:16px}.subrecipe-header{flex-direction:column}.subrecipe-thumb{width:100%;height:160px}}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;margin-bottom:15px}.form-group label{display:block;margin-bottom:5px;font-weight:500;color:#f2f2f2}.form-input[placeholder=Optionnel]{border-style:dashed;border-color:#ccc}.form-input[placeholder=Optionnel]:focus{border-style:solid;border-color:#2196f3}.user-profile{position:relative;display:inline-block}.user-avatar{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:25px;background:#f2f2f2;box-shadow:0 2px 8px #0000001a;cursor:pointer;transition:all .2s ease}.user-avatar:hover{box-shadow:0 4px 12px #00000026}.user-avatar img{width:32px;height:32px;border-radius:50%;object-fit:cover}.user-name{font-weight:500;color:#333;font-size:14px}.dropdown-arrow{width:16px;height:16px;fill:#666;transition:transform .2s ease}.user-profile.open .dropdown-arrow{transform:rotate(180deg)}.user-dropdown{position:absolute;top:100%;right:0;margin-top:8px;background:#f2f2f2;border-radius:12px;box-shadow:0 8px 25px #00000026;padding:16px;min-width:250px;z-index:1000}.user-info{display:flex;align-items:center;gap:12px;margin-bottom:12px}.user-info img{width:40px;height:40px;border-radius:50%;object-fit:cover}.user-full-name{font-weight:600;color:#333;font-size:14px}.user-email{color:#666;font-size:12px}.user-dropdown hr{border:none;border-top:1px solid #eee;margin:12px 0}.logout-btn{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:transparent;color:#dc3545;border-radius:8px;cursor:pointer;font-size:14px;transition:background-color .2s ease}.logout-btn:hover{background-color:#f8f9fa}.logout-btn svg{width:16px;height:16px;fill:currentColor}.delete-data-btn{display:block;width:100%;padding:6px 12px;margin-top:4px;border:none;background:transparent;color:#999;text-align:left;border-radius:8px;cursor:pointer;font-size:11px;font-weight:400;opacity:.5;transition:all .3s ease}.delete-data-btn:hover{background-color:#4f6d7a1a;opacity:.7}.delete-modal-backdrop{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:10000}.delete-modal{background:#fff;border-radius:8px;padding:1.5rem;max-width:400px;width:90%;box-shadow:0 4px 20px #00000026}.delete-modal-icon{display:none}.delete-modal-title{color:#333;font-size:1.1rem;font-weight:600;margin-bottom:.5rem}.delete-modal-text{color:#666;font-size:.9rem;margin-bottom:1.2rem;line-height:1.4}.delete-modal-actions{display:flex;gap:.6rem;justify-content:flex-end}.modal-btn{padding:.5rem 1.2rem;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background .2s}.modal-btn-cancel{background:#e5e5e5;color:#333}.modal-btn-cancel:hover{background:#d5d5d5}.modal-btn-danger{background:#dc3545;color:#fff}.modal-btn-danger:hover{background:#c82333}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#f2f2f2;background-color:#335c67;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{min-height:100%}.home{min-height:100vh;background:#2b4d57;color:#f2f2f2}.container{max-width:1100px;margin:0 auto;padding:0 2rem}.home-header{padding:4rem 0 2.5rem}.home-header .container{display:flex;align-items:flex-start;gap:3rem}.home-header-content{flex:1 1 auto;max-width:640px}.home-header .logo{flex:0 0 auto}.home-header .logo img{width:270px;height:auto;display:block;max-width:40vw;margin-top:-8px}.home-tag{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:#99c4df;margin-bottom:1rem}.home-title{font-size:3.5rem;font-weight:700;margin-bottom:.5rem}.home-subtitle{font-size:1.2rem;margin-bottom:1.5rem;color:#d9edf4}.home-description{font-size:1.05rem;line-height:1.7;max-width:640px;margin-bottom:2rem;color:#f2f2f2eb}.home-links{display:flex;gap:1.2rem;flex-wrap:wrap;align-items:center}.home-link{color:#f2f2f2;text-decoration:none;padding-bottom:.2rem;border-bottom:2px solid transparent;transition:border-color .2s ease;border:solid 2px rgba(242,242,242,.2);border-radius:15px;padding:.5rem 1rem}.home-link:hover{border-bottom-color:#f2f2f2}.home-link svg{width:1.05rem;height:1.05rem;vertical-align:middle;margin-right:.6rem;fill:currentColor}.home-section{padding:3rem 0;border-top:1px solid rgba(255,255,255,.08)}.home-section h2{font-size:1.9rem;margin-bottom:.9rem}.section-lead{font-size:1rem;color:#f2f2f2d9;margin-bottom:1.3rem}.home-list{list-style:disc;margin-left:1.5rem;display:grid;gap:.8rem;color:#f2f2f2}.home-section.home-note{background:#16313e;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08)}.note-title{text-transform:uppercase;font-size:.85rem;letter-spacing:.12em;color:#9fd6ff;margin-bottom:.8rem}.note-text{font-size:1.05rem;line-height:1.8;max-width:760px;color:#ffffffe6}.home-maker{padding-bottom:3.5rem}.maker-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;align-items:start}.maker-card{background:#4f6d7a;border-radius:14px;padding:1.7rem;border:1px solid rgba(255,255,255,.08);box-shadow:0 18px 40px #00000040}.maker-label{font-size:.9rem;color:#fffc;margin-bottom:.7rem;text-transform:uppercase;letter-spacing:.08em}.maker-card pre{background:#16313e;color:#f2f2f2;padding:1rem;border-radius:10px;font-family:Courier New,monospace;font-size:.85rem;overflow-x:auto;margin:0 0 1rem}.maker-foot{font-size:.9rem;color:#fffc}.btn-primary{display:inline-block;padding:.75rem 1.6rem;background:#2f5661;color:#f2f2f2;text-decoration:none;border-radius:999px;font-weight:600;transition:background .2s ease,transform .2s ease}.btn-primary:hover{background:#376470;transform:translateY(-2px)}.home-footer{padding:2rem 0 3rem;border-top:1px solid rgba(140,179,210,.3);text-align:center;color:#f2f2f2cc}.home-footer a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(242,242,242,.4);padding-bottom:.1rem}.footer-links{display:flex;gap:2rem;justify-content:center;flex-wrap:wrap;margin-top:.8rem}@media(max-width:768px){.container{padding:0 1.2rem}.home-header{padding-top:3.5rem}.home-header .container{flex-direction:column;gap:2rem}.home-header .logo img{width:180px;display:none}.home-title{font-size:2.6rem}.home-links{flex-direction:row;align-items:flex-start}.home-list{margin-left:1rem}}@media(max-width:480px){.home-title{font-size:2.2rem}.home-header .logo img{width:140px;display:none}.maker-card pre{font-size:.8rem}}.legal-page{display:flex;justify-content:center;padding:40px 16px;background:#335c67;color:#222;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial}.legal-container{max-width:980px;width:100%;background:#223f47;border-radius:12px;box-shadow:0 6px 18px #1e28320f;padding:28px 32px;box-sizing:border-box}.legal-header{text-align:center;margin-bottom:20px}.legal-header h1{margin:0;font-size:1.6rem;color:#111}.legal-page{min-height:100vh;display:flex;justify-content:center;align-items:flex-start;padding:48px 16px;background:linear-gradient(135deg,#335c67,#4f6d7a);color:#f2f2f2;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif}.legal-container{max-width:980px;width:100%;background:#ffffff0a;border-radius:20px;box-shadow:0 8px 24px #0a141e73;padding:28px 32px;box-sizing:border-box;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(36,70,83,.04)}.legal-header{text-align:center;margin-bottom:18px}.legal-header h1{margin:0;font-size:1.6rem;color:#f2f2f2;font-weight:700}.legal-header p{margin:6px 0 0;color:#f2f2f2cc;font-size:.95rem}.legal-content{margin-top:16px;display:grid;grid-template-columns:1fr;gap:18px}.legal-section{padding:16px 14px;background:#1e384e31;border-radius:12px;border-left:4px solid rgba(38,88,110,.767)}.legal-section h3{margin:0 0 8px;font-size:1.05rem;color:#f2f2f2}.legal-section p,.legal-section ul{margin:0 0 8px;color:#f2f2f2e6;line-height:1.6;font-size:.95rem}.legal-section ul{padding-left:1.15rem}.legal-section li{margin-bottom:6px}.legal-footer{margin-top:18px;display:flex;gap:12px;justify-content:center;align-items:center}.legal-footer .btn{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;background:#ffffff0a;color:#f2f2f2f2;border-radius:10px;border:1px solid rgba(255,255,255,.06);text-decoration:none;font-weight:600;font-size:.95rem;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.legal-footer .btn:hover{transform:translateY(-2px);box-shadow:0 6px 18px #0a141e73;background:#ffffff0f}.legal-footer .btn:active{transform:translateY(0)}@media(min-width:900px){.legal-content{grid-template-columns:1fr 1fr}.legal-section{padding:18px 16px}}@media(max-width:480px){.legal-container{padding:18px;border-radius:12px}.legal-header h1{font-size:1.25rem}}
