/*
  SEYVO BASE — Phase 48F
  Primitives partagées seulement. Aucun token :root ici.
*/

html { font-family: var(--seyvo-font); }

body {
  min-width: 0;
  overflow-x: hidden;
  color: var(--seyvo-text);
  font-family: var(--seyvo-font);
  text-rendering: optimizeLegibility;
}

body,
button,
input,
textarea,
select { font-family: var(--seyvo-font); }

a { transition: color .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease; }

img,
svg,
canvas,
video,
iframe { max-width: 100%; }

main,
.container,
.container-fluid,
.row,
[class*="col-"],
.card,
.card-body { min-width: 0; }

.card,
.seyvo-card,
.sv-card {
  border-color: var(--seyvo-border);
  border-radius: var(--seyvo-radius-md);
  box-shadow: var(--seyvo-shadow-xs);
  overflow: visible;
}

.card-header,
.card-footer { border-color: var(--seyvo-border); }

.btn {
  border-radius: var(--seyvo-radius-sm);
  font-weight: 700;
}

.btn-sm { border-radius: var(--seyvo-radius-xs); }

.btn-primary,
.btn-custom {
  border-color: transparent;
  background: var(--sv-primary);
  color: var(--seyvo-white);
}

.btn-primary:hover,
.btn-custom:hover {
  border-color: transparent;
  background: var(--sv-primary-hover);
  color: var(--seyvo-white);
}

/* Couleurs Bootstrap/legacy redirigées vers la palette Seyvo */
.bg-primary { background-color: var(--sv-primary); }
.text-primary { color: var(--sv-primary); }
.border-primary { border-color: var(--sv-primary); }

/* btn-custom actif — global OK (c'est un CTA Seyvo) */
.btn-custom.active,
.btn-custom:active {
  color: var(--seyvo-white);
  background: var(--sv-primary);
  border-color: var(--sv-primary);
  box-shadow: 0 10px 28px rgba(var(--seyvo-primary-rgb), .18);
}

/* nav-pills actif — scopé aux contextes app/admin pour éviter propagation globale */
/* Utiliser .nav-pills.is-primary pour forcer la couleur primaire ailleurs */
.seyvo-shell-body .nav-pills .nav-link.active,
.seyvo-shell-body .nav-pills .show > .nav-link,
.seyvo-admin-shell-body .nav-pills .nav-link.active,
.seyvo-admin-shell-body .nav-pills .show > .nav-link,
.nav-pills.is-primary .nav-link.active,
.nav-pills.is-primary .show > .nav-link {
  color: var(--seyvo-white);
  background: var(--sv-primary);
  border-color: var(--sv-primary);
  box-shadow: 0 10px 28px rgba(var(--seyvo-primary-rgb), .18);
}

/* Variante neutre (ink): .nav-pills.is-neutral */
.nav-pills.is-neutral .nav-link.active,
.nav-pills.is-neutral .show > .nav-link {
  color: var(--seyvo-white);
  background: var(--seyvo-ink);
  border-color: var(--seyvo-ink);
  box-shadow: 0 10px 28px rgba(14, 26, 18, .18);
}

/* Variante info (sky): .nav-pills.is-info */
.nav-pills.is-info .nav-link.active,
.nav-pills.is-info .show > .nav-link {
  color: var(--seyvo-white);
  background: var(--seyvo-accent-sky);
  border-color: var(--seyvo-accent-sky);
  box-shadow: 0 10px 28px rgba(var(--seyvo-accent-sky-rgb), .18);
}

.btn-primary:focus,
.btn-custom:focus {
  border-color: var(--sv-primary);
  box-shadow: 0 0 0 .2rem rgba(var(--seyvo-primary-rgb),.14);
}

.form-control,
.custom-select,
.input-group-text {
  border-color: var(--seyvo-border);
  border-radius: var(--seyvo-radius-sm);
}

.form-control:focus,
.custom-select:focus {
  border-color: rgba(var(--seyvo-primary-rgb),.42);
  box-shadow: 0 0 0 .2rem rgba(var(--seyvo-primary-rgb),.12);
}

.table-responsive,
.sv-table-scroll,
.sv-overflow-x-auto,
.seyvo-overflow-x-auto {
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
}

.table th,
.table td { vertical-align: middle; }

.nav-pills .nav-link,
.nav-tabs .nav-link { border-radius: var(--seyvo-radius-sm); }

.dropdown-menu {
  z-index: var(--seyvo-dropdown-z);
  border-color: var(--seyvo-border);
  border-radius: var(--seyvo-radius-sm);
  box-shadow: var(--seyvo-shadow-menu);
}

.modal { z-index: var(--seyvo-modal-z, 2000) !important; }
.modal-backdrop { z-index: var(--seyvo-backdrop-z, 1990) !important; }
body.modal-open .modal.show { z-index: var(--seyvo-modal-z, 2000) !important; }
body.modal-open .modal-backdrop.show { z-index: var(--seyvo-backdrop-z, 1990) !important; }

.sv-min-w-0,
.seyvo-min-w-0 { min-width: 0; }

.sv-w-100,
.seyvo-w-100 { width: 100% !important; }

.sv-max-w-100,
.seyvo-max-w-100 { max-width: 100% !important; }

.sv-overflow-hidden,
.seyvo-overflow-hidden { overflow: hidden !important; }

.sv-text-nowrap,
.seyvo-text-nowrap { white-space: nowrap; }

.seyvo-pill,
.sv-status-pill {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  border-radius: var(--seyvo-radius-pill);
  padding: .32rem .68rem;
  font-size: .78rem;
  font-weight: 800;
  background: var(--seyvo-soft);
  color: var(--seyvo-text);
}

.seyvo-pill-success { background: var(--seyvo-success-soft); color: #047857; }
.seyvo-pill-warning { background: var(--seyvo-gold-soft); color: #B45309; }
.seyvo-pill-danger { background: var(--seyvo-red-soft); color: #B91C1C; }
.seyvo-pill-brand { background: var(--seyvo-primary-soft); color: var(--seyvo-primary-700); }

@media (max-width: 991.98px) {
  .dropdown-menu { max-width: calc(100vw - 1rem); }
  .table-responsive table { min-width: 680px; }
}

@media (max-width: 575.98px) {
  .container,
  .container-fluid {
    padding-left: .875rem;
    padding-right: .875rem;
  }

  .card { border-radius: var(--seyvo-radius-sm); }
}
