/* =========================================================
   RECIPANION — COMPACT SHOPPING V1
   Boodschappen zijn de main event.
   ========================================================= */


/* ---------------------------------------------------------
   Dubbele logout weg
   --------------------------------------------------------- */

.shopping-v1-page
#shopping-v1-logout {
  display: none !important;
}


/* ---------------------------------------------------------
   Lijstselector: veel compacter
   --------------------------------------------------------- */

.shopping-v1-page
.shopping-lists-v1 {
  margin: 0 0 12px;
  padding: 12px 14px;

  border-radius: 14px;

  background: #fffdf9;
}

.shopping-v1-page
.shopping-lists-v1-main {
  align-items: center;
  gap: 10px;
}

.shopping-v1-page
.shopping-lists-v1-select-wrap label {
  margin-bottom: 4px;

  font-size: .72rem;
}

.shopping-v1-page
#shopping-lists-v1-select {
  min-height: 40px;
}

.shopping-v1-page
.shopping-lists-v1-meta {
  margin-top: 4px;

  font-size: .72rem;
}


/* Nieuw blijft zichtbaar */

.shopping-v1-page
#shopping-lists-v1-new {
  min-height: 40px;

  padding: 0 13px;

  font-size: .82rem;
}


/* ---------------------------------------------------------
   ... beheermenu
   --------------------------------------------------------- */

.shopping-lists-v1-overflow {
  position: relative;

  flex: 0 0 auto;
}

.shopping-lists-v1-overflow-trigger {
  width: 42px;
  min-width: 42px;
  height: 40px;
  min-height: 40px;

  padding: 0 !important;

  border: 1px solid
    rgba(49, 84, 58, .16) !important;

  border-radius: 11px !important;

  background: transparent !important;
  color: #405146 !important;

  font-size: 1.05rem !important;
  letter-spacing: 1px;
}

.shopping-lists-v1-overflow-menu {
  position: absolute;

  top: calc(100% + 7px);
  right: 0;

  z-index: 200;

  min-width: 185px;

  padding: 6px;

  border: 1px solid
    rgba(49, 84, 58, .14);

  border-radius: 12px;

  background: #fffdf9;

  box-shadow:
    0 12px 32px
    rgba(35, 47, 38, .14);
}

.shopping-lists-v1-overflow-menu[hidden] {
  display: none;
}

.shopping-lists-v1-overflow-menu button {
  display: block;

  width: 100%;
  min-height: 38px;

  padding: 8px 10px !important;

  border: 0 !important;
  border-radius: 8px !important;

  background: transparent !important;

  color: #334038 !important;

  text-align: left;

  font-size: .82rem !important;
}

.shopping-lists-v1-overflow-menu
#shopping-lists-v1-delete {
  color: #a84936 !important;
}


/* ---------------------------------------------------------
   Boodschap toevoegen: direct zichtbaar, geen grote kaart
   --------------------------------------------------------- */

.shopping-v1-page
.shopping-v1-add-card {
  margin: 0 0 10px;

  padding: 0;

  border: 0;

  background: transparent;

  box-shadow: none;
}

.shopping-v1-page
.shopping-v1-add-card > h2,
.shopping-v1-page
.shopping-v1-add-card > p {
  display: none;
}

.shopping-v1-page
.shopping-v1-add-form {
  gap: 8px;
}

.shopping-v1-page
.shopping-v1-input {
  min-height: 44px;

  border-radius: 12px;
}

.shopping-v1-page
.shopping-v1-add-form
.shopping-v1-primary {
  min-height: 44px;

  padding-inline: 16px;

  border-radius: 12px;
}


/* Oude progressbalk neemt geen ruimte meer in */

.shopping-v1-page
.shopping-v1-progress {
  display: none;
}


/* ---------------------------------------------------------
   Samenvatting: geen grote card meer
   --------------------------------------------------------- */

.shopping-v1-page
.shopping-v1-toolbar {
  min-height: 0;

  margin: 2px 0 8px;

  padding: 0 4px;

  border: 0;

  background: transparent;

  box-shadow: none;
}

.shopping-v1-page
.shopping-v1-summary {
  color: #5f695f;

  font-size: .82rem;
  font-weight: 700;
}


/* ---------------------------------------------------------
   De echte lijst krijgt de aandacht
   --------------------------------------------------------- */

.shopping-v1-page
.shopping-v1-grid {
  display: block;

  margin: 0;
}

.shopping-v1-page
.shopping-v1-list-card,
.shopping-v1-page
.shopping-v1-done-card {
  padding: 16px 18px;

  border-radius: 16px;

  box-shadow: none;
}

