@import"https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&family=Source+Sans+3:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&display=swap";:root{--terre-cuite: #C35831;--terre-cuite-light: #E8A28A;--terre-cuite-dark: #9A3F20;--safran: #D4A853;--safran-light: #F0D9A0;--safran-dark: #B08930;--olive: #4A5D32;--olive-light: #8BA668;--olive-dark: #2F3D1F;--creme: #F7F3EB;--creme-dark: #EDE6D8;--kraft: #E8DFD0;--anthracite: #2D2D2D;--gris-chaud: #5C5650;--gris-clair: #9A958D;--region-asie: #D64933;--region-mediteranee: #2E7D9C;--region-amerique: #8B5A2B;--region-afrique: #C9A227;--region-europe: #5B4B8A;--region-quebec: #1E5F74;--font-display: "Playfair Display", Georgia, serif;--font-body: "Source Sans 3", -apple-system, sans-serif;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 40px;--space-2xl: 64px;--radius-sm: 6px;--radius-md: 12px;--radius-lg: 20px;--radius-xl: 32px;--shadow-sm: 0 2px 8px rgba(45, 45, 45, .06);--shadow-md: 0 4px 20px rgba(45, 45, 45, .08);--shadow-lg: 0 8px 40px rgba(45, 45, 45, .12);--shadow-hover: 0 12px 48px rgba(45, 45, 45, .16);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-out-back: cubic-bezier(.34, 1.56, .64, 1);--duration-fast: .15s;--duration-normal: .3s;--duration-slow: .5s}*{box-sizing:border-box;margin:0;padding:0}html,body{scroll-behavior:smooth;overflow-x:clip;max-width:100%}body{font-family:var(--font-body);background:var(--creme);color:var(--anthracite);line-height:1.6;font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background-image:radial-gradient(ellipse at 20% 30%,rgba(212,168,83,.08) 0%,transparent 50%),radial-gradient(ellipse at 80% 70%,rgba(195,88,49,.06) 0%,transparent 50%);pointer-events:none;z-index:-1}header{position:relative;overflow:hidden}header.header-banner{padding:0;background:var(--creme)}.header-banner-image{width:100%;height:auto;display:block;max-height:280px;object-fit:cover;object-position:center}header.header-banner .dark-mode-toggle{position:absolute;top:var(--space-md);right:var(--space-md);z-index:10;background:#ffffffe6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:50%;width:44px;height:44px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);border:none;cursor:pointer;font-size:1.25rem;transition:all var(--duration-fast)}header.header-banner .dark-mode-toggle:hover{transform:scale(1.1);box-shadow:var(--shadow-lg)}[data-theme=dark] header.header-banner{background:var(--fond)}[data-theme=dark] .header-banner-image{filter:brightness(.85)}[data-theme=dark] header.header-banner .dark-mode-toggle{background:#2d2d2de6}@media(max-width:768px){.header-banner-image{max-height:160px;object-position:left top}header.header-banner .dark-mode-toggle{top:var(--space-sm);right:var(--space-sm);width:38px;height:38px;font-size:1.1rem}}@media(max-width:480px){.header-banner-image{max-height:130px;object-position:15% top}}header:not(.header-banner){background:linear-gradient(135deg,var(--olive-dark) 0%,var(--olive) 100%);color:#fff;padding:var(--space-xl) var(--space-lg);text-align:center}header:not(.header-banner):before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M30 5 L35 15 L30 12 L25 15 Z' fill='%23ffffff' fill-opacity='0.03'/%3E%3C/svg%3E");pointer-events:none}header:not(.header-banner):after{content:"";position:absolute;bottom:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--terre-cuite) 0%,var(--safran) 25%,var(--olive-light) 50%,var(--safran) 75%,var(--terre-cuite) 100%)}header h1{font-family:var(--font-display);font-size:clamp(1.75rem,4vw,2.75rem);font-weight:700;letter-spacing:-.02em;margin-bottom:var(--space-sm);position:relative}header p{font-size:.95rem;opacity:.9;font-weight:300;max-width:500px;margin:0 auto;letter-spacing:.02em}.container{max-width:1400px;margin:0 auto;padding:var(--space-lg)}.tabs{display:flex;gap:var(--space-sm);flex-wrap:wrap;background:#fff;padding:var(--space-sm) var(--space-lg);box-shadow:var(--shadow-md);position:sticky;top:0;z-index:100;max-width:1400px;margin:0 auto var(--space-lg);border-radius:0 0 var(--radius-xl) var(--radius-xl)}.tab-btn{padding:var(--space-md) var(--space-lg);border:none;background:transparent;color:var(--gris-chaud);cursor:pointer;border-radius:var(--radius-lg);font-family:var(--font-body);font-size:.95rem;font-weight:500;transition:all var(--duration-normal) var(--ease-out-expo);position:relative;overflow:hidden}.tab-btn:hover{color:var(--olive);background:var(--creme)}.tab-btn.active{background:var(--olive);color:#fff;font-weight:600;box-shadow:0 2px 8px #4a5d324d}.panel{display:none;background:#fff;padding:var(--space-xl);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);animation:panelReveal var(--duration-slow) var(--ease-out-expo)}.panel.active{display:block}@keyframes panelReveal{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.panel-title{font-family:var(--font-display);font-size:1.75rem;color:var(--olive);margin-bottom:var(--space-sm)}.panel-subtitle{color:var(--gris-clair);margin-bottom:var(--space-lg);font-size:1rem}.panel-header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-lg);margin-bottom:var(--space-lg);flex-wrap:wrap}.panel-header-row .panel-subtitle{margin-bottom:0}.panel-title-row{display:flex;align-items:center;gap:var(--space-sm)}.btn-icon{background:none;border:none;cursor:pointer;font-size:1.25rem;padding:var(--space-xs);border-radius:var(--radius-sm);transition:background-color .2s,transform .2s;display:flex;align-items:center;justify-content:center}.btn-icon:hover{background-color:var(--creme);transform:scale(1.1)}:root[data-theme=dark] .btn-icon:hover{background-color:var(--creme-dark)}.panel-actions{display:flex;gap:var(--space-sm);flex-shrink:0}.menu-summary{background:var(--creme);padding:var(--space-xl);border-radius:var(--radius-md);margin-top:var(--space-xl)}.menu-summary h3{font-family:var(--font-display);color:var(--olive);margin-bottom:var(--space-lg);font-size:1.25rem}.menu-summary .print-buttons{margin-top:var(--space-lg)}.empty-slot{color:var(--gris-clair)}:root[data-theme=dark] .menu-summary{background:var(--creme-dark)}@media(max-width:768px){.panel-header-row{flex-direction:column;align-items:stretch}.panel-actions{justify-content:flex-start}}.cook-recipes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-md);margin-bottom:var(--space-xl)}.cook-recipe-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--creme);border:2px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-fast)}.cook-recipe-card:hover{border-color:var(--olive-light);transform:translateY(-2px)}.cook-recipe-card.checked{background:linear-gradient(135deg,#4a5d321a,#8ba66826);border-color:var(--olive)}.cook-checkbox{appearance:none;-webkit-appearance:none;width:24px;height:24px;border:2px solid var(--creme-dark);border-radius:var(--radius-sm);cursor:pointer;position:relative;transition:all var(--duration-fast);background:#fff;flex-shrink:0}.cook-checkbox:checked{background:var(--olive);border-color:var(--olive)}.cook-checkbox:checked:after{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:.9rem;font-weight:700}.cook-recipe-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.cook-recipe-num{font-family:var(--font-display);font-size:.8rem;color:var(--olive);font-weight:600}.cook-recipe-name{font-weight:600;color:var(--anthracite);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cook-recipe-name-btn{font-weight:600;color:var(--anthracite);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:none;border:none;padding:0;cursor:pointer;text-align:left;transition:color .15s ease}.cook-recipe-name-btn:hover{color:var(--olive);text-decoration:underline}.cook-recipe-name-btn:focus{outline:2px solid var(--olive);outline-offset:2px;border-radius:var(--radius-sm)}.cook-recipe-origin{font-size:.85rem;color:var(--gris-clair)}.cook-recipe-portions{font-size:.8rem;color:var(--olive);font-weight:500;margin-top:var(--space-xs);padding-top:var(--space-xs);border-top:1px dashed var(--gris-clair)}.cook-print-section{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);padding:var(--space-lg);background:var(--creme);border-radius:var(--radius-md);flex-wrap:wrap}.cook-print-count{font-size:1.1rem}.cook-print-count strong{font-family:var(--font-display);font-size:1.5rem;color:var(--olive)}.recipes-print-area{display:none}:root[data-theme=dark] .cook-recipe-card{background:var(--kraft)}:root[data-theme=dark] .cook-recipe-card.checked{background:linear-gradient(135deg,#7a9d5233,#5a7d3826)}:root[data-theme=dark] .cook-checkbox{background:var(--creme);border-color:#444}:root[data-theme=dark] .cook-print-section{background:var(--kraft)}.selection-count{background:linear-gradient(135deg,var(--kraft) 0%,var(--creme-dark) 100%);padding:var(--space-lg) var(--space-xl);border-radius:var(--radius-md);margin-bottom:var(--space-lg);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-md);border:1px solid rgba(195,88,49,.1)}.selection-count-btn{background:transparent;border:2px solid transparent;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-family:var(--font-body);font-size:1.1rem;cursor:pointer;display:flex;align-items:center;gap:var(--space-sm);transition:all var(--duration-fast);color:var(--anthracite)}.selection-count-btn:not(:disabled):hover{background:var(--creme);border-color:var(--olive-light)}.selection-count-btn:disabled{cursor:default;opacity:.7}.selection-count-btn.active{background:var(--olive);color:#fff;border-color:var(--olive)}.selection-count-btn.active strong{color:#fff}.selection-count-btn strong{font-family:var(--font-display);font-size:1.5rem;color:var(--terre-cuite)}.filter-hint{font-size:.8rem;color:var(--gris-clair);margin-left:var(--space-xs)}.selection-count-btn.active .filter-hint{color:#fffc}.selection-count-btn:not(:disabled):hover .filter-hint{color:var(--olive)}:root[data-theme=dark] .selection-count-btn:not(:disabled):hover{background:var(--kraft)}.selection-buttons{display:flex;gap:var(--space-sm)}.filters{display:flex;gap:var(--space-sm);margin-bottom:var(--space-xl);flex-wrap:wrap}.filter-btn{padding:var(--space-sm) var(--space-md);border:2px solid var(--creme-dark);background:#fff;border-radius:50px;cursor:pointer;font-family:var(--font-body);font-size:.875rem;font-weight:500;color:var(--gris-chaud);transition:all var(--duration-fast) var(--ease-out-expo);white-space:nowrap}.filter-btn:hover{border-color:var(--olive-light);color:var(--olive);transform:translateY(-2px)}.filter-btn.active{background:var(--olive);border-color:var(--olive);color:#fff}.filter-btn[data-region=Asie].active{background:var(--region-asie);border-color:var(--region-asie)}.filter-btn[data-region=Méditerranée].active{background:var(--region-mediteranee);border-color:var(--region-mediteranee)}.filter-btn[data-region=Amérique].active{background:var(--region-amerique);border-color:var(--region-amerique)}.filter-btn[data-region=Afrique].active{background:var(--region-afrique);border-color:var(--region-afrique)}.filter-btn[data-region=Europe].active{background:var(--region-europe);border-color:var(--region-europe)}.filter-btn[data-region=Québec].active{background:var(--region-quebec);border-color:var(--region-quebec)}.recipes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:var(--space-lg);margin-bottom:var(--space-lg)}.recipe-card{background:#fff;border-radius:var(--radius-md);padding:var(--space-lg);cursor:pointer;transition:all var(--duration-normal) var(--ease-out-expo);border:2px solid transparent;position:relative;overflow:hidden}.recipe-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:var(--olive);transform:scaleY(0);transform-origin:bottom;transition:transform var(--duration-normal) var(--ease-out-expo)}.recipe-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-4px);border-color:var(--olive-light)}.recipe-card:hover:before{transform:scaleY(1)}.recipe-card.selected{background:linear-gradient(135deg,var(--creme) 0%,#F0EDE5 100%);border-color:var(--olive)}.recipe-card.selected:before{transform:scaleY(1);background:var(--terre-cuite)}.recipe-card.has-photo{padding-top:0}.recipe-card-photo{width:calc(100% + var(--space-lg) * 2);margin:0 calc(-1 * var(--space-lg)) var(--space-md);height:120px;overflow:hidden}.recipe-card-photo img{width:100%;height:100%;object-fit:cover;transition:transform var(--duration-slow) var(--ease-out-expo)}.recipe-card:hover .recipe-card-photo img{transform:scale(1.05)}.recipe-card .header{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-sm)}.recipe-card .checkbox{width:24px;height:24px;accent-color:var(--olive);cursor:pointer;flex-shrink:0}.recipe-card .num{background:linear-gradient(135deg,var(--olive) 0%,var(--olive-dark) 100%);color:#fff;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:.85rem;flex-shrink:0}.recipe-card.selected .num{background:linear-gradient(135deg,var(--terre-cuite) 0%,var(--terre-cuite-dark) 100%)}.recipe-card .nom{font-family:var(--font-display);font-weight:600;font-size:1.05rem;color:var(--anthracite);flex:1;line-height:1.3}.recipe-card .origine{display:inline-flex;align-items:center;gap:var(--space-xs);color:var(--terre-cuite);font-size:.85rem;font-weight:500;margin-bottom:var(--space-sm);padding:var(--space-xs) var(--space-sm);background:var(--creme);border-radius:50px;width:fit-content}.recipe-card .description{font-size:.9rem;color:var(--gris-chaud);margin-bottom:var(--space-md);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-card .meta{display:flex;gap:var(--space-md);font-size:.8rem;color:var(--gris-clair);flex-wrap:wrap;padding-top:var(--space-md);border-top:1px solid var(--creme-dark)}.recipe-card .meta span{display:flex;align-items:center;gap:var(--space-xs)}.recipe-card .meta span:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--safran)}.source-badge{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:.75rem;margin-top:var(--space-sm)}.source-badge.source-ai{background:var(--gris-clair);color:#fff;opacity:.6}.source-badge.source-tested{background:var(--olive);color:#fff}.source-badge.source-family{background:var(--terre-cuite);color:#fff}.source-badge .source-icon{font-size:.9rem}.source-badge .source-label{font-weight:500}.source-badge .source-rating{color:var(--safran);margin-left:var(--space-xs)}.btn{padding:var(--space-md) var(--space-lg);border:none;border-radius:var(--radius-md);font-family:var(--font-body);font-size:.95rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);transition:all var(--duration-fast) var(--ease-out-expo);position:relative;overflow:hidden}.btn:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.15) 0%,transparent 50%);pointer-events:none}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0)}.btn-primary{background:linear-gradient(135deg,var(--olive) 0%,var(--olive-dark) 100%);color:#fff;box-shadow:0 4px 12px #4a5d3240}.btn-primary:hover{box-shadow:0 6px 20px #4a5d3259}.btn-secondary{background:linear-gradient(135deg,var(--safran) 0%,var(--safran-dark) 100%);color:#fff;box-shadow:0 4px 12px #d4a85340}.btn-secondary:hover{box-shadow:0 6px 20px #d4a85359}.btn-orange{background:linear-gradient(135deg,var(--terre-cuite) 0%,var(--terre-cuite-dark) 100%);color:#fff;box-shadow:0 4px 12px #c3583140}.btn-orange:hover{box-shadow:0 6px 20px #c3583159}.btn-gray{background:var(--gris-clair);color:#fff}.btn-gray:hover{background:var(--gris-chaud)}.actions{display:flex;gap:var(--space-md);margin-top:var(--space-xl);flex-wrap:wrap}.week-planner{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md);margin-bottom:var(--space-lg)}@media(max-width:900px){.week-planner{grid-template-columns:repeat(2,1fr)}}@media(max-width:500px){.week-planner{grid-template-columns:1fr}}.day-column{background:var(--creme);border-radius:var(--radius-md);overflow:hidden;transition:all var(--duration-normal) var(--ease-out-expo)}.day-column:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}.day-header{background:linear-gradient(135deg,var(--olive) 0%,var(--olive-dark) 100%);color:#fff;padding:var(--space-md);text-align:center;font-family:var(--font-display);font-weight:600;font-size:.95rem;letter-spacing:.02em}.day-column:nth-child(6) .day-header,.day-column:nth-child(7) .day-header{background:linear-gradient(135deg,var(--terre-cuite) 0%,var(--terre-cuite-dark) 100%)}.day-content{padding:var(--space-md)}.meal-slot{background:#fff;border-radius:var(--radius-sm);padding:var(--space-md)}.meal-slot label{font-size:.75rem;color:var(--gris-clair);text-transform:uppercase;letter-spacing:.05em;display:block;margin-bottom:var(--space-sm)}.meal-slot select{width:100%;padding:var(--space-sm) var(--space-md);border:2px solid var(--creme-dark);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.85rem;color:var(--anthracite);background:#fff;cursor:pointer;transition:all var(--duration-fast)}.meal-slot select:focus{outline:none;border-color:var(--olive)}.meal-slot select:hover{border-color:var(--olive-light)}.print-area{background:var(--creme);padding:var(--space-xl);border-radius:var(--radius-md);margin-top:var(--space-xl);display:none;border:2px dashed var(--kraft)}.print-area.visible{display:block;animation:slideDown var(--duration-slow) var(--ease-out-expo)}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.print-area h2{font-family:var(--font-display);color:var(--olive);margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:3px solid var(--olive);display:flex;align-items:center;gap:var(--space-md)}.print-area h2:before{content:"";width:8px;height:8px;background:var(--terre-cuite);border-radius:50%}.print-buttons{margin-top:var(--space-xl);display:flex;gap:var(--space-md)}.menu-table{width:100%;border-collapse:separate;border-spacing:0;margin-top:var(--space-md);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm)}.menu-table th,.menu-table td{padding:var(--space-md) var(--space-lg);text-align:left}@media(max-width:480px){.menu-table th,.menu-table td{padding:var(--space-sm) var(--space-md);font-size:.85rem}.menu-table td{word-break:break-word}}.menu-table th{background:linear-gradient(135deg,var(--olive) 0%,var(--olive-dark) 100%);color:#fff;font-family:var(--font-display);font-weight:600}.menu-table td{background:#fff;border-bottom:1px solid var(--creme-dark)}.menu-table tr:last-child td{border-bottom:none}.menu-table tr:nth-child(2n) td{background:var(--creme)}.menu-table td strong{color:var(--olive);font-family:var(--font-display)}.task-list{list-style:none}.task-list li{padding:var(--space-lg);background:#fff;border-radius:var(--radius-sm);margin-bottom:var(--space-md);display:flex;align-items:flex-start;gap:var(--space-md);box-shadow:var(--shadow-sm);transition:all var(--duration-fast)}.task-list li:hover{box-shadow:var(--shadow-md);transform:translate(4px)}.task-list .task-check{color:var(--olive);font-size:1.2rem;font-weight:700;flex-shrink:0;width:24px;height:24px;border:2px solid var(--olive);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.task-list .recipe-name{font-family:var(--font-display);font-weight:600;color:var(--olive);font-size:1.05rem;margin-bottom:var(--space-xs)}.task-list .recipe-name-btn{font-family:var(--font-display);font-weight:600;color:var(--olive);font-size:1.05rem;margin-bottom:var(--space-xs);background:none;border:none;padding:0;cursor:pointer;text-align:left;transition:opacity .15s ease}.task-list .recipe-name-btn:hover{opacity:.7;text-decoration:underline}.task-list .recipe-name-btn:focus{outline:2px solid var(--olive);outline-offset:2px;border-radius:var(--radius-sm)}.week-menu-summary{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-xs);margin-bottom:var(--space-lg);padding:var(--space-md);background:var(--kraft);border-radius:var(--radius-md);border:1px solid var(--creme-dark)}.week-menu-item{display:flex;flex-direction:column;text-align:center;min-width:0}.week-menu-day{font-family:var(--font-display);font-weight:600;font-size:.75rem;color:var(--olive);text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px}.week-menu-recipe{font-size:.7rem;color:var(--gris-chaud);line-height:1.2;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.week-menu-recipe-btn{font-size:.7rem;color:var(--gris-chaud);line-height:1.2;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;background:none;border:none;padding:0;cursor:pointer;text-align:left;transition:color .15s ease}.week-menu-recipe-btn:hover{color:var(--olive);text-decoration:underline}.week-menu-recipe-btn:focus{outline:2px solid var(--olive);outline-offset:2px;border-radius:var(--radius-sm)}@media(max-width:768px){.week-menu-summary{grid-template-columns:repeat(4,1fr)}}@media(max-width:480px){.week-menu-summary{grid-template-columns:repeat(2,1fr);gap:var(--space-sm)}.week-menu-item{flex-direction:row;gap:var(--space-sm);text-align:left;padding:var(--space-xs) 0}.week-menu-day{min-width:32px;margin-bottom:0}.week-menu-recipe{-webkit-line-clamp:1}}.grocery-section{margin-bottom:var(--space-xl)}.grocery-section h3{font-family:var(--font-display);color:var(--olive);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:2px solid var(--safran);display:flex;align-items:center;gap:var(--space-sm)}.grocery-section h3:before{content:"";width:12px;height:12px;background:var(--safran);border-radius:2px;transform:rotate(45deg)}.grocery-list{list-style:none;columns:2;column-gap:var(--space-xl)}@media(max-width:600px){.grocery-list{columns:1}}.grocery-list li{padding:var(--space-sm) 0;display:flex;align-items:flex-start;gap:var(--space-sm);break-inside:avoid;font-size:.95rem}.grocery-list .check-box{color:var(--olive);font-weight:700;flex-shrink:0}.recipe-detail{display:none;position:fixed;inset:0;background:#2d2d2d99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;overflow-y:auto;padding:var(--space-lg)}.recipe-detail.open{display:flex;align-items:flex-start;justify-content:center;animation:fadeIn var(--duration-normal) var(--ease-out-expo)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.recipe-detail-content{background:#fff;max-width:750px;width:100%;border-radius:var(--radius-lg);padding:var(--space-xl);margin:var(--space-xl) 0;position:relative;box-shadow:var(--shadow-lg);animation:modalSlideUp var(--duration-slow) var(--ease-out-expo);overflow-x:hidden}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(40px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.recipe-detail-content:before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:linear-gradient(90deg,var(--olive),var(--safran),var(--terre-cuite));border-radius:var(--radius-lg) var(--radius-lg) 0 0}.recipe-detail-content h2{font-family:var(--font-display);color:var(--anthracite);font-size:1.5rem;margin-bottom:var(--space-xs);padding-right:50px;padding-top:var(--space-sm)}.recipe-detail-content .origine{color:var(--terre-cuite);font-weight:500;margin-bottom:var(--space-md)}.recipe-detail-content .description-box{background:linear-gradient(135deg,var(--creme) 0%,var(--kraft) 100%);padding:var(--space-lg);border-radius:var(--radius-md);margin-bottom:var(--space-xl);font-style:italic;color:var(--gris-chaud);border-left:4px solid var(--olive);line-height:1.6}.recipe-detail-content .info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md);margin-bottom:var(--space-xl)}@media(max-width:600px){.recipe-detail-content .info-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:420px){.recipe-detail-content .info-grid{grid-template-columns:1fr 1fr;gap:var(--space-sm)}.recipe-detail-content .info-grid.nutrition-grid{grid-template-columns:1fr!important}.recipe-detail-content .info-box{padding:var(--space-sm)}.recipe-detail-content .info-box label{font-size:.6rem;word-break:break-word;-webkit-hyphens:auto;hyphens:auto}.recipe-detail-content .info-box strong,.recipe-detail-content .info-box span{font-size:.85rem;word-break:break-word}}.recipe-detail-content .info-box{background:var(--creme);padding:var(--space-md);border-radius:var(--radius-sm);text-align:center;transition:all var(--duration-fast)}.recipe-detail-content .info-box:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.recipe-detail-content .info-box label{font-size:.7rem;color:var(--gris-clair);text-transform:uppercase;letter-spacing:.05em;display:block;margin-bottom:var(--space-xs)}.recipe-detail-content .info-box strong,.recipe-detail-content .info-box span{font-weight:600;color:var(--anthracite)}.recipe-detail-content h3{font-family:var(--font-display);color:var(--olive);margin:var(--space-xl) 0 var(--space-md);font-size:1.1rem;display:flex;align-items:center;gap:var(--space-sm)}.recipe-detail-content h3:before{content:"";width:20px;height:2px;background:var(--safran)}.recipe-detail-content ul,.recipe-detail-content ol{margin-left:var(--space-lg)}.recipe-detail-content li{margin-bottom:var(--space-sm);line-height:1.5}.weekend-legend{background:var(--olive-light);color:#fff;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);margin-bottom:var(--space-md);font-size:.85rem;display:inline-flex;align-items:center;gap:var(--space-sm)}.weekend-badge{background:var(--terre-cuite);color:#fff;padding:2px 8px;border-radius:4px;font-size:.7rem;font-weight:700;letter-spacing:.05em}.steps-list{margin-left:var(--space-lg);counter-reset:step}.steps-list li{padding:var(--space-md);border-bottom:1px solid var(--creme-dark);position:relative}.steps-list li::marker{color:var(--olive);font-weight:700}.steps-list li.weekend-step{background:linear-gradient(135deg,var(--creme) 0%,rgba(139,166,104,.1) 100%);margin:var(--space-sm) -var(--space-md);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-sm);border-bottom:none}.weekend-note{background:linear-gradient(135deg,var(--creme) 0%,rgba(139,166,104,.1) 100%);padding:var(--space-lg);border-radius:var(--radius-md);border-left:4px solid var(--olive)}.weekend-note strong{color:var(--olive)}.close-btn{position:absolute;top:var(--space-lg);right:var(--space-lg);background:var(--creme);border:none;font-size:1.25rem;cursor:pointer;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gris-chaud);transition:all var(--duration-fast)}.close-btn:hover{background:var(--terre-cuite);color:#fff;transform:rotate(90deg)}@media print{body>*:not(.print-target){display:none!important}html,body{height:auto!important;overflow:visible!important;background:#fff!important;margin:0!important;padding:0!important}body:before{display:none!important}.print-target{display:block!important;background:#fff!important;padding:20px!important;overflow:visible!important}.print-target,.print-target *{overflow:visible!important;max-height:none!important}.print-recipe{page-break-after:always;page-break-inside:avoid;padding:20px 0;overflow:visible!important}.print-recipe:last-child{page-break-after:avoid}.print-recipe h2{font-family:var(--font-display);font-size:1.5rem;color:#000!important;margin-bottom:5px;border-bottom:2px solid #333;padding-bottom:10px}.print-recipe-origin{color:#666!important;margin-bottom:20px}.print-recipe-section{margin-bottom:20px}.print-recipe-section h3{font-family:var(--font-display);font-size:1.1rem;color:#000!important;margin-bottom:10px;border-left:3px solid #333;padding-left:10px}.print-recipe-section ul,.print-recipe-section ol{margin-left:20px}.print-recipe-section li{margin-bottom:5px;line-height:1.5}.grocery-list{columns:2}.task-list li{box-shadow:none;border:1px solid #ddd;background:#fff!important}.grocery-section{break-inside:avoid}.print-area h2,.grocery-section h3{color:#000!important}.dark-mode-toggle,.search-bar,.filters-row,.results-count,.favorite-btn,.detail-favorite-btn,.portions-buttons,.owned-badge,.owned-checkbox{display:none!important}.grocery-list li.owned{opacity:1}.strikethrough{text-decoration:none;color:inherit}@page{size:A4;margin:1cm}}@media(max-width:768px){.container{padding:var(--space-md)}.panel{padding:var(--space-lg)}.recipes-grid{grid-template-columns:1fr}.selection-count{flex-direction:column;text-align:center}.selection-buttons{width:100%;justify-content:center}header h1{font-size:1.5rem}.tabs{justify-content:center}.tab-btn{padding:var(--space-sm) var(--space-md);font-size:.85rem}}.recipes-grid .recipe-card{animation:cardReveal var(--duration-slow) var(--ease-out-expo) backwards}.recipes-grid .recipe-card:nth-child(1){animation-delay:0ms}.recipes-grid .recipe-card:nth-child(2){animation-delay:50ms}.recipes-grid .recipe-card:nth-child(3){animation-delay:.1s}.recipes-grid .recipe-card:nth-child(4){animation-delay:.15s}.recipes-grid .recipe-card:nth-child(5){animation-delay:.2s}.recipes-grid .recipe-card:nth-child(6){animation-delay:.25s}.recipes-grid .recipe-card:nth-child(7){animation-delay:.3s}.recipes-grid .recipe-card:nth-child(8){animation-delay:.35s}.recipes-grid .recipe-card:nth-child(9){animation-delay:.4s}.recipes-grid .recipe-card:nth-child(10){animation-delay:.45s}.recipes-grid .recipe-card:nth-child(11){animation-delay:.5s}.recipes-grid .recipe-card:nth-child(12){animation-delay:.55s}@keyframes cardReveal{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.tab-icon{margin-right:var(--space-xs);font-size:.9em}.filter-count{background:var(--olive-light);color:#fff;font-size:.7rem;padding:2px 6px;border-radius:10px;margin-left:var(--space-xs)}.filter-btn.active .filter-count{background:#ffffff4d}.origine-icon{color:var(--terre-cuite);font-size:.7rem;margin-right:6px;display:inline-flex;align-items:center;vertical-align:middle}.origine-icon .flag-icon{width:1.4em;height:auto;border-radius:3px;box-shadow:0 1px 3px #00000026}.origine-icon .flag-fallback{font-size:1rem}.recipe-num{color:var(--olive)}.recipe-detail-content .legumes-box{background:linear-gradient(135deg,var(--creme) 0%,rgba(139,166,104,.15) 100%)}.recipe-detail-content .proteines-box{background:linear-gradient(135deg,var(--creme) 0%,rgba(195,88,49,.15) 100%)}.recipe-detail-content .feculents-box{background:linear-gradient(135deg,var(--creme) 0%,rgba(212,168,83,.15) 100%)}.ingredients-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-xs);list-style:none;margin-left:0}.ingredients-list li{padding:var(--space-sm) var(--space-md);background:var(--creme);border-radius:var(--radius-sm);font-size:.9rem;position:relative;padding-left:var(--space-lg)}.ingredients-list li:before{content:"◆";position:absolute;left:var(--space-sm);color:var(--safran);font-size:.6rem}.variantes-text{background:var(--creme);padding:var(--space-md);border-radius:var(--radius-sm);color:var(--gris-chaud);font-style:italic}.source-section{margin-top:var(--space-lg);padding:var(--space-md);border-radius:var(--radius-md);border-left:4px solid}.source-section.ai{background:var(--creme);border-color:var(--gris-clair)}.source-section.ai-tested{background:#7a9d521a;border-color:var(--olive)}.source-section.family{background:#c66b4d1a;border-color:var(--terre-cuite)}.source-section h3{margin-bottom:var(--space-sm);font-size:1rem}.source-rating-display{font-size:1.2rem;color:var(--safran);margin-bottom:var(--space-sm);letter-spacing:2px}.source-note{color:var(--gris-chaud);font-style:italic;margin:0;line-height:1.5}.source-note.source-untested{opacity:.8}.source-photos{display:flex;gap:var(--space-md);margin-top:var(--space-md);flex-wrap:wrap}.source-photo{max-width:200px;max-height:200px;object-fit:cover;border-radius:var(--radius-md);box-shadow:var(--shadow-md);cursor:pointer;transition:transform var(--duration-normal) var(--ease-out-expo),box-shadow var(--duration-normal) var(--ease-out-expo)}.source-photo:hover{transform:scale(1.05);box-shadow:var(--shadow-lg)}.photo-lightbox{position:fixed;inset:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:2000;cursor:pointer;animation:fadeIn var(--duration-fast) var(--ease-out-expo)}.photo-lightbox img{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:var(--radius-md);box-shadow:0 20px 60px #00000080;animation:zoomIn var(--duration-normal) var(--ease-out-back)}@keyframes zoomIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.lightbox-close{position:absolute;top:20px;right:20px;background:#ffffff1a;border:none;color:#fff;width:48px;height:48px;border-radius:50%;font-size:1.5rem;cursor:pointer;transition:background var(--duration-fast)}.lightbox-close:hover{background:#fff3}.detail-actions{margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:2px solid var(--creme-dark)}.day-short{display:none}.day-full{display:inline}@media(max-width:1100px){.day-short{display:inline}.day-full{display:none}}.selected-preview{margin-top:var(--space-sm);padding:var(--space-sm);background:var(--creme);border-radius:var(--radius-sm);font-size:.8rem}.preview-name{display:block;font-weight:600;color:var(--olive);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preview-origin{color:var(--gris-clair);font-size:.75rem}.preview-info{display:block;width:100%;text-align:left;background:none;border:none;padding:0;cursor:pointer;transition:opacity .15s ease}.preview-info:hover{opacity:.7}.preview-info:focus{outline:2px solid var(--olive);outline-offset:2px;border-radius:var(--radius-sm)}.portions-selector{display:flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-xs);padding-top:var(--space-xs);border-top:1px solid var(--gris-clair)}.portions-selector label{font-size:.7rem;color:var(--gris-chaud);font-weight:500}.portions-selector select{padding:2px 6px;font-size:.75rem;border:1px solid var(--gris-clair);border-radius:var(--radius-sm);background:var(--creme-dark);color:var(--anthracite);cursor:pointer}.portions-selector select:focus{outline:none;border-color:var(--olive)}.empty-state{text-align:center;padding:var(--space-2xl) var(--space-xl);color:var(--gris-clair)}.empty-icon{font-size:4rem;margin-bottom:var(--space-md);opacity:.5}.empty-state h3{font-family:var(--font-display);color:var(--gris-chaud);margin-bottom:var(--space-sm)}.empty-state p{max-width:300px;margin:0 auto}.stats-row{display:flex;gap:var(--space-md);margin-bottom:var(--space-md)}.stat-card{flex:1;background:linear-gradient(135deg,var(--creme) 0%,var(--kraft) 100%);padding:var(--space-lg);border-radius:var(--radius-md);text-align:center}.stat-number{display:block;font-family:var(--font-display);font-size:2.5rem;font-weight:700;color:var(--olive);line-height:1}.stat-label{display:block;font-size:.85rem;color:var(--gris-clair);margin-top:var(--space-xs);text-transform:uppercase;letter-spacing:.05em}.print-subtitle{color:var(--gris-clair);margin-bottom:var(--space-lg)}.task-content{flex:1}.task-description{color:var(--gris-chaud);margin:var(--space-xs) 0}.task-meta{display:flex;gap:var(--space-md);font-size:.8rem;color:var(--gris-clair);margin-top:var(--space-sm)}.category-icon{margin-right:var(--space-sm)}.category-count{background:var(--olive);color:#fff;font-size:.7rem;padding:2px 8px;border-radius:10px;margin-left:var(--space-sm);font-family:var(--font-body);font-weight:500}.item-text{flex:1}.recipe-card .checkbox{appearance:none;-webkit-appearance:none;width:22px;height:22px;border:2px solid var(--creme-dark);border-radius:var(--radius-sm);cursor:pointer;position:relative;transition:all var(--duration-fast);background:#fff}.recipe-card .checkbox:hover{border-color:var(--olive-light)}.recipe-card .checkbox:checked{background:var(--olive);border-color:var(--olive)}.recipe-card .checkbox:checked:after{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:.85rem;font-weight:700}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--creme);border-radius:5px}::-webkit-scrollbar-thumb{background:var(--gris-clair);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--gris-chaud)}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid var(--safran);outline-offset:2px}::selection{background:var(--safran-light);color:var(--anthracite)}:root[data-theme=dark]{--creme: #1a1a1a;--creme-dark: #252525;--kraft: #2a2a2a;--anthracite: #E8E8E8;--gris-chaud: #BBBBBB;--gris-clair: #888888;--terre-cuite: #E8705A;--terre-cuite-light: #F0A090;--terre-cuite-dark: #C05040;--safran: #F0C060;--safran-light: #F8D890;--safran-dark: #D0A040;--olive: #7A9D52;--olive-light: #9DBD78;--olive-dark: #5A7D38;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 4px 20px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .5);--shadow-hover: 0 12px 48px rgba(0, 0, 0, .6)}:root[data-theme=dark] body{background:var(--creme)}:root[data-theme=dark] body:before{background-image:radial-gradient(ellipse at 20% 30%,rgba(212,168,83,.05) 0%,transparent 50%),radial-gradient(ellipse at 80% 70%,rgba(195,88,49,.04) 0%,transparent 50%)}:root[data-theme=dark] .tabs,:root[data-theme=dark] .panel,:root[data-theme=dark] .recipe-card,:root[data-theme=dark] .meal-slot,:root[data-theme=dark] .menu-table td,:root[data-theme=dark] .task-list li{background:var(--kraft)}:root[data-theme=dark] .recipe-card.selected{background:linear-gradient(135deg,#2a3020,#353530)}:root[data-theme=dark] .print-area{background:var(--kraft);border-color:#444}:root[data-theme=dark] .search-input,:root[data-theme=dark] .filter-group select{background:var(--kraft);color:var(--anthracite);border-color:#444}:root[data-theme=dark] .recipe-detail-content{background:var(--kraft)}:root[data-theme=dark] .info-box{background:var(--creme)}:root[data-theme=dark] .description-box{background:linear-gradient(135deg,var(--creme) 0%,#2a2820 100%)}:root[data-theme=dark] .ingredients-list li{background:var(--creme)}:root[data-theme=dark] ::-webkit-scrollbar-track{background:var(--creme)}:root[data-theme=dark] ::-webkit-scrollbar-thumb{background:#555}:root[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#666}.header-content{display:flex;justify-content:space-between;align-items:center;max-width:1400px;margin:0 auto}.header-text{text-align:center;flex:1}.dark-mode-toggle{position:absolute;right:var(--space-lg);top:50%;transform:translateY(-50%);background:#ffffff26;border:none;font-size:1.5rem;cursor:pointer;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all var(--duration-fast)}.dark-mode-toggle:hover{background:#ffffff40;transform:translateY(-50%) scale(1.1)}header{position:relative}.search-bar{position:relative;margin-bottom:var(--space-lg)}.search-input{width:100%;padding:var(--space-md) var(--space-lg);padding-right:50px;border:2px solid var(--creme-dark);border-radius:var(--radius-lg);font-family:var(--font-body);font-size:1rem;transition:all var(--duration-fast)}.search-input:focus{outline:none;border-color:var(--olive);box-shadow:0 0 0 3px #4a5d321a}.search-input::placeholder{color:var(--gris-clair)}.search-clear{position:absolute;right:var(--space-md);top:50%;transform:translateY(-50%);background:var(--gris-clair);border:none;color:#fff;width:24px;height:24px;border-radius:50%;font-size:.75rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--duration-fast)}.search-clear:hover{background:var(--gris-chaud)}.filters-row{display:flex;gap:var(--space-md);margin-bottom:var(--space-lg);flex-wrap:wrap;align-items:flex-end}.filter-group{display:flex;flex-direction:column;gap:var(--space-xs)}.filter-group label{font-size:.75rem;color:var(--gris-clair);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.filter-group select{padding:var(--space-sm) var(--space-md);border:2px solid var(--creme-dark);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.9rem;color:var(--anthracite);background:#fff;cursor:pointer;min-width:120px;transition:all var(--duration-fast)}.filter-group select:focus{outline:none;border-color:var(--olive)}.filter-group select:hover{border-color:var(--olive-light)}.btn-sm{padding:var(--space-sm) var(--space-md);font-size:.85rem}.results-count{color:var(--gris-clair);font-size:.9rem;margin-bottom:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--creme);border-radius:var(--radius-sm);display:inline-block}.filter-icon{margin-right:var(--space-xs)}.favorite-btn{position:absolute;top:var(--space-sm);right:var(--space-sm);background:#fff;border:none;font-size:1.25rem;cursor:pointer;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gris-clair);transition:all var(--duration-fast);box-shadow:var(--shadow-sm);z-index:10}.favorite-btn:hover{transform:scale(1.15);color:var(--terre-cuite)}.favorite-btn.active{color:var(--terre-cuite);background:var(--creme)}:root[data-theme=dark] .favorite-btn{background:var(--creme)}.detail-favorite-btn{position:absolute;top:var(--space-lg);right:calc(var(--space-lg) + 50px);background:var(--creme);border:none;font-size:1.5rem;cursor:pointer;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gris-clair);transition:all var(--duration-fast)}.detail-favorite-btn:hover{transform:scale(1.1);color:var(--terre-cuite)}.detail-favorite-btn.active{color:var(--terre-cuite)}.portions-selector{padding:var(--space-sm)!important}.portions-buttons{display:flex;gap:4px;margin-top:var(--space-xs)}.portion-btn{background:#fff;border:2px solid var(--creme-dark);padding:4px 10px;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;cursor:pointer;transition:all var(--duration-fast);color:var(--gris-chaud)}.portion-btn:hover{border-color:var(--olive-light);color:var(--olive)}.portion-btn.active{background:var(--olive);border-color:var(--olive);color:#fff}:root[data-theme=dark] .portion-btn{background:var(--kraft);border-color:#444}.portions-indicator{font-size:.85rem;font-weight:400;color:var(--terre-cuite);margin-left:var(--space-sm)}.owned-checkbox{appearance:none;-webkit-appearance:none;width:18px;height:18px;border:2px solid var(--creme-dark);border-radius:var(--radius-sm);cursor:pointer;position:relative;transition:all var(--duration-fast);background:#fff;flex-shrink:0}.owned-checkbox:hover{border-color:var(--olive-light)}.owned-checkbox:checked{background:var(--olive);border-color:var(--olive)}.owned-checkbox:checked:after{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:.7rem;font-weight:700}.grocery-list li{display:flex;align-items:center;gap:var(--space-sm)}.grocery-list li.owned{opacity:.6}.strikethrough{text-decoration:line-through;color:var(--gris-clair)}.owned-badge{font-size:.7rem;background:var(--olive-light);color:#fff;padding:2px 6px;border-radius:10px;margin-left:auto;white-space:nowrap}.owned-badge.purchased{background:var(--terre-cuite)}.grocery-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-md);margin-bottom:var(--space-md);flex-wrap:wrap}.grocery-header h2{margin-bottom:var(--space-xs)}.shopping-active{animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.8}}.add-item-form{display:flex;gap:var(--space-sm);margin-bottom:var(--space-lg);padding:var(--space-xs);background:#fff;border-radius:50px;align-items:center;border:2px solid var(--creme-dark);transition:all var(--duration-fast) var(--ease-out-expo);box-shadow:var(--shadow-sm)}.add-item-form:focus-within{border-color:var(--olive);box-shadow:var(--shadow-md),0 0 0 3px #4a5d321a}.add-item-input{flex:1;padding:var(--space-sm) var(--space-md);border:none;border-radius:50px;font-family:var(--font-body);font-size:.95rem;background:transparent;transition:all var(--duration-fast) var(--ease-out-expo);min-width:0}.add-item-input:focus{outline:none}.add-item-input::placeholder{color:var(--gris-clair)}.add-item-btn{flex-shrink:0;width:40px;height:40px;border-radius:50%;border:none;background:linear-gradient(135deg,var(--olive) 0%,var(--olive-dark) 100%);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--duration-fast) var(--ease-out-expo);box-shadow:0 2px 8px #4a5d324d}.add-item-btn:hover:not(:disabled){transform:scale(1.05);box-shadow:0 4px 12px #4a5d3266}.add-item-btn:active:not(:disabled){transform:scale(.95)}.add-item-btn:disabled{opacity:.3;cursor:not-allowed;transform:none!important;box-shadow:none!important}.add-item-icon{font-size:1.5rem;font-weight:300;line-height:1}.grocery-list li.custom-item{position:relative;background:linear-gradient(135deg,#d4a8531f,#d4a8530f);border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);padding-right:2.5rem;border-left:3px solid var(--safran);margin-left:0}.grocery-list li.custom-item .item-text{font-weight:500}.grocery-list li.custom-item:after{content:"ajouté";position:absolute;right:2rem;top:50%;transform:translateY(-50%);font-size:.6rem;text-transform:uppercase;letter-spacing:.5px;color:var(--safran-dark);opacity:.7;font-weight:600}.remove-custom-btn{position:absolute;right:var(--space-xs);top:50%;transform:translateY(-50%);width:22px;height:22px;border:none;background:transparent;color:var(--gris-clair);font-size:1rem;font-weight:400;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all var(--duration-fast) var(--ease-out-expo);opacity:.6}.remove-custom-btn:hover{background:var(--terre-cuite);color:#fff;opacity:1;transform:translateY(-50%) scale(1.1)}:root[data-theme=dark] .add-item-form{background:var(--kraft);border-color:#444}:root[data-theme=dark] .add-item-form:focus-within{border-color:var(--olive)}:root[data-theme=dark] .add-item-input{background:transparent;color:var(--anthracite)}:root[data-theme=dark] .add-item-btn{background:linear-gradient(135deg,var(--olive) 0%,var(--olive-dark) 100%)}:root[data-theme=dark] .grocery-list li.custom-item{background:linear-gradient(135deg,#d4a85326,#d4a85314);border-left-color:var(--safran)}:root[data-theme=dark] .grocery-list li.custom-item:after{color:var(--safran-light)}:root[data-theme=dark] .remove-custom-btn{color:var(--gris-clair)}:root[data-theme=dark] .remove-custom-btn:hover{background:var(--terre-cuite);color:#fff}:root[data-theme=dark] .owned-checkbox{background:var(--kraft);border-color:#444}.filter-btn[data-region=favoris].active{background:var(--terre-cuite);border-color:var(--terre-cuite)}@media(max-width:768px){.dark-mode-toggle{right:var(--space-md);width:40px;height:40px;font-size:1.25rem}.filters-row{gap:var(--space-sm)}.filter-group{flex:1;min-width:100px}.filter-group select{width:100%;min-width:unset}.detail-favorite-btn{right:calc(var(--space-md) + 45px);width:36px;height:36px;font-size:1.25rem}}@media(max-width:420px){.tabs{flex-wrap:nowrap;padding:var(--space-xs) var(--space-sm);gap:var(--space-xs)}.tab-btn{padding:var(--space-xs) var(--space-sm);font-size:.75rem;flex:1;text-align:center;white-space:nowrap}.tab-icon{margin-right:2px}.recipe-detail{padding:var(--space-sm)}.recipe-detail-content{padding:var(--space-md);margin:var(--space-md) 0;border-radius:var(--radius-md)}.recipe-detail-content h2{font-size:1.25rem;padding-right:80px}.close-btn{top:var(--space-md);right:var(--space-md);width:32px;height:32px;font-size:1rem}.detail-favorite-btn{top:var(--space-md);right:calc(var(--space-md) + 38px);width:32px;height:32px;font-size:1rem}.portions-buttons{flex-wrap:wrap}.portion-btn{padding:4px 8px;font-size:.8rem}header p{font-size:.8rem;padding:0 var(--space-lg)}.panel-actions{flex-wrap:wrap;gap:var(--space-xs)}.panel-actions .btn{font-size:.8rem;padding:var(--space-sm) var(--space-md)}.ingredients-list{grid-template-columns:1fr}.description-box{padding:var(--space-md);font-size:.9rem}}.welcome-modal{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-md);animation:fadeIn var(--duration-normal) var(--ease-out-expo)}.welcome-content{background:#fff;border-radius:var(--radius-lg);padding:var(--space-xl);max-width:520px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:modalSlideUp var(--duration-slow) var(--ease-out-expo)}.welcome-content h2{font-family:var(--font-display);font-size:1.75rem;color:var(--terre-cuite);margin-bottom:var(--space-md);text-align:center}.welcome-intro{text-align:center;color:var(--gris-chaud);margin-bottom:var(--space-lg);font-size:1.05rem;line-height:1.6}.welcome-steps{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-lg)}.welcome-step{display:flex;gap:var(--space-md);align-items:flex-start}.welcome-step-icon{flex-shrink:0;width:32px;height:32px;background:var(--olive);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem}.welcome-step strong{display:block;color:var(--anthracite);margin-bottom:var(--space-xs)}.welcome-step p{color:var(--gris-chaud);font-size:.9rem;margin:0;line-height:1.5}.welcome-note{background:linear-gradient(135deg,var(--creme) 0%,rgba(139,166,104,.15) 100%);padding:var(--space-md);border-radius:var(--radius-md);border-left:4px solid var(--olive);margin-bottom:var(--space-lg);font-size:.9rem;line-height:1.6}.welcome-note strong{color:var(--olive);display:block;margin-bottom:var(--space-xs)}.welcome-note em{color:var(--terre-cuite);font-style:normal;font-weight:600}.welcome-btn{width:100%;padding:var(--space-md) var(--space-lg);font-size:1.1rem;border-radius:var(--radius-md)}:root[data-theme=dark] .welcome-content{background:var(--kraft)}:root[data-theme=dark] .welcome-note{background:linear-gradient(135deg,var(--creme) 0%,rgba(139,166,104,.1) 100%)}@media(max-width:480px){.welcome-content{padding:var(--space-lg)}.welcome-content h2{font-size:1.4rem}.welcome-intro{font-size:.95rem}.welcome-step-icon{width:28px;height:28px;font-size:.8rem}}
