/* ==========================================================
   Wallet, Subscription & Kitchen-Analytics — extends css/style.css
   ========================================================== */
.wallet-wrap{ padding:26px 18px 60px; min-height:100dvh; max-width:480px; margin-inline:auto }
.wallet-back{ display:inline-block; margin-bottom:16px; color:var(--muted); text-decoration:none; font-weight:700; font-size:13px }

/* ---------- Balance card ---------- */
.wallet-card{
  background:linear-gradient(135deg, var(--ink), #43392f); color:#fff;
  border-radius:var(--r); padding:22px 22px 20px; box-shadow:var(--shadow); position:relative; overflow:hidden;
}
.wallet-card::after{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(220px 140px at 100% 0%, rgba(191,232,212,.20), transparent 60%);
}
.wallet-card-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; position:relative }
.wallet-kicker{ font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:#D9CFBD; position:relative }
.wallet-balance{ display:flex; align-items:baseline; gap:8px; margin-top:8px; position:relative }
.wallet-balance b{ font-family:'Fraunces',serif; font-weight:600; font-size:42px; line-height:1 }
.wallet-balance span{ font-size:13px; font-weight:700; color:#D9CFBD }
.wallet-negative-note{ font-size:12px; font-weight:700; color:#FFD9A0; margin:6px 0 0; line-height:1.4; position:relative }
.wallet-locked-col{ text-align:right }
.wallet-locked-kicker{ color:#F5DFA0 }
.wallet-balance-sm{ justify-content:flex-end }
.wallet-balance-sm b{ color:#F5DFA0 }
.wallet-plan-row{ display:flex; align-items:center; justify-content:space-between; margin-top:14px; position:relative }
.wallet-plan-badge{
  display:inline-flex; align-items:center; gap:6px; background:rgba(255,255,255,.12);
  padding:6px 12px; border-radius:999px; font-size:12px; font-weight:800;
}
.wallet-recharge-btn{
  border:none; cursor:pointer; background:linear-gradient(135deg, var(--coral), var(--coral-deep));
  color:#fff; font-family:'Plus Jakarta Sans'; font-weight:800; font-size:13px; padding:10px 16px; border-radius:999px;
}

/* ---------- Auto-renew toggle ---------- */
.auto-renew-row{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  background:var(--card); border:1px solid var(--line); border-radius:var(--r-sm);
  padding:14px 16px; margin-top:14px; box-shadow:var(--shadow);
}
.auto-renew-row .arr-text{ display:flex; flex-direction:column; gap:2px }
.auto-renew-row .arr-text b{ font-size:13.5px }
.auto-renew-row .arr-text span{ font-size:11.5px; color:var(--muted) }
.auto-renew-row-disabled{ opacity:.7; background:#FAF7EF }
.switch{ position:relative; width:44px; height:26px; flex:none }
.switch input{ opacity:0; width:0; height:0 }
.switch .slider{
  position:absolute; inset:0; background:var(--line); border-radius:999px; cursor:pointer; transition:background .2s;
}
.switch .slider::before{
  content:''; position:absolute; width:20px; height:20px; left:3px; top:3px; background:#fff; border-radius:50%;
  box-shadow:0 1px 3px rgba(0,0,0,.25); transition:transform .2s;
}
.switch input:checked + .slider{ background:var(--mint-deep) }
.switch input:checked + .slider::before{ transform:translateX(18px) }

/* ---------- Depleted / frozen notice ---------- */
.wallet-frozen-panel{
  margin-top:14px; background:linear-gradient(135deg,#FFE2DC,#FFD0C6); border:1.5px solid #F5A794;
  border-radius:var(--r-sm); padding:16px; box-shadow:var(--shadow);
}
.wallet-frozen-panel strong{ display:block; font-family:'Fraunces',serif; font-weight:700; font-size:15.5px; color:#8C2C1C; margin-bottom:5px }
.wallet-frozen-panel p{ font-size:12.5px; color:#8C2C1C; line-height:1.5; margin:0 }

/* ---------- Serviceable-areas list — inline in a banner (js/banners.js)
   and standalone on the homepage lookup (js/home.js, index.html) ---------- */
.areas-toggle-btn{
  margin-top:10px; border:none; background:none; padding:0; cursor:pointer;
  font-family:'Plus Jakarta Sans'; font-weight:800; font-size:12px; color:#8C2C1C; text-decoration:underline;
}
.areas-hub-wrap{ margin-top:10px; display:flex; flex-direction:column; gap:10px }
.areas-hub-wrap[hidden]{ display:none } /* .areas-hub-wrap's own display:flex above otherwise beats the UA [hidden] rule — same fix as #rollForwardBanner/.primary-btn elsewhere in this file */
.areas-hub-label{ font-family:'Fraunces',serif; font-weight:600; font-size:13.5px; color:var(--ink) }
.areas-hub-list{ margin:4px 0 0; padding-left:18px; font-size:12.5px; color:var(--muted); line-height:1.6 }

/* ---------- Plan switch panel ---------- */
.section-heading{ font-family:'Fraunces',serif; font-weight:600; font-size:19px; margin:30px 0 4px; color:var(--ink) }
.section-sub{ font-size:12.5px; color:var(--muted); margin:0 0 14px; line-height:1.5 }

.plan-switch-badge{
  display:flex; align-items:center; justify-content:space-between; gap:10px; background:#FDF1D2; color:var(--mustard-deep);
  border:1px solid #EFCF7E; border-radius:var(--r-sm); padding:10px 13px; font-size:12px; font-weight:800; margin-bottom:12px;
}
.plan-switch-cancel-btn{
  flex:none; border:1.5px solid var(--mustard-deep); background:#fff; color:var(--mustard-deep); cursor:pointer;
  font-family:'Plus Jakarta Sans'; font-weight:800; font-size:11.5px; padding:7px 12px; border-radius:999px;
}
.plan-switch-cancel-btn:disabled{ opacity:.5; cursor:not-allowed }

/* ---------- Start-date picker (a brand-new subscription's start date) ---------- */
.start-date-picker{
  background:var(--card); border:1px solid var(--line); border-radius:var(--r-sm);
  padding:14px 16px; margin:0 0 14px; box-shadow:var(--shadow);
}
.sdp-label{ font-family:'Fraunces',serif; font-weight:600; font-size:14.5px; margin-bottom:10px }
.sdp-date-input{
  width:100%; box-sizing:border-box; font-family:'Plus Jakarta Sans'; font-weight:700; font-size:14px; color:var(--ink);
  padding:10px 12px; border:1.5px solid var(--line); border-radius:var(--r-sm); background:#FCFAF5; outline:none;
}
.sdp-date-input:focus{ border-color:var(--mint-deep) }
.start-date-picker .section-sub{ margin:10px 0 0 }

.plan-grid{ display:flex; flex-direction:column; gap:12px }
.plan-card{
  background:var(--card); border:1.5px solid var(--line); border-radius:var(--r-sm);
  padding:16px 18px; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:8px;
}
.plan-card.active{ border-color:var(--mint-deep); background:#F4FAF7 }
.plan-card-top{ display:flex; align-items:center; justify-content:space-between }
.plan-card-top h4{ font-family:'Fraunces',serif; font-weight:600; font-size:16.5px; margin:0 }
.plan-current-tag{ font-size:10.5px; font-weight:800; color:var(--mint-deep); background:#E3F6EC; padding:3px 9px; border-radius:999px }
.plan-price-row{ display:flex; align-items:baseline; gap:8px }
.plan-price-row .price-new{ font-size:20px }
.plan-first-time-badge{ font-size:12px; font-weight:700; color:#1F5E3E; margin:0 }
.plan-card p{ font-size:12px; color:var(--muted); margin:0; line-height:1.4 }
.plan-switch-btn{
  align-self:flex-start; border:none; cursor:pointer; background:var(--ink); color:#fff;
  font-family:'Plus Jakarta Sans'; font-weight:800; font-size:12.5px; padding:9px 16px; border-radius:999px; margin-top:2px;
}
.plan-switch-btn:disabled{ opacity:.45; cursor:not-allowed }

/* ---------- This Week list — the default view (planner.html) ---------- */
.week-list{ display:flex; flex-direction:column; gap:10px; margin:0 16px }
.week-row{
  display:flex; flex-direction:column; gap:10px; background:var(--card); border:1.5px solid var(--line);
  border-radius:var(--r-sm); padding:12px 14px; box-shadow:var(--shadow);
}
.week-row.is-next{ border-color:var(--coral) }
.week-row-top{ display:flex; align-items:center; gap:12px }
.week-row-day{ flex:none; width:42px; text-align:center; font-family:'Plus Jakarta Sans' }
.week-row-day b{ display:block; font-size:13px; color:var(--ink) }
.week-row-day span{ display:block; font-size:10px; color:var(--muted); margin-top:1px }
.week-row-body{ flex:1; min-width:0 }
.week-row-dish{
  font-family:'Plus Jakarta Sans'; font-weight:800; font-size:13.5px; color:var(--ink); line-height:1.3;
}
.wl-pill{ display:inline-block; margin-top:4px; font-size:10.5px; font-weight:800; padding:2px 9px; border-radius:999px }
.wl-pill-sched{ background:var(--mint); color:var(--mint-deep) }
.wl-pill-next{ background:var(--coral); color:#fff }
.wl-pill-done{ background:var(--mustard); color:var(--mustard-deep) }
.wl-pill-off{ background:#FDECE8; color:var(--coral-deep) }
.wl-pill-wait{ background:var(--sky); color:var(--sky-deep) }
.week-row-actions{ display:flex; gap:8px; justify-content:flex-end }
.week-row-actions button{
  border:1.5px solid var(--line); background:var(--card); border-radius:999px; padding:7px 14px;
  font-family:'Plus Jakarta Sans'; font-weight:800; font-size:11.5px; color:var(--ink); cursor:pointer;
}
.week-row-actions .wl-skip{ color:var(--coral-deep); border-color:var(--coral) }
.monthly-view-toggle{
  display:block; width:calc(100% - 32px); margin:14px 16px 0; padding:11px; text-align:center;
  border:1.5px dashed var(--line); border-radius:var(--r-sm); background:none; cursor:pointer;
  font-family:'Plus Jakarta Sans'; font-weight:800; font-size:12.5px; color:var(--muted);
}

/* ---------- Calendar toolbar + legend (planner.html) ---------- */
.cal-toolbar{ display:flex; gap:8px; margin:18px 16px 0; flex-wrap:wrap }
.cal-tool-btn{
  flex:1; min-width:104px; border:1.5px solid var(--mint-deep); background:#F4FAF7; cursor:pointer;
  font-family:'Plus Jakarta Sans'; font-weight:800; font-size:12px; color:var(--mint-deep);
  padding:10px 8px; border-radius:var(--r-sm);
}
.cal-drawer-trigger{
  display:flex; align-items:center; justify-content:center; gap:8px; width:100%;
  border:1.5px solid var(--mint-deep); background:#F4FAF7; cursor:pointer;
  font-family:'Plus Jakarta Sans'; font-weight:800; font-size:13px; color:var(--mint-deep);
  padding:11px 8px; border-radius:var(--r-sm);
}

/* ---------- Calendar Tools drawer, and every panel it opens — one
   consistent vertical side panel (not a bottom sheet) sliding in from the
   right, whether it's the tools list itself, Vacation & Skip Days, Copy a
   Past Week or My Usual Menu — instead of a mix of popups and page
   navigations for what are all "manage my calendar" actions. */
.cal-drawer, .side-panel{
  position:fixed; top:0; right:0; bottom:0; width:82%; max-width:340px;
  background:var(--card); z-index:41; padding:18px 14px;
  transform:translateX(100%); transition:transform .28s ease;
  box-shadow:-10px 0 30px rgba(0,0,0,.18); overflow-y:auto;
  display:flex; flex-direction:column; gap:6px;
}
.side-panel{ max-width:380px }
.cal-drawer.on, .side-panel.on{ transform:translateX(0) }
.cal-drawer-head, .side-panel-head{
  display:flex; align-items:center; gap:6px; justify-content:space-between; margin-bottom:10px;
  font-family:'Fraunces',serif; font-weight:600; font-size:17px; color:var(--ink);
}
.side-panel-head span{ flex:1 }
.cal-drawer-close, .side-panel-close, .side-panel-back{ border:none; background:none; font-size:16px; color:var(--muted); cursor:pointer; padding:4px }
.side-panel-back{ font-size:22px; font-weight:700; line-height:1; padding:0 6px 2px }
.cal-drawer-item{
  display:flex; align-items:center; gap:10px; width:100%; box-sizing:border-box;
  border:none; border-bottom:1px solid var(--line); background:none; cursor:pointer; text-decoration:none;
  font-family:'Plus Jakarta Sans'; font-weight:700; font-size:14px; color:var(--ink);
  padding:14px 4px; text-align:left;
}
.cal-drawer-item span{ flex:1 }
.cal-drawer-item i{ font-style:normal; color:var(--muted) }
.cal-drawer-item:last-child{ border-bottom:none }
.side-panel .lead{ color:var(--muted); font-size:13px; margin:4px 0 16px }

/* ---------- Big planning calendar (planner.html) ---------- */
.big-cal-head{ display:flex; align-items:center; justify-content:space-between; margin:20px 16px 0 }
.big-cal-head span{ font-family:'Fraunces',serif; font-weight:600; font-size:17px; color:var(--ink) }
.big-cal-head button{
  border:1.5px solid var(--line); background:var(--card); cursor:pointer; width:32px; height:32px;
  border-radius:50%; font-size:16px; color:var(--ink); line-height:1;
}
.big-cal-head button:disabled{ opacity:.35; cursor:not-allowed }
.big-cal-dow{
  display:grid; grid-template-columns:repeat(7,1fr); margin:12px 16px 0;
  font-size:10.5px; font-weight:800; color:var(--muted); text-align:center;
}
.big-cal-dow span:nth-child(1),
.big-cal-dow span:nth-child(2),
.big-cal-dow span:nth-child(3),
.big-cal-dow span:nth-child(4),
.big-cal-dow span:nth-child(5){ color:var(--ink) }
.big-cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:4px; margin:6px 16px 4px }
.big-cal-cell{
  aspect-ratio:1; min-width:0; min-height:0; position:relative; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:1px;
  border:1.5px solid var(--line); background:var(--card); border-radius:12px; cursor:pointer;
  font-family:'Plus Jakarta Sans'; padding:3px 2px;
}
.big-cal-cell .bcc-num{
  position:absolute; top:4px; left:6px; font-family:'Fraunces',serif; font-weight:600; font-size:10.5px; color:var(--ink);
}
.big-cal-cell .bcc-icon{ font-size:20px; line-height:1.1; margin-top:8px }
.big-cal-cell .bcc-icon.bcc-icon-photo{
  width:24px; height:24px; border-radius:50%; overflow:hidden; background:var(--line);
}
.big-cal-cell .bcc-icon.bcc-icon-photo img{ width:100%; height:100%; object-fit:cover; display:block }
.big-cal-cell .bcc-label{
  font-size:7.5px; font-weight:800; color:var(--muted); line-height:1.15; text-align:center;
  max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding:0 2px;
}
/* Per-weekday tint (the playful "colorful" column look) — background only,
   so border/icon still carry the actual planned/paused/vacation/etc. status
   and aren't confused with which weekday a cell falls on. */
.big-cal-cell.wd-mon{ background:#E9F7F0 }
.big-cal-cell.wd-tue{ background:#FFF0EC }
.big-cal-cell.wd-wed{ background:#EAF5FB }
.big-cal-cell.wd-thu{ background:#FFF7E3 }
.big-cal-cell.wd-fri{ background:#FFF1E4 }
.big-cal-cell.empty, .big-cal-cell.out-of-range{
  border-color:transparent; background:none; cursor:default; opacity:.35;
}
.big-cal-cell.is-planned{ border-color:var(--mint-deep) }
.big-cal-cell.is-paused{ opacity:.6 }
.big-cal-cell.is-vacation{ border-color:#4FA3C9; background:#EFF8FC }
.big-cal-cell.is-skipped{ border-color:var(--coral); background:#FFF1EE; opacity:.65; cursor:default }
.big-cal-cell.is-locked{ border-color:#EFCF7E; background:#FFFCF4; cursor:default }
.big-cal-cell.is-next{ box-shadow:0 0 0 2px var(--coral-deep) inset }

/* ---------- Active calendar tracker ---------- */
.calendar-list{ display:flex; flex-direction:column; gap:10px }
.cal-row{
  display:flex; align-items:center; gap:12px; background:var(--card); border:1.5px solid var(--line);
  border-radius:var(--r-sm); padding:12px 14px; box-shadow:var(--shadow);
}
.cal-row.is-locked{ border-color:#EFCF7E; background:#FFFCF4 }
.cal-row.is-paused{ opacity:.65 }
.cal-row.is-unplanned{ opacity:.55 }
.cal-date{ flex:none; width:58px; text-align:center }
.cal-date .cd-dow{ font-size:10px; font-weight:800; color:var(--coral-deep); letter-spacing:.04em }
.cal-date .cd-num{ font-family:'Fraunces',serif; font-weight:600; font-size:17px }
.cal-body{ flex:1; min-width:0 }
.cal-dish{ font-size:13px; font-weight:800; color:var(--ink); margin-bottom:2px }
.cal-status{ font-size:12.5px; font-weight:800 }
.cal-status.planned{ color:var(--mint-deep) }
.cal-status.paused{ color:var(--muted) }
.cal-status.locked{ color:var(--mustard-deep) }
.cal-status.unplanned{ color:var(--muted); font-weight:700 }
.cal-note{ font-size:11px; color:var(--muted); margin-top:2px }
.cal-action{
  flex:none; border:none; cursor:pointer; font-family:'Plus Jakarta Sans'; font-weight:800; font-size:11.5px;
  padding:8px 13px; border-radius:999px;
}
.cal-action.pause{ background:#FFF1EE; color:var(--coral-deep) }
.cal-action.resume{ background:#E3F6EC; color:var(--mint-deep) }
.cal-action:disabled{ opacity:.4; cursor:not-allowed }
.cal-lock-tag{ font-size:11px; font-weight:800; color:var(--mustard-deep) }

/* ---------- Manage My Days sheet: 3 sections stacked in 1 sheet ---------- */
.manage-days-section{ padding:16px 0; border-top:1px solid var(--line) }
.manage-days-section:first-of-type{ padding-top:10px; border-top:none }
.manage-days-section h3{
  font-family:'Fraunces',serif; font-weight:600; font-size:15.5px; margin:0 0 4px; color:var(--ink);
}
.manage-days-section .lead{ margin:0 0 12px }
#manageDayJump{ max-width:220px }

/* ---------- Vacation single-calendar range picker ---------- */
.vacation-card{
  background:var(--card); border:1.5px solid var(--line); border-radius:var(--r-sm);
  padding:16px 18px; box-shadow:var(--shadow);
}
.vac-cal-head{ display:flex; align-items:center; justify-content:space-between }
.vac-cal-head span{ font-family:'Fraunces',serif; font-weight:600; font-size:15px; color:var(--ink) }
.vac-cal-head button{
  border:1.5px solid var(--line); background:var(--card); cursor:pointer; width:30px; height:30px;
  border-radius:50%; font-size:15px; color:var(--ink); line-height:1;
}
.vac-cal-dow{
  display:grid; grid-template-columns:repeat(7,1fr); margin-top:12px;
  font-size:10.5px; font-weight:800; color:var(--muted); text-align:center;
}
.vac-cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:3px; margin-top:6px }
.vac-cal-cell{
  aspect-ratio:1; display:flex; align-items:center; justify-content:center;
  border:none; background:none; border-radius:8px; font-family:'Plus Jakarta Sans'; font-size:12.5px;
  color:var(--ink); cursor:pointer;
}
.vac-cal-cell.empty{ cursor:default }
.vac-cal-cell.disabled{ color:var(--line); cursor:not-allowed }
.vac-cal-cell.in-range{ background:#F4FAF7 }
.vac-cal-cell.sel-start, .vac-cal-cell.sel-end{ background:var(--mint-deep); color:#fff; font-weight:800 }
.vac-cal-summary{ margin-top:12px; font-size:12.5px; font-weight:700; color:var(--muted) }
.vacation-btn{
  width:100%; margin-top:12px; border:none; cursor:pointer; background:var(--ink); color:#fff;
  font-family:'Plus Jakarta Sans'; font-weight:800; font-size:13.5px; padding:12px; border-radius:999px;
}
.vacation-btn:disabled{ opacity:.5; cursor:not-allowed }
.vacation-msg{ font-size:12px; margin-top:10px; font-weight:700; color:var(--mint-deep) }
.vacation-msg.err{ color:var(--coral-deep) }
.vacation-msg:empty{ display:none }

/* ---------- Skip a weekday (all, or a recurring week each month) ---------- */
.recur-add-row{ display:flex; align-items:flex-end; gap:8px }
.recur-add-row .field{ flex:1; gap:0 }
.recur-add-row .field select{ padding:9px 8px; font-size:13px }
.recur-add-row .cal-tool-btn{ flex:none; min-width:0; padding:10px 16px; align-self:stretch }
.recur-rule-row{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 0; border-bottom:1px solid var(--line) }
.recur-rule-row:last-child{ border-bottom:none }
.recur-rule-text{ font-family:'Plus Jakarta Sans'; font-weight:700; font-size:13px; color:var(--ink) }
.recur-rule-remove{
  flex:none; border:1.5px solid var(--line); background:var(--card); cursor:pointer;
  font-weight:800; font-size:12px; color:var(--coral-deep); padding:5px 10px; border-radius:10px;
}
.recur-empty{ font-size:12.5px; color:var(--muted); margin:4px 0 0 }

/* ---------- Ledger ---------- */
.ledger-list{ display:flex; flex-direction:column; gap:8px }
.ledger-empty{ color:var(--muted); font-size:13px; text-align:center; margin:8px 0 0; line-height:1.5 }
.ledger-row{
  display:flex; justify-content:space-between; gap:10px; font-size:12.5px;
  border-bottom:1px dashed var(--line); padding-bottom:8px;
}
.ledger-row:last-child{ border-bottom:none }
.ledger-row .lr-note{ color:var(--ink); font-weight:700 }
.ledger-row .lr-sub{ color:var(--muted); font-size:11px; margin-top:2px }
.ledger-row .lr-amt{ font-weight:800; white-space:nowrap }
.ledger-row .lr-amt.pos{ color:var(--mint-deep) }
.ledger-row .lr-amt.neg{ color:var(--coral-deep) }

/* ---------- Auto-renew opt-in (shown right above a Pay button) ---------- */
.auto-renew-container{
  display:flex; flex-direction:column; gap:6px;
  background:#F4FAF7; border:1.5px solid #CDEBDC; border-radius:var(--r-sm);
  padding:14px 16px; margin:14px 0;
}
.auto-renew-container label{ display:flex; align-items:center; gap:9px; font-size:13.5px; color:var(--ink); cursor:pointer }
.auto-renew-container input[type="checkbox"]{ width:18px; height:18px; accent-color:var(--mint-deep); cursor:pointer; flex:none }
.auto-renew-container .toggle-subtext{ font-size:11.5px; color:var(--muted); margin:0; line-height:1.5; padding-left:27px }

/* ---------- Smart Auto-Refill status card (account.html) ---------- */
.wallet-status-card{
  margin-top:16px; background:var(--card); border:1.5px solid var(--line); border-radius:var(--r-sm);
  padding:16px 18px; box-shadow:var(--shadow);
}
.wallet-status-row{ display:flex; align-items:center; justify-content:space-between; gap:12px }
.wallet-status-label{ font-size:11px; font-weight:800; color:var(--muted); text-transform:uppercase; letter-spacing:.05em }
.wallet-status-value{ font-family:'Fraunces',serif; font-weight:600; font-size:16px; margin-top:4px }
.wallet-status-value.active{ color:var(--mint-deep) }
.wallet-status-value.inactive{ color:var(--muted) }
.wallet-status-btn{
  flex:none; border:1.5px solid var(--line); background:var(--card); cursor:pointer;
  font-family:'Plus Jakarta Sans'; font-weight:800; font-size:12.5px; color:var(--ink);
  padding:9px 16px; border-radius:999px;
}
.wallet-status-btn:disabled{ opacity:.5; cursor:not-allowed }
.wallet-topup-link{
  display:inline-block; margin-top:10px; color:var(--coral-deep); font-weight:800;
  font-size:12.5px; text-decoration:underline; cursor:pointer; background:none; border:none; padding:0;
}

/* ---------- Kitchen Operator Analytics (admin.html) ---------- */
.wallet-stat-grid{ display:flex; gap:10px; flex-wrap:wrap }
.wallet-stat{
  flex:1; min-width:120px; background:var(--card); border:1px solid var(--line); border-radius:16px;
  padding:14px; text-align:center; box-shadow:var(--shadow);
}
.wallet-stat b{ display:block; font-family:'Fraunces',serif; font-size:22px; color:var(--coral-deep) }
.wallet-stat span{ font-size:11px; color:var(--muted); font-weight:700 }
.low-balance-list{ display:flex; flex-direction:column; gap:8px; margin-top:12px }
.low-balance-row{
  display:flex; justify-content:space-between; align-items:center; gap:10px;
  background:#FFF1EE; border:1px solid #FFD9D0; border-radius:12px; padding:10px 13px; font-size:12.5px;
}
.low-balance-row b{ color:var(--coral-deep) }

/* ---------- Manage Delivery Areas (admin.html) ---------- */
.hub-manage-card{
  background:var(--card); border:1px solid var(--line); border-radius:16px;
  padding:14px 16px; margin-bottom:10px; box-shadow:var(--shadow);
}
.hub-manage-label{ font-family:'Fraunces',serif; font-weight:600; font-size:14.5px; color:var(--ink); display:flex; align-items:center; gap:6px; justify-content:space-between }
.hub-manage-card .areas-hub-list{ margin:6px 0 0; padding-left:0; list-style:none; font-size:12.5px; color:var(--muted); line-height:1.6 }
.hub-manage-card .areas-hub-list li{ display:flex; align-items:center; gap:6px; padding:2px 0 }
.hub-manage-card .areas-hub-list li span{ flex:1 }
.hub-manage-rename, .hub-manage-remove{
  flex:none; border:none; background:none; cursor:pointer; font-size:12px; padding:2px 4px;
  opacity:.6; line-height:1;
}
.hub-manage-rename:hover, .hub-manage-remove:hover{ opacity:1 }
.hub-manage-remove{ color:var(--coral-deep) }
.hub-manage-add-row{ display:flex; gap:8px; margin-top:10px }
.hub-manage-input{
  flex:1; min-width:0; font-family:'Plus Jakarta Sans'; font-size:13px; font-weight:700; color:var(--ink);
  padding:9px 11px; border:1.5px solid var(--line); border-radius:var(--r-sm); background:#FCFAF5; outline:none;
}
.hub-manage-input:focus{ border-color:var(--mint-deep) }
.hub-manage-btn{
  flex:none; border:none; background:var(--mint-deep); color:#fff; cursor:pointer;
  font-family:'Plus Jakarta Sans'; font-weight:800; font-size:12.5px; padding:0 16px; border-radius:var(--r-sm);
}
.hub-manage-btn:disabled{ opacity:.6; cursor:not-allowed }
.hub-manage-new{ background:#F7F4EC; border-style:dashed }
.hub-manage-kitchen-row{
  display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:8px;
  font-size:12px; font-weight:700; color:var(--muted);
}
.hub-manage-kitchen-row select{
  font-family:'Plus Jakarta Sans'; font-size:12.5px; font-weight:700; color:var(--ink);
  padding:6px 9px; border:1.5px solid var(--line); border-radius:var(--r-sm); background:#FCFAF5; outline:none;
}
.hub-manage-kitchen-row select:focus{ border-color:var(--mint-deep) }

/* ---------- Credit a Meal (admin.html) ---------- */
.credit-found-card{ margin-top:10px }
.credit-warn{ font-size:12px; font-weight:700; color:#8A6512; background:#FDF1D2; border:1px solid #EFCF7E; border-radius:var(--r-sm); padding:8px 10px; margin:0 0 10px }

/* ---------- Signup Demand by Area (admin.html) ---------- */
.demand-hub{
  background:var(--card); border:1px solid var(--line); border-radius:16px;
  padding:14px 16px; margin-bottom:10px; box-shadow:var(--shadow);
}
.demand-hub-head{
  display:flex; justify-content:space-between; align-items:center; gap:10px;
  font-family:'Fraunces',serif; font-weight:600; font-size:14.5px; color:var(--ink); margin-bottom:6px;
}
.demand-hub-head span{ font-family:'Plus Jakarta Sans'; font-weight:800; font-size:11px; color:var(--muted) }
.demand-row{
  display:flex; justify-content:space-between; align-items:center; gap:10px;
  font-size:12.5px; color:var(--muted); padding:4px 0;
}
.demand-row b{ color:var(--coral-deep) }
.demand-unlisted{ background:#FFF1EE; border-color:#FFD9D0 }

/* ---------- Capacity panel: per-day dish/hub breakdown (admin.html) ---------- */
.cap-day-detail{
  display:flex; gap:18px; flex-wrap:wrap;
  margin:0 0 10px 10px; padding:4px 0 2px 10px; border-left:2px solid var(--line);
}
.cap-day-detail-col{ flex:1 1 140px; min-width:140px }
.cap-day-detail-head{
  font-family:'Plus Jakarta Sans'; font-weight:800; font-size:10.5px; letter-spacing:.02em;
  text-transform:uppercase; color:var(--muted); margin-bottom:2px;
}
.cap-day-detail .demand-row{ font-size:11.5px; padding:2px 0 }

/* ---------- Default Weekly Menu grid (sign-up + account.html) ---------- */
.default-menu-grid{ display:flex; flex-direction:column; gap:12px; margin:14px 0 }
.default-menu-row{ margin:0; display:flex; flex-direction:row; align-items:center; gap:12px }
.default-menu-row-body{ display:flex; flex-direction:column; gap:6px; flex:1; min-width:0 }
/* A thumbnail of the currently-picked dish — a <select> can't show a photo
   per-option, so this is the one visual cue of what's actually chosen (see
   js/default-menu-widget.js's menuThumbHtml), kept live on every change. */
.default-menu-thumb{
  flex:none; width:44px; height:44px; border-radius:50%; background:#F3EEE3; color:var(--coral-deep);
  display:grid; place-items:center; font-family:'Fraunces',serif; font-weight:700; font-size:15px;
}
.default-menu-thumb.dish-badge-photo{ background:var(--line); overflow:hidden; padding:0 }
/* Custom picker (replaces the visible <select> — see js/default-menu-
   widget.js) so each choice can show its own photo-or-emoji icon, which a
   native <select>'s options can never do. */
.default-menu-picker{ position:relative }
.default-menu-picker-btn{
  width:100%; text-align:left; border:1.5px solid var(--line); border-radius:12px; background:var(--card);
  padding:10px 14px; font-family:'Plus Jakarta Sans'; font-size:14px; font-weight:700; color:var(--ink); cursor:pointer;
}
.default-menu-options{
  position:absolute; top:calc(100% + 6px); left:0; right:0; z-index:20;
  background:var(--card); border:1.5px solid var(--line); border-radius:14px; box-shadow:var(--shadow);
  max-height:260px; overflow-y:auto; padding:6px;
}
.default-menu-option{
  display:flex; align-items:center; gap:10px; width:100%; text-align:left; border:none; background:none;
  border-radius:10px; padding:8px; cursor:pointer; font-family:'Plus Jakarta Sans'; font-size:13.5px; font-weight:700; color:var(--ink);
}
.default-menu-option:hover{ background:#F6F2E9 }
.default-menu-option.sel{ background:#F4FAF7; color:var(--mint-deep) }
.default-menu-option-icon{
  flex:none; width:32px; height:32px; border-radius:50%; background:#F3EEE3; color:var(--coral-deep);
  display:grid; place-items:center; font-size:14px;
}
.default-menu-option-icon.dish-badge-photo{ background:var(--line); overflow:hidden; padding:0 }
.default-menu-option-text{ display:flex; flex-direction:column; gap:1px; min-width:0 }
.default-menu-option-text .dish-nutrition{ font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.default-menu-option-text .dish-nutrition-toggle{ cursor:pointer }
.default-menu-option-text .dish-nutrition-toggle.expanded{ white-space:normal; overflow:visible; text-overflow:clip }

/* Pause until I resume (planner vacation sheet) */
.open-pause-box{ margin-top:18px; padding-top:14px; border-top:1px dashed var(--line) }
.open-pause-box b{ font-size:14px }
.open-pause-box p{ font-size:12.5px; color:var(--muted); line-height:1.5; margin:4px 0 10px }

/* Holiday / break cells + banner */
.big-cal-cell.is-holiday{ background:#F1ECFA; border:1px solid #D9CEF0; color:#5E4B8B; cursor:pointer }
.big-cal-cell.is-holiday .bcc-label{ font-size:8.5px }
