:root {
  --orange: #E87210;
  --marine: #1C3D6B;
  --rouge: #D43020;
  --creme: #FDF6ED;
  --gris-texte: #5F5E5A;
  --blanc: #FFFFFF;
  --radius-card: 12px;
  --radius-pill: 20px;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: 'Nunito', -apple-system, sans-serif;
  background: var(--creme);
  color: var(--marine);
  padding-bottom: 70px;
}

img { max-width: 100%; display: block; }

a { text-decoration: none; color: inherit; }

/* Header */
.app-header {
  background: var(--marine);
  padding: 16px;
  border-radius: 0 0 16px 16px;
}

.app-header .greeting {
  color: var(--creme);
  font-size: 13px;
  opacity: 0.85;
  margin: 0;
}

.app-header .location {
  color: var(--creme);
  font-size: 17px;
  font-weight: 700;
  margin: 2px 0 12px;
}

.app-header .location i { color: var(--orange); margin-right: 4px; }

.header-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.bell-btn {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--orange);
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
}

.bell-btn i { color: var(--creme); font-size: 18px; }

.search-bar {
  background: var(--creme);
  border-radius: var(--radius-card);
  padding: 10px 14px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.search-bar i { color: var(--marine); font-size: 18px; }

.search-bar input {
  border: none;
  background: transparent;
  font-size: 14px;
  color: var(--gris-texte);
  width: 100%;
  outline: none;
}

/* Section titles */
.section-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 16px 8px;
}

.section-title span.label {
  font-size: 15px;
  font-weight: 700;
}

.section-title span.label i { margin-right: 6px; }

.section-title a.see-all {
  font-size: 12px;
  color: var(--orange);
}

/* Horizontal scroll rows */
.h-scroll {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  padding: 0 16px 16px;
  -webkit-overflow-scrolling: touch;
}

.h-scroll::-webkit-scrollbar { display: none; }

/* Cards */
.card {
  background: var(--blanc);
  border-radius: var(--radius-card);
  border: 0.5px solid rgba(28,61,107,0.1);
  overflow: hidden;
  flex: 0 0 auto;
}

.card-wide { width: 220px; }

.card img.card-thumb { height: 110px; width: 100%; object-fit: cover; background: #eee; }

.card-body { padding: 10px 12px; }

.card-title { font-size: 13px; font-weight: 700; margin: 0 0 2px; }

.card-sub { font-size: 11px; color: var(--gris-texte); margin: 0; }

.badge {
  position: absolute;
  top: 8px;
  left: 8px;
  background: var(--rouge);
  color: var(--blanc);
  font-size: 10px;
  padding: 3px 8px;
  border-radius: 6px;
}

.thumb-wrap { position: relative; }

/* List rows */
.list-row {
  display: flex;
  gap: 10px;
  background: var(--blanc);
  border-radius: var(--radius-card);
  border: 0.5px solid rgba(28,61,107,0.1);
  padding: 8px;
  margin: 0 16px 10px;
}

.list-row img.list-thumb {
  width: 56px;
  height: 56px;
  border-radius: 8px;
  object-fit: cover;
  flex-shrink: 0;
  background: #eee;
}

.list-row .info { flex: 1; }

.list-row .fav { align-self: center; font-size: 18px; color: var(--gris-texte); }
.list-row .fav.active { color: var(--rouge); }

/* Filter chips */
.chip-row {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 12px 16px;
}

.chip {
  flex: 0 0 auto;
  background: var(--blanc);
  border: 0.5px solid rgba(28,61,107,0.15);
  color: var(--marine);
  font-size: 12px;
  padding: 6px 14px;
  border-radius: var(--radius-pill);
}

.chip.active { background: var(--orange); color: var(--blanc); border-color: var(--orange); }

/* Bottom nav */
.bottom-nav {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: var(--blanc);
  border-top: 0.5px solid rgba(28,61,107,0.1);
  display: flex;
  justify-content: space-around;
  align-items: center;
  padding: 8px 8px calc(8px + env(safe-area-inset-bottom));
  z-index: 2000;
}

.nav-item { text-align: center; color: var(--gris-texte); }
.nav-item.active { color: var(--orange); }
.nav-item i { font-size: 20px; }
.nav-item span { display: block; font-size: 10px; margin-top: 2px; }

.state-msg { text-align: center; color: var(--gris-texte); font-size: 13px; padding: 24px 16px; }

/* Grid for explorer */
.grid-2 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 8px 16px 16px;
}
