/* ============================= */
/* EQUIPEMENTS PAGE — THEME V3   */
/* White / épuré / premium SaaS  */
/* ============================= */

.eq-page{
  padding: 20px;
}

/* ---------- Header page ---------- */
.page-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  margin-bottom:22px;
  flex-wrap:wrap;
}

.page-head__title{
  font-size:28px;
  color: var(--text-main, #0f172a);
  margin:0;
  font-weight:900;
  letter-spacing:-0.02em;
  line-height:1.1;
}

.page-head__subtitle{
  color: var(--text-sub, #64748b);
  font-size:14px;
  margin:6px 0 0 0;
  font-weight:600;
}

/* ---------- KPI ---------- */
.kpi-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap:14px;
  margin-bottom:18px;
}

.kpi-card{
  background: var(--panel, #fff);
  padding:18px;
  border-radius: var(--radius, 16px);
  border: 1px solid var(--border, #e8eef6);
  box-shadow: var(--shadow-xs, 0 1px 6px rgba(15,23,42,.05));
  border-left:4px solid #d6deea; /* défaut soft */
}

.kpi-card__label{
  font-size:11px;
  color: var(--text-sub, #64748b);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:0.08em;
}

.kpi-card__value{
  font-size:26px;
  font-weight:900;
  color: var(--text-main, #0f172a);
  margin-top:6px;
}

/* ✅ Couleurs “pas stériles”, mais premium */
.kpi-card--blue{  border-left-color:#6366f1; } /* indigo */
.kpi-card--green{ border-left-color:#10b981; } /* emerald */
.kpi-card--amber{ border-left-color:#f59e0b; } /* amber */

/* ---------- Filters bar ---------- */
.filters-bar{
  background: var(--panel, #fff);
  padding:16px;
  border-radius: var(--radius, 16px);
  border:1px solid var(--border, #e8eef6);
  margin-bottom:16px;
  display:flex;
  align-items:center;
  gap:12px;
  box-shadow: var(--shadow-xs, 0 1px 6px rgba(15,23,42,.05));
  flex-wrap:wrap;
}

.filters-bar__search{
  position:relative;
  flex:2;
  min-width:240px;
}

.filters-bar__icon{
  position:absolute;
  left:14px;
  top:50%;
  transform: translateY(-50%);
  color:#94a3b8;
  font-size:14px;
}

.filters-bar__input{
  width:100%;
  padding:12px 12px 12px 42px;
  border-radius:14px;
  border:1px solid var(--border, #e8eef6);
  outline:none;
  transition:border-color .15s ease, box-shadow .15s ease;
  font-weight:700;
  color: var(--text-main, #0f172a);
  background:#fff;
}

.filters-bar__input::placeholder{
  color:#94a3b8;
}

.filters-bar__input:focus{
  border-color:#c7d2fe;
  box-shadow: 0 0 0 4px rgba(99,102,241,.10);
}

/* Select propre + lisible */
.filters-bar__select{
  flex: 0 0 220px;
  min-width:200px;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid var(--border, #e8eef6);
  background:#fff;
  cursor:pointer;
  color: var(--text-main, #0f172a);
  font-weight:800;
  outline:none;

  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  background-image:
    linear-gradient(45deg, transparent 50%, #94a3b8 50%),
    linear-gradient(135deg, #94a3b8 50%, transparent 50%);
  background-position:
    calc(100% - 18px) 50%,
    calc(100% - 12px) 50%;
  background-size:6px 6px, 6px 6px;
  background-repeat:no-repeat;
  padding-right: 34px;
}

.filters-bar__select:focus{
  border-color:#c7d2fe;
  box-shadow: 0 0 0 4px rgba(99,102,241,.10);
}

/* ---------- Table ---------- */
.table-card{
  background: var(--panel, #fff);
  border-radius: var(--radius, 16px);
  border:1px solid var(--border, #e8eef6);
  overflow:hidden;
  box-shadow: var(--shadow-xs, 0 1px 6px rgba(15,23,42,.05));
}

.eq-table{
  width:100%;
  border-collapse:collapse;
  text-align:left;
  font-size:14px;
}

.eq-table thead tr{
  background:#fafcff;
  border-bottom:1px solid var(--border-2, #eef2f7);
}

.eq-table th{
  padding:14px 16px;
  font-weight:900;
  color: var(--text-sub, #64748b);
  text-transform:uppercase;
  font-size:12px;
  letter-spacing:0.08em;
}

.eq-table td{
  padding:14px 16px;
  border-bottom:1px solid var(--border-2, #eef2f7);
  color: var(--text-main, #0f172a);
  font-weight:600;
}

.eq-table tbody tr:hover{
  background:#fbfdff;
}

.eq-table__th-right{ text-align:right; }

.table-empty{
  padding:56px !important;
  text-align:center;
  color:#94a3b8;
}

.table-empty__icon{
  font-size:24px;
  margin-bottom:10px;
}

.table-empty__text{
  margin:0;
  font-weight:900;
}

/* ---------- Modal (spécifique) ---------- */
.modal{
  display:none;
  position:fixed;
  inset:0;
  width:100%;
  height:100%;
  background:rgba(15,23,42,0.55);
  z-index:9999;
  align-items:center;
  justify-content:center;
  padding: 18px;
}

.modal--top{
  z-index:10000;
}

.modal__dialog{
  background:#fff;
  width:95%;
  max-width:520px;
  border-radius: 18px;
  padding:24px;
  box-shadow: 0 30px 70px rgba(15,23,42,.25);
  border:1px solid var(--border, #e8eef6);
}

.modal__dialog--wide{
  max-width:480px;
  padding:0;
  overflow:hidden;
  border-radius: 18px;
}

.modal__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  margin-bottom:18px;
}

.modal__dialog--wide .modal__head{
  padding:22px 22px;
  margin-bottom:0;
  border-bottom:1px solid var(--border-2, #eef2f7);
  background:#fafcff;
}

.modal__title{
  margin:0;
  font-size:18px;
  color: var(--text-main, #0f172a);
  font-weight:900;
}

.modal__subtitle{
  margin:6px 0 0 0;
  color: var(--text-sub, #64748b);
  font-size:13px;
  font-weight:700;
}

.modal__close{
  background:none;
  border:none;
  font-size:26px;
  cursor:pointer;
  color:#94a3b8;
  line-height:1;
}

.modal__close--soft{
  background:#f3f6fb;
  border:1px solid var(--border, #e8eef6);
  width:34px;
  height:34px;
  border-radius:12px;
  cursor:pointer;
  color:#64748b;
  font-size:20px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.modal__body{
  padding:0;
}

.modal__body--scroll{
  padding:22px;
  max-height:420px;
  overflow-y:auto;
}

.modal__footer{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:18px;
}

.modal__footer--soft{
  padding:18px 22px;
  background:#fafcff;
  border-top:1px solid var(--border-2, #eef2f7);
  margin-top:0;
}

/* ---------- Form mini styles (modal) ---------- */
.form-field{
  margin-bottom:14px;
}

.form-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:14px;
  margin-bottom:14px;
}

.form-label{
  display:block;
  font-size:11px;
  font-weight:900;
  color: var(--text-sub, #64748b);
  margin-bottom:6px;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.form-control{
  width:100%;
  padding:11px 12px;
  border:1px solid var(--border, #e8eef6);
  border-radius:12px;
  outline:none;
  font-weight:700;
  background:#fff;
  color: var(--text-main, #0f172a);
  transition:border-color .15s ease, box-shadow .15s ease;

  /* select/input consistent */
  font-family: inherit;
}

.form-control:focus{
  border-color:#c7d2fe;
  box-shadow: 0 0 0 4px rgba(99,102,241,.10);
}

.form-control--readonly{
  background:#f8fafc;
  color:#94a3b8;
}

.sn-pill{
  background:#f3f6fb;
  border:1px solid var(--border, #e8eef6);
  padding:10px 12px;
  border-radius:12px;
  margin-bottom:8px;
  text-align:center;
}

.sn-pill span{
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-weight:900;
  color:#475569;
}

/* Buttons (fallback) */
.btn-ghost{
  padding:10px 18px;
  border-radius:12px;
  border:1px solid var(--border, #e8eef6);
  background:#fff;
  cursor:pointer;
  font-weight:900;
  color: var(--text-main, #0f172a);
}

.btn-ghost:hover{ background:#f8fafc; }

.btn-dark{
  padding:10px 18px;
  border-radius:12px;
  border:none;
  background:#0f172a;
  color:#fff;
  cursor:pointer;
  font-weight:900;
}

.btn-dark--block{
  width:100%;
  padding:14px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
}

/* ---------- Responsive ---------- */
@media (max-width: 900px){
  .filters-bar__select{ flex: 1 1 220px; }
}

@media (max-width: 768px){
  .eq-page{ padding:16px; }
  .form-grid{ grid-template-columns:1fr; }
}