/* Pantry: compact, left- and top-justified (David, Nov 7, 2026: the first
   version's text and boxes were far too big). Small type, tight rows,
   content starts at the top-left of the page instead of a centred column. */
* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 14px;
  background: #f6f4ee;
  color: #22281f;
}
.site-header {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 10px;
  background: #2e5e3a; color: #fff;
}
.app-icon { width: 28px; height: 28px; border-radius: 6px; }
.site-header h1 { margin: 0; font-size: 1.1rem; }
.tagline { margin: 1px 0 0; font-size: 0.8rem; opacity: 0.9; }

.main { margin: 0; padding: 8px; }

.add-form {
  display: flex; flex-wrap: wrap; gap: 6px;
  background: #fff; border: 1px solid #ddd6c4; border-radius: 8px;
  padding: 8px;
}
.add-form input, .add-form select {
  font-size: 0.9rem; padding: 6px 8px; border: 1px solid #bbb; border-radius: 6px;
  min-height: 34px;
}
#add-name { flex: 2 1 150px; }
#add-note { flex: 1 1 110px; }
.add-btn {
  font-size: 0.9rem; min-height: 34px; padding: 6px 14px;
  background: #2e5e3a; color: #fff; border: none; border-radius: 6px; cursor: pointer;
}
.search-row { margin-top: 8px; }
#search {
  width: 100%; font-size: 0.9rem; padding: 6px 8px;
  border: 1px solid #bbb; border-radius: 6px; min-height: 34px;
}
.status-line { min-height: 1.1em; margin: 6px 0; color: #6b6f66; font-size: 0.85rem; }
.status-line.error { color: #a33; }

.columns { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; align-items: start; }
.column {
  background: #fff; border: 1px solid #ddd6c4; border-radius: 8px; padding: 8px 10px;
}
.column h2 { margin: 2px 0 6px; font-size: 1rem; }
.count { color: #6b6f66; font-size: 0.85rem; font-weight: normal; }

.item-list { list-style: none; margin: 0; padding: 0; }
.item {
  display: flex; align-items: stretch; gap: 4px;
  border-top: 1px solid #eee7d6; padding: 2px 0;
}
.item:first-child { border-top: none; }
.flip {
  display: flex; align-items: center; gap: 8px; flex: 1 1 auto;
  background: none; border: none; cursor: pointer; text-align: left;
  padding: 3px 2px; min-height: 30px; font: inherit; color: inherit;
}
.box {
  flex: 0 0 auto; width: 20px; height: 20px; border: 2px solid #2e5e3a;
  border-radius: 5px; display: inline-flex; align-items: center; justify-content: center;
  font-size: 0.95rem; color: #2e5e3a; background: #fff;
}
#shopping-list .box { background: #fff; }
#pantry-list .box { background: #e7f0e4; }
.item-main { display: flex; flex-direction: column; }
.item-name { font-size: 0.95rem; }
.item-note { font-size: 0.8rem; color: #6b6f66; }
.row-btn {
  align-self: center; font-size: 0.8rem; min-height: 30px; padding: 4px 8px;
  background: #f0ede2; border: 1px solid #d8d2bf; border-radius: 6px; cursor: pointer;
}
.del-btn { color: #8a2f2f; }
.empty { color: #6b6f66; margin: 4px 0; }

.edit-row { display: flex; flex-wrap: wrap; gap: 5px; padding: 4px 0; }
.edit-row input {
  font-size: 0.9rem; padding: 6px 8px; border: 1px solid #bbb; border-radius: 6px; min-height: 32px;
}
.edit-row .e-name { flex: 2 1 130px; }
.edit-row .e-note { flex: 1 1 100px; }

.site-footer { margin: 0; padding: 4px 8px 14px; color: #6b6f66; font-size: 0.8rem; }
.site-footer p { margin: 4px 0; }

@media (max-width: 640px) {
  .columns { grid-template-columns: 1fr; }
}
