/* Haraka Immo — Styles complémentaires */

/* Scrollbar fine */
* { scrollbar-width: thin; scrollbar-color: #f97316 transparent; }
::-webkit-scrollbar { width: 4px; height: 4px; }
::-webkit-scrollbar-thumb { background: #f97316; border-radius: 4px; }

/* Transitions globales */
a, button { transition: opacity .15s, transform .1s; }

/* Cards */
.card { background: white; border-radius: 1rem; box-shadow: 0 1px 6px rgba(0,0,0,.07); }

/* Inputs */
.input {
  width: 100%;
  padding: .625rem 1rem;
  border: 2px solid #e5e7eb;
  border-radius: .75rem;
  font-size: .95rem;
  transition: border-color .2s, box-shadow .2s;
  background: white;
}
.input:focus {
  outline: none;
  border-color: #f97316;
  box-shadow: 0 0 0 3px rgba(249,115,22,.15);
}

/* Btn primaire */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  padding: .75rem 1.5rem;
  border-radius: .75rem;
  font-weight: 600;
  font-size: .9rem;
  cursor: pointer;
  border: none;
  transition: opacity .15s, transform .1s;
}
.btn:active { transform: scale(.98); opacity: .9; }
.btn-primary { background: linear-gradient(135deg, #f97316, #fb923c); color: white; }
.btn-secondary { background: #1e3a5f; color: white; }
.btn-ghost { background: #f3f4f6; color: #374151; }
.btn-danger { background: #ef4444; color: white; }
.btn-sm { padding: .45rem 1rem; font-size: .8rem; }
.btn-full { width: 100%; }

/* Badge statut */
.badge { display: inline-flex; align-items: center; padding: .2rem .6rem; border-radius: 9999px; font-size: .7rem; font-weight: 600; }

/* Stat card */
.stat-card { background: white; border-radius: 1rem; padding: 1rem; box-shadow: 0 1px 6px rgba(0,0,0,.06); }

/* Photo carousel */
.carousel-img { width: 100%; height: 220px; object-fit: cover; border-radius: 1rem; }

/* Toast notification */
.toast {
  background: white;
  border-radius: .75rem;
  padding: .75rem 1rem;
  box-shadow: 0 4px 20px rgba(0,0,0,.15);
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  pointer-events: auto;
  animation: slide-in-right .25s ease-out;
}
@keyframes slide-in-right {
  from { transform: translateX(100%); opacity: 0; }
  to   { transform: translateX(0);    opacity: 1; }
}

/* Loader */
.spinner {
  width: 1.5rem; height: 1.5rem;
  border: 3px solid rgba(249,115,22,.3);
  border-top-color: #f97316;
  border-radius: 50%;
  animation: spin .7s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* Section label */
.section-label { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: #9ca3af; margin-bottom: .5rem; }

/* Pill tag */
.pill { background: #fff7ed; color: #c2410c; border-radius: 9999px; padding: .15rem .6rem; font-size: .72rem; font-weight: 600; }

/* Gradient header */
.hero-gradient { background: linear-gradient(135deg, #1e3a5f 0%, #f97316 100%); }

/* Prix bien */
.prix-tag { font-size: 1.1rem; font-weight: 700; color: #f97316; }

/* Map placeholder */
.map-placeholder { background: linear-gradient(135deg, #e0f2fe, #bae6fd); border-radius: 1rem; display: flex; align-items: center; justify-content: center; color: #0369a1; font-weight: 600; }

/* Table mobile */
.table-mobile td { display: block; padding: .25rem 0; }
.table-mobile td::before { content: attr(data-label); font-weight: 600; font-size: .7rem; color: #6b7280; display: block; }
