.meals-intro{margin:-4px 0 16px;color:var(--muted);font-size:13px}.meal-cards{display:flex;gap:14px;overflow-x:auto;padding:0 0 12px;scrollbar-width:thin;align-items:stretch}.meal-card{flex:0 0 258px;box-sizing:border-box;height:var(--meal-card-height,340px);max-height:400px;min-height:0;border:1px solid var(--line);border-radius:16px;background:#151d28;overflow:hidden;display:flex;flex-direction:column}.meal-picture{width:100%;height:72px;object-fit:cover;flex:none}.meal-body{padding:14px;display:flex;flex-direction:column;gap:9px;min-height:0;flex:1}.meal-body h3{margin:0;font-size:16px;overflow-wrap:anywhere}.meal-description{font-size:12px;line-height:1.5;color:#b4c0d0;margin:0;overflow-wrap:anywhere}.meal-details{min-height:0;overflow-y:auto;flex:1}.meal-author{font-size:10px;color:var(--muted);margin:7px 0}.meal-edit{align-self:flex-start;height:26px;font-size:11px!important;padding:0 8px!important}.meal-vote-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;flex:none}.meal-vote{height:auto!important;min-height:38px;font-size:11px!important;padding:6px!important}.meal-vote[aria-pressed=true]{background:#244c3c;border-color:#62d69a;color:#c4f1d8}.meal-voters{font-size:11px;color:#b9c7da;line-height:1.6;margin-top:8px}.meal-voters strong{color:#dfe7f1}.meal-voters span{display:inline-flex;align-items:center;gap:4px;margin-right:6px}.meal-voters img{width:18px;height:18px;border-radius:50%;object-fit:cover}.meal-empty{padding:24px;border:1px dashed var(--line);border-radius:14px;color:var(--muted);font-size:13px;width:100%}.meal-dialog{width:min(440px,calc(100% - 40px));box-sizing:border-box;background:#171e29;color:var(--text,#edf2fa);border:1px solid #364259;border-radius:18px;padding:24px;max-height:90vh;overflow:auto}.meal-dialog::backdrop{background:#060a12bb;backdrop-filter:blur(4px)}.meal-dialog form{display:grid;gap:16px}.meal-dialog h2{margin:0;font-size:20px}.meal-dialog label{display:grid;gap:7px;font-size:12px;color:#bfcbdb}.meal-dialog input,.meal-dialog textarea{box-sizing:border-box;width:100%;font:inherit;color:inherit;background:#10161f;border:1px solid #364259;border-radius:9px;padding:10px}.meal-dialog input[type=checkbox]{width:auto}.meal-dialog textarea{resize:vertical}.meal-dialog-actions{display:flex;justify-content:flex-end;gap:10px}.meal-dialog p{margin:0;font-size:12px;color:#f2b7aa}#mealPreview{width:100%;max-height:120px;object-fit:cover;border-radius:8px}#mealStatus{font-size:12px;color:var(--muted)}@media(max-width:600px){.meal-card{flex-basis:240px}}
/* Day selector, aligned avatar rows and leading proposals. */
.meal-days{display:flex;gap:8px;margin:0 0 16px}.meal-days .btn{min-width:100px;height:36px}.meal-days [aria-pressed=true]{background:#244c3c;border-color:#62d69a;color:#d0f5df}.meal-leading{border-color:#62d69a;box-shadow:inset 0 0 0 1px #62d69a}.meal-card-top{position:relative;flex:none;height:76px}.meal-card-top .meal-picture{height:76px;display:block}.meal-no-picture{display:flex!important;align-items:center;justify-content:center;background:linear-gradient(120deg,#273549,#172331);color:#a5b6cc;font-size:32px}.meal-author-avatar{position:absolute;right:10px;bottom:-12px;z-index:2}.meal-person{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;width:26px;height:26px;border-radius:50%;background:#253247;border:1px solid #4a5d73;color:#dce7f5;outline-offset:2px}.meal-person img{width:100%;height:100%;object-fit:cover;border-radius:50%}.meal-person-author{width:32px;height:32px;border:3px solid #151d28}.meal-tooltip{display:none;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:#080d15;color:#edf3fc;font-size:11px;line-height:1.4;padding:5px 8px;border:1px solid #46566d;border-radius:6px;white-space:nowrap;z-index:20;pointer-events:none}.meal-person:hover .meal-tooltip,.meal-person:focus .meal-tooltip{display:block}.meal-body{padding-top:18px;gap:10px}.meal-details{flex:1;min-height:0}.meal-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:6px}.meal-title-row h3{min-width:0}.meal-title-row .meal-edit{flex:none}.meal-winner{display:block;font-size:10px;color:#a9e9c7;margin-bottom:6px;font-weight:700}.meal-voter-section{flex:none;min-height:63px;border-top:1px solid #2d394a;padding-top:8px}.meal-voter-heading{display:flex;justify-content:space-between;font-size:10px;color:#a7b6c9;margin-bottom:7px}.meal-voter-avatars{display:flex;flex-wrap:wrap;align-content:flex-start;gap:5px;min-height:28px;max-height:62px;overflow-y:auto;padding:2px 0}.meal-no-votes{font-size:11px;color:var(--muted);line-height:26px}.meal-vote{width:100%;flex:none}.meal-ingredients{margin-top:10px;font-size:11px;color:#c3d0df}.meal-ingredients summary{cursor:pointer;font-size:10px;font-weight:700;color:#b6d7c8}.meal-ingredients p{white-space:pre-wrap;line-height:1.6;margin:7px 0 0;overflow-wrap:anywhere}.meal-ingredients-empty{font-size:10px;color:var(--muted);margin:10px 0 0}.meal-crop canvas{display:block;width:100%;height:auto;aspect-ratio:16/9;border-radius:10px;touch-action:none;cursor:grab}.meal-crop canvas:active{cursor:grabbing}.meal-crop{display:grid;gap:9px}.meal-crop p{color:var(--muted);font-size:11px}.meal-crop input[type=range]{padding:0;height:24px;accent-color:#62d69a}.meal-dialog small{line-height:1.5;color:var(--muted)}

.meal-card-top{height:auto;aspect-ratio:16/9}.meal-card-top .meal-picture{height:100%;object-fit:cover}
/* Shared scrollbar styling, including dialogs, cards, and horizontal lists. */
*{scrollbar-width:thin;scrollbar-color:#43536b #111823}
::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#111823;border-radius:8px}::-webkit-scrollbar-thumb{background:#43536b;border:2px solid #111823;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#657b9c}::-webkit-scrollbar-corner{background:#111823}
.meal-remove-image{justify-self:end;border:0;background:none;color:#d8a7a7;font:inherit;font-size:12px;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:3px}.meal-remove-image:hover{color:#ffc4c4}
.meal-shopping{border:1px solid #354157;border-radius:12px;padding:12px;margin:0;min-width:0}.meal-shopping legend{font-size:12px;color:#b8dfcc;font-weight:700}.meal-shopping>p{color:var(--muted);font-size:11px;margin:0 0 12px}.meal-shopping>.btn{margin-top:10px;height:30px;font-size:11px}.meal-ingredient-row{display:grid;grid-template-columns:minmax(120px,1fr) 70px 75px 90px 28px;gap:8px;align-items:end;margin-bottom:10px}.meal-ingredient-row label{min-width:0;font-size:10px}.meal-ingredient-row input,.meal-ingredient-row select{width:100%;height:36px;min-width:0;font-size:12px;padding:6px;box-sizing:border-box;background:#10161f;color:inherit;border:1px solid #364259;border-radius:8px}.meal-ingredient-row .btn{height:36px;width:28px;padding:0}.meal-dialog{width:min(620px,calc(100% - 32px))}.meal-ingredients ul{list-style:none;padding:0;margin:10px 0 0}.meal-ingredients li{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid #2c3849}.meal-ingredients li span:last-child{color:#a8b8ce;text-align:right;flex-shrink:0}
.meal-card{flex-basis:280px}.meal-card-top{height:100px;aspect-ratio:auto;isolation:isolate}.meal-card-top:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent,#080d15db);z-index:0;pointer-events:none}.meal-overlay-title{position:absolute;left:14px;right:50px;bottom:10px;margin:0;color:#fff;font-size:17px;line-height:1.25;overflow-wrap:anywhere;text-shadow:0 1px 8px #000;z-index:1;max-height:64px;overflow-y:auto}.meal-card-top .meal-picture{height:100%}.meal-author-avatar{z-index:3}.meal-body{padding-top:17px;gap:8px}.meal-description{font-size:13px;line-height:1.65;color:#c5d0df}.meal-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:none}.meal-card-actions .meal-vote{width:auto;min-height:28px!important;height:28px!important;font-size:11px!important;padding:0 10px!important}.meal-card-actions .meal-edit{margin-right:auto;height:28px}.meal-vote-flag{position:absolute;right:10px;top:9px;z-index:5;font-size:10px;font-weight:700;line-height:24px;background:#152234ed;border:1px solid #586e8c;color:#e4edf8;border-radius:6px;padding:0 8px;cursor:help}.meal-vote-tooltip{display:none;position:absolute;right:0;top:calc(100% + 5px);grid-template-columns:26px 1fr;align-items:center;gap:7px;background:#0b111b;border:1px solid #46566d;border-radius:9px;padding:10px;width:max-content;max-width:210px;max-height:180px;overflow-y:auto;font-weight:400;line-height:1.4;box-shadow:0 8px 24px #0008}.meal-vote-flag:hover .meal-vote-tooltip,.meal-vote-flag:focus .meal-vote-tooltip,.meal-vote-flag:focus-within .meal-vote-tooltip{display:grid}.meal-vote-tooltip .meal-tooltip{display:none!important}.meal-vote-tooltip .meal-person{width:24px;height:24px}.meal-winner{margin-bottom:8px}
@media(max-width:540px){.meal-ingredient-row{grid-template-columns:minmax(90px,1fr) 65px 70px 28px}.meal-ingredient-row label:first-child{grid-column:1 / -1}.meal-ingredient-row label:nth-child(4){grid-column:3}.meal-ingredient-row .btn{grid-column:4}.meal-card{flex-basis:260px}}

.meal-card{max-height:none}

.meal-crop canvas{aspect-ratio:960/344}

#mealStatus:empty{display:none}
/* Ingredient labels are shown once, and each row has a drag handle. */
.meal-shopping{overflow-x:auto}.meal-ingredient-head,.meal-ingredient-row{display:grid;grid-template-columns:22px minmax(130px,1fr) 65px 72px 90px 28px;gap:8px;align-items:center;min-width:470px}.meal-ingredient-head{font-size:10px;color:#a6b6cd;margin-bottom:8px}.meal-ingredient-row{margin-bottom:8px}.meal-row-handle{width:22px;border:0;background:none;color:#8da1bc;font-size:22px;cursor:grab;touch-action:none;padding:0}.meal-row-handle:active{cursor:grabbing}.meal-row-dragging{outline:1px solid #79a98f;background:#20362d;border-radius:8px;opacity:.85}.meal-overlay-title button{font:inherit;color:inherit;text-shadow:inherit;text-align:left;border:0;background:none;padding:0;cursor:pointer}.meal-card[data-meal-detail]{cursor:pointer}.meal-shopping-link{margin-top:12px;display:block;border:0;background:none;padding:0;color:#b6d7c8;font:inherit;font-size:11px;font-weight:700;cursor:pointer;text-align:left;text-decoration:underline;text-underline-offset:3px}.meal-detail-dialog{width:min(720px,calc(100% - 32px));padding:26px}.meal-detail-close{position:sticky;top:0;float:right;z-index:10;width:32px;height:32px;padding:0;background:#172230e8}.meal-detail-image{width:100%;max-height:260px;object-fit:cover;border-radius:12px;margin-bottom:18px}.meal-detail-dialog h2{font-size:24px;margin:0 40px 12px 0}.meal-detail-dialog h3{font-size:14px;margin:24px 0 12px;color:#c5dccf}.meal-detail-author{display:flex;align-items:center;gap:8px;color:#a3b5ca;font-size:12px}.meal-detail-description{white-space:pre-wrap;line-height:1.7;font-size:14px;color:#c9d3e1;overflow-wrap:anywhere;margin:18px 0!important}.meal-detail-table-wrap{overflow-x:auto}.meal-detail-table{width:100%;border-collapse:collapse;font-size:12px}.meal-detail-table th,.meal-detail-table td{padding:10px 8px;text-align:left;border-bottom:1px solid #304055}.meal-detail-table th{color:#95a9c2;font-size:10px}.meal-detail-table td:first-child{overflow-wrap:anywhere}.meal-detail-votes{display:grid;grid-template-columns:1fr 1fr;gap:20px}.meal-detail-voter{display:inline-flex;align-items:center;gap:7px;margin:0 12px 10px 0;font-size:12px}.meal-detail-votes p{color:#a1b1c5}.meal-detail-author .meal-person-author{border-color:#364357}@media(max-width:540px){.meal-ingredient-row{grid-template-columns:22px minmax(130px,1fr) 65px 72px 90px 28px}.meal-detail-votes{grid-template-columns:1fr;gap:0}}

.meal-detail-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;clear:both}.meal-detail-heading h2{margin:0;min-width:0;overflow-wrap:anywhere}.meal-detail-heading .meal-detail-author{justify-content:flex-end;text-align:right;margin-left:auto;flex-shrink:0}.meal-detail-dialog .meal-detail-description{color:#c9d3e1}.meal-detail-dialog .meal-detail-close{font-size:28px;line-height:1;width:38px;height:38px;display:flex;align-items:center;justify-content:center;padding:0}@media(max-width:480px){.meal-detail-heading{flex-wrap:wrap}.meal-detail-heading .meal-detail-author{font-size:11px}}

.meal-detail-dialog .meal-detail-close{position:absolute;float:none;top:34px;right:34px;z-index:10;background:#101a28df;box-shadow:0 2px 10px #0004}.meal-detail-image{display:block}.meal-detail-dialog:not(:has(.meal-detail-image)) .meal-detail-close{top:14px;right:14px}.meal-detail-dialog:not(:has(.meal-detail-image)) .meal-detail-heading{padding-right:38px}

.meal-detail-dialog .meal-detail-close{font-size:0;line-height:0;box-sizing:border-box}.meal-detail-dialog .meal-detail-close::before,.meal-detail-dialog .meal-detail-close::after{content:"";position:absolute;left:50%;top:50%;width:18px;height:2px;border-radius:1px;background:currentColor;transform:translate(-50%,-50%) rotate(45deg)}.meal-detail-dialog .meal-detail-close::after{transform:translate(-50%,-50%) rotate(-45deg)}

.meal-add-card{background:#0e151e;border:1px dashed #354459;color:#92a5bf;align-items:center;justify-content:center;gap:12px;padding:24px;font:inherit;font-size:13px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.meal-add-card:hover:not(:disabled){background:#172131;border-color:#7e96b7;color:#e0e9f7}.meal-add-card:focus-visible{outline:2px solid #9bb2dc;outline-offset:3px}.meal-add-plus{font-size:54px;font-weight:300;line-height:1}.meal-add-card:disabled{opacity:.5;cursor:default}
.meal-author-avatar .meal-edit{height:28px;padding:0 9px!important;background:#1b2a3c;border-color:#536b87}.meal-voter-stack{display:flex;align-items:center;min-width:0;flex:1;height:32px;padding-left:2px;margin-right:8px}.meal-stack-person{position:relative;flex:0 0 28px;margin-left:-8px}.meal-stack-person:first-child{margin-left:0}.meal-stack-person .meal-person{width:28px;height:28px;border:2px solid #172130;box-sizing:border-box}.meal-stack-author .meal-person{border-color:#62d69a;box-shadow:0 0 0 1px #62d69a}.meal-stack-person:hover,.meal-stack-person:focus-within{z-index:8}.meal-stack-overflow{position:relative;flex:0 0 28px;height:28px;display:flex;align-items:center;justify-content:center;border:2px solid #172130;border-radius:50%;background:#3b4c63;color:#e8f0fb;font-size:10px;margin-left:-8px;box-sizing:border-box}.meal-stack-overflow:hover .meal-tooltip,.meal-stack-overflow:focus .meal-tooltip{display:block}.meal-stack-empty{font-size:10px;color:var(--muted)}.meal-card-actions .meal-vote{flex:none}.meal-voter-stack .meal-tooltip{left:0;transform:none;white-space:normal;min-width:80px;max-width:180px}

.meal-card .meal-author-avatar{top:9px;bottom:auto;right:88px;opacity:0;pointer-events:none;transition:opacity .12s ease;z-index:8}.meal-card:hover .meal-author-avatar,.meal-card:focus-within .meal-author-avatar{opacity:1;pointer-events:auto}.meal-card .meal-author-avatar .meal-edit{height:26px;line-height:24px;font-size:10px!important;white-space:nowrap}.meal-card .meal-vote-flag{min-width:65px;box-sizing:border-box;text-align:center}@media(hover:none){.meal-card .meal-author-avatar{opacity:1;pointer-events:auto}}
.meal-card .meal-author-avatar{right:10px}.meal-card-actions{justify-content:space-between}.meal-voter-stack{position:relative;justify-content:flex-end;margin-right:0;margin-left:10px;min-width:28px}.meal-stack-tooltip{display:none;position:absolute;right:0;bottom:calc(100% + 8px);padding:9px 12px;min-width:110px;max-width:210px;max-height:200px;overflow-y:auto;background:#101a28;color:#eef4ff;border:1px solid #52657e;border-radius:8px;box-shadow:0 6px 20px #0008;font-size:11px;line-height:1.6;z-index:30;pointer-events:none}.meal-stack-tooltip>span{display:block;white-space:nowrap}.meal-voter-stack:hover .meal-stack-tooltip,.meal-voter-stack:focus .meal-stack-tooltip,.meal-voter-stack:focus-within .meal-stack-tooltip{display:block}.meal-voter-stack .meal-person{pointer-events:none}

.meal-card-actions .meal-voter-stack{justify-content:flex-start;margin-left:0;margin-right:8px}.meal-voter-stack .meal-stack-tooltip{left:0;right:auto}.meal-card-actions>.meal-vote{margin-left:auto}
.meal-overlay-title{overflow:visible;max-height:none;right:14px;display:flex;align-items:center;gap:7px}.meal-overlay-title>button{min-width:0}.meal-overlay-title .warning-icon.meal-incomplete{position:relative;left:auto;top:auto;flex:none;vertical-align:middle;text-shadow:none}.meal-overlay-title .warning-tooltip{top:auto;bottom:calc(100% + 7px);left:auto;right:0}.meal-detail-edit{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:5px;margin-left:5px}.meal-detail-edit svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.meal-example-card{border-style:dashed}.meal-example-label{display:block;font-size:10px;color:#c8b98b;margin-bottom:8px}

.meal-card.meal-leading{position:relative;border-color:#62d69a;box-shadow:none}.meal-card.meal-leading::after{content:"";position:absolute;inset:0;border:1px solid #62d69a;border-radius:inherit;box-sizing:border-box;z-index:20;pointer-events:none}
