body{font-family:system-ui,sans-serif;max-width:760px;margin:0 auto;padding:16px;color:#17251e;background:#f7faf7}
h1{color:#1d5c3f} .badge{background:#fff3cd;border:1px solid #e0c25a;padding:10px;border-radius:8px}
section{background:#fff;border:1px solid #dbe7dc;border-radius:12px;padding:16px;margin:16px 0}
label{display:block;margin:10px 0} .check{display:flex;gap:8px;align-items:center}
input,select{padding:8px;border:1px solid #b9cdc0;border-radius:6px}
button{background:#1d5c3f;color:#fff;border:0;padding:10px 16px;border-radius:8px;cursor:pointer;margin:4px 4px 4px 0}
button.swap{background:#eef4ef;color:#1d5c3f;border:1px solid #1d5c3f;padding:6px 10px}
.day{border-top:2px solid #e3eee4;padding:10px 0}.meal{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px dashed #dbe7dc}
small{color:#5a6f61} #gateMsg{color:#8a1f1f;font-weight:600;white-space:pre-line}
a{color:#1d5c3f} button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #1d5c3f;outline-offset:2px}
.recipeBtn{background:none;border:0;color:#1d5c3f;cursor:pointer;font:inherit;font-weight:700;text-align:left;padding:0;text-decoration:underline}
#detailOverlay{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:flex-start;justify-content:center;padding:24px;z-index:10;overflow:auto}
#detailOverlay[hidden]{display:none}
#detailCard{background:#fff;border-radius:12px;max-width:560px;width:100%;padding:20px}
#catList .meal{cursor:default}
#chatLog{margin:12px 0}
.chat-user,.chat-ai{background:#eef4ef;border:1px solid #dbe7dc;border-radius:8px;padding:10px;margin:8px 0}
.chat-user{background:#fff;border-color:#b9cdc0}
#chatNeedsKey{background:#fff3cd;border:1px solid #e0c25a;border-radius:8px;padding:10px;margin:8px 0}
#chatSettings{background:#f7faf7;border:1px solid #dbe7dc;border-radius:8px;padding:12px;margin:8px 0}
@media (max-width:560px){body{padding:10px}section{padding:12px}}
fieldset{border:1px solid #dbe7dc;border-radius:8px} fieldset label{display:inline-flex;gap:6px;margin:4px 10px 4px 0}
button.mini{background:#eef4ef;color:#1d5c3f;border:1px solid #1d5c3f;padding:4px 8px;font-size:.85em}
@media print{body>*{display:none}main,#planSection{display:block!important}section>*{display:none}#shopping,#shopping li{display:block!important}h2{display:none}}