.shopping-v1-page
.shopping-v1-list-card {
  margin-bottom: 10px;

  border:
    1px solid
    rgba(49, 84, 58, .10);
}

.shopping-v1-page
.shopping-v1-done-card {
  margin-top: 10px;
}


/* Titel/tooling dichter bij elkaar */

.shopping-v1-page
.shopping-v1-section-head {
  margin-bottom: 8px;
}

.shopping-v1-page
.shopping-v1-section-head h2 {
  font-size: 1.02rem;
}

.shopping-v1-page
.shopping-v1-list-tools {
  margin: 0 0 10px;

  gap: 8px;
}

.shopping-v1-page
.shopping-v1-list-tool-buttons {
  gap: 6px;
}


/* Utilities niet meer als grote primaire knoppen */

.shopping-v1-page
.shopping-v1-list-tool-buttons button {
  min-height: 34px;

  padding: 0 10px;

  border-radius: 9px;

  font-size: .72rem;
}


/* ---------------------------------------------------------
   Recepten + basisvoorraad = hulpmiddelen
   --------------------------------------------------------- */

.shopping-v1-helper-strip {
  display: grid;

  grid-template-columns:
    repeat(2, minmax(0, 1fr));

  gap: 8px;

  margin-top: 12px;
}

.shopping-v1-helper-strip
> section {
  margin: 0;

  padding: 0;

  border:
    1px solid
    rgba(49, 84, 58, .11);

  border-radius: 13px;

  background: #fffdf9;

  box-shadow: none;

  overflow: hidden;
}


/* Als een helper open staat:
   volledige breedte. */

.shopping-v1-helper-strip
> section:has(
  [aria-expanded="true"]
) {
  grid-column: 1 / -1;
}


/* Compacte toggle */

.shopping-v1-helper-strip
.shopping-v1-recipe-sources-toggle,
.shopping-v1-helper-strip
#shopping-v1-pantry-toggle {
  width: 100%;
  min-height: 44px;

  padding: 9px 12px;

  border: 0;

  background: transparent;

  font-size: .78rem;
}


/* Bestaande grote tekst kleiner */

.shopping-v1-helper-strip
.shopping-v1-recipe-sources-title strong,
.shopping-v1-helper-strip
#shopping-v1-pantry-toggle strong {
  font-size: .80rem;
}


/* Chevrons subtiel */

.shopping-v1-helper-strip
.shopping-v1-recipe-sources-chevron,
.shopping-v1-helper-strip
.shopping-v1-pantry-chevron {
  font-size: .72rem;

  opacity: .72;
}


/* Uitgeklapte body */

.shopping-v1-helper-strip
.shopping-v1-recipe-source-body,
.shopping-v1-helper-strip
.shopping-v1-pantry-body {
  padding: 4px 14px 14px;
}


/* ---------------------------------------------------------
   Informatieve sync-card is niet nodig.
   De feature werkt gewoon op de achtergrond.
   --------------------------------------------------------- */

.shopping-v1-page
.shopping-v1-info {
  display: none;
}


/* ---------------------------------------------------------
   Mobiel
   --------------------------------------------------------- */

@media (max-width: 620px) {

  .shopping-v1-page
  .shopping-lists-v1 {
    padding: 11px 12px;
  }

  .shopping-v1-page
  .shopping-lists-v1-main {
    display: grid;

    grid-template-columns:
      minmax(0, 1fr)
      auto;

    align-items: end;
  }

  .shopping-v1-page
  .shopping-lists-v1-select-wrap {
    grid-column: 1 / -1;
  }

  .shopping-v1-page
  .shopping-lists-v1-actions {
    width: auto;

    grid-column: 1 / -1;

    justify-content: flex-end;
  }

  .shopping-v1-page
  #shopping-lists-v1-new {
    flex: 0 1 auto;
  }


  .shopping-v1-page
  .shopping-v1-add-form {
    display: grid;

    grid-template-columns:
      minmax(0, 1fr)
      auto;
  }

  .shopping-v1-page
  .shopping-v1-add-form
  .shopping-v1-primary {
    padding-inline: 13px;
  }


  .shopping-v1-page
  .shopping-v1-list-card,
  .shopping-v1-page
  .shopping-v1-done-card {
    padding: 14px;
  }


  .shopping-v1-helper-strip {
    gap: 7px;
  }

  .shopping-v1-helper-strip
  .shopping-v1-recipe-sources-toggle,
  .shopping-v1-helper-strip
  #shopping-v1-pantry-toggle {
    padding-inline: 9px;
  }
}

