/* public/assets/css/app.css (Modern LIGHT) */
:root{
  /* Alsace-inspired neutrals */
  --bg0:#f7f7f9;
  --bg1:#fbfbfc;
  --card:#ffffff;
  --border:rgba(17,24,39,.12);
  --shadow:0 14px 40px rgba(17,24,39,.10);
  --shadow2:0 10px 24px rgba(17,24,39,.08);
  --muted:#6b7280;
  --text:#0f172a;
  /* Alsace palette */
  --primary:#C8102E;
  --primary-dark:#A50E26;
  /* RGB helpers (override via Paramètres -> Couleurs) */
  --app-primary-rgb: 200,16,46;
  --app-primary-dark-rgb: 165,14,38;

  --primary-soft: rgba(var(--app-primary-rgb), .12);

  /* Bootstrap color mapping (colors only) */
  --bs-primary: var(--primary);
  --bs-link-color: var(--primary);
  --bs-link-hover-color: var(--primary-dark);
}

html, body{height:100%;}
body{
  color:var(--text);
  background:
    radial-gradient(1200px 800px at 15% 10%, rgba(var(--app-primary-rgb), .10), transparent 55%),
    radial-gradient(900px 650px at 85% 15%, rgba(var(--app-primary-dark-rgb), .08), transparent 52%),
    radial-gradient(900px 700px at 55% 95%, rgba(17,24,39,.06), transparent 55%),
    linear-gradient(180deg, var(--bg0), var(--bg1));
}

/* Navbar / sidebar */
.navbar-app{
  background:rgba(255,255,255,.80) !important;
  backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--border);
}
.sidebar{
  background:rgba(255,255,255,.72);
  backdrop-filter:saturate(180%) blur(12px);
  border-right:1px solid var(--border);
}
.offcanvas{ background:rgba(255,255,255,.94); }

/* Cards */
.card-glass{
  background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.98));
  border:1px solid var(--border);
  box-shadow:var(--shadow2);
}
.card-glass.hover-lift{
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.card-glass.hover-lift:hover{
  transform: translateY(-2px);
  box-shadow:var(--shadow);
  border-color: rgba(var(--app-primary-rgb), .22);
}

/* Buttons */
.btn-soft{
  background:rgba(15,23,42,.05);
  border:1px solid var(--border);
  color:var(--text);
}
.btn-soft:hover{ background:rgba(15,23,42,.08); }

/* Inputs - more visible */
.form-control, .form-select, .input-group-text{
  background:rgba(255,255,255,.98);
  border:1px solid rgba(15,23,42,.20);
  color:var(--text);
  border-radius:14px;
}
.form-control::placeholder{ color:rgba(15,23,42,.45); }
.form-control:focus, .form-select:focus{
  border-color: rgba(var(--app-primary-rgb), .55);
  box-shadow:0 0 0 .25rem rgba(var(--app-primary-rgb), .12);
}
.form-control[type="file"]{ padding:.65rem .85rem; }
.form-label{ color:var(--text); font-weight:600; }
textarea.form-control{ min-height:110px; }

.table-soft{
  --bs-table-bg: rgba(255,255,255,.95);
  --bs-table-border-color: var(--border);
  color:var(--text);
}
.table-soft thead th{ color:#334155; font-weight:600; }
.table-hover>tbody>tr:hover>*{ background: rgba(var(--app-primary-rgb), .04) !important; }

.small-muted{ color:var(--muted); }
a{ text-decoration:none; }

@media (max-width: 575.98px){
  .display-6{ font-size: 1.8rem; }
  .card-glass{ border-radius: 1.1rem !important; }
}

/* Loader overlay (Lottie) */
.app-loader{
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(243,244,246,.72);
  backdrop-filter: blur(4px);
  z-index: 9999;
}
.app-loader.show{ display:flex; }
.app-loader .box{
  width: min(520px, 100%);
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(17,24,39,.10);
  border-radius: 22px;
  padding: 18px 18px;
  box-shadow: 0 18px 44px rgba(0,0,0,.14);
  display: flex;
  align-items: center;
  gap: 14px;
}
.app-loader .anim{
  width: 72px;
  height: 72px;
  flex: 0 0 72px;
}
.app-loader .label{
  color: rgba(17,24,39,.78);
  font-weight: 700;
  letter-spacing: .2px;
}

/* Premium inline loaders (buttons/links) */
.btn.is-loading,
a.btn.is-loading{
  position: relative;
  pointer-events: none;
  opacity: .92;
}

.btn.is-loading .btn-loader,
a.btn.is-loading .btn-loader{
  display: inline-flex;
  align-items: center;
  gap: .45rem;
}

.btn.is-loading .btn-loader svg,
a.btn.is-loading .btn-loader svg{
  width: 1.05em;
  height: 1.05em;
  flex: 0 0 auto;
}

.btn.is-loading{
  filter: saturate(.95);
}

/* Subtle shimmer on the overlay card */
.app-loader .box{
  position: relative;
  overflow: hidden;
}
.app-loader .box::after{
  content: "";
  position: absolute;
  inset: -40% -60%;
  background: linear-gradient(115deg, transparent 40%, rgba(255,255,255,.55) 50%, transparent 60%);
  transform: translateX(-30%);
  animation: appLoaderShimmer 1.6s linear infinite;
  pointer-events: none;
}
@keyframes appLoaderShimmer{
  0%{ transform: translateX(-35%); }
  100%{ transform: translateX(35%); }
}

/* ------------------------------------------------------------
   Mobile: prevent company logos from overflowing cards
   (e.g., member profile right-side logo)
------------------------------------------------------------- */
.member-company-logo{
  height: 48px;
  width: auto;
  max-width: 180px;
  object-fit: contain;
  display: block;
}

@media (max-width: 576px){
  .member-company-logo{
    height: 38px;
    max-width: 52vw;
  }
}
