/* NutriSavvy Members: shared styles (both sites)
   Brand: pink #d879a1 (buttons, switches, light boxes), orange #f27405 (titles), dark green #4e7425 (links and small text),
   3-color top stripe orange / pink / green. Text on pink is near-black #1f1f1f.
   The theme restyles buttons (black on hover), inputs and checkboxes, so everything interactive here uses !important. */
.nsm{
  --nsm-pink:#d879a1; --nsm-pink-light:#e7a3c1; --nsm-pink-50:#fcf0f5; --nsm-pink-line:#f3d3e1; --nsm-pink-text:#a8476f;
  --nsm-orange:#f27405; --nsm-leaf:#7faf42; --nsm-green:#4e7425; --nsm-green-50:#f7fbf1; --nsm-green-line:#dbe8c8;
  --nsm-ink:#1f1f1f; --nsm-muted:#5a5a5a; --nsm-line:#e6e1e3; --nsm-red:#b3261e; --nsm-red-50:#fdf1f0; --nsm-deep:#c45400;
  font-family:inherit; font-size:16px; line-height:1.5; color:var(--nsm-ink); color-scheme:light;
  -webkit-text-size-adjust:100%; text-align:left;
}
.nsm *, .nsm *::before, .nsm *::after{box-sizing:border-box}
.nsm [hidden]{display:none !important}
.nsm p, .nsm h2, .nsm h3, .nsm h4, .nsm ul, .nsm li, .nsm fieldset, .nsm legend{margin:0;padding:0;border:0;background:none;text-transform:none;letter-spacing:normal;font-family:inherit}
.nsm p + p{margin-top:10px}
.nsm ul{list-style:none}

