  .aldi-wrap {
    --accent: #D5F25B;
    --bg: rgb(18,20,26);
    --card-bg: rgb(24,27,34);
    --text: #e5e7eb;
    --muted: rgba(255,255,255,.38);
    --border: rgb(42,45,51);
    --chip-bg: rgb(24,27,34);
    --chip-hover: rgb(30,33,42);
    --chip-press: rgb(36,40,50);
    --control-bg: rgb(18,20,26);
    --totals-bg: #D5F25B;
    --totals-border: #b8d444;
    --totals-text: #000000;
    --popup-bg: rgb(24,27,34);
    --overlay: rgba(0,0,0,.6);
    --shadow: 0 1px 3px rgba(0,0,0,.5);
    --search-bg: rgb(24,27,34); 
    --search-border: rgb(42,45,51);
    --search-text: #e6e9ef;
    --search-ph: rgba(255,255,255,.3);
    max-width: 1060px;
    margin: 0 auto;
    font: 300 15px/1.4 Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    color: var(--text);
    background: var(--bg);
    border-radius: 16px;
  }
  .aldi-wrap * { box-sizing: border-box; }
  html, body { overflow-x: hidden; }
  .aldi-wrap { overflow-x: clip; }

  .aldi-grid { display:grid; grid-template-columns:1fr; gap:14px; padding:8px; }
  @media (min-width:980px) { .aldi-grid { grid-template-columns:1fr 1fr; } }

  .card {
    background: var(--card-bg);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 14px;
    box-shadow: rgba(0,0,0,.45) 0px 20px 40px 0px;
  }
  .card h2 { margin:0 0 8px; font-size:16px; font-weight:700; color:var(--text); }
  .card-head { display:flex; align-items:center; justify-content:center; margin-bottom:12px; }
  .aldi-shared-head { padding:16px 8px 0; margin-bottom:0; }
  .aldi-main-title { margin:0; font-size:20px; text-align:center; font-weight:700; letter-spacing:.02em; color:#fff; }
  .aldi-subtitle {
    margin:4px 0 0;
    font-size:11px;
    color: var(--muted);
    text-align:center;
    letter-spacing:.03em;
  }
  .shared-header-extra { margin-top:8px; min-height:20px; text-align:center; }
  .shared-header-extra:empty { display:none; }

  /* === CATALOG CARD === */
  .catalog-card {
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 0;
    box-shadow: none;
    margin-top: 0;
  }
  .section-header {
    display:flex; align-items:center; justify-content:space-between;
    gap:8px; margin:0 0 6px;
  }
  .section-header h2 { margin:0; }

  .planner-box {
    border: 1px solid var(--border);
    border-radius: 12px;
    background: rgb(18,20,26);
    padding: 12px;
    margin-bottom: 12px;
  }
  .planner-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
  .planner-grid.macro-grid { grid-template-columns:repeat(3,1fr); margin-top:10px; }
  .planner-grid.choice-grid { grid-template-columns:repeat(2,1fr); margin-top:10px; }
  @media (max-width:720px){
    .planner-grid { grid-template-columns:1fr; }
    .planner-grid.macro-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .planner-grid.choice-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .planner-grid.two-col { grid-template-columns:1fr; }
    .planner-choice-grid.three-col { grid-template-columns:1fr; }
    .planner-results-grid { grid-template-columns:1fr; }
    .planner-actions-split { grid-template-columns:1fr; }
    .planner-grid.macro-grid .planner-field label,
    .planner-grid.choice-grid .planner-field label,
    .planner-static-card label { font-size:10px; }
    .planner-grid.macro-grid .planner-field input,
    .planner-grid.choice-grid .planner-field select { padding:10px 8px; }
    .catalog-card .item .btn {
      min-height:32px;
      padding:7px 9px;
      font-size:10px;
      letter-spacing:.05em;
    }
  }
  .planner-field { display:flex; flex-direction:column; gap:6px; }
  .planner-field label {
    font-size:10px;
    font-weight:600;
    letter-spacing:.07em;
    text-transform:uppercase;
    color:var(--muted);
  }
  .planner-field input, .planner-field select {
    display:block; width:100%; min-height:44px;
    padding:10px 12px;
    border: 1px solid var(--search-border);
    background: rgb(24,27,34);
    color: #e5e7eb;
    border-radius: 10px;
    font: inherit; font-size:14px; font-weight:300; line-height:1.2;
    outline:none; appearance:none; -webkit-appearance:none;
    box-sizing:border-box;
    -webkit-text-fill-color:#e5e7eb; caret-color:#e5e7eb;
    transition:border-color .2s, box-shadow .2s;
  }
  .planner-field input:focus, .planner-field select:focus {
    border-color: rgba(213,242,91,.5) !important;
    box-shadow: 0 0 0 2px rgba(213,242,91,.06) !important;
    background: rgb(24,27,34) !important;
    color: #e5e7eb !important;
    -webkit-text-fill-color:#e5e7eb !important;
    caret-color:#e5e7eb;
  }
  .planner-field input:-webkit-autofill,
  .planner-field input:-webkit-autofill:hover,
  .planner-field input:-webkit-autofill:focus,
  .planner-field select:-webkit-autofill {
    -webkit-text-fill-color:#e5e7eb !important;
    box-shadow: 0 0 0 1000px rgb(24,27,34) inset !important;
    caret-color:#e5e7eb !important;
    transition: background-color 9999s ease-out 0s;
  }
  .planner-actions { margin-top:12px; display:flex; gap:8px; }
  .planner-actions button:not(.planner-btn-secondary) {
    width:100%; min-height:44px; border-radius:10px;
    border: 1px solid var(--accent) !important; background:var(--accent) !important;
    color:#000 !important; font-weight:700 !important; cursor:pointer; font-family:inherit;
    font-size:13px; letter-spacing:.03em;
    transition: background .15s, transform .15s;
  }
  .planner-actions button:not(.planner-btn-secondary):hover { background:#c8e84f !important; transform:translateY(-1px); }
  #inject-macros-btn, #build-meals { position:relative; }
  #inject-macros-btn.is-loading, #build-meals.is-loading {
    padding-right:40px;
    pointer-events:none;
  }
  #inject-macros-btn.is-loading:hover, #build-meals.is-loading:hover { transform:none; }
  #inject-macros-btn.is-loading::after, #build-meals.is-loading::after {
    content:'';
    position:absolute; right:14px; top:50%; width:16px; height:16px; margin-top:-8px;
    border-radius:50%; border:2px solid rgba(0,0,0,.18); border-top-color:#000;
    animation:planner-inject-spin .7s linear infinite;
  }
  @keyframes planner-inject-spin { to { transform:rotate(360deg); } }
  .planner-note { margin-top:8px; font-size:11px; color:var(--muted); line-height:1.5; }
  .planner-note-tight { margin-top:4px; }
  .planner-section { margin-top:14px; }
  .planner-section:first-of-type { margin-top:10px; }
  .planner-section-title {
    margin:0 0 8px; font-size:10px; color:var(--muted);
    text-transform:uppercase; letter-spacing:.08em; font-weight:700;
  }
  .planner-field-locked {
    position:relative; display:flex; align-items:center; justify-content:flex-start;
    width:100%; min-height:44px; padding:10px 36px 10px 12px;
    background:rgb(24,27,34); border:1px solid var(--border); border-radius:10px;
    color:#e5e7eb; font-size:13px; font-weight:600; cursor:not-allowed;
  }
  .planner-field-locked-text { color:var(--muted); font-weight:500; font-size:12px; }
  .planner-field-locked-icon {
    position:absolute; right:10px; top:50%; transform:translateY(-50%);
    width:14px; height:14px; color:var(--muted);
    display:inline-flex; align-items:center; justify-content:center;
  }
  .planner-field-locked-icon svg { width:14px; height:14px; display:block; }

  .planner-progress { display:flex; align-items:center; justify-content:center; gap:8px; margin-bottom:14px; }
  .planner-progress-step {
    width:28px; height:28px; border-radius:50%;
    display:inline-flex; align-items:center; justify-content:center;
    border: 1px solid var(--border); background:var(--control-bg);
    color:var(--muted); font-size:12px; font-weight:700;
  }
  .planner-progress-step.is-active { background:var(--accent); border-color:var(--accent); color:#000; }
  .planner-step { display:none; }
  .planner-step.is-active { display:block; }
  .planner-step-title {
    margin:0 0 10px; font-size:10px; color:var(--muted);
    text-transform:uppercase; letter-spacing:.08em; font-weight:700; text-align:center;
  }
  .planner-grid.two-col { grid-template-columns:repeat(2,1fr); }

  .planner-choice-grid { display:grid; gap:8px; margin-bottom:10px; }
  .planner-choice-grid.two-col { grid-template-columns:repeat(2,1fr); }
  .planner-choice-grid.three-col { grid-template-columns:repeat(3,1fr); }
  .planner-choice {
    position:relative; display:flex; align-items:center; justify-content:center;
    min-height:44px; padding:10px 12px;
    border: 1px solid var(--search-border); background: rgb(24,27,34);
    color:#e5e7eb; border-radius:10px; cursor:pointer;
    text-align:center; font-weight:600; font-size:13px;
    transition:border-color .15s, background .15s, color .15s;
  }
  @media (hover:hover) and (pointer:fine) {
    .planner-choice:hover { border-color:var(--accent); background:rgb(28,31,40); }
  }
  .planner-choice input { position:absolute; opacity:0; pointer-events:none; }
  .planner-choice.selected { border-color:var(--accent); box-shadow:0 0 0 1px var(--accent) inset; color:var(--accent); }
  .planner-choice { align-items:flex-start; }
  .planner-choice-body { display:flex; flex-direction:column; gap:6px; width:100%; min-width:0; }
  .planner-choice-body span { display:block; }
  .planner-choice-image {
    display:block; width:100%; aspect-ratio:1/1; object-fit:cover;
    border-radius:10px; border:1px solid rgba(255,255,255,.08); background:rgb(18,20,26);
    max-width:100%; height:auto;
  }
  #bodyGroup .planner-choice { min-height:unset !important; height:auto !important; }
  #bodyGroup .planner-choice-body { height:auto !important; }
  #bodyGroup .planner-choice-image { width:100%; height:auto; aspect-ratio:auto; display:block; border-radius:18px; }
  #bodyGroup.planner-choice-grid.three-col { grid-template-columns:repeat(3,1fr); gap:8px; }
  #bodyGroup .planner-choice { width:100%; }

  .planner-actions-split { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
  .planner-btn-secondary {
    width:100% !important; min-height:44px !important; border-radius:10px !important;
    border: 1px solid var(--border) !important;
    background: rgb(24,27,34) !important;
    color:rgba(255,255,255,.55) !important;
    font-family:inherit; font-size:13px; font-weight:700 !important;
    cursor:pointer;
  }
  .planner-btn-secondary:hover { color:#fff !important; border-color:rgba(255,255,255,.2) !important; }

  .planner-builder { margin-top:14px; padding-top:14px; border-top:1px solid var(--border); }
  .planner-box.is-builder-focused .planner-progress,
  .planner-box.is-builder-focused .planner-step { display:none !important; }
  .planner-box.is-builder-focused .planner-builder { margin-top:0; padding-top:0; border-top:none; }
  .planner-field.is-injected label { color:var(--accent); }
  .planner-field.is-injected input,
  .planner-field.is-injected select {
    border-color:var(--accent) !important;
    box-shadow:inset 0 0 0 999px rgb(24,27,34) !important;
    color:var(--accent) !important;
    -webkit-text-fill-color:var(--accent) !important;
  }

  .planner-inject-notice {
    display:none; margin:0 0 12px; padding:12px 44px 12px 14px;
    border:1px solid rgba(110,163,28,.5); border-radius:12px;
    background:rgba(110,163,28,.08); color:#eaffbf;
    position:relative; font-size:12px; line-height:1.5;
  }
  .planner-inject-notice.show { display:block; }
  .planner-inject-notice strong { color:var(--accent); }
  .planner-inject-close { position:absolute; top:8px; right:8px; }
  .catalog-close-btn { flex:0 0 auto; }
  .planner-actions-reset { margin-top:8px; }
  .planner-actions-reset button { width:100%; }

  .planner-results-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
  .planner-result-card {
    background:rgb(24,27,34); border:1px solid var(--search-border);
    border-radius:10px; padding:12px 10px; text-align:center;
  }
  .planner-result-card-accent {
    border-color:var(--accent);
    box-shadow:0 0 0 1px rgba(213,242,91,.12) inset;
  }
  .planner-result-value {
    display:block; font-size:20px; line-height:1.1; font-weight:700; color:#fff; margin-bottom:6px;
  }
  .planner-result-card small { display:block; color:var(--muted); font-size:11px; line-height:1.35; }
  .planner-result-macros { margin-top:10px; }
  .planner-static-card {
    border:1px solid var(--search-border); background:rgb(24,27,34); border-radius:10px; padding:10px 12px;
  }
  .planner-static-card label { margin:0 0 4px; }
  .planner-static-value { min-height:auto; color:#fff; font-size:14px; font-weight:600; }
  .planner-results-grid.results-target-only { grid-template-columns:1fr; }
  .planner-results-grid.results-target-only .planner-result-card.is-hidden { display:none; }
  .planner-results-grid.results-target-only .planner-result-card-accent { grid-column:1 / -1; padding:14px 12px; }
  .planner-result-macros { grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:8px; }
  .planner-result-macros .planner-static-card { padding:8px; text-align:center; }
  .planner-result-macros .planner-static-card label { font-size:10px; margin-bottom:2px; }
  .planner-result-macros .planner-static-value { font-size:12px; line-height:1.2; white-space:nowrap; }

  #aldi-search {
    -webkit-appearance:none; appearance:none;
    display:block; width:100%; min-height:44px; padding:11px 14px;
    font-size:14px; font-weight:300; line-height:1.25;
    background: var(--search-bg); color:var(--search-text);
    border: 1px solid var(--search-border); border-radius:12px;
    outline:none; margin-bottom:10px;
    transition: border-color .2s;
  }
  #aldi-search::placeholder { color:var(--search-ph); opacity:1; }
  #aldi-search:focus { border-color:rgba(213,242,91,.45); box-shadow:0 0 0 2px rgba(213,242,91,.06); }

  .tabs { display:flex; gap:6px; margin-bottom:8px; flex-wrap:wrap; }
  .tabs .tab {
    flex:1; padding:8px !important; border:1px solid var(--border) !important;
    background:var(--chip-bg) !important; border-radius:10px !important; cursor:pointer;
    font-weight:600 !important; color:rgba(255,255,255,.45) !important; font-size:11px !important;
    letter-spacing:.05em !important; text-transform:uppercase !important;
    transition:background .15s, color .15s, border-color .15s;
  }
  .tabs .tab.active, .tabs .tab[aria-selected="true"] {
    background:var(--accent) !important; color:#000 !important; border-color:var(--accent) !important;
  }

  .list, .checklist { list-style:none; padding:0; margin:0; display:grid; gap:6px; }
  @media (min-width:640px) { .list { grid-template-columns:1fr 1fr; } }
  .item, .todo {
    display:flex; align-items:center; justify-content:space-between;
    gap:8px; border:1px solid var(--border); border-radius:10px;
    background:var(--card-bg);
  }
  .item { padding:8px 10px; }
  .todo { padding:8px 10px; }
  .item-col, .todo-text { display:flex; flex-direction:column; gap:2px; min-width:0; flex:1 1 auto; }
  .item-name, .todo-name {
    font-size:13px; font-weight:500;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
    overflow:hidden; word-break:break-word; color:var(--text);
  }
  .todo-tag { font-size:10px; color:var(--muted); margin-top:2px; }
  .todo-thumb { width:36px; height:36px; border-radius:8px; object-fit:cover; flex:0 0 auto; border:1px solid var(--border); background:var(--card-bg); }
  .todo-thumb-clickable { cursor:zoom-in; }
  .unit-tag { font-size:10px; color:rgba(255,255,255,.3); margin-left:6px; white-space:nowrap; }
  .btn {
    -webkit-appearance:none; appearance:none;
    padding:7px 10px; min-height:34px; border:1px solid var(--border);
    background:transparent; color:rgba(255,255,255,.45);
    border-radius:10px; cursor:pointer; font-size:11px; font-weight:600;
    font-family:inherit; line-height:1.2; white-space:nowrap;
    letter-spacing:.05em; text-transform:uppercase;
    transition:background .15s, color .15s, border-color .15s, box-shadow .15s;
  }
  .btn:hover { background:rgba(255,255,255,.04); color:#fff; border-color:rgba(255,255,255,.16); }
  .btn:focus-visible {
    border-color:rgba(213,242,91,.45);
    box-shadow:0 0 0 2px rgba(213,242,91,.06);
    outline:none;
  }
  .catalog-card .item .btn {
    -webkit-appearance:none !important; appearance:none !important;
    min-height:34px !important; padding:8px 10px !important;
    border:1px solid var(--border) !important; border-radius:10px !important;
    background:transparent !important; background-image:none !important; box-shadow:none !important;
    color:rgba(255,255,255,.45) !important; font:600 10px/1.2 inherit !important;
    letter-spacing:.05em !important; text-transform:uppercase !important;
  }
  .catalog-card .item .btn:hover {
    background:rgba(255,255,255,.04) !important;
    color:#fff !important;
    border-color:rgba(255,255,255,.16) !important;
  }
  .todo-actions .remove-btn,
  .shopping-item .currency-btn,
  .planner-inject-close,
  .catalog-close-btn {
    -webkit-appearance:none !important; appearance:none !important;
    width:28px !important; min-width:28px !important; height:28px !important;
    padding:0 !important; border:1px solid var(--border) !important; border-radius:10px !important;
    background:transparent !important; background-image:none !important; box-shadow:none !important;
    color:rgba(255,255,255,.45) !important; font:600 11px/1 inherit !important;
    display:inline-flex !important; align-items:center !important; justify-content:center !important;
    cursor:pointer !important;
    transition:background .15s, color .15s, border-color .15s, box-shadow .15s;
  }
  .catalog-close-btn[hidden], .planner-inject-close[hidden] { display:none !important; }
  .todo-actions .remove-btn:hover,
  .shopping-item .currency-btn:hover,
  .planner-inject-close:hover,
  .catalog-close-btn:hover {
    background:rgba(255,255,255,.04) !important;
    color:#fff !important;
    border-color:rgba(255,255,255,.16) !important;
  }
  .planner-inject-close,
  .catalog-close-btn {
    border-color:rgba(213,242,91,.38) !important;
    color:var(--accent) !important;
  }
  .planner-inject-close:hover,
  .catalog-close-btn:hover {
    background:rgba(213,242,91,.08) !important;
    border-color:var(--accent) !important;
    color:var(--accent) !important;
  }
  .btn:disabled { opacity:.45; cursor:not-allowed; }
  .btn._active { background:var(--accent); border-color:var(--accent); color:#000; }

  .todo-actions { display:flex; align-items:center; gap:6px; flex-wrap:nowrap; flex:0 0 auto; white-space:nowrap; }
  .macro-edit-btn, .remove-btn {
    border:1px solid var(--border); background:var(--control-bg);
    color:rgba(255,255,255,.5); padding:5px 9px; border-radius:8px;
    cursor:pointer; font-weight:600; min-width:36px; text-align:center;
    line-height:1; font-size:12px;
    transition:background .15s, color .15s;
  }
  .macro-edit-btn {
    -webkit-appearance:none !important; appearance:none !important;
    border:1px solid var(--border) !important;
    background:rgb(24,27,34) !important; background-image:none !important; box-shadow:none !important;
    color:rgba(255,255,255,.55) !important;
    padding:5px 9px !important; border-radius:8px !important;
    min-width:36px !important; font:600 12px/1 inherit !important;
    display:inline-flex !important; align-items:center !important; justify-content:center !important;
    cursor:pointer !important;
  }
  .macro-edit-btn:hover { color:#fff !important; background:rgba(255,255,255,.04) !important; border-color:rgba(255,255,255,.16) !important; }
  .remove-btn:hover { background:rgba(255,255,255,.04); color:#fff; border-color:rgba(255,255,255,.16); }

  .top-actions { display:flex; gap:8px; margin:10px 0 8px; }
  .top-actions button {
    flex:1 1 50%; padding:10px 12px !important; border-radius:10px !important;
    font-weight:600 !important; font-size:12px !important; font-family:inherit; cursor:pointer;
    transition:transform .15s, background .2s, border-color .2s;
  }
  #open-saved-meals {
    border:1px solid var(--border) !important; background:rgb(24,27,34) !important; color:rgba(255,255,255,.55) !important;
  }
  #open-saved-meals:hover { color:#fff !important; border-color:rgba(255,255,255,.2) !important; }
  #open-saved-meals.has-saved {
    border-color:rgba(110,163,28,.5) !important; background:rgba(110,163,28,.08) !important; color:#dff89b !important;
  }
  #save-meal-top {
    border:1px solid var(--border) !important; background:rgb(24,27,34) !important; color:rgba(255,255,255,.55) !important;
  }
  #save-meal-top:hover { color:#fff !important; border-color:rgba(255,255,255,.2) !important; }

  #food-choice-btn {
    flex:0 0 auto; padding:8px 12px !important; border-radius:10px !important;
    border:1px solid var(--border) !important; background:rgb(24,27,34) !important; color:rgba(255,255,255,.65) !important;
    font:600 11px/1.2 inherit !important; letter-spacing:.05em !important; text-transform:uppercase !important; cursor:pointer;
    transition:background .15s, color .15s, border-color .15s;
  }
  #food-choice-btn:hover { color:#fff !important; border-color:rgba(255,255,255,.2) !important; }

  .meal-tabs { margin-bottom:8px; }

  .totals-card {
    margin-top:10px; border:1px solid var(--totals-border);
    border-radius:12px; padding:10px; background:var(--totals-bg); color:var(--totals-text);
  }
  #totals-card-meal { background:rgb(24,27,34); border-color:rgb(42,45,51); color:#fff; }
  #totals-card-meal .totals-label, #totals-card-meal .totals-value { color:#fff; }
  .totals-row { display:flex; align-items:center; justify-content:space-between; }
  .totals-label, .totals-value { color:var(--totals-text); font-weight:700; }
  .totals-label { font-size:12px; }
  .totals-value { font-size:13px; }

  .actions-bottom { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
  .actions-bottom button {
    flex:1 1 calc(50% - 4px); padding:10px !important; border-radius:10px !important;
    font-size:13px !important; font-weight:700 !important; cursor:pointer; font-family:inherit;
    transition:background .15s, border-color .15s;
  }
  #add-my-food, #add-food { background:rgb(24,27,34) !important; color:rgba(255,255,255,.65) !important; border:1px solid rgb(42,45,51) !important; }
  #add-my-food:hover, #add-food:hover { color:#fff !important; }
  #clear-list { order:2; background:var(--control-bg) !important; color:rgba(255,255,255,.45) !important; border:1px solid var(--border) !important; }
  #clear-list:hover { color:#fff !important; border-color:rgba(255,255,255,.2) !important; }
  #generate-shopping-list { order:3; flex:1 1 100%; }

  .note { font-size:11px; color:var(--muted); margin-bottom:6px; line-height:1.5; }
  .empty {
    text-align:center; padding:14px; color:var(--muted);
    border:1px dashed var(--border); border-radius:10px; margin-top:6px; font-size:12px;
  }

  .backdrop { position:fixed; inset:0; background:rgba(0,0,0,.65); z-index:999998; }
  .price-pop {
    position:fixed; left:50%; top:50%; transform:translate(-50%,-50%);
    background:rgb(24,27,34) !important; color:#e5e7eb !important;
    border:1px solid rgb(42,45,51) !important;
    border-radius:16px; box-shadow:rgba(0,0,0,.6) 0px 20px 40px;
    padding:18px 16px 14px; z-index:999999;
    width:min(92vw,460px); max-height:90vh; overflow-y:auto;
    font-family:Inter,system-ui,sans-serif; -webkit-font-smoothing:antialiased;
  }
  .price-pop h3 { margin:0 0 12px; font-size:13px; font-weight:700; color:#fff; letter-spacing:.06em; text-transform:uppercase; }
  .price-row { display:flex; align-items:center; gap:8px; margin-top:10px; }
  .price-row .curr { font-weight:600; font-size:11px; min-width:84px; text-align:left; color:rgba(255,255,255,.5); text-transform:uppercase; letter-spacing:.06em; }
  .price-row input, .price-row select {
    padding:11px 12px; border:1px solid rgb(42,45,51);
    background:rgb(18,20,26); color:#e5e7eb; border-radius:10px;
    font:inherit; font-size:14px; font-weight:300; line-height:1.2;
    flex:1; outline:none; appearance:none; -webkit-appearance:none;
    transition:border-color .2s;
  }
  .price-row input:focus, .price-row select:focus {
    border-color:rgba(213,242,91,.45) !important;
    box-shadow:0 0 0 2px rgba(213,242,91,.06) !important;
  }
  .price-actions { margin-top:14px; display:flex; gap:8px; }
  .price-actions button,
  .price-pop .btn-save,
  .price-pop .btn-cancel {
    -webkit-appearance:none !important; appearance:none !important;
    flex:1 !important; padding:10px !important; border-radius:10px !important;
    font-weight:600 !important; cursor:pointer !important;
    font-size:13px !important; font-family:inherit !important;
    background-image:none !important; box-shadow:none !important;
    text-shadow:none !important; text-transform:none !important;
    letter-spacing:normal !important; line-height:1.2 !important;
    transition:background .15s, border-color .15s, color .15s;
  }
  .price-pop .btn-save,
  .btn-save { background:rgb(42,45,51) !important; color:#fff !important; border:1px solid rgb(55,58,68) !important; }
  .price-pop .btn-save:hover,
  .btn-save:hover { background:rgb(55,58,68) !important; color:#fff !important; border-color:rgb(55,58,68) !important; }
  .price-pop .btn-cancel,
  .btn-cancel { background:rgb(24,27,34) !important; color:rgba(255,255,255,.5) !important; border:1px solid rgb(42,45,51) !important; }
  .price-pop .btn-cancel:hover,
  .btn-cancel:hover { background:rgb(24,27,34) !important; color:#fff !important; border-color:rgb(42,45,51) !important; }

  .options-list { display:grid; grid-template-columns:1fr; gap:6px; margin-top:8px; }
  .opt-card {
    appearance:none; display:flex; align-items:center; justify-content:space-between;
    width:100% !important; padding:10px 12px !important; border:1px solid var(--border) !important;
    border-radius:10px !important; background:rgb(24,27,34) !important; color:#e5e7eb !important; font-size:13px !important; cursor:pointer;
    transition:background .15s, border-color .15s;
  }
  .opt-card:hover { background:rgb(30,33,42) !important; border-color:rgba(255,255,255,.15) !important; }
  .opt-card.active { background:var(--accent) !important; color:#000 !important; border-color:var(--accent) !important; }
  .opt-card.active .opt-name, .opt-card.active span { color:#16a34a !important; }
  .opt-kcal { font-weight:700; font-size:12px; margin-left:10px; }

  .saved-meals-list { display:grid; gap:8px; margin-top:8px; }
  .saved-meal-card {
    display:flex; align-items:center; justify-content:space-between;
    gap:8px; padding:10px 12px; border:1px solid var(--border);
    border-radius:10px; background:var(--chip-bg);
  }
  .saved-meal-name {
    min-width:0; flex:1 1 auto; font-size:13px; font-weight:600;
    color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  }
  .saved-meal-actions { display:flex; align-items:center; gap:6px; }
  .saved-meal-add-btn, .saved-meal-del-btn {
    -webkit-appearance:none; appearance:none;
    border-radius:8px !important; cursor:pointer; font-family:inherit; line-height:1;
    transition:background .15s, border-color .15s, color .15s;
  }
  .saved-meal-add-btn {
    padding:8px 12px !important; font-size:12px !important; font-weight:600 !important; letter-spacing:.04em !important;
    background:rgb(42,45,51) !important; color:#fff !important; border:1px solid rgb(55,58,68) !important;
  }
  .saved-meal-add-btn:hover { background:rgb(55,58,68) !important; border-color:rgb(70,73,84) !important; }
  .saved-meal-del-btn {
    width:30px !important; height:30px !important; padding:0 !important;
    display:inline-flex; align-items:center; justify-content:center;
    font-size:18px !important; font-weight:500 !important;
    background:rgb(24,27,34) !important; color:rgba(255,255,255,.5) !important;
    border:1px solid rgb(42,45,51) !important;
  }
  .saved-meal-del-btn:hover {
    background:rgba(127,29,29,.25) !important; color:#fca5a5 !important; border-color:rgba(127,29,29,.45) !important;
  }
  .saved-meals-empty { text-align:center; padding:14px; color:var(--muted); border:1px dashed var(--border); border-radius:10px; font-size:12px; }

  .btn.tick-success { background:var(--accent) !important; border-color:var(--accent) !important; color:#000 !important; }
  .success-toast {
    position:fixed; left:50%; top:50%; transform:translate(-50%,-50%);
    background:rgb(24,27,34); color:#eaffbf;
    border:1px solid rgba(74,222,128,.3); border-radius:14px;
    padding:14px 18px; box-shadow:rgba(0,0,0,.5) 0px 20px 40px;
    z-index:1000000; font-weight:600; font-size:13px;
    display:flex; align-items:center; gap:10px;
    opacity:0; animation:hadPop .18s ease-out forwards;
  }
  .success-toast .icon {
    width:26px; height:26px; border-radius:50%;
    background:#4ade80; color:#06240b;
    display:inline-flex; align-items:center; justify-content:center;
    font-size:16px; font-weight:900;
  }
  @keyframes hadPop{ from{ opacity:0; transform:translate(-50%,-46%); } to{ opacity:1; transform:translate(-50%,-50%); } }

  .planner-field input:focus, .planner-field select:focus, #aldi-search:focus, .price-row input:focus, .price-row select:focus {
    border-color:rgba(213,242,91,.45) !important;
    box-shadow:0 0 0 2px rgba(213,242,91,.06);
  }
  .planner-field input.is-dirty, .planner-field select.is-dirty,
  .price-row input.is-dirty, .price-row select.is-dirty {
    color:var(--accent) !important; border-color:rgba(110,163,28,.5) !important;
  }

  .cook-pills { display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
  .cook-pill { position:relative; }
  .cook-pill input { position:absolute; opacity:0; pointer-events:none; }
  .cook-pill label {
    display:inline-block; padding:8px 12px !important; border:1px solid var(--border) !important;
    border-radius:999px !important; background:var(--control-bg) !important;
    color:rgba(255,255,255,.55) !important; cursor:pointer; font-size:12px !important; font-weight:500 !important;
    transition:background .15s, color .15s, border-color .15s;
  }
  .cook-pill input:checked + label { background:rgba(22,163,74,.2) !important; color:#4ade80 !important; border-color:rgba(22,163,74,.4) !important; }

  .food-popup-preview {
    margin-top:10px; border:1px solid rgb(42,45,51); border-radius:10px;
    padding:10px; background:rgb(18,20,26); font-size:12px; display:grid; gap:4px; color:rgba(255,255,255,.65);
  }
  .food-popup-preview strong { color:#4ade80; font-weight:600; }
  .todo-name.todo-clickable { cursor:pointer; }
  .todo-name.todo-clickable:hover { color:var(--accent); }
  .todo-qty { color:#D5F25B; font-weight:600; }

  .recipe-group {
    list-style:none; padding:0; margin:0;
    display:flex; flex-direction:row; align-items:center; gap:28px;
    position:relative;
  }
  .recipe-header {
    -webkit-appearance:none; appearance:none;
    flex:0 0 auto; padding:0 !important; border:0 !important; background:transparent !important;
    cursor:zoom-in; font:inherit;
    position:relative; z-index:2;
    border-radius:14px !important;
    transition:transform .12s ease;
  }
  .recipe-header:active { transform:scale(.98); }
  .recipe-header:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
  .recipe-group .recipe-header > img.recipe-thumb,
  .recipe-thumb {
    display:block !important;
    width:48px !important; height:48px !important;
    max-width:48px !important; max-height:48px !important;
    border-radius:12px !important;
    object-fit:cover !important;
    border:1px solid rgba(213,242,91,.55) !important;
    background:rgb(18,20,26);
    box-sizing:border-box !important;
    transition:border-color .15s ease;
  }
  .recipe-group .recipe-header:hover > img.recipe-thumb,
  .recipe-header:hover .recipe-thumb {
    border-color:rgba(213,242,91,.85) !important;
  }
  .recipe-children {
    list-style:none; margin:0; padding:0;
    flex:1 1 auto; min-width:0;
    display:flex; flex-direction:column; gap:6px;
    position:relative; z-index:2;
  }
  .recipe-group .recipe-children img.todo-thumb,
  .recipe-children .todo-thumb {
    border-radius:10px !important;
    border:1px solid rgba(213,242,91,.55) !important;
    box-sizing:border-box !important;
  }
  .recipe-connectors {
    position:absolute; left:0; top:0;
    pointer-events:none; z-index:1; overflow:visible;
  }
  .recipe-connectors path {
    fill:none; stroke:rgba(213,242,91,.42); stroke-width:1.6;
    stroke-linecap:round; stroke-linejoin:round;
  }
  .swipe-cell {
    list-style:none; position:relative; overflow:hidden;
    border-radius:10px; background:transparent;
  }
  .swipe-cell .swipe-action {
    position:absolute; top:0; right:0; bottom:0; width:88px;
    display:flex; align-items:center; justify-content:center;
    color:#fff; font-size:12px; font-weight:700;
    letter-spacing:.04em; text-transform:uppercase;
    user-select:none; pointer-events:none;
    background:#b91c1c; border-radius:0 10px 10px 0;
    border:1px solid var(--border); box-sizing:border-box;
  }
  .swipe-cell .todo.todo-swipe {
    position:relative; z-index:1; margin:0;
    transform:translateX(0); touch-action:pan-y;
    will-change:transform; background:var(--card-bg);
  }
  .swipe-cell.swipe-anim .todo.todo-swipe { transition:transform .22s ease; }
  .recipe-image-pop {
    position:fixed; inset:0; z-index:999999;
    display:flex; align-items:center; justify-content:center;
    padding:24px; cursor:zoom-out;
  }
  .recipe-image-large {
    max-width:min(92vw,720px); max-height:92vh;
    width:auto; height:auto; display:block;
    border-radius:16px; border:1px solid var(--border);
    box-shadow:0 24px 48px rgba(0,0,0,.6);
    background:rgb(18,20,26); object-fit:contain;
  }

  .price-pop .opt-card,
  .price-pop .saved-meal-card,
  .price-pop .food-popup-preview { background:rgb(18,20,26) !important; }
  .price-pop .price-row { background:transparent !important; }
  .price-pop input, .price-pop select { background:rgb(18,20,26) !important; color:#e5e7eb !important; border:1px solid rgb(42,45,51) !important; }
  .price-pop .cook-pill label { background:rgb(18,20,26) !important; color:rgba(255,255,255,.55) !important; border:1px solid rgb(42,45,51) !important; }
  .price-pop .cook-pill input:checked + label { background:rgba(22,163,74,.2) !important; color:#4ade80 !important; border-color:rgba(22,163,74,.4) !important; }

  .shopping-action-btn,
  #generate-shopping-list.shopping-action-btn {
    -webkit-appearance:none !important; appearance:none !important;
    background:rgb(24,27,34) !important; background-image:none !important;
    color:#fff !important; border:1px solid rgb(42,45,51) !important;
    border-radius:10px !important; box-shadow:none !important;
    text-shadow:none !important; text-transform:none !important;
    letter-spacing:normal !important; font-family:inherit !important;
    font-size:13px !important; font-weight:700 !important; line-height:1.2 !important;
    padding:10px !important; cursor:pointer !important;
    transition:background .15s, border-color .15s, color .15s;
  }
  .shopping-action-btn:hover,
  #generate-shopping-list.shopping-action-btn:hover {
    background:rgb(30,33,42) !important; color:#fff !important;
    border-color:rgba(255,255,255,.2) !important;
  }
  .shopping-head { font-size:10px; font-weight:700; color:var(--accent); text-transform:uppercase; letter-spacing:.07em; margin:12px 0 6px; }
  .shopping-item { align-items:flex-start; gap:10px; }
  .shopping-main { display:flex; align-items:flex-start; gap:10px; width:100%; }
  .shopping-check { width:18px; height:18px; accent-color:#16a34a; margin-top:2px; flex:0 0 auto; cursor:pointer; }
  .shopping-text { min-width:0; flex:1 1 auto; display:flex; flex-direction:column; gap:4px; }
  .shopping-topline { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
  .shopping-topline .todo-name { flex:0 1 auto; }
  .shopping-meta { font-size:11px; color:var(--muted); display:flex; flex-wrap:wrap; gap:8px; }
  .currency-btn {
    border:1px solid rgba(22,163,74,.3); background:rgb(24,27,34); color:#4ade80;
    width:30px; height:30px; border-radius:50%; cursor:pointer;
    font-weight:700; font-size:14px; line-height:1;
    display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto;
    transition:background .15s;
  }
  .currency-btn:hover { background:rgba(255,255,255,.04); }
  .shopping-price { color:var(--accent); font-weight:600; }
  .shopping-total-card { margin-top:10px; border:1px solid rgb(42,45,51); border-radius:12px; padding:10px; background:rgb(24,27,34); color:#fff; }
  .shopping-total-card .totals-label, .shopping-total-card .totals-value { color:#fff; }
  .shopping-popup-note { color:var(--muted); font-size:11px; margin-top:6px; }

  .shopping-days-wrap { display:inline-flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:center; }
  .shopping-days-label { color:var(--muted); }
  .shopping-days-trigger {
    -webkit-appearance:none !important; appearance:none !important;
    border:1px solid var(--border) !important;
    background:rgb(24,27,34) !important; background-image:none !important; box-shadow:none !important;
    color:rgba(255,255,255,.65) !important;
    border-radius:10px !important; padding:8px 14px !important;
    font:600 12px/1.2 inherit !important; cursor:pointer !important;
    display:inline-flex !important; align-items:center !important; justify-content:center !important;
    transition:border-color .15s, color .15s, background .15s;
  }
  .shopping-days-trigger:hover { background:rgba(255,255,255,.04) !important; color:#fff !important; border-color:var(--accent) !important; }
  .shopping-days-current { color:var(--accent); font-weight:700; cursor:pointer; }
  .shopping-days-popup-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:12px; }
  .shopping-days-popup-btn {
    background:transparent !important;
    border:1px solid var(--border) !important; color:var(--text) !important;
    border-radius:10px !important; padding:10px 12px !important;
    font:inherit !important; font-size:12px !important; font-weight:700 !important; cursor:pointer;
    transition:border-color .15s, color .15s;
  }
  .shopping-days-popup-btn.active { color:#4ade80 !important; font-weight:700 !important; border-color:rgba(22,163,74,.4) !important; }
  .shopping-days-popup-btn:hover { background:rgb(30,33,42) !important; }

  .section-back-link { cursor:pointer; }
  .section-back-link:hover { text-decoration:underline; }
  .sr-only { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; }

  .pre-inject-hidden { display:none !important; }
  .card.pre-inject-card-hidden { display:none !important; }
  .shopping-mode-hidden { display:none !important; }

  #daily-calories, #daily-protein, #daily-carbs, #daily-fats {
    display:block; width:100%; padding:10px 12px;
    border:1px solid rgb(42,45,51); border-radius:10px;
    background:rgb(24,27,34); color:#e5e7eb;
    box-sizing:border-box; outline:none;
    -webkit-appearance:none; appearance:none;
    margin:0; max-width:100%;
    font:inherit; font-size:14px; font-weight:300;
    transition:border-color .2s;
  }
  #daily-calories:focus, #daily-protein:focus, #daily-carbs:focus, #daily-fats:focus {
    border-color:rgba(213,242,91,.45);
    box-shadow:0 0 0 2px rgba(213,242,91,.06);
    outline:none;
  }
  #daily-calories {
    text-align:center;
    border-color:rgba(74,222,128,.7);
  }
  #lbl-daily-calories, #lbl-daily-protein { color:#4ade80; }
  #lbl-daily-carbs { color:#fb923c; }
  #lbl-daily-fats { color:#f87171; }
  #daily-protein { border-color:rgba(74,222,128,.7); }
  #daily-carbs { border-color:rgba(251,146,60,.75); }
  #daily-fats { border-color:rgba(248,113,113,.75); }
  #daily-calories:focus,
  #daily-protein:focus {
    border-color:rgba(74,222,128,.9);
    box-shadow:0 0 0 2px rgba(74,222,128,.15);
  }
  #daily-carbs:focus {
    border-color:rgba(251,146,60,.9);
    box-shadow:0 0 0 2px rgba(251,146,60,.15);
  }
  #daily-fats:focus {
    border-color:rgba(248,113,113,.9);
    box-shadow:0 0 0 2px rgba(248,113,113,.15);
  }
  .planner-field.is-injected #daily-calories,
  .planner-field.is-injected #daily-protein,
  .planner-field.is-injected #daily-carbs,
  .planner-field.is-injected #daily-fats {
    color:#e5e7eb !important;
    -webkit-text-fill-color:#e5e7eb !important;
    box-shadow:none !important;
  }
  .planner-field.is-injected #daily-calories {
    text-align:center !important;
    border-style:solid !important;
    border-color:rgba(74,222,128,.7) !important;
  }
  .planner-field.is-injected #lbl-daily-calories,
  .planner-field.is-injected #lbl-daily-protein {
    color:#4ade80 !important;
  }
  .planner-field.is-injected #lbl-daily-carbs {
    color:#fb923c !important;
  }
  .planner-field.is-injected #lbl-daily-fats {
    color:#f87171 !important;
  }
  .planner-field.is-injected #daily-protein {
    border-style:solid !important;
    border-color:rgba(74,222,128,.7) !important;
  }
  .planner-field.is-injected #daily-carbs {
    border-style:solid !important;
    border-color:rgba(251,146,60,.75) !important;
  }
  .planner-field.is-injected #daily-fats {
    border-style:solid !important;
    border-color:rgba(248,113,113,.75) !important;
  }
  .planner-field.is-injected #daily-calories:focus,
  .planner-field.is-injected #daily-protein:focus {
    border-color:rgba(74,222,128,.9) !important;
    box-shadow:0 0 0 2px rgba(74,222,128,.15) !important;
  }
  .planner-field.is-injected #daily-carbs:focus {
    border-color:rgba(251,146,60,.9) !important;
    box-shadow:0 0 0 2px rgba(251,146,60,.15) !important;
  }
  .planner-field.is-injected #daily-fats:focus {
    border-color:rgba(248,113,113,.9) !important;
    box-shadow:0 0 0 2px rgba(248,113,113,.15) !important;
  }

  .planner-grid, .planner-choice-grid, .planner-results-grid,
  .planner-actions-split, .planner-builder, .planner-box,
  .card, .aldi-wrap, .aldi-grid { max-width:100%; overflow-x:hidden; }
  .planner-field, .planner-choice, .planner-choice-body { min-width:0; }
  .planner-choice-image, img { max-width:100%; height:auto; }
  .planner-grid.macro-grid .planner-field,
  .planner-builder .planner-grid:first-child .planner-field { overflow:visible; }
  .planner-builder .planner-grid, .planner-builder .planner-field { overflow:visible !important; }

  @media (max-width:720px){
    .planner-field input,
    .planner-field select,
    .price-row input,
    .price-row select,
    #aldi-search,
    #daily-calories,
    #daily-protein,
    #daily-carbs,
    #daily-fats {
      font-size:16px !important;
      transform:translateZ(0);
    }
  }

  #had-footer-note { text-align:center; margin-top:14px; font-size:11px; color:rgba(255,255,255,.3); }
