/* ==============================
   32 Badges / Status Chips
   Central readable badge palette for light surfaces.
   ============================== */

:root{
  --badge-text:#1f2937;
  --badge-muted-bg:#f1f5f9;
  --badge-muted-text:#475569;
  --badge-muted-border:#cbd5e1;
  --badge-info-bg:#eef5fb;
  --badge-info-text:#345d86;
  --badge-info-border:#9bb7d3;
  --badge-success-bg:#d1fae5;
  --badge-success-text:#065f46;
  --badge-success-border:#34d399;
  --badge-warning-bg:#fef3c7;
  --badge-warning-text:#92400e;
  --badge-warning-border:#f59e0b;
  --badge-danger-bg:#fee2e2;
  --badge-danger-text:#991b1b;
  --badge-danger-border:#f87171;
  --badge-purple-bg:#ede9fe;
  --badge-purple-text:#5b21b6;
  --badge-purple-border:#a78bfa;
  --badge-active-bg:#d1fae5;
  --badge-active-text:#065f46;
  --badge-active-border:#34d399;
  --badge-inactive-bg:#e5e7eb;
  --badge-inactive-text:#374151;
  --badge-inactive-border:#9ca3af;
}

.badge,
.badge-inline,
.status-badge,
.payment-badge,
.mini-badge,
.clockin-badge,
.rs-status-badge,
.op-obs-badge,
.op-kind-badge,
.op-unassigned-badge,
.obs-badge,
.obs-result-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:fit-content;
  max-width:100%;
  min-height:22px;
  padding:3px 9px;
  border-radius:999px;
  border:1px solid var(--badge-muted-border);
  background:var(--badge-muted-bg);
  color:var(--badge-muted-text);
  font-size:12px;
  font-weight:800;
  line-height:1.15;
  white-space:nowrap;
  text-decoration:none;
}

.badge-muted,
.badge-secondary,
.badge-holiday,
.badge--ghost,
.badge--muted,
.badge.inactive,
.badge--inactive,
.status-badge.is-inactive,
.badge-inline.badge-holiday,
.status-badge.is-sum-only,
.status-badge.is-sys-only,
.badge-inline.is-hold{
  background:var(--badge-muted-bg) !important;
  color:var(--badge-muted-text) !important;
  border-color:var(--badge-muted-border) !important;
}

.badge-info,
.badge.info,
.badge-blue,
.badge-soft,
.badge--info,
.badge--clockin,
.badge-inline.badge-ok,
.badge-inline.badge-info,
.status-badge.is-pending,
.op-obs-badge,
.obs-badge{
  background:var(--badge-info-bg) !important;
  color:var(--badge-info-text) !important;
  border-color:var(--badge-info-border) !important;
}

.badge-success,
.badge.ok,
.badge.active,
.badge-green,
.badge-ok,
.badge--active,
.badge--ok,
.badge-inline.badge-success,
.status-badge.is-ok,
.status-badge.is-active,
.badge-inline.is-bill,
.badge--breakin,
.obs-result-badge-bath,
.obs-result-badge-wipe{
  background:var(--badge-success-bg) !important;
  color:var(--badge-success-text) !important;
  border-color:var(--badge-success-border) !important;
}

.badge-warning,
.badge.warn,
.badge-warn,
.badge-orange,
.badge--warn,
.badge-inline.badge-warn,
.status-badge.is-carry,
.badge-inline.is-carry,
.badge--breakout,
.obs-result-badge-cancel{
  background:var(--badge-warning-bg) !important;
  color:var(--badge-warning-text) !important;
  border-color:var(--badge-warning-border) !important;
}

.badge-danger,
.badge.danger,
.badge.ng,
.badge-red,
.badge-error,
.badge--err,
.badge-inline.badge-error,
.status-badge.is-ng{
  background:var(--badge-danger-bg) !important;
  color:var(--badge-danger-text) !important;
  border-color:var(--badge-danger-border) !important;
}

.op-kind-badge--first,
.op-kind-badge--trial{
  background:var(--badge-purple-bg) !important;
  color:var(--badge-purple-text) !important;
  border-color:var(--badge-purple-border) !important;
}

.badge.gray,
.badge.grey,
.badge.dark,
.badge-secondary,
.badge-default{
  background:var(--badge-muted-bg) !important;
  color:var(--badge-muted-text) !important;
  border-color:var(--badge-muted-border) !important;
}

.badge--clockout{
  background:var(--badge-inactive-bg) !important;
  color:var(--badge-inactive-text) !important;
  border-color:var(--badge-inactive-border) !important;
}

.badge:hover,
.badge-inline:hover{
  text-decoration:none;
}

.is-disabled > .badge,
.is-inactive > .badge{
  opacity:1;
}


/* =========================================================
   Bath attendance type badges
   Loaded after page/theme CSS to keep contrast consistent.
   ========================================================= */
.today-log .attendance-type-badge{
  min-width:88px;
  min-height:26px;
  padding:5px 10px;
  opacity:1 !important;
  text-shadow:none !important;
  font-weight:800;
}
.today-log .attendance-type-badge--board,
.today-log .attendance-type-badge--on_site_board{
  background:#d1fae5 !important;
  color:#065f46 !important;
  border-color:#34d399 !important;
}
.today-log .attendance-type-badge--alight,
.today-log .attendance-type-badge--on_site_alight{
  background:#fef3c7 !important;
  color:#78350f !important;
  border-color:#f59e0b !important;
}
.today-log .attendance-type-badge--break_in,
.today-log .attendance-type-badge--break_out{
  background:#dbeafe !important;
  color:#1e3a8a !important;
  border-color:#60a5fa !important;
}
.today-log .attendance-type-badge--standby_in,
.today-log .attendance-type-badge--standby_out{
  background:#ede9fe !important;
  color:#4c1d95 !important;
  border-color:#a78bfa !important;
}
.today-log .attendance-type-badge--cancel{
  background:#fee2e2 !important;
  color:#991b1b !important;
  border-color:#f87171 !important;
}