/* =========================================================
   COMPACT SHOPPING V1.1 — ALIGNMENT
   ========================================================= */

.shopping-v1-page
.shopping-v1-add-card {
  box-sizing: border-box;
  width: 100%;
  padding-left: 14px;
  padding-right: 14px;
}

.shopping-v1-page
.shopping-v1-add-form {
  box-sizing: border-box;
  width: 100%;
  margin: 0 !important;
}

.shopping-v1-page
.shopping-v1-add-form
.shopping-v1-input {
  min-width: 0;
  width: 100%;
}

@media (max-width: 620px) {
  .shopping-v1-page
  .shopping-v1-add-card {
    padding-left: 12px;
    padding-right: 12px;
  }
}


/* =========================================================
   COMPACT SHOPPING V1.2 — TOP ROW
   ========================================================= */

.shopping-v1-page
.shopping-v1-top-row {
  display: grid;

  grid-template-columns:
    minmax(0, 1.35fr)
    minmax(350px, .85fr);

  gap: 12px;

  align-items: stretch;

  margin-bottom: 10px;
}


/* Beide dezelfde cardvorm */

.shopping-v1-page
.shopping-v1-top-row
.shopping-lists-v1,

.shopping-v1-page
.shopping-v1-top-row
.shopping-v1-add-card {
  box-sizing: border-box;

  width: 100%;
  height: 100%;

  margin: 0;

  padding: 12px 14px;

  border:
    1px solid
    rgba(49, 84, 58, .14);

  border-radius: 14px;

  background: #fffdf9;

  box-shadow: none;
}


/* Geef rechterzijde net als links een klein label */

.shopping-v1-page
.shopping-v1-top-row
.shopping-v1-add-card::before {
  content: "Boodschap toevoegen";

  display: block;

  margin: 0 0 6px;

  color: #59645b;

  font-size: .72rem;
  font-weight: 700;

  letter-spacing: .03em;
}


.shopping-v1-page
.shopping-v1-top-row
.shopping-v1-add-form {
  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    auto;

  gap: 8px;

  width: 100%;
}


.shopping-v1-page
.shopping-v1-top-row
.shopping-v1-input,

.shopping-v1-page
.shopping-v1-top-row
.shopping-v1-add-form
.shopping-v1-primary {
  min-height: 40px;
}


.shopping-v1-page
.shopping-v1-top-row
.shopping-v1-input {
  min-width: 0;
}


.shopping-v1-page
.shopping-v1-top-row
.shopping-v1-primary {
  padding-inline: 13px;

  white-space: nowrap;
}


/* Oude losse padding-override neutraliseren */

.shopping-v1-page
.shopping-v1-top-row
.shopping-v1-add-card {
  padding-left: 14px;
  padding-right: 14px;
}


/* Tablet/mobiel weer onder elkaar */

@media (max-width: 760px) {

  .shopping-v1-page
  .shopping-v1-top-row {
    grid-template-columns: 1fr;

    gap: 8px;
  }

  .shopping-v1-page
  .shopping-v1-top-row
  .shopping-lists-v1,

  .shopping-v1-page
  .shopping-v1-top-row
  .shopping-v1-add-card {
    padding: 11px 12px;
  }
}


/* =========================================================
   COMPACT SHOPPING V1.3
   Gebalanceerde bovenste rij + gelijke velden
   ========================================================= */


/* Links kleiner, rechts duidelijk meer ruimte */
.shopping-v1-page
.shopping-v1-top-row {
  grid-template-columns:
    minmax(0, 0.8fr)
    minmax(0, 1.2fr);

  gap: 12px;
}


/* Beide kaarten exact dezelfde basis */
.shopping-v1-page
.shopping-v1-top-row
.shopping-lists-v1,

.shopping-v1-page
.shopping-v1-top-row
.shopping-v1-add-card {
  padding: 14px;

  border:
    1px solid
    rgba(49, 84, 58, .14);

  border-radius: 14px;

  background: #fffdf9;
}


/* Beide labels identiek */
.shopping-v1-page
.shopping-v1-top-row
.shopping-lists-v1-select-wrap label,

.shopping-v1-page
.shopping-v1-top-row
.shopping-v1-add-card::before {
  display: block;

  margin: 0 0 7px;

  color: #59645b;

  font-size: .72rem;
  font-weight: 700;

  line-height: 1.2;
  letter-spacing: .03em;
}


