:root { --radius: 18px; }

header { padding: .65rem max(.85rem, env(safe-area-inset-left)); }
.brand { gap: .55rem; }
.brand img { width: 36px; height: 36px; border-radius: 10px; }
.brand span { font-size: 1.15rem; }
nav { gap: .25rem; }
nav a { padding: .5rem .6rem; font-size: .86rem; }
main { padding: clamp(.85rem, 2.5vw, 1.75rem); }

.page-title {
  display: flex;
  align-items: baseline;
  gap: .8rem;
  padding: .2rem 0 .8rem;
  border-bottom: 1px solid rgba(45, 101, 116, .55);
  margin-bottom: .9rem;
}
.page-title h1 { font-size: clamp(1.65rem, 4vw, 2.15rem); line-height: 1.1; margin: 0; }
.page-title p { margin: 0; color: var(--muted); font-size: .92rem; }
.grid { gap: .8rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); }
.card { border-radius: 18px; padding: 1rem; box-shadow: 0 12px 30px rgba(0, 0, 0, .16); }
.app-card { min-height: 160px; }
.app-icon { font-size: 1.5rem; }
.app-card h2 { font-size: 1.45rem; }
.auth { padding-top: 4vh; }
.auth-logo { width: 72px; height: 72px; border-radius: 18px; }
.auth h1 { font-size: clamp(1.9rem, 6vw, 2.5rem); }

.meal-shopping-link { display:flex;align-items:center;flex-wrap:wrap;gap:.5rem 1rem;margin:1rem 0;font-size:.9rem; }
.meal-shopping-link a { color:var(--gold);font-weight:700;white-space:nowrap; }
.shopping-toolbar { align-items:center; }
.page-title.shopping-title { align-items:center;justify-content:space-between;flex-direction:row; }
.shopping-title button { white-space:nowrap;font-size:.9rem;padding:.7rem .8rem; }
.shopping-edit { padding:0;width:36px;height:36px;flex:none; }
.shopping-item { flex-wrap:wrap; }
.shopping-store { margin-left:auto; }
#shopping-form-error:empty { display:none; }
.shopping-toolbar p { margin:.3rem 0 0;font-size:.9rem; }
#shopping-status:empty { display:none; }
.shopping-card { padding:.25rem 1rem; }
.shopping-item { display:flex;align-items:center;gap:.75rem;padding:.85rem 0;border-bottom:1px solid var(--line); }
.shopping-item:last-child { border-bottom:0; }
.shopping-check { display:flex;align-items:center;gap:.8rem;flex:1;min-width:0;font-weight:400;cursor:pointer; }
.shopping-check input { width:22px;height:22px;margin:0;flex:none;accent-color:var(--gold); }
.shopping-check>span { min-width:0;overflow-wrap:anywhere; }
.shopping-amount,.shopping-source { display:block;font-size:.86rem;margin-top:.2rem; }
.shopping-item.have .shopping-check { opacity:.55; }
.shopping-item.have b { text-decoration:line-through; }
.shopping-store { color:var(--gold);font-size:.85rem;padding:.5rem 0;white-space:nowrap; }

main.trips-frame {
  width: 100%;
  max-width: none;
  height: calc(100dvh - 62px);
  padding: 0;
  overflow: hidden;
}
.trips-frame iframe { display: block; width: 100%; height: 100%; border: 0; background: var(--ink); }

@media (max-width: 780px) {
  .page-title { align-items: flex-start; flex-direction: column; gap: .15rem; }
  .hero { padding: .5rem 0 1rem; }
  .hero h1 { font-size: 2rem; }
  .app-card { min-height: 140px; }
}
