.meal-components-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:start}.meal-slot{min-width:0}.meal-title{font-size:1.2rem;margin:0 0 18px}.component-list{display:grid;gap:14px}.component-card{border:1px solid var(--line,#d6dbcf);border-radius:16px;overflow:hidden;background:#fff}.component-card picture,.component-card img{display:block;width:100%}.component-image img{height:145px;object-fit:cover}.component-body{padding:16px}.component-body h4{font-family:Georgia,serif;font-size:1.35rem;line-height:1.3;margin:8px 0}.component-body h4 a{color:inherit;text-decoration:none}.component-meta{color:#657264;font-size:.9rem}.component-primary-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.component-primary-actions form{margin:0}.component-more{margin-top:14px;border-top:1px solid #e2e6dd;padding-top:12px}.component-more summary{cursor:pointer;min-height:36px}.component-more>form{margin:12px 0}.component-issue{padding:8px;background:#fff3df;color:#72562e;font-size:.85rem}.add-component{margin-top:16px}.meal-numbers{font-size:.85rem;margin-top:14px;color:#657264}.week-summary{border-top:1px solid #d6dbcf;padding:25px 0}.role-selector{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:24px 0}.role-selector select{max-width:100%;padding:12px;border-radius:8px;border:1px solid #bdc8b6}.component-card button:disabled{opacity:.5;cursor:not-allowed}.rebuild-list section{border-bottom:1px solid #d6dbcf;padding:16px 0}.component-more .portion-controls div{flex-wrap:wrap}a:focus-visible,button:focus-visible,summary:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #7c944f;outline-offset:3px}
@media(max-width:1000px){.meal-components-grid{grid-template-columns:1fr}.component-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.component-list{grid-template-columns:1fr}.component-card{display:grid;grid-template-columns:84px minmax(0,1fr);align-items:start}.component-image img{height:100px;border-radius:0 0 14px 0}.component-body{padding:14px 12px}.component-body h4{font-size:1.2rem;overflow-wrap:anywhere}.component-card:not(:has(.component-image)){display:block}.component-primary-actions .button{padding:10px 12px;min-height:44px}.component-more .portion-controls input{width:65px}.meal-slot{padding:12px}.day-nav{max-width:100%;overflow:auto}.role-selector{display:grid}.undo-bar{flex-wrap:wrap}.meal-title{padding:4px}.component-more .taste-form div{flex-wrap:wrap}.component-more .taste-form select{max-width:100%}}
