:root { --meal-black:#0a0b0b; --meal-ink:#101514; --meal-green:#59e51b; --meal-green-dark:#1b6d08; --meal-paper:#f4f6f2; --meal-line:#d9dfd6; }
* { box-sizing:border-box; }
.meal-selection-page, .meal-admin-page { margin:0; background:var(--meal-paper); color:var(--meal-ink); font-family:'DM Sans',sans-serif; }
.meal-header { max-width:1240px; margin:0 auto; padding:20px 28px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--meal-line); }
.meal-brand img { display:block; width:148px; height:auto; }
.meal-back { color:var(--meal-ink); font-weight:700; text-decoration:none; }
.meal-hero, .meal-admin-hero { max-width:1240px; margin:0 auto; padding:78px 28px 42px; }
.meal-kicker { margin:0 0 12px; color:var(--meal-green-dark); font-size:.72rem; letter-spacing:.15em; font-weight:800; }
.meal-hero h1, .meal-admin-hero h1 { max-width:760px; margin:0; font-family:'Sora',sans-serif; font-size:clamp(2.5rem,6vw,5.5rem); line-height:.98; letter-spacing:-.065em; }
.meal-hero h1 em, .meal-admin-hero h1 em { color:var(--meal-green-dark); font-style:normal; }
.meal-hero > p:not(.meal-kicker), .meal-admin-hero > p:not(.meal-kicker) { max-width:650px; margin:22px 0 0; color:#4b5550; font-size:1.05rem; line-height:1.6; }
.meal-rule-strip { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.meal-rule-strip span { background:var(--meal-black); color:#fff; border-radius:999px; padding:9px 13px; font-size:.78rem; font-weight:700; }
.meal-catalog-section { max-width:1240px; margin:0 auto; padding:28px; }
.meal-section-heading { display:flex; justify-content:space-between; gap:26px; align-items:flex-end; margin-bottom:22px; }
.meal-section-heading h2, .meal-selection-lower h2, .meal-admin-card h2 { margin:0; font-family:'Sora',sans-serif; font-size:clamp(1.6rem,3vw,2.6rem); letter-spacing:-.05em; }
.meal-section-heading > p { max-width:300px; margin:0; color:#59615d; line-height:1.5; text-align:right; }
.meal-catalog { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.meal-card { min-width:0; overflow:hidden; background:#fff; border:1px solid var(--meal-line); border-radius:18px; display:flex; flex-direction:column; box-shadow:0 7px 22px rgba(22,33,25,.04); }
.meal-card.verified { border-top:5px solid var(--meal-green); }
.meal-card.draft { opacity:.76; background:#f7f8f6; }
.meal-card.allergy-conflict { outline:3px solid #bc3b2d; }
.meal-photo { height:210px; background:#e7ebe5; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.meal-photo img { width:100%; height:100%; object-fit:cover; }
.meal-photo-placeholder { height:100%; width:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; color:#88918a; background:repeating-linear-gradient(135deg,#eef0ed 0 14px,#e6e9e4 14px 28px); }
.meal-photo-placeholder span { font-size:.65rem; letter-spacing:.18em; font-weight:800; }
.meal-photo-placeholder strong { margin-top:6px; font-family:'Sora',sans-serif; font-size:1.1rem; }
.meal-card-body { padding:18px; }
.meal-card-heading { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.meal-status { margin:0 0 6px; color:var(--meal-green-dark); font-size:.67rem; font-weight:800; letter-spacing:.1em; }
.meal-card h3 { margin:0; font-family:'Sora',sans-serif; font-size:1.16rem; line-height:1.2; letter-spacing:-.03em; }
.allergy-flag { flex:0 0 auto; padding:5px 7px; border-radius:6px; background:#fde5df; color:#9f2e20; font-size:.67rem; font-weight:800; }
.meal-nutrition { display:grid; grid-template-columns:repeat(4,1fr); gap:4px; margin:18px 0 14px; padding:10px 0; border-top:1px solid var(--meal-line); border-bottom:1px solid var(--meal-line); }
.meal-nutrition div { min-width:0; }
.meal-nutrition dt { color:#647069; font-size:.57rem; font-weight:700; text-transform:uppercase; }
.meal-nutrition dd { margin:4px 0 0; font-weight:800; font-size:.86rem; }
.meal-details { display:grid; gap:7px; margin:12px 0 18px; }
.meal-details p, .meal-draft-copy { margin:0; color:#4f5b54; font-size:.78rem; line-height:1.45; }
.meal-select-line { display:flex; align-items:center; gap:8px; font-size:.83rem; font-weight:800; cursor:pointer; }
.meal-select-line input { accent-color:var(--meal-green-dark); width:17px; height:17px; }
.meal-select-line.disabled { color:#8a938c; cursor:not-allowed; }
.meal-quantity { display:flex; align-items:center; gap:9px; margin-top:13px; color:#536059; font-size:.75rem; font-weight:700; }
.meal-quantity button { width:28px; height:28px; border:1px solid var(--meal-ink); border-radius:50%; background:#fff; font-weight:800; cursor:pointer; }
.meal-quantity output { min-width:20px; text-align:center; font-weight:800; color:var(--meal-ink); }
.meal-unavailable { margin:17px 0 12px; color:#748077; font-size:.73rem; font-weight:700; }
.hidden { display:none !important; }
.meal-selection-lower { max-width:1240px; margin:0 auto; padding:50px 28px 80px; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(330px,.75fr); gap:24px; align-items:start; }
.meal-allergy-card, .meal-summary, .meal-admin-card { background:#fff; border:1px solid var(--meal-line); border-radius:20px; padding:28px; }
.meal-allergy-card > p:not(.meal-kicker) { color:#58625c; line-height:1.55; }
.meal-checkline { display:flex; align-items:center; gap:9px; margin:20px 0 14px; font-weight:800; font-size:.9rem; }
.meal-checkline input, .allergy-options input { accent-color:var(--meal-green-dark); width:16px; height:16px; }
.allergy-options { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }
.allergy-options label, .meal-verify-row label { display:flex; align-items:center; gap:7px; font-size:.8rem; font-weight:600; }
.meal-allergy-card label:not(.meal-checkline), .meal-admin-card label { display:grid; gap:7px; margin-top:16px; color:#39443e; font-size:.78rem; font-weight:800; }
.meal-allergy-card textarea, .meal-admin-card input, .meal-admin-card textarea, .meal-admin-card select { width:100%; border:1px solid #cbd2ca; border-radius:8px; background:#fff; padding:10px 11px; color:var(--meal-ink); font:inherit; resize:vertical; }
.cross-contact-panel { margin-top:22px; border-left:4px solid var(--meal-green); padding:14px 16px; background:#f2f8ec; }
.cross-contact-panel p { margin:7px 0 0; color:#435047; font-size:.83rem; line-height:1.45; }
.meal-summary { position:sticky; top:18px; background:var(--meal-black); color:#fff; border-color:var(--meal-black); }
.meal-summary .meal-kicker { color:var(--meal-green); }
.meal-summary h2 { color:#fff; }
.selected-meal-list { margin:20px 0; border-top:1px solid #2c3430; }
.selected-meal-list p { display:flex; justify-content:space-between; gap:12px; margin:0; padding:12px 0; border-bottom:1px solid #2c3430; font-size:.85rem; }
.selected-meal-list p span { color:#adbbb1; text-align:right; }
.summary-line { display:flex; justify-content:space-between; gap:16px; padding:10px 0; color:#cdd6d0; font-size:.86rem; }
.summary-line strong { color:#fff; text-align:right; }
.savings-line strong { color:var(--meal-green); }
.delivery-preview { margin:8px 0 12px; padding:10px; border-radius:8px; background:#1d2520; color:#c7d1c9; font-size:.76rem; line-height:1.5; }
.summary-note { margin:12px 0; color:#aeb9b0; font-size:.74rem; line-height:1.45; }
.meal-selection-status { margin:16px 0; font-size:.8rem; line-height:1.45; color:#49564d; }
.meal-summary .meal-selection-status { color:#dce5df; }
.meal-primary-button { width:auto; border:0; border-radius:9px; background:var(--meal-green); color:#081008; padding:13px 16px; font-family:'Sora',sans-serif; font-size:.8rem; font-weight:800; cursor:pointer; text-decoration:none; display:inline-flex; justify-content:center; align-items:center; gap:8px; }
.meal-primary-button:disabled { cursor:not-allowed; opacity:.45; }
.meal-summary .meal-primary-button { width:100%; }
.meal-admin-main { max-width:1240px; margin:0 auto; padding:0 28px 80px; }
.meal-admin-hero { padding-left:0; padding-right:0; }
.meal-admin-access { display:flex; align-items:flex-end; gap:16px; padding:20px; background:#fff; border:1px solid var(--meal-line); border-radius:18px; }
.meal-admin-access form { display:flex; align-items:flex-end; gap:12px; flex:1; }
.meal-admin-access label { display:grid; gap:7px; flex:1; font-size:.8rem; font-weight:800; }
.meal-admin-access input { border:1px solid #cbd2ca; border-radius:8px; padding:11px; font:inherit; }
.meal-admin-dashboard { margin-top:26px; }
.meal-admin-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.meal-admin-card { margin-top:20px; }
.meal-admin-card h2 { font-size:1.55rem; }
.meal-admin-card > p:not(.meal-kicker) { color:#566159; line-height:1.5; font-size:.86rem; }
.admin-schedule-list { margin-top:16px; border-top:1px solid var(--meal-line); }
.admin-schedule-list p { display:flex; justify-content:space-between; gap:10px; margin:0; padding:10px 0; border-bottom:1px solid var(--meal-line); font-size:.8rem; }
.admin-schedule-list button, .meal-lock-button { border:0; background:transparent; color:#a23628; font:inherit; font-weight:800; cursor:pointer; }
.meal-admin-catalog { display:grid; gap:10px; }
.meal-admin-slot { border:1px solid var(--meal-line); border-radius:12px; overflow:hidden; }
.meal-admin-slot summary { cursor:pointer; display:grid; grid-template-columns:70px 1fr auto; align-items:center; gap:12px; padding:14px; list-style:none; }
.meal-admin-slot summary::-webkit-details-marker { display:none; }
.meal-admin-slot summary span { color:var(--meal-green-dark); font-size:.72rem; font-weight:800; }
.meal-admin-slot summary strong { font-family:'Sora',sans-serif; }
.meal-admin-slot summary em { font-size:.68rem; font-style:normal; font-weight:800; }
.meal-admin-form-wrap { display:grid; grid-template-columns:180px 1fr; gap:20px; padding:20px; border-top:1px solid var(--meal-line); background:#fafbf9; }
.meal-admin-photo { min-height:160px; display:flex; flex-direction:column; gap:10px; }
.meal-admin-photo img, .meal-admin-photo .meal-photo-placeholder { width:100%; min-height:140px; object-fit:cover; border-radius:9px; overflow:hidden; }
.photo-upload-label { display:block !important; margin:0 !important; cursor:pointer; color:var(--meal-green-dark) !important; }
.photo-upload-label input { margin-top:6px; padding:5px !important; }
.meal-edit-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:0 14px; }
.meal-verify-row { display:flex; flex-wrap:wrap; gap:14px; margin:18px 0; }
.meal-verify-row input { accent-color:var(--meal-green-dark); }
.meal-form-note { min-height:1.1em; margin:10px 0 0; font-size:.8rem; }
.meal-form-note.success, .success { color:#277d12; }
.meal-form-note.warning, .warning { color:#a23628; }
.table-wrap { overflow:auto; }
.table-wrap table { width:100%; min-width:700px; border-collapse:collapse; font-size:.8rem; }
.table-wrap th, .table-wrap td { padding:10px; border-bottom:1px solid var(--meal-line); text-align:left; vertical-align:top; }
.table-wrap th { color:#5a665e; font-size:.7rem; text-transform:uppercase; letter-spacing:.06em; }
.meal-lock-button { margin:24px 0 0; }
@media (max-width:900px) { .meal-catalog { grid-template-columns:repeat(2,minmax(0,1fr)); } .meal-selection-lower { grid-template-columns:1fr; } .meal-summary { position:static; } .meal-admin-grid { grid-template-columns:1fr; } }
@media (max-width:620px) { .meal-header, .meal-hero, .meal-catalog-section, .meal-selection-lower, .meal-admin-main { padding-left:18px; padding-right:18px; } .meal-header { padding-top:14px; padding-bottom:14px; } .meal-brand img { width:120px; } .meal-hero { padding-top:55px; } .meal-section-heading { display:block; } .meal-section-heading > p { margin-top:12px; text-align:left; } .meal-catalog { grid-template-columns:1fr; } .meal-nutrition { gap:8px; } .allergy-options { grid-template-columns:repeat(2,1fr); } .meal-admin-access, .meal-admin-access form { display:block; } .meal-admin-access .meal-primary-button { margin-top:12px; width:100%; } .meal-admin-form-wrap { grid-template-columns:1fr; } .meal-edit-grid { grid-template-columns:1fr; } .meal-admin-slot summary { grid-template-columns:55px 1fr; } .meal-admin-slot summary em { grid-column:2; } }

.meal-cadence{display:grid;gap:8px;margin:18px 0 8px}.meal-cadence button{background:transparent;border:1px solid #56645b;color:#dce5df;cursor:pointer;font:700 .74rem 'DM Sans',sans-serif;padding:10px;text-align:left}.meal-cadence button.active{background:var(--meal-green);border-color:var(--meal-green);color:#081008}.cadence-note{color:#aeb9b0;font-size:.72rem;line-height:1.4;margin:8px 0 16px}.meal-photo-note{background:#eef4e9;color:#405047;font-size:.76rem;line-height:1.45;margin:12px 0;padding:10px}.meal-photo-note strong{color:#1b6d08}

/* Customer meal selection: controls stay visible before nutrition/details. */
.meal-cart-controls { margin:18px 0; padding:15px; background:#f2f8ec; border:1px solid #d0dfc7; border-radius:12px; }
.meal-cart-controls .meal-select-line { min-height:44px; font-size:.92rem; }
.meal-cart-controls .meal-select-input { width:23px; height:23px; flex:0 0 23px; margin:0; }
.meal-cart-controls .meal-quantity { flex-wrap:wrap; gap:8px; margin-top:8px; }
.meal-cart-controls .meal-quantity button { width:44px; height:44px; font-size:1.2rem; touch-action:manipulation; }
.meal-cart-controls .meal-quantity-input { width:56px; height:44px; padding:6px; border:1px solid #869780; border-radius:8px; background:#fff; color:var(--meal-ink); font:800 1rem 'DM Sans',sans-serif; text-align:center; }
.meal-cart-controls small { display:block; margin-top:12px; color:#455340; font-size:.73rem; line-height:1.5; }
.meal-cart-controls button:disabled, .meal-cart-controls input:disabled { cursor:not-allowed; opacity:.5; }
.meal-cart-controls .meal-unavailable { margin:12px 0 0; color:#59615d; line-height:1.5; }
.meal-selection-page .meal-card.draft { opacity:1; }

.meal-coming-soon { grid-column:1 / -1; margin-top:12px; border-top:1px solid var(--meal-line); padding-top:16px; }
.meal-coming-soon > summary { min-height:44px; padding:12px 0; cursor:pointer; color:var(--meal-green-dark); font-weight:800; }
.meal-coming-soon > p { margin:8px 0 20px; color:#4f5b54; font-size:.9rem; line-height:1.5; }
