/* ============================================================================
   Snippet-only glue — NOT product CSS (companion to snippet-base.css).

   Equivalents of the SLDS base-component styles that the Lightning base
   components (lightning-button, lightning-button-group, lightning-button-icon,
   lightning-badge, lightning-input, lightning-combobox, lightning-button-menu,
   lightning-vertical-navigation, lightning-helptext, lightning-spinner,
   slds-table / slds-radio / slds-checkbox / slds-scoped-notification) bring
   with them in Lightning Experience. Rules are written against the same class
   names the base components render and consume the same --slds-c-* styling
   hooks the product CSS sets (dc-merge-cta, dc-filter-group, dc-action-btn,
   dcwb-l-survivor-badge, …), so those overrides behave exactly as in the org.

   Like the lightning-icon treatment in snippet-base.css, markup keeps a plain
   <lightning-button>/<lightning-badge>/… wrapper element around the rendered
   DOM so product selectors that target the component tag still apply.
   ============================================================================ */

/* ---- lightning-button ---------------------------------------------------- */
lightning-button,
lightning-button-icon,
lightning-button-menu,
lightning-helptext,
lightning-badge,
lightning-input,
lightning-combobox {
  display: inline-flex;
}

lightning-input,
lightning-combobox {
  display: block;
}

.slds-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  appearance: none;
  background: none;
  background-clip: border-box;
  border: 1px solid transparent;
  border-radius: 0.25rem;
  padding: 0;
  font-family: inherit;
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.875rem;
  text-decoration: none;
  white-space: normal;
  user-select: none;
  cursor: pointer;
  color: var(--slds-c-button-text-color, #0176d3);
  padding-left: var(--slds-c-button-spacing-inline-start, 0);
  padding-right: var(--slds-c-button-spacing-inline-end, 0);
  transition:
    border 0.15s linear,
    background-color 0.15s linear,
    color 0.15s linear;
}