/* Select en invoerveld exact hetzelfde */
.shopping-v1-page
.shopping-v1-top-row
#shopping-lists-v1-select,

.shopping-v1-page
.shopping-v1-top-row
.shopping-v1-input {
  box-sizing: border-box;

  width: 100%;
  min-height: 44px;
  height: 44px;

  padding:
    0 14px;

  border:
    1px solid
    #d4ddd1;

  border-radius: 12px;

  background: #fffdf9;

  color: #293129;

  font: inherit;

  box-shadow: none;
}


/* Select heeft rechts ruimte nodig voor pijltje */
.shopping-v1-page
.shopping-v1-top-row
#shopping-lists-v1-select {
  padding-right: 36px;
}


/* Zelfde focus-state */
.shopping-v1-page
.shopping-v1-top-row
#shopping-lists-v1-select:focus,

.shopping-v1-page
.shopping-v1-top-row
.shopping-v1-input:focus {
  outline: 2px solid
    rgba(79, 124, 88, .14);

  outline-offset: 0;

  border-color: #4f7c58;
}


/* Beide actiegebieden op dezelfde hoogte */
.shopping-v1-page
.shopping-v1-top-row
.shopping-lists-v1-actions button,

.shopping-v1-page
.shopping-v1-top-row
.shopping-v1-primary {
  min-height: 44px;
  height: 44px;

  border-radius: 12px;
}


/* Linkerkant: selector krijgt ruimte,
   acties blijven compact */
.shopping-v1-page
.shopping-v1-top-row
.shopping-lists-v1-main {
  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    auto;

  gap: 10px;

  align-items: end;
}

.shopping-v1-page
.shopping-v1-top-row
.shopping-lists-v1-select-wrap {
  min-width: 0;
}


/* Rechts: input zoveel mogelijk ruimte */
.shopping-v1-page
.shopping-v1-top-row
.shopping-v1-add-form {
  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    auto;

  gap: 10px;
}


/* Op mobiel weer gewoon onder elkaar */
@media (max-width: 760px) {

  .shopping-v1-page
  .shopping-v1-top-row {
    grid-template-columns: 1fr;
  }

  .shopping-v1-page
  .shopping-v1-top-row
  .shopping-lists-v1,

  .shopping-v1-page
  .shopping-v1-top-row
  .shopping-v1-add-card {
    padding: 12px;
  }
}


/* =========================================================
   COMPACT SHOPPING V1.4 — DEFINITIEVE TOPBAR
   ========================================================= */


/* ---------------------------------------------------------
   Twee nette kaarten naast elkaar
   --------------------------------------------------------- */

.shopping-v1-page .shopping-v1-top-row {
  display: grid !important;
  grid-template-columns:
    minmax(350px, .78fr)
    minmax(0, 1.22fr) !important;

  gap: 12px !important;

  align-items: stretch !important;

  margin: 0 0 10px !important;
}


.shopping-v1-page
.shopping-v1-top-row
.shopping-lists-v1,

.shopping-v1-page
.shopping-v1-top-row
.shopping-v1-add-card {
  box-sizing: border-box !important;

  width: 100% !important;
  height: 100% !important;

  margin: 0 !important;
  padding: 14px !important;

  border:
    1px solid #dfe4dc !important;

  border-radius: 16px !important;

  background: #fffdf9 !important;

  box-shadow: none !important;
}


/* ---------------------------------------------------------
   Labels links en rechts exact gelijk
   --------------------------------------------------------- */

.shopping-v1-page
.shopping-v1-top-row
.shopping-lists-v1-select-wrap > label,

.shopping-v1-page
.shopping-v1-top-row
.shopping-v1-add-card::before {
  display: block !important;

  margin: 0 0 7px !important;

  color: #5d685f !important;

  font-size: .72rem !important;
  font-weight: 700 !important;

  line-height: 1.2 !important;
  letter-spacing: .02em !important;
}


/* ---------------------------------------------------------
   Linkerkaart
   selector + knoppen op DEZELFDE rij
   --------------------------------------------------------- */

.shopping-v1-page
.shopping-v1-top-row
.shopping-lists-v1-main {
  display: grid !important;

  grid-template-columns:
    minmax(0, 1fr)
    auto !important;

  gap: 10px !important;

  align-items: start !important;
}


.shopping-v1-page
.shopping-v1-top-row
.shopping-lists-v1-select-wrap {
  min-width: 0 !important;

  grid-column: auto !important;
}


