.living-dialog{--living-dialog-height:calc(var(--visual-viewport-height,100dvh) - 24px);position:fixed;inset:auto;left:50%;top:calc(var(--visual-viewport-top,0px) + var(--visual-viewport-height,100dvh)/2);transform:translate(-50%,-50%);margin:0;width:min(720px,calc(100% - 24px));max-height:var(--living-dialog-height);padding:0;border:1px solid var(--line);border-radius:22px;background:var(--surface);color:var(--text);overflow:hidden;box-shadow:0 20px 70px #0004}.living-dialog::backdrop{background:#071c13aa}.living-dialog form{display:flex;flex-direction:column;min-width:0;max-height:calc(var(--living-dialog-height) - 2px);padding:0;margin:0}.living-dialog header{display:flex;flex-shrink:0;align-items:flex-start;justify-content:space-between;gap:14px;padding:22px 24px;border-bottom:1px solid var(--line)}.living-dialog h2{font-size:27px;letter-spacing:-.8px;line-height:1.15;min-width:0;margin:0;overflow-wrap:anywhere}.living-close{flex:0 0 auto;min-width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:var(--surface-soft);color:var(--text);font-size:24px}.living-dialog-body{min-height:0;min-width:0;padding:20px 24px;overflow:hidden auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;overflow-wrap:anywhere}.living-dialog-body>p{font-size:14px;line-height:1.65;color:var(--text-soft)}.living-dialog footer{display:flex;flex-shrink:0;flex-wrap:wrap;gap:10px;justify-content:flex-end;padding:15px 24px max(15px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface);z-index:1}.living-dialog footer button{min-height:48px;max-width:100%;min-width:min(110px,100%);white-space:normal}.living-dialog input,.living-dialog select,.living-dialog textarea{font-size:16px;min-width:0}.living-dialog textarea{width:100%;box-sizing:border-box;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--page);color:var(--text)}.living-dialog label{min-width:0;font-size:12px}.living-dialog label:not(.check){grid-template-columns:minmax(0,1fr)}.living-dialog :is(input:not([type=checkbox]):not([type=radio]),select,textarea){width:100%;max-width:100%}.living-dialog fieldset{min-width:0}.living-dialog .check{gap:10px;align-items:flex-start;line-height:1.5;font-size:13px;margin:13px 0}.living-dialog .check input{width:19px;height:19px;min-height:0;margin-top:2px;flex:0 0 auto}.living-dialog .fineprint{font-size:12px;line-height:1.65;color:var(--text-soft)}.living-dialog a{color:inherit}.living-dialog .form-error:empty{display:none}.living-dialog summary{font-size:14px;font-weight:800;cursor:pointer;min-height:36px;padding:8px 0}.living-dialog h3{font-size:20px;line-height:1.3;letter-spacing:-.4px}.living-actions{display:flex;flex-wrap:wrap;gap:9px}.living-actions button{min-height:46px}.living-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 0;border-bottom:1px solid var(--line)}.living-row>div{min-width:0}.living-row b{font-size:14px;display:block;overflow-wrap:anywhere}.living-row small{display:block;font-size:12px;line-height:1.6;color:var(--text-soft);margin-top:5px}.living-row>div:last-child{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.living-row button{font-size:12px;min-height:42px;white-space:nowrap}.living-two,.living-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.living-filters{margin:16px 0}.living-filters label{margin:0;font-size:12px}.living-filters>label:last-child{grid-column:1/-1}.living-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.living-tabs button{font-size:12px;min-height:44px;padding:10px 13px}.living-preview-day{border:1px solid var(--line);border-radius:14px;padding:10px 15px;margin:12px 0}.living-preview-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px;border-top:1px solid var(--line);padding-top:15px}.living-preview-columns>div{min-width:0}.living-preview-columns b{font-size:12px}.living-preview-columns p{font-size:13px;line-height:1.5;padding-bottom:10px;border-bottom:1px solid var(--line)}.living-preview-columns small{display:block;color:var(--text-soft)}.living-plan-tools{display:flex;align-items:center;gap:12px;justify-content:space-between;margin:16px 0;min-height:44px}.living-plan-tools>button{font-size:12px;min-height:44px}.living-plan-tools>span{font-size:12px;color:var(--text-soft)}.living-plan-tools .text-btn{font-size:12px;padding:8px;min-height:40px}.living-locks{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px 0}.living-today{margin:12px 0 22px}.living-quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0}.living-quick-grid>article{padding:20px;border:1px solid var(--line);background:var(--surface-soft);border-radius:18px;min-width:0}.living-quick-grid h3{font-size:18px;line-height:1.3;margin:10px 0 16px}.living-quick-grid button{font-size:12px;min-height:44px}.living-hydration{padding:16px 0;border-top:1px solid var(--line);margin-bottom:22px}.living-hydration>summary{min-height:36px;font-weight:800;cursor:pointer;font-size:14px}.living-hydration .water-card{margin-top:18px}.living-review-card{margin:20px 0;padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:20px}.living-review-card>div{display:flex;align-items:center;gap:16px}.living-review-card .nouri-buddy{width:95px}.living-review-card h3{font-size:20px;line-height:1.25;margin:8px 0}.living-review-card p:not(.eyebrow){font-size:13px;color:var(--text-soft);line-height:1.6}.living-review-buddy{display:flex;align-items:center;gap:18px}.living-review-buddy .nouri-buddy{width:110px}.living-review-buddy p{font-size:14px;line-height:1.7;color:var(--text-soft)}.living-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}.living-stats>div{padding:15px;background:var(--surface-soft);border-radius:12px}.living-stats b{display:block;font-size:23px;line-height:1.3}.living-stats small{font-size:11px;color:var(--text-soft);line-height:1.5}.living-kitchen-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:18px 0}.living-kitchen-tools button{font-size:12px;min-height:44px}.living-kitchen-tools span{font-size:12px;line-height:1.6;color:var(--text-soft);flex-basis:100%}.living-stock-note{margin-top:5px;color:var(--text-soft)}.living-stock-button{font-size:12px;min-height:38px;margin:-4px 0 14px 34px;padding:6px 10px}.living-food-shortcut{margin-bottom:20px;min-height:46px;font-size:13px;width:100%}.living-batch{border:1px solid var(--line);border-radius:16px;padding:17px;margin:16px 0;background:var(--surface-soft)}.living-batch h3{margin:0 0 10px}.living-batch>p,.living-batch>small{font-size:12px;line-height:1.7;color:var(--text-soft)}.living-batch li{font-size:13px;margin:7px 0}.living-batch button{font-size:12px;margin-top:10px;min-height:44px}.living-ingredient{display:grid;grid-template-columns:minmax(0,2fr) repeat(2,minmax(0,1fr));gap:10px;border:1px solid var(--line);border-radius:13px;padding:13px;margin-bottom:12px}.living-ingredient>label:first-child{grid-column:1/-1}.living-ingredient label{margin:0}.living-ingredient>button{grid-column:1/-1;text-align:left;font-size:12px;min-height:38px;padding-left:0}.living-undo-food{padding:15px;border:1px solid var(--line);border-radius:13px;background:var(--surface-soft);font-size:12px;margin:14px 0}.living-profile-tools{border-top:1px solid var(--line);padding:20px 0;margin-top:20px}.living-profile-tools>button{display:block;min-height:46px;margin:12px 0;font-size:13px}.living-profile-tools .fineprint{font-size:12px;line-height:1.7}.living-training-tools>div{padding:20px;background:var(--surface-soft);border:1px solid var(--line);border-radius:18px;margin:18px 0}.living-training-tools p{font-size:12px;color:var(--text-soft);line-height:1.7}.living-training-tools button{min-height:46px}.living-exercise-tools{padding:17px;border:1px solid var(--line);border-radius:16px;background:var(--surface-soft);margin:22px 0}.living-exercise-tools small,.living-exercise-tools .fineprint{display:block;font-size:12px;line-height:1.6;color:var(--text-soft)}.living-exercise-tools label{font-size:13px;margin-top:18px}.living-last-session b{font-size:13px}.living-last-session p{font-size:13px;line-height:1.6}.living-last-session button{min-height:44px;font-size:12px;margin-bottom:8px}.living-rest{display:flex;flex-wrap:wrap;gap:10px;align-items:center;border-top:1px solid var(--line);padding-top:14px;margin-top:15px}.living-rest b{flex:1;min-width:100px;font-size:15px;font-variant-numeric:tabular-nums}.living-rest button{font-size:12px;min-height:44px}#workoutRecoveryStatus{font-size:10px;max-width:190px;line-height:1.4;color:var(--text-soft)}
@media(max-width:600px){.living-dialog header{padding:18px}.living-dialog-body{padding:18px}.living-dialog footer{padding:12px 18px max(12px,env(safe-area-inset-bottom))}.living-dialog h2{font-size:25px}.living-row{align-items:flex-start;gap:10px}.living-row>div:last-child{max-width:120px;flex-shrink:0}.living-row button{padding:10px}.living-preview-columns{gap:12px}.living-preview-columns p{font-size:12px}.living-quick-grid{gap:10px}.living-quick-grid>article{padding:15px}.living-quick-grid h3{font-size:16px}.living-review-card{padding:17px}.living-review-card .nouri-buddy{width:75px}.living-review-card h3{font-size:17px}.living-review-buddy .nouri-buddy{width:85px}.living-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.living-ingredient{grid-template-columns:repeat(2,minmax(0,1fr))}.living-ingredient>label:nth-child(4){grid-column:1/-1}.living-plan-tools{align-items:flex-start}.living-plan-tools>span{text-align:right}.living-dialog-body>p{font-size:13px}}
@media(prefers-reduced-motion:reduce){.living-dialog *{scroll-behavior:auto}}

.living-history-actions{display:flex;flex-direction:column;gap:7px;flex-shrink:0}.living-history-actions button{font-size:12px;white-space:normal}

.living-batch-days{margin:0;padding:0;border:0;min-inline-size:0}
.living-batch-days legend{padding:0;margin-bottom:6px;font-size:13px;font-weight:800}
.living-dialog .living-batch-days .check{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;min-height:44px;margin:0;padding:4px 0;border-bottom:1px solid var(--line);cursor:pointer}
.living-dialog .living-batch-days .check input{margin:0}
.living-dialog .living-batch-days strong{color:var(--text-soft);font-size:12px;white-space:nowrap}
#batchPortionTotal{margin:8px 0 18px;font-weight:750}

.shop-section .shop-utilities,
.shop-receipt {
  width: min(100%, 620px);
  margin-inline: auto;
}

.shop-utilities {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 16px;
}

.shop-utilities .living-kitchen-tools { display: contents; }
.shop-utilities .secondary {
  min-height: 44px;
  padding: 8px;
  border-radius: 10px;
  font-size: 12px;
  line-height: 1.3;
}
.shop-utilities #livingPantryStatus { grid-column: 1 / -1; }
.shop-utilities #livingPantryStatus:empty { display: none; }

.shop-receipt {
  --receipt-paper: #fffdf7;
  position: relative;
  margin-bottom: 12px;
  border-radius: 16px 16px 0 0;
  box-shadow: 0 6px 28px #09261a14;
  color: var(--text);
}
[data-theme=dark] .shop-receipt { --receipt-paper: var(--surface); }
.shop-receipt-head {
  padding: 16px clamp(12px, 4vw, 22px) 10px;
  border-radius: inherit;
  background: #063f2d;
  color: #fff;
}
.shop-receipt-brand {
  color: #d8fa63;
  font: 950 29px/1 var(--nouri-ui);
  letter-spacing: -.05em;
}
.shop-receipt-head h2 { margin: 4px 0 0; color: inherit; font-size: 19px; }
.shop-receipt .shopping-week-toolbar { gap: 8px; margin: 8px 0 0; }
.shop-receipt .shopping-week-toolbar b { font-size: 13px; }
.shop-receipt .shopping-week-toolbar button {
  background: transparent;
  color: #fff;
  border: 1px solid #b5d3c486;
  border-radius: 8px;
}
.shop-receipt-paper {
  padding: 0 clamp(12px, 4vw, 22px) 12px;
  border-inline: 1px solid var(--line);
  background: var(--receipt-paper);
}
.shop-receipt::after {
  content: "";
  position: absolute;
  inset: 100% 0 auto;
  height: 8px;
  background:
    linear-gradient(135deg, var(--receipt-paper) 25%, transparent 25%) 0 0 / 16px 16px,
    linear-gradient(225deg, var(--receipt-paper) 25%, transparent 25%) 0 0 / 16px 16px;
  pointer-events: none;
}

.shop-receipt .shopping-plan-status,
.shop-checklist-tools {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  column-gap: 12px;
  margin: 0;
  border-bottom: 1px dashed var(--line);
}
.shop-receipt .shopping-plan-status { padding: 4px 0; }
.shop-receipt .shopping-plan-status p { flex: 1 1 150px; }
.shop-receipt .shopping-plan-status button { margin: 0; }
.shop-checklist-tools .shopping-summary { margin: 0; }
.shop-checklist-tools label {
  display: flex;
  align-items: center;
  min-height: 44px;
  margin: 0;
  cursor: pointer;
}
.shop-checklist-tools input,
.shop-receipt .shop-tick input {
  width: 21px;
  height: 21px;
  min-height: 0;
  margin: 0;
  padding: 0;
  accent-color: #248754;
}

.shop-aisle { margin: 14px 0 0; }
.shop-aisle h3 {
  margin: 0;
  padding: 0 0 7px;
  border-bottom: 1px solid var(--line);
  color: var(--text-soft);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.shop-aisle .shop-item,
.shop-aisle .shop-item.checked {
  display: block;
  padding: 0;
  border: 0;
  border-bottom: 1px dashed var(--line);
  border-radius: 0;
  background: transparent;
  color: var(--text);
  opacity: 1;
}
.shop-receipt .shop-tick {
  display: grid;
  grid-template-columns: 21px 22px minmax(0, 1fr) minmax(0, auto);
  align-items: start;
  gap: 8px;
  min-height: 44px;
  margin: 0;
  padding: 10px 0 0;
  color: inherit;
  cursor: pointer;
}
.shop-receipt .shop-tick input { margin-top: 1px; }
.shop-icon { display: grid; place-items: center; font-size: 17px; line-height: 22px; }
.shop-description,
.shop-quantity {
  display: grid;
  gap: 3px;
  min-width: 0;
  overflow-wrap: anywhere;
}
.shop-description b { font-size: 14px; line-height: 1.35; }
.shop-quantity { max-width: 8rem; text-align: right; }
.shop-item .shop-amount {
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  white-space: normal;
}
.shop-item.checked .shop-amount { color: var(--text-soft); }
.shop-receipt .shop-description small,
.shop-receipt .shop-pantry-note,
.shop-receipt .shop-packs {
  margin: 0;
  color: var(--text-soft);
  font-size: 11px;
  line-height: 1.4;
}
.shop-receipt .shop-description span:empty,
.shop-receipt .shop-packs:empty { display: none; }
.shop-item .shop-pantry-action {
  min-height: 44px;
  margin: 0 0 0 59px;
  padding: 0;
  color: var(--text-soft);
  font-size: 11px;
  text-align: left;
}
.shop-receipt-note { margin: 14px 0 0; color: var(--text-soft); font-size: 11px; }
.shop-receipt .empty-state { margin: 14px 0; padding: 14px; }
.shop-receipt [hidden] { display: none; }

@media (max-width: 520px) {
  .shop-quantity { max-width: min(7rem, 29vw); }
}

.today-nutrition {
  padding: clamp(14px, 3vw, 24px);
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--surface);
  color: var(--text);
}
.today-nutrition-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.today-nutrition h2 { margin: 0; font-size: 16px; }
.today-calorie-totals {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 4px 12px;
}
.today-calorie-totals p { margin: 0; color: var(--text-soft); font-size: 13px; }
.today-calorie-totals strong {
  color: var(--text);
  font-size: clamp(26px, 5vw, 34px);
  line-height: 1.15;
}
.today-calorie-totals,
.today-macros { font-variant-numeric: tabular-nums; }
.today-macros {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(6px, 2vw, 16px);
  margin-top: 13px;
}
.today-macros h3 { margin: 0 0 3px; font-size: 12px; }
.today-macros p { margin: 0; color: var(--text-soft); font-size: 11px; overflow-wrap: anywhere; }
.nutrition-bar {
  --bar-fill: #248754;
  display: block;
  appearance: none;
  width: 100%;
  height: 9px;
  margin-top: 7px;
  border: 0;
  border-radius: 999px;
  overflow: hidden;
  background: var(--line);
  color: var(--bar-fill);
}
.today-macros .nutrition-bar { height: 6px; }
#carbsProgress { --bar-fill: #aa632e; }
#fatProgress { --bar-fill: #327f88; }
[data-theme=dark] .nutrition-bar { --bar-fill: #aed884; }
[data-theme=dark] #carbsProgress { --bar-fill: #e7a66f; }
[data-theme=dark] #fatProgress { --bar-fill: #87c6ce; }
.nutrition-bar::-webkit-progress-bar { background: var(--line); border-radius: 999px; }
.nutrition-bar::-webkit-progress-value { background: var(--bar-fill); border-radius: 999px; }
.nutrition-bar::-moz-progress-bar { background: var(--bar-fill); border-radius: 999px; }

.pantry-item-title { margin: 0 0 12px; }
.living-dialog .pantry-need {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 5px 12px;
  margin: 0 0 14px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface-soft);
}
.pantry-need strong { color: var(--text); }
.pantry-choices,.pantry-shares { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.pantry-choices button,.pantry-shares button,.pantry-some-panel button { min-height: 44px; padding: 10px; }
.pantry-some-panel { margin: 14px 0 0; padding-top: 14px; border-top: 1px solid var(--line); }
.pantry-some-panel[hidden] { display: none; }
.pantry-some-panel > p:first-child { margin: 0 0 10px; }
.pantry-stepper { display: grid; grid-template-columns: 46px minmax(0,1fr) 46px; align-items: stretch; gap: 8px; }
.pantry-stepper input { width: 100%; min-height: 44px; text-align: center; }
.pantry-stepper button { font-size: 18px; line-height: 1; }
.pantry-some-panel button[type=submit] { width: 100%; }
.pantry-estimate { margin-top: 8px; }
.pantry-shares button { font-size: 13px; line-height: 1.3; }
.pantry-links { display: flex; flex-wrap: wrap; gap: 4px 16px; }
.pantry-links:empty { display: none; }
.pantry-links button { min-height: 44px; padding: 6px 0; font-size: 13px; }

.today-meal-card {
  margin: 0 0 14px;
  padding: clamp(14px, 4vw, 22px);
  border: 1px solid #91b883;
  border-radius: 19px;
  background: #eaf3e3;
  color: var(--text);
}
[data-theme=dark] .today-meal-card { background: #203a2a; border-color: #64855b; }
.today-meal-card h2 {
  margin: 0;
  font-size: clamp(21px, 5vw, 28px);
  line-height: 1.15;
  letter-spacing: -.035em;
  overflow-wrap: anywhere;
}
.today-meal-card h2:focus-visible { outline-offset: 4px; }
.today-meal-card > p:not(.eyebrow) { margin: 8px 0 12px; color: var(--text-soft); font-size: 13px; }
.today-meal-kicker { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 5px 12px; }
.today-meal-card .eyebrow { margin: 0 0 8px; color: var(--text); }
.today-meal-kicker span { color: var(--text-soft); font-size: 12px; font-weight: 750; }
.today-meal-summary { display: grid; grid-template-columns: 52px minmax(0,1fr); align-items: center; gap: 11px; }
.today-meal-art {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface);
  font-size: 26px;
}
.today-meal-art img { width: 100%; height: 100%; object-fit: cover; }
.today-meal-slot,.today-meal-meta { margin: 0; color: var(--text-soft); font-size: 12px; font-weight: 650; }
.today-meal-slot { margin-bottom: 3px; }
.today-meal-meta { margin-top: 5px; }
.today-meal-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 13px; }
.today-meal-actions button,.today-meal-card > button { min-height: 44px; padding: 9px 8px; font-size: 13px; }
.today-meal-card .secondary { background: var(--surface); color: var(--text); border: 1px solid var(--line); }
.recipe-planned-portions { font-size: 13px; font-weight: 800; color: var(--text-soft); }
.recipe-planned-action { margin-top: 16px; }
.recipe-planned-action button { min-height: 44px; }
.recipe-planned-action .form-error:empty { display: none; }

dialog.premium-trial-offer {
 position: fixed;
 inset: 0;
 width: 100%;
 height: 100dvh;
 max-width: none;
 max-height: none;
 margin: 0;
 padding: 0;
 border: 0;
 border-radius: 0;
 color: var(--text);
 background: radial-gradient(ellipse at top, #274d33, #101a15 69%);
 overscroll-behavior: contain;
}
.premium-trial-screen {
 min-height: 100%;
 display: flex;
 flex-direction: column;
 padding: max(16px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right))
  max(18px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));
}
.premium-trial-close { align-self: flex-end; width: 46px; height: 46px; padding: 0; border-radius: 50%; font-size: 26px; }
.premium-trial-content { width: min(100%, 430px); margin: auto; padding: 8px 0; text-align: center; }
.premium-trial-buddy {
 display: grid;
 place-items: center;
 width: clamp(116px, 32vh, 232px);
 aspect-ratio: 1;
 margin: 0 auto 12px;
 border: 1px solid #577b50;
 border-radius: 50%;
 background: radial-gradient(circle, #3b653e, #26452c 69%);
}
.premium-trial-buddy .nouri-buddy { width: 88%; }
.premium-trial-content .eyebrow { margin: 0 0 8px; color: #d8fa93; }
.premium-trial-content h2 { margin: 0; font-size: clamp(34px, 8vw, 55px); line-height: .99; letter-spacing: -.055em; }
.premium-trial-lead { margin: 12px 0; font-size: clamp(16px, 4.5vw, 21px); font-weight: 650; }
#premiumTrialPrice { margin: 0; color: var(--text-soft); font-size: 14px; }
#premiumTrialPrice strong { display: block; color: var(--text); }
.premium-trial-actions { display: grid; gap: 4px; margin: 20px 0 8px; }
.premium-trial-actions button { min-height: 48px; }
.premium-trial-terms { margin: 10px 0 0; color: var(--text-soft); font-size: 12px; }
@media (prefers-reduced-motion: no-preference) {
 dialog.premium-trial-offer[open] .premium-trial-content { animation: premium-trial-enter 220ms ease-out both; }
 @keyframes premium-trial-enter { from { opacity: 0; transform: translateY(9px); } to { opacity: 1; transform: translateY(0); } }
}
@media (max-width: 390px) { .premium-trial-buddy { width: clamp(106px, 27vh, 190px); } }

.premium-lock-badge { display: inline-block; padding: .22rem .48rem; border-radius: .42rem; background: #3b3020; color: #ffe096; font-size: .68rem; font-weight: 800; line-height: 1.35; vertical-align: middle; }
.premium-lock-panel { margin: .8rem 0; padding: .8rem; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.premium-lock-panel h3, .premium-lock-panel p { margin: 0 0 .7rem; }
.premium-lock-panel ul { margin: 0 0 .7rem; padding: 0; list-style: none; }
.premium-lock-panel li { display: flex; align-items: center; justify-content: space-between; gap: .6rem; padding: .6rem 0; border-top: 1px solid var(--line); color: var(--text-soft); }
.premium-lock-panel button, .recipe-premium-locked button { min-height: 44px; }
.premium-lock-panel[hidden], .premium-lock-badge[hidden], #programmePicker[hidden], #rolloverForm[hidden] { display: none !important; }
.recipe-premium-locked .meal-image { filter: grayscale(1); opacity: .55; }
.recipe-premium-locked .meal-body { color: var(--text-soft); }
.recipe-premium-locked h3 { margin: .5rem 0 .75rem; }
.premium-trial-buddy { border-color: #93743a; background: radial-gradient(circle, #6a5425, #423720 69%); }
.premium-trial-content .eyebrow { color: #ffe096; }
.choice-premium-locked { opacity: .6; cursor: default; }
.choice-upgrade { margin-block: .75rem; }
.prep-planner-card {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:.75rem 1rem;
  min-width:0;
  margin:1rem 0;
  padding:1rem;
  border:1px solid var(--line);
  border-radius:1rem;
  background:var(--surface-soft);
  color:var(--text);
}
.prep-planner-card h3 {margin:.25rem 0;font-size:1.1rem}
.prep-planner-card .eyebrow,.prep-planner-card p {color:var(--text-soft)}
.prep-planner-card p {margin:0;font-size:.875rem;line-height:1.45}
.prep-planner-card button {min-height:44px;max-width:100%}
.prep-settings {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:.65rem 1rem;
  margin-bottom:1.5rem;
  min-width:0;
}
.prep-settings label:first-child {grid-column:1/-1;margin:0}
.prep-settings button {min-height:44px}
.prep-batch .prep-batch-title {
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:baseline;
  gap:.25rem .75rem;
}
.prep-batch .prep-batch-title h3 {margin:0}
.prep-batch-title span,.prep-dates strong {font-size:.8rem;color:var(--text-soft)}
.prep-dates,.prep-daily ul {padding:0;list-style:none}
.prep-dates li {
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:.25rem .75rem;
  border-top:1px solid var(--line);
  padding:.5rem 0;
}
.prep-daily,.prep-storage-help,.prep-manual {border-top:1px solid var(--line);margin-top:.75rem;padding-top:.25rem}
.prep-daily li {display:grid;gap:.2rem;margin:.65rem 0;font-size:.875rem}
.prep-daily li span,.prep-daily li small {color:var(--text-soft)}
.prep-note,.prep-storage-help p {font-size:.875rem;color:var(--text-soft);line-height:1.5}
@media(max-width:480px) {
  .prep-planner-card,.prep-settings {grid-template-columns:minmax(0,1fr)}
  .prep-settings button {width:100%}
}

.prep-planner-card, .premium-lock-panel, .recipe-premium-locked, .rollover-disclosure,
#programmePicker, #profileBilling {
  border-color: var(--nouri-gold-line);
  background: var(--nouri-gold-surface);
}
#programmePicker, #profileBilling {
  border: 1px solid var(--nouri-gold-line);
  border-radius: 14px;
  padding: 12px;
}
.prep-planner-card .eyebrow, .prep-planner-card h3, .rollover-disclosure > summary,
#profileBillingTitle, [data-premium-member] #libraryAccess, #programmePicker label,
.premium-lock-panel h3, #livingDialog:has(.prep-storage-help) header h2 {
  color: var(--nouri-gold);
}
.premium-lock-badge {background:#48371d;color:var(--nouri-gold)}
:is(.primary, .secondary):is([data-premium-offer], [data-open-prep], #livingPrep,
  #startPremiumCheckout, #managePremiumBilling, #trialOfferCheckout, #useProgramme),
#rolloverForm .secondary, .prep-settings .primary, #newBatch,
#livingDialog:has(.prep-storage-help) footer .primary {
  border: 1px solid var(--nouri-gold);
  background: var(--nouri-gold);
  color: var(--nouri-gold-ink);
}
:is(.primary, .secondary):is([data-premium-offer], [data-open-prep], #livingPrep,
  #startPremiumCheckout, #managePremiumBilling, #trialOfferCheckout, #useProgramme):hover,
#rolloverForm .secondary:hover, .prep-settings .primary:hover, #newBatch:hover,
#livingDialog:has(.prep-storage-help) footer .primary:hover {background:#ffe4a4;color:var(--nouri-gold-ink)}

.weigh-in-prompt {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 12px;
  margin: 0 0 14px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--surface-soft);
}
.weigh-in-prompt[hidden] {display:none}
.weigh-in-prompt h2 {margin:4px 0;font-size:1.18rem}
.weigh-in-prompt p {margin:0;color:var(--text-soft)}
.weigh-in-prompt button {min-height:44px}
@media(max-width:480px) {
 .weigh-in-prompt {grid-template-columns:minmax(0,1fr)}
 .weigh-in-prompt button {justify-self:start}
}

.living-quick-grid > .water-log-tile {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: #142b33;
  border-color: #385b65;
}
.water-log-tile .eyebrow {color:#a9dce6}
.water-log-tile h3 {color:#f1fbff}
.water-log-tile h3 small {display:block;margin-top:3px;color:#b9dde5;font-size:.78rem;font-weight:600}
.water-log-tile #addWater {background:#1d3944;color:#e9f9fc;border:1px solid #6593a2}
.water-log-tile #addWater:hover {background:#2a4b57}
.water-log-fill {
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  transform:translateY(calc(100% - var(--water-percent,0%)));
  transition:transform 480ms cubic-bezier(.2,.65,.3,1);
  border-top:1px solid #8fc7d2;
  border-radius:36% 44% 0 0 / 7px 10px 0 0;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='68' viewBox='0 0 160 68'%3E%3Cg fill='none' stroke='%23abedf0' stroke-opacity='.22'%3E%3Cpath d='M-20 15C10-1 24 5 51 12s54 9 77-1 40-7 56-1M-22 40c29-13 48-8 74 0s54 6 75-4 42-7 57 0M-16 56c33-10 56-7 83 1s51 2 77-6l33-3'/%3E%3C/g%3E%3C/svg%3E") repeat,
    linear-gradient(167deg,#306b78,#255260 50%,#1a3849);
}
@media(prefers-reduced-motion:reduce) {.water-log-fill {transition:none}}