/* ---------- Box and headings ---------- */
.nsm-box{background:#fff;border:1px solid var(--nsm-line);border-radius:16px;overflow:hidden;max-width:900px;margin:0 auto 24px;box-shadow:0 2px 10px rgba(0,0,0,.05)}
.nsm-stripe{height:6px;background:linear-gradient(90deg,var(--nsm-orange) 0 33.3%,var(--nsm-pink) 33.3% 66.6%,var(--nsm-leaf) 66.6% 100%)}
.nsm-pad{padding:24px 28px 26px}
.nsm .nsm-h{font-size:1.6rem !important;line-height:1.2 !important;font-weight:700 !important;color:var(--nsm-orange) !important;margin:0 0 10px !important}
.nsm .nsm-h3{font-size:1.15rem !important;line-height:1.3 !important;font-weight:700 !important;color:var(--nsm-ink) !important;margin:22px 0 10px !important}
.nsm .nsm-h4{font-size:1.05rem !important;font-weight:700 !important;color:var(--nsm-red) !important;margin:0 0 6px !important}
.nsm a:not(.nsm-btn):not(.nsm-card), .nsm a:not(.nsm-btn):not(.nsm-card):visited{color:var(--nsm-green) !important;text-decoration:underline !important;text-underline-offset:2px;background:none !important;font-weight:600}
.nsm a:not(.nsm-btn):not(.nsm-card):hover, .nsm a:not(.nsm-btn):not(.nsm-card):focus{color:var(--nsm-pink) !important;background:none !important}
.nsm-back{margin:0 0 12px !important;font-size:.92rem}
.nsm-edu{margin-top:22px !important;padding-top:14px !important;border-top:1px solid var(--nsm-line) !important;font-size:.85rem;color:var(--nsm-muted)}
.nsm-small{font-size:.9rem;margin-top:12px !important}
.nsm-empty{padding:18px;border:1px dashed var(--nsm-pink-line) !important;border-radius:12px;background:var(--nsm-pink-50) !important;color:var(--nsm-muted);margin:6px 0 14px !important}
.nsm-note{background:var(--nsm-pink-50) !important;border:1px solid var(--nsm-pink-line) !important;border-radius:10px;padding:10px 14px !important;margin:10px 0 !important;font-size:.92rem}
.nsm-welcome{background:var(--nsm-green-50) !important;border:1px solid var(--nsm-green-line) !important;border-radius:10px;padding:12px 14px !important;margin:6px 0 16px !important;color:var(--nsm-ink)}

/* ---------- Buttons ---------- */
.nsm .nsm-btn, .nsm a.nsm-btn, .nsm button.nsm-btn{
  display:inline-flex !important;align-items:center;justify-content:center;gap:6px;
  min-height:46px;padding:11px 22px !important;border-radius:999px !important;cursor:pointer;
  font-family:inherit !important;font-size:1rem !important;font-weight:700 !important;line-height:1.2 !important;
  text-decoration:none !important;text-transform:none !important;letter-spacing:normal !important;text-shadow:none !important;box-shadow:none !important;
  margin:0 !important;width:auto !important;border:2px solid var(--nsm-pink) !important;transition:background .15s,border-color .15s;
}
.nsm .nsm-solid{background:var(--nsm-pink) !important;color:var(--nsm-ink) !important}
.nsm .nsm-solid:hover, .nsm .nsm-solid:focus{background:var(--nsm-pink-light) !important;border-color:var(--nsm-pink-light) !important;color:var(--nsm-ink) !important}
.nsm .nsm-outline{background:#fff !important;color:var(--nsm-ink) !important}
.nsm .nsm-outline:hover, .nsm .nsm-outline:focus{background:var(--nsm-pink-50) !important;border-color:var(--nsm-pink-text) !important;color:var(--nsm-ink) !important}
.nsm .nsm-btn[disabled]{opacity:.5;cursor:not-allowed}
.nsm .nsm-btn.nsm-small{min-height:38px;padding:7px 14px !important;font-size:.9rem !important}
.nsm .nsm-danger-btn{background:var(--nsm-red) !important;border-color:var(--nsm-red) !important;color:#fff !important}
.nsm .nsm-danger-btn:hover, .nsm .nsm-danger-btn:focus{background:#8c1d17 !important;border-color:#8c1d17 !important;color:#fff !important}
.nsm .nsm-del:hover, .nsm .nsm-del:focus{border-color:var(--nsm-red) !important;color:var(--nsm-red) !important;background:var(--nsm-red-50) !important}
/* Text-only buttons that look like links */
.nsm .nsm-linkbtn, .nsm .nsm-linkbtn:hover, .nsm .nsm-linkbtn:focus, .nsm .nsm-linkbtn:active{background:transparent !important;border:0 !important;box-shadow:none !important;padding:0 !important;margin:0 !important;min-height:0 !important;width:auto !important;line-height:inherit !important;letter-spacing:normal !important;text-transform:none !important}
.nsm .nsm-linkbtn{font:inherit !important;font-weight:600 !important;color:var(--nsm-green) !important;text-decoration:underline !important;text-underline-offset:2px;cursor:pointer}
.nsm .nsm-linkbtn:hover, .nsm .nsm-linkbtn:focus{color:var(--nsm-pink) !important}
.nsm .nsm-x, .nsm .nsm-x:hover, .nsm .nsm-x:focus{background:#fff !important;box-shadow:none !important;letter-spacing:normal !important;text-transform:none !important;width:auto !important;margin:0 !important}
.nsm .nsm-x{border:1px solid var(--nsm-line) !important;border-radius:999px !important;color:var(--nsm-muted) !important;font:inherit !important;font-size:.85rem !important;font-weight:600 !important;padding:5px 12px !important;line-height:1.2 !important;cursor:pointer;min-height:0 !important}
.nsm .nsm-x:hover, .nsm .nsm-x:focus{border-color:var(--nsm-red) !important;color:var(--nsm-red) !important}
.nsm button:focus-visible, .nsm a:focus-visible, .nsm input:focus-visible, .nsm select:focus-visible, .nsm textarea:focus-visible,
.nsm .nsm-chip:focus-within, .nsm .nsm-seg-opt:focus-within, .nsm .nsm-check input:focus-visible ~ .nsm-check-box{outline:3px solid var(--nsm-orange) !important;outline-offset:2px}
.nsm-actions, .nsm-row-btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px !important}

/* ---------- Fields ---------- */
.nsm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px 18px}
.nsm-grid-2{grid-template-columns:2fr 1fr}
.nsm-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.nsm-wide{margin-top:14px}
.nsm .nsm-lbl{display:block;font-weight:700 !important;font-size:.92rem !important;color:var(--nsm-ink) !important;margin:0 !important;text-transform:none !important;letter-spacing:normal !important}
.nsm-help{font-size:.8rem;color:var(--nsm-muted)}
.nsm .nsm-input{
  width:100% !important;max-width:100%;min-height:44px;margin:0 !important;padding:9px 12px !important;
  font:inherit !important;font-size:1rem !important;line-height:1.3 !important;color:var(--nsm-ink) !important;
  background:#fff !important;border:1.5px solid #cfc7cb !important;border-radius:10px !important;box-shadow:none !important;
  -webkit-appearance:none;appearance:none;
}
.nsm select.nsm-input{padding-right:34px !important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%234e7425' stroke-width='2'/%3E%3C/svg%3E") !important;background-repeat:no-repeat !important;background-position:right 12px center !important}
.nsm textarea.nsm-input{min-height:90px;resize:vertical}
.nsm .nsm-input:focus{border-color:var(--nsm-pink) !important;outline:none}
.nsm .nsm-input-short{max-width:140px !important}
.nsm .nsm-input-big{font-size:1.1rem !important;font-weight:600 !important}
.nsm-bad .nsm-input{border-color:var(--nsm-red) !important;background:var(--nsm-red-50) !important}
.nsm-err{color:var(--nsm-red);font-size:.85rem;font-weight:600}
.nsm .nsm-msg{margin-top:12px !important;font-weight:600;padding:10px 14px !important;border-radius:10px}
.nsm .nsm-msg-ok{background:var(--nsm-green-50) !important;color:var(--nsm-green);border:1px solid var(--nsm-green-line) !important}
.nsm .nsm-msg-err{background:var(--nsm-red-50) !important;color:var(--nsm-red);border:1px solid #f1c9c6 !important}

/* Choice controls: a <label> with the real input stretched invisibly over it (works with any theme's checkbox styles) */
.nsm-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}
.nsm .nsm-chip, .nsm .nsm-seg-opt, .nsm .nsm-check{text-transform:none !important;letter-spacing:normal !important;font-size:1rem !important;font-weight:400}
.nsm-chip, .nsm-seg-opt{position:relative;display:inline-flex !important;align-items:center;cursor:pointer;user-select:none;margin:0 !important}
.nsm-chip input, .nsm-seg-opt input, .nsm-check input{position:absolute !important;inset:0 !important;width:100% !important;height:100% !important;margin:0 !important;padding:0 !important;opacity:0 !important;cursor:pointer;z-index:1;-webkit-appearance:none;appearance:none;border:0 !important;background:none !important}
.nsm-chip span{display:inline-block;padding:7px 14px;border:1.5px solid #cfc7cb;border-radius:999px;background:#fff;font-size:.92rem;font-weight:600;line-height:1.2;transition:background .12s,border-color .12s}
.nsm-chip:hover span{border-color:var(--nsm-pink)}
.nsm-chip.is-on span{background:var(--nsm-pink-50);border-color:var(--nsm-pink);color:var(--nsm-ink)}
.nsm-chip.is-on span::before{content:"✓ ";color:var(--nsm-pink-text);font-weight:800}
.nsm-seg{display:inline-flex;border:1.5px solid #cfc7cb;border-radius:999px;padding:3px;background:#fff;align-self:flex-start}
.nsm-seg-opt span{display:inline-block;padding:7px 16px;border-radius:999px;font-weight:600;font-size:.95rem;line-height:1.2}
.nsm-seg-opt.is-on span, .nsm-seg-opt input:checked + span{background:var(--nsm-pink);color:var(--nsm-ink)}
.nsm-bad .nsm-seg{border-color:var(--nsm-red)}
.nsm-check{position:relative;display:flex !important;gap:12px;align-items:flex-start;margin:18px 0 6px !important;padding:14px 16px;background:var(--nsm-pink-50);border:1px solid var(--nsm-pink-line);border-radius:12px;cursor:pointer}
.nsm-check input{z-index:1}
.nsm-check-box{flex:none;width:24px;height:24px;margin-top:1px;border:2px solid var(--nsm-pink-text);border-radius:6px;background:#fff;position:relative}
.nsm-check input:checked ~ .nsm-check-box{background:var(--nsm-pink);border-color:var(--nsm-pink)}
.nsm-check input:checked ~ .nsm-check-box::after{content:"";position:absolute;left:7px;top:2px;width:6px;height:12px;border:solid var(--nsm-ink);border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.nsm-check-text{font-size:.93rem;line-height:1.45}
.nsm-check-text a{position:relative;z-index:2}
.nsm-consent-done{margin:16px 0 4px !important;font-size:.9rem;color:var(--nsm-green);font-weight:600}

/* ---------- Members home ---------- */
.nsm-plan{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;padding:14px 18px;margin:8px 0 18px;border-radius:12px;background:var(--nsm-pink-50);border:1px solid var(--nsm-pink-line)}
.nsm-plan-lbl{color:var(--nsm-muted);font-size:.92rem}
.nsm-plan-use{color:var(--nsm-muted);font-size:.92rem}
.nsm-plan-btn{margin-left:auto}
.nsm-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.nsm-cards.nsm-cards-1{grid-template-columns:1fr}
.nsm-cards.nsm-cards-3{grid-template-columns:repeat(3,1fr)}
.nsm a.nsm-card, .nsm a.nsm-card:visited{display:flex;flex-direction:column;gap:6px;padding:18px 18px 16px;border:1.5px solid var(--nsm-line) !important;border-radius:14px;background:#fff !important;color:var(--nsm-ink) !important;text-decoration:none !important;transition:border-color .15s,box-shadow .15s}
.nsm a.nsm-card:hover, .nsm a.nsm-card:focus{border-color:var(--nsm-pink) !important;box-shadow:0 4px 14px rgba(216,121,161,.18) !important;background:#fff !important;color:var(--nsm-ink) !important}
.nsm-card-icon{color:var(--nsm-green);display:flex;width:44px;height:44px;align-items:center;justify-content:center;border-radius:12px;background:var(--nsm-green-50)}
.nsm-card-title{font-size:1.15rem;font-weight:700;color:var(--nsm-orange)}
.nsm-card-text{font-size:.93rem;color:var(--nsm-muted);flex:1}
.nsm-card-go{font-weight:700;color:var(--nsm-green);font-size:.93rem}
.nsm a.nsm-card:hover .nsm-card-go{color:var(--nsm-pink-text)}
.nsm-links{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;font-size:.95rem}
.nsm-danger{margin-top:14px;padding:16px 18px;border:1.5px solid #f1c9c6;border-radius:12px;background:var(--nsm-red-50)}
.nsm-danger .nsm-lbl{margin-top:10px !important}
.nsm-danger .nsm-input{margin-top:6px !important}

/* ---------- My Family ---------- */
.nsm-person{position:relative;margin:14px 0 0 !important;padding:16px 18px 18px !important;border:1.5px solid var(--nsm-line) !important;border-radius:14px !important;background:#fff}
.nsm-person-head{display:block;float:left;width:100%;margin:0 0 12px !important;padding:0 90px 0 0 !important;font-size:1.05rem;font-weight:700;color:var(--nsm-ink)}
.nsm-person-head + *{clear:both}
.nsm-person > .nsm-x{position:absolute;top:12px;right:14px}
.nsm-person .nsm-grid{clear:both}

/* ---------- My Recipes ---------- */
.nsm-list-top{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin:4px 0 14px}
.nsm-count{color:var(--nsm-muted);font-size:.93rem}
.nsm-upgrade{padding:16px 18px;border-radius:12px;background:var(--nsm-pink-50);border:1.5px solid var(--nsm-pink);margin:4px 0 14px}
.nsm-upgrade p{margin-top:6px !important}
.nsm-upgrade .nsm-btn{margin-top:4px !important}
.nsm-recipes{display:flex;flex-direction:column;gap:10px}
.nsm-recipe{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;padding:14px 16px !important;border:1.5px solid var(--nsm-line) !important;border-radius:12px}
.nsm-recipe-main{display:flex;flex-direction:column;min-width:0}
.nsm-recipe-title{font-weight:700;font-size:1.08rem;overflow-wrap:anywhere}
.nsm-recipe-meta{font-size:.85rem;color:var(--nsm-muted)}
.nsm-recipe-btns{display:flex;flex-wrap:wrap;gap:6px}
.nsm-ing-head{display:grid;grid-template-columns:90px 130px 1fr 36px;gap:8px;font-weight:700;font-size:.85rem;color:var(--nsm-muted);margin-bottom:4px}
.nsm-ing{display:grid;grid-template-columns:90px 130px 1fr 36px;gap:8px;align-items:center;margin-bottom:8px}
.nsm-ing .nsm-lbl.nsm-sr-first{position:absolute !important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.nsm .nsm-x-ing{width:36px !important;height:36px;padding:0 !important;font-size:1.2rem !important;line-height:1 !important;display:inline-flex;align-items:center;justify-content:center}
[data-k="ingredients"].nsm-bad .nsm-ing:first-child .nsm-input{border-color:var(--nsm-red) !important}

/* ---------- Small status link and goodbye note ---------- */
.nsm-status a{color:inherit;text-decoration:none}
.nsm-status a:hover{text-decoration:underline}
.nsm-toast{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:2147482000;max-width:calc(100% - 32px);background:#fff;border:1px solid var(--nsm-green-line);border-left:6px solid var(--nsm-leaf);border-radius:12px;padding:14px 18px;box-shadow:0 8px 30px rgba(0,0,0,.15);font-weight:600}
.nsm-pmpro-note{font-size:.9rem;color:#5a5a5a;margin:4px 0 10px}

/* ---------- Phones ---------- */
@media (max-width:640px){
  .nsm-pad{padding:18px 16px 20px}
  .nsm .nsm-h{font-size:1.35rem !important}
  .nsm-cards, .nsm-cards.nsm-cards-3{grid-template-columns:1fr}
  .nsm-grid-2{grid-template-columns:1fr}
  .nsm-plan-btn{margin-left:0;width:100%}
  .nsm-plan-btn .nsm-btn{width:100% !important}
  .nsm-ing-head{display:none}
  .nsm-ing{grid-template-columns:76px 1fr 36px;grid-template-areas:"a u x" "n n n";padding-bottom:10px;border-bottom:1px solid var(--nsm-line)}
  .nsm-ing-amt{grid-area:a}.nsm-ing-unit{grid-area:u}.nsm-ing-name{grid-area:n}.nsm-ing .nsm-x-ing{grid-area:x}
  .nsm-recipe-btns{width:100%}
  .nsm-row-btns .nsm-btn{flex:1 1 auto}
}

/* ---------- Printing one recipe ---------- */
.nsm-print{display:none}
@media print{
  html.nsm-printing body > *:not(.nsm-print){display:none !important}
  html.nsm-printing .nsm-print{display:block !important;font-family:Georgia,serif;color:#000;padding:0 8mm}
  .nsm-print h1{font-size:22pt;margin:0 0 4pt}
  .nsm-print h2{font-size:13pt;margin:14pt 0 4pt;border-bottom:1px solid #999}
  .nsm-print ul{padding-left:18pt}
  .nsm-print li{margin:2pt 0}
  .nsm-print-text{white-space:pre-wrap}
  .nsm-print-meta, .nsm-print-foot{color:#444;font-size:10pt}
}