.slds-button:hover {
  color: var(--slds-c-button-text-color-hover, #014486);
}

.slds-button:focus-visible {
  outline: none;
  box-shadow: 0 0 3px #0176d3;
}

.slds-button:disabled,
.slds-button[disabled] {
  cursor: default;
  color: #c9c9c9;
}

.slds-button__icon {
  width: var(--slds-c-button-icon-size, var(--sds-c-button-icon-size, 0.875rem));
  height: var(--slds-c-button-icon-size, var(--sds-c-button-icon-size, 0.875rem));
  fill: var(--slds-c-button-icon-color-foreground, currentColor);
  flex-shrink: 0;
}

.slds-button__icon_left {
  margin-right: 0.5rem;
}

.slds-button__icon_right {
  margin-left: 0.5rem;
}

.slds-button__icon_x-small {
  width: 0.75rem;
  height: 0.75rem;
}

.slds-button_neutral,
.slds-button_brand,
.slds-button_destructive {
  padding-left: var(--slds-c-button-spacing-inline-start, 1rem);
  padding-right: var(--slds-c-button-spacing-inline-end, 1rem);
  text-align: center;
  vertical-align: middle;
}

.slds-button_neutral {
  background-color: var(--slds-c-button-neutral-color-background, var(--sds-c-button-neutral-color-background, #fff));
  border-color: var(--slds-c-button-neutral-color-border, var(--sds-c-button-neutral-color-border, #747474));
}

.slds-button_neutral:hover {
  background-color: var(--slds-c-button-neutral-color-background-hover, #f3f3f3);
}

.slds-button_neutral:disabled,
.slds-button_neutral[disabled] {
  background-color: var(--slds-c-button-neutral-color-background, #fff);
  border-color: #c9c9c9;
  color: #c9c9c9;
}

.slds-button_brand {
  background-color: var(--slds-c-button-brand-color-background, var(--sds-c-button-brand-color-background, #0176d3));
  border-color: var(--slds-c-button-brand-color-border, var(--sds-c-button-brand-color-border, #0176d3));
  color: var(--slds-c-button-brand-text-color, var(--sds-c-button-brand-text-color, #fff));
}

.slds-button_brand:hover {
  background-color: var(--slds-c-button-brand-color-background-hover, #014486);
  border-color: var(--slds-c-button-brand-color-border-hover, #014486);
  color: var(--slds-c-button-brand-text-color, #fff);
}

.slds-button_brand:active {
  background-color: var(--slds-c-button-brand-color-background-active, #014486);
}

.slds-button_brand:disabled,
.slds-button_brand[disabled] {
  background-color: #c9c9c9;
  border-color: transparent;
  color: #fff;
}

.slds-button_destructive {
  background-color: var(--slds-c-button-destructive-color-background, #ba0517);
  border-color: var(--slds-c-button-destructive-color-border, #ba0517);
  color: var(--slds-c-button-destructive-text-color, #fff);
}

.slds-button_stretch {
  width: 100%;
}

/* ---- lightning-button-group ---------------------------------------------- */
lightning-button-group {
  display: inline-flex;
}

lightning-button-group lightning-button:not(:first-child) .slds-button {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  margin-left: -1px;
}

lightning-button-group lightning-button:not(:last-child) .slds-button {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

/* ---- lightning-button-icon ----------------------------------------------- */
.slds-button_icon {
  width: 2rem;
  height: 2rem;
  padding: 0;
  justify-content: center;
  color: var(--slds-c-button-text-color, #747474);
  line-height: 1;
  vertical-align: middle;
}

.slds-button_icon .slds-button__icon {
  margin: 0;
}

.slds-button_icon-border-filled {
  border-color: var(--slds-c-button-color-border, #c9c9c9);
  background-color: var(--slds-c-button-color-background, #fff);
}

.slds-button_icon-border-filled:hover {
  background-color: #f3f3f3;
}

.slds-button_icon-bare {
  width: auto;
  height: auto;
}

/* ---- lightning-badge ----------------------------------------------------- */
.slds-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.5rem;
  border-radius: 15rem;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1;
  white-space: nowrap;
  background-color: var(--slds-c-badge-color-background, var(--sds-c-badge-color-background, #ecebea));
  color: var(--slds-c-badge-text-color, var(--sds-c-badge-text-color, #181818));
}

/* ---- lightning-input / form elements ------------------------------------- */
.slds-form-element {
  position: relative;
  min-width: 0;
}

.slds-form-element__label {
  display: inline-block;
  margin-bottom: 0.125rem;
  font-size: 0.75rem;
  color: #444;
}

.slds-form-element__control {
  position: relative;
  clear: left;
}

.slds-form-element__static {
  display: inline-block;
  font-size: 0.8125rem;
  min-height: 1.25rem;
}

.slds-form-element_readonly .slds-form-element__label {
  color: #747474;
}

.slds-form-element_stacked {
  padding: 0.25rem 0;
}

.slds-input {
  display: inline-block;
  width: 100%;
  box-sizing: border-box;
  min-height: 2rem;
  line-height: 1.875rem;
  padding: 0 1rem 0 0.75rem;
  background-color: #fff;
  border: 1px solid #747474;
  border-radius: 0.25rem;
  font-family: inherit;
  font-size: 0.8125rem;
  color: #181818;
  transition:
    border 0.1s linear,
    background-color 0.1s linear;
}

.slds-input:focus {
  outline: 0;
  border-color: #0176d3;
  box-shadow: 0 0 3px #0176d3;
}

.slds-input::placeholder {
  color: #747474;
}

/* search variant — icon inside the field */
.slds-input-has-icon {
  position: relative;
}

.slds-input-has-icon_left .slds-input {
  padding-left: 2rem;
}

.slds-input-has-icon .slds-input__icon {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 0.875rem;
  height: 0.875rem;
  fill: #747474;
  pointer-events: none;
}

.slds-input-has-icon_left .slds-input__icon_left {
  left: 0.65rem;
}

/* ---- checkbox / radio (faux pattern) ------------------------------------- */
.slds-checkbox,
.slds-radio {
  display: inline-block;
  position: relative;
}

.slds-checkbox input[type="checkbox"],
.slds-radio input[type="radio"] {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

.slds-checkbox__label,
.slds-radio__label {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
}

.slds-checkbox_faux {
  display: inline-block;
  width: 1rem;
  height: 1rem;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #747474;
  border-radius: 0.25rem;
  vertical-align: middle;
  position: relative;
}

.slds-checkbox input:checked + .slds-checkbox__label .slds-checkbox_faux {
  border-color: #0176d3;
  background: #0176d3;
}

.slds-checkbox input:checked + .slds-checkbox__label .slds-checkbox_faux::after {
  content: "";
  position: absolute;
  top: 46%;
  left: 50%;
  width: 0.5rem;
  height: 0.25rem;
  border-bottom: 2px solid #fff;
  border-left: 2px solid #fff;
  transform: translate(-50%, -50%) rotate(-45deg);
}

.slds-checkbox input:disabled + .slds-checkbox__label .slds-checkbox_faux {
  background: #f3f3f3;
  border-color: #c9c9c9;
}

.slds-checkbox input:disabled:checked + .slds-checkbox__label .slds-checkbox_faux {
  background: #c9c9c9;
}

.slds-radio_faux {
  display: inline-block;
  width: 1rem;
  height: 1rem;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #747474;
  border-radius: 50%;
  vertical-align: middle;
  position: relative;
}

.slds-radio input:checked + .slds-radio__label .slds-radio_faux {
  border-color: #0176d3;
  background: #0176d3;
}

.slds-radio input:checked + .slds-radio__label .slds-radio_faux::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: #fff;
  transform: translate(-50%, -50%);
}

.slds-radio input:disabled + .slds-radio__label .slds-radio_faux {
  background: #f3f3f3;
  border-color: #c9c9c9;
}

/* ---- lightning-combobox (read-only picklist) ------------------------------ */
.slds-combobox {
  position: relative;
  width: 100%;
}

.slds-combobox__input {
  cursor: pointer;
  padding-right: 2rem;
}

.slds-combobox .slds-input__icon_right {
  right: 0.65rem;
  left: auto;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 0.875rem;
  height: 0.875rem;
  fill: #747474;
  pointer-events: none;
}

/* ---- lightning-vertical-navigation ---------------------------------------- */
.slds-nav-vertical {
  position: relative;
}

.slds-nav-vertical__title {
  padding: 0.5rem 1.5rem 0.375rem;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.0625rem;
  text-transform: uppercase;
  color: #444;
}

.slds-nav-vertical ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.slds-nav-vertical__action {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 0.5rem 1.5rem;
  border: 0;
  background: transparent;
  font: inherit;
  font-size: 0.8125rem;
  color: #181818;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}

.slds-nav-vertical__action:hover {
  background-color: rgba(0, 0, 0, 0.04);
}

.slds-nav-vertical__item.slds-is-active .slds-nav-vertical__action {
  background-color: #f3f3f3;
  box-shadow: inset 4px 0 0 var(--dc-brand-500, #0176d3);
  font-weight: 700;
}

/* ---- slds-table ----------------------------------------------------------- */
.slds-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background-color: #fff;
  font-size: inherit;
}

.slds-table th,
.slds-table td {
  padding: 0.25rem 0.5rem;
  text-align: left;
  white-space: normal;
}

.slds-table thead th {
  background-color: #f3f3f3;
  color: #444;
  font-weight: 700;
  font-size: 0.75rem;
}

.slds-table_cell-buffer th:first-child,
.slds-table_cell-buffer td:first-child {
  padding-left: 1rem;
}

.slds-table_cell-buffer th:last-child,
.slds-table_cell-buffer td:last-child {
  padding-right: 1rem;
}

.slds-table_bordered th,
.slds-table_bordered td {
  border-bottom: 1px solid #e5e5e5;
}

.slds-table_col-bordered th + th,
.slds-table_col-bordered th + td,
.slds-table_col-bordered td + th,
.slds-table_col-bordered td + td {
  border-left: 1px solid #e5e5e5;
}

/* ---- slds-scoped-notification + media object ------------------------------ */
.slds-media {
  display: flex;
  align-items: flex-start;
}

.slds-media__figure {
  flex-shrink: 0;
  margin-right: 0.75rem;
}

.slds-media__body {
  flex: 1;
  min-width: 0;
}

.slds-scoped-notification {
  padding: 0.75rem 1rem;
  border-radius: 0.25rem;
}

.slds-scoped-notification_light {
  background-color: #f3f3f3;
  color: #181818;
}

.slds-scoped-notification p {
  margin: 0;
}

/* ---- lightning-helptext ---------------------------------------------------- */
lightning-helptext .slds-button_icon {
  width: auto;
  height: auto;
  color: #747474;
}

/* ---- lightning-spinner ------------------------------------------------------ */
lightning-spinner {
  display: inline-block;
}

.slds-spinner {
  position: relative;
  display: inline-block;
  width: 1.75rem;
  height: 1.75rem;
}

.slds-spinner_brand::before {
  content: "";
  position: absolute;
  inset: 0;
  border: 3px solid rgba(1, 118, 211, 0.18);
  border-top-color: var(--dc-brand-500, #0176d3);
  border-radius: 50%;
  animation: slds-spin 0.8s linear infinite;
}

@keyframes slds-spin {
  to {
    transform: rotate(360deg);
  }
}

/* ---- utilities used by the product templates ------------------------------- */
.slds-assistive-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
}

.slds-truncate {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.slds-text-heading_small {
  font-size: 0.8125rem;
  font-weight: 700;
  line-height: 1.25;
}

.slds-text-heading_medium {
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.25;
}

.slds-text-body_small {
  font-size: 0.75rem;
}

.slds-text-color_weak {
  color: #747474;
}

.slds-text-align_center {
  text-align: center;
}

.slds-no-row-hover tbody tr:hover {
  background: inherit;
}

/* ---- lightning-button-menu dropdown (slds-dropdown) ------------------------ */
lightning-button-menu {
  position: relative;
}

.slds-dropdown {
  position: absolute;
  top: calc(100% + 0.125rem);
  z-index: 7000;
  min-width: 12rem;
  padding: 0.25rem 0;
  background: #fff;
  border: 1px solid #e5e5e5;
  border-radius: 0.25rem;
  box-shadow: 0 2px 3px 0 rgba(0, 0, 0, 0.16);
  font-size: 0.8125rem;
  text-align: left;
}

.slds-dropdown_right {
  right: 0;
  left: auto;
}

.slds-dropdown__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.slds-dropdown__item > a {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  color: #181818;
  font-weight: 400;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}

.slds-dropdown__item > a:hover {
  background-color: #f3f3f3;
}

.slds-dropdown__icon {
  width: 0.875rem;
  height: 0.875rem;
  flex-shrink: 0;
  fill: #747474;
}