.shopping-v1-page
.shopping-v1-top-row
.shopping-lists-v1-actions {
  display: flex !important;

  width: auto !important;

  gap: 8px !important;

  align-items: center !important;
  justify-content: flex-end !important;

  /*
   * Zelfde verticale start als het inputveld:
   * labelhoogte + marge erboven.
   */
  margin: 19px 0 0 !important;

  align-self: start !important;

  grid-column: auto !important;
}


/* ---------------------------------------------------------
   Select links + input rechts exact hetzelfde
   --------------------------------------------------------- */

.shopping-v1-page
.shopping-v1-top-row
#shopping-lists-v1-select,

.shopping-v1-page
.shopping-v1-top-row
#shopping-v1-input {
  appearance: auto;

  box-sizing: border-box !important;

  width: 100% !important;
  min-width: 0 !important;

  height: 44px !important;
  min-height: 44px !important;

  margin: 0 !important;

  padding: 0 14px !important;

  border:
    1px solid #d5ddd3 !important;

  border-radius: 12px !important;

  outline: none !important;

  background: #fff !important;

  color: #293129 !important;

  font: inherit !important;
  font-size: .9rem !important;

  box-shadow: none !important;
}


/* ruimte voor native dropdownpijltje */
.shopping-v1-page
.shopping-v1-top-row
#shopping-lists-v1-select {
  padding-right: 34px !important;
}


.shopping-v1-page
.shopping-v1-top-row
#shopping-lists-v1-select:focus,

.shopping-v1-page
.shopping-v1-top-row
#shopping-v1-input:focus {
  border-color: #6c946d !important;

  box-shadow:
    0 0 0 2px
    rgba(79, 124, 88, .10) !important;
}


/* ---------------------------------------------------------
   Subtekst links
   --------------------------------------------------------- */

.shopping-v1-page
.shopping-v1-top-row
.shopping-lists-v1-meta {
  margin: 6px 0 0 !important;

  color: #7a827b !important;

  font-size: .70rem !important;

  line-height: 1.25 !important;
}


/* ---------------------------------------------------------
   Alle actieknoppen exact dezelfde hoogte
   --------------------------------------------------------- */

.shopping-v1-page
.shopping-v1-top-row
#shopping-lists-v1-new,

.shopping-v1-page
.shopping-v1-top-row
.shopping-lists-v1-overflow-trigger,

.shopping-v1-page
.shopping-v1-top-row
.shopping-v1-primary {
  box-sizing: border-box !important;

  height: 44px !important;
  min-height: 44px !important;

  margin: 0 !important;

  border-radius: 12px !important;
}


/* Nieuwe lijst */
.shopping-v1-page
.shopping-v1-top-row
#shopping-lists-v1-new {
  padding: 0 14px !important;

  white-space: nowrap !important;
}


/* Drie puntjes */
.shopping-v1-page
.shopping-v1-top-row
.shopping-lists-v1-overflow-trigger {
  width: 44px !important;
  min-width: 44px !important;

  padding: 0 !important;
}


/* ---------------------------------------------------------
   Rechterkaart
   --------------------------------------------------------- */

.shopping-v1-page
.shopping-v1-top-row
.shopping-v1-add-card {
  display: block !important;
}


.shopping-v1-page
.shopping-v1-top-row
.shopping-v1-add-card > h2,

.shopping-v1-page
.shopping-v1-top-row
.shopping-v1-add-card > p,

.shopping-v1-page
.shopping-v1-top-row
.shopping-v1-progress {
  display: none !important;
}


.shopping-v1-page
.shopping-v1-top-row
.shopping-v1-add-form {
  display: grid !important;

  grid-template-columns:
    minmax(0, 1fr)
    auto !important;

  gap: 10px !important;

  align-items: center !important;

  width: 100% !important;

  margin: 0 !important;
}


/* Toevoegen-knop */
.shopping-v1-page
.shopping-v1-top-row
.shopping-v1-primary {
  padding: 0 18px !important;

  white-space: nowrap !important;
}


/* ---------------------------------------------------------
   Mobiel: kaarten onder elkaar
   --------------------------------------------------------- */

@media (max-width: 760px) {

  .shopping-v1-page
  .shopping-v1-top-row {
    grid-template-columns:
      minmax(0, 1fr) !important;

    gap: 8px !important;
  }


  .shopping-v1-page
  .shopping-v1-top-row
  .shopping-lists-v1-main {
    grid-template-columns:
      minmax(0, 1fr)
      auto !important;
  }


  .shopping-v1-page
  .shopping-v1-top-row
  .shopping-v1-add-form {
    grid-template-columns:
      minmax(0, 1fr)
      auto !important;
  }

}
