:root{--green: #2e5e4e;--green-light: #eaf3ef;--amber: #8a6d1d;--amber-light: #fbf3e0;--red: #8b3a3a;--red-light: #fbeaea;--navy: #1f3b4d;--ink: #1c2529;--muted: #63706f;--line: #dfe5e3;--bg: #fbfcfb;--card: #ffffff;--radius: 10px;--shadow: 0 1px 2px rgba(28, 37, 41, .06), 0 4px 12px rgba(28, 37, 41, .04)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.6 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}.app{max-width:1180px;margin:0 auto;padding:28px 20px 80px}header.masthead{position:relative;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:22px}header.masthead h1{margin:0;font-size:30px;letter-spacing:-.02em;color:var(--navy)}header.masthead p{margin:4px 0 0;color:var(--muted)}.masthead-brand{display:flex;align-items:center;gap:12px}.masthead-logo{border-radius:10px}.masthead-session{position:absolute;top:0;right:0;display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted)}@media (max-width: 640px){.masthead-session{position:static;margin-top:10px}}.import-note{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--green-light);border-color:#cfe3da;color:var(--green);font-size:14px}nav.tabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:24px}nav.tabs button{background:transparent;border:1px solid transparent;border-radius:999px;padding:8px 16px;font-size:14px;font-weight:500;color:var(--muted);cursor:pointer}nav.tabs button:hover{background:var(--green-light);color:var(--green)}nav.tabs button[aria-selected=true]{background:var(--navy);color:#fff}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;margin-bottom:16px;box-shadow:var(--shadow)}.card h2{margin:0 0 6px;font-size:19px;color:var(--navy);letter-spacing:-.01em}.card h3{margin:18px 0 6px;font-size:15px;color:var(--navy)}.card p.lede{margin:0 0 14px;color:var(--muted)}.toolbar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.toolbar label{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:6px}.toolbar input[type=number]{width:62px;padding:5px 8px;border:1px solid var(--line);border-radius:6px;font:inherit}button.btn{background:var(--navy);color:#fff;border:0;border-radius:7px;padding:8px 14px;font-size:13px;font-weight:500;cursor:pointer}button.btn.ghost{background:transparent;color:var(--navy);border:1px solid var(--line)}button.btn:hover{opacity:.9}.plan-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.day-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}.day-card .day-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:8px}.day-card .day-label .weekend{color:var(--green)}.slot{margin-bottom:8px}.slot label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:2px}.slot select{width:100%;padding:5px 6px;border:1px solid var(--line);border-radius:6px;font:inherit;font-size:13px;background:#fff}.badge{display:inline-block;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:999px;margin-left:6px}.badge.batch{background:var(--amber-light);color:var(--amber)}.badge.quick{background:var(--green-light);color:var(--green)}.aisle{margin-bottom:20px}.aisle h3{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:6px;margin:0 0 8px}.grocery-item{display:flex;gap:10px;align-items:flex-start;padding:7px 0;border-bottom:1px solid #f2f5f4}.grocery-item input{margin-top:4px}.grocery-item .qty{font-variant-numeric:tabular-nums;color:var(--green);font-weight:600;min-width:62px}.grocery-item .name{font-weight:500}.grocery-item.done .name,.grocery-item.done .qty{text-decoration:line-through;opacity:.45}.grocery-item .nz{display:block;font-size:12px;color:var(--muted);margin-top:2px}.staple-flag{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--amber);margin-left:6px}.rule{border-left:3px solid;padding:10px 14px;border-radius:0 8px 8px 0;margin-bottom:8px}.rule h4{margin:0 0 3px;font-size:14px}.rule p{margin:0 0 4px;font-size:13px}.rule .why{font-size:12px;font-style:italic;color:var(--muted);margin:0}.meal-detail{font-size:14px}.meal-detail ol,.meal-detail ul{padding-left:20px;margin:6px 0}.meal-detail li{margin-bottom:4px}.chip{display:inline-block;font-size:11px;background:var(--green-light);color:var(--green);padding:2px 8px;border-radius:999px;margin:0 4px 4px 0}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 780px){.two-col{grid-template-columns:1fr}}.stance-for{border-left:3px solid var(--green)}.stance-against{border-left:3px solid var(--red)}.stance-mixed{border-left:3px solid var(--amber)}details.meal{border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin-bottom:8px;background:#fff}details.meal summary{cursor:pointer;font-weight:500}details.meal summary::marker{color:var(--muted)}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(180deg,var(--green-light),var(--bg) 55%)}.login-card{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:36px 34px;width:100%;max-width:400px;display:flex;flex-direction:column;gap:14px;text-align:center}.login-logo{margin:0 auto;border-radius:16px}.login-card h1{margin:0;font-size:28px;letter-spacing:-.02em;color:var(--navy)}.login-tagline{margin:0 0 8px;font-size:14px;color:var(--muted)}.login-card label{display:flex;flex-direction:column;gap:5px;text-align:left;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.login-card input{padding:10px 12px;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:15px}.login-card input:focus{outline:2px solid var(--green);outline-offset:0;border-color:var(--green)}.login-card button.btn{padding:11px 14px;font-size:14px;margin-top:4px}.login-error{margin:0;font-size:13px;color:var(--red);background:var(--red-light);border-radius:8px;padding:8px 12px}.login-disclaimer{margin:10px 0 0;font-size:12px;color:var(--muted)}.loading-note{color:var(--muted);font-size:14px}.disclaimer{background:var(--amber-light);border:1px solid #eadfbe;border-radius:var(--radius);padding:14px 18px;font-size:13px;color:#6d5615}.sources a{color:var(--navy);font-size:13px}.validation-ok{color:var(--green);font-weight:600}.validation-bad{color:var(--red);font-weight:600}
