
.meal-tool .page-banner {padding-bottom:38px}
.meal-content {background:var(--cream);padding:0 0 88px}
.meal-layout {display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:28px;align-items:start}
.meal-card {border:1px solid var(--line);border-radius:12px;background:var(--white);padding:30px;box-shadow:var(--shadow-soft);min-width:0}
.meal-card h2 {font:800 24px/1.5 var(--font-display);margin:0 0 22px}
.meal-modes {display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.meal-mode {padding:11px 17px;min-height:46px;border:0;border-radius:var(--radius-full);background:var(--cream);font:800 15px var(--font-body);color:var(--brown);cursor:pointer}
.meal-mode[aria-pressed=true] {background:var(--honey);color:var(--dark)}
.meal-field {display:block;margin-bottom:18px}
.meal-field span {display:block;margin-bottom:8px;font-size:16px;font-weight:800}
.meal-field select {width:100%;min-height:50px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:var(--cream);color:var(--dark);font:600 17px var(--font-body)}
.meal-field select:disabled {opacity:.5;cursor:default}
.meal-type-group {border:0;padding:0;margin:0 0 18px;min-width:0}
.meal-type-group legend {padding:0;margin-bottom:8px;font-size:16px;font-weight:800}
.meal-type-group legend span {font-size:13px;font-weight:700;color:var(--brown);margin-left:8px;padding:3px 8px;background:var(--honey-glow);border-radius:var(--radius-full)}
.meal-type-help {font-size:14px;color:var(--brown);margin:0 0 12px}
.meal-type-options {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.meal-type-option {display:flex;align-items:center;gap:8px;min-width:0;min-height:48px;padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--cream);font:700 14px/1.55 var(--font-body);color:var(--brown);cursor:pointer}
.meal-type-option input {width:18px;height:18px;flex-shrink:0;margin:0;accent-color:var(--amber);cursor:pointer}
.meal-type-option span {min-width:0;overflow-wrap:anywhere}
.meal-type-option:has(input:checked) {background:var(--honey-glow);border-color:var(--honey);color:var(--dark)}
.meal-type-option:focus-within {outline:3px solid var(--amber);outline-offset:3px}
.meal-type-group:disabled {opacity:.55}
.meal-type-group:disabled .meal-type-option,.meal-type-group:disabled input {cursor:default}
.meal-type-footer {display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:8px}
.meal-type-footer p {font-size:13px;line-height:1.6;color:var(--brown);margin:0}
.meal-type-footer .meal-text-button {font-size:13px;white-space:nowrap;flex-shrink:0}
.meal-type-footer button:disabled {opacity:.45;cursor:default}
.meal-pool {display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:7px;font-size:15px;color:var(--brown)}
.meal-pool strong {font-weight:800;color:var(--dark);background:var(--honey-glow);padding:4px 12px;border-radius:var(--radius-full)}
.meal-small {color:var(--brown);font-size:15px;line-height:1.8;margin-top:16px}
.meal-result {position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:var(--dark);color:var(--white);border-color:var(--dark);min-height:470px;overflow:hidden;padding:38px 28px}
.meal-result::before {content:'';position:absolute;width:220px;height:220px;background:var(--dark-soft);border-radius:50%;top:-110px;right:-100px;pointer-events:none}
.meal-result .mini-label {color:var(--honey);position:relative}
.meal-plate {position:relative;display:flex;align-items:center;justify-content:center;width:140px;height:140px;border:10px solid var(--honey-glow);border-radius:50%;background:var(--cream);box-shadow:0 10px 0 rgba(0,0,0,.14);margin:8px 0 26px;font-size:64px}
.meal-result h2 {position:relative;font:800 clamp(30px,4.8vw,48px)/1.35 var(--font-display);margin-bottom:14px;overflow-wrap:anywhere;max-width:100%}
.meal-result-note {color:rgba(255,255,255,.8);font-size:17px;max-width:400px;min-height:30px;position:relative}
.meal-tags {display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:20px;position:relative}
.meal-tags span {border:1px solid rgba(255,255,255,.22);padding:5px 13px;border-radius:var(--radius-full);font-size:14px;color:var(--honey-glow)}
.meal-actions {display:flex;gap:12px;flex-wrap:wrap;margin-top:26px;align-items:center}
.meal-actions .btn {min-height:50px;border:2px solid transparent;font:800 17px var(--font-body);cursor:pointer}
.meal-actions .btn-secondary {border-color:var(--honey-glow);background:var(--white)}
.meal-actions .btn:disabled {opacity:.5;cursor:default;transform:none;box-shadow:none}
.meal-map {font-size:16px;font-weight:800;text-decoration:underline;text-underline-offset:5px;color:var(--brown);padding:10px 0}
.meal-status {min-height:32px;font-size:16px;color:var(--brown);margin:14px 0 0;overflow-wrap:anywhere}
.meal-tool [hidden] {display:none!important}
.meal-custom {margin-top:28px}
.meal-custom summary {font:800 21px/1.5 var(--font-display);cursor:pointer}
.meal-custom label {display:block;font-weight:700;font-size:16px;margin:20px 0 10px}
.meal-custom textarea {display:block;width:100%;padding:16px;min-height:160px;resize:vertical;max-width:100%;font:500 17px/1.8 var(--font-body);border:1px solid var(--line);border-radius:16px;background:var(--cream);color:var(--dark)}
.meal-custom-actions {display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.meal-custom-actions button {min-height:46px;border:0;padding:11px 17px;border-radius:var(--radius-full);background:var(--honey);color:var(--dark);font:800 15px var(--font-body);cursor:pointer}
.meal-custom-actions button+button {background:var(--honey-glow)}
.meal-history {margin-top:28px}
.meal-history h2 {font:800 19px/1.5 var(--font-display);margin-bottom:12px}
.meal-history ul {list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.meal-history li {max-width:100%;overflow-wrap:anywhere;padding:6px 13px;font-size:15px;font-weight:700;background:var(--white);border:1px solid var(--honey-glow);border-radius:var(--radius-full);color:var(--brown)}
.meal-text-button {border:0;background:transparent;padding:6px 0;color:var(--brown);font:800 15px var(--font-body);text-decoration:underline;text-underline-offset:4px;cursor:pointer;min-height:44px}
.is-choosing .meal-plate {animation:meal-wobble .42s ease-in-out}
@keyframes meal-wobble {0%,100%{transform:rotate(0)}25%{transform:rotate(-12deg) scale(.92)}75%{transform:rotate(12deg) scale(1.04)}}
@media(max-width:800px) {.meal-layout {grid-template-columns:1fr;gap:20px}.meal-result {min-height:370px}.meal-plate {width:120px;height:120px;font-size:54px}.meal-card {padding:26px}}
@media(max-width:520px) {.meal-card {padding:22px;border-radius:12px}.meal-result {padding:30px 20px;min-height:360px}.meal-actions .btn {flex:1 1 auto}.meal-map {width:100%;text-align:center}.meal-content {padding-bottom:56px}.meal-modes {gap:7px}.meal-mode {padding:10px 15px}}
@media(prefers-reduced-motion:reduce) {.is-choosing .meal-plate {animation:none}}


.meal-result{background:var(--accent-soft);border-color:var(--line);color:var(--text)}.meal-result-note{color:var(--muted)}.meal-result .mini-label{color:var(--accent)}.meal-tags span{color:var(--accent);border-color:var(--line)}.meal-result:before{background:var(--soft)}
