*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #D8A858;--bg-card: #FBF0D8;--bg-hover: rgba(92, 48, 21, .08);--champs: #FFFCF0;--text: #5C3015;--text-muted: rgba(92, 48, 21, .55);--text-header: #FBF0D8;--primary: #92AB88;--primary-hover:#7A9070;--primary-light:rgba(146, 171, 136, .2);--terre-cuite: #CB7E47;--danger: #7A2A20;--border: rgba(92, 48, 21, .2);--border-field: rgba(203, 126, 71, .5);--border-section: rgba(92, 48, 21, .15);--sidebar-width: 220px;--radius: 8px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;overflow-x:hidden}button{cursor:pointer;border:none;font:inherit}a{color:var(--terre-cuite)}input,select,textarea{font:inherit;color:var(--text);background:var(--champs);border:1px solid var(--border-field);border-radius:var(--radius)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--terre-cuite)}input[type=checkbox],input[type=radio]{background:none;border:none;accent-color:var(--terre-cuite)}input[type=color]{background:none;border:none;cursor:pointer}.login-page{display:flex;justify-content:center;align-items:center;min-height:100vh;background:var(--bg)}.login-form{background:var(--bg-card);padding:2.5rem 2rem;border-radius:16px;box-shadow:0 4px 24px #5c301526;width:100%;max-width:360px;display:flex;flex-direction:column;gap:1rem;border:1px solid var(--border)}.login-logo{display:flex;justify-content:center;margin-bottom:.5rem}.login-logo img{height:110px;width:auto}.login-form input{padding:.65rem .9rem;width:100%}.login-form button{padding:.7rem;background:var(--primary);color:var(--text-header);border-radius:var(--radius);font-weight:600;font-size:1rem}.login-form button:hover{background:var(--primary-hover)}.error-message{color:var(--danger);text-align:center;font-size:.9rem}.dashboard{display:flex;flex-direction:column;min-height:100vh}.app-header{position:sticky;top:0;z-index:100;background:var(--primary);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;padding:.5rem 1.25rem;min-height:72px;box-shadow:0 2px 6px #5c301526}.app-header-logo-btn{background:transparent;padding:0;display:flex;align-items:center}.app-header-logo{height:60px;width:auto;display:block}.app-header-title{text-align:center;font-family:Palatino,Palatino Linotype,Book Antiqua,Georgia,serif;font-style:italic;font-size:1.5rem;font-weight:600;color:var(--text);letter-spacing:1px;min-height:1.5rem}.app-header-hamburger{background:transparent;color:var(--text);padding:.35rem;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;transition:background .15s}.app-header-hamburger:hover{background:#5c30151f}.app-header-hamburger.active{background:#5c30152e}.app-header-menu-wrapper{position:relative}.app-header-menu-backdrop{position:fixed;inset:0;z-index:10}.app-header-menu-dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:200px;background:#fffcf0;border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 6px 20px #5c301538;z-index:20;overflow:hidden}.app-header-menu-item{display:block;width:100%;padding:.75rem 1.1rem;text-align:left;font-size:.95rem;color:var(--text);background:transparent;border:none;transition:background .12s}.app-header-menu-item:hover{background:var(--bg-hover)}.app-header-menu-divider{height:1px;background:var(--border);margin:.2rem 0}.app-header-menu-logout{color:var(--danger);font-weight:600}.main-content{flex:1;padding:1.5rem;max-width:1000px;width:100%;margin:0 auto}.btn-primary{padding:.5rem 1rem;background:var(--primary);color:var(--text-header);border-radius:var(--radius);font-weight:600;font-size:.9rem}.btn-primary:hover{background:var(--primary-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{padding:.5rem 1rem;background:var(--terre-cuite);color:var(--text-header);border-radius:var(--radius);font-weight:600;font-size:.9rem}.btn-secondary:hover{background:#b56e3a}.btn-cancel,.btn-neutral{padding:.5rem 1rem;background:var(--bg-card);color:var(--text);border:1px solid rgba(92,48,21,.3);border-radius:var(--radius);font-size:.9rem}.btn-cancel:hover,.btn-neutral:hover{background:#f0e4c4}.btn-save{padding:.5rem 1.2rem;background:var(--primary);color:var(--text-header);border-radius:var(--radius);font-weight:600}.btn-save:hover{background:var(--primary-hover)}.btn-save:disabled{opacity:.6}.btn-danger{padding:.5rem 1rem;background:var(--danger);color:var(--text-header);border-radius:var(--radius);font-weight:600;font-size:.9rem}.btn-danger:hover{background:#621f17}.btn-danger-text{color:var(--danger);background:none}.btn-icon{background:none;font-size:1.2rem;padding:0 .3rem;line-height:1}.btn-small{padding:.2rem .6rem;font-size:.8rem;background:var(--primary);color:var(--text-header);border-radius:var(--radius)}.btn-back{background:none;color:var(--terre-cuite);font-size:.9rem}.loading,.empty,.empty-state{text-align:center;color:var(--text-muted);padding:2rem;font-size:.95rem}.accueil{max-width:700px;margin:0 auto;padding-top:1rem}.accueil-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-bottom:2rem}.accueil-pave{position:relative;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:2.5rem 1.5rem;display:flex;flex-direction:column;align-items:center;gap:1rem;cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s}.accueil-pave:hover{transform:translateY(-3px);box-shadow:0 6px 20px #5c301526;border-color:var(--terre-cuite)}.accueil-pave:active{transform:translateY(0)}.accueil-pave-icon{width:80px;height:80px}.accueil-pave-icon svg{width:100%;height:100%}.accueil-pave-label{font-size:1.1rem;font-weight:600;color:var(--text);text-align:center}.offline-banner{background:#fef3c7;color:#92400e;padding:.5rem 1rem;border-radius:8px;margin-bottom:.75rem;display:flex;align-items:center;justify-content:space-between;font-size:.85rem;font-weight:500}.offline-pending{font-size:.75rem;opacity:.8}.sync-banner{background:var(--bg-card);color:var(--text);border:1px solid var(--border);padding:.5rem 1rem;border-radius:8px;margin-bottom:.75rem;display:flex;align-items:center;justify-content:space-between;font-size:.85rem}.btn-sync{padding:.3rem .75rem;background:var(--primary);color:var(--text-header);border:none;border-radius:6px;cursor:pointer;font-size:.8rem}.btn-sync:hover{background:var(--primary-hover)}.btn-sync:disabled{opacity:.5;cursor:not-allowed}.modal-overlay{position:fixed;inset:0;background:#5c301573;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content,.modal{background:var(--bg-card);border-radius:12px;padding:1.5rem;width:90%;max-height:88vh;overflow-y:auto;box-shadow:0 8px 32px #5c301540;border:1px solid var(--border)}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.courses-page h2{margin-bottom:1rem}.courses-title-editable{margin-bottom:1rem;cursor:pointer;padding:.2rem .4rem;border-radius:var(--radius);border:1px solid transparent}.courses-title-editable:hover{border-color:var(--border);background:var(--bg-hover)}.courses-title-input{font-size:1.5rem;font-weight:700;margin-bottom:1rem;padding:.2rem .4rem;border:1px solid var(--terre-cuite);border-radius:var(--radius);width:100%;background:var(--champs)}.add-article-quantite{width:60px;padding:.5rem;border:1px solid var(--border-field);border-radius:var(--radius);font-size:.9rem;text-align:center;background:var(--champs)}.article-quantite{font-size:.8rem;color:var(--text-muted);background:var(--bg-hover);padding:.1rem .4rem;border-radius:4px;white-space:nowrap;cursor:pointer;min-width:28px;text-align:center}.article-quantite:hover{background:#5c301526}.article-quantite-empty{opacity:0}.article-item:hover .article-quantite-empty{opacity:.5}.article-quantite-missing{color:var(--danger);opacity:1}.article-qte-input{width:60px;padding:.1rem .3rem;border:1px solid var(--terre-cuite);border-radius:4px;font-size:.8rem;text-align:center;background:var(--champs)}.courses-toolbar{display:flex;gap:.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.add-article-form{display:flex;gap:.5rem;margin-bottom:1.5rem;align-items:flex-start}.add-article-input-wrapper{position:relative;flex:1}.add-article-input-wrapper input{width:100%;padding:.5rem .8rem}.add-article-form select{padding:.5rem;font-size:.9rem}.add-article-rayon-wrapper{flex-shrink:0}.add-article-rayon{width:130px;padding:.5rem;font-size:.9rem}.add-article-btn{padding:.5rem .9rem;font-size:1.2rem;line-height:1;flex-shrink:0;border-radius:var(--radius);background:var(--terre-cuite);color:var(--text-header);font-weight:700}.add-article-btn:hover{background:#b56e3a}.autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--bg-card);border:1px solid var(--border-field);border-radius:0 0 var(--radius) var(--radius);list-style:none;z-index:50;box-shadow:0 4px 12px #5c30151f}.autocomplete-dropdown li{padding:.5rem .8rem;cursor:pointer;display:flex;justify-content:space-between;font-size:.9rem}.autocomplete-dropdown li:hover{background:var(--bg-hover)}.autocomplete-rayon{color:var(--text-muted);font-size:.8rem}.rayon-section{background:var(--bg-card);border-radius:var(--radius);margin-bottom:.8rem;border:1px solid var(--border);overflow:hidden}.rayon-header{display:flex;align-items:center;gap:.5rem;padding:.7rem 1rem;cursor:pointer;background:#5c30150f;font-weight:600;font-size:.95rem;-webkit-user-select:none;user-select:none}.rayon-header:hover{background:#5c30151c}.rayon-toggle{width:1.2rem;text-align:center;font-family:monospace;color:var(--text-muted)}.rayon-nom{flex:1}.rayon-count{font-size:.8rem;color:var(--text-muted);font-weight:400}.rayon-articles{padding:.3rem 0}.article-item{display:flex;align-items:center;padding:.5rem 1rem;gap:.5rem}.article-item:hover{background:var(--bg-hover)}.article-item.checked{opacity:.5}.article-item.checked span{text-decoration:line-through}.article-checkbox{display:flex;align-items:center;gap:.5rem;flex:1;cursor:pointer;font-size:.95rem}.article-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer}.article-rayon-select{padding:2px 4px;border:1px solid transparent;border-radius:4px;font-size:.75rem;background:transparent;color:var(--text-muted);cursor:pointer;margin-left:auto;flex-shrink:0}.article-rayon-select:hover,.article-rayon-select:focus{border-color:var(--border-field);background:var(--champs)}.article-delete{background:none;color:var(--text-muted);font-size:1rem;padding:.2rem .4rem;border-radius:4px;opacity:0;transition:opacity .15s}.article-item:hover .article-delete{opacity:1}.article-delete:hover{color:var(--danger);background:#7a2a201a}.articles-separator{height:1px;background:var(--border);margin:.3rem 1rem}.rayons-modal,.unites-modal{max-width:480px}.rayons-modal h3,.rayons-modal h4{margin-bottom:1rem}.rayons-list{max-height:50vh;overflow-y:auto;margin-bottom:1rem}.rayon-manage-item{display:flex;align-items:center;gap:.5rem;padding:.4rem 0;border-bottom:1px solid var(--border)}.rayon-manage-item:last-child{border-bottom:none}.rayon-manage-arrows{display:flex;flex-direction:column;gap:0}.rayon-manage-arrows button{background:none;color:var(--text-muted);font-size:.8rem;padding:0 .3rem;line-height:1}.rayon-manage-arrows button:hover:not(:disabled){color:var(--terre-cuite)}.rayon-manage-arrows button:disabled{opacity:.3;cursor:default}.rayon-manage-nom{flex:1;cursor:pointer;padding:.2rem .4rem;border-radius:4px;font-size:.95rem}.rayon-manage-nom:hover{background:var(--bg-hover)}.rayon-rename-input{flex:1;padding:.2rem .4rem;border:1px solid var(--terre-cuite);border-radius:4px;font-size:.95rem;background:var(--champs)}.rayon-manage-delete{background:none;color:var(--text-muted);font-size:1.2rem;padding:.2rem .4rem;border-radius:4px}.rayon-manage-delete:hover{color:var(--danger);background:#7a2a201a}.rayon-add-form{display:flex;gap:.5rem;margin-bottom:1rem}.rayon-add-form input{flex:1;padding:.5rem .8rem}.rayons-modal-actions{display:flex;justify-content:flex-end}.historique-modal{max-width:500px}.historique-modal h3{margin-bottom:.8rem}.historique-filter{width:100%;padding:.5rem .8rem;font-size:.9rem;margin-bottom:.8rem}.historique-list{max-height:50vh;overflow-y:auto}.historique-item{display:flex;align-items:center;gap:.5rem;padding:.5rem 0;cursor:pointer;font-size:.95rem;border-bottom:1px solid var(--border)}.historique-item:last-child{border-bottom:none}.historique-item input[type=checkbox]{width:16px;height:16px}.historique-item-nom{flex:1}.historique-item-rayon{font-size:.8rem;color:var(--text-muted);background:var(--bg-hover);padding:.15rem .5rem;border-radius:4px}.historique-item-unite,.historique-item-deja{font-size:.75rem;color:var(--text-muted)}.historique-item-deja{font-style:italic}.historique-item-disabled{opacity:.5;cursor:default}.historique-rayon-group{margin-bottom:.5rem}.historique-rayon-header{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--terre-cuite);background:var(--bg-hover);padding:.3rem .6rem;border-radius:4px;margin-top:.6rem;margin-bottom:.2rem;position:sticky;top:0;z-index:1}.historique-rayon-group:first-child .historique-rayon-header{margin-top:0}.historique-item-delete{background:none;color:var(--danger);font-size:1.1rem;line-height:1;padding:0 .4rem;border-radius:4px;opacity:.55;transition:opacity .12s,background .12s}.historique-item-delete:hover{opacity:1;background:#7a2a201f}.scan-modal{max-width:500px}.scan-modal h3{margin-bottom:.3rem}.scan-modal-subtitle{color:var(--text-muted);font-size:.9rem;margin-bottom:1rem}.scan-articles-list{max-height:50vh;overflow-y:auto}.scan-article-item{display:flex;align-items:center;gap:.5rem;padding:.5rem 0;cursor:pointer;font-size:.95rem}.scan-article-item input[type=checkbox]{width:16px;height:16px}.scan-article-nom{flex:1}.scan-article-rayon{font-size:.8rem;color:var(--text-muted);background:var(--bg-hover);padding:.15rem .5rem;border-radius:4px}.scan-article-rayon-input{width:110px;font-size:.8rem;padding:.15rem .4rem;border:1px solid var(--terre-cuite);border-radius:4px;background:var(--champs)}.scan-article-nouveau{font-size:.75rem;color:var(--terre-cuite);font-weight:700}.scan-modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.magasin-header{display:flex;align-items:center;justify-content:space-between;padding:.8rem 1rem;background:var(--bg-card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.magasin-header h2{font-size:1.1rem;margin:0}.magasin-counter{font-size:.9rem;color:var(--text-muted)}.magasin-exit{background:var(--bg-hover);padding:.4rem .8rem;border-radius:var(--radius);font-size:.85rem;color:var(--text)}.magasin-exit:hover{background:#5c301526}.magasin-list{padding:.3rem 0}.magasin-item{display:flex;align-items:center;gap:.6rem;padding:.6rem 1rem;cursor:pointer;-webkit-user-select:none;user-select:none;transition:opacity .2s;border-bottom:1px solid var(--border)}.magasin-item:last-child{border-bottom:none}.magasin-item.checked{opacity:.35}.magasin-item.checked .magasin-item-nom{text-decoration:line-through}.magasin-item input[type=checkbox]{width:22px;height:22px;cursor:pointer;flex-shrink:0}.magasin-item-nom{flex:1;font-size:1rem}.magasin-item-qte{font-size:.8rem;color:var(--text-muted)}.magasin-separator{height:2px;background:var(--border);margin:.3rem 0}.share-modal{max-width:480px}.share-modal h3{margin-bottom:.5rem}.share-modal-desc{color:var(--text-muted);font-size:.9rem;margin-bottom:1rem}.share-modal-link{display:flex;gap:.5rem;margin-bottom:1rem}.share-modal-link input{flex:1;padding:.5rem .8rem;font-size:.85rem}.share-modal-actions{display:flex;justify-content:flex-end;gap:.5rem}.shared-courses{max-width:600px;margin:0 auto;padding:1rem;min-height:100vh;background:var(--bg)}.shared-courses-error{text-align:center;padding:3rem 1rem;color:var(--danger);font-size:1.1rem}.shared-courses-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.shared-courses-header h2{font-size:1.3rem}.shared-courses-counter{font-size:.9rem;color:var(--text-muted);background:var(--bg-card);padding:.2rem .6rem;border-radius:var(--radius)}.shared-courses-add{display:flex;gap:.4rem;margin-bottom:1rem;align-items:flex-start}.shared-courses-input-wrapper{position:relative;flex:1}.shared-courses-input-wrapper input{width:100%;padding:.5rem .8rem}.shared-courses-add input[type=text]{padding:.5rem .8rem}.shared-courses-qte-input{width:60px;text-align:center}.shared-courses-add button{padding:.5rem .8rem;background:var(--terre-cuite);color:var(--text-header);border-radius:var(--radius);font-size:1.1rem;font-weight:700}.shared-courses-add button:hover{background:#b56e3a}.shared-courses-rayon{background:var(--bg-card);border-radius:var(--radius);margin-bottom:.6rem;border:1px solid var(--border);overflow:hidden}.shared-courses-rayon-header{padding:.5rem .8rem;background:#5c30150f;font-weight:600;font-size:.9rem;color:var(--text-muted)}.shared-courses-item{display:flex;align-items:center;padding:.5rem .8rem;gap:.4rem;border-bottom:1px solid var(--border)}.shared-courses-item:last-child{border-bottom:none}.shared-courses-item.checked{opacity:.4}.shared-courses-item.checked span{text-decoration:line-through}.shared-courses-checkbox{display:flex;align-items:center;gap:.4rem;flex:1;cursor:pointer;font-size:.95rem}.shared-courses-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer}.shared-courses-item-qte{font-size:.8rem;color:var(--text-muted);background:var(--bg-hover);padding:.1rem .4rem;border-radius:4px}.shared-courses-delete{background:none;color:var(--text-muted);font-size:1.1rem;padding:.1rem .3rem;border-radius:4px}.shared-courses-delete:hover{color:var(--danger)}.shared-courses-rayon-select{padding:4px 6px;border:1px solid var(--border-field);border-radius:6px;font-size:.85rem;max-width:120px}.shared-courses-item-rayon-select{padding:2px 4px;border:1px solid transparent;border-radius:4px;font-size:.75rem;background:transparent;color:var(--text-muted);cursor:pointer;margin-left:auto;flex-shrink:0}.shared-courses-item-rayon-select:hover,.shared-courses-item-rayon-select:focus{border-color:var(--border-field);background:var(--champs)}.shared-courses-empty{text-align:center;padding:2rem;color:var(--text-muted)}.recettes-page{max-width:900px;margin:0 auto;padding:1rem}.recette-toolbar{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.recette-filters{margin-bottom:1rem}.recette-search{width:100%;padding:.5rem .75rem;margin-bottom:.5rem;font-size:.95rem}.recette-cat-chips{display:flex;gap:.4rem;flex-wrap:wrap}.cat-chip{padding:.3rem .8rem;border-radius:20px;background:var(--bg-card);border:1px solid var(--border);font-size:.85rem;color:var(--text-muted);transition:all .15s;cursor:pointer}.cat-chip:hover{border-color:var(--terre-cuite);color:var(--terre-cuite)}.cat-chip.active{background:var(--terre-cuite);color:var(--text-header);border-color:var(--terre-cuite)}.recette-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.75rem}.recette-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem;cursor:pointer;transition:box-shadow .15s,border-color .15s}.recette-card:hover{border-color:var(--terre-cuite);box-shadow:0 2px 8px #5c30151a}.recette-card h3{margin:.3rem 0;font-size:1rem}.recette-card-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.cat-badge{font-size:.75rem;padding:.15rem .5rem;border-radius:12px;text-transform:capitalize;font-weight:500}.cat-plat{background:#dbeafe;color:#1d4ed8}.cat-entrée{background:#dcfce7;color:#16a34a}.cat-dessert{background:#fef3c7;color:#d97706}.cat-accompagnement{background:#f3e8ff;color:#7c3aed}.cat-goûter{background:#ffe4e6;color:#e11d48}.recette-temps{font-size:.8rem;color:var(--text-muted)}.recette-tags{display:flex;gap:.3rem;flex-wrap:wrap;margin-top:.3rem}.recette-tag-chip{font-size:.7rem;padding:.1rem .4rem;border-radius:8px;background:var(--bg-hover);color:var(--text-muted)}.recette-card-footer{margin-top:.3rem;font-size:.8rem;color:var(--text-muted)}.recette-empty{color:var(--text-muted);text-align:center;padding:2rem}.recette-detail{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem}.recette-form-row{margin-bottom:1rem}.recette-form-row label{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;color:var(--terre-cuite);text-transform:uppercase;font-weight:600;letter-spacing:.03em}.recette-form-row input,.recette-form-row select,.recette-form-row textarea{padding:.5rem .75rem;font-size:.95rem}.recette-titre-input{width:100%;padding:.5rem .75rem;font-size:1.3rem;font-weight:600}.recette-meta-row{display:flex;gap:1rem;flex-wrap:wrap}.recette-meta-row label{flex:1;min-width:120px}.recette-meta-row input,.recette-meta-row select{width:100%}.url-source-row{display:flex;gap:.5rem;align-items:center}.url-source-row input{flex:1}.url-source-link{font-size:.85rem;white-space:nowrap;color:var(--terre-cuite)}.recette-contenu{width:100%;resize:vertical}.recette-ingredients{margin-bottom:1rem}.recette-ingredients h3{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;font-size:.85rem;text-transform:uppercase;color:var(--terre-cuite)}.ingredient-row{display:flex;gap:.4rem;margin-bottom:.35rem;align-items:center}.ing-quantite{width:70px;padding:.4rem;font-size:.9rem;text-align:center}.ing-unite{width:70px;padding:.4rem;font-size:.9rem}.ing-nom{flex:1;padding:.4rem;font-size:.9rem}.recette-courses-section{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-section)}.recette-courses-section h3{margin-bottom:.5rem}.courses-send-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.courses-send-row label{display:flex;align-items:center;gap:.3rem;font-size:.9rem}.courses-send-row input{width:60px;padding:.3rem;text-align:center}.courses-msg{margin-top:.5rem;font-size:.85rem;color:var(--primary);font-weight:500}.import-modal{max-width:500px}.import-modal h2{margin-bottom:1rem}.import-modal input[type=url],.import-modal input[type=file]{width:100%;padding:.5rem .75rem;margin-bottom:1rem}.planning-page{max-width:1100px;margin:0 auto;padding:1rem}.planning-loading{text-align:center;padding:2rem;color:var(--text-muted)}.planning-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}.planning-titre h2{font-size:1.5rem;color:var(--text);cursor:pointer}.planning-titre h2:hover{color:var(--terre-cuite)}.planning-rename{display:flex;gap:.5rem;align-items:center}.planning-rename input{padding:.4rem .6rem;font-size:1.1rem}.planning-actions{display:flex;gap:.5rem}.planning-pool{margin-bottom:1.5rem}.planning-pool-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.planning-pool-title{font-size:.9rem;color:var(--text-muted);font-weight:500}.planning-btn-add{padding:.35rem .75rem;background:var(--bg-card);border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-muted);font-size:.85rem;transition:all .15s}.planning-btn-add:hover{border-color:var(--terre-cuite);color:var(--terre-cuite)}.planning-pool-items{display:flex;flex-wrap:wrap;gap:.5rem;min-height:60px;padding:.75rem;background:#5c30150f;border:2px dashed var(--border);border-radius:var(--radius);transition:border-color .15s,background .15s;align-items:flex-start;align-content:flex-start}.planning-pool-items.is-over{border-color:var(--terre-cuite);background:#cb7e4714}.planning-pool-empty{color:var(--text-muted);font-size:.85rem;font-style:italic;padding:.5rem;width:100%;text-align:center}.planning-plat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .75rem;display:flex;align-items:center;gap:.5rem;-webkit-user-select:none;user-select:none}.planning-plat-card.compact{padding:.3rem .4rem;font-size:.8rem;gap:.3rem}.planning-plat-card.fait{border-style:dashed;border-color:var(--border)}.fait-titre{text-decoration:line-through;color:var(--text-muted)}.planning-badge-fait{font-size:.65rem;padding:.1rem .35rem;border-radius:3px;background:#92ab884d;color:#3a5a32;flex-shrink:0}.planning-plat-drag{flex:1;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;cursor:grab;touch-action:none}.planning-plat-drag:active{cursor:grabbing}.planning-plat-titre{font-weight:500}.planning-plat-btns{display:flex;gap:.15rem;flex-shrink:0}.planning-btn-limite{background:none;font-size:.85rem;padding:0 .2rem;color:var(--text-muted);flex-shrink:0}.planning-btn-limite:hover{color:var(--text)}.planning-btn-fait{width:26px;height:26px;border-radius:50%;background:var(--bg-hover);border:2px solid var(--border);color:var(--text-muted);font-size:.85rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}.planning-btn-fait:hover{background:var(--primary);border-color:var(--primary);color:#fff}.planning-btn-suppr{background:none;color:var(--text-muted);font-size:1.1rem;padding:0 .2rem;flex-shrink:0}.planning-btn-suppr:hover{color:var(--danger)}.planning-badge-cat{font-size:.7rem;padding:.1rem .4rem;border-radius:999px;background:var(--primary-light);color:var(--text);white-space:nowrap}.planning-badge-limite{font-size:.7rem;padding:.1rem .4rem;border-radius:999px;background:#fef3c7;color:#92400e;white-space:nowrap}.planning-badge-limite.urgent{background:#fed7aa;color:#c2410c}.planning-badge-limite.depasse{background:#fecaca;color:#dc2626}.planning-grid-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.5rem}.planning-grid{display:grid;grid-template-columns:50px repeat(7,minmax(120px,1fr));gap:1px;background:var(--border);border-radius:var(--radius);overflow:hidden;min-width:900px}.planning-grid-corner{background:var(--bg-card)}.planning-grid-header{background:var(--bg-card);padding:.5rem .25rem;text-align:center}.planning-header-weekday{font-size:.75rem;color:var(--text-muted);text-transform:capitalize}.planning-header-day{font-size:1.1rem;font-weight:600;color:var(--text)}.planning-grid-header.today{background:var(--primary)}.planning-grid-header.today .planning-header-weekday,.planning-grid-header.today .planning-header-day{color:var(--text-header)}.planning-grid-label{background:var(--bg-card);padding:.5rem .25rem;text-align:center;font-size:.8rem;font-weight:500;color:var(--text-muted);display:flex;align-items:center;justify-content:center}.planning-grid-cell{background:var(--bg-card);padding:.35rem;min-height:80px;display:flex;flex-direction:column;gap:.25rem;transition:background .15s}.planning-grid-cell-over{background:#cb7e4714}.planning-cell-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--border);font-size:1.2rem}.planning-drag-overlay{background:var(--bg-card);border:2px solid var(--terre-cuite);border-radius:var(--radius);padding:.5rem .75rem;font-size:.85rem;box-shadow:0 4px 12px #5c301526;max-width:200px;display:flex;align-items:center;gap:.4rem}.planning-limite-modal{max-width:400px}.planning-limite-form{margin-top:1rem}.planning-edit-row{display:flex;gap:.5rem;align-items:center;margin-bottom:.5rem;flex-wrap:wrap}.planning-edit-row label{font-size:.85rem;color:var(--terre-cuite);min-width:80px;text-transform:uppercase;font-size:.75rem;font-weight:600}.planning-edit-row input,.planning-edit-row select{padding:.35rem .5rem;font-size:.9rem;flex:1}.planning-edit-actions{display:flex;gap:.5rem;margin-top:.75rem}.planning-add-modal{max-width:500px;max-height:70vh;display:flex;flex-direction:column}.planning-add-tabs{display:flex;gap:0;margin-bottom:1rem;border-bottom:2px solid var(--border)}.planning-add-tabs button{flex:1;padding:.5rem;background:none;color:var(--text-muted);border-bottom:2px solid transparent;margin-bottom:-2px;font-size:.95rem}.planning-add-tabs button.active{color:var(--terre-cuite);border-bottom-color:var(--terre-cuite)}.planning-add-recettes input{width:100%;padding:.5rem;margin-bottom:.5rem}.planning-recette-list{list-style:none;max-height:300px;overflow-y:auto}.planning-recette-list li{padding:.6rem .5rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;cursor:pointer}.planning-recette-list li:hover{background:var(--bg-hover)}.planning-recette-list li.planning-no-result{cursor:default;color:var(--text-muted);font-style:italic;justify-content:center}.planning-add-libre{display:flex;gap:.5rem}.planning-add-libre input{flex:1;padding:.5rem}.planning-add-import{display:flex;flex-direction:column;gap:.75rem}.planning-import-hint{font-size:.85rem;color:var(--text-muted)}.planning-import-photo-btns{display:flex;gap:.5rem}.planning-photo-label{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;border-radius:var(--radius);cursor:pointer;font-size:.9rem;text-align:center;flex:1}.planning-import-error{color:var(--danger);font-size:.85rem;margin-top:.25rem}.planning-import-preview{display:flex;flex-direction:column;gap:.75rem}.planning-preview-header{display:flex;align-items:center;gap:.5rem}.planning-preview-header h4{font-size:1.1rem;flex:1}.planning-preview-meta{display:flex;gap:.75rem;font-size:.85rem;color:var(--text-muted)}.planning-preview-tags{font-style:italic}.planning-preview-ingredients{border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;background:#5c30150a}.planning-preview-ingredients strong{display:block;margin-bottom:.5rem;font-size:.85rem}.planning-preview-ingredients ul{list-style:none;padding:0;columns:2;column-gap:1rem;font-size:.85rem}.planning-preview-ingredients li{padding:.15rem 0;break-inside:avoid}.planning-preview-qty{font-weight:600;margin-right:.15rem}.planning-preview-unit{color:var(--text-muted);margin-right:.25rem}.planning-preview-contenu{border-top:1px solid var(--border-section);padding-top:.5rem}.planning-preview-contenu strong{display:block;margin-bottom:.25rem;font-size:.85rem}.planning-preview-contenu p{font-size:.8rem;color:var(--text-muted);white-space:pre-line}.planning-preview-actions{display:flex;gap:.5rem;margin-top:.25rem}.planning-courses-modal{max-width:500px}.planning-courses-section{margin-bottom:1rem}.planning-courses-section h4{margin-bottom:.5rem;color:var(--text)}.planning-courses-section ul{list-style:none;padding:0}.planning-courses-section li{padding:.3rem 0;border-bottom:1px solid var(--border)}.planning-courses-plats{color:var(--text-muted);font-size:.85rem}.planning-courses-doublons li{color:var(--text-muted);font-style:italic}.preview-courses-list{max-height:400px;overflow-y:auto;margin-bottom:1rem}.preview-courses-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .3rem;border-bottom:1px solid var(--border);cursor:pointer;flex-wrap:wrap}.preview-courses-item:hover{background:var(--bg-hover)}.preview-courses-disabled{opacity:.45;cursor:default}.preview-courses-base{opacity:.6}.preview-courses-nom{font-weight:500;flex-shrink:0}.preview-courses-qte{color:var(--text-muted);font-size:.85rem;flex-shrink:0}.preview-courses-plats{color:var(--text-muted);font-size:.8rem;margin-left:auto}.preview-courses-tag{font-size:.7rem;padding:.1rem .4rem;border-radius:3px;background:var(--bg-hover);color:var(--text-muted);flex-shrink:0}.preview-courses-tag.tag-base{background:#fef3c7;color:#92400e}.preview-courses-add-base{font-size:.65rem;padding:.1rem .3rem;border:1px solid var(--border);border-radius:3px;background:none;color:var(--text-muted);cursor:pointer;flex-shrink:0}.preview-courses-add-base:hover{background:#fef3c7;color:#92400e}.planning-bases-modal{max-width:450px}.bases-list{max-height:300px;overflow-y:auto;margin-bottom:.8rem}.bases-item{display:flex;align-items:center;justify-content:space-between;padding:.4rem .3rem;border-bottom:1px solid var(--border)}.bases-delete{background:none;border:none;color:var(--danger);font-size:1.1rem;cursor:pointer;padding:0 .3rem}.bases-add-form{display:flex;gap:.5rem}.bases-add-form input{flex:1;padding:.4rem .6rem}.planning-stock{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;margin-bottom:1rem}.planning-stock-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.stock-form{display:flex;gap:.4rem;margin-bottom:.5rem;flex-wrap:wrap}.stock-form input{padding:.35rem .5rem;font-size:.85rem}.stock-form input:first-child{flex:1;min-width:120px}.stock-form-small{width:55px}.stock-form-date{width:130px}.stock-list{display:flex;flex-direction:column;gap:2px}.stock-item{display:flex;align-items:center;gap:.5rem;padding:.3rem .2rem;border-bottom:1px solid var(--border);font-size:.9rem}.stock-item:last-child{border-bottom:none}.stock-utilise{opacity:.4}.stock-utilise .stock-item-nom{text-decoration:line-through}.stock-item-nom{font-weight:500}.stock-item-qte{color:var(--text-muted);font-size:.8rem}.stock-item-dlc{font-size:.75rem;padding:.1rem .3rem;border-radius:3px;background:var(--bg-hover);color:var(--text-muted)}.stock-item-dlc.urgent{background:#fee2e2;color:#991b1b;font-weight:600}.stock-item-note{color:var(--text-muted);font-size:.8rem;font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}.stock-btn-recette{font-size:.65rem;padding:.1rem .35rem;border:1px solid var(--border);border-radius:3px;background:none;color:var(--text-muted);cursor:pointer;margin-left:auto;flex-shrink:0}.stock-btn-recette:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.stock-btn-delete{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:1rem;padding:0 .2rem;flex-shrink:0}.stock-btn-delete:hover{color:var(--danger)}.stock-btn-init{margin-bottom:1rem;width:100%}@media(max-width:768px){.sidebar{position:fixed;width:100%;height:auto;top:0;left:0;bottom:auto;flex-direction:row;align-items:center;padding:.5rem .75rem;gap:.3rem;overflow-x:auto;border-bottom:1px solid rgba(251,240,216,.25);z-index:100}.sidebar-header{display:flex;border-bottom:none;padding-bottom:0;margin-bottom:0;flex-shrink:0}.sidebar-logo{width:70px}.sidebar-nav{flex-direction:row;flex:1;justify-content:center;gap:.3rem}.sidebar-btn{white-space:nowrap;font-size:.8rem;padding:.4rem .6rem}.sidebar-btn svg{width:16px;height:16px}.logout-btn{margin-top:0}.main-content{margin-left:0;padding:4rem 1rem 1rem;max-width:100vw;overflow-x:hidden}.accueil{max-width:100%;padding-top:0}.accueil-grid{grid-template-columns:1fr;gap:1rem}.accueil-pave{padding:1.5rem;flex-direction:row;gap:1.25rem;justify-content:flex-start}.accueil-pave-icon{width:56px;height:56px;flex-shrink:0}.accueil-pave-label{font-size:1.1rem;text-align:left}.courses-page{max-width:100vw;overflow-x:hidden;padding:.5rem}.courses-page .courses-toolbar{gap:.3rem;margin-bottom:.8rem}.courses-page .courses-toolbar button{font-size:.8rem;padding:.4rem .6rem}.courses-page .add-article-form{flex-wrap:wrap;gap:.3rem;margin-bottom:.8rem}.courses-page .add-article-input-wrapper{flex:1 1 100%}.courses-page .add-article-quantite{width:55px;flex-shrink:0}.courses-page .add-article-rayon-wrapper{flex:1}.courses-page .add-article-rayon{width:100%}.courses-page .rayon-header{padding:.5rem .7rem;font-size:.9rem}.courses-page .article-item{padding:.4rem .7rem;gap:.3rem}.courses-page .article-checkbox{font-size:.9rem;gap:.3rem}.courses-page .article-delete{opacity:1;color:var(--danger);font-size:.9rem;padding:.2rem .3rem}.courses-page .article-quantite{font-size:.75rem;padding:.1rem .3rem}.shared-courses{padding:.5rem}.shared-courses-delete{color:var(--danger)}.recettes-page{padding:.5rem}.recette-toolbar{flex-wrap:wrap}.recette-toolbar button{flex:1;min-width:0;font-size:.8rem;padding:.4rem .6rem}.recette-list{grid-template-columns:1fr}.recette-meta-row{flex-direction:column;gap:.5rem}.ingredient-row{flex-wrap:wrap}.ing-quantite,.ing-unite{width:60px}.recette-detail{padding:1rem}.planning-page{padding:.5rem}.planning-toolbar{flex-direction:column;align-items:stretch}.planning-actions{justify-content:stretch}.planning-actions button{flex:1}.planning-pool-items{gap:.4rem;padding:.5rem}.planning-grid{min-width:840px}.planning-grid-cell{min-height:70px}.planning-edit-row{flex-direction:column;align-items:stretch}.planning-edit-row label{min-width:auto}.planning-plat-card.compact{padding:.25rem .35rem;font-size:.75rem}}
