/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[6].rules[1].use[0]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].rules[1].use[1]!./src/styles.scss?ngGlobalStyle ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap);
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[6].rules[1].use[0]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].rules[1].use[1]!./src/styles.scss?ngGlobalStyle (1) ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@import url(https://fonts.googleapis.com/css2?family=Montserrat:wght@600;700&display=swap);
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[6].rules[1].use[0]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].rules[1].use[1]!./src/styles.scss?ngGlobalStyle (2) ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@import url(https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&family=Space+Grotesk:wght@500;600&display=swap);
/*!**********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[2]!./src/assets/css/app.min.css?ngGlobalStyle ***!
  \**********************************************************************************************************************************************************************************************************************************/
@import url(https://fonts.googleapis.com/css?family=Roboto:400,500,700);
/*!**************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[2]!./src/assets/css/app.min.css?ngGlobalStyle (1) ***!
  \**************************************************************************************************************************************************************************************************************************************/
@import url(https://fonts.googleapis.com/css?family=Karla:400,700);
/*!*********************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[2]!./node_modules/ag-grid-community/styles/ag-grid.css?ngGlobalStyle ***!
  \*********************************************************************************************************************************************************************************************************************************************************/
.ag-filter-panel-buttons {
  display: flex;
  justify-content: flex-end;
  overflow: hidden;
  padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding) 0;
  flex-wrap: wrap;
  gap: var(--ag-widget-vertical-spacing) var(--ag-widget-horizontal-spacing);
}

.ag-filter-panel-buttons-button {
  line-height: 1.5;
}

.ag-filter-panel .ag-standard-button.ag-filter-panel-buttons-apply-button {
  color: var(--ag-filter-panel-apply-button-color);
  background-color: var(--ag-filter-panel-apply-button-background-color);
}

.ag-filter-panel > *:where(:last-child) {
  padding-bottom: var(--ag-widget-container-vertical-padding);
}

.ag-row.ag-row-pinned-source {
  color: var(--ag-pinned-source-row-text-color);
  background-color: var(--ag-pinned-source-row-background-color);
  font-weight: var(--ag-pinned-source-row-font-weight);
}

.ag-row.ag-row-pinned {
  color: var(--ag-pinned-row-text-color);
  background-color: var(--ag-pinned-row-background-color);
  font-weight: var(--ag-pinned-row-font-weight);
}

.ag-floating-top-viewport {
  border-bottom: var(--ag-pinned-row-border);
}

.ag-floating-bottom-viewport {
  border-top: var(--ag-pinned-row-border);
}

.ag-measurement-container {
  --ag-legacy-styles-loaded: "true";
}

.ag-icon {
  font-family: var(--ag-icon-font-family);
  font-weight: var(--ag-icon-font-weight);
  color: var(--ag-icon-font-color);
  font-size: var(--ag-icon-size);
  line-height: var(--ag-icon-size);
  font-style: normal;
  font-variant: normal;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: var(--ag-icon-size);
  height: var(--ag-icon-size);
  position: relative;
}
.ag-icon::before {
  content: "";
  font-family: inherit;
}
.ag-icon::after {
  background: transparent var(--ag-icon-image, none) center/contain no-repeat;
  display: var(--ag-icon-image-display);
  opacity: var(--ag-icon-image-opacity, 0.9);
  position: absolute;
  inset: 0;
  content: "";
}

.ag-icon-aggregation {
  font-family: var(--ag-icon-font-family-aggregation, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-aggregation, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-aggregation, var(--ag-icon-font-color));
}

.ag-icon-aggregation::before {
  content: var(--ag-icon-font-code-aggregation, "\f101");
  display: var(--ag-icon-font-display-aggregation, var(--ag-icon-font-display));
}

.ag-icon-aggregation::after {
  background-image: var(--ag-icon-image-aggregation, var(--ag-icon-image));
  display: var(--ag-icon-image-display-aggregation, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-aggregation, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-arrows {
  font-family: var(--ag-icon-font-family-arrows, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-arrows, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-arrows, var(--ag-icon-font-color));
}

.ag-icon-arrows::before {
  content: var(--ag-icon-font-code-arrows, "\f102");
  display: var(--ag-icon-font-display-arrows, var(--ag-icon-font-display));
}

.ag-icon-arrows::after {
  background-image: var(--ag-icon-image-arrows, var(--ag-icon-image));
  display: var(--ag-icon-image-display-arrows, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-arrows, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-asc {
  font-family: var(--ag-icon-font-family-asc, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-asc, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-asc, var(--ag-icon-font-color));
}

.ag-icon-asc::before {
  content: var(--ag-icon-font-code-asc, "\f103");
  display: var(--ag-icon-font-display-asc, var(--ag-icon-font-display));
}

.ag-icon-asc::after {
  background-image: var(--ag-icon-image-asc, var(--ag-icon-image));
  display: var(--ag-icon-image-display-asc, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-asc, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-aasc {
  font-family: var(--ag-icon-font-family-aasc, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-aasc, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-aasc, var(--ag-icon-font-color));
}

.ag-icon-aasc::before {
  content: var(--ag-icon-font-code-aasc, "\f13c");
  display: var(--ag-icon-font-display-aasc, var(--ag-icon-font-display));
}

.ag-icon-aasc::after {
  background-image: var(--ag-icon-image-aasc, var(--ag-icon-image));
  display: var(--ag-icon-image-display-aasc, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-aasc, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-adesc {
  font-family: var(--ag-icon-font-family-adesc, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-adesc, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-adesc, var(--ag-icon-font-color));
}

.ag-icon-adesc::before {
  content: var(--ag-icon-font-code-adesc, "\f13d");
  display: var(--ag-icon-font-display-adesc, var(--ag-icon-font-display));
}

.ag-icon-adesc::after {
  background-image: var(--ag-icon-image-adesc, var(--ag-icon-image));
  display: var(--ag-icon-image-display-adesc, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-adesc, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-cancel {
  font-family: var(--ag-icon-font-family-cancel, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-cancel, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-cancel, var(--ag-icon-font-color));
}

.ag-icon-cancel::before {
  content: var(--ag-icon-font-code-cancel, "\f104");
  display: var(--ag-icon-font-display-cancel, var(--ag-icon-font-display));
}

.ag-icon-cancel::after {
  background-image: var(--ag-icon-image-cancel, var(--ag-icon-image));
  display: var(--ag-icon-image-display-cancel, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-cancel, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-chart {
  font-family: var(--ag-icon-font-family-chart, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-chart, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-chart, var(--ag-icon-font-color));
}

.ag-icon-chart::before {
  content: var(--ag-icon-font-code-chart, "\f105");
  display: var(--ag-icon-font-display-chart, var(--ag-icon-font-display));
}

.ag-icon-chart::after {
  background-image: var(--ag-icon-image-chart, var(--ag-icon-image));
  display: var(--ag-icon-image-display-chart, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-chart, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-checkbox-checked {
  font-family: var(--ag-icon-font-family-checkbox-checked, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-checkbox-checked, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-checkbox-checked, var(--ag-icon-font-color));
}

.ag-icon-checkbox-checked::before {
  content: var(--ag-icon-font-code-checkbox-checked, "\f106");
  display: var(--ag-icon-font-display-checkbox-checked, var(--ag-icon-font-display));
}

.ag-icon-checkbox-checked::after {
  background-image: var(--ag-icon-image-checkbox-checked, var(--ag-icon-image));
  display: var(--ag-icon-image-display-checkbox-checked, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-checkbox-checked, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-checkbox-indeterminate {
  font-family: var(--ag-icon-font-family-checkbox-indeterminate, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-checkbox-indeterminate, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-checkbox-indeterminate, var(--ag-icon-font-color));
}

.ag-icon-checkbox-indeterminate::before {
  content: var(--ag-icon-font-code-checkbox-indeterminate, "\f107");
  display: var(--ag-icon-font-display-checkbox-indeterminate, var(--ag-icon-font-display));
}

.ag-icon-checkbox-indeterminate::after {
  background-image: var(--ag-icon-image-checkbox-indeterminate, var(--ag-icon-image));
  display: var(--ag-icon-image-display-checkbox-indeterminate, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-checkbox-indeterminate, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-checkbox-unchecked {
  font-family: var(--ag-icon-font-family-checkbox-unchecked, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-checkbox-unchecked, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-checkbox-unchecked, var(--ag-icon-font-color));
}

.ag-icon-checkbox-unchecked::before {
  content: var(--ag-icon-font-code-checkbox-unchecked, "\f108");
  display: var(--ag-icon-font-display-checkbox-unchecked, var(--ag-icon-font-display));
}

.ag-icon-checkbox-unchecked::after {
  background-image: var(--ag-icon-image-checkbox-unchecked, var(--ag-icon-image));
  display: var(--ag-icon-image-display-checkbox-unchecked, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-checkbox-unchecked, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-color-picker {
  font-family: var(--ag-icon-font-family-color-picker, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-color-picker, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-color-picker, var(--ag-icon-font-color));
}

.ag-icon-color-picker::before {
  content: var(--ag-icon-font-code-color-picker, "\f109");
  display: var(--ag-icon-font-display-color-picker, var(--ag-icon-font-display));
}

.ag-icon-color-picker::after {
  background-image: var(--ag-icon-image-color-picker, var(--ag-icon-image));
  display: var(--ag-icon-image-display-color-picker, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-color-picker, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-columns {
  font-family: var(--ag-icon-font-family-columns, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-columns, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-columns, var(--ag-icon-font-color));
}

.ag-icon-columns::before {
  content: var(--ag-icon-font-code-columns, "\f10a");
  display: var(--ag-icon-font-display-columns, var(--ag-icon-font-display));
}

.ag-icon-columns::after {
  background-image: var(--ag-icon-image-columns, var(--ag-icon-image));
  display: var(--ag-icon-image-display-columns, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-columns, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-contracted {
  font-family: var(--ag-icon-font-family-contracted, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-contracted, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-contracted, var(--ag-icon-font-color));
}

.ag-icon-contracted::before {
  content: var(--ag-icon-font-code-contracted, "\f10b");
  display: var(--ag-icon-font-display-contracted, var(--ag-icon-font-display));
}

.ag-icon-contracted::after {
  background-image: var(--ag-icon-image-contracted, var(--ag-icon-image));
  display: var(--ag-icon-image-display-contracted, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-contracted, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-copy {
  font-family: var(--ag-icon-font-family-copy, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-copy, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-copy, var(--ag-icon-font-color));
}

.ag-icon-copy::before {
  content: var(--ag-icon-font-code-copy, "\f10c");
  display: var(--ag-icon-font-display-copy, var(--ag-icon-font-display));
}

.ag-icon-copy::after {
  background-image: var(--ag-icon-image-copy, var(--ag-icon-image));
  display: var(--ag-icon-image-display-copy, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-copy, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-cross {
  font-family: var(--ag-icon-font-family-cross, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-cross, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-cross, var(--ag-icon-font-color));
}

.ag-icon-cross::before {
  content: var(--ag-icon-font-code-cross, "\f10d");
  display: var(--ag-icon-font-display-cross, var(--ag-icon-font-display));
}

.ag-icon-cross::after {
  background-image: var(--ag-icon-image-cross, var(--ag-icon-image));
  display: var(--ag-icon-image-display-cross, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-cross, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-csv {
  font-family: var(--ag-icon-font-family-csv, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-csv, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-csv, var(--ag-icon-font-color));
}

.ag-icon-csv::before {
  content: var(--ag-icon-font-code-csv, "\f10e");
  display: var(--ag-icon-font-display-csv, var(--ag-icon-font-display));
}

.ag-icon-csv::after {
  background-image: var(--ag-icon-image-csv, var(--ag-icon-image));
  display: var(--ag-icon-image-display-csv, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-csv, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-cut {
  font-family: var(--ag-icon-font-family-cut, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-cut, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-cut, var(--ag-icon-font-color));
}

.ag-icon-cut::before {
  content: var(--ag-icon-font-code-cut, "\f10f");
  display: var(--ag-icon-font-display-cut, var(--ag-icon-font-display));
}

.ag-icon-cut::after {
  background-image: var(--ag-icon-image-cut, var(--ag-icon-image));
  display: var(--ag-icon-image-display-cut, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-cut, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-desc {
  font-family: var(--ag-icon-font-family-desc, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-desc, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-desc, var(--ag-icon-font-color));
}

.ag-icon-desc::before {
  content: var(--ag-icon-font-code-desc, "\f110");
  display: var(--ag-icon-font-display-desc, var(--ag-icon-font-display));
}

.ag-icon-desc::after {
  background-image: var(--ag-icon-image-desc, var(--ag-icon-image));
  display: var(--ag-icon-image-display-desc, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-desc, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-excel {
  font-family: var(--ag-icon-font-family-excel, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-excel, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-excel, var(--ag-icon-font-color));
}

.ag-icon-excel::before {
  content: var(--ag-icon-font-code-excel, "\f111");
  display: var(--ag-icon-font-display-excel, var(--ag-icon-font-display));
}

.ag-icon-excel::after {
  background-image: var(--ag-icon-image-excel, var(--ag-icon-image));
  display: var(--ag-icon-image-display-excel, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-excel, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-expanded {
  font-family: var(--ag-icon-font-family-expanded, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-expanded, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-expanded, var(--ag-icon-font-color));
}

.ag-icon-expanded::before {
  content: var(--ag-icon-font-code-expanded, "\f112");
  display: var(--ag-icon-font-display-expanded, var(--ag-icon-font-display));
}

.ag-icon-expanded::after {
  background-image: var(--ag-icon-image-expanded, var(--ag-icon-image));
  display: var(--ag-icon-image-display-expanded, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-expanded, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-eye-slash {
  font-family: var(--ag-icon-font-family-eye-slash, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-eye-slash, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-eye-slash, var(--ag-icon-font-color));
}

.ag-icon-eye-slash::before {
  content: var(--ag-icon-font-code-eye-slash, "\f113");
  display: var(--ag-icon-font-display-eye-slash, var(--ag-icon-font-display));
}

.ag-icon-eye-slash::after {
  background-image: var(--ag-icon-image-eye-slash, var(--ag-icon-image));
  display: var(--ag-icon-image-display-eye-slash, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-eye-slash, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-eye {
  font-family: var(--ag-icon-font-family-eye, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-eye, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-eye, var(--ag-icon-font-color));
}

.ag-icon-eye::before {
  content: var(--ag-icon-font-code-eye, "\f114");
  display: var(--ag-icon-font-display-eye, var(--ag-icon-font-display));
}

.ag-icon-eye::after {
  background-image: var(--ag-icon-image-eye, var(--ag-icon-image));
  display: var(--ag-icon-image-display-eye, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-eye, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-filter {
  font-family: var(--ag-icon-font-family-filter, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-filter, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-filter, var(--ag-icon-font-color));
}

.ag-icon-filter::before {
  content: var(--ag-icon-font-code-filter, "\f115");
  display: var(--ag-icon-font-display-filter, var(--ag-icon-font-display));
}

.ag-icon-filter::after {
  background-image: var(--ag-icon-image-filter, var(--ag-icon-image));
  display: var(--ag-icon-image-display-filter, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-filter, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-first {
  font-family: var(--ag-icon-font-family-first, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-first, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-first, var(--ag-icon-font-color));
}

.ag-icon-first::before {
  content: var(--ag-icon-font-code-first, "\f116");
  display: var(--ag-icon-font-display-first, var(--ag-icon-font-display));
}

.ag-icon-first::after {
  background-image: var(--ag-icon-image-first, var(--ag-icon-image));
  display: var(--ag-icon-image-display-first, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-first, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-grip {
  font-family: var(--ag-icon-font-family-grip, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-grip, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-grip, var(--ag-icon-font-color));
}

.ag-icon-grip::before {
  content: var(--ag-icon-font-code-grip, "\f117");
  display: var(--ag-icon-font-display-grip, var(--ag-icon-font-display));
}

.ag-icon-grip::after {
  background-image: var(--ag-icon-image-grip, var(--ag-icon-image));
  display: var(--ag-icon-image-display-grip, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-grip, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-group {
  font-family: var(--ag-icon-font-family-group, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-group, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-group, var(--ag-icon-font-color));
}

.ag-icon-group::before {
  content: var(--ag-icon-font-code-group, "\f118");
  display: var(--ag-icon-font-display-group, var(--ag-icon-font-display));
}

.ag-icon-group::after {
  background-image: var(--ag-icon-image-group, var(--ag-icon-image));
  display: var(--ag-icon-image-display-group, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-group, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-last {
  font-family: var(--ag-icon-font-family-last, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-last, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-last, var(--ag-icon-font-color));
}

.ag-icon-last::before {
  content: var(--ag-icon-font-code-last, "\f119");
  display: var(--ag-icon-font-display-last, var(--ag-icon-font-display));
}

.ag-icon-last::after {
  background-image: var(--ag-icon-image-last, var(--ag-icon-image));
  display: var(--ag-icon-image-display-last, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-last, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-left {
  font-family: var(--ag-icon-font-family-left, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-left, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-left, var(--ag-icon-font-color));
}

.ag-icon-left::before {
  content: var(--ag-icon-font-code-left, "\f11a");
  display: var(--ag-icon-font-display-left, var(--ag-icon-font-display));
}

.ag-icon-left::after {
  background-image: var(--ag-icon-image-left, var(--ag-icon-image));
  display: var(--ag-icon-image-display-left, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-left, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-linked {
  font-family: var(--ag-icon-font-family-linked, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-linked, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-linked, var(--ag-icon-font-color));
}

.ag-icon-linked::before {
  content: var(--ag-icon-font-code-linked, "\f11b");
  display: var(--ag-icon-font-display-linked, var(--ag-icon-font-display));
}

.ag-icon-linked::after {
  background-image: var(--ag-icon-image-linked, var(--ag-icon-image));
  display: var(--ag-icon-image-display-linked, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-linked, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-loading {
  font-family: var(--ag-icon-font-family-loading, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-loading, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-loading, var(--ag-icon-font-color));
}

.ag-icon-loading::before {
  content: var(--ag-icon-font-code-loading, "\f11c");
  display: var(--ag-icon-font-display-loading, var(--ag-icon-font-display));
}

.ag-icon-loading::after {
  background-image: var(--ag-icon-image-loading, var(--ag-icon-image));
  display: var(--ag-icon-image-display-loading, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-loading, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-maximize {
  font-family: var(--ag-icon-font-family-maximize, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-maximize, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-maximize, var(--ag-icon-font-color));
}

.ag-icon-maximize::before {
  content: var(--ag-icon-font-code-maximize, "\f11d");
  display: var(--ag-icon-font-display-maximize, var(--ag-icon-font-display));
}

.ag-icon-maximize::after {
  background-image: var(--ag-icon-image-maximize, var(--ag-icon-image));
  display: var(--ag-icon-image-display-maximize, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-maximize, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-menu {
  font-family: var(--ag-icon-font-family-menu, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-menu, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-menu, var(--ag-icon-font-color));
}

.ag-icon-menu::before {
  content: var(--ag-icon-font-code-menu, "\f11e");
  display: var(--ag-icon-font-display-menu, var(--ag-icon-font-display));
}

.ag-icon-menu::after {
  background-image: var(--ag-icon-image-menu, var(--ag-icon-image));
  display: var(--ag-icon-image-display-menu, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-menu, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-minimize {
  font-family: var(--ag-icon-font-family-minimize, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-minimize, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-minimize, var(--ag-icon-font-color));
}

.ag-icon-minimize::before {
  content: var(--ag-icon-font-code-minimize, "\f11f");
  display: var(--ag-icon-font-display-minimize, var(--ag-icon-font-display));
}

.ag-icon-minimize::after {
  background-image: var(--ag-icon-image-minimize, var(--ag-icon-image));
  display: var(--ag-icon-image-display-minimize, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-minimize, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-next {
  font-family: var(--ag-icon-font-family-next, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-next, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-next, var(--ag-icon-font-color));
}

.ag-icon-next::before {
  content: var(--ag-icon-font-code-next, "\f120");
  display: var(--ag-icon-font-display-next, var(--ag-icon-font-display));
}

.ag-icon-next::after {
  background-image: var(--ag-icon-image-next, var(--ag-icon-image));
  display: var(--ag-icon-image-display-next, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-next, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-none {
  font-family: var(--ag-icon-font-family-none, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-none, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-none, var(--ag-icon-font-color));
}

.ag-icon-none::before {
  content: var(--ag-icon-font-code-none, "\f121");
  display: var(--ag-icon-font-display-none, var(--ag-icon-font-display));
}

.ag-icon-none::after {
  background-image: var(--ag-icon-image-none, var(--ag-icon-image));
  display: var(--ag-icon-image-display-none, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-none, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-not-allowed {
  font-family: var(--ag-icon-font-family-not-allowed, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-not-allowed, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-not-allowed, var(--ag-icon-font-color));
}

.ag-icon-not-allowed::before {
  content: var(--ag-icon-font-code-not-allowed, "\f122");
  display: var(--ag-icon-font-display-not-allowed, var(--ag-icon-font-display));
}

.ag-icon-not-allowed::after {
  background-image: var(--ag-icon-image-not-allowed, var(--ag-icon-image));
  display: var(--ag-icon-image-display-not-allowed, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-not-allowed, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-paste {
  font-family: var(--ag-icon-font-family-paste, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-paste, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-paste, var(--ag-icon-font-color));
}

.ag-icon-paste::before {
  content: var(--ag-icon-font-code-paste, "\f123");
  display: var(--ag-icon-font-display-paste, var(--ag-icon-font-display));
}

.ag-icon-paste::after {
  background-image: var(--ag-icon-image-paste, var(--ag-icon-image));
  display: var(--ag-icon-image-display-paste, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-paste, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-pin {
  font-family: var(--ag-icon-font-family-pin, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-pin, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-pin, var(--ag-icon-font-color));
}

.ag-icon-pin::before {
  content: var(--ag-icon-font-code-pin, "\f124");
  display: var(--ag-icon-font-display-pin, var(--ag-icon-font-display));
}

.ag-icon-pin::after {
  background-image: var(--ag-icon-image-pin, var(--ag-icon-image));
  display: var(--ag-icon-image-display-pin, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-pin, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-pivot {
  font-family: var(--ag-icon-font-family-pivot, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-pivot, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-pivot, var(--ag-icon-font-color));
}

.ag-icon-pivot::before {
  content: var(--ag-icon-font-code-pivot, "\f125");
  display: var(--ag-icon-font-display-pivot, var(--ag-icon-font-display));
}

.ag-icon-pivot::after {
  background-image: var(--ag-icon-image-pivot, var(--ag-icon-image));
  display: var(--ag-icon-image-display-pivot, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-pivot, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-previous {
  font-family: var(--ag-icon-font-family-previous, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-previous, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-previous, var(--ag-icon-font-color));
}

.ag-icon-previous::before {
  content: var(--ag-icon-font-code-previous, "\f126");
  display: var(--ag-icon-font-display-previous, var(--ag-icon-font-display));
}

.ag-icon-previous::after {
  background-image: var(--ag-icon-image-previous, var(--ag-icon-image));
  display: var(--ag-icon-image-display-previous, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-previous, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-radio-button-off {
  font-family: var(--ag-icon-font-family-radio-button-off, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-radio-button-off, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-radio-button-off, var(--ag-icon-font-color));
}

.ag-icon-radio-button-off::before {
  content: var(--ag-icon-font-code-radio-button-off, "\f127");
  display: var(--ag-icon-font-display-radio-button-off, var(--ag-icon-font-display));
}

.ag-icon-radio-button-off::after {
  background-image: var(--ag-icon-image-radio-button-off, var(--ag-icon-image));
  display: var(--ag-icon-image-display-radio-button-off, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-radio-button-off, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-radio-button-on {
  font-family: var(--ag-icon-font-family-radio-button-on, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-radio-button-on, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-radio-button-on, var(--ag-icon-font-color));
}

.ag-icon-radio-button-on::before {
  content: var(--ag-icon-font-code-radio-button-on, "\f128");
  display: var(--ag-icon-font-display-radio-button-on, var(--ag-icon-font-display));
}

.ag-icon-radio-button-on::after {
  background-image: var(--ag-icon-image-radio-button-on, var(--ag-icon-image));
  display: var(--ag-icon-image-display-radio-button-on, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-radio-button-on, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-right {
  font-family: var(--ag-icon-font-family-right, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-right, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-right, var(--ag-icon-font-color));
}

.ag-icon-right::before {
  content: var(--ag-icon-font-code-right, "\f129");
  display: var(--ag-icon-font-display-right, var(--ag-icon-font-display));
}

.ag-icon-right::after {
  background-image: var(--ag-icon-image-right, var(--ag-icon-image));
  display: var(--ag-icon-image-display-right, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-right, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-save {
  font-family: var(--ag-icon-font-family-save, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-save, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-save, var(--ag-icon-font-color));
}

.ag-icon-save::before {
  content: var(--ag-icon-font-code-save, "\f12a");
  display: var(--ag-icon-font-display-save, var(--ag-icon-font-display));
}

.ag-icon-save::after {
  background-image: var(--ag-icon-image-save, var(--ag-icon-image));
  display: var(--ag-icon-image-display-save, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-save, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-small-down {
  font-family: var(--ag-icon-font-family-small-down, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-small-down, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-small-down, var(--ag-icon-font-color));
}

.ag-icon-small-down::before {
  content: var(--ag-icon-font-code-small-down, "\f12b");
  display: var(--ag-icon-font-display-small-down, var(--ag-icon-font-display));
}

.ag-icon-small-down::after {
  background-image: var(--ag-icon-image-small-down, var(--ag-icon-image));
  display: var(--ag-icon-image-display-small-down, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-small-down, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-small-left {
  font-family: var(--ag-icon-font-family-small-left, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-small-left, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-small-left, var(--ag-icon-font-color));
}

.ag-icon-small-left::before {
  content: var(--ag-icon-font-code-small-left, "\f12c");
  display: var(--ag-icon-font-display-small-left, var(--ag-icon-font-display));
}

.ag-icon-small-left::after {
  background-image: var(--ag-icon-image-small-left, var(--ag-icon-image));
  display: var(--ag-icon-image-display-small-left, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-small-left, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-small-right {
  font-family: var(--ag-icon-font-family-small-right, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-small-right, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-small-right, var(--ag-icon-font-color));
}

.ag-icon-small-right::before {
  content: var(--ag-icon-font-code-small-right, "\f12d");
  display: var(--ag-icon-font-display-small-right, var(--ag-icon-font-display));
}

.ag-icon-small-right::after {
  background-image: var(--ag-icon-image-small-right, var(--ag-icon-image));
  display: var(--ag-icon-image-display-small-right, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-small-right, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-small-up {
  font-family: var(--ag-icon-font-family-small-up, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-small-up, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-small-up, var(--ag-icon-font-color));
}

.ag-icon-small-up::before {
  content: var(--ag-icon-font-code-small-up, "\f12e");
  display: var(--ag-icon-font-display-small-up, var(--ag-icon-font-display));
}

.ag-icon-small-up::after {
  background-image: var(--ag-icon-image-small-up, var(--ag-icon-image));
  display: var(--ag-icon-image-display-small-up, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-small-up, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-tick {
  font-family: var(--ag-icon-font-family-tick, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-tick, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-tick, var(--ag-icon-font-color));
}

.ag-icon-tick::before {
  content: var(--ag-icon-font-code-tick, "\f12f");
  display: var(--ag-icon-font-display-tick, var(--ag-icon-font-display));
}

.ag-icon-tick::after {
  background-image: var(--ag-icon-image-tick, var(--ag-icon-image));
  display: var(--ag-icon-image-display-tick, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-tick, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-tree-closed {
  font-family: var(--ag-icon-font-family-tree-closed, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-tree-closed, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-tree-closed, var(--ag-icon-font-color));
}

.ag-icon-tree-closed::before {
  content: var(--ag-icon-font-code-tree-closed, "\f130");
  display: var(--ag-icon-font-display-tree-closed, var(--ag-icon-font-display));
}

.ag-icon-tree-closed::after {
  background-image: var(--ag-icon-image-tree-closed, var(--ag-icon-image));
  display: var(--ag-icon-image-display-tree-closed, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-tree-closed, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-tree-indeterminate {
  font-family: var(--ag-icon-font-family-tree-indeterminate, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-tree-indeterminate, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-tree-indeterminate, var(--ag-icon-font-color));
}

.ag-icon-tree-indeterminate::before {
  content: var(--ag-icon-font-code-tree-indeterminate, "\f131");
  display: var(--ag-icon-font-display-tree-indeterminate, var(--ag-icon-font-display));
}

.ag-icon-tree-indeterminate::after {
  background-image: var(--ag-icon-image-tree-indeterminate, var(--ag-icon-image));
  display: var(--ag-icon-image-display-tree-indeterminate, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-tree-indeterminate, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-tree-open {
  font-family: var(--ag-icon-font-family-tree-open, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-tree-open, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-tree-open, var(--ag-icon-font-color));
}

.ag-icon-tree-open::before {
  content: var(--ag-icon-font-code-tree-open, "\f132");
  display: var(--ag-icon-font-display-tree-open, var(--ag-icon-font-display));
}

.ag-icon-tree-open::after {
  background-image: var(--ag-icon-image-tree-open, var(--ag-icon-image));
  display: var(--ag-icon-image-display-tree-open, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-tree-open, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-unlinked {
  font-family: var(--ag-icon-font-family-unlinked, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-unlinked, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-unlinked, var(--ag-icon-font-color));
}

.ag-icon-unlinked::before {
  content: var(--ag-icon-font-code-unlinked, "\f133");
  display: var(--ag-icon-font-display-unlinked, var(--ag-icon-font-display));
}

.ag-icon-unlinked::after {
  background-image: var(--ag-icon-image-unlinked, var(--ag-icon-image));
  display: var(--ag-icon-image-display-unlinked, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-unlinked, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-up {
  font-family: var(--ag-icon-font-family-up, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-up, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-up, var(--ag-icon-font-color));
}

.ag-icon-up::before {
  content: var(--ag-icon-font-code-up, "\f134");
  display: var(--ag-icon-font-display-up, var(--ag-icon-font-display));
}

.ag-icon-up::after {
  background-image: var(--ag-icon-image-up, var(--ag-icon-image));
  display: var(--ag-icon-image-display-up, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-up, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-down {
  font-family: var(--ag-icon-font-family-down, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-down, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-down, var(--ag-icon-font-color));
}

.ag-icon-down::before {
  content: var(--ag-icon-font-code-down, "\f135");
  display: var(--ag-icon-font-display-down, var(--ag-icon-font-display));
}

.ag-icon-down::after {
  background-image: var(--ag-icon-image-down, var(--ag-icon-image));
  display: var(--ag-icon-image-display-down, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-down, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-plus {
  font-family: var(--ag-icon-font-family-plus, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-plus, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-plus, var(--ag-icon-font-color));
}

.ag-icon-plus::before {
  content: var(--ag-icon-font-code-plus, "\f136");
  display: var(--ag-icon-font-display-plus, var(--ag-icon-font-display));
}

.ag-icon-plus::after {
  background-image: var(--ag-icon-image-plus, var(--ag-icon-image));
  display: var(--ag-icon-image-display-plus, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-plus, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-minus {
  font-family: var(--ag-icon-font-family-minus, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-minus, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-minus, var(--ag-icon-font-color));
}

.ag-icon-minus::before {
  content: var(--ag-icon-font-code-minus, "\f137");
  display: var(--ag-icon-font-display-minus, var(--ag-icon-font-display));
}

.ag-icon-minus::after {
  background-image: var(--ag-icon-image-minus, var(--ag-icon-image));
  display: var(--ag-icon-image-display-minus, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-minus, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-menu-alt {
  font-family: var(--ag-icon-font-family-menu-alt, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-menu-alt, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-menu-alt, var(--ag-icon-font-color));
}

.ag-icon-menu-alt::before {
  content: var(--ag-icon-font-code-menu-alt, "\f138");
  display: var(--ag-icon-font-display-menu-alt, var(--ag-icon-font-display));
}

.ag-icon-menu-alt::after {
  background-image: var(--ag-icon-image-menu-alt, var(--ag-icon-image));
  display: var(--ag-icon-image-display-menu-alt, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-menu-alt, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-settings {
  font-family: var(--ag-icon-font-family-settings, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-settings, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-settings, var(--ag-icon-font-color));
}

.ag-icon-settings::before {
  content: var(--ag-icon-font-code-settings, "\f139");
  display: var(--ag-icon-font-display-settings, var(--ag-icon-font-display));
}

.ag-icon-settings::after {
  background-image: var(--ag-icon-image-settings, var(--ag-icon-image));
  display: var(--ag-icon-image-display-settings, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-settings, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-column-arrow {
  font-family: var(--ag-icon-font-family-column-arrow, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-column-arrow, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-column-arrow, var(--ag-icon-font-color));
}

.ag-icon-column-arrow::before {
  content: var(--ag-icon-font-code-column-arrow, "\f13a");
  display: var(--ag-icon-font-display-column-arrow, var(--ag-icon-font-display));
}

.ag-icon-column-arrow::after {
  background-image: var(--ag-icon-image-column-arrow, var(--ag-icon-image));
  display: var(--ag-icon-image-display-column-arrow, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-column-arrow, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-un-pin {
  font-family: var(--ag-icon-font-family-un-pin, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-un-pin, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-un-pin, var(--ag-icon-font-color));
}

.ag-icon-un-pin::before {
  content: var(--ag-icon-font-code-un-pin, "\f13b");
  display: var(--ag-icon-font-display-un-pin, var(--ag-icon-font-display));
}

.ag-icon-un-pin::after {
  background-image: var(--ag-icon-image-un-pin, var(--ag-icon-image));
  display: var(--ag-icon-image-display-un-pin, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-un-pin, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-pinned-bottom {
  font-family: var(--ag-icon-font-family-pinned-bottom, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-pinned-bottom, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-pinned-bottom, var(--ag-icon-font-color));
}

.ag-icon-pinned-bottom::before {
  content: var(--ag-icon-font-code-pinned-bottom, "\f13e");
  display: var(--ag-icon-font-display-pinned-bottom, var(--ag-icon-font-display));
}

.ag-icon-pinned-bottom::after {
  background-image: var(--ag-icon-image-pinned-bottom, var(--ag-icon-image));
  display: var(--ag-icon-image-display-pinned-bottom, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-pinned-bottom, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-pinned-top {
  font-family: var(--ag-icon-font-family-pinned-top, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-pinned-top, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-pinned-top, var(--ag-icon-font-color));
}

.ag-icon-pinned-top::before {
  content: var(--ag-icon-font-code-pinned-top, "\f13f");
  display: var(--ag-icon-font-display-pinned-top, var(--ag-icon-font-display));
}

.ag-icon-pinned-top::after {
  background-image: var(--ag-icon-image-pinned-top, var(--ag-icon-image));
  display: var(--ag-icon-image-display-pinned-top, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-pinned-top, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-chevron-up {
  font-family: var(--ag-icon-font-family-chevron-up, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-chevron-up, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-chevron-up, var(--ag-icon-font-color));
}

.ag-icon-chevron-up::before {
  content: var(--ag-icon-font-code-chevron-up, "\f140");
  display: var(--ag-icon-font-display-chevron-up, var(--ag-icon-font-display));
}

.ag-icon-chevron-up::after {
  background-image: var(--ag-icon-image-chevron-up, var(--ag-icon-image));
  display: var(--ag-icon-image-display-chevron-up, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-chevron-up, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-chevron-down {
  font-family: var(--ag-icon-font-family-chevron-down, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-chevron-down, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-chevron-down, var(--ag-icon-font-color));
}

.ag-icon-chevron-down::before {
  content: var(--ag-icon-font-code-chevron-down, "\f141");
  display: var(--ag-icon-font-display-chevron-down, var(--ag-icon-font-display));
}

.ag-icon-chevron-down::after {
  background-image: var(--ag-icon-image-chevron-down, var(--ag-icon-image));
  display: var(--ag-icon-image-display-chevron-down, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-chevron-down, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-chevron-left {
  font-family: var(--ag-icon-font-family-chevron-left, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-chevron-left, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-chevron-left, var(--ag-icon-font-color));
}

.ag-icon-chevron-left::before {
  content: var(--ag-icon-font-code-chevron-left, "\f142");
  display: var(--ag-icon-font-display-chevron-left, var(--ag-icon-font-display));
}

.ag-icon-chevron-left::after {
  background-image: var(--ag-icon-image-chevron-left, var(--ag-icon-image));
  display: var(--ag-icon-image-display-chevron-left, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-chevron-left, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-chevron-right {
  font-family: var(--ag-icon-font-family-chevron-right, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-chevron-right, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-chevron-right, var(--ag-icon-font-color));
}

.ag-icon-chevron-right::before {
  content: var(--ag-icon-font-code-chevron-right, "\f143");
  display: var(--ag-icon-font-display-chevron-right, var(--ag-icon-font-display));
}

.ag-icon-chevron-right::after {
  background-image: var(--ag-icon-image-chevron-right, var(--ag-icon-image));
  display: var(--ag-icon-image-display-chevron-right, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-chevron-right, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-filter-add {
  font-family: var(--ag-icon-font-family-filter-add, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-filter-add, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-filter-add, var(--ag-icon-font-color));
}

.ag-icon-filter-add::before {
  content: var(--ag-icon-font-code-filter-add, "\f144");
  display: var(--ag-icon-font-display-filter-add, var(--ag-icon-font-display));
}

.ag-icon-filter-add::after {
  background-image: var(--ag-icon-image-filter-add, var(--ag-icon-image));
  display: var(--ag-icon-image-display-filter-add, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-filter-add, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-edit {
  font-family: var(--ag-icon-font-family-edit, var(--ag-icon-font-family));
  font-weight: var(--ag-icon-font-weight-edit, var(--ag-icon-font-weight));
  color: var(--ag-icon-font-color-edit, var(--ag-icon-font-color));
}

.ag-icon-edit::before {
  content: var(--ag-icon-font-code-edit, "\f145");
  display: var(--ag-icon-font-display-edit, var(--ag-icon-font-display));
}

.ag-icon-edit::after {
  background-image: var(--ag-icon-image-edit, var(--ag-icon-image));
  display: var(--ag-icon-image-display-edit, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-edit, var(--ag-icon-image-opacity, 0.9));
}

.ag-icon-row-drag::before {
  content: var(--ag-icon-font-code-grip);
}

.ag-left-arrow::before {
  content: var(--ag-icon-font-code-left);
}

.ag-right-arrow::before {
  content: var(--ag-icon-font-code-right);
}

[class*=ag-theme-] {
  --ag-foreground-color: #000;
  --ag-data-color: var(--ag-foreground-color);
  --ag-secondary-foreground-color: var(--ag-foreground-color);
  --ag-header-foreground-color: var(--ag-secondary-foreground-color);
  --ag-disabled-foreground-color: rgba(0, 0, 0, 0.5);
  --ag-background-color: #fff;
  --ag-header-background-color: transparent;
  --ag-tooltip-background-color: transparent;
  --ag-tooltip-error-background-color: color-mix(
      in srgb,
      var(--ag-background-color),
      var(--ag-invalid-color) 10%
  );
  --ag-tooltip-error-text-color: var(--ag-invalid-color);
  --ag-tooltip-error-border-color: color-mix(in srgb, var(--ag-background-color), var(--ag-invalid-color) 25%);
  --ag-subheader-background-color: transparent;
  --ag-subheader-toolbar-background-color: transparent;
  --ag-control-panel-background-color: transparent;
  --ag-side-button-selected-background-color: var(--ag-control-panel-background-color);
  --ag-selected-row-background-color: #bbb;
  --ag-data-background-color: var(--ag-background-color);
  --ag-odd-row-background-color: var(--ag-data-background-color);
  --ag-modal-overlay-background-color: rgba(255, 255, 255, 0.66);
  --ag-menu-background-color: var(--ag-background-color);
  --ag-menu-border-color: var(--ag-border-color);
  --ag-panel-background-color: var(--ag-background-color);
  --ag-panel-border-color: var(--ag-border-color);
  --ag-row-hover-color: transparent;
  --ag-column-hover-color: transparent;
  --ag-range-selection-border-color: var(--ag-foreground-color);
  --ag-row-drag-indicator-color: var(--ag-range-selection-border-color);
  --ag-row-drag-indicator-width: 2px;
  --ag-column-drag-indicator-color: var(--ag-range-selection-border-color);
  --ag-column-drag-indicator-width: 2px;
  --ag-range-selection-border-style: solid;
  --ag-range-selection-background-color: rgba(0, 0, 0, 0.2);
  --ag-range-selection-background-color-2: var(--ag-range-selection-background-color);
  --ag-range-selection-background-color-3: var(--ag-range-selection-background-color);
  --ag-range-selection-background-color-4: var(--ag-range-selection-background-color);
  --ag-range-selection-highlight-color: var(--ag-range-selection-border-color);
  --ag-range-header-highlight-color: color-mix(
      in srgb,
      var(--ag-header-background-color),
      var(--ag-foreground-color) 8%
  );
  --ag-selected-tab-underline-color: var(--ag-range-selection-border-color);
  --ag-selected-tab-underline-width: 0;
  --ag-selected-tab-underline-transition-speed: 0s;
  --ag-range-selection-chart-category-background-color: rgba(0, 255, 132, 0.1);
  --ag-range-selection-chart-background-color: rgba(0, 88, 255, 0.1);
  --ag-header-cell-hover-background-color: transparent;
  --ag-header-cell-moving-background-color: var(--ag-background-color);
  --ag-value-change-value-highlight-background-color: rgba(22, 160, 133, 0.5);
  --ag-value-change-delta-up-color: #43a047;
  --ag-value-change-delta-down-color: #e53935;
  --ag-row-loading-skeleton-effect-color: rgba(66, 66, 66, 0.2);
  --ag-chip-background-color: transparent;
  --ag-chip-border-color: var(--ag-chip-background-color);
  --ag-borders: solid 1px;
  --ag-border-color: rgba(0, 0, 0, 0.25);
  --ag-borders-critical: var(--ag-borders);
  --ag-borders-secondary: var(--ag-borders);
  --ag-secondary-border-color: var(--ag-border-color);
  --ag-row-border-style: solid;
  --ag-row-border-width: 1px;
  --ag-cell-horizontal-border: solid transparent;
  --ag-borders-input: var(--ag-borders-secondary);
  --ag-input-border-color: var(--ag-secondary-border-color);
  --ag-borders-input-invalid: solid 2px;
  --ag-input-border-color-invalid: var(--ag-invalid-color);
  --ag-full-row-invalid-background-color: color-mix(
      in srgb,
      var(--ag-background-color),
      var(--ag-invalid-color) 25%
  );
  --ag-borders-side-button: var(--ag-borders);
  --ag-border-radius: 0px;
  --ag-wrapper-border-radius: var(--ag-border-radius);
  --ag-row-border-color: var(--ag-secondary-border-color);
  --ag-header-column-separator-display: none;
  --ag-header-column-separator-height: 100%;
  --ag-header-column-separator-width: 1px;
  --ag-header-column-separator-color: var(--ag-secondary-border-color);
  --ag-header-column-resize-handle-display: none;
  --ag-header-column-resize-handle-height: 50%;
  --ag-header-column-resize-handle-width: 1px;
  --ag-header-column-resize-handle-color: var(--ag-secondary-border-color);
  --ag-invalid-color: red;
  --ag-input-disabled-border-color: var(--ag-input-border-color);
  --ag-input-disabled-background-color: transparent;
  --ag-checkbox-background-color: transparent;
  --ag-checkbox-border-radius: var(--ag-border-radius);
  --ag-checkbox-checked-color: var(--ag-foreground-color);
  --ag-checkbox-unchecked-color: var(--ag-foreground-color);
  --ag-checkbox-indeterminate-color: var(--ag-checkbox-unchecked-color);
  --ag-toggle-button-off-border-color: var(--ag-checkbox-unchecked-color);
  --ag-toggle-button-off-background-color: var(--ag-checkbox-unchecked-color);
  --ag-toggle-button-on-border-color: var(--ag-checkbox-checked-color);
  --ag-toggle-button-on-background-color: var(--ag-checkbox-checked-color);
  --ag-toggle-button-switch-background-color: var(--ag-background-color);
  --ag-toggle-button-switch-border-color: var(--ag-toggle-button-off-border-color);
  --ag-toggle-button-border-width: 1px;
  --ag-toggle-button-height: var(--ag-icon-size);
  --ag-toggle-button-width: calc(var(--ag-toggle-button-height) * 2);
  --ag-input-focus-box-shadow: none;
  --ag-input-error-focus-box-shadow: none;
  --ag-input-focus-border-color: none;
  --ag-minichart-selected-chart-color: var(--ag-checkbox-checked-color);
  --ag-minichart-selected-page-color: var(--ag-checkbox-checked-color);
  --ag-grid-size: 4px;
  --ag-icon-size: 12px;
  --ag-icon-font-weight: normal;
  --ag-icon-font-color: var(--ag-foreground-color);
  --ag-icon-image-display: block;
  --ag-widget-container-horizontal-padding: calc(var(--ag-grid-size) * 1.5);
  --ag-widget-container-vertical-padding: calc(var(--ag-grid-size) * 1.5);
  --ag-widget-horizontal-spacing: calc(var(--ag-grid-size) * 2);
  --ag-widget-vertical-spacing: var(--ag-grid-size);
  --ag-cell-horizontal-padding: calc(var(--ag-grid-size) * 3);
  --ag-cell-widget-spacing: var(--ag-cell-horizontal-padding);
  --ag-row-height: calc(var(--ag-grid-size) * 6 + 1px);
  --ag-header-height: var(--ag-row-height);
  --ag-pagination-panel-height: var(--ag-header-height);
  --ag-list-item-height: calc(var(--ag-grid-size) * 5);
  --ag-column-select-indent-size: calc(var(--ag-grid-size) + var(--ag-icon-size));
  --ag-set-filter-indent-size: calc(var(--ag-grid-size) + var(--ag-icon-size));
  --ag-advanced-filter-builder-indent-size: calc(var(--ag-grid-size) * 2 + var(--ag-icon-size));
  --ag-row-group-indent-size: calc(var(--ag-cell-widget-spacing) + var(--ag-icon-size));
  --ag-row-numbers-selected-color: #bbb;
  --ag-filter-tool-panel-group-indent: 16px;
  --ag-tab-min-width: 220px;
  --ag-chart-menu-panel-width: var(--ag-tab-min-width);
  --ag-menu-min-width: 181px;
  --ag-side-bar-panel-width: 200px;
  --ag-font-family: "Helvetica Neue", sans-serif;
  --ag-font-size: 14px;
  --ag-card-radius: var(--ag-border-radius);
  --ag-card-shadow: none;
  --ag-popup-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3);
  --ag-advanced-filter-join-pill-color: #f08e8d;
  --ag-advanced-filter-column-pill-color: #a6e194;
  --ag-advanced-filter-option-pill-color: #f3c08b;
  --ag-advanced-filter-value-pill-color: #85c0e4;
  --ag-find-match-color: var(--ag-foreground-color);
  --ag-find-active-match-color: var(--ag-foreground-color);
  --ag-find-match-background-color: #ffff00;
  --ag-find-active-match-background-color: #ffa500;
  --ag-cell-batch-edit-background-color: rgb(220 181 139 / 16%);
  --ag-cell-batch-edit-text-color: #422f00;
  --ag-row-batch-edit-background-color: var(--ag-cell-batch-edit-background-color);
  --ag-row-batch-edit-text-color: var(--ag-cell-batch-edit-text-color);
  --ag-filter-panel-apply-button-color: var(--ag-foreground-color);
  --ag-filter-panel-apply-button-background-color: var(--ag-background-color);
  --ag-filter-panel-card-subtle-color: var(--ag-foreground-color);
  --ag-filter-panel-card-subtle-hover-color: var(--ag-foreground-color);
  --ag-formula-token-1-color: #3269c6;
  --ag-formula-token-1-background-color: rgb(50 105 198 / 16%);
  --ag-formula-token-1-border-color: var(--ag-formula-token-1-color);
  --ag-formula-token-2-color: #c0343f;
  --ag-formula-token-2-background-color: rgb(192 52 63 / 16%);
  --ag-formula-token-2-border-color: var(--ag-formula-token-2-color);
  --ag-formula-token-3-color: #8156b8;
  --ag-formula-token-3-background-color: rgb(129 86 184 / 16%);
  --ag-formula-token-3-border-color: var(--ag-formula-token-3-color);
  --ag-formula-token-4-color: #007c1f;
  --ag-formula-token-4-background-color: rgb(0 124 31 / 16%);
  --ag-formula-token-4-border-color: var(--ag-formula-token-4-color);
  --ag-formula-token-5-color: #b03e85;
  --ag-formula-token-5-background-color: rgb(176 62 133 / 16%);
  --ag-formula-token-5-border-color: var(--ag-formula-token-5-color);
  --ag-formula-token-6-color: #b74900;
  --ag-formula-token-6-background-color: rgb(183 73 0 / 16%);
  --ag-formula-token-6-border-color: var(--ag-formula-token-6-color);
  --ag-formula-token-7-color: #247492;
  --ag-formula-token-7-background-color: rgb(36 116 146 / 16%);
  --ag-formula-token-7-border-color: var(--ag-formula-token-7-color);
}

.ag-root-wrapper,
.ag-dnd-ghost {
  background-color: var(--ag-background-color);
}

.ag-sticky-top,
.ag-sticky-bottom {
  background-color: var(--ag-data-background-color);
}

.ag-sticky-bottom .ag-pinned-left-sticky-bottom,
.ag-sticky-bottom .ag-sticky-bottom-container,
.ag-sticky-bottom .ag-pinned-right-sticky-bottom {
  border-top: var(--ag-row-border-style) var(--ag-row-border-color) var(--ag-row-border-width);
}

.ag-root-wrapper,
.ag-popup {
  --ag-indentation-level: 0;
}

[class*=ag-theme-] {
  -webkit-font-smoothing: antialiased;
  font-family: var(--ag-font-family);
  font-size: var(--ag-font-size);
  line-height: normal;
  color: var(--ag-foreground-color);
}

ag-grid,
ag-grid-angular,
ag-grid-ng2,
ag-grid-polymer,
ag-grid-aurelia {
  display: block;
}

.ag-aria-description-container {
  z-index: 9999;
  border: 0px;
  clip: rect(1px, 1px, 1px, 1px);
  height: 1px;
  width: 1px;
  position: absolute;
  overflow: hidden;
  padding: 0px;
  white-space: nowrap;
}

.ag-hidden {
  display: none !important;
}

.ag-invisible {
  visibility: hidden !important;
}

.ag-drag-handle {
  cursor: grab;
}

.ag-column-drop-wrapper {
  display: flex;
}

.ag-column-drop-horizontal-half-width {
  display: inline-block;
  width: 50% !important;
}

.ag-unselectable {
  -webkit-user-select: none;
  user-select: none;
}

.ag-selectable {
  -webkit-user-select: text;
  user-select: text;
}

.ag-tab {
  position: relative;
}

.ag-tab-guard {
  position: absolute;
  width: 0;
  height: 0;
  display: block;
}

.ag-virtual-list-viewport .ag-tab-guard {
  position: sticky;
}

.ag-tab-guard-top {
  top: 1px;
}

.ag-tab-guard-bottom {
  bottom: 1px;
}

.ag-select-agg-func-popup {
  position: absolute;
}

.ag-input-wrapper,
.ag-picker-field-wrapper {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  line-height: normal;
  position: relative;
}

.ag-shake-left-to-right {
  animation-direction: alternate;
  animation-duration: 0.2s;
  animation-iteration-count: infinite;
  animation-name: ag-shake-left-to-right;
}

@keyframes ag-shake-left-to-right {
  from {
    padding-left: 6px;
    padding-right: 2px;
  }
  to {
    padding-left: 2px;
    padding-right: 6px;
  }
}
.ag-root-wrapper {
  cursor: default;
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  white-space: normal;
}
.ag-root-wrapper.ag-layout-normal {
  height: 100%;
}

.ag-watermark {
  position: absolute;
  bottom: 20px;
  right: 25px;
  opacity: 0.7;
  transition: opacity 1s ease-out 3s;
  color: #9b9b9b;
}
.ag-watermark::before {
  content: "";
  background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjA5IiBoZWlnaHQ9IjM2IiB2aWV3Qm94PSIwIDAgMjA5IDM2IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNMTkyLjk5MyAyMy42NTgyVjE1LjcxMTdIMTc5LjQ1MkwxNzEuNTA1IDIzLjY1ODJIMTkyLjk5M1oiIGZpbGw9IiM5QjlCOUIiLz4KPHBhdGggZD0iTTIwOC4yNSAzLjk1MDgxSDE5MS4yNzZMMTgzLjI2NiAxMS44OTczSDIwOC4yNVYzLjk1MDgxWiIgZmlsbD0iIzlCOUI5QiIvPgo8cGF0aCBkPSJNMTYzLjYyMiAzMS42MDQ4TDE2Ny42OTEgMjcuNTM2MUgxODEuNDIzVjM1LjQ4MjdIMTYzLjYyMlYzMS42MDQ4WiIgZmlsbD0iIzlCOUI5QiIvPgo8cGF0aCBkPSJNMTY2LjYxIDE5Ljc4MDNIMTc1LjM4M0wxODMuMzkzIDExLjgzMzdIMTY2LjYxVjE5Ljc4MDNaIiBmaWxsPSIjOUI5QjlCIi8+CjxwYXRoIGQ9Ik0xNTcuMDExIDMxLjYwNDdIMTYzLjYyMkwxNzEuNTA1IDIzLjY1ODJIMTU3LjAxMVYzMS42MDQ3WiIgZmlsbD0iIzlCOUI5QiIvPgo8cGF0aCBkPSJNMTkxLjI3NiAzLjk1MDgxTDE4Ny4yMDggOC4wMTk0MUgxNjEuMjdWMC4wNzI4NzZIMTkxLjI3NlYzLjk1MDgxWiIgZmlsbD0iIzlCOUI5QiIvPgo8cGF0aCBkPSJNMjAuODM5MSAzMC4yMDYxSDguMzc4OTJMNi4yMTc0NSAzNS41NDYySDAuNzUwMjQ0TDEyLjI1NjggOC41OTE1NUgxNy4wMjQ3TDI4LjUzMTMgMzUuNTQ2MkgyMy4wMDA1TDIwLjgzOTEgMzAuMjA2MVpNMTkuMTIyNyAyNS45NDY4TDE0LjYwOSAxNC45NDg4TDEwLjA5NTQgMjUuOTQ2OEgxOS4xMjI3WiIgZmlsbD0iIzlCOUI5QiIvPgo8cGF0aCBkPSJNMTA0LjQzNyAxOC41MDg5QzEwNi4wMjYgMTYuMTU2NyAxMTAuMDMxIDE1LjkwMjQgMTExLjY4NCAxNS45MDI0VjIwLjQ3OTZDMTA5LjY1IDIwLjQ3OTYgMTA3LjYxNSAyMC41NDMyIDEwNi40MDcgMjEuNDMzMkMxMDUuMiAyMi4zMjMyIDEwNC41NjQgMjMuNTMxMSAxMDQuNTY0IDI0Ljk5MzJWMzUuNTQ2Mkg5OS42MDUxVjE1LjkwMjRIMTA0LjM3M0wxMDQuNDM3IDE4LjUwODlaIiBmaWxsPSIjOUI5QjlCIi8+CjxwYXRoIGQ9Ik0xMTkuMzc2IDE1LjkwMjRIMTE0LjQxOFYzNS41NDYySDExOS4zNzZWMTUuOTAyNFoiIGZpbGw9IiM5QjlCOUIiLz4KPHBhdGggZD0iTTExOS4zNzYgNy4xMjkzOUgxMTQuNDE4VjEyLjk3OEgxMTkuMzc2VjcuMTI5MzlaIiBmaWxsPSIjOUI5QjlCIi8+CjxwYXRoIGQ9Ik0xNDMuOTc5IDcuMTI5MzlWMzUuNTQ2MkgxMzkuMjExTDEzOS4wODQgMzIuNTU4M0MxMzguMzg0IDMzLjU3NTUgMTM3LjQ5NCAzNC40MDE5IDEzNi40MTQgMzUuMDM3NkMxMzUuMzMzIDM1LjYwOTggMTMzLjk5OCAzNS45Mjc2IDEzMi40NzIgMzUuOTI3NkMxMzEuMTM3IDM1LjkyNzYgMTI5Ljg2NiAzNS42NzMzIDEyOC43ODUgMzUuMjI4M0MxMjcuNjQxIDM0LjcxOTcgMTI2LjYyMyAzNC4wODQgMTI1Ljc5NyAzMy4xOTRDMTI0Ljk3MSAzMi4zMDQgMTI0LjI3MSAzMS4yMjMzIDEyMy44MjYgMzAuMDE1NEMxMjMuMzE4IDI4LjgwNzUgMTIzLjEyNyAyNy40MDkgMTIzLjEyNyAyNS44ODMyQzEyMy4xMjcgMjQuMzU3NSAxMjMuMzgxIDIyLjk1ODkgMTIzLjgyNiAyMS42ODc0QzEyNC4zMzUgMjAuNDE2IDEyNC45NzEgMTkuMzM1MyAxMjUuNzk3IDE4LjQ0NTNDMTI2LjYyMyAxNy41NTUyIDEyNy42NDEgMTYuODU2IDEyOC43ODUgMTYuMzQ3NEMxMjkuOTI5IDE1LjgzODggMTMxLjEzNyAxNS41ODQ1IDEzMi40NzIgMTUuNTg0NUMxMzMuOTk4IDE1LjU4NDUgMTM1LjI2OSAxNS44Mzg4IDEzNi4zNSAxNi40MTA5QzEzNy40MzEgMTYuOTgzMSAxMzguMzIxIDE3Ljc0NTkgMTM5LjAyIDE4LjgyNjdWNy4xOTI5NUgxNDMuOTc5VjcuMTI5MzlaTTEzMy41NTMgMzEuNjY4M0MxMzUuMjA2IDMxLjY2ODMgMTM2LjQ3NyAzMS4wOTYyIDEzNy40OTQgMzAuMDE1NEMxMzguNTExIDI4LjkzNDcgMTM5LjAyIDI3LjQ3MjUgMTM5LjAyIDI1LjY5MjVDMTM5LjAyIDIzLjkxMjUgMTM4LjUxMSAyMi41MTM5IDEzNy40OTQgMjEuMzY5NkMxMzYuNDc3IDIwLjI4ODggMTM1LjIwNiAxOS43MTY3IDEzMy41NTMgMTkuNzE2N0MxMzEuOTYzIDE5LjcxNjcgMTMwLjYyOCAyMC4yODg4IDEyOS42NzUgMjEuMzY5NkMxMjguNjU4IDIyLjQ1MDMgMTI4LjE0OSAyMy45MTI1IDEyOC4xNDkgMjUuNjkyNUMxMjguMTQ5IDI3LjQ3MjUgMTI4LjY1OCAyOC44NzExIDEyOS42NzUgMjkuOTUxOEMxMzAuNjkyIDMxLjA5NjEgMTMxLjk2MyAzMS42NjgzIDEzMy41NTMgMzEuNjY4M1oiIGZpbGw9IiM5QjlCOUIiLz4KPHBhdGggZD0iTTU3LjIwMjQgMjAuMzUyNUg0NC45MzNWMjQuNjExOEg1MS45MjU5QzUxLjczNTIgMjYuNzczMyA1MC45MDg4IDI4LjQyNjEgNDkuNTEwMiAyOS43NjExQzQ4LjExMTYgMzEuMDMyNiA0Ni4zMzE1IDMxLjY2ODMgNDQuMDQyOSAzMS42NjgzQzQyLjc3MTUgMzEuNjY4MyA0MS41NjM2IDMxLjQxNCA0MC41NDY1IDMwLjk2OUMzOS40NjU3IDMwLjUyNCAzOC41NzU3IDI5Ljg4ODMgMzcuODEyOSAyOC45OTgzQzM3LjA1IDI4LjE3MTggMzYuNDc3OCAyNy4xNTQ3IDM2LjAzMjggMjUuOTQ2OEMzNS41ODc4IDI0LjczODkgMzUuMzk3MSAyMy40Njc1IDM1LjM5NzEgMjIuMDA1M0MzNS4zOTcxIDIwLjU0MzIgMzUuNTg3OCAxOS4yNzE3IDM2LjAzMjggMTguMDYzOEMzNi40MTQzIDE2Ljg1NiAzNy4wNSAxNS45MDI0IDM3LjgxMjkgMTUuMDEyNEMzOC41NzU3IDE0LjE4NTkgMzkuNDY1NyAxMy41NTAyIDQwLjU0NjUgMTMuMDQxNkM0MS42MjcyIDEyLjU5NjYgNDIuNzcxNSAxMi4zNDIzIDQ0LjEwNjUgMTIuMzQyM0M0Ni43NzY2IDEyLjM0MjMgNDguODEwOSAxMi45NzggNTAuMjA5NSAxNC4yNDk1TDUzLjUxNTIgMTAuOTQzOEM1MS4wMzU5IDkuMDM2NTkgNDcuODU3MyA4LjAxOTQxIDQ0LjEwNjUgOC4wMTk0MUM0Mi4wMDg2IDguMDE5NDEgNDAuMTAxNSA4LjMzNzI5IDM4LjM4NSA5LjAzNjU5QzM2LjY2ODYgOS43MzU4OCAzNS4yMDY0IDEwLjYyNTkgMzMuOTk4NSAxMS44MzM3QzMyLjc5MDYgMTMuMDQxNiAzMS44MzcxIDE0LjUwMzggMzEuMjAxNCAxNi4yMjAzQzMwLjU2NTYgMTcuOTM2NyAzMC4yNDc4IDE5Ljg0MzggMzAuMjQ3OCAyMS44NzgyQzMwLjI0NzggMjMuOTEyNSAzMC41NjU2IDI1LjgxOTcgMzEuMjY0OSAyNy41MzYxQzMxLjk2NDIgMjkuMjUyNiAzMi44NTQyIDMwLjcxNDcgMzQuMDYyMSAzMS45MjI2QzM1LjI3IDMzLjEzMDUgMzYuNzMyMSAzNC4wODQxIDM4LjQ0ODYgMzQuNzE5OEM0MC4xNjUgMzUuNDE5MSA0Mi4wNzIyIDM1LjczNyA0NC4xMDY1IDM1LjczN0M0Ni4xNDA4IDM1LjczNyA0Ny45ODQ0IDM1LjQxOTEgNDkuNjM3MyAzNC43MTk4QzUxLjI5MDIgMzQuMDIwNSA1Mi42ODg4IDMzLjEzMDUgNTMuODMzMSAzMS45MjI2QzU0Ljk3NzQgMzAuNzE0NyA1NS44Njc0IDI5LjI1MjYgNTYuNTAzMSAyNy41MzYxQzU3LjEzODggMjUuODE5NyA1Ny40NTY3IDIzLjkxMjUgNTcuNDU2NyAyMS44NzgyVjIxLjA1MTdDNTcuMjY2IDIwLjkyNDYgNTcuMjAyNCAyMC42MDY3IDU3LjIwMjQgMjAuMzUyNVoiIGZpbGw9IiM5QjlCOUIiLz4KPHBhdGggZD0iTTk1Ljk4MTUgMjAuMzUyNUg4My43MTIxVjI0LjYxMThIOTAuNzA1QzkwLjUxNDMgMjYuNzczMyA4OS42ODc5IDI4LjQyNjEgODguMjg5MyAyOS43NjExQzg2Ljg5MDcgMzEuMDMyNiA4NS4xMTA2IDMxLjY2ODMgODIuODIyIDMxLjY2ODNDODEuNTUwNiAzMS42NjgzIDgwLjM0MjcgMzEuNDE0IDc5LjMyNTYgMzAuOTY5Qzc4LjI0NDggMzAuNTI0IDc3LjM1NDggMjkuODg4MyA3Ni41OTIgMjguOTk4M0M3NS44MjkxIDI4LjE3MTggNzUuMjU3IDI3LjE1NDcgNzQuODExOSAyNS45NDY4Qzc0LjM2NjkgMjQuNzM4OSA3NC4xNzYyIDIzLjQ2NzUgNzQuMTc2MiAyMi4wMDUzQzc0LjE3NjIgMjAuNTQzMiA3NC4zNjY5IDE5LjI3MTcgNzQuODExOSAxOC4wNjM4Qzc1LjE5MzQgMTYuODU2IDc1LjgyOTEgMTUuOTAyNCA3Ni41OTIgMTUuMDEyNEM3Ny4zNTQ4IDE0LjE4NTkgNzguMjQ0OCAxMy41NTAyIDc5LjMyNTYgMTMuMDQxNkM4MC40MDYzIDEyLjU5NjYgODEuNTUwNiAxMi4zNDIzIDgyLjg4NTYgMTIuMzQyM0M4NS41NTU3IDEyLjM0MjMgODcuNTkgMTIuOTc4IDg4Ljk4ODYgMTQuMjQ5NUw5Mi4yOTQzIDEwLjk0MzhDODkuODE1IDkuMDM2NTkgODYuNjM2NCA4LjAxOTQxIDgyLjg4NTYgOC4wMTk0MUM4MC43ODc4IDguMDE5NDEgNzguODgwNiA4LjMzNzI5IDc3LjE2NDEgOS4wMzY1OUM3NS40NDc3IDkuNzM1ODggNzMuOTg1NSAxMC42MjU5IDcyLjc3NzYgMTEuODMzN0M3MS41Njk4IDEzLjA0MTYgNzAuNjE2MiAxNC41MDM4IDY5Ljk4MDUgMTYuMjIwM0M2OS4zNDQ3IDE3LjkzNjcgNjkuMDI2OSAxOS44NDM4IDY5LjAyNjkgMjEuODc4MkM2OS4wMjY5IDIzLjkxMjUgNjkuMzQ0NyAyNS44MTk3IDcwLjA0NCAyNy41MzYxQzcwLjc0MzMgMjkuMjUyNiA3MS42MzM0IDMwLjcxNDcgNzIuODQxMiAzMS45MjI2Qzc0LjA0OTEgMzMuMTMwNSA3NS41MTEyIDM0LjA4NDEgNzcuMjI3NyAzNC43MTk4Qzc4Ljk0NDEgMzUuNDE5MSA4MC44NTEzIDM1LjczNyA4Mi44ODU2IDM1LjczN0M4NC45MiAzNS43MzcgODYuNzYzNiAzNS40MTkxIDg4LjQxNjQgMzQuNzE5OEM5MC4wNjkzIDM0LjAyMDUgOTEuNDY3OSAzMy4xMzA1IDkyLjYxMjIgMzEuOTIyNkM5My43NTY1IDMwLjcxNDcgOTQuNjQ2NSAyOS4yNTI2IDk1LjI4MjIgMjcuNTM2MUM5NS45MTggMjUuODE5NyA5Ni4yMzU4IDIzLjkxMjUgOTYuMjM1OCAyMS44NzgyVjIxLjA1MTdDOTYuMDQ1MSAyMC45MjQ2IDk1Ljk4MTUgMjAuNjA2NyA5NS45ODE1IDIwLjM1MjVaIiBmaWxsPSIjOUI5QjlCIi8+Cjwvc3ZnPgo=);
  background-repeat: no-repeat;
  background-size: 170px 40px;
  display: block;
  height: 40px;
  width: 170px;
}

.ag-watermark-text {
  opacity: 0.5;
  font-weight: bold;
  font-family: Impact, sans-serif;
  font-size: 19px;
  padding-left: 0.7rem;
}

.ag-root-wrapper-body {
  display: flex;
  flex-direction: row;
}
.ag-root-wrapper-body.ag-layout-normal {
  flex: 1 1 auto;
  height: 0;
  min-height: 0;
}

.ag-root {
  position: relative;
  display: flex;
  flex-direction: column;
}
.ag-root.ag-layout-normal, .ag-root.ag-layout-auto-height {
  overflow: hidden;
  flex: 1 1 auto;
  width: 0;
}
.ag-root.ag-layout-normal {
  height: 100%;
}

.ag-header-viewport,
.ag-floating-top-viewport,
.ag-body-viewport,
.ag-center-cols-viewport,
.ag-floating-bottom-viewport,
.ag-body-horizontal-scroll-viewport,
.ag-body-vertical-scroll-viewport,
.ag-virtual-list-viewport,
.ag-sticky-top-viewport,
.ag-sticky-bottom-viewport {
  position: relative;
  height: 100%;
  min-width: 0px;
  overflow: hidden;
  flex: 1 1 auto;
}

.ag-body-viewport,
.ag-center-cols-viewport,
.ag-header-viewport,
.ag-floating-top-viewport,
.ag-floating-bottom-viewport,
.ag-sticky-top-viewport,
.ag-sticky-bottom-viewport {
  overflow-x: auto;
  -ms-overflow-style: none !important;
  scrollbar-width: none !important;
}
.ag-body-viewport::-webkit-scrollbar,
.ag-center-cols-viewport::-webkit-scrollbar,
.ag-header-viewport::-webkit-scrollbar,
.ag-floating-top-viewport::-webkit-scrollbar,
.ag-floating-bottom-viewport::-webkit-scrollbar,
.ag-sticky-top-viewport::-webkit-scrollbar,
.ag-sticky-bottom-viewport::-webkit-scrollbar {
  display: none !important;
}

.ag-body-viewport {
  display: flex;
  overflow-x: hidden;
}
.ag-body-viewport.ag-layout-normal {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.ag-viewport {
  position: relative;
}

.ag-spanning-container {
  position: absolute;
  top: 0;
  z-index: 1;
}

.ag-sticky-top-container,
.ag-sticky-bottom-container,
.ag-floating-top-container,
.ag-floating-bottom-container {
  min-height: 1px;
}

.ag-sticky-top,
.ag-sticky-bottom {
  z-index: 1;
}

.ag-center-cols-viewport {
  min-height: 100%;
  width: 100%;
}

.ag-body-horizontal-scroll-viewport {
  overflow-x: scroll;
}

.ag-body-vertical-scroll-viewport {
  overflow-y: scroll;
}

.ag-virtual-list-viewport {
  overflow: auto;
  width: 100%;
}

.ag-header-container,
.ag-floating-top-container,
.ag-body-container,
.ag-pinned-right-cols-container,
.ag-center-cols-container,
.ag-pinned-left-cols-container,
.ag-floating-bottom-container,
.ag-body-horizontal-scroll-container,
.ag-body-vertical-scroll-container,
.ag-full-width-container,
.ag-floating-bottom-full-width-container,
.ag-virtual-list-container,
.ag-sticky-top-container,
.ag-sticky-bottom-container,
.ag-pinned-left-sticky-bottom,
.ag-pinned-right-sticky-bottom {
  position: relative;
}

.ag-header-container,
.ag-floating-top-container,
.ag-pinned-left-floating-top,
.ag-pinned-right-floating-top,
.ag-floating-bottom-container,
.ag-pinned-left-floating-bottom,
.ag-pinned-right-floating-bottom,
.ag-sticky-top-container,
.ag-sticky-bottom-container {
  height: 100%;
  white-space: nowrap;
}

.ag-center-cols-container {
  display: block;
}

.ag-pinned-right-cols-container {
  display: block;
}

.ag-body-horizontal-scroll-container {
  height: 100%;
}

.ag-body-vertical-scroll-container {
  width: 100%;
}

.ag-full-width-container,
.ag-floating-top-full-width-container,
.ag-floating-bottom-full-width-container,
.ag-sticky-top-full-width-container,
.ag-sticky-bottom-full-width-container {
  position: absolute;
  top: 0px;
  pointer-events: none;
}
.ag-ltr .ag-full-width-container,
.ag-ltr .ag-floating-top-full-width-container,
.ag-ltr .ag-floating-bottom-full-width-container,
.ag-ltr .ag-sticky-top-full-width-container,
.ag-ltr .ag-sticky-bottom-full-width-container {
  left: 0;
}
.ag-rtl .ag-full-width-container,
.ag-rtl .ag-floating-top-full-width-container,
.ag-rtl .ag-floating-bottom-full-width-container,
.ag-rtl .ag-sticky-top-full-width-container,
.ag-rtl .ag-sticky-bottom-full-width-container {
  right: 0;
}

.ag-full-width-container {
  width: 100%;
}

.ag-floating-bottom-full-width-container,
.ag-floating-top-full-width-container {
  display: inline-block;
  overflow: hidden;
  height: 100%;
  width: 100%;
}

.ag-virtual-list-container {
  overflow: hidden;
}

.ag-body {
  position: relative;
  display: flex;
  flex: 1 1 auto;
  flex-direction: row !important;
  min-height: 0;
}

.ag-body-horizontal-scroll,
.ag-body-vertical-scroll {
  min-height: 0;
  min-width: 0;
  display: flex;
  position: relative;
}
.ag-body-horizontal-scroll.ag-scrollbar-invisible,
.ag-body-vertical-scroll.ag-scrollbar-invisible {
  position: absolute;
  bottom: 0;
}
.ag-body-horizontal-scroll.ag-scrollbar-invisible.ag-apple-scrollbar,
.ag-body-vertical-scroll.ag-scrollbar-invisible.ag-apple-scrollbar {
  opacity: 0;
  transition: opacity 400ms;
  visibility: hidden;
}
.ag-body-horizontal-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-scrolling, .ag-body-horizontal-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-active,
.ag-body-vertical-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-scrolling,
.ag-body-vertical-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-active {
  visibility: visible;
  opacity: 1;
}

.ag-body-horizontal-scroll {
  width: 100%;
}
.ag-body-horizontal-scroll.ag-scrollbar-invisible {
  left: 0;
  right: 0;
}

.ag-body-vertical-scroll {
  height: 100%;
}
.ag-body-vertical-scroll.ag-scrollbar-invisible {
  top: 0;
  z-index: 10;
}
.ag-ltr .ag-body-vertical-scroll.ag-scrollbar-invisible {
  right: 0;
}
.ag-rtl .ag-body-vertical-scroll.ag-scrollbar-invisible {
  left: 0;
}

.ag-force-vertical-scroll {
  overflow-y: scroll !important;
}

.ag-horizontal-left-spacer,
.ag-horizontal-right-spacer {
  height: 100%;
  min-width: 0;
  overflow-x: scroll;
}
.ag-horizontal-left-spacer.ag-scroller-corner,
.ag-horizontal-right-spacer.ag-scroller-corner {
  overflow-x: hidden;
}

.ag-header,
.ag-pinned-left-header,
.ag-pinned-right-header {
  display: inline-block;
  overflow: hidden;
  position: relative;
}

.ag-header-cell-sortable .ag-header-cell-label,
.ag-header-group-cell-selectable .ag-header-cell-comp-wrapper {
  cursor: pointer;
}

.ag-header {
  display: flex;
  width: 100%;
  white-space: nowrap;
}

.ag-pinned-left-header {
  height: 100%;
}

.ag-pinned-right-header {
  height: 100%;
}

.ag-header-row {
  position: absolute;
}

.ag-header-row:not(.ag-header-row-column-group) {
  overflow: hidden;
}

.ag-header.ag-header-allow-overflow .ag-header-row {
  overflow: visible;
}

.ag-header-cell {
  display: inline-flex;
  align-items: center;
  position: absolute;
  height: 100%;
  overflow: hidden;
}

.ag-header-cell.ag-header-active .ag-header-cell-menu-button,
.ag-header-cell-filter-button {
  opacity: 1;
}

.ag-header-cell-menu-button:not(.ag-header-menu-always-show) {
  transition: opacity 0.2s;
  opacity: 0;
}

.ag-header-group-cell-label,
.ag-header-cell-label {
  display: flex;
  flex: 1 1 auto;
  align-self: stretch;
  align-items: center;
  overflow: hidden;
}

.ag-header-cell-label {
  text-overflow: ellipsis;
}

.ag-header-group-cell-label.ag-sticky-label {
  position: sticky;
  flex: none;
  max-width: 100%;
  overflow: visible;
}

.ag-header-group-text {
  overflow: hidden;
  text-overflow: ellipsis;
}

.ag-header-cell-text {
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: break-word;
}

.ag-header-group-cell .ag-header-cell-comp-wrapper {
  display: flex;
}

.ag-header-cell:not(.ag-header-cell-auto-height) .ag-header-cell-comp-wrapper {
  height: 100%;
  display: flex;
  align-items: center;
}

.ag-header-cell-comp-wrapper {
  width: 100%;
}

.ag-header-cell-wrap-text .ag-header-cell-comp-wrapper {
  white-space: normal;
}

.ag-header-cell-comp-wrapper-limited-height > div {
  overflow: hidden;
}

.ag-right-aligned-header .ag-header-cell-label {
  flex-direction: row-reverse;
}

.ag-header-cell-resize {
  position: absolute;
  z-index: 2;
  height: 100%;
  width: 8px;
  top: 0;
  cursor: ew-resize;
}
.ag-ltr .ag-header-cell-resize {
  right: -3px;
}
.ag-rtl .ag-header-cell-resize {
  left: -3px;
}

.ag-pinned-left-header .ag-header-cell-resize {
  right: -3px;
}

.ag-pinned-right-header .ag-header-cell-resize {
  left: -3px;
}

.ag-header-select-all {
  display: flex;
}

.ag-header-cell-menu-button,
.ag-header-cell-filter-button,
.ag-side-button-button,
.ag-panel-title-bar-button,
.ag-floating-filter-button-button {
  cursor: pointer;
}

.ag-column-moving .ag-cell {
  transition: left 0.2s;
}
.ag-column-moving .ag-header-cell {
  transition: left 0.2s;
}
.ag-column-moving .ag-spanned-cell-wrapper {
  transition: left 0.2s;
}
.ag-column-moving .ag-header-group-cell {
  transition: left 0.2s, width 0.2s;
}

.ag-delay-render .ag-cell {
  visibility: hidden;
}
.ag-delay-render .ag-row {
  visibility: hidden;
}
.ag-delay-render .ag-spanned-cell-wrapper {
  visibility: hidden;
}
.ag-delay-render .ag-header-cell {
  visibility: hidden;
}
.ag-delay-render .ag-header-group-cell {
  visibility: hidden;
}

.ag-column-panel {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  flex: 1 1 auto;
}

.ag-column-select {
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  flex: 3 1 0px;
}

.ag-column-select-header {
  position: relative;
  display: flex;
  flex: none;
}

.ag-column-select-header-icon {
  position: relative;
}

.ag-column-select-header-filter-wrapper {
  flex: 1 1 auto;
}

.ag-column-select-header-filter {
  width: 100%;
}

.ag-column-select-list {
  flex: 1 1 0px;
  overflow: hidden;
}

.ag-column-drop {
  position: relative;
  display: inline-flex;
  align-items: center;
  overflow: auto;
  width: 100%;
}

.ag-column-drop-list {
  display: flex;
  align-items: center;
}

.ag-column-drop-cell {
  position: relative;
  display: flex;
  align-items: center;
}

.ag-column-drop-cell-text {
  overflow: hidden;
  flex: 1 1 auto;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ag-column-drop-vertical {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  align-items: stretch;
  flex: 1 1 0px;
}

.ag-column-drop-vertical-title-bar {
  display: flex;
  align-items: center;
  flex: none;
}

.ag-column-drop-vertical-list {
  position: relative;
  align-items: stretch;
  flex-grow: 1;
  flex-direction: column;
  overflow-x: auto;
}
.ag-column-drop-vertical-list > * {
  flex: none;
}

.ag-column-drop-empty .ag-column-drop-vertical-list {
  overflow: hidden;
}

.ag-column-drop-vertical-empty-message {
  display: block;
}

.ag-column-drop.ag-column-drop-horizontal {
  white-space: nowrap;
  overflow: hidden;
}

.ag-column-drop-cell-button {
  cursor: pointer;
}

.ag-filter-toolpanel {
  flex: 1 1 0px;
  min-width: 0;
}

.ag-filter-toolpanel-header {
  position: relative;
}

.ag-filter-toolpanel-header,
.ag-filter-toolpanel-search {
  display: flex;
  align-items: center;
}
.ag-filter-toolpanel-header > *,
.ag-filter-toolpanel-search > * {
  display: flex;
  align-items: center;
}

.ag-filter-apply-panel {
  display: flex;
  justify-content: flex-end;
  overflow: hidden;
}

.ag-row-animation .ag-row {
  transition: transform 0.4s, top 0.4s, opacity 0.2s;
}

.ag-row-animation .ag-row.ag-after-created {
  transition: transform 0.4s, top 0.4s, height 0.4s, opacity 0.2s;
}

.ag-row-animation.ag-prevent-animation .ag-row,
.ag-row-animation.ag-prevent-animation .ag-row.ag-after-created {
  transition: none !important;
}

.ag-row-no-animation .ag-row {
  transition: none;
}

.ag-row {
  white-space: nowrap;
  width: 100%;
}

.ag-row-loading {
  display: flex;
  align-items: center;
}

.ag-row-position-absolute {
  position: absolute;
}

.ag-row-position-relative {
  position: relative;
}

.ag-full-width-row {
  overflow: hidden;
  pointer-events: all;
}

.ag-row-inline-editing {
  z-index: 1;
}

.ag-row-dragging {
  z-index: 2;
}

.ag-stub-cell {
  display: flex;
  align-items: center;
}

.ag-cell {
  display: inline-block;
  position: absolute;
  white-space: nowrap;
  height: 100%;
}

.ag-cell-value {
  flex: 1 1 auto;
}

.ag-cell-value:not(.ag-allow-overflow),
.ag-group-value {
  overflow: hidden;
  text-overflow: ellipsis;
}

.ag-cell-wrapper {
  display: flex;
  align-items: center;
}
.ag-cell-wrapper.ag-row-group {
  align-items: flex-start;
}

.ag-cell-wrap-text {
  white-space: normal;
  word-break: break-word;
}

.ag-cell-wrap-text:not(.ag-cell-auto-height) .ag-cell-wrapper {
  align-items: normal;
  height: 100%;
}
.ag-cell-wrap-text:not(.ag-cell-auto-height) .ag-cell-wrapper .ag-cell-value {
  height: 100%;
}

.ag-sparkline-wrapper {
  position: absolute;
  height: 100%;
  width: 100%;
  top: 0;
  line-height: initial;
}

.ag-full-width-row .ag-cell-wrapper.ag-row-group {
  height: 100%;
  align-items: center;
}

.ag-cell-inline-editing {
  z-index: 1;
}
.ag-cell-inline-editing .ag-cell-wrapper,
.ag-cell-inline-editing .ag-cell-edit-wrapper,
.ag-cell-inline-editing .ag-cell-editor,
.ag-cell-inline-editing .ag-cell-editor .ag-wrapper,
.ag-cell-inline-editing .ag-cell-editor.ag-cell-editor.ag-cell-editor input {
  height: 100%;
  min-height: 100%;
  width: 100%;
  line-height: normal;
}

.ag-row.ag-row-editing-invalid .ag-cell-inline-editing {
  opacity: 0.8;
}

.ag-cell .ag-icon {
  display: inline-block;
  vertical-align: middle;
}

.ag-set-filter-item {
  display: flex;
  align-items: center;
  height: 100%;
}

.ag-set-filter-item-checkbox {
  display: flex;
  width: 100%;
  height: 100%;
}

.ag-set-filter-group-icons {
  display: block;
}
.ag-set-filter-group-icons > * {
  cursor: pointer;
}

.ag-filter-body-wrapper {
  display: flex;
  flex-direction: column;
}

.ag-filter-filter {
  flex: 1 1 0px;
}

.ag-filter-condition {
  display: flex;
  justify-content: center;
}

.ag-floating-filter-body {
  position: relative;
  display: flex;
  flex: 1 1 auto;
  height: 100%;
}

.ag-floating-filter-full-body {
  display: flex;
  flex: 1 1 auto;
  height: 100%;
  width: 100%;
  align-items: center;
  overflow: hidden;
}

.ag-floating-filter-full-body > div {
  flex: 1 1 auto;
}

.ag-floating-filter-input {
  align-items: center;
  display: flex;
  width: 100%;
}
.ag-floating-filter-input > * {
  flex: 1 1 auto;
}

.ag-floating-filter-button {
  display: flex;
  flex: none;
}

.ag-date-floating-filter-wrapper {
  display: flex;
}

.ag-set-floating-filter-input input[disabled] {
  pointer-events: none;
}

.ag-dnd-ghost {
  display: inline-flex;
  align-items: center;
  cursor: move;
  white-space: nowrap;
}

.ag-overlay {
  height: 100%;
  left: 0;
  pointer-events: none;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 2;
}

.ag-overlay-panel {
  display: flex;
  height: 100%;
  width: 100%;
}

.ag-overlay-wrapper {
  display: flex;
  flex: none;
  width: 100%;
  height: 100%;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.ag-overlay-loading-wrapper,
.ag-overlay-exporting-wrapper,
.ag-overlay-modal-wrapper {
  pointer-events: all;
}

.ag-popup-child {
  z-index: 5;
  top: 0;
}

.ag-popup-editor {
  position: absolute;
  -webkit-user-select: none;
  user-select: none;
}

.ag-large-text-input {
  display: block;
}

.ag-virtual-list-item {
  position: absolute;
  width: 100%;
}

.ag-floating-top,
.ag-floating-bottom {
  overflow: hidden;
  white-space: nowrap;
  width: 100%;
  position: relative;
  display: flex;
}

.ag-pinned-left-floating-top,
.ag-pinned-right-floating-top,
.ag-pinned-left-floating-bottom,
.ag-pinned-right-floating-bottom {
  overflow: hidden;
  position: relative;
  min-width: 0px;
}

.ag-sticky-top,
.ag-sticky-bottom {
  position: absolute;
  display: flex;
  width: 100%;
  overflow: hidden;
  height: 0px;
}

.ag-sticky-bottom {
  box-sizing: content-box !important;
}
.ag-sticky-bottom .ag-pinned-left-sticky-bottom,
.ag-sticky-bottom .ag-sticky-bottom-container,
.ag-sticky-bottom .ag-pinned-right-sticky-bottom {
  box-sizing: border-box;
}

.ag-pinned-left-sticky-top,
.ag-pinned-right-sticky-top {
  position: relative;
  height: 100%;
  overflow: hidden;
}

.ag-sticky-top-full-width-container,
.ag-sticky-bottom-full-width-container {
  overflow: hidden;
  width: 100%;
  height: 100%;
}

.ag-dialog,
.ag-panel {
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
}

.ag-panel-title-bar {
  display: flex;
  flex: none;
  align-items: center;
  cursor: default;
}

.ag-panel-title-bar-title {
  flex: 1 1 auto;
}

.ag-panel-title-bar-buttons {
  display: flex;
}

.ag-panel-title-bar-button {
  cursor: pointer;
}

.ag-panel-content-wrapper {
  display: flex;
  flex: 1 1 auto;
  position: relative;
  overflow: hidden;
}

.ag-dialog {
  position: absolute;
}

.ag-resizer {
  position: absolute;
  pointer-events: none;
  z-index: 1;
  -webkit-user-select: none;
  user-select: none;
}
.ag-resizer.ag-resizer-topLeft {
  top: 0;
  left: 0;
  height: 5px;
  width: 5px;
  cursor: nwse-resize;
}
.ag-resizer.ag-resizer-top {
  top: 0;
  left: 5px;
  right: 5px;
  height: 5px;
  cursor: ns-resize;
}
.ag-resizer.ag-resizer-topRight {
  top: 0;
  right: 0;
  height: 5px;
  width: 5px;
  cursor: nesw-resize;
}
.ag-resizer.ag-resizer-right {
  top: 5px;
  right: 0;
  bottom: 5px;
  width: 5px;
  cursor: ew-resize;
}
.ag-resizer.ag-resizer-bottomRight {
  bottom: 0;
  right: 0;
  height: 5px;
  width: 5px;
  cursor: nwse-resize;
}
.ag-resizer.ag-resizer-bottom {
  bottom: 0;
  left: 5px;
  right: 5px;
  height: 5px;
  cursor: ns-resize;
}
.ag-resizer.ag-resizer-bottomLeft {
  bottom: 0;
  left: 0;
  height: 5px;
  width: 5px;
  cursor: nesw-resize;
}
.ag-resizer.ag-resizer-left {
  left: 0;
  top: 5px;
  bottom: 5px;
  width: 5px;
  cursor: ew-resize;
}

.ag-tooltip {
  position: absolute;
  z-index: 99999;
}

.ag-tooltip-custom {
  position: absolute;
  z-index: 99999;
}

.ag-tooltip:not(.ag-tooltip-interactive),
.ag-tooltip-custom:not(.ag-tooltip-interactive) {
  pointer-events: none;
}

.ag-value-slide-out {
  margin-right: 5px;
  opacity: 1;
  transition: opacity 3s, margin-right 3s;
  transition-timing-function: linear;
}

.ag-value-slide-out-end {
  margin-right: 10px;
  opacity: 0;
}

.ag-opacity-zero {
  opacity: 0 !important;
}

.ag-menu {
  max-height: 100%;
  overflow-y: auto;
  position: absolute;
  -webkit-user-select: none;
  user-select: none;
}

.ag-menu-column-select-wrapper {
  height: 265px;
  overflow: auto;
}
.ag-menu-column-select-wrapper .ag-column-select {
  height: 100%;
}

.ag-dialog .ag-panel-content-wrapper .ag-column-select {
  -webkit-user-select: none;
          user-select: none;
}

.ag-menu-list {
  display: table;
  width: 100%;
}

.ag-menu-option,
.ag-menu-separator {
  display: table-row;
}

.ag-menu-option-part,
.ag-menu-separator-part {
  display: table-cell;
  vertical-align: middle;
}

.ag-menu-option-text {
  white-space: nowrap;
}

.ag-menu-option-custom {
  display: contents;
}

.ag-compact-menu-option {
  width: 100%;
  display: flex;
  flex-wrap: nowrap;
}

.ag-compact-menu-option-text {
  white-space: nowrap;
  flex: 1 1 auto;
}

.ag-context-menu-loading-icon {
  position: absolute;
  pointer-events: none;
}

.ag-pill-container {
  display: flex;
  gap: 0.25rem;
  flex-wrap: nowrap;
}

.ag-pill {
  display: flex;
  white-space: nowrap;
  padding: 0 0.25rem;
  align-items: center;
}

.ag-pill .ag-pill-button {
  border: none;
  padding: 0;
}

.ag-rich-select {
  cursor: default;
  outline: none;
  height: 100%;
}

.ag-rich-select-value {
  display: flex;
  align-items: center;
  height: 100%;
}
.ag-rich-select-value .ag-picker-field-display {
  overflow: hidden;
  text-overflow: ellipsis;
}
.ag-rich-select-value .ag-picker-field-display.ag-display-as-placeholder {
  opacity: 0.5;
}

.ag-rich-select-list {
  position: relative;
}
.ag-rich-select-list .ag-rich-select-loading {
  display: flex;
  min-height: 2rem;
}

.ag-rich-select-row {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  white-space: nowrap;
  overflow: hidden;
  height: 100%;
}

.ag-rich-select-field-input {
  flex: 1 1 auto;
}
.ag-rich-select-field-input .ag-input-field-input {
  padding: 0 !important;
  border: none !important;
  box-shadow: none !important;
  text-overflow: ellipsis;
}
.ag-rich-select-field-input .ag-input-field-input::placeholder {
  opacity: 0.8;
}

.ag-autocomplete {
  align-items: center;
  display: flex;
}
.ag-autocomplete > * {
  flex: 1 1 auto;
}

.ag-autocomplete-list-popup {
  position: absolute;
  -webkit-user-select: none;
  user-select: none;
}

.ag-autocomplete-list {
  position: relative;
}

.ag-autocomplete-virtual-list-item {
  display: flex;
}

.ag-autocomplete-row {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  overflow: hidden;
}

.ag-autocomplete-row-label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ag-paging-panel {
  align-items: center;
  display: flex;
  justify-content: flex-end;
}

.ag-paging-page-summary-panel {
  display: flex;
  align-items: center;
}

.ag-paging-button {
  position: relative;
}

.ag-disabled .ag-paging-page-summary-panel {
  pointer-events: none;
}

.ag-tool-panel-wrapper {
  display: flex;
  overflow-y: auto;
  overflow-x: hidden;
  cursor: default;
  -webkit-user-select: none;
  user-select: none;
}

.ag-column-select-column,
.ag-column-select-column-group,
.ag-select-agg-func-item {
  position: relative;
  align-items: center;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  height: 100%;
}
.ag-column-select-column > *,
.ag-column-select-column-group > *,
.ag-select-agg-func-item > * {
  flex: none;
}

.ag-select-agg-func-item,
.ag-column-select-column-label {
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ag-column-select-checkbox {
  display: flex;
}

.ag-tool-panel-horizontal-resize {
  cursor: ew-resize;
  height: 100%;
  position: absolute;
  top: 0;
  width: 5px;
  z-index: 1;
}

.ag-ltr .ag-side-bar-left .ag-tool-panel-horizontal-resize {
  right: -3px;
}
.ag-rtl .ag-side-bar-left .ag-tool-panel-horizontal-resize {
  left: -3px;
}

.ag-ltr .ag-side-bar-right .ag-tool-panel-horizontal-resize {
  left: -3px;
}
.ag-rtl .ag-side-bar-right .ag-tool-panel-horizontal-resize {
  right: -3px;
}

.ag-details-row {
  width: 100%;
}

.ag-details-row-fixed-height {
  height: 100%;
}

.ag-details-grid {
  width: 100%;
}

.ag-details-grid-fixed-height {
  height: 100%;
}

.ag-header-group-cell {
  display: flex;
  align-items: center;
  height: 100%;
  position: absolute;
  contain: paint;
}

.ag-header-group-cell-no-group.ag-header-span-height {
  display: none;
}

.ag-cell-label-container {
  display: flex;
  justify-content: space-between;
  flex-direction: row-reverse;
  align-items: center;
  height: 100%;
  width: 100%;
}

.ag-header-group-cell-label,
.ag-cell-label-container {
  padding: 5px 0px;
}

.ag-right-aligned-header .ag-cell-label-container {
  flex-direction: row;
}
.ag-right-aligned-header .ag-header-cell-text {
  text-align: end;
}

.ag-side-bar {
  display: flex;
  flex-direction: row-reverse;
}

.ag-side-bar-left {
  order: -1;
  flex-direction: row;
}

.ag-side-button-button {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-wrap: nowrap;
  white-space: nowrap;
  outline: none;
  cursor: pointer;
}

.ag-side-button-label {
  writing-mode: vertical-lr;
}

.ag-status-bar {
  display: flex;
  justify-content: space-between;
  overflow: hidden;
}

.ag-status-panel,
.ag-status-panel.ag-status-panel-aggregations .ag-status-name-value {
  display: inline-flex;
}

.ag-status-name-value {
  white-space: nowrap;
}

.ag-status-bar-left {
  display: inline-flex;
}

.ag-status-bar-center {
  display: inline-flex;
}

.ag-status-bar-right {
  display: inline-flex;
}

.ag-row-number-cell {
  width: 100%;
  white-space: nowrap;
  overflow: hidden;
  -webkit-user-select: none;
          user-select: none;
}
.ag-ltr .ag-row-number-cell {
  text-align: right;
}
.ag-rtl .ag-row-number-cell {
  text-align: left;
}

.ag-row-numbers-resizer {
  position: absolute;
  bottom: -2px;
  left: 0;
  height: 4px;
  width: 100%;
  cursor: ns-resize;
}

.ag-floating-bottom .ag-row-numbers-resizer {
  bottom: unset;
  top: -2px;
}

.ag-icon {
  display: block;
  speak: none;
}

.ag-group {
  position: relative;
  width: 100%;
}

.ag-group-title-bar {
  display: flex;
  align-items: center;
}

.ag-group-title {
  display: inline;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.ag-group-title-bar .ag-group-title {
  cursor: default;
}

.ag-group-toolbar {
  display: flex;
  align-items: center;
}

.ag-group-container {
  display: flex;
}

.ag-disabled .ag-group-container {
  pointer-events: none;
}

.ag-group-container-horizontal {
  flex-direction: row;
  flex-wrap: wrap;
}

.ag-group-container-vertical {
  flex-direction: column;
}

.ag-column-group-icons {
  display: block;
}
.ag-column-group-icons > * {
  cursor: pointer;
}

.ag-group-item-alignment-stretch .ag-group-item {
  align-items: stretch;
}

.ag-group-item-alignment-start .ag-group-item {
  align-items: flex-start;
}

.ag-group-item-alignment-end .ag-group-item {
  align-items: flex-end;
}

.ag-toggle-button-icon {
  transition: right 0.3s;
  position: absolute;
  top: -1px;
}

.ag-input-field,
.ag-select {
  display: flex;
  flex-direction: row;
  align-items: center;
}

.ag-input-field-input {
  flex: 1 1 auto;
}

.ag-floating-filter-input .ag-input-field-input[type=date],
.ag-floating-filter-input .ag-input-field-input[type=datetime-local] {
  width: 1px;
}

.ag-range-field {
  display: flex;
  align-items: center;
}

.ag-angle-select {
  display: flex;
  align-items: center;
}

.ag-angle-select-wrapper {
  display: flex;
}

.ag-angle-select-parent-circle {
  display: block;
  position: relative;
}

.ag-angle-select-child-circle {
  position: absolute;
}

.ag-slider-wrapper {
  display: flex;
}
.ag-slider-wrapper .ag-input-field {
  flex: 1 1 auto;
}

.ag-picker-field-display {
  flex: 1 1 auto;
}

.ag-picker-field {
  display: flex;
  align-items: center;
}

.ag-picker-field-icon {
  display: flex;
  border: 0;
  padding: 0;
  margin: 0;
  cursor: pointer;
}

.ag-picker-field-wrapper {
  overflow: hidden;
}

.ag-label-align-right .ag-label {
  order: 1;
}
.ag-label-align-right > * {
  flex: none;
}

.ag-label-align-top {
  flex-direction: column;
  align-items: flex-start;
}
.ag-label-align-top > * {
  align-self: stretch;
}

.ag-label-ellipsis {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
}

.ag-color-panel {
  width: 100%;
  display: flex;
  flex-direction: column;
  text-align: center;
}

.ag-spectrum-color {
  flex: 1 1 auto;
  position: relative;
  overflow: visible;
  cursor: default;
}

.ag-spectrum-fill {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.ag-spectrum-val {
  cursor: pointer;
}

.ag-spectrum-dragger {
  position: absolute;
  pointer-events: none;
  cursor: pointer;
}

.ag-spectrum-hue,
.ag-spectrum-alpha {
  cursor: default;
}

.ag-spectrum-hue-background {
  background: linear-gradient(to left, #ff0000 3%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
  width: 100%;
  height: 100%;
}

.ag-spectrum-alpha {
  --ag-spectrum-alpha-background-checked: url("data:image/svg+xml;utf8,<svg xmlns=%22http://www.w3.org/2000/svg%22 width=%224%22 height=%224%22><rect x=%220%22 y=%220%22 width=%224%22 height=%224%22 fill=%22%23fff%22/><path d=%22M0 0H2V4H4V2H0Z%22 fill=%22%23b2b2b2%22/></svg>");
}

.ag-spectrum-alpha-background {
  background: linear-gradient(to right, var(--ag-internal-spectrum-alpha-color-from), var(--ag-internal-spectrum-alpha-color-to)), var(--ag-spectrum-alpha-background-checked) top left/4px 4px;
  width: 100%;
  height: 100%;
}

.ag-spectrum-tool {
  cursor: pointer;
  position: relative;
}

.ag-spectrum-slider {
  position: absolute;
  pointer-events: none;
}

.ag-spectrum-alpha .ag-spectrum-slider {
  background: linear-gradient(to bottom, var(--ag-internal-spectrum-alpha-color), var(--ag-internal-spectrum-alpha-color)) white;
}

.ag-recent-colors {
  display: flex;
}

.ag-recent-color {
  cursor: pointer;
}

.ag-pill-select {
  display: flex;
  flex-direction: column;
}
.ag-pill-select .ag-column-drop {
  flex: unset;
}

.ag-content-editable-field {
  display: flex;
  align-items: center;
}

.ag-content-editable-field-input {
  cursor: text;
  display: block;
  flex: 1 1 auto;
  outline: none;
  white-space: nowrap;
  line-height: normal;
  overflow: auto;
  overflow-y: hidden;
  -ms-overflow-style: none !important;
  scrollbar-width: none !important;
}
.ag-content-editable-field-input::-webkit-scrollbar {
  display: none !important;
}

.ag-ltr {
  direction: ltr;
}
.ag-ltr .ag-body,
.ag-ltr .ag-floating-top,
.ag-ltr .ag-floating-bottom,
.ag-ltr .ag-header,
.ag-ltr .ag-sticky-top,
.ag-ltr .ag-sticky-bottom,
.ag-ltr .ag-body-viewport,
.ag-ltr .ag-body-horizontal-scroll {
  flex-direction: row;
}

.ag-rtl {
  direction: rtl;
}
.ag-rtl .ag-body,
.ag-rtl .ag-floating-top,
.ag-rtl .ag-floating-bottom,
.ag-rtl .ag-header,
.ag-rtl .ag-sticky-top,
.ag-rtl .ag-sticky-bottom,
.ag-rtl .ag-body-viewport,
.ag-rtl .ag-body-horizontal-scroll {
  flex-direction: row-reverse;
}
.ag-rtl .ag-icon-contracted,
.ag-rtl .ag-icon-expanded,
.ag-rtl .ag-icon-tree-closed {
  display: block;
  transform: rotate(180deg);
}

.ag-body .ag-body-viewport {
  -webkit-overflow-scrolling: touch;
}

.ag-measurement-container {
  width: 0;
  overflow: hidden;
  visibility: hidden;
}
.ag-measurement-container div {
  position: absolute;
}

.ag-layout-print.ag-body {
  display: block;
  height: unset;
}
.ag-layout-print.ag-root-wrapper {
  display: inline-block;
}
.ag-layout-print .ag-body-vertical-scroll {
  display: none;
}
.ag-layout-print .ag-body-horizontal-scroll {
  display: none;
}
.ag-layout-print.ag-force-vertical-scroll {
  overflow-y: visible !important;
}

@media print {
  .ag-root-wrapper.ag-layout-print {
    display: table;
    container-type: normal;
  }
  .ag-root-wrapper.ag-layout-print .ag-root-wrapper-body,
  .ag-root-wrapper.ag-layout-print .ag-root,
  .ag-root-wrapper.ag-layout-print .ag-body-viewport,
  .ag-root-wrapper.ag-layout-print .ag-center-cols-container,
  .ag-root-wrapper.ag-layout-print .ag-center-cols-viewport,
  .ag-root-wrapper.ag-layout-print .ag-body-horizontal-scroll-viewport,
  .ag-root-wrapper.ag-layout-print .ag-virtual-list-viewport {
    height: auto !important;
    overflow: hidden !important;
    display: block !important;
  }
  .ag-root-wrapper.ag-layout-print .ag-row,
  .ag-root-wrapper.ag-layout-print .ag-cell {
    break-inside: avoid;
  }
}
[class^=ag-],
[class^=ag-]:focus,
[class^=ag-]:after,
[class^=ag-]:before {
  box-sizing: border-box;
  outline: none;
}

[class^=ag-]::-ms-clear {
  display: none;
}

.ag-checkbox .ag-input-wrapper,
.ag-radio-button .ag-input-wrapper {
  overflow: visible;
}

.ag-range-field .ag-input-wrapper {
  height: 100%;
}

.ag-toggle-button {
  flex: none;
  width: unset;
  min-width: unset;
}

.ag-button {
  border-radius: 0px;
  color: var(--ag-foreground-color);
}

.ag-button:hover {
  background-color: transparent;
}

.ag-ltr .ag-label-align-right .ag-label {
  margin-left: var(--ag-grid-size);
}
.ag-rtl .ag-label-align-right .ag-label {
  margin-right: var(--ag-grid-size);
}

input[class^=ag-] {
  margin: 0;
  background-color: var(--ag-background-color);
}

textarea[class^=ag-],
select[class^=ag-] {
  background-color: var(--ag-background-color);
}

input[class^=ag-]:not([type]),
input[class^=ag-][type=text],
input[class^=ag-][type=number],
input[class^=ag-][type=tel],
input[class^=ag-][type=date],
input[class^=ag-][type=datetime-local],
textarea[class^=ag-] {
  font-size: inherit;
  line-height: inherit;
  color: inherit;
  font-family: inherit;
  border: var(--ag-borders-input) var(--ag-input-border-color);
}
input[class^=ag-]:not([type]):disabled,
input[class^=ag-][type=text]:disabled,
input[class^=ag-][type=number]:disabled,
input[class^=ag-][type=tel]:disabled,
input[class^=ag-][type=date]:disabled,
input[class^=ag-][type=datetime-local]:disabled,
textarea[class^=ag-]:disabled {
  color: var(--ag-disabled-foreground-color);
  background-color: var(--ag-input-disabled-background-color);
  border-color: var(--ag-input-disabled-border-color);
}
input[class^=ag-]:not([type]):focus,
input[class^=ag-][type=text]:focus,
input[class^=ag-][type=number]:focus,
input[class^=ag-][type=tel]:focus,
input[class^=ag-][type=date]:focus,
input[class^=ag-][type=datetime-local]:focus,
textarea[class^=ag-]:focus {
  outline: none;
  box-shadow: var(--ag-input-focus-box-shadow);
  border-color: var(--ag-input-focus-border-color);
}
input[class^=ag-]:not([type]):focus.invalid, input[class^=ag-]:not([type]):focus:invalid,
input[class^=ag-][type=text]:focus.invalid,
input[class^=ag-][type=text]:focus:invalid,
input[class^=ag-][type=number]:focus.invalid,
input[class^=ag-][type=number]:focus:invalid,
input[class^=ag-][type=tel]:focus.invalid,
input[class^=ag-][type=tel]:focus:invalid,
input[class^=ag-][type=date]:focus.invalid,
input[class^=ag-][type=date]:focus:invalid,
input[class^=ag-][type=datetime-local]:focus.invalid,
input[class^=ag-][type=datetime-local]:focus:invalid,
textarea[class^=ag-]:focus.invalid,
textarea[class^=ag-]:focus:invalid {
  box-shadow: var(--ag-input-error-focus-box-shadow);
  border-color: var(--ag-invalid-color);
}
input[class^=ag-]:not([type]):invalid,
input[class^=ag-][type=text]:invalid,
input[class^=ag-][type=number]:invalid,
input[class^=ag-][type=tel]:invalid,
input[class^=ag-][type=date]:invalid,
input[class^=ag-][type=datetime-local]:invalid,
textarea[class^=ag-]:invalid {
  border: var(--ag-borders-input-invalid) var(--ag-input-border-color-invalid);
}

input[class^=ag-][type=number]:not(.ag-number-field-input-stepper) {
  -moz-appearance: textfield;
}
input[class^=ag-][type=number]:not(.ag-number-field-input-stepper)::-webkit-outer-spin-button, input[class^=ag-][type=number]:not(.ag-number-field-input-stepper)::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

input[class^=ag-][type=range] {
  padding: 0;
}

input[class^=ag-][type=button]:focus,
button[class^=ag-]:focus {
  box-shadow: var(--ag-input-focus-box-shadow);
}
input[class^=ag-][type=button]:focus:invalid, input[class^=ag-][type=button]:focus.invalid,
button[class^=ag-]:focus:invalid,
button[class^=ag-]:focus.invalid {
  box-shadow: var(--ag-input-error-focus-box-shadow);
}

.ag-drag-handle {
  color: var(--ag-secondary-foreground-color);
}

.ag-list-item,
.ag-virtual-list-item {
  height: var(--ag-list-item-height);
}

.ag-virtual-list-item:focus-visible {
  outline: none;
}
.ag-virtual-list-item:focus-visible::after {
  content: "";
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 4px;
  left: 4px;
  display: block;
  width: calc(100% - 8px);
  height: calc(100% - 8px);
  border: 1px solid;
  border-color: var(--ag-input-focus-border-color);
}

.ag-select-list {
  background-color: var(--ag-background-color);
  overflow-y: auto;
  overflow-x: hidden;
  border-radius: var(--ag-border-radius);
  border: var(--ag-borders) var(--ag-border-color);
}

.ag-list-item {
  display: flex;
  align-items: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ag-list-item.ag-active-item {
  background-color: var(--ag-row-hover-color);
}

.ag-select-list-item {
  -webkit-user-select: none;
  user-select: none;
  cursor: default;
}
.ag-ltr .ag-select-list-item {
  padding-left: calc(var(--ag-cell-horizontal-padding) / 2);
}
.ag-rtl .ag-select-list-item {
  padding-right: calc(var(--ag-cell-horizontal-padding) / 2);
}
.ag-select-list-item span {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}

.ag-row-drag,
.ag-selection-checkbox,
.ag-group-expanded,
.ag-group-contracted {
  color: var(--ag-secondary-foreground-color);
}
.ag-ltr .ag-row-drag,
.ag-ltr .ag-selection-checkbox,
.ag-ltr .ag-group-expanded,
.ag-ltr .ag-group-contracted {
  margin-right: var(--ag-cell-widget-spacing);
}
.ag-rtl .ag-row-drag,
.ag-rtl .ag-selection-checkbox,
.ag-rtl .ag-group-expanded,
.ag-rtl .ag-group-contracted {
  margin-left: var(--ag-cell-widget-spacing);
}

.ag-drag-handle-disabled {
  opacity: 0.35;
  pointer-events: none;
}

.ag-cell-wrapper > *:not(.ag-cell-value):not(.ag-group-value) {
  --ag-internal-calculated-line-height: var(
      --ag-line-height,
      calc(var(--ag-row-height) - var(--ag-row-border-width))
  );
  --ag-internal-padded-row-height: calc(var(--ag-row-height) - var(--ag-row-border-width) - 2px);
  height: min(var(--ag-internal-calculated-line-height), var(--ag-internal-padded-row-height));
  display: flex;
  align-items: center;
  flex: none;
}

.ag-group-expanded,
.ag-group-contracted {
  cursor: pointer;
}

.ag-group-title-bar-icon {
  cursor: pointer;
  flex: none;
  color: var(--ag-secondary-foreground-color);
}

.ag-ltr .ag-group-child-count {
  margin-left: 2px;
}
.ag-rtl .ag-group-child-count {
  margin-right: 2px;
}

.ag-group-title-bar {
  background-color: var(--ag-subheader-background-color);
  padding: var(--ag-grid-size);
}

.ag-group-toolbar {
  padding: var(--ag-grid-size);
  background-color: var(--ag-subheader-toolbar-background-color);
}

.ag-disabled-group-title-bar,
.ag-disabled-group-container {
  opacity: 0.5;
}

.group-item {
  margin: calc(var(--ag-grid-size) * 0.5) 0;
}

.ag-label {
  white-space: nowrap;
}
.ag-ltr .ag-label {
  margin-right: var(--ag-grid-size);
}
.ag-rtl .ag-label {
  margin-left: var(--ag-grid-size);
}

.ag-label-align-top .ag-label {
  margin-bottom: calc(var(--ag-grid-size) * 0.5);
}

.ag-angle-select[disabled] {
  color: var(--ag-disabled-foreground-color);
  pointer-events: none;
}
.ag-angle-select[disabled] .ag-angle-select-field {
  opacity: 0.4;
}

.ag-ltr .ag-slider-field,
.ag-ltr .ag-angle-select-field {
  margin-right: calc(var(--ag-grid-size) * 2);
}
.ag-rtl .ag-slider-field,
.ag-rtl .ag-angle-select-field {
  margin-left: calc(var(--ag-grid-size) * 2);
}

.ag-angle-select-parent-circle {
  width: 24px;
  height: 24px;
  border-radius: 12px;
  border: solid 1px;
  border-color: var(--ag-border-color);
  background-color: var(--ag-background-color);
}

.ag-angle-select-child-circle {
  top: 4px;
  left: 12px;
  width: 6px;
  height: 6px;
  margin-left: -3px;
  margin-top: -4px;
  border-radius: 3px;
  background-color: var(--ag-secondary-foreground-color);
}

.ag-picker-field-wrapper {
  border: var(--ag-borders);
  border-color: var(--ag-border-color);
  border-radius: 5px;
  background-color: var(--ag-background-color);
}
.ag-picker-field-wrapper:disabled {
  color: var(--ag-disabled-foreground-color);
  background-color: var(--ag-input-disabled-background-color);
  border-color: var(--ag-input-disabled-border-color);
}
.ag-picker-field-wrapper.ag-picker-has-focus, .ag-picker-field-wrapper:focus-within {
  outline: none;
  box-shadow: var(--ag-input-focus-box-shadow);
  border-color: var(--ag-input-focus-border-color);
}
.ag-picker-field-wrapper.ag-picker-has-focus.invalid, .ag-picker-field-wrapper:focus-within.invalid {
  box-shadow: var(--ag-input-error-focus-box-shadow);
}
.ag-picker-field-wrapper.invalid {
  border: var(--ag-borders-input-invalid) var(--ag-input-border-color-invalid);
}

.ag-picker-field-button {
  background-color: var(--ag-background-color);
  color: var(--ag-secondary-foreground-color);
}

.ag-dialog.ag-color-dialog {
  border-radius: 5px;
}

.ag-color-picker .ag-picker-field-wrapper {
  padding-left: var(--ag-grid-size);
  padding-right: var(--ag-grid-size);
}
.ag-color-picker .ag-picker-field-display {
  display: flex;
  flex-direction: row;
  align-items: center;
  min-height: var(--ag-list-item-height);
}

.ag-ltr .ag-color-picker-color,
.ag-ltr .ag-color-picker-value {
  margin-right: var(--ag-grid-size);
}
.ag-rtl .ag-color-picker-color,
.ag-rtl .ag-color-picker-value {
  margin-left: var(--ag-grid-size);
}

.ag-color-panel {
  padding: var(--ag-grid-size);
}

.ag-spectrum-color {
  background-color: rgb(255, 0, 0);
  border-radius: 2px;
}

.ag-spectrum-tools {
  padding: 10px;
}

.ag-spectrum-sat {
  background-image: linear-gradient(to right, white, rgba(204, 154, 129, 0));
}

.ag-spectrum-val {
  background-image: linear-gradient(to top, black, rgba(204, 154, 129, 0));
}

.ag-spectrum-dragger {
  border-radius: 12px;
  height: 12px;
  width: 12px;
  border: 2px solid white;
  background: black;
  box-shadow: 0 0 2px 0px rgba(0, 0, 0, 0.24);
}

.ag-spectrum-hue-background {
  border-radius: 2px;
}

.ag-spectrum-alpha-background {
  border-radius: 2px;
}

.ag-spectrum-tool {
  margin-bottom: 10px;
  height: 11px;
  border-radius: 2px;
}

.ag-spectrum-slider {
  margin-top: -12px;
  width: 13px;
  height: 13px;
  border-radius: 13px;
  border: 2px solid white;
  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37);
}

.ag-recent-colors {
  margin-top: 10px;
}

.ag-recent-color {
  margin: 0 3px;
}
.ag-recent-color:first-child {
  margin-left: 0;
}
.ag-recent-color:last-child {
  margin-right: 0;
}

.ag-spectrum-color:focus-visible:not(:disabled):not([readonly]),
.ag-spectrum-slider:focus-visible:not(:disabled):not([readonly]),
.ag-recent-color:focus-visible:not(:disabled):not([readonly]) {
  box-shadow: var(--ag-input-focus-box-shadow);
}

.ag-ltr .ag-color-input input[class^=ag-][type=text].ag-input-field-input {
  padding-left: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);
}
.ag-rtl .ag-color-input input[class^=ag-][type=text].ag-input-field-input {
  padding-right: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);
}
.ag-color-input .ag-color-input-color {
  position: absolute;
}
.ag-ltr .ag-color-input .ag-color-input-color {
  margin-left: var(--ag-grid-size);
}
.ag-rtl .ag-color-input .ag-color-input-color {
  margin-right: var(--ag-grid-size);
}

.ag-color-picker-color,
.ag-color-input-color {
  width: var(--ag-icon-size);
  height: var(--ag-icon-size);
  border: var(--ag-borders-secondary) var(--ag-secondary-border-color);
  border-radius: 2px;
}

.ag-dnd-ghost {
  border: var(--ag-borders) var(--ag-border-color);
  background: var(--ag-background-color);
  border-radius: var(--ag-card-radius);
  box-shadow: var(--ag-card-shadow);
  padding: var(--ag-grid-size);
  overflow: hidden;
  text-overflow: ellipsis;
  border: var(--ag-borders-secondary) var(--ag-secondary-border-color);
  color: var(--ag-secondary-foreground-color);
  height: var(--ag-header-height);
  line-height: var(--ag-header-height);
  margin: 0;
  padding: 0 calc(var(--ag-grid-size) * 2);
  transform: translateY(calc(var(--ag-grid-size) * 2));
}

.ag-dnd-ghost-not-allowed {
  border-color: color-mix(in srgb, var(--ag-background-color), var(--ag-invalid-color) 50%);
}

.ag-dnd-ghost-icon {
  margin-right: var(--ag-grid-size);
  color: var(--ag-foreground-color);
}

.ag-popup-child:not(.ag-tooltip-custom) {
  box-shadow: var(--ag-popup-shadow);
}

.ag-select .ag-picker-field-wrapper {
  min-height: var(--ag-list-item-height);
  cursor: default;
}
.ag-ltr .ag-select .ag-picker-field-wrapper {
  padding-left: calc(var(--ag-cell-horizontal-padding) / 2);
}
.ag-rtl .ag-select .ag-picker-field-wrapper {
  padding-right: calc(var(--ag-cell-horizontal-padding) / 2);
}
.ag-ltr .ag-select .ag-picker-field-wrapper {
  padding-right: var(--ag-grid-size);
}
.ag-rtl .ag-select .ag-picker-field-wrapper {
  padding-left: var(--ag-grid-size);
}
.ag-select.ag-disabled .ag-picker-field-wrapper:focus {
  box-shadow: none;
}
.ag-select:not(.ag-cell-editor, .ag-label-align-top) {
  min-height: var(--ag-list-item-height);
}
.ag-select .ag-picker-field-display {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ag-select .ag-picker-field-icon {
  display: flex;
  align-items: center;
}
.ag-select.ag-disabled {
  opacity: 0.5;
}

.ag-rich-select-value,
.ag-rich-select-list {
  background-color: var(--ag-background-color);
}

.ag-rich-select-list {
  width: 100%;
  height: auto;
  border-radius: var(--ag-border-radius);
  border: var(--ag-borders) var(--ag-border-color);
}
.ag-rich-select-list .ag-rich-select-loading {
  padding: var(--ag-widget-vertical-spacing) var(--ag-widget-horizontal-spacing);
}

.ag-rich-select-value {
  border-bottom: var(--ag-borders-secondary) var(--ag-secondary-border-color);
  padding-top: 0;
  padding-bottom: 0;
}
.ag-ltr .ag-rich-select-value {
  padding-left: calc(var(--ag-cell-horizontal-padding) / 2);
}
.ag-rtl .ag-rich-select-value {
  padding-right: calc(var(--ag-cell-horizontal-padding) / 2);
}
.ag-ltr .ag-rich-select-value {
  padding-right: var(--ag-grid-size);
}
.ag-rtl .ag-rich-select-value {
  padding-left: var(--ag-grid-size);
}

.ag-ltr .ag-rich-select-field-input {
  left: calc(var(--ag-cell-horizontal-padding));
}
.ag-rtl .ag-rich-select-field-input {
  right: calc(var(--ag-cell-horizontal-padding));
}

.ag-popup-editor .ag-rich-select-value {
  height: var(--ag-row-height);
  min-width: 200px;
}

.ag-rich-select-virtual-list-item {
  cursor: default;
  height: var(--ag-list-item-height);
}
.ag-rich-select-virtual-list-item:focus-visible::after {
  content: none;
}

.ag-ltr .ag-rich-select-row {
  padding-left: calc(var(--ag-cell-horizontal-padding) / 2);
}
.ag-rtl .ag-rich-select-row {
  padding-right: calc(var(--ag-cell-horizontal-padding) / 2);
}

.ag-rich-select-row-selected {
  background-color: var(--ag-selected-row-background-color);
}

.ag-rich-select-row:hover,
.ag-rich-select-row-highlighted {
  background-image: linear-gradient(var(--ag-row-hover-color), var(--ag-row-hover-color));
}

.ag-rich-select-row-text-highlight {
  font-weight: bold;
}

.ag-autocomplete {
  width: 100%;
}

.ag-autocomplete-list {
  width: 100%;
  min-width: 200px;
  height: calc(var(--ag-row-height) * 6.5);
}

.ag-autocomplete-virtual-list-item {
  cursor: default;
  height: var(--ag-list-item-height);
}
.ag-autocomplete-virtual-list-item:focus-visible::after {
  content: none;
}
.ag-autocomplete-virtual-list-item:hover {
  background-color: var(--ag-row-hover-color);
}

.ag-autocomplete-row-label {
  margin: 0px var(--ag-widget-container-horizontal-padding);
}

.ag-autocomplete-row-selected {
  background-color: var(--ag-selected-row-background-color);
}

.ag-pill {
  border: 1px solid var(--ag-chip-border-color);
  border-radius: var(--ag-border-radius);
  background-color: var(--ag-chip-background-color);
}

.ag-ltr .ag-pill .ag-pill-button {
  margin-left: var(--ag-grid-size);
}
.ag-rtl .ag-pill .ag-pill-button {
  margin-right: var(--ag-grid-size);
}

.ag-pill:focus-visible {
  border-color: var(--ag-input-focus-border-color);
}

.ag-pill .ag-pill-button:hover {
  cursor: pointer;
}

.ag-content-editable-field-input {
  background-color: var(--ag-background-color);
  border: var(--ag-borders-input) var(--ag-input-border-color);
  border-radius: var(--ag-border-radius);
  color: var(--ag-foreground-color);
}
.ag-ltr .ag-content-editable-field-input {
  padding-left: var(--ag-grid-size);
}
.ag-rtl .ag-content-editable-field-input {
  padding-right: var(--ag-grid-size);
}

.ag-cell-editor .ag-wrapper.ag-content-editable-field-input {
  --ag-internal-calculated-line-height: var(
      --ag-line-height,
      calc(var(--ag-row-height) - var(--ag-row-border-width))
  );
  --ag-internal-padded-row-height: calc(var(--ag-row-height) - var(--ag-row-border-width) - 2px);
  line-height: min(var(--ag-internal-calculated-line-height), var(--ag-internal-padded-row-height));
}

.ag-content-editable-field-input:focus,
.ag-content-editable-field-input:focus-within {
  box-shadow: var(--ag-input-focus-box-shadow);
  border-color: var(--ag-input-focus-border-color);
}

:where(.ag-content-editable-field.ag-disabled .ag-content-editable-field-input) {
  background-color: var(--ag-input-disabled-background-color);
  border-color: var(--ag-input-disabled-border-color);
  color: var(--ag-disabled-foreground-color);
}

.ag-content-editable-field-input.invalid {
  border-color: var(--ag-invalid-color);
}

.ag-formula-token {
  line-height: var(--ag-line-height, 1.6);
}

.ag-formula-token-color-1 {
  color: var(--ag-formula-token-1-color);
}

.ag-formula-token-color-2 {
  color: var(--ag-formula-token-2-color);
}

.ag-formula-token-color-3 {
  color: var(--ag-formula-token-3-color);
}

.ag-formula-token-color-4 {
  color: var(--ag-formula-token-4-color);
}

.ag-formula-token-color-5 {
  color: var(--ag-formula-token-5-color);
}

.ag-formula-token-color-6 {
  color: var(--ag-formula-token-6-color);
}

.ag-formula-token-color-7 {
  color: var(--ag-formula-token-7-color);
}

.ag-formula-range-color-1 {
  --ag-range-selection-border-color: var(--ag-formula-token-1-color);
  --ag-range-selection-background-color: var(--ag-formula-token-1-background-color);
}

.ag-formula-range-color-2 {
  --ag-range-selection-border-color: var(--ag-formula-token-2-color);
  --ag-range-selection-background-color: var(--ag-formula-token-2-background-color);
}

.ag-formula-range-color-3 {
  --ag-range-selection-border-color: var(--ag-formula-token-3-color);
  --ag-range-selection-background-color: var(--ag-formula-token-3-background-color);
}

.ag-formula-range-color-4 {
  --ag-range-selection-border-color: var(--ag-formula-token-4-color);
  --ag-range-selection-background-color: var(--ag-formula-token-4-background-color);
}

.ag-formula-range-color-5 {
  --ag-range-selection-border-color: var(--ag-formula-token-5-color);
  --ag-range-selection-background-color: var(--ag-formula-token-5-background-color);
}

.ag-formula-range-color-6 {
  --ag-range-selection-border-color: var(--ag-formula-token-6-color);
  --ag-range-selection-background-color: var(--ag-formula-token-6-background-color);
}

.ag-formula-range-color-7 {
  --ag-range-selection-border-color: var(--ag-formula-token-7-color);
  --ag-range-selection-background-color: var(--ag-formula-token-7-background-color);
}

.ag-range-handle.ag-formula-range-color-1,
.ag-fill-handle.ag-formula-range-color-1 {
  background-color: var(--ag-formula-token-1-color);
}

.ag-range-handle.ag-formula-range-color-2,
.ag-fill-handle.ag-formula-range-color-2 {
  background-color: var(--ag-formula-token-2-color);
}

.ag-range-handle.ag-formula-range-color-3,
.ag-fill-handle.ag-formula-range-color-3 {
  background-color: var(--ag-formula-token-3-color);
}

.ag-range-handle.ag-formula-range-color-4,
.ag-fill-handle.ag-formula-range-color-4 {
  background-color: var(--ag-formula-token-4-color);
}

.ag-range-handle.ag-formula-range-color-5,
.ag-fill-handle.ag-formula-range-color-5 {
  background-color: var(--ag-formula-token-5-color);
}

.ag-range-handle.ag-formula-range-color-6,
.ag-fill-handle.ag-formula-range-color-6 {
  background-color: var(--ag-formula-token-6-color);
}

.ag-dragging-range-handle .ag-dialog,
.ag-dragging-fill-handle .ag-dialog {
  opacity: 0.7;
  pointer-events: none;
}

.ag-dialog {
  border-radius: var(--ag-border-radius);
  border: var(--ag-borders) var(--ag-border-color);
  box-shadow: var(--ag-popup-shadow);
}

.ag-panel {
  background-color: var(--ag-panel-background-color);
  border-color: var(--ag-panel-border-color);
}

.ag-panel-title-bar {
  color: var(--ag-header-foreground-color);
  height: var(--ag-header-height);
  padding: var(--ag-grid-size) var(--ag-cell-horizontal-padding);
  border-bottom: var(--ag-borders) var(--ag-border-color);
}

.ag-ltr .ag-panel-title-bar-button {
  margin-left: var(--ag-grid-size);
}
.ag-rtl .ag-panel-title-bar-button {
  margin-right: var(--ag-grid-size);
}

.ag-tooltip {
  background-color: var(--ag-tooltip-background-color);
  color: var(--ag-foreground-color);
  padding: var(--ag-grid-size);
  border: var(--ag-borders) var(--ag-border-color);
  border-radius: var(--ag-card-radius);
  white-space: normal;
}
.ag-tooltip.ag-cell-editor-tooltip, .ag-tooltip.ag-cell-formula-tooltip {
  background-color: var(--ag-tooltip-error-background-color);
  color: var(--ag-tooltip-error-text-color);
  border: var(--ag-borders) var(--ag-tooltip-error-border-color);
  font-weight: 500;
}

.ag-tooltip.ag-tooltip-animate,
.ag-tooltip-custom.ag-tooltip-animate {
  transition: opacity 1s;
}
.ag-tooltip.ag-tooltip-animate.ag-tooltip-hiding,
.ag-tooltip-custom.ag-tooltip-animate.ag-tooltip-hiding {
  opacity: 0;
}

.ag-ltr .ag-column-select-column,
.ag-ltr .ag-column-select-column-group {
  padding-left: calc(var(--ag-indentation-level) * var(--ag-column-select-indent-size));
}
.ag-rtl .ag-column-select-column,
.ag-rtl .ag-column-select-column-group {
  padding-right: calc(var(--ag-indentation-level) * var(--ag-column-select-indent-size));
}

.ag-column-select-header-icon {
  cursor: pointer;
}

.ag-column-select-header-icon:focus-visible {
  outline: none;
}
.ag-column-select-header-icon:focus-visible::after {
  content: "";
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 0px;
  left: 0px;
  display: block;
  width: calc(100% - 0px);
  height: calc(100% - 0px);
  border: 1px solid;
  border-color: var(--ag-input-focus-border-color);
}

.ag-ltr .ag-column-group-icons:not(:last-child),
.ag-ltr .ag-column-select-header-icon:not(:last-child),
.ag-ltr .ag-column-select-header-checkbox:not(:last-child),
.ag-ltr .ag-column-select-header-filter-wrapper:not(:last-child),
.ag-ltr .ag-column-select-checkbox:not(:last-child),
.ag-ltr .ag-column-select-column-drag-handle:not(:last-child),
.ag-ltr .ag-column-select-column-group-drag-handle:not(:last-child),
.ag-ltr .ag-column-select-column-label:not(:last-child) {
  margin-right: var(--ag-widget-horizontal-spacing);
}
.ag-rtl .ag-column-group-icons:not(:last-child),
.ag-rtl .ag-column-select-header-icon:not(:last-child),
.ag-rtl .ag-column-select-header-checkbox:not(:last-child),
.ag-rtl .ag-column-select-header-filter-wrapper:not(:last-child),
.ag-rtl .ag-column-select-checkbox:not(:last-child),
.ag-rtl .ag-column-select-column-drag-handle:not(:last-child),
.ag-rtl .ag-column-select-column-group-drag-handle:not(:last-child),
.ag-rtl .ag-column-select-column-label:not(:last-child) {
  margin-left: var(--ag-widget-horizontal-spacing);
}

.ag-column-select-virtual-list-item:focus-visible {
  outline: none;
}
.ag-column-select-virtual-list-item:focus-visible::after {
  content: "";
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 1px;
  left: 1px;
  display: block;
  width: calc(100% - 2px);
  height: calc(100% - 2px);
  border: 1px solid;
  border-color: var(--ag-input-focus-border-color);
}

.ag-column-select-column-group:not(:last-child),
.ag-column-select-column:not(:last-child) {
  margin-bottom: var(--ag-widget-vertical-spacing);
}

.ag-column-select-column-readonly,
.ag-column-select-column-group-readonly {
  color: var(--ag-disabled-foreground-color);
  pointer-events: none;
}

.ag-ltr .ag-column-select-add-group-indent {
  margin-left: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);
}
.ag-rtl .ag-column-select-add-group-indent {
  margin-right: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);
}

.ag-column-select-virtual-list-viewport {
  padding: calc(var(--ag-widget-container-vertical-padding) * 0.5) 0px;
}

.ag-column-select-virtual-list-item {
  padding: 0 var(--ag-widget-container-horizontal-padding);
}

.ag-checkbox-edit {
  padding-left: var(--ag-cell-horizontal-padding);
  padding-right: var(--ag-cell-horizontal-padding);
}

.ag-pill-select .ag-column-drop {
  border-bottom: 0;
  min-height: unset;
}
.ag-pill-select .ag-column-drop-list {
  padding: 0;
}
.ag-pill-select .ag-select {
  padding-top: var(--ag-grid-size);
}
.ag-pill-select .ag-picker-field-wrapper {
  background-color: transparent;
  border: 0;
}
.ag-pill-select .ag-picker-field-display {
  cursor: pointer;
}

.ag-rtl {
  text-align: right;
}

.ag-root-wrapper {
  border-radius: var(--ag-wrapper-border-radius);
  border: var(--ag-borders) var(--ag-border-color);
}

.ag-row > .ag-cell-wrapper.ag-row-group {
  padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * var(--ag-indentation-level));
}

.ag-cell-wrapper.ag-row-group,
.ag-cell-wrapper.ag-row-group-leaf-indent,
.ag-cell-wrapper.ag-pivot-leaf-group {
  padding-left: calc(var(--ag-indentation-level) * var(--ag-row-group-indent-size));
}

.ag-cell-wrapper > .ag-group-checkbox-spacing {
  width: var(--ag-icon-size);
  margin-right: var(--ag-cell-widget-spacing);
}

.ag-ltr .ag-row-group-leaf-indent {
  margin-left: var(--ag-row-group-indent-size);
}
.ag-rtl .ag-row-group-leaf-indent {
  margin-right: var(--ag-row-group-indent-size);
}

.ag-row:not(.ag-row-level-0) .ag-pivot-leaf-group {
  margin-left: var(--ag-row-group-indent-size);
}

.ag-value-change-delta {
  padding-right: 2px;
}

.ag-value-change-delta-up {
  color: var(--ag-value-change-delta-up-color);
}

.ag-value-change-delta-down {
  color: var(--ag-value-change-delta-down-color);
}

.ag-value-change-value {
  background-color: transparent;
  border-radius: 1px;
  padding-left: 1px;
  padding-right: 1px;
  transition: background-color 1s;
}

.ag-value-change-value-highlight {
  background-color: var(--ag-value-change-value-highlight-background-color);
  transition: background-color 0.1s;
}

.ag-cell-data-changed {
  background-color: var(--ag-value-change-value-highlight-background-color) !important;
}

.ag-cell-data-changed-animation {
  background-color: transparent;
}

.ag-cell-highlight {
  background-color: var(--ag-range-selection-highlight-color) !important;
}

.ag-row,
.ag-spanned-row {
  color: var(--ag-data-color);
}

.ag-row {
  height: var(--ag-row-height);
  background-color: var(--ag-data-background-color);
  border-bottom: var(--ag-row-border-style) var(--ag-row-border-color) var(--ag-row-border-width);
}
.ag-row.ag-row-editing-invalid {
  background-color: var(--ag-full-row-invalid-background-color);
}

.ag-spanned-cell-wrapper {
  background-color: var(--ag-data-background-color);
  position: absolute;
}

.ag-spanned-cell-wrapper > .ag-spanned-cell {
  display: block;
  position: relative;
}

.ag-row-highlight-above::after,
.ag-row-highlight-inside::after,
.ag-row-highlight-below::after {
  content: "";
  position: absolute;
  width: calc(100% - 1px);
  height: var(--ag-row-drag-indicator-width);
  background-color: var(--ag-row-drag-indicator-color);
  border-radius: calc(var(--ag-row-drag-indicator-width) / 2);
  left: 1px;
  pointer-events: none;
}

.ag-row-highlight-above::after {
  top: 0;
}

.ag-row-highlight-below::after {
  bottom: 0;
}

.ag-row-highlight-indent::after {
  display: block;
  width: auto;
  left: calc(2 * (var(--ag-cell-widget-spacing) + var(--ag-icon-size)) + var(--ag-cell-horizontal-padding) + var(--ag-row-highlight-level) * var(--ag-row-group-indent-size));
  right: 1px;
}

.ag-row-highlight-inside::after {
  display: block;
  width: auto;
  height: auto;
  inset: 0;
  background-color: var(--ag-selected-row-background-color);
  border: 1px solid var(--ag-range-selection-border-color);
}

.ag-body,
.ag-floating-top,
.ag-floating-bottom {
  background-color: var(--ag-data-background-color);
}

.ag-row-odd {
  background-color: var(--ag-odd-row-background-color);
}

.ag-body-horizontal-scroll:not(.ag-scrollbar-invisible) .ag-horizontal-left-spacer:not(.ag-scroller-corner) {
  border-right: var(--ag-borders-critical) var(--ag-border-color);
}
.ag-body-horizontal-scroll:not(.ag-scrollbar-invisible) .ag-horizontal-right-spacer:not(.ag-scroller-corner) {
  border-left: var(--ag-borders-critical) var(--ag-border-color);
}

.ag-row-selected::before {
  content: "";
  background-color: var(--ag-selected-row-background-color);
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.ag-row-hover:not(.ag-full-width-row)::before,
.ag-row-hover.ag-full-width-row.ag-row-group::before {
  content: "";
  background-color: var(--ag-row-hover-color);
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
}

.ag-row.ag-full-width-row.ag-row-group > * {
  position: relative;
}

.ag-row-hover.ag-row-selected::before {
  background-color: var(--ag-row-hover-color);
  background-image: linear-gradient(var(--ag-selected-row-background-color), var(--ag-selected-row-background-color));
}

.ag-column-hover {
  background-color: var(--ag-column-hover-color);
}

.ag-header-range-highlight {
  background-color: var(--ag-range-header-highlight-color);
}

.ag-ltr .ag-right-aligned-cell {
  text-align: right;
}
.ag-rtl .ag-right-aligned-cell {
  text-align: left;
}

.ag-ltr .ag-right-aligned-cell .ag-cell-value,
.ag-ltr .ag-right-aligned-cell .ag-group-value {
  margin-left: auto;
}
.ag-rtl .ag-right-aligned-cell .ag-cell-value,
.ag-rtl .ag-right-aligned-cell .ag-group-value {
  margin-right: auto;
}

.ag-ltr .ag-right-aligned-cell .ag-skeleton-effect {
  margin-left: auto;
}
.ag-rtl .ag-right-aligned-cell .ag-skeleton-effect {
  margin-right: auto;
}

.ag-cell,
.ag-full-width-row .ag-cell-wrapper.ag-row-group {
  --ag-internal-calculated-line-height: var(
      --ag-line-height,
      calc(var(--ag-row-height) - var(--ag-row-border-width))
  );
  --ag-internal-padded-row-height: calc(var(--ag-row-height) - var(--ag-row-border-width) - 2px);
  border: 1px solid transparent;
  line-height: min(var(--ag-internal-calculated-line-height), var(--ag-internal-padded-row-height));
  padding-left: calc(var(--ag-cell-horizontal-padding) - 1px + var(--ag-row-group-indent-size) * var(--ag-indentation-level));
  padding-right: calc(var(--ag-cell-horizontal-padding) - 1px);
  -webkit-font-smoothing: subpixel-antialiased;
}

.ag-row > .ag-cell-wrapper {
  padding-left: calc(var(--ag-cell-horizontal-padding) - 1px);
  padding-right: calc(var(--ag-cell-horizontal-padding) - 1px);
}

.ag-row-dragging {
  cursor: move;
  opacity: 0.5;
}

.ag-cell-inline-editing {
  border: 1px solid var(--ag-border-color);
  border-radius: var(--ag-card-radius);
  box-shadow: var(--ag-card-shadow);
  padding: 0;
  background-color: var(--ag-control-panel-background-color);
}

.ag-popup-editor .ag-large-text,
.ag-autocomplete-list-popup {
  border: var(--ag-borders) var(--ag-border-color);
  background: var(--ag-background-color);
  border-radius: var(--ag-card-radius);
  box-shadow: var(--ag-card-shadow);
  padding: var(--ag-grid-size);
  background-color: var(--ag-control-panel-background-color);
  padding: 0;
}

.ag-large-text-input {
  height: auto;
  padding: var(--ag-cell-horizontal-padding);
}

.ag-rtl .ag-large-text-input textarea {
  resize: none;
}

.ag-details-row {
  padding: calc(var(--ag-grid-size) * 5);
  background-color: var(--ag-data-background-color);
}

.ag-layout-auto-height .ag-center-cols-viewport,
.ag-layout-auto-height .ag-center-cols-container,
.ag-layout-print .ag-center-cols-viewport,
.ag-layout-print .ag-center-cols-container {
  min-height: 50px;
}

.ag-overlay-loading-wrapper,
.ag-overlay-exporting-wrapper,
.ag-overlay-modal-wrapper {
  background-color: var(--ag-modal-overlay-background-color);
}

.ag-overlay-loading-center,
.ag-overlay-exporting-center {
  border: var(--ag-borders) var(--ag-border-color);
  background: var(--ag-background-color);
  border-radius: var(--ag-card-radius);
  box-shadow: var(--ag-card-shadow);
  padding: var(--ag-grid-size);
  display: flex;
}

.ag-skeleton-container {
  width: 100%;
  height: 100%;
  align-content: center;
}

.ag-skeleton-effect {
  background-color: var(--ag-row-loading-skeleton-effect-color);
  width: 100%;
  height: 1em;
  border-radius: 0.25rem;
  animation: ag-skeleton-loading 1.5s ease-in-out 0.5s infinite;
}

@keyframes ag-skeleton-loading {
  0% {
    opacity: 1;
  }
  50% {
    opacity: 0.4;
  }
  100% {
    opacity: 1;
  }
}
.ag-loading {
  display: flex;
  height: 100%;
  align-items: center;
}
.ag-ltr .ag-loading {
  padding-left: var(--ag-cell-horizontal-padding);
}
.ag-rtl .ag-loading {
  padding-right: var(--ag-cell-horizontal-padding);
}

.ag-ltr .ag-loading-icon {
  padding-right: var(--ag-cell-widget-spacing);
}
.ag-rtl .ag-loading-icon {
  padding-left: var(--ag-cell-widget-spacing);
}

.ag-icon-loading {
  animation-name: spin;
  animation-duration: 1000ms;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
}

@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.ag-floating-top:not(.ag-invisible) {
  border-bottom: var(--ag-borders-critical) var(--ag-border-color);
}

.ag-floating-bottom:not(.ag-invisible) {
  border-top: var(--ag-borders-critical) var(--ag-border-color);
}

.ag-find-cell {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ag-find-match {
  color: var(--ag-find-match-color);
  background-color: var(--ag-find-match-background-color);
}

.ag-find-active-match {
  color: var(--ag-find-active-match-color);
  background-color: var(--ag-find-active-match-background-color);
}

.ag-ltr .ag-cell {
  border-right: var(--ag-cell-horizontal-border);
}
.ag-rtl .ag-cell {
  border-left: var(--ag-cell-horizontal-border);
}
.ag-ltr .ag-cell {
  border-right-width: 1px;
}
.ag-rtl .ag-cell {
  border-left-width: 1px;
}

.ag-cell.ag-cell-first-right-pinned:not(.ag-cell-range-left):not(.ag-cell-range-single-cell) {
  border-left: var(--ag-borders-critical) var(--ag-border-color);
}

.ag-cell.ag-cell-last-left-pinned:not(.ag-cell-range-right):not(.ag-cell-range-single-cell) {
  border-right: var(--ag-borders-critical) var(--ag-border-color);
}

.ag-cell-range-selected:not(.ag-cell-focus),
.ag-cell-range-selected.ag-cell-range-chart,
.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing) {
  background-color: var(--ag-range-selection-background-color);
}
.ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart,
.ag-cell-range-selected.ag-cell-range-chart.ag-cell-range-chart,
.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing).ag-cell-range-chart {
  background-color: var(--ag-range-selection-chart-background-color) !important;
}
.ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart.ag-cell-range-chart-category,
.ag-cell-range-selected.ag-cell-range-chart.ag-cell-range-chart.ag-cell-range-chart-category,
.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing).ag-cell-range-chart.ag-cell-range-chart-category {
  background-color: var(--ag-range-selection-chart-category-background-color) !important;
}

.ag-cell-range-selected-1:not(.ag-cell-focus),
.ag-cell-range-selected-1.ag-cell-range-chart,
.ag-cell-range-selected-1.ag-formula-range,
.ag-root:not(.ag-context-menu-open) .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-1:not(.ag-cell-inline-editing) {
  background-color: var(--ag-range-selection-background-color);
}

.ag-cell-range-selected-2:not(.ag-cell-focus),
.ag-cell-range-selected-2.ag-cell-range-chart,
.ag-cell-range-selected-2.ag-formula-range,
.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-2 {
  background-color: var(--ag-range-selection-background-color-2);
}

.ag-cell-range-selected-3:not(.ag-cell-focus),
.ag-cell-range-selected-3.ag-cell-range-chart,
.ag-cell-range-selected-3.ag-formula-range,
.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-3 {
  background-color: var(--ag-range-selection-background-color-3);
}

.ag-cell-range-selected-4:not(.ag-cell-focus),
.ag-cell-range-selected-4.ag-cell-range-chart,
.ag-cell-range-selected-4.ag-formula-range,
.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-4 {
  background-color: var(--ag-range-selection-background-color-4);
}

.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-top {
  border-top-color: var(--ag-range-selection-border-color);
  border-top-style: var(--ag-range-selection-border-style);
}
.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-right {
  border-right-color: var(--ag-range-selection-border-color);
  border-right-style: var(--ag-range-selection-border-style);
}
.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-bottom {
  border-bottom-color: var(--ag-range-selection-border-color);
  border-bottom-style: var(--ag-range-selection-border-style);
}
.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-left {
  border-left-color: var(--ag-range-selection-border-color);
  border-left-style: var(--ag-range-selection-border-style);
}

.ag-ltr .ag-cell-focus:not(.ag-cell-range-selected):focus-within,
.ag-ltr .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),
.ag-ltr .ag-full-width-row.ag-row-focus:focus .ag-cell-wrapper.ag-row-group,
.ag-ltr .ag-cell-range-single-cell,
.ag-ltr .ag-cell-range-single-cell.ag-cell-range-handle,
.ag-rtl .ag-cell-focus:not(.ag-cell-range-selected):focus-within,
.ag-rtl .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),
.ag-rtl .ag-full-width-row.ag-row-focus:focus .ag-cell-wrapper.ag-row-group,
.ag-rtl .ag-cell-range-single-cell,
.ag-rtl .ag-cell-range-single-cell.ag-cell-range-handle {
  border: 1px solid;
  border-color: var(--ag-range-selection-border-color);
  border-style: var(--ag-range-selection-border-style);
  outline: initial;
}

.ag-cell.ag-selection-fill-top,
.ag-cell.ag-selection-fill-top.ag-cell-range-selected {
  border-top: 1px dashed;
  border-top-color: var(--ag-range-selection-border-color);
}

.ag-ltr .ag-cell.ag-selection-fill-right,
.ag-ltr .ag-cell.ag-selection-fill-right.ag-cell-range-selected {
  border-right: 1px dashed var(--ag-range-selection-border-color) !important;
}
.ag-rtl .ag-cell.ag-selection-fill-right,
.ag-rtl .ag-cell.ag-selection-fill-right.ag-cell-range-selected {
  border-left: 1px dashed var(--ag-range-selection-border-color) !important;
}

.ag-cell.ag-selection-fill-bottom,
.ag-cell.ag-selection-fill-bottom.ag-cell-range-selected {
  border-bottom: 1px dashed;
  border-bottom-color: var(--ag-range-selection-border-color);
}

.ag-ltr .ag-cell.ag-selection-fill-left,
.ag-ltr .ag-cell.ag-selection-fill-left.ag-cell-range-selected {
  border-left: 1px dashed var(--ag-range-selection-border-color) !important;
}
.ag-rtl .ag-cell.ag-selection-fill-left,
.ag-rtl .ag-cell.ag-selection-fill-left.ag-cell-range-selected {
  border-right: 1px dashed var(--ag-range-selection-border-color) !important;
}

.ag-fill-handle,
.ag-range-handle {
  position: absolute;
  width: 6px;
  height: 6px;
  bottom: -1px;
  background-color: var(--ag-range-selection-border-color);
}
.ag-ltr .ag-fill-handle,
.ag-ltr .ag-range-handle {
  right: -1px;
}
.ag-rtl .ag-fill-handle,
.ag-rtl .ag-range-handle {
  left: -1px;
}

.ag-fill-handle {
  cursor: crosshair;
}

.ag-range-handle {
  cursor: nwse-resize;
}

.ag-cell-inline-editing {
  border-color: var(--ag-input-focus-border-color) !important;
}
.ag-cell-inline-editing.ag-cell-editing-error {
  border-color: var(--ag-invalid-color) !important;
}

.ag-menu {
  border: var(--ag-borders) var(--ag-border-color);
  background: var(--ag-background-color);
  border-radius: var(--ag-card-radius);
  box-shadow: var(--ag-card-shadow);
  padding: var(--ag-grid-size);
  background-color: var(--ag-menu-background-color);
  border-color: var(--ag-menu-border-color);
  padding: 0;
}

.ag-menu.ag-tabs {
  min-width: var(--ag-tab-min-width);
}

.ag-menu-list {
  cursor: default;
  padding: var(--ag-grid-size) 0;
}

.ag-menu-separator {
  height: calc(var(--ag-grid-size) * 2 + 1px);
}

.ag-menu-separator-part::after {
  content: "";
  display: block;
  border-top: var(--ag-borders-critical) var(--ag-border-color);
}

.ag-menu-option {
  position: relative;
}

.ag-menu-option:focus-visible {
  outline: none;
}
.ag-menu-option:focus-visible::after {
  content: "";
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 1px;
  left: 1px;
  display: block;
  width: calc(100% - 2px);
  height: calc(100% - 2px);
  border: 1px solid;
  border-color: var(--ag-input-focus-border-color);
}

.ag-menu-option-active,
.ag-compact-menu-option-active {
  background-color: var(--ag-row-hover-color);
}

.ag-menu-option-part,
.ag-compact-menu-option-part {
  line-height: var(--ag-icon-size);
  padding: calc(var(--ag-grid-size) + 2px) 0;
}

.ag-menu-option-disabled,
.ag-compact-menu-option-disabled {
  opacity: 0.5;
}

.ag-menu-option-icon,
.ag-compact-menu-option-icon {
  width: var(--ag-icon-size);
}
.ag-ltr .ag-menu-option-icon,
.ag-ltr .ag-compact-menu-option-icon {
  padding-left: calc(var(--ag-grid-size) * 2);
}
.ag-rtl .ag-menu-option-icon,
.ag-rtl .ag-compact-menu-option-icon {
  padding-right: calc(var(--ag-grid-size) * 2);
}

.ag-menu-option-text,
.ag-compact-menu-option-text {
  padding-left: calc(var(--ag-grid-size) * 2);
  padding-right: calc(var(--ag-grid-size) * 2);
}

.ag-ltr .ag-menu-option-shortcut,
.ag-ltr .ag-compact-menu-option-shortcut {
  padding-right: var(--ag-grid-size);
}
.ag-rtl .ag-menu-option-shortcut,
.ag-rtl .ag-compact-menu-option-shortcut {
  padding-left: var(--ag-grid-size);
}

.ag-ltr .ag-menu-option-popup-pointer,
.ag-ltr .ag-compact-menu-option-popup-pointer {
  padding-right: var(--ag-grid-size);
}
.ag-rtl .ag-menu-option-popup-pointer,
.ag-rtl .ag-compact-menu-option-popup-pointer {
  padding-left: var(--ag-grid-size);
}

.ag-tabs-header {
  display: flex;
}

.ag-tabs-header-wrapper {
  display: flex;
}
.ag-tabs-header-wrapper .ag-tabs-header {
  flex: 1;
}

.ag-tabs-close-button-wrapper {
  border: 0;
  border-right: var(--ag-borders) var(--ag-border-color);
  padding: var(--ag-grid-size);
}

.ag-tabs-close-button {
  border: 0;
  background-color: unset;
  cursor: pointer;
  padding: 0;
}

.ag-tab {
  border-bottom: var(--ag-selected-tab-underline-width) solid transparent;
  transition: border-bottom var(--ag-selected-tab-underline-transition-speed);
  display: flex;
  flex: none;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.ag-tab:focus-visible {
  outline: none;
}
.ag-tab:focus-visible::after {
  content: "";
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 4px;
  left: 4px;
  display: block;
  width: calc(100% - 8px);
  height: calc(100% - 8px);
  border: 1px solid;
  border-color: var(--ag-input-focus-border-color);
}

.ag-tab-selected {
  border-bottom-color: var(--ag-selected-tab-underline-color);
}

.ag-menu-header {
  color: var(--ag-secondary-foreground-color);
}

.ag-filter-separator {
  border-top: var(--ag-borders-critical) var(--ag-border-color);
}

.ag-filter-select .ag-picker-field-wrapper {
  width: 0;
}

.ag-filter-condition-operator {
  height: 17px;
}

.ag-ltr .ag-filter-condition-operator-or {
  margin-left: calc(var(--ag-grid-size) * 2);
}
.ag-rtl .ag-filter-condition-operator-or {
  margin-right: calc(var(--ag-grid-size) * 2);
}

.ag-set-filter-select-all {
  padding-top: var(--ag-widget-container-vertical-padding);
}

.ag-set-filter-list,
.ag-filter-no-matches {
  height: calc(var(--ag-list-item-height) * 6);
}

.ag-set-filter-tree-list {
  height: calc(var(--ag-list-item-height) * 10);
}

.ag-set-filter-filter {
  margin-top: var(--ag-widget-container-vertical-padding);
  margin-left: var(--ag-widget-container-horizontal-padding);
  margin-right: var(--ag-widget-container-horizontal-padding);
}

.ag-filter-to {
  margin-top: var(--ag-widget-vertical-spacing);
}

.ag-mini-filter {
  margin: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);
}

.ag-set-filter {
  --ag-indentation-level: 0;
}

.ag-ltr .ag-set-filter-item {
  padding-left: calc(var(--ag-widget-container-horizontal-padding) + var(--ag-indentation-level) * var(--ag-set-filter-indent-size));
}
.ag-rtl .ag-set-filter-item {
  padding-right: calc(var(--ag-widget-container-horizontal-padding) + var(--ag-indentation-level) * var(--ag-set-filter-indent-size));
}

.ag-ltr .ag-set-filter-add-group-indent {
  margin-left: calc(var(--ag-icon-size) + var(--ag-widget-container-horizontal-padding));
}
.ag-rtl .ag-set-filter-add-group-indent {
  margin-right: calc(var(--ag-icon-size) + var(--ag-widget-container-horizontal-padding));
}

.ag-ltr .ag-set-filter-group-icons {
  margin-right: var(--ag-widget-container-horizontal-padding);
}
.ag-rtl .ag-set-filter-group-icons {
  margin-left: var(--ag-widget-container-horizontal-padding);
}

.ag-filter-menu .ag-set-filter-list {
  min-width: 200px;
}

.ag-filter-virtual-list-item:focus-visible {
  outline: none;
}
.ag-filter-virtual-list-item:focus-visible::after {
  content: "";
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 1px;
  left: 1px;
  display: block;
  width: calc(100% - 2px);
  height: calc(100% - 2px);
  border: 1px solid;
  border-color: var(--ag-input-focus-border-color);
}

.ag-filter-apply-panel {
  padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);
  border-top: var(--ag-borders-secondary) var(--ag-secondary-border-color);
}

.ag-filter-apply-panel-button {
  line-height: 1.5;
}
.ag-ltr .ag-filter-apply-panel-button {
  margin-left: calc(var(--ag-grid-size) * 2);
}
.ag-rtl .ag-filter-apply-panel-button {
  margin-right: calc(var(--ag-grid-size) * 2);
}

.ag-simple-filter-body-wrapper {
  display: flex;
  flex-direction: column;
  gap: var(--ag-widget-vertical-spacing);
  padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);
  padding-bottom: var(--ag-widget-container-vertical-padding);
  overflow-y: auto;
  min-height: calc(var(--ag-list-item-height) + var(--ag-widget-container-vertical-padding) + var(--ag-widget-vertical-spacing));
}
.ag-simple-filter-body-wrapper .ag-resizer-wrapper {
  margin: 0;
}

.ag-menu:not(.ag-tabs) .ag-filter .ag-filter-body-wrapper,
.ag-menu:not(.ag-tabs) .ag-filter > *:not(.ag-filter-wrapper) {
  min-width: calc(var(--ag-menu-min-width) - 2px);
}

.ag-filter-no-matches {
  padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);
}

.ag-multi-filter-menu-item {
  margin: var(--ag-grid-size) 0;
}

.ag-multi-filter-group-title-bar {
  padding: calc(var(--ag-grid-size) * 2) var(--ag-grid-size);
  background-color: transparent;
}

.ag-group-filter-field-select-wrapper {
  padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);
  padding-bottom: calc(var(--ag-widget-container-vertical-padding) - var(--ag-widget-vertical-spacing));
}
.ag-group-filter-field-select-wrapper > * {
  margin-bottom: var(--ag-widget-vertical-spacing);
}

.ag-multi-filter-group-title-bar:focus-visible {
  outline: none;
}
.ag-multi-filter-group-title-bar:focus-visible::after {
  content: "";
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 4px;
  left: 4px;
  display: block;
  width: calc(100% - 8px);
  height: calc(100% - 8px);
  border: 1px solid;
  border-color: var(--ag-input-focus-border-color);
}

.ag-side-bar {
  position: relative;
}

.ag-tool-panel-wrapper {
  width: var(--ag-side-bar-panel-width);
  background-color: var(--ag-control-panel-background-color);
}

.ag-tool-panel-external {
  display: flex;
  flex-direction: row;
}

:where(.ag-tool-panel-external) .ag-tool-panel-wrapper {
  flex-grow: 1;
}

.ag-side-buttons {
  padding-top: calc(var(--ag-grid-size) * 4);
  width: calc(var(--ag-icon-size) + 4px);
  position: relative;
  overflow: hidden;
}

button.ag-side-button-button {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  background: transparent;
  padding: calc(var(--ag-grid-size) * 2) 0 calc(var(--ag-grid-size) * 2) 0;
  width: 100%;
  margin: 0;
  min-height: calc(var(--ag-grid-size) * 18);
  background-position-y: center;
  background-position-x: center;
  background-repeat: no-repeat;
  border: none;
  border-top: var(--ag-borders-side-button) var(--ag-border-color);
  border-bottom: var(--ag-borders-side-button) var(--ag-border-color);
}
button.ag-side-button-button:focus {
  box-shadow: none;
}

.ag-side-button-button:focus-visible {
  outline: none;
}
.ag-side-button-button:focus-visible::after {
  content: "";
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 4px;
  left: 4px;
  display: block;
  width: calc(100% - 8px);
  height: calc(100% - 8px);
  border: 1px solid;
  border-color: var(--ag-input-focus-border-color);
}

.ag-selected button.ag-side-button-button {
  background-color: var(--ag-side-button-selected-background-color);
}

.ag-side-button-icon-wrapper {
  margin-bottom: 3px;
}

.ag-ltr .ag-side-bar-left,
.ag-rtl .ag-side-bar-right {
  border-right: var(--ag-borders) var(--ag-border-color);
}
.ag-ltr .ag-side-bar-left .ag-tool-panel-wrapper,
.ag-rtl .ag-side-bar-right .ag-tool-panel-wrapper {
  border-left: var(--ag-borders) var(--ag-border-color);
}
.ag-ltr .ag-side-bar-left .ag-side-button-button,
.ag-rtl .ag-side-bar-right .ag-side-button-button {
  border-right: var(--ag-selected-tab-underline-width) solid transparent;
  transition: border-right var(--ag-selected-tab-underline-transition-speed);
}
.ag-ltr .ag-side-bar-left .ag-selected .ag-side-button-button,
.ag-rtl .ag-side-bar-right .ag-selected .ag-side-button-button {
  border-right-color: var(--ag-selected-tab-underline-color);
}

.ag-rtl .ag-side-bar-left,
.ag-ltr .ag-side-bar-right {
  border-left: var(--ag-borders) var(--ag-border-color);
}
.ag-rtl .ag-side-bar-left .ag-tool-panel-wrapper,
.ag-ltr .ag-side-bar-right .ag-tool-panel-wrapper {
  border-right: var(--ag-borders) var(--ag-border-color);
}
.ag-rtl .ag-side-bar-left .ag-side-button-button,
.ag-ltr .ag-side-bar-right .ag-side-button-button {
  border-left: var(--ag-selected-tab-underline-width) solid transparent;
  transition: border-left var(--ag-selected-tab-underline-transition-speed);
}
.ag-rtl .ag-side-bar-left .ag-selected .ag-side-button-button,
.ag-ltr .ag-side-bar-right .ag-selected .ag-side-button-button {
  border-left-color: var(--ag-selected-tab-underline-color);
}

.ag-filter-toolpanel-header {
  height: calc(var(--ag-grid-size) * 6);
}

.ag-filter-toolpanel-header,
.ag-filter-toolpanel-search {
  padding: 0 var(--ag-grid-size);
}

.ag-filter-toolpanel-header:focus-visible {
  outline: none;
}
.ag-filter-toolpanel-header:focus-visible::after {
  content: "";
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 4px;
  left: 4px;
  display: block;
  width: calc(100% - 8px);
  height: calc(100% - 8px);
  border: 1px solid;
  border-color: var(--ag-input-focus-border-color);
}

.ag-filter-toolpanel-group:not(.ag-has-filter) > .ag-group-title-bar .ag-filter-toolpanel-group-instance-header-icon {
  display: none;
}

.ag-filter-toolpanel-group-level-0-header {
  height: calc(var(--ag-grid-size) * 8);
}

.ag-filter-toolpanel-group-item {
  margin-top: calc(var(--ag-grid-size) * 0.5);
  margin-bottom: calc(var(--ag-grid-size) * 0.5);
}

.ag-filter-toolpanel-search {
  height: var(--ag-header-height);
}

.ag-filter-toolpanel-search-input {
  flex-grow: 1;
  height: calc(var(--ag-grid-size) * 4);
}
.ag-ltr .ag-filter-toolpanel-search-input {
  margin-right: var(--ag-grid-size);
}
.ag-rtl .ag-filter-toolpanel-search-input {
  margin-left: var(--ag-grid-size);
}

.ag-filter-toolpanel-group-level-0 {
  border-top: var(--ag-borders-secondary) var(--ag-secondary-border-color);
}

.ag-ltr .ag-filter-toolpanel-expand,
.ag-ltr .ag-filter-toolpanel-group-title-bar-icon {
  margin-right: var(--ag-grid-size);
}
.ag-rtl .ag-filter-toolpanel-expand,
.ag-rtl .ag-filter-toolpanel-group-title-bar-icon {
  margin-left: var(--ag-grid-size);
}

.ag-filter-toolpanel-group-title-bar {
  background-color: transparent;
}

.ag-ltr .ag-filter-toolpanel-header {
  padding-left: calc(var(--ag-filter-tool-panel-group-indent) * var(--ag-indentation-level, 0) + var(--ag-grid-size));
}
.ag-rtl .ag-filter-toolpanel-header {
  padding-right: calc(var(--ag-filter-tool-panel-group-indent) * var(--ag-indentation-level, 0) + var(--ag-grid-size));
}

.ag-filter-toolpanel-instance-filter {
  border-bottom: var(--ag-borders) var(--ag-border-color);
  border-top: var(--ag-borders) var(--ag-border-color);
  margin-top: var(--ag-grid-size);
}

.ag-ltr .ag-filter-toolpanel-group-instance-header-icon,
.ag-ltr .ag-filter-toolpanel-instance-header-icon {
  margin-left: var(--ag-grid-size);
}
.ag-rtl .ag-filter-toolpanel-group-instance-header-icon,
.ag-rtl .ag-filter-toolpanel-instance-header-icon {
  margin-right: var(--ag-grid-size);
}

.ag-set-filter-group-icons {
  color: var(--ag-secondary-foreground-color);
}

.ag-filter-panel {
  display: flex;
  flex-direction: column;
  width: 100%;
}
.ag-filter-panel .ag-simple-filter-body-wrapper {
  padding: var(--ag-widget-vertical-spacing) var(--ag-widget-container-horizontal-padding) 0;
}
.ag-filter-panel .ag-mini-filter {
  margin-top: var(--ag-widget-vertical-spacing);
  margin-left: var(--ag-widget-container-horizontal-padding);
  margin-right: var(--ag-widget-container-horizontal-padding);
}
.ag-filter-panel .ag-standard-button {
  transition: background-color 0.25s ease-in-out, color 0.25s ease-in-out;
}
.ag-filter-panel .ag-simple-filter-body-wrapper > *:last-child,
.ag-filter-panel .ag-set-filter-body-wrapper {
  margin-bottom: var(--ag-widget-container-vertical-padding);
}

.ag-filter-panel-container {
  flex: 1;
  overflow: auto;
  padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding) 0;
}

.ag-filter-panel-container > *:not(:last-child) {
  margin-bottom: var(--ag-widget-container-vertical-padding);
}

.ag-filter-card {
  border: 1px solid var(--ag-border-color);
  border-radius: var(--ag-border-radius);
  background-color: var(--ag-background-color);
}
.ag-ltr .ag-filter-card .ag-set-filter-item {
  padding-left: calc(var(--ag-widget-container-horizontal-padding) + var(--ag-indentation-level) * var(--ag-set-filter-indent-size));
  padding-right: var(--ag-widget-container-horizontal-padding);
}
.ag-rtl .ag-filter-card .ag-set-filter-item {
  padding-right: calc(var(--ag-widget-container-horizontal-padding) + var(--ag-indentation-level) * var(--ag-set-filter-indent-size));
  padding-left: var(--ag-widget-container-horizontal-padding);
}

.ag-filter-card-header {
  display: flex;
  flex-direction: row;
  align-items: center;
  padding-top: var(--ag-widget-vertical-spacing);
}
.ag-ltr .ag-filter-card-header > *:not(:last-child) {
  padding-right: var(--ag-grid-size);
}
.ag-rtl .ag-filter-card-header > *:not(:last-child) {
  padding-left: var(--ag-grid-size);
}

.ag-filter-card-heading {
  flex: 1;
  overflow: hidden;
  padding-top: calc(var(--ag-widget-container-vertical-padding) - var(--ag-widget-vertical-spacing));
  padding-bottom: calc(var(--ag-widget-container-vertical-padding) - var(--ag-widget-vertical-spacing));
}
.ag-ltr .ag-filter-card-heading {
  padding-left: var(--ag-widget-horizontal-spacing);
}
.ag-rtl .ag-filter-card-heading {
  padding-right: var(--ag-widget-horizontal-spacing);
}

.ag-filter-card-expand {
  display: flex;
  flex-direction: row;
  width: 100%;
  justify-content: space-between;
  align-items: center;
}

.ag-filter-card-title {
  overflow: hidden;
  text-overflow: ellipsis;
}

.ag-filter-card-expand-icon {
  display: flex;
  flex: 1;
  justify-content: end;
}

.ag-filter-card-editing-icon {
  margin: 0 var(--ag-grid-size);
}

.ag-filter-card-summary,
.ag-filter-card-expand-icon .ag-icon,
.ag-filter-card-delete-icon .ag-icon,
.ag-filter-card-editing-icon .ag-icon {
  color: var(--ag-filter-panel-card-subtle-color);
}

.ag-filter-card-expand-icon .ag-icon,
.ag-filter-card-delete-icon .ag-icon {
  transition: color 0.25s ease-in-out;
}

.ag-filter-card-expand-icon:hover .ag-icon,
.ag-filter-card-delete-icon:hover .ag-icon {
  color: var(--ag-filter-panel-card-subtle-hover-color);
}

.ag-filter-card-heading:hover .ag-filter-card-expand-icon .ag-icon {
  color: var(--ag-filter-panel-card-subtle-hover-color);
}

.ag-filter-card-expand,
.ag-filter-card-delete {
  border-radius: var(--ag-button-border-radius);
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
}

.ag-filter-panel .ag-standard-button {
  cursor: pointer;
}

.ag-filter-card-summary,
.ag-filter-type-select {
  margin-left: var(--ag-widget-container-horizontal-padding);
  margin-right: var(--ag-widget-container-horizontal-padding);
}

.ag-ltr .ag-filter-card-delete {
  margin-right: var(--ag-widget-horizontal-spacing);
}
.ag-rtl .ag-filter-card-delete {
  margin-left: var(--ag-widget-horizontal-spacing);
}

.ag-filter-card-summary {
  margin-bottom: var(--ag-widget-container-vertical-padding);
}

.ag-filter-type-select {
  padding-top: var(--ag-widget-vertical-spacing);
}

.ag-filter-card-add {
  padding: 0;
  border: 0;
}

.ag-filter-add-button {
  display: flex;
  flex-direction: row;
  width: 100%;
  align-items: center;
  line-height: 1.5;
}

.ag-ltr .ag-filter-add-button-label {
  margin-left: var(--ag-grid-size);
}
.ag-rtl .ag-filter-add-button-label {
  margin-right: var(--ag-grid-size);
}

.ag-filter-add-select {
  border: 0;
}
.ag-ltr .ag-filter-add-select .ag-text-field-input {
  padding-left: calc(var(--ag-grid-size) * 1.5 + 12px) !important;
}
.ag-rtl .ag-filter-add-select .ag-text-field-input {
  padding-right: calc(var(--ag-grid-size) * 1.5 + 12px) !important;
}
.ag-filter-add-select .ag-rich-select-value {
  padding: calc((1.5 * var(--ag-font-size) + 4 * var(--ag-grid-size) - var(--ag-input-height)) / 2) var(--ag-grid-size);
  border: 0;
}

.ag-pivot-mode-panel {
  min-height: var(--ag-header-height);
  height: var(--ag-header-height);
  display: flex;
}

.ag-pivot-mode-select {
  display: flex;
  align-items: center;
}
.ag-ltr .ag-pivot-mode-select {
  margin-left: var(--ag-widget-container-horizontal-padding);
}
.ag-rtl .ag-pivot-mode-select {
  margin-right: var(--ag-widget-container-horizontal-padding);
}

.ag-column-select-header:focus-visible {
  outline: none;
}
.ag-column-select-header:focus-visible::after {
  content: "";
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 4px;
  left: 4px;
  display: block;
  width: calc(100% - 8px);
  height: calc(100% - 8px);
  border: 1px solid;
  border-color: var(--ag-input-focus-border-color);
}

.ag-column-select-header {
  height: var(--ag-header-height);
  align-items: center;
  padding: 0 var(--ag-widget-container-horizontal-padding);
  border-bottom: var(--ag-borders-secondary) var(--ag-secondary-border-color);
}

.ag-column-panel-column-select {
  border-bottom: var(--ag-borders-secondary) var(--ag-secondary-border-color);
  border-top: var(--ag-borders-secondary) var(--ag-secondary-border-color);
}

.ag-column-group-icons,
.ag-column-select-header-icon {
  color: var(--ag-secondary-foreground-color);
}

.ag-column-select-list .ag-list-item-hovered::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 1px;
}
.ag-column-select-list .ag-item-highlight-top::after {
  top: 0;
}
.ag-column-select-list .ag-item-highlight-bottom::after {
  bottom: 0;
}

.ag-header,
.ag-advanced-filter-header {
  background-color: var(--ag-header-background-color);
  border-bottom: var(--ag-borders-critical) var(--ag-border-color);
}

.ag-header-row {
  color: var(--ag-header-foreground-color);
  height: var(--ag-header-height);
}

.ag-pinned-right-header {
  border-left: var(--ag-borders-critical) var(--ag-border-color);
}

.ag-pinned-left-header {
  border-right: var(--ag-borders-critical) var(--ag-border-color);
}

.ag-header-cell:not(.ag-right-aligned-header) .ag-header-col-ref {
  margin-right: var(--ag-grid-size);
  color: var(--ag-subtle-text-color);
}
.ag-ltr .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon,
.ag-ltr .ag-header-cell:not(.ag-right-aligned-header) .ag-header-menu-icon {
  margin-left: var(--ag-grid-size);
}
.ag-rtl .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon,
.ag-rtl .ag-header-cell:not(.ag-right-aligned-header) .ag-header-menu-icon {
  margin-right: var(--ag-grid-size);
}

.ag-header-cell.ag-right-aligned-header .ag-header-col-ref {
  margin-left: var(--ag-grid-size);
  color: var(--ag-subtle-text-color);
}
.ag-ltr .ag-header-cell.ag-right-aligned-header .ag-header-label-icon,
.ag-ltr .ag-header-cell.ag-right-aligned-header .ag-header-menu-icon {
  margin-right: var(--ag-grid-size);
}
.ag-rtl .ag-header-cell.ag-right-aligned-header .ag-header-label-icon,
.ag-rtl .ag-header-cell.ag-right-aligned-header .ag-header-menu-icon {
  margin-left: var(--ag-grid-size);
}

.ag-header-cell,
.ag-header-group-cell {
  padding-left: var(--ag-cell-horizontal-padding);
  padding-right: var(--ag-cell-horizontal-padding);
}
.ag-header-cell.ag-header-cell-moving,
.ag-header-group-cell.ag-header-cell-moving {
  background-color: var(--ag-header-cell-moving-background-color);
}

.ag-ltr .ag-header-group-cell-label.ag-sticky-label {
  left: var(--ag-cell-horizontal-padding);
}
.ag-rtl .ag-header-group-cell-label.ag-sticky-label {
  right: var(--ag-cell-horizontal-padding);
}

.ag-header-cell:focus-visible {
  outline: none;
}
.ag-header-cell:focus-visible::after {
  content: "";
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 4px;
  left: 4px;
  display: block;
  width: calc(100% - 8px);
  height: calc(100% - 8px);
  border: 1px solid;
  border-color: var(--ag-input-focus-border-color);
}

.ag-header-group-cell:focus-visible {
  outline: none;
}
.ag-header-group-cell:focus-visible::after {
  content: "";
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 4px;
  left: 4px;
  display: block;
  width: calc(100% - 8px);
  height: calc(100% - 8px);
  border: 1px solid;
  border-color: var(--ag-input-focus-border-color);
}

.ag-advanced-filter-header-cell:focus-visible {
  outline: none;
}
.ag-advanced-filter-header-cell:focus-visible::after {
  content: "";
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 4px;
  left: 4px;
  display: block;
  width: calc(100% - 8px);
  height: calc(100% - 8px);
  border: 1px solid;
  border-color: var(--ag-input-focus-border-color);
}

.ag-header-icon {
  color: var(--ag-secondary-foreground-color);
}

.ag-header-expand-icon {
  cursor: pointer;
}
.ag-ltr .ag-header-expand-icon {
  margin-left: 4px;
}
.ag-rtl .ag-header-expand-icon {
  margin-right: 4px;
}

.ag-header-row:not(:first-child) .ag-header-cell:not(.ag-header-span-height.ag-header-span-total, .ag-header-parent-hidden),
.ag-header-row:not(:first-child) .ag-header-group-cell.ag-header-group-cell-with-group {
  border-top: var(--ag-borders-critical) var(--ag-border-color);
}

.ag-header-group-cell:not(.ag-column-resizing) + .ag-header-group-cell:not(.ag-column-hover):not(.ag-header-cell-moving):hover, .ag-header-group-cell:not(.ag-column-resizing) + .ag-header-group-cell:not(.ag-column-hover).ag-column-resizing,
.ag-header-cell:not(.ag-column-resizing) + .ag-header-cell:not(.ag-column-hover):not(.ag-header-cell-moving):hover,
.ag-header-cell:not(.ag-column-resizing) + .ag-header-cell:not(.ag-column-hover).ag-column-resizing,
.ag-header-group-cell:first-of-type:not(.ag-header-cell-moving):hover,
.ag-header-group-cell:first-of-type.ag-column-resizing,
.ag-header-cell:not(.ag-column-hover):first-of-type:not(.ag-header-cell-moving):hover,
.ag-header-cell:not(.ag-column-hover):first-of-type.ag-column-resizing {
  background-color: var(--ag-header-cell-hover-background-color);
}

.ag-header-cell::before,
.ag-header-group-cell:not(.ag-header-span-height.ag-header-group-cell-no-group)::before {
  content: "";
  position: absolute;
  z-index: 1;
  display: var(--ag-header-column-separator-display);
  width: var(--ag-header-column-separator-width);
  height: var(--ag-header-column-separator-height);
  top: calc(50% - var(--ag-header-column-separator-height) * 0.5);
  background-color: var(--ag-header-column-separator-color);
}
.ag-ltr .ag-header-cell::before,
.ag-ltr .ag-header-group-cell:not(.ag-header-span-height.ag-header-group-cell-no-group)::before {
  right: 0;
}
.ag-rtl .ag-header-cell::before,
.ag-rtl .ag-header-group-cell:not(.ag-header-span-height.ag-header-group-cell-no-group)::before {
  left: 0;
}

.ag-header-highlight-before::after,
.ag-header-highlight-after::after {
  content: "";
  position: absolute;
  height: 100%;
  width: var(--ag-column-drag-indicator-width);
  border-radius: calc(var(--ag-column-drag-indicator-width) / 2);
  background-color: var(--ag-column-drag-indicator-color);
}

.ag-header-highlight-before::after {
  left: 0px;
}

.ag-header-highlight-after::after {
  right: 0px;
}

.ag-pinned-left-header .ag-header-highlight-after::after {
  right: 1px;
}

.ag-header-cell-resize {
  display: flex;
  align-items: center;
}

.ag-header-cell-resize::after {
  content: "";
  position: absolute;
  z-index: 1;
  display: var(--ag-header-column-resize-handle-display);
  width: var(--ag-header-column-resize-handle-width);
  height: var(--ag-header-column-resize-handle-height);
  top: calc(50% - var(--ag-header-column-resize-handle-height) * 0.5);
  background-color: var(--ag-header-column-resize-handle-color);
}
.ag-header-cell.ag-header-span-height .ag-header-cell-resize::after {
  height: calc(100% - var(--ag-grid-size) * 4);
  top: calc(var(--ag-grid-size) * 2);
}

.ag-ltr .ag-header-viewport .ag-header-cell-resize::after {
  left: calc(50% - var(--ag-header-column-resize-handle-width));
}
.ag-rtl .ag-header-viewport .ag-header-cell-resize::after {
  right: calc(50% - var(--ag-header-column-resize-handle-width));
}

.ag-pinned-left-header .ag-header-cell-resize::after {
  left: calc(50% - var(--ag-header-column-resize-handle-width));
}

.ag-pinned-right-header .ag-header-cell-resize::after {
  left: 50%;
}

.ag-ltr .ag-header-select-all {
  margin-right: var(--ag-cell-horizontal-padding);
}
.ag-rtl .ag-header-select-all {
  margin-left: var(--ag-cell-horizontal-padding);
}

.ag-ltr .ag-floating-filter-button {
  margin-left: var(--ag-cell-widget-spacing);
}
.ag-rtl .ag-floating-filter-button {
  margin-right: var(--ag-cell-widget-spacing);
}

.ag-floating-filter-button-button {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  appearance: none;
  background: transparent;
  border: none;
  height: var(--ag-icon-size);
  padding: 0;
  width: var(--ag-icon-size);
}

.ag-filter-loading {
  background-color: var(--ag-control-panel-background-color);
  height: 100%;
  padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);
  position: absolute;
  width: 100%;
  z-index: 1;
  align-items: unset;
}

.ag-paging-panel {
  border-top: 1px solid;
  border-top-color: var(--ag-border-color);
  color: var(--ag-secondary-foreground-color);
  height: var(--ag-pagination-panel-height);
}
.ag-paging-panel > * {
  margin: 0 var(--ag-cell-horizontal-padding);
}
.ag-paging-panel > .ag-paging-page-size .ag-wrapper {
  min-width: calc(var(--ag-grid-size) * 10);
}

.ag-paging-button {
  cursor: pointer;
}

.ag-paging-button.ag-disabled {
  cursor: default;
  color: var(--ag-disabled-foreground-color);
}

.ag-paging-button:focus-visible {
  outline: none;
}
.ag-paging-button:focus-visible::after {
  content: "";
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 0px;
  left: 0px;
  display: block;
  width: calc(100% - 0px);
  height: calc(100% - 0px);
  border: 1px solid;
  border-color: var(--ag-input-focus-border-color);
}

.ag-paging-button,
.ag-paging-description {
  margin: 0 var(--ag-grid-size);
  line-height: 0;
}

.ag-status-bar {
  border-top: var(--ag-borders) var(--ag-border-color);
  color: var(--ag-disabled-foreground-color);
  padding-right: calc(var(--ag-grid-size) * 4);
  padding-left: calc(var(--ag-grid-size) * 4);
  line-height: 1.5;
}

.ag-status-name-value-value {
  color: var(--ag-foreground-color);
}

.ag-status-bar-center {
  text-align: center;
}

.ag-status-name-value {
  margin-left: var(--ag-grid-size);
  margin-right: var(--ag-grid-size);
  padding-top: calc(var(--ag-grid-size) * 2);
  padding-bottom: calc(var(--ag-grid-size) * 2);
}

.ag-column-drop-cell {
  background: var(--ag-chip-background-color);
  border-radius: calc(var(--ag-grid-size) * 4);
  height: calc(var(--ag-grid-size) * 4);
  padding: 0 calc(var(--ag-grid-size) * 0.5);
  border: 1px solid var(--ag-chip-border-color);
}

.ag-column-drop-cell:focus-visible {
  outline: none;
}
.ag-column-drop-cell:focus-visible::after {
  content: "";
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 2px;
  left: 2px;
  display: block;
  width: calc(100% - 4px);
  height: calc(100% - 4px);
  border: 1px solid;
  border-color: var(--ag-input-focus-border-color);
}

.ag-column-drop-cell-text {
  margin: 0 var(--ag-grid-size);
}

.ag-column-drop-cell-button {
  min-width: calc(var(--ag-grid-size) * 4);
  margin: 0 calc(var(--ag-grid-size) * 0.5);
  color: var(--ag-secondary-foreground-color);
}

.ag-column-drop-cell-drag-handle {
  margin-left: calc(var(--ag-grid-size) * 2);
}

.ag-column-drop-cell-ghost {
  opacity: 0.5;
}

.ag-column-drop-horizontal {
  background-color: var(--ag-header-background-color);
  color: var(--ag-secondary-foreground-color);
  height: var(--ag-header-height);
  border-bottom: var(--ag-borders) var(--ag-border-color);
}
.ag-ltr .ag-column-drop-horizontal {
  padding-left: var(--ag-cell-horizontal-padding);
}
.ag-rtl .ag-column-drop-horizontal {
  padding-right: var(--ag-cell-horizontal-padding);
}

.ag-ltr .ag-column-drop-horizontal-half-width:not(:last-child) {
  border-right: var(--ag-borders) var(--ag-border-color);
}
.ag-rtl .ag-column-drop-horizontal-half-width:not(:last-child) {
  border-left: var(--ag-borders) var(--ag-border-color);
}

.ag-column-drop-horizontal-cell-separator {
  margin: 0 var(--ag-grid-size);
  color: var(--ag-secondary-foreground-color);
}

.ag-column-drop-horizontal-empty-message {
  color: var(--ag-disabled-foreground-color);
}

.ag-ltr .ag-column-drop-horizontal-icon {
  margin-right: var(--ag-cell-horizontal-padding);
}
.ag-rtl .ag-column-drop-horizontal-icon {
  margin-left: var(--ag-cell-horizontal-padding);
}

.ag-column-drop-vertical-list {
  padding-bottom: var(--ag-grid-size);
  padding-right: var(--ag-grid-size);
  padding-left: var(--ag-grid-size);
}

.ag-column-drop-vertical-cell {
  margin-top: var(--ag-grid-size);
}

.ag-column-drop-vertical {
  min-height: 50px;
  border-bottom: var(--ag-borders-secondary) var(--ag-secondary-border-color);
}
.ag-column-drop-vertical.ag-last-column-drop {
  border-bottom: none;
}

.ag-column-drop-vertical-icon {
  margin-left: var(--ag-grid-size);
  margin-right: var(--ag-grid-size);
}

.ag-column-drop-vertical-empty-message {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  overflow: hidden;
  color: var(--ag-disabled-foreground-color);
  margin-top: var(--ag-grid-size);
}

.ag-select-agg-func-popup {
  border: var(--ag-borders) var(--ag-border-color);
  border-radius: var(--ag-card-radius);
  box-shadow: var(--ag-card-shadow);
  padding: var(--ag-grid-size);
  background: var(--ag-background-color);
  height: calc(var(--ag-grid-size) * 5 * 3.5);
  padding: 0;
}

.ag-select-agg-func-virtual-list-item {
  cursor: default;
}
.ag-ltr .ag-select-agg-func-virtual-list-item {
  padding-left: calc(var(--ag-grid-size) * 2);
}
.ag-rtl .ag-select-agg-func-virtual-list-item {
  padding-right: calc(var(--ag-grid-size) * 2);
}
.ag-select-agg-func-virtual-list-item:hover {
  background-color: var(--ag-selected-row-background-color);
}

.ag-select-agg-func-virtual-list-item:focus-visible {
  outline: none;
}
.ag-select-agg-func-virtual-list-item:focus-visible::after {
  content: "";
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 1px;
  left: 1px;
  display: block;
  width: calc(100% - 2px);
  height: calc(100% - 2px);
  border: 1px solid;
  border-color: var(--ag-input-focus-border-color);
}

.ag-sort-indicator-container {
  display: flex;
}

.ag-ltr .ag-sort-indicator-icon {
  padding-left: var(--ag-grid-size);
}
.ag-rtl .ag-sort-indicator-icon {
  padding-right: var(--ag-grid-size);
}

.ag-chart {
  position: relative;
  display: flex;
  width: 100%;
  height: 100%;
}

.ag-chart-components-wrapper {
  position: relative;
  display: flex;
  flex: 1 1 auto;
}

.ag-chart-canvas-wrapper {
  position: relative;
  flex: 1 1 auto;
}

.ag-chart-menu {
  position: absolute;
  top: 16px;
  display: flex;
  flex-direction: column;
}
.ag-ltr .ag-chart-menu {
  right: 20px;
}
.ag-rtl .ag-chart-menu {
  left: 20px;
}

.ag-chart-docked-container {
  position: relative;
  min-width: var(--ag-chart-menu-panel-width);
}

.ag-chart-menu-hidden ~ .ag-chart-docked-container {
  display: none;
}

.ag-chart-tabbed-menu {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.ag-chart-tabbed-menu-header {
  flex: none;
  -webkit-user-select: none;
  user-select: none;
  cursor: default;
}

.ag-chart-tabbed-menu-body {
  display: flex;
  flex: 1 1 auto;
  align-items: stretch;
  overflow: hidden;
}

.ag-chart-tab {
  width: 100%;
  overflow: hidden;
  overflow-y: auto;
}

.ag-chart-settings {
  overflow-x: hidden;
}

.ag-chart-settings-wrapper {
  position: relative;
  flex-direction: column;
  width: 100%;
  height: 100%;
  display: flex;
  overflow: hidden;
}

.ag-chart-settings-nav-bar {
  display: flex;
  align-items: center;
  width: 100%;
  height: 30px;
  padding: 0 10px;
  -webkit-user-select: none;
  user-select: none;
}

.ag-chart-settings-card-selector {
  display: flex;
  align-items: center;
  justify-content: space-around;
  flex: 1 1 auto;
  height: 100%;
  padding: 0 10px;
}

.ag-chart-settings-card-item {
  cursor: pointer;
  width: 10px;
  height: 10px;
  background-color: #000;
  position: relative;
}
.ag-chart-settings-card-item.ag-not-selected {
  opacity: 0.2;
}
.ag-chart-settings-card-item::before {
  content: " ";
  display: block;
  position: absolute;
  background-color: transparent;
  left: 50%;
  top: 50%;
  margin-left: -10px;
  margin-top: -10px;
  width: 20px;
  height: 20px;
}

.ag-chart-settings-prev,
.ag-chart-settings-next {
  position: relative;
  flex: none;
}
.ag-chart-settings-prev:focus-within,
.ag-chart-settings-next:focus-within {
  box-shadow: var(--ag-input-focus-box-shadow);
  border-radius: 1px;
}

.ag-chart-settings-prev-button,
.ag-chart-settings-next-button {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  cursor: pointer;
  opacity: 0;
}

.ag-chart-settings-mini-charts-container {
  position: relative;
  flex: 1 1 auto;
  overflow-x: hidden;
  overflow-y: auto;
}

.ag-chart-settings-mini-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  min-height: 100%;
  overflow: hidden;
}
.ag-chart-settings-mini-wrapper.ag-animating {
  transition: left 0.3s;
  transition-timing-function: ease-in-out;
}

.ag-chart-mini-thumbnail {
  cursor: pointer;
}

.ag-chart-mini-thumbnail-canvas {
  display: block;
}

.ag-chart-data-wrapper,
.ag-chart-format-wrapper,
.ag-chart-advanced-settings-wrapper {
  display: flex;
  flex-direction: column;
  position: relative;
  -webkit-user-select: none;
  user-select: none;
  padding-bottom: 16px;
}

.ag-chart-data-wrapper,
.ag-chart-advanced-settings-wrapper {
  height: 100%;
  overflow-y: auto;
}

.ag-chart-advanced-settings {
  background-color: var(--ag-control-panel-background-color);
}

.ag-chart-advanced-settings-wrapper,
.ag-chart-advanced-settings {
  width: 100%;
}

.ag-chart-advanced-settings-wrapper {
  padding-bottom: 0;
}

.ag-chart-data-section,
.ag-chart-format-section,
.ag-chart-advanced-settings-section {
  display: flex;
  margin: 0;
}

.ag-chart-advanced-settings-section {
  padding-top: var(--ag-grid-size);
  padding-bottom: var(--ag-grid-size);
}
.ag-chart-advanced-settings-section:not(:last-child) {
  border-bottom: 1px solid var(--ag-secondary-border-color);
}

.ag-chart-empty-text {
  display: flex;
  top: 0;
  width: 100%;
  height: 100%;
  align-items: center;
  justify-content: center;
  background-color: var(--ag-background-color);
}

.ag-chart .ag-chart-menu-wrapper .ag-chart-menu {
  display: flex;
  flex-direction: row;
  top: 8px;
  gap: 20px;
  width: auto;
}
.ag-ltr .ag-chart .ag-chart-menu-wrapper .ag-chart-menu {
  right: calc(var(--ag-cell-horizontal-padding) + var(--ag-grid-size) - 4px);
  justify-content: right;
}
.ag-rtl .ag-chart .ag-chart-menu-wrapper .ag-chart-menu {
  left: calc(var(--ag-cell-horizontal-padding) + var(--ag-grid-size) - 4px);
  justify-content: left;
}

.ag-charts-font-size-color {
  display: flex;
  align-self: stretch;
  justify-content: space-between;
}

.ag-charts-data-group-item {
  position: relative;
}

.ag-charts-data-group-item:not(:last-child) {
  margin-bottom: var(--ag-grid-size);
}

.ag-chart-menu {
  border-radius: var(--ag-card-radius);
  background: var(--ag-background-color);
}

.ag-chart-menu-icon {
  opacity: 0.5;
  margin: 2px 0;
  cursor: pointer;
  border-radius: var(--ag-card-radius);
  color: var(--ag-secondary-foreground-color);
}
.ag-chart-menu-icon:hover {
  opacity: 1;
}

.ag-chart-menu-toolbar-button {
  border: 0;
  background-color: unset;
  padding: 0 2px;
  border-radius: 1px;
}

.ag-chart-mini-thumbnail {
  border: 1px solid var(--ag-secondary-border-color);
  border-radius: 5px;
  padding: 1px;
}
.ag-chart-mini-thumbnail.ag-selected {
  border-color: var(--ag-minichart-selected-chart-color);
  border-width: 2px;
  padding: unset;
}
.ag-chart-mini-thumbnail:focus-visible {
  outline: none;
  border-color: var(--ag-minichart-selected-chart-color);
  box-shadow: var(--ag-input-focus-box-shadow);
}

.ag-chart-settings-card-item {
  background: var(--ag-foreground-color);
  width: 8px;
  height: 8px;
  border-radius: 4px;
}
.ag-chart-settings-card-item.ag-selected {
  background-color: var(--ag-minichart-selected-page-color);
}

.ag-chart-data-column-drag-handle {
  margin-left: var(--ag-grid-size);
}

.ag-charts-settings-group-title-bar,
.ag-charts-data-group-title-bar,
.ag-charts-format-top-level-group-title-bar {
  border-top: var(--ag-borders-secondary) var(--ag-secondary-border-color);
  position: relative;
}

.ag-charts-advanced-settings-top-level-group-title-bar {
  position: relative;
  background-color: unset;
}

.ag-charts-data-group-title-bar:focus-visible {
  outline: none;
}
.ag-charts-data-group-title-bar:focus-visible::after {
  content: "";
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 4px;
  left: 4px;
  display: block;
  width: calc(100% - 8px);
  height: calc(100% - 8px);
  border: 1px solid;
  border-color: var(--ag-input-focus-border-color);
}

.ag-charts-format-top-level-group-title-bar:focus-visible {
  outline: none;
}
.ag-charts-format-top-level-group-title-bar:focus-visible::after {
  content: "";
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 4px;
  left: 4px;
  display: block;
  width: calc(100% - 8px);
  height: calc(100% - 8px);
  border: 1px solid;
  border-color: var(--ag-input-focus-border-color);
}

.ag-charts-data-group-title-bar .ag-charts-data-group-title,
.ag-charts-format-top-level-group-title-bar .ag-charts-format-top-level-group-title {
  cursor: pointer;
}

.ag-charts-data-group-container {
  padding: calc(var(--ag-widget-container-vertical-padding) * 0.5) var(--ag-widget-container-horizontal-padding);
}
.ag-charts-data-group-container .ag-charts-data-group-item:not(.ag-charts-format-sub-level-group):not(.ag-pill-select):not(.ag-select) {
  height: var(--ag-list-item-height);
}
.ag-charts-data-group-container .ag-charts-data-group-item.ag-picker-field {
  margin-top: var(--ag-grid-size);
}
.ag-charts-data-group-container .ag-list-item-hovered::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 1px;
}
.ag-charts-data-group-container .ag-item-highlight-top::after {
  top: 0;
}
.ag-charts-data-group-container .ag-item-highlight-bottom::after {
  bottom: 0;
}

.ag-charts-format-top-level-group-container,
.ag-charts-advanced-settings-top-level-group-container {
  padding: var(--ag-grid-size);
}
.ag-ltr .ag-charts-format-top-level-group-container,
.ag-ltr .ag-charts-advanced-settings-top-level-group-container {
  margin-left: calc(var(--ag-grid-size) * 2);
}
.ag-rtl .ag-charts-format-top-level-group-container,
.ag-rtl .ag-charts-advanced-settings-top-level-group-container {
  margin-right: calc(var(--ag-grid-size) * 2);
}

.ag-charts-format-top-level-group-item,
.ag-charts-advanced-settings-top-level-group-item {
  margin: var(--ag-grid-size) 0;
}

.ag-charts-format-sub-level-group-container {
  padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);
  padding-bottom: calc(var(--ag-widget-container-vertical-padding) - var(--ag-widget-vertical-spacing));
}
.ag-charts-format-sub-level-group-container > * {
  margin-bottom: var(--ag-widget-vertical-spacing);
}

.ag-charts-format-sub-level-no-header-group-container > * {
  margin-bottom: var(--ag-widget-vertical-spacing);
}

.ag-charts-format-sub-level-group-container .ag-charts-format-sub-level-group-item.ag-font-panel-no-header {
  margin: 0;
}

.ag-charts-settings-group-container {
  padding: var(--ag-grid-size);
  row-gap: 8px;
  display: grid;
  grid-template-columns: 60px 1fr 60px 1fr 60px;
}
.ag-charts-settings-group-container .ag-chart-mini-thumbnail:nth-child(3n+1) {
  grid-column: 1;
}
.ag-charts-settings-group-container .ag-chart-mini-thumbnail:nth-child(3n+2) {
  grid-column: 3;
}
.ag-charts-settings-group-container .ag-chart-mini-thumbnail:nth-child(3n+3) {
  grid-column: 5;
}

.ag-chart-menu-panel {
  background-color: var(--ag-control-panel-background-color);
}
.ag-ltr .ag-chart-menu-panel {
  border-left: solid 1px var(--ag-border-color);
}
.ag-rtl .ag-chart-menu-panel {
  border-right: solid 1px var(--ag-border-color);
}

.ag-date-time-list-page-title-bar {
  display: flex;
}

.ag-date-time-list-page-title {
  flex-grow: 1;
  text-align: center;
}

.ag-date-time-list-page-column-labels-row,
.ag-date-time-list-page-entries-row {
  display: flex;
}

.ag-date-time-list-page-column-label,
.ag-date-time-list-page-entry {
  flex-basis: 0;
  flex-grow: 1;
}

.ag-date-time-list-page-entry {
  cursor: pointer;
  text-align: center;
}

.ag-date-time-list-page-column-label {
  text-align: center;
}

.ag-advanced-filter-header {
  position: relative;
  display: flex;
  align-items: center;
  padding-left: var(--ag-cell-horizontal-padding);
  padding-right: var(--ag-cell-horizontal-padding);
}

.ag-advanced-filter {
  display: flex;
  align-items: center;
  width: 100%;
}

.ag-advanced-filter-buttons {
  display: contents;
}

.ag-advanced-filter-builder-button {
  display: flex;
  align-items: center;
  border: 0;
  background-color: unset;
  color: var(--ag-foreground-color);
  font-size: var(--ag-font-size);
  font-weight: 600;
  line-height: normal;
  white-space: nowrap;
}
.ag-ltr .ag-advanced-filter-builder-button {
  margin-left: calc(var(--ag-grid-size) * 2);
}
.ag-rtl .ag-advanced-filter-builder-button {
  margin-right: calc(var(--ag-grid-size) * 2);
}
.ag-advanced-filter-builder-button:hover:not(:disabled) {
  background-color: var(--ag-row-hover-color);
}
.ag-advanced-filter-builder-button:not(:disabled) {
  cursor: pointer;
}

.ag-advanced-filter-builder-button-label {
  margin-left: var(--ag-grid-size);
}

.ag-advanced-filter-builder {
  -webkit-user-select: none;
  user-select: none;
  width: 100%;
  background-color: var(--ag-control-panel-background-color);
  display: flex;
  flex-direction: column;
}

.ag-advanced-filter-builder-list {
  flex: 1;
  overflow: auto;
}
.ag-advanced-filter-builder-list .ag-list-item-hovered::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 1px;
}
.ag-advanced-filter-builder-list .ag-item-highlight-top::after {
  top: 0;
}
.ag-advanced-filter-builder-list .ag-item-highlight-bottom::after {
  bottom: 0;
}

.ag-advanced-filter-builder-button-panel {
  display: flex;
  justify-content: flex-end;
  padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);
  border-top: var(--ag-borders-secondary) var(--ag-secondary-border-color);
}

.ag-advanced-filter-builder .ag-advanced-filter-builder-button-panel .ag-advanced-filter-builder-apply-button,
.ag-advanced-filter-builder .ag-advanced-filter-builder-button-panel .ag-advanced-filter-builder-cancel-button {
  margin-left: calc(var(--ag-grid-size) * 2);
}

.ag-advanced-filter-builder-item-wrapper {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: space-between;
  overflow: hidden;
  padding-left: calc(var(--ag-icon-size) / 2);
  padding-right: var(--ag-icon-size);
}

.ag-virtual-list-viewport .ag-advanced-filter-builder-item-wrapper .ag-tab-guard {
  position: absolute;
}

.ag-advanced-filter-builder-item-tree-lines > * {
  width: var(--ag-advanced-filter-builder-indent-size);
}

.ag-advanced-filter-builder-item-tree-lines .ag-advanced-filter-builder-item-tree-line-root {
  width: var(--ag-icon-size);
}
.ag-advanced-filter-builder-item-tree-lines .ag-advanced-filter-builder-item-tree-line-root::before {
  top: 50%;
  height: 50%;
}

.ag-advanced-filter-builder-item-tree-line-horizontal,
.ag-advanced-filter-builder-item-tree-line-vertical,
.ag-advanced-filter-builder-item-tree-line-vertical-top,
.ag-advanced-filter-builder-item-tree-line-vertical-bottom {
  position: relative;
  height: 100%;
  display: flex;
  align-items: center;
}
.ag-advanced-filter-builder-item-tree-line-horizontal::before, .ag-advanced-filter-builder-item-tree-line-horizontal::after,
.ag-advanced-filter-builder-item-tree-line-vertical::before,
.ag-advanced-filter-builder-item-tree-line-vertical::after,
.ag-advanced-filter-builder-item-tree-line-vertical-top::before,
.ag-advanced-filter-builder-item-tree-line-vertical-top::after,
.ag-advanced-filter-builder-item-tree-line-vertical-bottom::before,
.ag-advanced-filter-builder-item-tree-line-vertical-bottom::after {
  content: "";
  position: absolute;
  height: 100%;
}

.ag-advanced-filter-builder-item-tree-line-horizontal::after {
  height: 50%;
  width: calc(var(--ag-advanced-filter-builder-indent-size) - var(--ag-icon-size));
  top: 0;
  left: calc(var(--ag-icon-size) / 2);
  border-bottom: 1px solid;
  border-color: var(--ag-border-color);
}

.ag-advanced-filter-builder-item-tree-line-vertical::before {
  width: calc(var(--ag-advanced-filter-builder-indent-size) - var(--ag-icon-size) / 2);
  top: 0;
  left: calc(var(--ag-icon-size) / 2);
  border-left: 1px solid;
  border-color: var(--ag-border-color);
}

.ag-advanced-filter-builder-item-tree-line-vertical-top::before {
  height: 50%;
  width: calc(var(--ag-advanced-filter-builder-indent-size) - var(--ag-icon-size) / 2);
  top: 0;
  left: calc(var(--ag-icon-size) / 2);
  border-left: 1px solid;
  border-color: var(--ag-border-color);
}

.ag-advanced-filter-builder-item-tree-line-vertical-bottom::before {
  height: calc((100% - 1.5 * var(--ag-icon-size)) / 2);
  width: calc(var(--ag-icon-size) / 2);
  top: calc((100% + 1.5 * var(--ag-icon-size)) / 2);
  left: calc(var(--ag-icon-size) / 2);
  border-left: 1px solid;
  border-color: var(--ag-border-color);
}

.ag-advanced-filter-builder-item-condition {
  padding-top: var(--ag-grid-size);
  padding-bottom: var(--ag-grid-size);
}

.ag-advanced-filter-builder-item,
.ag-advanced-filter-builder-item-condition,
.ag-advanced-filter-builder-pill-wrapper,
.ag-advanced-filter-builder-pill,
.ag-advanced-filter-builder-item-buttons,
.ag-advanced-filter-builder-item-tree-lines {
  display: flex;
  align-items: center;
  height: 100%;
}

.ag-advanced-filter-builder-pill-wrapper {
  margin: 0px var(--ag-grid-size);
}

.ag-advanced-filter-builder-pill {
  position: relative;
  border-radius: var(--ag-border-radius);
  padding: var(--ag-grid-size) calc(var(--ag-grid-size) * 2);
  min-height: calc(100% - var(--ag-grid-size) * 3);
  min-width: calc(var(--ag-grid-size) * 2);
}
.ag-advanced-filter-builder-pill .ag-picker-field-display {
  margin-right: var(--ag-grid-size);
}
.ag-advanced-filter-builder-pill .ag-advanced-filter-builder-value-number {
  font-family: monospace;
  font-weight: 700;
}
.ag-advanced-filter-builder-pill .ag-advanced-filter-builder-value-empty {
  color: var(--ag-disabled-foreground-color);
}

.ag-advanced-filter-builder-pill:focus-visible {
  outline: none;
}
.ag-advanced-filter-builder-pill:focus-visible::after {
  content: "";
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: -4px;
  left: -4px;
  display: block;
  width: calc(100% - -8px);
  height: calc(100% - -8px);
  border: 1px solid;
  border-color: var(--ag-input-focus-border-color);
}

.ag-advanced-filter-builder-item-button:focus-visible {
  outline: none;
}
.ag-advanced-filter-builder-item-button:focus-visible::after {
  content: "";
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: -4px;
  left: -4px;
  display: block;
  width: calc(100% - -8px);
  height: calc(100% - -8px);
  border: 1px solid;
  border-color: var(--ag-input-focus-border-color);
}

.ag-advanced-filter-builder-pill-display {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 500;
}

.ag-advanced-filter-builder-join-pill {
  color: var(--ag-foreground-color);
  background-color: var(--ag-advanced-filter-join-pill-color);
  cursor: pointer;
}

.ag-advanced-filter-builder-column-pill {
  color: var(--ag-foreground-color);
  background-color: var(--ag-advanced-filter-column-pill-color);
  cursor: pointer;
}

.ag-advanced-filter-builder-option-pill {
  color: var(--ag-foreground-color);
  background-color: var(--ag-advanced-filter-option-pill-color);
  cursor: pointer;
}

.ag-advanced-filter-builder-value-pill {
  color: var(--ag-foreground-color);
  background-color: var(--ag-advanced-filter-value-pill-color);
  cursor: text;
  max-width: 140px;
}
.ag-advanced-filter-builder-value-pill .ag-advanced-filter-builder-pill-display {
  display: block;
}

.ag-advanced-filter-builder-item-buttons > * {
  margin: 0 calc(var(--ag-grid-size) * 0.5);
}

.ag-advanced-filter-builder-item-button {
  position: relative;
  cursor: pointer;
  color: var(--ag-secondary-foreground-color);
  opacity: 50%;
}

.ag-advanced-filter-builder-item-button-disabled {
  color: var(--ag-disabled-foreground-color);
  cursor: default;
}

.ag-advanced-filter-builder-virtual-list-container {
  top: var(--ag-grid-size);
}

.ag-advanced-filter-builder-virtual-list-item {
  display: flex;
  cursor: default;
  height: var(--ag-list-item-height);
}
.ag-advanced-filter-builder-virtual-list-item:hover {
  background-color: var(--ag-row-hover-color);
}
.ag-advanced-filter-builder-virtual-list-item:hover .ag-advanced-filter-builder-item-button {
  opacity: 100%;
}

.ag-advanced-filter-builder-virtual-list-item-highlight .ag-advanced-filter-builder-item-button:focus-visible,
.ag-advanced-filter-builder-validation .ag-advanced-filter-builder-invalid {
  opacity: 100%;
}

.ag-advanced-filter-builder-invalid {
  margin: 0 var(--ag-grid-size);
  color: var(--ag-invalid-color);
  cursor: default;
}

.ag-row-number-cell {
  background-color: var(--ag-header-background-color);
  color: var(--ag-header-foreground-color);
  font-size: var(--ag-font-size);
  font-family: var(--ag-font-family);
}

.ag-row-number-header.ag-row-number-selection-enabled {
  cursor: cell;
}

.ag-row-number-range-highlight {
  background-color: var(--ag-range-header-highlight-color);
}

.ag-row-number-range-selected {
  background-color: var(--ag-row-numbers-selected-color);
}

.ag-ltr .ag-row-number-header,
.ag-ltr .ag-cell.ag-row-number-cell:not(.ag-cell-last-left-pinned) {
  border-right: var(--ag-pinned-column-border);
}
.ag-ltr .ag-cell.ag-row-number-cell.ag-row-number-selection-enabled {
  cursor: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxLjU7Ij4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEuNTc4NCwwLDAsMS44NjQyOSwtNC40MTM0OSwtNy4yMTIxMikiPgogICAgICAgIDxwYXRoIGQ9Ik0zLjQ0NSw4LjkxMUwzLjQ0NSw3LjQwOUw5Ljc1LDcuNDA5TDkuNzUsNi4wMTRMMTIuMjg1LDguMTZMOS43NSwxMC4zMDZMOS43NSw4LjkxMUwzLjQ0NSw4LjkxMVoiIHN0eWxlPSJzdHJva2U6d2hpdGU7c3Ryb2tlLXdpZHRoOjAuNDFweDsiLz4KICAgIDwvZz4KPC9zdmc+Cg=="), auto;
}

.ag-rtl .ag-row-number-header,
.ag-rtl .ag-cell.ag-row-number-cell:not(.ag-cell-first-right-pinned) {
  border-left: var(--ag-pinned-column-border);
}
.ag-rtl .ag-cell.ag-row-number-cell.ag-row-number-selection-enabled {
  cursor: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxLjU7Ij4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEuNTc4NCwwLDAsMS44NjQyOSwtNC40MTM0OSwtNy4yMTIxMikiPgogICAgICAgIDxwYXRoIGQ9Ik01Ljk3OSw4LjkxMUw1Ljk3OSwxMC4zMDZMMy40NDUsOC4xNkw1Ljk3OSw2LjAxNEw1Ljk3OSw3LjQwOUwxMi4yODUsNy40MDlMMTIuMjg1LDguOTExTDUuOTc5LDguOTExWiIgc3R5bGU9InN0cm9rZTp3aGl0ZTtzdHJva2Utd2lkdGg6MC40MXB4OyIvPgogICAgPC9nPgo8L3N2Zz4K"), auto;
}

.ag-cell-batch-edit {
  background-color: var(--ag-cell-batch-edit-background-color);
  color: var(--ag-cell-batch-edit-text-color);
}

.ag-cell.ag-cell-inline-editing {
  background-color: var(--ag-background-color);
  background-image: linear-gradient(0deg, var(--ag-input-background-color), var(--ag-input-background-color));
}

.ag-row-batch-edit {
  background-color: var(--ag-row-batch-edit-background-color);
  color: var(--ag-row-batch-edit-text-color);
}

.ag-input-field-input {
  width: 100%;
  min-width: 0;
}

.ag-checkbox-input-wrapper {
  font-family: var(--ag-icon-font-family);
  font-weight: var(--ag-icon-font-weight);
  color: var(--ag-icon-font-color);
  font-size: var(--ag-icon-size);
  line-height: var(--ag-icon-size);
  font-style: normal;
  font-variant: normal;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: var(--ag-icon-size);
  height: var(--ag-icon-size);
  background-color: var(--ag-checkbox-background-color);
  border-radius: var(--ag-checkbox-border-radius);
  display: inline-block;
  vertical-align: middle;
  flex: none;
}
.ag-checkbox-input-wrapper input,
.ag-checkbox-input-wrapper input {
  -webkit-appearance: none;
  opacity: 0;
  width: 100%;
  height: 100%;
}
.ag-checkbox-input-wrapper:focus-within, .ag-checkbox-input-wrapper:active {
  outline: none;
  box-shadow: var(--ag-input-focus-box-shadow);
}
.ag-cell-editing-error .ag-checkbox-input-wrapper:focus-within, .ag-cell-editing-error .ag-checkbox-input-wrapper:active {
  box-shadow: var(--ag-input-error-focus-box-shadow);
}
.ag-checkbox-input-wrapper.ag-disabled {
  opacity: 0.5;
}
.ag-checkbox-input-wrapper::after {
  content: var(--ag-icon-font-code-checkbox-unchecked, "\f108");
  font-family: inherit;
  color: var(--ag-checkbox-unchecked-color);
  display: var(--ag-icon-font-display-checkbox-unchecked, var(--ag-icon-font-display));
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
}
.ag-checkbox-input-wrapper.ag-checked::after {
  content: var(--ag-icon-font-code-checkbox-checked, "\f106");
  color: var(--ag-checkbox-checked-color);
  display: var(--ag-icon-font-display-checkbox-checked, var(--ag-icon-font-display));
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
}
.ag-checkbox-input-wrapper.ag-indeterminate::after {
  content: var(--ag-icon-font-code-checkbox-indeterminate, "\f107");
  color: var(--ag-checkbox-indeterminate-color);
  display: var(--ag-icon-font-display-checkbox-indeterminate, var(--ag-icon-font-display));
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
}
.ag-checkbox-input-wrapper::before {
  content: "";
  background: transparent center/contain no-repeat;
  position: absolute;
  inset: 0;
  background-image: var(--ag-icon-image-checkbox-unchecked, var(--ag-icon-image));
  display: var(--ag-icon-image-display-checkbox-unchecked, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-checkbox-unchecked, var(--ag-icon-image-opacity, 0.9));
}
.ag-checkbox-input-wrapper.ag-checked::before {
  background-image: var(--ag-icon-image-checkbox-checked, var(--ag-icon-image));
  display: var(--ag-icon-image-display-checkbox-checked, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-checkbox-checked, var(--ag-icon-image-opacity, 0.9));
}
.ag-checkbox-input-wrapper.ag-indeterminate::before {
  background-image: var(--ag-icon-image-checkbox-indeterminate, var(--ag-icon-image));
  display: var(--ag-icon-image-display-checkbox-indeterminate, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-checkbox-indeterminate, var(--ag-icon-image-opacity, 0.9));
}

.ag-toggle-button-input-wrapper {
  box-sizing: border-box;
  width: var(--ag-toggle-button-width);
  min-width: var(--ag-toggle-button-width);
  max-width: var(--ag-toggle-button-width);
  height: var(--ag-toggle-button-height);
  background-color: var(--ag-toggle-button-off-background-color);
  border-radius: calc(var(--ag-toggle-button-height) * 0.5);
  position: relative;
  flex: none;
  border: var(--ag-toggle-button-border-width) solid;
  border-color: var(--ag-toggle-button-off-border-color);
}
.ag-toggle-button-input-wrapper input {
  opacity: 0;
  height: 100%;
  width: 100%;
}
.ag-toggle-button-input-wrapper:focus-within {
  outline: none;
  box-shadow: var(--ag-input-focus-box-shadow);
}
.ag-toggle-button-input-wrapper.ag-disabled {
  opacity: 0.5;
}
.ag-toggle-button-input-wrapper.ag-checked {
  background-color: var(--ag-toggle-button-on-background-color);
  border-color: var(--ag-toggle-button-on-border-color);
}
.ag-toggle-button-input-wrapper::before {
  content: " ";
  position: absolute;
  top: calc(0px - var(--ag-toggle-button-border-width));
  left: calc(0px - var(--ag-toggle-button-border-width));
  display: block;
  box-sizing: border-box;
  height: var(--ag-toggle-button-height);
  width: var(--ag-toggle-button-height);
  background-color: var(--ag-toggle-button-switch-background-color);
  border-radius: 100%;
  transition: left 100ms;
  border: var(--ag-toggle-button-border-width) solid;
  border-color: var(--ag-toggle-button-switch-border-color);
}
.ag-toggle-button-input-wrapper.ag-checked::before {
  left: calc(100% - var(--ag-toggle-button-height) + var(--ag-toggle-button-border-width));
  border-color: var(--ag-toggle-button-on-border-color);
}

.ag-radio-button-input-wrapper {
  font-family: var(--ag-icon-font-family);
  font-weight: var(--ag-icon-font-weight);
  color: var(--ag-icon-font-color);
  font-size: var(--ag-icon-size);
  line-height: var(--ag-icon-size);
  font-style: normal;
  font-variant: normal;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: var(--ag-icon-size);
  height: var(--ag-icon-size);
  background-color: var(--ag-checkbox-background-color);
  border-radius: var(--ag-checkbox-border-radius);
  display: inline-block;
  vertical-align: middle;
  flex: none;
  border-radius: var(--ag-icon-size);
}
.ag-radio-button-input-wrapper input,
.ag-radio-button-input-wrapper input {
  -webkit-appearance: none;
  opacity: 0;
  width: 100%;
  height: 100%;
}
.ag-radio-button-input-wrapper:focus-within, .ag-radio-button-input-wrapper:active {
  outline: none;
  box-shadow: var(--ag-input-focus-box-shadow);
}
.ag-cell-editing-error .ag-radio-button-input-wrapper:focus-within, .ag-cell-editing-error .ag-radio-button-input-wrapper:active {
  box-shadow: var(--ag-input-error-focus-box-shadow);
}
.ag-radio-button-input-wrapper.ag-disabled {
  opacity: 0.5;
}
.ag-radio-button-input-wrapper::after {
  content: var(--ag-icon-font-code-radio-button-off, "\f127");
  color: var(--ag-checkbox-unchecked-color);
  display: var(--ag-icon-font-display-radio-button-off, var(--ag-icon-font-display));
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
}
.ag-radio-button-input-wrapper.ag-checked::after {
  content: var(--ag-icon-font-code-radio-button-on, "\f128");
  color: var(--ag-checkbox-checked-color);
  display: var(--ag-icon-font-display-radio-button-on, var(--ag-icon-font-display));
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
}
.ag-radio-button-input-wrapper::before {
  content: "";
  background: transparent center/contain no-repeat;
  position: absolute;
  inset: 0;
  background-image: var(--ag-icon-image-radio-button-off, var(--ag-icon-image));
  display: var(--ag-icon-image-display-radio-button-off, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-radio-button-off, var(--ag-icon-image-opacity, 0.9));
}
.ag-radio-button-input-wrapper.ag-checked::before {
  background-image: var(--ag-icon-image-radio-button-on, var(--ag-icon-image));
  display: var(--ag-icon-image-display-radio-button-on, var(--ag-icon-image-display));
  opacity: var(--ag-icon-image-opacity-radio-button-on, var(--ag-icon-image-opacity, 0.9));
}

.ag-range-field-input {
  -webkit-appearance: none;
  width: 100%;
  height: 100%;
  background: none;
  overflow: visible;
}
.ag-range-field-input::-webkit-slider-runnable-track {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 3px;
  background-color: var(--ag-border-color);
  border-radius: var(--ag-border-radius);
  border-radius: var(--ag-checkbox-border-radius);
}
.ag-range-field-input::-moz-range-track {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 3px;
  background-color: var(--ag-border-color);
  border-radius: var(--ag-border-radius);
  border-radius: var(--ag-checkbox-border-radius);
}
.ag-range-field-input::-ms-track {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 3px;
  background-color: var(--ag-border-color);
  border-radius: var(--ag-border-radius);
  border-radius: var(--ag-checkbox-border-radius);
  color: transparent;
  width: calc(100% - 2px);
}
.ag-range-field-input::-webkit-slider-thumb {
  margin: 0;
  padding: 0;
  -webkit-appearance: none;
  width: var(--ag-icon-size);
  height: var(--ag-icon-size);
  background-color: var(--ag-background-color);
  border: 1px solid;
  border-color: var(--ag-checkbox-unchecked-color);
  border-radius: var(--ag-icon-size);
  transform: translateY(calc(var(--ag-icon-size) * -0.5 + 1.5px));
}
.ag-range-field-input::-ms-thumb {
  margin: 0;
  padding: 0;
  -webkit-appearance: none;
  width: var(--ag-icon-size);
  height: var(--ag-icon-size);
  background-color: var(--ag-background-color);
  border: 1px solid;
  border-color: var(--ag-checkbox-unchecked-color);
  border-radius: var(--ag-icon-size);
}
.ag-range-field-input::-moz-ag-range-thumb {
  margin: 0;
  padding: 0;
  -webkit-appearance: none;
  width: var(--ag-icon-size);
  height: var(--ag-icon-size);
  background-color: var(--ag-background-color);
  border: 1px solid;
  border-color: var(--ag-checkbox-unchecked-color);
  border-radius: var(--ag-icon-size);
}
.ag-range-field-input:focus {
  outline: none;
}
.ag-range-field-input:focus::-webkit-slider-thumb {
  box-shadow: var(--ag-input-focus-box-shadow);
  border-color: var(--ag-checkbox-checked-color);
}
.ag-range-field-input:focus::-ms-thumb {
  box-shadow: var(--ag-input-focus-box-shadow);
  border-color: var(--ag-checkbox-checked-color);
}
.ag-range-field-input:focus::-moz-ag-range-thumb {
  box-shadow: var(--ag-input-focus-box-shadow);
  border-color: var(--ag-checkbox-checked-color);
}
.ag-range-field-input:active::-webkit-slider-runnable-track {
  background-color: var(--ag-input-focus-border-color);
}
.ag-range-field-input:active::-moz-ag-range-track {
  background-color: var(--ag-input-focus-border-color);
}
.ag-range-field-input:active::-ms-track {
  background-color: var(--ag-input-focus-border-color);
}
.ag-range-field-input:disabled {
  opacity: 0.5;
}

/*!*****************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[2]!./node_modules/ag-grid-community/styles/ag-theme-quartz.css?ngGlobalStyle ***!
  \*****************************************************************************************************************************************************************************************************************************************************************/
@font-face {
  font-family: "agGridQuartz";
  src: url(data:font/woff2;charset=utf-8;base64,d09GMgABAAAAAB60AAsAAAAAP9AAAB5kAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHItkBmAAjSYK02DDKgE2AiQDgnALgToABCAFhEYHhlUbGDZVRoWNAxCE6WSJokyNVmT/f0mQlxh6/aA2IaNSNSSMnFiPpCFrpxM4K2otB+uVtaIChHJqIvHDENnTdjLimnVXso4TytrTJzK4pg/me9l/YydzYHHZUEoe/n/tf/vemffdUS3liyhimoYMWTONUCiBEgj1rEV/Ps+9r/et+feYGhwbKIIByglQsVguFajUU8Bc6vSDVEIwvGxhQJFLtCEtQ2/vNjUAhue32YNvIvjF/0kD+mOjuHBJiFhF6aKMlUuMra2hbnfnSte6K4W1lzBXJX9zibf9f1FyUeqFXiEMufb6HcLgvJBHHMR871Sllk9WUWBoOTCmNGMQhNhF1s/dxncbCywH32oQBABKPMP/4ONvm6pmuvZk1rDIKWNuj+d82xpMQjITCuCDoFwi4H9V01W86y5NTmllGNP3ZJsIEKIEfEASRN09UzB9pjuvvGce3eXWdFNK77N4dBHdmVLbMLmOacOSYc2WOcOecUq2UFgnyp8tvnAVMiEtgVbEqzq3Qvxp3Rok89J7f80caG99C/bAiwpChJiEMMkNsv3qO5FAi6w2cmJqYUP+8Y3XT3WgZbdMcFwwPX5w74bks4VuGJfwX0Jtizy/N79/pfqZHub8wldS/ebV1/JWTStGFpTXNhUiGebJXMhhIzw+Kow1Wp3Vx3Cx4BriBBMY7FUEVWCyPj07hjTMCLSjjXjp9iJ4cXOjtAYk5WqtyiAIE0/zHeW3d4ymMZoax5hylBHhW73RzQRXSOOUUNFlTXgHARsVeftSI8aBgBRLlEUf0YLqBlHcg1Mn5ulxGECa1zFIIFe9DPZTzxyJICgoPs6gZ4FQt31fAFGzaFNCBQfqfY4OkMwQmk11bGbRObSxGmIALe+rQ3GqsKa9Gx+mSU4dQKNLsLj5JLEOJLVbUlPrvVXQEWIGvwoagTW8hECk63NwE/pNegiVBO19+fvxO/7xo0Tb08ubS2WpOm1Ou1J72k9gtoXyPf4qXw23W0/TE2qmIGqePZKStASraUzvycGhxdVSLPoyZDNUB1xagP0Acq3XKqNOXrAtnO7AamiZGA69W2viqHLEswsRLpvw7JC0TSR9eiOQxTG1uXgOA5mrkZLA2AriEAUvOhPH5dHZkzpQ9LS+QyWUXwTDWFp6e1Gc2BNRo6JEdlF5bnbEozzK0Q14T9ATnV6siC4K4sirtu+W1Sf14g3UeLrzjqH+9c2n6Jm2qo2FsWRFrPgoThTXRxMfVQQvztMX8OaUAHQDxFxDb4daQrpI0Erq0y7c+bBJaQBKDNoaSGR4ZN0WsR7XQOD9MMK/w+MZ3BAQSRUaEQ8OKahltEb6uGEUFRpJ+9ySelSFsl/QGCqpFT+zBtqogEtzIEQ1iKNA9BsUJKWu+1dyJJrx9AYG8sd8GXwpDnz6J5cyQMYUIHsVK3cnb/uPVIwKH9grtZF+Fdj0AKiBAlycKcr5cvP0dDaofd9FFLHu46F9QxseiZZy68lPTNbrLrlx6yVSyczsRM6DTmFlQAKqsil05HHKU5ETKPYEDWrg5TI1B46FkCgsDk8g+mf2YVSoNLR09AyMTMwsrGzsHJxc3Dy8fBR+AUEhYUYRUTFxCUkpaRlZOXkFRXolZRVVNXU0RkNTS1tH1z4LpAaQPbzhzx9fW1ya2ptYmVFZ3pyb3eYuTG/tzq/v7FtdbUD53nsVuPTRBnCjceBma8CtFoHbLQF3mgLutgfcawK43wrwoBngUavA45aBJ20CT5sDnjULPG8beNkk8KoF4HXTwJu2gLftAu+aB963DnxoB/h49kEQo1gSBiwFA5YGNEAwaIRg0QTBoRmCRwuEgFYIEW0QEtohZHRAKOiEUNEFoUE3hBY9EDr0QujRB2FAP4QRAxAmDEKYMQRhwTCEFSMQNoxC2DEG4cAhCCcOQ7hwBMKNoxAeHIPwoh3Cl+MQOQGRkxA5BZHTEOiDiBgZAzwKDPAYMMDjwABPAAM8CQzwFDDA08AAzwADPAsM8BwwwPPAAC8AA7wIDPASGHrjZWDOeQUY4FVggNeAAV4HBngDGOBNOJcSonUuNYg2Q8Y7wADvAgO8BwzwPjDAB8AAHwIDfAQUTMfB13b+wG+0PwNd37NyHissKde4UwgUUmNwqY/Aon/vkN88uAmfAbkGfo4B8ovk+AjEx2oSoACDojFdV2rGpfWbber8hlTuUk5tptE2hRfFHQyEb0uOjojmRtADtjDYgavYTZIwNJIJ0Z6cHx0sCaaHD4s8jko58QxFsBCpCmwOTmUh/SRkM18oYtAD7Dr2Q0a4Zx9QKILJ8mexdStGY+SMMDRRKBayoiLp0KZwCAlnoFw+P5LFixJjdJ8mBqNKdnOxu0O4jCjS8Oyd0ulbaf7rNCvNsMSlVH3Yo+lAuQG5MjYh//wtgQBOxVvFygozrpmYk/R2l4ilVHppV4d3mgjyspFM+61xYQ+DuudwKuHE7DdFRPViyCsQ45WDMdtNptebRYJiDjuQL6FDJVdgelrTlkZEddl3l/j0crn2TZJr17fSjk4CnIhBw0jyhW9PuO1Ude0efnFjW8jbh03SrSieKnrug9sUtDTUBLbABthnNpgtcItcOwuqPqeASn7cA7uv0sDycqZn1NYFgGauWoxGHgA1VpLPhO3OsKBIOvaQqJ6wiAs5iTuYWvk6/DFePsDDJYausJ7LdYZr4+gqJnZe89JYmaMQUDTiUqVm3JXIrz8Zke3U8iXqkIcdSjVqHyWtDb9w9dmOg5nG56znz+VCGPN61Yg//8ULxczR/v6fpFSo7rwiZe4ObU/Mh8w9whXBE0yaRn4x08UbPGRK+EFXVPNWF0+MvvyGyxsG1F91/Qx+FExPiEcsX7QIw1716ptL2Z2Hvua6Mun6z8LlF7sOfyNeyBusXzTJt+Vknj9odCfI1MNRCwkt5taAOmeM+Z3CQ/MrXgkFHS4WjsRlpsEbFx/gPFwbXMDJo5soMf7QUKok1BoRWUdsW06g+VPMenLrOlVw3gPW4ds38BuuT9YdSivNUI19MjmQWeLTdctblukuo1mElw1o1VGjXoeoKibSkO8cBsKxHYsPn6O/d/PaFuqJBZwhfteZ2KPVy5B9xefRtfjmtRPUSFmhkJbk4kMNa2hkU4vd3KT35YrRZuP6GKFFM5WcsATfBQveE/UN/EWpAens6nY5xtsMU90AubaCRFGqN9wR39SFvimGFBohOwR1XTCFuMfhBNe2FYZslyF+xLKIIcNuLlGUeMgMmzSyDMO2DZNDpEjrYb2oT0yTJG/YEMecyQvFgelQ1SEeVcS6tiqrlkh3WQzhDUihoK89x6YpKGH2bovYGp6GM2QOzUoo781G3UeMUWvEbeeaerLP4sjc/Vz+TNkXzcp4Ll9ORht9nrZhinUImsHyHAbQ4A8RMWq1xr1UgpPGACnCE0yU5nnyQrIa4Qjnt1yqUkgy30tAPYFTwkMmQQcB3RORpsBBsmHHnIQjhyBRtYhGf5az+eL8zNlHghm1PqzeZH2PL2rvv58DuCDhdfjFacloc9qCkT3mj0kkpzNDiM+Xdo0oVqc3ymWeSbHQyzNvLhc0vQQZmkLyBdVvejxDo7Fy+/PF1/MVFuHPGdDBwnkTVXaWzn1yR80zrffRrZLBrfbEWF/4zz9FJcdxuDTzZl69u6O7Z2SqEc2RGTiNZ1WceQafPydeL0Jv2DulV7e3To30BLs+nSdkuMubfv3+rqN9YxOh9pKZj27JWWLO1yKfWZ92oQPWYU8+aWa1QB92oMuY6eQCsBp3w4yZGp1rR8M3O8Aai1CQd1hzWIND1521NWKUB3EhHRMzPcZvRKV78QDgxx0O8tDE2qApzmkruTr16YQdif6meHy/wWwszR3YgVKjVKeDzKZ/zEeC0l9M4AS5cXUADc5OAoC91SSGZFcHfJYpL96Cx6f74cDMRC2+kQRYqRTZqVneWObu6gEtqG687Aj7IwNrmy0cEx0zaIIbnL8h6fdq3pERt8DBSNKEHYtEp0wyHK61yUqXieJ47PInGWYoCKAppOT2wlpK4wY0rbfAOsvP8iLoqRzd/PqcTdyuuwDM7WgetmWDeGlt01RuOmhfiU063Wi1DDrSJGLOkyGLLB1FB8O7WPYSy1UMojV8M5IWC1tq+tRcHy1XJk6ylZiV7AdlnP6wH2EWHIQf1qvIJeMPeUACiSmz54pids7HxmjaiZS3JCmrgQCvsb7s/M1nAOTVGllYtMC6QculGXwvQNOjt1/k3QD3L6/NHD6jor8XF5TJxTfho7xR1Z2Qh3wNO1wbY4qERIq8VbT0aDZhZ1pncM4W5GoI2B1nk1QhOpFaZlx6pRgMZaNQKUmmxtxfsltRGCkddHTk/FnZbqcqruF60jB+LlfjxTtQZ6TVE0oXF3dlO9Py6fVVHOkK9mfaX6QcRZHWPnHunbFGZXtRy0fenIoDryUHDKHESouLclaXPVLHD3sdb/XTSV5e/sln9pqUU9scDak4sJnr7Gxp3D8hqFRGm9tAUz+y079Eo81Wo/m2kvZqccBitX3Mr1rppGvHBCgjjcdmMIshYvP9ELLQypjYFxydHAAaDVwbvAj7D/sW6w6e+azXHEx4cnYQDWmmh51l5lqZMnlEj5NhaSbwoseaqK6JjjPx5m408msdoABjtXUAXwuwHyB9AoKNygLOFgsCVfBex9PdT9qHoV2bX26ryAFPuC5DsiJyI7ZXQFcmihWONbELDzjooSouNj2bhj0hz/C6GeHlIa9Ib9yJeymc0GPeUi6heRoNBEivm9puVQb/PwJ7Kx089i5nllUydzZXA9Glpo28AyNtD3NnrYoaozjdElW2Ti5ON55Qmk7fuHmBX0ZV19NmYB+lrRb8oky7xFCFlBrfyIiVVXPhZDwVTlhfBbVadyh4QyxTjrgGhZvBI4WjhodelA1j875QJh68aOuuNBtYm5Gi/ro1g6phfOhC9xHdfPG9C7bnNSz75IkkT7yAS2g8klsT9ZMLBlw0PENy4INtQiqp1qgiWxYymbwxE+vcpzJbfFZ5iP2PuDi0eapoavPn+5YCZDvJD27f55tdRZMc5CY3/6/cj4bO//fyN3PcMg18ICr5gJST27bh/kflhIcCPDvlsLZtq4hpa21lWqq6LwPw125rOQh7pUG4hSFA8XSbLcyW2vVZiMJ+OX6Zt8GeAuHyRBIjuVzcv19N3L93HXJhDvT6hoZev0g7UHX+EjMEwBwrMAI5+oT12qTh0h+2DZ+McURh31vV/PTAHCr2g+LBOH/YldrwsiBGJPzh7Q3F/OJm/bRKtq9ZvphcGN8OGYtjDP2RLPiWBFLqK2fiDTHH1+YmzBfdY8HfHkc0qbPgjq9g5CP+bJrk3m+uYRfBPr6UOHfi2DESc8pxtxvY+fuppMu94mvEg0cdRT8ukdMX42bC2Shf0Y/Z+6YyLv25ecN9Kke8OkkfkENRHD3BG3ZftUIkSrUNU6IwOyJY4KbEb9Xm0e42nzix/etQ9MPpIHlsEPVFvd6RkVdyh3zQrtfbXY2s3WofyWR9K5rbq7aPeIFQtx5xoEdRB/YlGZMl6BnVXA+qLjxD3JgTmWpoNAVyB749pE3Tl7v4oPQN1eHDudUrc2EoBcq/TlZVwbnKFCWct7IqH969AHzMBNzgc0IoCJ1xkrqhbvMW/aZDu5Y1i4ifVR4nZaaMTmGfKaRc02wc6gISXQrzwNE3ukc7e4I23OAPpcC9iTkT4XG4srW7v3xj7I0vd69tMccbbxUVDAb301iuaS8q6kviJnWXFLueoE9cpt2lxH1FRe1PIgAs+YDAHJhn/XqCsIdpwzQYhlImihOUygoSI3NzP39YGRnNpKfQ4e8hjTRaKnvRRzduOCIdYduFB8UHhZGvreSAnM5f9bEDhoFYPWjMZnIsr5X2hnz4ZcexLz8MgY3RehCkW8Ec5xukp+MkcebY01KD5FJsQv78tdLP0+H64ycWnThcDxth6eThrg3FmcaDXcc3hlYD1nKYlJOTk+AjCo/44yOZj5SD4JsYCe35aIQ4MTcCxZ5W9ihPx0I9j/9NKeLGXEj1005+hapCO5MQUZhkP0/SKeF3fnb28pPxTovBtCf/EJgTI9lsDhvH3BhRnIVNYi4MR4/MUZ0ITH8yWlVhW7c7/SIFq8KSsUps+se/pN4+MBzxVW19G+VZkEId9pKyrucFPPf9U798z7pYfUAuHmhFwjlRf7+1y4+275reEFNUNUybu+Y3bqS1pDaUuVLP2xF64kIojzc5W7lb/WDjTjTk5LW96Y0/0JlGhHGp8f0B1tRdKB718eRbO6rtrFOM1OmKvC/DrkkYweW6T75iv3Un/Nys12NdMW5uLODs8Q/JY9H8ualPOev6QvvWcZLvqYJop8IN780NlIs8GlxDaoihvOlzLSukVXx9EW3VycamuHhCr2+G/PXXdEqJJFubUsQo4Lo5BfSiFG22pISqa8xejq0c5CfEFzg/EOEaj4bQkK/VXVHxesnvZECkSkAcmAv98slTYolDjkvEJPYp7VVO+eDY2p4+Qe6rfHLXUp+9au/abE7BMNP+S+9s63zrzTO650HDSjozN39Naf2xtZnIySA0KIOrrzA1TOt7FjysZYSDGImVYMuYv7uqmtla22Yw/y2kHAh0BrB+aUquQp0+W63Irzndu7ExSn33YYk34+E35Yzx2S95Citno3g0Y7v4CfcTPODVR31ke8fgko/ZONXKK2NrtewynlVILGlMmapYbJrSJqzcIs5q3NjbW7PzvdhhdXquYmnK+qQkoNspWzFlKzBPDlZETQPWPOzzrHHG7PWdhSSGp0q0Hh9DRSMCA6t9TTE5FYfV7HT2Lunew8MVOTFNWsiSrBmh3dbG6xJzeCWRPdChH71H3qaNaJIt0LwoIanOF8kbSspPSMhfJN2FRfsbPKymMISW6RIg71/Ehfws9JfenxHXO9/EyFFKZ8X5Abqn70DAqXwHmH8KmTDhb8uemxwZwf2PFBIou221raIZMAAUrwtJjYl0Twr3nc4ajbgNvNl5PqY6Lw7E3lQRGClezB9Pnc/rZRHmRHrhUnix2F5t1uiF7MUlBIaXFFcpixGn3IlIp+5AkYLqRqIPehWdo1rpZAYgH6DCGmn/Uh2h7o8gV7PX2UhDINFF4PL+QiIubixLlDVmZNovW4aP+jyIC3MhHuCt5ftl6NJ0GRMRmaFl0czEYsl8rah0ofrnaUqkiTXD7uDyJ0yqNJVpgp+JVx00M6FEOk8jMi4YqE1ZkpAqw6wFbSGfcl8+kEhaZiF456tzArGQd/mtaxvFMdJm8/g7Cj2eTmLy+xFQ2mxIdzCrZyVvCEC6oK+ue5pumKZMGpTKZ7MRcof/93Qc+7p1KeLabHvqpQ7U2UEs5FCt0zY25qX22G/2fpZ2oVOIC5mClkyNDJkkMYlr/22M5CKCHBsD9/8ibuE5g0mdk98i3+aJk/gBssf/IsDsgeMkRo6O2qUmPeE+l23z+TyYkjmuPMHMJ7Xuqd+iDfxu4RToL9krvvXo0S1z51boeULu9CdP5bW1toTbGarEDZmF1Z6fOwfg5dMAh6vRpM1UWxcWJOYlJOQlFriku5iX0Id2vdZlmutmVaQtW5ZWMfvnqU/96N0BP83+Oe0nUDHrMWZ2RR1gQ/fFdCFfeilu4qqOuySd4I3r5vMtbA6cDk9o75Shfhg/SV8n/15WZ0xKh19QcukDKOHPTx/npSca7dLAY6/mvbrwDHUhMpMJ93MUEm+/Q2BkfrD21lpmVbXdZJQhbhB6syl8nJ8nvRhL0UccFHaF9DRnyeAaWRbqQA2IC21fXg2cLWvuCela+mOEAc6pjYD10elwLOJG7shqQLa0uZfG/55P6z2YJQU1sjuIE40JS4/Wh/VAHWGYI/8w6gJ0JHeCpAbXIh+eEb4nlU6d0w2SgdgBgmSyDoruo05kaEj7XUPHCxjSnzV0x9RKd04kH7pTeMeDOBAQpRpdE3i1Um3OWYY0z7DMgCuXvlM4d1l2M7LJsqmc0V2YplbMaQzJr/6TA2nOXjan8HzFcvp4TmtkHLRWtqElaw2yeAnDurBrf6U5vHtJd2GY3bqoCSnYYcg17Ija9O67m6Jak5t2FVOYlPSz74XmnqYqjlmmr9dvGtOmbVte+5O9HQUDP3RXWUS1e+wRoKNfnh71CPfE5wPROgfqRLz9/YTcIccnp/wSPFNTdrMlrLbW3t/vRVyI+Ed06iKZiAtzI+Dro6F5XAwoNvnZ+favMn3Ow+TbJyftnw8HbMTPXs4zWyjwde5Vy01Xwbgcf3DfAzrkxDJ9fSSGA+PIXLdK/EVrrGALyXRExN4BI51tMsFipY0D31w4NDjgf69rOPSd9evaaltElupu228P/V1L8F+DFk+UhWdGwBUOvEcGfIyRX4Q+FNOwSbyKTP6EWTVTBUQScdJB0cEkOv3XTMlDnTNyHtj1rTYBqB3D+u2rylLNKpU5texZarmLZlUvPyt/TZU3lelokNeyTGaVmlpaTFKr7LZ0P/eWFqlJZr1dE/wqAXUia2tCj1VTY5Yo5a5SvxMshFbRXImJyTZV3lp2h1rylq1X3lj/vceIpSFTJUwDh8axyvw8n7xr8wZB2JtzsMo82M4XC1UpRmOKSrOi4MeAd/jbyTsBP63I16iMySnG13VyksCrhH9W5KsroLJ1Tt2tf7dH0ZcELvMSxE94adwn4rmBlj89uN/Rwv9GKfb5NVcGImzPUmR9peePy9y54qfcNN5TcQJ3W/TaV3sv08Mz6GKGey94+eA8I5xh3lu3sHafmSFmrAXja4gbeRwc9Hr5rjjj+Ypv9FcwZLU5WXzqe0n4pKHxQxx1BJ/mrJhfd8oLBh/LMFkNyJIeDDnx5a71/+z6UjWPGi19tnvlwpbw3mQsHHh8sAuMjJIywoSkes1MvYXghhhZsQFZgrMRjqm/v/TGtNS3XpSFR4FyHBC7I0Ycax5HYAT+jUhfPTzzCIEB5diBytGFRLnzE1fAb9nfFgjW7r+OqpwZYVukW5hnXKGK9peuQdbAXM2dvHp6XJZs2Elpl7ZTdq6auRV11WbOIjY3oC7fu9o0zZ4O7wy8LLDZrBbb5kc83Wz6bF1mZuoAfSDVvnkz2Pl/Nurz6UUUtKbI3aIBaSU097A70EuhqGtmpBOgDbftg3xg0pjggDqOyT1QVPo+5IhaDeUCUP/OGujHVXo9dOMWadCCpCu/2UXcoyUIkSYchRK68m9N6SjqZ+kOSCtC07QBWp12U3+55VPofRH4FhpmeWb+gzoqMmlKt0IPhBZER3FlH/SdyULMSCdA1GP3yJ1QaGLWlYsNomUxSRuoKiWkvgniMi0nCTJAja/oysWQO8qr/1+XRWh1JaJkEAKWt4ii9hYIaqNZOyPQC8xE6J/KXxt4fudfxWJ4zu9BIZAPgFQW/NWVXQUyG/VP+vQjmv4sMSUBoH9DmKF8f1HM/PHjH03h+7jB/9dJ/v45JMTVmXg+8TJoSXqgDk6XXzpyEpnYI+NK5IkWe2EArWz1nFYjSZzWQFamLTWiDztvZfAogiiDAcHqfXUaSfVBqU3rJ6Wh9edpDLM/lIXW/6eJzsnvd5OE094CqI/i3UcG0fs3rHMA+blKsi+/UJJnKl4Oz1Vv7IiEAoquON2K1NavqlVRCTfFO1O8qhC4iMKfaPVwVo1vT09VmvBguelAfRTvPjIkfr1/w43K4WytCNaqzv6FTzTBwcZUvByeCbUjEPFZQdHZp9uXndqN/aq5XRUf1cJN8U4VE9KQUl5DrPc+0abqcO7gxbenfKiKVB0sFfPPUpdF/D/Cc0CVyrQcttPl9mivzw8gwoQyLqTSxjofhFGcpFlelFXdtF0/jNO8rNt+nNf9vN+v0erS9RmGzKzsnNy8/ILCouKSUqPJbLGWlS8wwO9OK9S1YA3qmYYgwpfUg2T78Dl1AA6vBkMLZDEM7BlE1xFE+3Xia7nrQff4YzeeHCpK4wkUt1VdmYgWn1sOLGX0J50y+ihyQ2lqmVTAKrq+5XgbWOGUeja1PZu1z9oe4PUhNy4ZgXqom+ANyxQgnXt7d1j5cMPcwHGStF+Lj4NaOMf+xZymHysdBk+Mk44Cg/NUjxu4+sbfsd8g5bGgpNSAmHBGrCWEwBfIQby6iD0sToPoW9a1rPcPl6esylRyVa1+xNFAfH3WfoIWp6mhMFA6vtABc8FnYLTh43ckItWxqDNTQSxt4ATYpqviCJOf83JEGmeShHY7eTHkNGjUi42HgbhGfdqoOsBymo8tlMq0h5kQl7T42ByhK0+sys205CrHqXJkKwOYkuP8gMXObvAmvwBjw6dj/tWW4FwfnVcDpjZi0Kjxhg2Zi0nGGmeCOZsvczJXUzYmm2hupjWVuXcA);
  font-weight: normal;
  font-style: normal;
}
.ag-theme-quartz,
.ag-theme-quartz-dark,
.ag-theme-quartz-auto-dark {
  --ag-active-color: #2196f3;
  --ag-background-color: #fff;
  --ag-foreground-color: #181d1f;
  --ag-border-color: color-mix(in srgb, transparent, var(--ag-foreground-color) 15%);
  --ag-secondary-border-color: var(--ag-border-color);
  --ag-header-background-color: color-mix(in srgb, var(--ag-background-color), var(--ag-foreground-color) 2%);
  --ag-tooltip-background-color: var(--ag-header-background-color);
  --ag-control-panel-background-color: var(--ag-header-background-color);
  --ag-subheader-background-color: transparent;
  --ag-invalid-color: #e02525;
  --ag-checkbox-unchecked-color: color-mix(in srgb, var(--ag-background-color), var(--ag-foreground-color) 30%);
  --ag-advanced-filter-join-pill-color: #f08e8d;
  --ag-advanced-filter-column-pill-color: #a6e194;
  --ag-advanced-filter-option-pill-color: #f3c08b;
  --ag-advanced-filter-value-pill-color: #85c0e4;
  --ag-header-column-resize-handle-color: var(--ag-secondary-border-color);
  --ag-icon-font-color: color-mix(in srgb, transparent, var(--ag-foreground-color) 90%);
  --ag-find-match-color: var(--ag-foreground-color);
  --ag-find-match-background-color: #ffff00;
  --ag-find-active-match-color: var(--ag-foreground-color);
  --ag-find-active-match-background-color: #ffa500;
  --ag-panel-background-color: color-mix(in srgb, var(--ag-background-color), var(--ag-foreground-color) 3%);
  --ag-panel-border-color: color-mix(in srgb, transparent, var(--ag-foreground-color) 20%);
  --ag-menu-background-color: color-mix(in srgb, var(--ag-background-color), var(--ag-foreground-color) 3%);
  --ag-menu-border-color: color-mix(in srgb, transparent, var(--ag-foreground-color) 20%);
  --ag-selected-row-background-color: color-mix(in srgb, transparent, var(--ag-active-color) 8%);
  --ag-row-hover-color: color-mix(in srgb, transparent, var(--ag-active-color) 12%);
  --ag-column-hover-color: color-mix(in srgb, transparent, var(--ag-foreground-color) 5%);
  --ag-input-focus-border-color: var(--ag-active-color);
  --ag-range-selection-background-color: color-mix(in srgb, transparent, var(--ag-active-color) 20%);
  --ag-input-focus-box-shadow: 0 0 0 3px color-mix(in srgb, transparent, var(--ag-input-focus-border-color) 47%);
  --ag-input-error-focus-box-shadow: 0 0 0 3px
      color-mix(in srgb, var(--ag-background-color), var(--ag-invalid-color) 50%);
  --ag-range-selection-background-color-2: color-mix(in srgb, transparent, var(--ag-active-color) 36%);
  --ag-range-selection-background-color-3: color-mix(in srgb, transparent, var(--ag-active-color) 49%);
  --ag-range-selection-background-color-4: color-mix(in srgb, transparent, var(--ag-active-color) 59%);
  --ag-row-numbers-selected-color: color-mix(in srgb, transparent, var(--ag-active-color) 50%);
  --ag-checkbox-background-color: var(--ag-background-color);
  --ag-checkbox-checked-color: var(--ag-active-color);
  --ag-range-selection-border-color: var(--ag-active-color);
  --ag-secondary-foreground-color: var(--ag-foreground-color);
  --ag-input-border-color: var(--ag-border-color);
  --ag-input-border-color-invalid: var(--ag-invalid-color);
  --ag-disabled-foreground-color: color-mix(in srgb, transparent, var(--ag-foreground-color) 50%);
  --ag-chip-background-color: color-mix(in srgb, transparent, var(--ag-foreground-color) 7%);
  --ag-chip-border-color: color-mix(in srgb, var(--ag-header-background-color), var(--ag-foreground-color) 13%);
  --ag-input-disabled-border-color: var(--ag-border-color);
  --ag-input-disabled-background-color: color-mix(in srgb, var(--ag-background-color), var(--ag-foreground-color) 6%);
  --ag-modal-overlay-background-color: color-mix(in srgb, transparent, var(--ag-background-color) 66%);
  --ag-chart-menu-label-color: color-mix(in srgb, transparent, var(--ag-foreground-color) 80%);
  --ag-chart-menu-pill-select-button-color: color-mix(in srgb, transparent, var(--ag-foreground-color) 70%);
  --ag-filter-panel-card-subtle-color: color-mix(in srgb, transparent, var(--ag-foreground-color) 70%);
  --ag-column-drag-indicator-color: var(--ag-active-color);
  --ag-borders: solid 1px;
  --ag-border-radius: 4px;
  --ag-wrapper-border-radius: 8px;
  --ag-borders-side-button: none;
  --ag-side-button-selected-background-color: transparent;
  --ag-header-column-resize-handle-display: block;
  --ag-header-column-resize-handle-width: 2px;
  --ag-header-column-resize-handle-height: 30%;
  --ag-grid-size: 8px;
  --ag-icon-size: 16px;
  --ag-header-height: calc(var(--ag-font-size) + var(--ag-grid-size) * 4.25);
  --ag-row-height: calc(var(--ag-font-size) + var(--ag-grid-size) * 3.5);
  --ag-list-item-height: calc(
      var(--ag-icon-size) + var(--ag-widget-vertical-spacing)
  );
  --ag-column-select-indent-size: var(--ag-icon-size);
  --ag-set-filter-indent-size: var(--ag-icon-size);
  --ag-filter-tool-panel-group-indent: var(--ag-grid-size);
  --ag-advanced-filter-builder-indent-size: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);
  --ag-cell-horizontal-padding: calc(var(--ag-grid-size) * 2);
  --ag-cell-widget-spacing: calc(var(--ag-grid-size) * 1.5);
  --ag-widget-container-vertical-padding: calc(var(--ag-grid-size) * 1.5);
  --ag-widget-container-horizontal-padding: calc(var(--ag-grid-size) * 1.5);
  --ag-widget-horizontal-spacing: calc(var(--ag-grid-size) * 1.5);
  --ag-widget-vertical-spacing: calc(var(--ag-grid-size) * 1);
  --ag-toggle-button-height: 18px;
  --ag-toggle-button-width: 28px;
  --ag-toggle-button-border-width: 2px;
  --ag-font-family: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu,
      Cantarell, "Helvetica Neue", sans-serif;
  --ag-font-size: 14px;
  --ag-icon-font-family: agGridQuartz;
  --ag-tab-min-width: 290px;
  --ag-chart-menu-panel-width: 260px;
  --ag-card-shadow: 0 1px 4px 1px rgba(186, 191, 199, 0.4);
  --ag-popup-shadow: 0 0 16px 0 rgba(0, 0, 0, 0.15);
  --ag-side-bar-panel-width: 250px;
  --ag-filter-panel-apply-button-color: var(--ag-background-color);
  --ag-filter-panel-apply-button-background-color: var(--ag-active-color);
}

.ag-theme-quartz-dark {
  --ag-background-color: color-mix(in srgb, #fff, #182230 97%);
  --ag-foreground-color: #fff;
  --ag-border-color: rgba(255, 255, 255, 0.16);
  --ag-secondary-border-color: color-mix(in srgb, transparent, var(--ag-foreground-color) 10%);
  --ag-header-background-color: color-mix(in srgb, #fff, #182230 93%);
  --ag-tooltip-background-color: color-mix(in srgb, #fff, #182230 96%);
  --ag-control-panel-background-color: color-mix(in srgb, #fff, #182230 93%);
  --ag-input-disabled-background-color: #68686e12;
  --ag-card-shadow: 0 1px 20px 1px black;
  --ag-input-border-color: var(--ag-border-color);
  --ag-input-disabled-border-color: rgba(255, 255, 255, 0.07);
  --ag-checkbox-unchecked-color: color-mix(in srgb, var(--ag-background-color), var(--ag-foreground-color) 40%);
  --ag-row-hover-color: color-mix(in srgb, transparent, var(--ag-active-color) 20%);
  --ag-selected-row-background-color: var(--ag-row-hover-color);
  --ag-panel-background-color: color-mix(in srgb, var(--ag-background-color), var(--ag-foreground-color) 10%);
  --ag-panel-border-color: color-mix(in srgb, transparent, var(--ag-foreground-color) 10%);
  --ag-menu-background-color: color-mix(in srgb, var(--ag-background-color), var(--ag-foreground-color) 10%);
  --ag-menu-border-color: color-mix(in srgb, transparent, var(--ag-foreground-color) 10%);
  --ag-advanced-filter-join-pill-color: #7a3a37;
  --ag-advanced-filter-column-pill-color: #355f2d;
  --ag-advanced-filter-option-pill-color: #5a3168;
  --ag-advanced-filter-value-pill-color: #374c86;
  --ag-find-match-color: var(--ag-background-color);
  --ag-find-active-match-color: var(--ag-background-color);
  --ag-filter-panel-apply-button-color: var(--ag-foreground-color);
  --ag-popup-shadow: 0 0px 20px rgba(0, 0, 0, 0.3);
  --ag-row-loading-skeleton-effect-color: rgba(202, 203, 204, 0.4);
  --ag-cell-batch-edit-text-color: #f3d0b3;
  --ag-formula-token-1-color: #4da3e5;
  --ag-formula-token-1-background-color: rgb(77 163 229 / 16%);
  --ag-formula-token-2-color: #f55864;
  --ag-formula-token-2-background-color: rgb(245 88 100 / 16%);
  --ag-formula-token-3-color: #b688f2;
  --ag-formula-token-3-background-color: rgb(182 136 242 / 16%);
  --ag-formula-token-4-color: #24bb4a;
  --ag-formula-token-4-background-color: rgb(36 187 74 / 16%);
  --ag-formula-token-5-color: #e772ba;
  --ag-formula-token-5-background-color: rgb(231 114 186 / 16%);
  --ag-formula-token-6-color: #f69b5f;
  --ag-formula-token-6-background-color: rgb(246 155 95 / 16%);
  --ag-formula-token-7-color: #a3e6ff;
  --ag-formula-token-7-background-color: rgb(163 230 255 / 16%);
  color-scheme: dark;
}

@media (prefers-color-scheme: dark) {
  .ag-theme-quartz-auto-dark {
    --ag-background-color: color-mix(in srgb, #fff, #182230 97%);
    --ag-foreground-color: #fff;
    --ag-border-color: rgba(255, 255, 255, 0.16);
    --ag-secondary-border-color: color-mix(in srgb, transparent, var(--ag-foreground-color) 10%);
    --ag-header-background-color: color-mix(in srgb, #fff, #182230 93%);
    --ag-tooltip-background-color: color-mix(in srgb, #fff, #182230 96%);
    --ag-control-panel-background-color: color-mix(in srgb, #fff, #182230 93%);
    --ag-input-disabled-background-color: #68686e12;
    --ag-card-shadow: 0 1px 20px 1px black;
    --ag-input-border-color: var(--ag-border-color);
    --ag-input-disabled-border-color: rgba(255, 255, 255, 0.07);
    --ag-checkbox-unchecked-color: color-mix(in srgb, var(--ag-background-color), var(--ag-foreground-color) 40%);
    --ag-row-hover-color: color-mix(in srgb, transparent, var(--ag-active-color) 20%);
    --ag-selected-row-background-color: var(--ag-row-hover-color);
    --ag-panel-background-color: color-mix(in srgb, var(--ag-background-color), var(--ag-foreground-color) 10%);
    --ag-panel-border-color: color-mix(in srgb, transparent, var(--ag-foreground-color) 10%);
    --ag-menu-background-color: color-mix(in srgb, var(--ag-background-color), var(--ag-foreground-color) 10%);
    --ag-menu-border-color: color-mix(in srgb, transparent, var(--ag-foreground-color) 10%);
    --ag-advanced-filter-join-pill-color: #7a3a37;
    --ag-advanced-filter-column-pill-color: #355f2d;
    --ag-advanced-filter-option-pill-color: #5a3168;
    --ag-advanced-filter-value-pill-color: #374c86;
    --ag-find-match-color: var(--ag-background-color);
    --ag-find-active-match-color: var(--ag-background-color);
    --ag-filter-panel-apply-button-color: var(--ag-foreground-color);
    --ag-popup-shadow: 0 0px 20px rgba(0, 0, 0, 0.3);
    --ag-row-loading-skeleton-effect-color: rgba(202, 203, 204, 0.4);
    --ag-cell-batch-edit-text-color: #f3d0b3;
    --ag-formula-token-1-color: #4da3e5;
    --ag-formula-token-1-background-color: rgb(77 163 229 / 16%);
    --ag-formula-token-2-color: #f55864;
    --ag-formula-token-2-background-color: rgb(245 88 100 / 16%);
    --ag-formula-token-3-color: #b688f2;
    --ag-formula-token-3-background-color: rgb(182 136 242 / 16%);
    --ag-formula-token-4-color: #24bb4a;
    --ag-formula-token-4-background-color: rgb(36 187 74 / 16%);
    --ag-formula-token-5-color: #e772ba;
    --ag-formula-token-5-background-color: rgb(231 114 186 / 16%);
    --ag-formula-token-6-color: #f69b5f;
    --ag-formula-token-6-background-color: rgb(246 155 95 / 16%);
    --ag-formula-token-7-color: #a3e6ff;
    --ag-formula-token-7-background-color: rgb(163 230 255 / 16%);
    color-scheme: dark;
  }
}
.ag-theme-quartz .ag-filter-toolpanel-header,
.ag-theme-quartz .ag-filter-toolpanel-search,
.ag-theme-quartz .ag-status-bar,
.ag-theme-quartz .ag-header-row,
.ag-theme-quartz .ag-row-number-cell,
.ag-theme-quartz .ag-panel-title-bar-title,
.ag-theme-quartz .ag-multi-filter-group-title-bar,
.ag-theme-quartz .ag-filter-card-title,
.ag-theme-quartz-dark .ag-filter-toolpanel-header,
.ag-theme-quartz-dark .ag-filter-toolpanel-search,
.ag-theme-quartz-dark .ag-status-bar,
.ag-theme-quartz-dark .ag-header-row,
.ag-theme-quartz-dark .ag-row-number-cell,
.ag-theme-quartz-dark .ag-panel-title-bar-title,
.ag-theme-quartz-dark .ag-multi-filter-group-title-bar,
.ag-theme-quartz-dark .ag-filter-card-title,
.ag-theme-quartz-auto-dark .ag-filter-toolpanel-header,
.ag-theme-quartz-auto-dark .ag-filter-toolpanel-search,
.ag-theme-quartz-auto-dark .ag-status-bar,
.ag-theme-quartz-auto-dark .ag-header-row,
.ag-theme-quartz-auto-dark .ag-row-number-cell,
.ag-theme-quartz-auto-dark .ag-panel-title-bar-title,
.ag-theme-quartz-auto-dark .ag-multi-filter-group-title-bar,
.ag-theme-quartz-auto-dark .ag-filter-card-title {
  font-weight: 500;
  color: var(--ag-header-foreground-color);
}
.ag-theme-quartz input[class^=ag-]:not([type]),
.ag-theme-quartz input[class^=ag-][type=text],
.ag-theme-quartz input[class^=ag-][type=number],
.ag-theme-quartz input[class^=ag-][type=tel],
.ag-theme-quartz input[class^=ag-][type=date],
.ag-theme-quartz input[class^=ag-][type=datetime-local],
.ag-theme-quartz textarea[class^=ag-],
.ag-theme-quartz-dark input[class^=ag-]:not([type]),
.ag-theme-quartz-dark input[class^=ag-][type=text],
.ag-theme-quartz-dark input[class^=ag-][type=number],
.ag-theme-quartz-dark input[class^=ag-][type=tel],
.ag-theme-quartz-dark input[class^=ag-][type=date],
.ag-theme-quartz-dark input[class^=ag-][type=datetime-local],
.ag-theme-quartz-dark textarea[class^=ag-],
.ag-theme-quartz-auto-dark input[class^=ag-]:not([type]),
.ag-theme-quartz-auto-dark input[class^=ag-][type=text],
.ag-theme-quartz-auto-dark input[class^=ag-][type=number],
.ag-theme-quartz-auto-dark input[class^=ag-][type=tel],
.ag-theme-quartz-auto-dark input[class^=ag-][type=date],
.ag-theme-quartz-auto-dark input[class^=ag-][type=datetime-local],
.ag-theme-quartz-auto-dark textarea[class^=ag-] {
  min-height: calc(var(--ag-grid-size) * 4);
  border-radius: var(--ag-border-radius);
}
.ag-theme-quartz .ag-ltr input[class^=ag-]:not([type]), .ag-theme-quartz .ag-ltr input[class^=ag-][type=text], .ag-theme-quartz .ag-ltr input[class^=ag-][type=number], .ag-theme-quartz .ag-ltr input[class^=ag-][type=tel], .ag-theme-quartz .ag-ltr input[class^=ag-][type=date], .ag-theme-quartz .ag-ltr input[class^=ag-][type=datetime-local], .ag-theme-quartz .ag-ltr textarea[class^=ag-], .ag-theme-quartz-dark .ag-ltr input[class^=ag-]:not([type]), .ag-theme-quartz-dark .ag-ltr input[class^=ag-][type=text], .ag-theme-quartz-dark .ag-ltr input[class^=ag-][type=number], .ag-theme-quartz-dark .ag-ltr input[class^=ag-][type=tel], .ag-theme-quartz-dark .ag-ltr input[class^=ag-][type=date], .ag-theme-quartz-dark .ag-ltr input[class^=ag-][type=datetime-local], .ag-theme-quartz-dark .ag-ltr textarea[class^=ag-], .ag-theme-quartz-auto-dark .ag-ltr input[class^=ag-]:not([type]), .ag-theme-quartz-auto-dark .ag-ltr input[class^=ag-][type=text], .ag-theme-quartz-auto-dark .ag-ltr input[class^=ag-][type=number], .ag-theme-quartz-auto-dark .ag-ltr input[class^=ag-][type=tel], .ag-theme-quartz-auto-dark .ag-ltr input[class^=ag-][type=date], .ag-theme-quartz-auto-dark .ag-ltr input[class^=ag-][type=datetime-local], .ag-theme-quartz-auto-dark .ag-ltr textarea[class^=ag-] {
  padding-left: var(--ag-grid-size);
}

.ag-theme-quartz .ag-rtl input[class^=ag-]:not([type]), .ag-theme-quartz .ag-rtl input[class^=ag-][type=text], .ag-theme-quartz .ag-rtl input[class^=ag-][type=number], .ag-theme-quartz .ag-rtl input[class^=ag-][type=tel], .ag-theme-quartz .ag-rtl input[class^=ag-][type=date], .ag-theme-quartz .ag-rtl input[class^=ag-][type=datetime-local], .ag-theme-quartz .ag-rtl textarea[class^=ag-], .ag-theme-quartz-dark .ag-rtl input[class^=ag-]:not([type]), .ag-theme-quartz-dark .ag-rtl input[class^=ag-][type=text], .ag-theme-quartz-dark .ag-rtl input[class^=ag-][type=number], .ag-theme-quartz-dark .ag-rtl input[class^=ag-][type=tel], .ag-theme-quartz-dark .ag-rtl input[class^=ag-][type=date], .ag-theme-quartz-dark .ag-rtl input[class^=ag-][type=datetime-local], .ag-theme-quartz-dark .ag-rtl textarea[class^=ag-], .ag-theme-quartz-auto-dark .ag-rtl input[class^=ag-]:not([type]), .ag-theme-quartz-auto-dark .ag-rtl input[class^=ag-][type=text], .ag-theme-quartz-auto-dark .ag-rtl input[class^=ag-][type=number], .ag-theme-quartz-auto-dark .ag-rtl input[class^=ag-][type=tel], .ag-theme-quartz-auto-dark .ag-rtl input[class^=ag-][type=date], .ag-theme-quartz-auto-dark .ag-rtl input[class^=ag-][type=datetime-local], .ag-theme-quartz-auto-dark .ag-rtl textarea[class^=ag-] {
  padding-right: var(--ag-grid-size);
}

.ag-theme-quartz .ag-picker-field-wrapper,
.ag-theme-quartz-dark .ag-picker-field-wrapper,
.ag-theme-quartz-auto-dark .ag-picker-field-wrapper {
  min-height: calc(var(--ag-grid-size) * 4);
}
.ag-theme-quartz .ag-tab,
.ag-theme-quartz-dark .ag-tab,
.ag-theme-quartz-auto-dark .ag-tab {
  padding: var(--ag-grid-size);
  border-left: var(--ag-borders) transparent;
  border-right: var(--ag-borders) transparent;
  flex: 1 1 auto;
}
.ag-theme-quartz .ag-tab-selected,
.ag-theme-quartz-dark .ag-tab-selected,
.ag-theme-quartz-auto-dark .ag-tab-selected {
  background-color: var(--ag-background-color);
}
.ag-theme-quartz .ag-ltr .ag-tab-selected:not(:first-of-type), .ag-theme-quartz-dark .ag-ltr .ag-tab-selected:not(:first-of-type), .ag-theme-quartz-auto-dark .ag-ltr .ag-tab-selected:not(:first-of-type) {
  border-left-color: var(--ag-border-color);
}

.ag-theme-quartz .ag-rtl .ag-tab-selected:not(:first-of-type), .ag-theme-quartz-dark .ag-rtl .ag-tab-selected:not(:first-of-type), .ag-theme-quartz-auto-dark .ag-rtl .ag-tab-selected:not(:first-of-type) {
  border-right-color: var(--ag-border-color);
}

.ag-theme-quartz .ag-ltr .ag-tab-selected:not(:last-of-type), .ag-theme-quartz-dark .ag-ltr .ag-tab-selected:not(:last-of-type), .ag-theme-quartz-auto-dark .ag-ltr .ag-tab-selected:not(:last-of-type) {
  border-right-color: var(--ag-border-color);
}

.ag-theme-quartz .ag-rtl .ag-tab-selected:not(:last-of-type), .ag-theme-quartz-dark .ag-rtl .ag-tab-selected:not(:last-of-type), .ag-theme-quartz-auto-dark .ag-rtl .ag-tab-selected:not(:last-of-type) {
  border-left-color: var(--ag-border-color);
}

.ag-theme-quartz .ag-tab:not(.ag-tab-selected),
.ag-theme-quartz-dark .ag-tab:not(.ag-tab-selected),
.ag-theme-quartz-auto-dark .ag-tab:not(.ag-tab-selected) {
  opacity: 0.7;
}
.ag-theme-quartz .ag-tab:not(.ag-tab-selected):hover,
.ag-theme-quartz-dark .ag-tab:not(.ag-tab-selected):hover,
.ag-theme-quartz-auto-dark .ag-tab:not(.ag-tab-selected):hover {
  opacity: 1;
}
.ag-theme-quartz .ag-menu,
.ag-theme-quartz-dark .ag-menu,
.ag-theme-quartz-auto-dark .ag-menu {
  color: color-mix(in srgb, transparent, var(--ag-foreground-color) 95%);
}
.ag-theme-quartz .ag-panel-content-wrapper .ag-column-select,
.ag-theme-quartz-dark .ag-panel-content-wrapper .ag-column-select,
.ag-theme-quartz-auto-dark .ag-panel-content-wrapper .ag-column-select {
  background-color: var(--ag-control-panel-background-color);
  color: color-mix(in srgb, transparent, var(--ag-foreground-color) 95%);
}
.ag-theme-quartz .ag-menu-header,
.ag-theme-quartz-dark .ag-menu-header,
.ag-theme-quartz-auto-dark .ag-menu-header {
  background-color: var(--ag-control-panel-background-color);
}
.ag-theme-quartz .ag-menu-option,
.ag-theme-quartz-dark .ag-menu-option,
.ag-theme-quartz-auto-dark .ag-menu-option {
  font-weight: 500;
  cursor: pointer;
}
.ag-theme-quartz .ag-ltr .ag-menu-option-popup-pointer .ag-icon, .ag-theme-quartz-dark .ag-ltr .ag-menu-option-popup-pointer .ag-icon, .ag-theme-quartz-auto-dark .ag-ltr .ag-menu-option-popup-pointer .ag-icon {
  text-align: right;
}

.ag-theme-quartz .ag-rtl .ag-menu-option-popup-pointer .ag-icon, .ag-theme-quartz-dark .ag-rtl .ag-menu-option-popup-pointer .ag-icon, .ag-theme-quartz-auto-dark .ag-rtl .ag-menu-option-popup-pointer .ag-icon {
  text-align: left;
}

.ag-theme-quartz .ag-tabs-header,
.ag-theme-quartz-dark .ag-tabs-header,
.ag-theme-quartz-auto-dark .ag-tabs-header {
  border-bottom: var(--ag-borders) var(--ag-border-color);
  display: flex;
  background-color: color-mix(in srgb, transparent, var(--ag-foreground-color) 5%);
}
.ag-theme-quartz .ag-side-bar,
.ag-theme-quartz-dark .ag-side-bar,
.ag-theme-quartz-auto-dark .ag-side-bar {
  background-color: var(--ag-control-panel-background-color);
  min-width: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);
}
.ag-theme-quartz .ag-side-buttons,
.ag-theme-quartz-dark .ag-side-buttons,
.ag-theme-quartz-auto-dark .ag-side-buttons {
  padding: 0;
  align-self: stretch;
  width: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);
  background: var(--ag-control-panel-background-color);
}
.ag-theme-quartz .ag-side-button,
.ag-theme-quartz-dark .ag-side-button,
.ag-theme-quartz-auto-dark .ag-side-button {
  border-top: var(--ag-borders) transparent;
  border-bottom: var(--ag-borders) transparent;
}
@media (max-resolution: 1.5x) {
  .ag-theme-quartz .ag-side-button-label,
  .ag-theme-quartz-dark .ag-side-button-label,
  .ag-theme-quartz-auto-dark .ag-side-button-label {
    font-family: "Segoe UI", var(--ag-font-family);
    transform: rotate(0.05deg);
  }
}
.ag-theme-quartz .ag-side-button.ag-selected,
.ag-theme-quartz-dark .ag-side-button.ag-selected,
.ag-theme-quartz-auto-dark .ag-side-button.ag-selected {
  border-bottom-color: var(--ag-border-color);
  background-color: var(--ag-background-color);
}
.ag-theme-quartz .ag-side-button.ag-selected:not(:first-of-type),
.ag-theme-quartz-dark .ag-side-button.ag-selected:not(:first-of-type),
.ag-theme-quartz-auto-dark .ag-side-button.ag-selected:not(:first-of-type) {
  border-top-color: var(--ag-border-color);
}
.ag-theme-quartz .ag-column-panel-column-select,
.ag-theme-quartz-dark .ag-column-panel-column-select,
.ag-theme-quartz-auto-dark .ag-column-panel-column-select {
  border-top: none;
  border-bottom: 1px solid var(--ag-secondary-border-color);
}
.ag-theme-quartz .ag-filter-toolpanel-search,
.ag-theme-quartz-dark .ag-filter-toolpanel-search,
.ag-theme-quartz-auto-dark .ag-filter-toolpanel-search {
  height: initial;
  margin-top: var(--ag-widget-container-vertical-padding);
}
.ag-theme-quartz .ag-filter-toolpanel-search-input,
.ag-theme-quartz-dark .ag-filter-toolpanel-search-input,
.ag-theme-quartz-auto-dark .ag-filter-toolpanel-search-input {
  margin: 0;
}
.ag-theme-quartz .ag-filter-apply-panel,
.ag-theme-quartz-dark .ag-filter-apply-panel,
.ag-theme-quartz-auto-dark .ag-filter-apply-panel {
  border: none;
  padding-top: var(--ag-widget-vertical-spacing);
}
.ag-theme-quartz .ag-chart-tabbed-menu-body,
.ag-theme-quartz-dark .ag-chart-tabbed-menu-body,
.ag-theme-quartz-auto-dark .ag-chart-tabbed-menu-body {
  position: relative;
}
.ag-theme-quartz .ag-chart-tabbed-menu-body::after,
.ag-theme-quartz-dark .ag-chart-tabbed-menu-body::after,
.ag-theme-quartz-auto-dark .ag-chart-tabbed-menu-body::after {
  content: "";
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  right: 0;
  height: 16px;
  background: linear-gradient(var(--ag-control-panel-background-color), transparent);
}
.ag-theme-quartz .ag-charts-settings-group-title-bar,
.ag-theme-quartz .ag-charts-data-group-title-bar,
.ag-theme-quartz .ag-charts-format-top-level-group-title-bar,
.ag-theme-quartz .ag-charts-advanced-settings-top-level-group-title-bar,
.ag-theme-quartz .ag-charts-settings-group-container,
.ag-theme-quartz-dark .ag-charts-settings-group-title-bar,
.ag-theme-quartz-dark .ag-charts-data-group-title-bar,
.ag-theme-quartz-dark .ag-charts-format-top-level-group-title-bar,
.ag-theme-quartz-dark .ag-charts-advanced-settings-top-level-group-title-bar,
.ag-theme-quartz-dark .ag-charts-settings-group-container,
.ag-theme-quartz-auto-dark .ag-charts-settings-group-title-bar,
.ag-theme-quartz-auto-dark .ag-charts-data-group-title-bar,
.ag-theme-quartz-auto-dark .ag-charts-format-top-level-group-title-bar,
.ag-theme-quartz-auto-dark .ag-charts-advanced-settings-top-level-group-title-bar,
.ag-theme-quartz-auto-dark .ag-charts-settings-group-container {
  border-top: none;
  font-weight: 500;
}
.ag-theme-quartz .ag-chart-mini-thumbnail,
.ag-theme-quartz-dark .ag-chart-mini-thumbnail,
.ag-theme-quartz-auto-dark .ag-chart-mini-thumbnail {
  background-color: var(--ag-background-color);
  margin-top: 0;
  margin-bottom: 0;
}
.ag-theme-quartz .ag-chart-settings-nav-bar,
.ag-theme-quartz-dark .ag-chart-settings-nav-bar,
.ag-theme-quartz-auto-dark .ag-chart-settings-nav-bar {
  border-top: var(--ag-borders-secondary) var(--ag-secondary-border-color);
}
.ag-theme-quartz .ag-charts-format-sub-level-group-title-bar,
.ag-theme-quartz-dark .ag-charts-format-sub-level-group-title-bar,
.ag-theme-quartz-auto-dark .ag-charts-format-sub-level-group-title-bar {
  background: none;
  font-weight: 500;
}
.ag-theme-quartz .ag-chart-data-section .ag-label:not(.ag-group-title-bar),
.ag-theme-quartz .ag-chart-format-section .ag-label:not(.ag-group-title-bar),
.ag-theme-quartz-dark .ag-chart-data-section .ag-label:not(.ag-group-title-bar),
.ag-theme-quartz-dark .ag-chart-format-section .ag-label:not(.ag-group-title-bar),
.ag-theme-quartz-auto-dark .ag-chart-data-section .ag-label:not(.ag-group-title-bar),
.ag-theme-quartz-auto-dark .ag-chart-format-section .ag-label:not(.ag-group-title-bar) {
  color: var(--ag-chart-menu-label-color);
}
.ag-theme-quartz .ag-chart-data-section .ag-label-align-top .ag-label,
.ag-theme-quartz .ag-chart-format-section .ag-label-align-top .ag-label,
.ag-theme-quartz-dark .ag-chart-data-section .ag-label-align-top .ag-label,
.ag-theme-quartz-dark .ag-chart-format-section .ag-label-align-top .ag-label,
.ag-theme-quartz-auto-dark .ag-chart-data-section .ag-label-align-top .ag-label,
.ag-theme-quartz-auto-dark .ag-chart-format-section .ag-label-align-top .ag-label {
  margin-top: calc(var(--ag-widget-vertical-spacing) * 0.5);
  margin-bottom: var(--ag-widget-vertical-spacing);
}
.ag-theme-quartz .ag-chart-data-section .ag-slider.ag-label-align-top .ag-label,
.ag-theme-quartz .ag-chart-format-section .ag-slider.ag-label-align-top .ag-label,
.ag-theme-quartz-dark .ag-chart-data-section .ag-slider.ag-label-align-top .ag-label,
.ag-theme-quartz-dark .ag-chart-format-section .ag-slider.ag-label-align-top .ag-label,
.ag-theme-quartz-auto-dark .ag-chart-data-section .ag-slider.ag-label-align-top .ag-label,
.ag-theme-quartz-auto-dark .ag-chart-format-section .ag-slider.ag-label-align-top .ag-label {
  margin-bottom: 0;
}
.ag-theme-quartz .ag-chart-data-section label,
.ag-theme-quartz .ag-chart-format-section label,
.ag-theme-quartz-dark .ag-chart-data-section label,
.ag-theme-quartz-dark .ag-chart-format-section label,
.ag-theme-quartz-auto-dark .ag-chart-data-section label,
.ag-theme-quartz-auto-dark .ag-chart-format-section label {
  display: inline-block;
}
.ag-theme-quartz .ag-chart-format-wrapper,
.ag-theme-quartz .ag-chart-data-wrapper,
.ag-theme-quartz .ag-charts-format-top-level-group,
.ag-theme-quartz .ag-charts-format-top-level-group-title-bar,
.ag-theme-quartz .ag-charts-format-top-level-group .ag-charts-format-top-level-group-container,
.ag-theme-quartz .ag-charts-format-top-level-group-item,
.ag-theme-quartz .ag-charts-format-sub-level-group,
.ag-theme-quartz .ag-charts-format-sub-level-group-title-bar,
.ag-theme-quartz .ag-charts-format-sub-level-group-container,
.ag-theme-quartz .ag-charts-format-sub-level-group-item:last-child,
.ag-theme-quartz .ag-charts-format-sub-level-group-container > *,
.ag-theme-quartz .ag-charts-data-group-title-bar,
.ag-theme-quartz .ag-charts-data-group-container,
.ag-theme-quartz .ag-charts-settings-group-title-bar,
.ag-theme-quartz .ag-charts-settings-group-container,
.ag-theme-quartz-dark .ag-chart-format-wrapper,
.ag-theme-quartz-dark .ag-chart-data-wrapper,
.ag-theme-quartz-dark .ag-charts-format-top-level-group,
.ag-theme-quartz-dark .ag-charts-format-top-level-group-title-bar,
.ag-theme-quartz-dark .ag-charts-format-top-level-group .ag-charts-format-top-level-group-container,
.ag-theme-quartz-dark .ag-charts-format-top-level-group-item,
.ag-theme-quartz-dark .ag-charts-format-sub-level-group,
.ag-theme-quartz-dark .ag-charts-format-sub-level-group-title-bar,
.ag-theme-quartz-dark .ag-charts-format-sub-level-group-container,
.ag-theme-quartz-dark .ag-charts-format-sub-level-group-item:last-child,
.ag-theme-quartz-dark .ag-charts-format-sub-level-group-container > *,
.ag-theme-quartz-dark .ag-charts-data-group-title-bar,
.ag-theme-quartz-dark .ag-charts-data-group-container,
.ag-theme-quartz-dark .ag-charts-settings-group-title-bar,
.ag-theme-quartz-dark .ag-charts-settings-group-container,
.ag-theme-quartz-auto-dark .ag-chart-format-wrapper,
.ag-theme-quartz-auto-dark .ag-chart-data-wrapper,
.ag-theme-quartz-auto-dark .ag-charts-format-top-level-group,
.ag-theme-quartz-auto-dark .ag-charts-format-top-level-group-title-bar,
.ag-theme-quartz-auto-dark .ag-charts-format-top-level-group .ag-charts-format-top-level-group-container,
.ag-theme-quartz-auto-dark .ag-charts-format-top-level-group-item,
.ag-theme-quartz-auto-dark .ag-charts-format-sub-level-group,
.ag-theme-quartz-auto-dark .ag-charts-format-sub-level-group-title-bar,
.ag-theme-quartz-auto-dark .ag-charts-format-sub-level-group-container,
.ag-theme-quartz-auto-dark .ag-charts-format-sub-level-group-item:last-child,
.ag-theme-quartz-auto-dark .ag-charts-format-sub-level-group-container > *,
.ag-theme-quartz-auto-dark .ag-charts-data-group-title-bar,
.ag-theme-quartz-auto-dark .ag-charts-data-group-container,
.ag-theme-quartz-auto-dark .ag-charts-settings-group-title-bar,
.ag-theme-quartz-auto-dark .ag-charts-settings-group-container {
  padding: 0;
  margin: 0;
}
.ag-theme-quartz .ag-charts-format-top-level-group,
.ag-theme-quartz .ag-charts-data-group,
.ag-theme-quartz-dark .ag-charts-format-top-level-group,
.ag-theme-quartz-dark .ag-charts-data-group,
.ag-theme-quartz-auto-dark .ag-charts-format-top-level-group,
.ag-theme-quartz-auto-dark .ag-charts-data-group {
  border-top: var(--ag-borders-secondary) var(--ag-secondary-border-color);
}
.ag-theme-quartz .ag-charts-format-top-level-group-title-bar,
.ag-theme-quartz .ag-charts-data-group-title-bar,
.ag-theme-quartz .ag-charts-settings-group-title-bar,
.ag-theme-quartz-dark .ag-charts-format-top-level-group-title-bar,
.ag-theme-quartz-dark .ag-charts-data-group-title-bar,
.ag-theme-quartz-dark .ag-charts-settings-group-title-bar,
.ag-theme-quartz-auto-dark .ag-charts-format-top-level-group-title-bar,
.ag-theme-quartz-auto-dark .ag-charts-data-group-title-bar,
.ag-theme-quartz-auto-dark .ag-charts-settings-group-title-bar {
  padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);
}
.ag-theme-quartz .ag-charts-format-top-level-group .ag-charts-format-top-level-group-container,
.ag-theme-quartz .ag-charts-data-group .ag-charts-data-group-container,
.ag-theme-quartz .ag-charts-settings-group .ag-charts-settings-group-container,
.ag-theme-quartz-dark .ag-charts-format-top-level-group .ag-charts-format-top-level-group-container,
.ag-theme-quartz-dark .ag-charts-data-group .ag-charts-data-group-container,
.ag-theme-quartz-dark .ag-charts-settings-group .ag-charts-settings-group-container,
.ag-theme-quartz-auto-dark .ag-charts-format-top-level-group .ag-charts-format-top-level-group-container,
.ag-theme-quartz-auto-dark .ag-charts-data-group .ag-charts-data-group-container,
.ag-theme-quartz-auto-dark .ag-charts-settings-group .ag-charts-settings-group-container {
  padding: 0 var(--ag-widget-container-horizontal-padding);
}
.ag-theme-quartz .ag-charts-format-sub-level-group-title-bar,
.ag-theme-quartz-dark .ag-charts-format-sub-level-group-title-bar,
.ag-theme-quartz-auto-dark .ag-charts-format-sub-level-group-title-bar {
  padding: var(--ag-widget-vertical-spacing) 0;
}
.ag-theme-quartz .ag-charts-format-sub-level-group-container,
.ag-theme-quartz-dark .ag-charts-format-sub-level-group-container,
.ag-theme-quartz-auto-dark .ag-charts-format-sub-level-group-container {
  padding-top: var(--ag-widget-vertical-spacing);
  padding-bottom: var(--ag-widget-container-vertical-padding);
}
.ag-theme-quartz .ag-charts-format-top-level-group-container > *,
.ag-theme-quartz .ag-charts-format-sub-level-group-container > *,
.ag-theme-quartz-dark .ag-charts-format-top-level-group-container > *,
.ag-theme-quartz-dark .ag-charts-format-sub-level-group-container > *,
.ag-theme-quartz-auto-dark .ag-charts-format-top-level-group-container > *,
.ag-theme-quartz-auto-dark .ag-charts-format-sub-level-group-container > * {
  margin-bottom: var(--ag-widget-vertical-spacing);
}
.ag-theme-quartz .ag-charts-data-group-item,
.ag-theme-quartz-dark .ag-charts-data-group-item,
.ag-theme-quartz-auto-dark .ag-charts-data-group-item {
  padding-bottom: var(--ag-widget-container-vertical-padding);
}
.ag-theme-quartz .ag-chart-settings-mini-wrapper,
.ag-theme-quartz-dark .ag-chart-settings-mini-wrapper,
.ag-theme-quartz-auto-dark .ag-chart-settings-mini-wrapper {
  padding-bottom: var(--ag-widget-container-vertical-padding);
}
.ag-theme-quartz .ag-chart-advanced-settings-section,
.ag-theme-quartz-dark .ag-chart-advanced-settings-section,
.ag-theme-quartz-auto-dark .ag-chart-advanced-settings-section {
  padding-top: var(--ag-widget-container-vertical-padding);
  padding-bottom: var(--ag-widget-container-vertical-padding);
}
.ag-theme-quartz .ag-charts-advanced-settings-top-level-group .ag-charts-advanced-settings-top-level-group-title-bar,
.ag-theme-quartz .ag-charts-advanced-settings-top-level-group .ag-charts-advanced-settings-top-level-group-container,
.ag-theme-quartz-dark .ag-charts-advanced-settings-top-level-group .ag-charts-advanced-settings-top-level-group-title-bar,
.ag-theme-quartz-dark .ag-charts-advanced-settings-top-level-group .ag-charts-advanced-settings-top-level-group-container,
.ag-theme-quartz-auto-dark .ag-charts-advanced-settings-top-level-group .ag-charts-advanced-settings-top-level-group-title-bar,
.ag-theme-quartz-auto-dark .ag-charts-advanced-settings-top-level-group .ag-charts-advanced-settings-top-level-group-container {
  padding: 0 var(--ag-widget-container-horizontal-padding);
}
.ag-theme-quartz .ag-charts-advanced-settings-top-level-group-container,
.ag-theme-quartz-dark .ag-charts-advanced-settings-top-level-group-container,
.ag-theme-quartz-auto-dark .ag-charts-advanced-settings-top-level-group-container {
  margin: 0;
}
.ag-theme-quartz .ag-charts-advanced-settings-top-level-group-item,
.ag-theme-quartz-dark .ag-charts-advanced-settings-top-level-group-item,
.ag-theme-quartz-auto-dark .ag-charts-advanced-settings-top-level-group-item {
  margin-top: calc(var(--ag-widget-vertical-spacing) * 2);
  margin-bottom: 0;
}
.ag-theme-quartz .ag-ltr .ag-group-title-bar-icon, .ag-theme-quartz-dark .ag-ltr .ag-group-title-bar-icon, .ag-theme-quartz-auto-dark .ag-ltr .ag-group-title-bar-icon {
  margin-right: var(--ag-grid-size);
}

.ag-theme-quartz .ag-rtl .ag-group-title-bar-icon, .ag-theme-quartz-dark .ag-rtl .ag-group-title-bar-icon, .ag-theme-quartz-auto-dark .ag-rtl .ag-group-title-bar-icon {
  margin-left: var(--ag-grid-size);
}

.ag-theme-quartz .ag-spectrum-color,
.ag-theme-quartz .ag-spectrum-fill,
.ag-theme-quartz-dark .ag-spectrum-color,
.ag-theme-quartz-dark .ag-spectrum-fill,
.ag-theme-quartz-auto-dark .ag-spectrum-color,
.ag-theme-quartz-auto-dark .ag-spectrum-fill {
  border-radius: var(--ag-border-radius);
}
.ag-theme-quartz .ag-spectrum-dragger,
.ag-theme-quartz-dark .ag-spectrum-dragger,
.ag-theme-quartz-auto-dark .ag-spectrum-dragger {
  border-radius: 18px;
  height: 18px;
  width: 18px;
  border: 3px solid white;
}
.ag-theme-quartz .ag-spectrum-tools,
.ag-theme-quartz-dark .ag-spectrum-tools,
.ag-theme-quartz-auto-dark .ag-spectrum-tools {
  padding-left: 0;
  padding-right: 0;
  padding-bottom: 0;
}
.ag-theme-quartz .ag-spectrum-tool,
.ag-theme-quartz-dark .ag-spectrum-tool,
.ag-theme-quartz-auto-dark .ag-spectrum-tool {
  height: 12px;
}
.ag-theme-quartz .ag-spectrum-hue-background,
.ag-theme-quartz .ag-spectrum-alpha-background,
.ag-theme-quartz-dark .ag-spectrum-hue-background,
.ag-theme-quartz-dark .ag-spectrum-alpha-background,
.ag-theme-quartz-auto-dark .ag-spectrum-hue-background,
.ag-theme-quartz-auto-dark .ag-spectrum-alpha-background {
  border-radius: 12px;
}
.ag-theme-quartz .ag-spectrum-slider,
.ag-theme-quartz-dark .ag-spectrum-slider,
.ag-theme-quartz-auto-dark .ag-spectrum-slider {
  margin-top: -15px;
  width: 18px;
  height: 18px;
  border-radius: 18px;
  border: 3px solid rgb(248, 248, 248);
}
.ag-theme-quartz .ag-recent-colors,
.ag-theme-quartz-dark .ag-recent-colors,
.ag-theme-quartz-auto-dark .ag-recent-colors {
  margin-left: var(--ag-grid-size);
  margin-right: var(--ag-grid-size);
  margin-bottom: 2px;
}
.ag-theme-quartz .ag-color-input-color,
.ag-theme-quartz .ag-color-picker-color,
.ag-theme-quartz .ag-recent-color,
.ag-theme-quartz-dark .ag-color-input-color,
.ag-theme-quartz-dark .ag-color-picker-color,
.ag-theme-quartz-dark .ag-recent-color,
.ag-theme-quartz-auto-dark .ag-color-input-color,
.ag-theme-quartz-auto-dark .ag-color-picker-color,
.ag-theme-quartz-auto-dark .ag-recent-color {
  border-radius: 4px;
}
.ag-theme-quartz .ag-recent-color,
.ag-theme-quartz-dark .ag-recent-color,
.ag-theme-quartz-auto-dark .ag-recent-color {
  border: var(--ag-borders-secondary) var(--ag-secondary-border-color);
}
.ag-theme-quartz.ag-dnd-ghost,
.ag-theme-quartz-dark.ag-dnd-ghost,
.ag-theme-quartz-auto-dark.ag-dnd-ghost {
  font-weight: 500;
}
.ag-theme-quartz .ag-standard-button,
.ag-theme-quartz-dark .ag-standard-button,
.ag-theme-quartz-auto-dark .ag-standard-button {
  font-family: inherit;
  appearance: none;
  -webkit-appearance: none;
  border-radius: var(--ag-border-radius);
  border: solid 1px var(--ag-input-border-color);
  background-color: var(--ag-background-color);
  padding: var(--ag-grid-size) calc(var(--ag-grid-size) * 2);
  cursor: pointer;
}
.ag-theme-quartz .ag-standard-button:hover,
.ag-theme-quartz-dark .ag-standard-button:hover,
.ag-theme-quartz-auto-dark .ag-standard-button:hover {
  background-color: var(--ag-row-hover-color);
}
.ag-theme-quartz .ag-standard-button:active,
.ag-theme-quartz-dark .ag-standard-button:active,
.ag-theme-quartz-auto-dark .ag-standard-button:active {
  border-color: var(--ag-active-color);
}
.ag-theme-quartz .ag-standard-button:disabled,
.ag-theme-quartz-dark .ag-standard-button:disabled,
.ag-theme-quartz-auto-dark .ag-standard-button:disabled {
  color: var(--ag-disabled-foreground-color);
  background-color: var(--ag-input-disabled-background-color);
  border-color: var(--ag-input-disabled-border-color);
}
.ag-theme-quartz .ag-column-drop-cell,
.ag-theme-quartz-dark .ag-column-drop-cell,
.ag-theme-quartz-auto-dark .ag-column-drop-cell {
  border-radius: calc(var(--ag-grid-size) * 3);
  height: calc(var(--ag-grid-size) * 3);
  padding: 0 var(--ag-grid-size);
}
.ag-theme-quartz .ag-column-drop-cell-button,
.ag-theme-quartz-dark .ag-column-drop-cell-button,
.ag-theme-quartz-auto-dark .ag-column-drop-cell-button {
  min-width: 0;
  margin: 0;
}
.ag-theme-quartz .ag-column-drop-cell-drag-handle,
.ag-theme-quartz-dark .ag-column-drop-cell-drag-handle,
.ag-theme-quartz-auto-dark .ag-column-drop-cell-drag-handle {
  margin-left: 0;
}
.ag-theme-quartz .ag-column-drop-vertical,
.ag-theme-quartz-dark .ag-column-drop-vertical,
.ag-theme-quartz-auto-dark .ag-column-drop-vertical {
  min-height: 75px;
}
.ag-theme-quartz .ag-column-drop-vertical-title-bar,
.ag-theme-quartz-dark .ag-column-drop-vertical-title-bar,
.ag-theme-quartz-auto-dark .ag-column-drop-vertical-title-bar {
  padding: var(--ag-widget-container-vertical-padding) calc(var(--ag-grid-size) * 2) 0;
}
.ag-theme-quartz .ag-ltr .ag-column-drop-vertical-icon, .ag-theme-quartz-dark .ag-ltr .ag-column-drop-vertical-icon, .ag-theme-quartz-auto-dark .ag-ltr .ag-column-drop-vertical-icon {
  margin-left: 0;
  margin-right: var(--ag-widget-horizontal-spacing);
}

.ag-theme-quartz .ag-rtl .ag-column-drop-vertical-icon, .ag-theme-quartz-dark .ag-rtl .ag-column-drop-vertical-icon, .ag-theme-quartz-auto-dark .ag-rtl .ag-column-drop-vertical-icon {
  margin-right: 0;
  margin-left: var(--ag-widget-horizontal-spacing);
}

.ag-theme-quartz .ag-column-drop-vertical-empty-message,
.ag-theme-quartz-dark .ag-column-drop-vertical-empty-message,
.ag-theme-quartz-auto-dark .ag-column-drop-vertical-empty-message {
  display: flex;
  align-items: center;
  justify-content: center;
  border: dashed 1px;
  border-color: var(--ag-border-color);
  margin: calc(var(--ag-grid-size) * 1.5) calc(var(--ag-grid-size) * 2);
  padding: calc(var(--ag-grid-size) * 2);
}
.ag-theme-quartz .ag-column-drop-empty-message,
.ag-theme-quartz-dark .ag-column-drop-empty-message,
.ag-theme-quartz-auto-dark .ag-column-drop-empty-message {
  color: var(--ag-foreground-color);
}
.ag-theme-quartz .ag-pill-select .ag-column-drop,
.ag-theme-quartz-dark .ag-pill-select .ag-column-drop,
.ag-theme-quartz-auto-dark .ag-pill-select .ag-column-drop {
  min-height: unset;
}
.ag-theme-quartz .ag-pill-select .ag-picker-field-display,
.ag-theme-quartz-dark .ag-pill-select .ag-picker-field-display,
.ag-theme-quartz-auto-dark .ag-pill-select .ag-picker-field-display {
  font-weight: 500;
  color: var(--ag-chart-menu-pill-select-button-color);
}
.ag-theme-quartz .ag-pill-select .ag-picker-field-icon .ag-icon,
.ag-theme-quartz-dark .ag-pill-select .ag-picker-field-icon .ag-icon,
.ag-theme-quartz-auto-dark .ag-pill-select .ag-picker-field-icon .ag-icon {
  color: var(--ag-chart-menu-pill-select-button-color);
}
.ag-theme-quartz .ag-status-bar,
.ag-theme-quartz-dark .ag-status-bar,
.ag-theme-quartz-auto-dark .ag-status-bar {
  font-weight: normal;
}
.ag-theme-quartz .ag-status-name-value,
.ag-theme-quartz-dark .ag-status-name-value,
.ag-theme-quartz-auto-dark .ag-status-name-value {
  padding: var(--ag-widget-container-vertical-padding) 0;
}
.ag-theme-quartz .ag-status-name-value-value,
.ag-theme-quartz .ag-paging-number,
.ag-theme-quartz .ag-paging-row-summary-panel-number,
.ag-theme-quartz-dark .ag-status-name-value-value,
.ag-theme-quartz-dark .ag-paging-number,
.ag-theme-quartz-dark .ag-paging-row-summary-panel-number,
.ag-theme-quartz-auto-dark .ag-status-name-value-value,
.ag-theme-quartz-auto-dark .ag-paging-number,
.ag-theme-quartz-auto-dark .ag-paging-row-summary-panel-number {
  font-weight: 500;
}
.ag-theme-quartz .ag-column-drop-cell-button,
.ag-theme-quartz-dark .ag-column-drop-cell-button,
.ag-theme-quartz-auto-dark .ag-column-drop-cell-button {
  opacity: 0.75;
}
.ag-theme-quartz .ag-column-drop-cell-button:hover,
.ag-theme-quartz-dark .ag-column-drop-cell-button:hover,
.ag-theme-quartz-auto-dark .ag-column-drop-cell-button:hover {
  opacity: 1;
}
.ag-theme-quartz .ag-header-cell-menu-button,
.ag-theme-quartz .ag-header-cell-filter-button,
.ag-theme-quartz .ag-panel-title-bar-button,
.ag-theme-quartz .ag-header-expand-icon,
.ag-theme-quartz .ag-column-group-icons,
.ag-theme-quartz .ag-set-filter-group-icons,
.ag-theme-quartz .ag-group-expanded .ag-icon,
.ag-theme-quartz .ag-group-contracted .ag-icon,
.ag-theme-quartz .ag-chart-settings-prev,
.ag-theme-quartz .ag-chart-settings-next,
.ag-theme-quartz .ag-group-title-bar-icon,
.ag-theme-quartz .ag-column-select-header-icon,
.ag-theme-quartz .ag-floating-filter-button-button,
.ag-theme-quartz .ag-filter-toolpanel-expand,
.ag-theme-quartz .ag-panel-title-bar-button-icon,
.ag-theme-quartz .ag-chart-menu-icon,
.ag-theme-quartz-dark .ag-header-cell-menu-button,
.ag-theme-quartz-dark .ag-header-cell-filter-button,
.ag-theme-quartz-dark .ag-panel-title-bar-button,
.ag-theme-quartz-dark .ag-header-expand-icon,
.ag-theme-quartz-dark .ag-column-group-icons,
.ag-theme-quartz-dark .ag-set-filter-group-icons,
.ag-theme-quartz-dark .ag-group-expanded .ag-icon,
.ag-theme-quartz-dark .ag-group-contracted .ag-icon,
.ag-theme-quartz-dark .ag-chart-settings-prev,
.ag-theme-quartz-dark .ag-chart-settings-next,
.ag-theme-quartz-dark .ag-group-title-bar-icon,
.ag-theme-quartz-dark .ag-column-select-header-icon,
.ag-theme-quartz-dark .ag-floating-filter-button-button,
.ag-theme-quartz-dark .ag-filter-toolpanel-expand,
.ag-theme-quartz-dark .ag-panel-title-bar-button-icon,
.ag-theme-quartz-dark .ag-chart-menu-icon,
.ag-theme-quartz-auto-dark .ag-header-cell-menu-button,
.ag-theme-quartz-auto-dark .ag-header-cell-filter-button,
.ag-theme-quartz-auto-dark .ag-panel-title-bar-button,
.ag-theme-quartz-auto-dark .ag-header-expand-icon,
.ag-theme-quartz-auto-dark .ag-column-group-icons,
.ag-theme-quartz-auto-dark .ag-set-filter-group-icons,
.ag-theme-quartz-auto-dark .ag-group-expanded .ag-icon,
.ag-theme-quartz-auto-dark .ag-group-contracted .ag-icon,
.ag-theme-quartz-auto-dark .ag-chart-settings-prev,
.ag-theme-quartz-auto-dark .ag-chart-settings-next,
.ag-theme-quartz-auto-dark .ag-group-title-bar-icon,
.ag-theme-quartz-auto-dark .ag-column-select-header-icon,
.ag-theme-quartz-auto-dark .ag-floating-filter-button-button,
.ag-theme-quartz-auto-dark .ag-filter-toolpanel-expand,
.ag-theme-quartz-auto-dark .ag-panel-title-bar-button-icon,
.ag-theme-quartz-auto-dark .ag-chart-menu-icon {
  --ag-quartz-icon-hover-color: color-mix(in srgb, transparent, var(--ag-foreground-color) 10%);
}
.ag-theme-quartz .ag-header-cell-menu-button:hover,
.ag-theme-quartz .ag-header-cell-filter-button:hover,
.ag-theme-quartz .ag-panel-title-bar-button:hover,
.ag-theme-quartz .ag-header-expand-icon:hover,
.ag-theme-quartz .ag-column-group-icons:hover,
.ag-theme-quartz .ag-set-filter-group-icons:hover,
.ag-theme-quartz .ag-group-expanded .ag-icon:hover,
.ag-theme-quartz .ag-group-contracted .ag-icon:hover,
.ag-theme-quartz .ag-chart-settings-prev:hover,
.ag-theme-quartz .ag-chart-settings-next:hover,
.ag-theme-quartz .ag-group-title-bar-icon:hover,
.ag-theme-quartz .ag-column-select-header-icon:hover,
.ag-theme-quartz .ag-floating-filter-button-button:hover,
.ag-theme-quartz .ag-filter-toolpanel-expand:hover,
.ag-theme-quartz .ag-panel-title-bar-button-icon:hover,
.ag-theme-quartz .ag-chart-menu-icon:hover,
.ag-theme-quartz-dark .ag-header-cell-menu-button:hover,
.ag-theme-quartz-dark .ag-header-cell-filter-button:hover,
.ag-theme-quartz-dark .ag-panel-title-bar-button:hover,
.ag-theme-quartz-dark .ag-header-expand-icon:hover,
.ag-theme-quartz-dark .ag-column-group-icons:hover,
.ag-theme-quartz-dark .ag-set-filter-group-icons:hover,
.ag-theme-quartz-dark .ag-group-expanded .ag-icon:hover,
.ag-theme-quartz-dark .ag-group-contracted .ag-icon:hover,
.ag-theme-quartz-dark .ag-chart-settings-prev:hover,
.ag-theme-quartz-dark .ag-chart-settings-next:hover,
.ag-theme-quartz-dark .ag-group-title-bar-icon:hover,
.ag-theme-quartz-dark .ag-column-select-header-icon:hover,
.ag-theme-quartz-dark .ag-floating-filter-button-button:hover,
.ag-theme-quartz-dark .ag-filter-toolpanel-expand:hover,
.ag-theme-quartz-dark .ag-panel-title-bar-button-icon:hover,
.ag-theme-quartz-dark .ag-chart-menu-icon:hover,
.ag-theme-quartz-auto-dark .ag-header-cell-menu-button:hover,
.ag-theme-quartz-auto-dark .ag-header-cell-filter-button:hover,
.ag-theme-quartz-auto-dark .ag-panel-title-bar-button:hover,
.ag-theme-quartz-auto-dark .ag-header-expand-icon:hover,
.ag-theme-quartz-auto-dark .ag-column-group-icons:hover,
.ag-theme-quartz-auto-dark .ag-set-filter-group-icons:hover,
.ag-theme-quartz-auto-dark .ag-group-expanded .ag-icon:hover,
.ag-theme-quartz-auto-dark .ag-group-contracted .ag-icon:hover,
.ag-theme-quartz-auto-dark .ag-chart-settings-prev:hover,
.ag-theme-quartz-auto-dark .ag-chart-settings-next:hover,
.ag-theme-quartz-auto-dark .ag-group-title-bar-icon:hover,
.ag-theme-quartz-auto-dark .ag-column-select-header-icon:hover,
.ag-theme-quartz-auto-dark .ag-floating-filter-button-button:hover,
.ag-theme-quartz-auto-dark .ag-filter-toolpanel-expand:hover,
.ag-theme-quartz-auto-dark .ag-panel-title-bar-button-icon:hover,
.ag-theme-quartz-auto-dark .ag-chart-menu-icon:hover {
  border-radius: 1px;
  background-color: var(--ag-quartz-icon-hover-color);
  box-shadow: 0 0 0 4px var(--ag-quartz-icon-hover-color);
}
.ag-theme-quartz .ag-filter-active,
.ag-theme-quartz .ag-filter-toolpanel-group-instance-header-icon,
.ag-theme-quartz .ag-filter-toolpanel-instance-header-icon,
.ag-theme-quartz-dark .ag-filter-active,
.ag-theme-quartz-dark .ag-filter-toolpanel-group-instance-header-icon,
.ag-theme-quartz-dark .ag-filter-toolpanel-instance-header-icon,
.ag-theme-quartz-auto-dark .ag-filter-active,
.ag-theme-quartz-auto-dark .ag-filter-toolpanel-group-instance-header-icon,
.ag-theme-quartz-auto-dark .ag-filter-toolpanel-instance-header-icon {
  position: relative;
}
.ag-theme-quartz .ag-filter-active::after,
.ag-theme-quartz .ag-filter-toolpanel-group-instance-header-icon::after,
.ag-theme-quartz .ag-filter-toolpanel-instance-header-icon::after,
.ag-theme-quartz-dark .ag-filter-active::after,
.ag-theme-quartz-dark .ag-filter-toolpanel-group-instance-header-icon::after,
.ag-theme-quartz-dark .ag-filter-toolpanel-instance-header-icon::after,
.ag-theme-quartz-auto-dark .ag-filter-active::after,
.ag-theme-quartz-auto-dark .ag-filter-toolpanel-group-instance-header-icon::after,
.ag-theme-quartz-auto-dark .ag-filter-toolpanel-instance-header-icon::after {
  content: "";
  position: absolute;
  width: 6px;
  height: 6px;
  top: -1px;
  right: -1px;
  border-radius: 50%;
  background-color: var(--ag-active-color);
}
.ag-theme-quartz .ag-filter-active,
.ag-theme-quartz-dark .ag-filter-active,
.ag-theme-quartz-auto-dark .ag-filter-active {
  --ag-quartz-icon-active-color: color-mix(in srgb, transparent, var(--ag-active-color) 14%);
  --ag-quartz-icon-hover-color: color-mix(in srgb, transparent, var(--ag-active-color) 28%);
  border-radius: 1px;
  background-color: var(--ag-quartz-icon-active-color);
  box-shadow: 0 0 0 4px var(--ag-quartz-icon-active-color);
}
.ag-theme-quartz .ag-filter-active .ag-icon-filter,
.ag-theme-quartz-dark .ag-filter-active .ag-icon-filter,
.ag-theme-quartz-auto-dark .ag-filter-active .ag-icon-filter {
  clip-path: path("M8,0C8,4.415 11.585,8 16,8L16,16L0,16L0,0L8,0Z");
}
.ag-theme-quartz .ag-chart-menu,
.ag-theme-quartz-dark .ag-chart-menu,
.ag-theme-quartz-auto-dark .ag-chart-menu {
  --ag-icon-size: 20px;
  background-color: color-mix(in srgb, transparent, var(--ag-background-color) 30%);
  padding: 4px 2px;
}
.ag-theme-quartz .ag-chart-menu-icon,
.ag-theme-quartz-dark .ag-chart-menu-icon,
.ag-theme-quartz-auto-dark .ag-chart-menu-icon {
  opacity: 0.8;
}
.ag-theme-quartz .ag-drag-handle,
.ag-theme-quartz-dark .ag-drag-handle,
.ag-theme-quartz-auto-dark .ag-drag-handle {
  color: var(--ag-icon-font-color);
}
.ag-theme-quartz .ag-menu-option-icon,
.ag-theme-quartz .ag-compact-menu-option-icon,
.ag-theme-quartz-dark .ag-menu-option-icon,
.ag-theme-quartz-dark .ag-compact-menu-option-icon,
.ag-theme-quartz-auto-dark .ag-menu-option-icon,
.ag-theme-quartz-auto-dark .ag-compact-menu-option-icon {
  width: var(--ag-icon-size);
  cursor: pointer;
}
.ag-theme-quartz .ag-ltr .ag-menu-option-icon, .ag-theme-quartz .ag-ltr .ag-compact-menu-option-icon, .ag-theme-quartz-dark .ag-ltr .ag-menu-option-icon, .ag-theme-quartz-dark .ag-ltr .ag-compact-menu-option-icon, .ag-theme-quartz-auto-dark .ag-ltr .ag-menu-option-icon, .ag-theme-quartz-auto-dark .ag-ltr .ag-compact-menu-option-icon {
  padding-left: calc(var(--ag-grid-size) * 1.5);
}

.ag-theme-quartz .ag-rtl .ag-menu-option-icon, .ag-theme-quartz .ag-rtl .ag-compact-menu-option-icon, .ag-theme-quartz-dark .ag-rtl .ag-menu-option-icon, .ag-theme-quartz-dark .ag-rtl .ag-compact-menu-option-icon, .ag-theme-quartz-auto-dark .ag-rtl .ag-menu-option-icon, .ag-theme-quartz-auto-dark .ag-rtl .ag-compact-menu-option-icon {
  padding-right: calc(var(--ag-grid-size) * 1.5);
}

.ag-theme-quartz .ag-chart-settings-card-item.ag-not-selected:hover,
.ag-theme-quartz-dark .ag-chart-settings-card-item.ag-not-selected:hover,
.ag-theme-quartz-auto-dark .ag-chart-settings-card-item.ag-not-selected:hover {
  opacity: 0.35;
}
.ag-theme-quartz .ag-ltr .ag-panel-title-bar-button, .ag-theme-quartz-dark .ag-ltr .ag-panel-title-bar-button, .ag-theme-quartz-auto-dark .ag-ltr .ag-panel-title-bar-button {
  margin-left: calc(var(--ag-grid-size) * 2);
  margin-right: var(--ag-grid-size);
}

.ag-theme-quartz .ag-rtl .ag-panel-title-bar-button, .ag-theme-quartz-dark .ag-rtl .ag-panel-title-bar-button, .ag-theme-quartz-auto-dark .ag-rtl .ag-panel-title-bar-button {
  margin-right: calc(var(--ag-grid-size) * 2);
  margin-left: var(--ag-grid-size);
}

.ag-theme-quartz .ag-multi-filter-group-title-bar,
.ag-theme-quartz-dark .ag-multi-filter-group-title-bar,
.ag-theme-quartz-auto-dark .ag-multi-filter-group-title-bar {
  padding: calc(var(--ag-grid-size) * 1.5) var(--ag-grid-size);
}
.ag-theme-quartz .ag-ltr .ag-filter-toolpanel-instance-body, .ag-theme-quartz-dark .ag-ltr .ag-filter-toolpanel-instance-body, .ag-theme-quartz-auto-dark .ag-ltr .ag-filter-toolpanel-instance-body {
  padding-left: var(--ag-grid-size);
}

.ag-theme-quartz .ag-rtl .ag-filter-toolpanel-instance-body, .ag-theme-quartz-dark .ag-rtl .ag-filter-toolpanel-instance-body, .ag-theme-quartz-auto-dark .ag-rtl .ag-filter-toolpanel-instance-body {
  padding-right: var(--ag-grid-size);
}

.ag-theme-quartz .ag-filter-toolpanel-instance-filter,
.ag-theme-quartz-dark .ag-filter-toolpanel-instance-filter,
.ag-theme-quartz-auto-dark .ag-filter-toolpanel-instance-filter {
  border: none;
  background-color: var(--ag-control-panel-background-color);
}
.ag-theme-quartz .ag-ltr .ag-filter-toolpanel-instance-filter, .ag-theme-quartz-dark .ag-ltr .ag-filter-toolpanel-instance-filter, .ag-theme-quartz-auto-dark .ag-ltr .ag-filter-toolpanel-instance-filter {
  margin-left: calc(var(--ag-icon-size) * 0.5);
}

.ag-theme-quartz .ag-rtl .ag-filter-toolpanel-instance-filter, .ag-theme-quartz-dark .ag-rtl .ag-filter-toolpanel-instance-filter, .ag-theme-quartz-auto-dark .ag-rtl .ag-filter-toolpanel-instance-filter {
  margin-right: calc(var(--ag-icon-size) * 0.5);
}

.ag-theme-quartz .ag-filter-toolpanel-group-level-0,
.ag-theme-quartz-dark .ag-filter-toolpanel-group-level-0,
.ag-theme-quartz-auto-dark .ag-filter-toolpanel-group-level-0 {
  border-top: none;
}
.ag-theme-quartz .ag-filter-toolpanel-header,
.ag-theme-quartz-dark .ag-filter-toolpanel-header,
.ag-theme-quartz-auto-dark .ag-filter-toolpanel-header {
  height: initial;
  padding-top: var(--ag-grid-size);
  padding-bottom: var(--ag-grid-size);
}
.ag-theme-quartz .ag-filter-toolpanel-group-item,
.ag-theme-quartz-dark .ag-filter-toolpanel-group-item,
.ag-theme-quartz-auto-dark .ag-filter-toolpanel-group-item {
  margin: 0;
}
.ag-theme-quartz .ag-layout-auto-height .ag-center-cols-viewport,
.ag-theme-quartz .ag-layout-auto-height .ag-center-cols-container,
.ag-theme-quartz .ag-layout-print .ag-center-cols-viewport,
.ag-theme-quartz .ag-layout-print .ag-center-cols-container,
.ag-theme-quartz-dark .ag-layout-auto-height .ag-center-cols-viewport,
.ag-theme-quartz-dark .ag-layout-auto-height .ag-center-cols-container,
.ag-theme-quartz-dark .ag-layout-print .ag-center-cols-viewport,
.ag-theme-quartz-dark .ag-layout-print .ag-center-cols-container,
.ag-theme-quartz-auto-dark .ag-layout-auto-height .ag-center-cols-viewport,
.ag-theme-quartz-auto-dark .ag-layout-auto-height .ag-center-cols-container,
.ag-theme-quartz-auto-dark .ag-layout-print .ag-center-cols-viewport,
.ag-theme-quartz-auto-dark .ag-layout-print .ag-center-cols-container {
  min-height: 150px;
}
.ag-theme-quartz .ag-date-time-list-page-entry-is-current,
.ag-theme-quartz-dark .ag-date-time-list-page-entry-is-current,
.ag-theme-quartz-auto-dark .ag-date-time-list-page-entry-is-current {
  background-color: var(--ag-active-color);
}
.ag-theme-quartz .ag-advanced-filter-builder-button,
.ag-theme-quartz-dark .ag-advanced-filter-builder-button,
.ag-theme-quartz-auto-dark .ag-advanced-filter-builder-button {
  padding: var(--ag-grid-size);
  font-weight: 600;
}
.ag-theme-quartz .ag-advanced-filter-builder-item-button-disabled .ag-icon,
.ag-theme-quartz .ag-disabled .ag-icon,
.ag-theme-quartz .ag-column-select-column-group-readonly .ag-icon,
.ag-theme-quartz [disabled] .ag-icon,
.ag-theme-quartz-dark .ag-advanced-filter-builder-item-button-disabled .ag-icon,
.ag-theme-quartz-dark .ag-disabled .ag-icon,
.ag-theme-quartz-dark .ag-column-select-column-group-readonly .ag-icon,
.ag-theme-quartz-dark [disabled] .ag-icon,
.ag-theme-quartz-auto-dark .ag-advanced-filter-builder-item-button-disabled .ag-icon,
.ag-theme-quartz-auto-dark .ag-disabled .ag-icon,
.ag-theme-quartz-auto-dark .ag-column-select-column-group-readonly .ag-icon,
.ag-theme-quartz-auto-dark [disabled] .ag-icon {
  opacity: 0.6;
}
.ag-theme-quartz .ag-icon-grip,
.ag-theme-quartz-dark .ag-icon-grip,
.ag-theme-quartz-auto-dark .ag-icon-grip {
  opacity: 0.7;
}
.ag-theme-quartz .ag-column-select-column-readonly.ag-icon-grip,
.ag-theme-quartz .ag-column-select-column-readonly .ag-icon-grip,
.ag-theme-quartz-dark .ag-column-select-column-readonly.ag-icon-grip,
.ag-theme-quartz-dark .ag-column-select-column-readonly .ag-icon-grip,
.ag-theme-quartz-auto-dark .ag-column-select-column-readonly.ag-icon-grip,
.ag-theme-quartz-auto-dark .ag-column-select-column-readonly .ag-icon-grip {
  opacity: 0.35;
}
.ag-theme-quartz .ag-column-select-header-filter-wrapper .ag-input-wrapper::before,
.ag-theme-quartz .ag-filter-toolpanel-search .ag-input-wrapper::before,
.ag-theme-quartz .ag-mini-filter .ag-input-wrapper::before,
.ag-theme-quartz .ag-filter-filter .ag-input-wrapper::before,
.ag-theme-quartz .ag-filter-add-select .ag-input-wrapper::before,
.ag-theme-quartz-dark .ag-column-select-header-filter-wrapper .ag-input-wrapper::before,
.ag-theme-quartz-dark .ag-filter-toolpanel-search .ag-input-wrapper::before,
.ag-theme-quartz-dark .ag-mini-filter .ag-input-wrapper::before,
.ag-theme-quartz-dark .ag-filter-filter .ag-input-wrapper::before,
.ag-theme-quartz-dark .ag-filter-add-select .ag-input-wrapper::before,
.ag-theme-quartz-auto-dark .ag-column-select-header-filter-wrapper .ag-input-wrapper::before,
.ag-theme-quartz-auto-dark .ag-filter-toolpanel-search .ag-input-wrapper::before,
.ag-theme-quartz-auto-dark .ag-mini-filter .ag-input-wrapper::before,
.ag-theme-quartz-auto-dark .ag-filter-filter .ag-input-wrapper::before,
.ag-theme-quartz-auto-dark .ag-filter-add-select .ag-input-wrapper::before {
  position: absolute;
  display: block;
  width: 12px;
  height: 12px;
  background-image: url("data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMS41Ij48cGF0aCBkPSJNNS4zIDlhMy43IDMuNyAwIDEgMCAwLTcuNSAzLjcgMy43IDAgMCAwIDAgNy41Wk0xMC41IDEwLjUgOC4zIDguMiIvPjwvc3ZnPg==");
  background-position: 50% 50%;
  background-size: contain;
  opacity: 40%;
  content: "";
  filter: var(--ag-icon-filter);
}
.ag-theme-quartz .ag-ltr .ag-column-select-header-filter-wrapper .ag-input-wrapper::before, .ag-theme-quartz .ag-ltr .ag-filter-toolpanel-search .ag-input-wrapper::before, .ag-theme-quartz .ag-ltr .ag-mini-filter .ag-input-wrapper::before, .ag-theme-quartz .ag-ltr .ag-filter-filter .ag-input-wrapper::before, .ag-theme-quartz .ag-ltr .ag-filter-add-select .ag-input-wrapper::before, .ag-theme-quartz-dark .ag-ltr .ag-column-select-header-filter-wrapper .ag-input-wrapper::before, .ag-theme-quartz-dark .ag-ltr .ag-filter-toolpanel-search .ag-input-wrapper::before, .ag-theme-quartz-dark .ag-ltr .ag-mini-filter .ag-input-wrapper::before, .ag-theme-quartz-dark .ag-ltr .ag-filter-filter .ag-input-wrapper::before, .ag-theme-quartz-dark .ag-ltr .ag-filter-add-select .ag-input-wrapper::before, .ag-theme-quartz-auto-dark .ag-ltr .ag-column-select-header-filter-wrapper .ag-input-wrapper::before, .ag-theme-quartz-auto-dark .ag-ltr .ag-filter-toolpanel-search .ag-input-wrapper::before, .ag-theme-quartz-auto-dark .ag-ltr .ag-mini-filter .ag-input-wrapper::before, .ag-theme-quartz-auto-dark .ag-ltr .ag-filter-filter .ag-input-wrapper::before, .ag-theme-quartz-auto-dark .ag-ltr .ag-filter-add-select .ag-input-wrapper::before {
  margin-left: var(--ag-grid-size);
}

.ag-theme-quartz .ag-rtl .ag-column-select-header-filter-wrapper .ag-input-wrapper::before, .ag-theme-quartz .ag-rtl .ag-filter-toolpanel-search .ag-input-wrapper::before, .ag-theme-quartz .ag-rtl .ag-mini-filter .ag-input-wrapper::before, .ag-theme-quartz .ag-rtl .ag-filter-filter .ag-input-wrapper::before, .ag-theme-quartz .ag-rtl .ag-filter-add-select .ag-input-wrapper::before, .ag-theme-quartz-dark .ag-rtl .ag-column-select-header-filter-wrapper .ag-input-wrapper::before, .ag-theme-quartz-dark .ag-rtl .ag-filter-toolpanel-search .ag-input-wrapper::before, .ag-theme-quartz-dark .ag-rtl .ag-mini-filter .ag-input-wrapper::before, .ag-theme-quartz-dark .ag-rtl .ag-filter-filter .ag-input-wrapper::before, .ag-theme-quartz-dark .ag-rtl .ag-filter-add-select .ag-input-wrapper::before, .ag-theme-quartz-auto-dark .ag-rtl .ag-column-select-header-filter-wrapper .ag-input-wrapper::before, .ag-theme-quartz-auto-dark .ag-rtl .ag-filter-toolpanel-search .ag-input-wrapper::before, .ag-theme-quartz-auto-dark .ag-rtl .ag-mini-filter .ag-input-wrapper::before, .ag-theme-quartz-auto-dark .ag-rtl .ag-filter-filter .ag-input-wrapper::before, .ag-theme-quartz-auto-dark .ag-rtl .ag-filter-add-select .ag-input-wrapper::before {
  margin-right: var(--ag-grid-size);
}

.ag-theme-quartz .ag-ltr .ag-column-select-header-filter-wrapper input.ag-text-field-input, .ag-theme-quartz .ag-ltr .ag-column-select-header-filter-wrapper input.ag-number-field-input, .ag-theme-quartz .ag-ltr .ag-filter-toolpanel-search input.ag-text-field-input, .ag-theme-quartz .ag-ltr .ag-filter-toolpanel-search input.ag-number-field-input, .ag-theme-quartz .ag-ltr .ag-mini-filter input.ag-text-field-input, .ag-theme-quartz .ag-ltr .ag-mini-filter input.ag-number-field-input, .ag-theme-quartz .ag-ltr .ag-filter-filter input.ag-text-field-input, .ag-theme-quartz .ag-ltr .ag-filter-filter input.ag-number-field-input, .ag-theme-quartz .ag-ltr .ag-filter-add-select input.ag-text-field-input, .ag-theme-quartz .ag-ltr .ag-filter-add-select input.ag-number-field-input, .ag-theme-quartz-dark .ag-ltr .ag-column-select-header-filter-wrapper input.ag-text-field-input, .ag-theme-quartz-dark .ag-ltr .ag-column-select-header-filter-wrapper input.ag-number-field-input, .ag-theme-quartz-dark .ag-ltr .ag-filter-toolpanel-search input.ag-text-field-input, .ag-theme-quartz-dark .ag-ltr .ag-filter-toolpanel-search input.ag-number-field-input, .ag-theme-quartz-dark .ag-ltr .ag-mini-filter input.ag-text-field-input, .ag-theme-quartz-dark .ag-ltr .ag-mini-filter input.ag-number-field-input, .ag-theme-quartz-dark .ag-ltr .ag-filter-filter input.ag-text-field-input, .ag-theme-quartz-dark .ag-ltr .ag-filter-filter input.ag-number-field-input, .ag-theme-quartz-dark .ag-ltr .ag-filter-add-select input.ag-text-field-input, .ag-theme-quartz-dark .ag-ltr .ag-filter-add-select input.ag-number-field-input, .ag-theme-quartz-auto-dark .ag-ltr .ag-column-select-header-filter-wrapper input.ag-text-field-input, .ag-theme-quartz-auto-dark .ag-ltr .ag-column-select-header-filter-wrapper input.ag-number-field-input, .ag-theme-quartz-auto-dark .ag-ltr .ag-filter-toolpanel-search input.ag-text-field-input, .ag-theme-quartz-auto-dark .ag-ltr .ag-filter-toolpanel-search input.ag-number-field-input, .ag-theme-quartz-auto-dark .ag-ltr .ag-mini-filter input.ag-text-field-input, .ag-theme-quartz-auto-dark .ag-ltr .ag-mini-filter input.ag-number-field-input, .ag-theme-quartz-auto-dark .ag-ltr .ag-filter-filter input.ag-text-field-input, .ag-theme-quartz-auto-dark .ag-ltr .ag-filter-filter input.ag-number-field-input, .ag-theme-quartz-auto-dark .ag-ltr .ag-filter-add-select input.ag-text-field-input, .ag-theme-quartz-auto-dark .ag-ltr .ag-filter-add-select input.ag-number-field-input {
  padding-left: 26px;
}

.ag-theme-quartz .ag-rtl .ag-column-select-header-filter-wrapper input.ag-text-field-input, .ag-theme-quartz .ag-rtl .ag-column-select-header-filter-wrapper input.ag-number-field-input, .ag-theme-quartz .ag-rtl .ag-filter-toolpanel-search input.ag-text-field-input, .ag-theme-quartz .ag-rtl .ag-filter-toolpanel-search input.ag-number-field-input, .ag-theme-quartz .ag-rtl .ag-mini-filter input.ag-text-field-input, .ag-theme-quartz .ag-rtl .ag-mini-filter input.ag-number-field-input, .ag-theme-quartz .ag-rtl .ag-filter-filter input.ag-text-field-input, .ag-theme-quartz .ag-rtl .ag-filter-filter input.ag-number-field-input, .ag-theme-quartz .ag-rtl .ag-filter-add-select input.ag-text-field-input, .ag-theme-quartz .ag-rtl .ag-filter-add-select input.ag-number-field-input, .ag-theme-quartz-dark .ag-rtl .ag-column-select-header-filter-wrapper input.ag-text-field-input, .ag-theme-quartz-dark .ag-rtl .ag-column-select-header-filter-wrapper input.ag-number-field-input, .ag-theme-quartz-dark .ag-rtl .ag-filter-toolpanel-search input.ag-text-field-input, .ag-theme-quartz-dark .ag-rtl .ag-filter-toolpanel-search input.ag-number-field-input, .ag-theme-quartz-dark .ag-rtl .ag-mini-filter input.ag-text-field-input, .ag-theme-quartz-dark .ag-rtl .ag-mini-filter input.ag-number-field-input, .ag-theme-quartz-dark .ag-rtl .ag-filter-filter input.ag-text-field-input, .ag-theme-quartz-dark .ag-rtl .ag-filter-filter input.ag-number-field-input, .ag-theme-quartz-dark .ag-rtl .ag-filter-add-select input.ag-text-field-input, .ag-theme-quartz-dark .ag-rtl .ag-filter-add-select input.ag-number-field-input, .ag-theme-quartz-auto-dark .ag-rtl .ag-column-select-header-filter-wrapper input.ag-text-field-input, .ag-theme-quartz-auto-dark .ag-rtl .ag-column-select-header-filter-wrapper input.ag-number-field-input, .ag-theme-quartz-auto-dark .ag-rtl .ag-filter-toolpanel-search input.ag-text-field-input, .ag-theme-quartz-auto-dark .ag-rtl .ag-filter-toolpanel-search input.ag-number-field-input, .ag-theme-quartz-auto-dark .ag-rtl .ag-mini-filter input.ag-text-field-input, .ag-theme-quartz-auto-dark .ag-rtl .ag-mini-filter input.ag-number-field-input, .ag-theme-quartz-auto-dark .ag-rtl .ag-filter-filter input.ag-text-field-input, .ag-theme-quartz-auto-dark .ag-rtl .ag-filter-filter input.ag-number-field-input, .ag-theme-quartz-auto-dark .ag-rtl .ag-filter-add-select input.ag-text-field-input, .ag-theme-quartz-auto-dark .ag-rtl .ag-filter-add-select input.ag-number-field-input {
  padding-right: 26px;
}

.ag-theme-quartz .ag-ltr .ag-column-select-add-group-indent, .ag-theme-quartz-dark .ag-ltr .ag-column-select-add-group-indent, .ag-theme-quartz-auto-dark .ag-ltr .ag-column-select-add-group-indent {
  margin-left: calc(var(--ag-icon-size) + var(--ag-grid-size) * 1.5);
}

.ag-theme-quartz .ag-rtl .ag-column-select-add-group-indent, .ag-theme-quartz-dark .ag-rtl .ag-column-select-add-group-indent, .ag-theme-quartz-auto-dark .ag-rtl .ag-column-select-add-group-indent {
  margin-right: calc(var(--ag-icon-size) + var(--ag-grid-size) * 1.5);
}

.ag-theme-quartz .ag-text-field-input[disabled],
.ag-theme-quartz .ag-menu-option-disabled,
.ag-theme-quartz-dark .ag-text-field-input[disabled],
.ag-theme-quartz-dark .ag-menu-option-disabled,
.ag-theme-quartz-auto-dark .ag-text-field-input[disabled],
.ag-theme-quartz-auto-dark .ag-menu-option-disabled {
  cursor: not-allowed;
}
.ag-theme-quartz .ag-checkbox-input-wrapper.ag-checked.ag-disabled,
.ag-theme-quartz-dark .ag-checkbox-input-wrapper.ag-checked.ag-disabled,
.ag-theme-quartz-auto-dark .ag-checkbox-input-wrapper.ag-checked.ag-disabled {
  --ag-checkbox-checked-color: var(--ag-checkbox-unchecked-color);
}
.ag-theme-quartz .ag-checkbox-input,
.ag-theme-quartz .ag-toggle-button-input,
.ag-theme-quartz .ag-radio-button-input,
.ag-theme-quartz input[class^=ag-][type=range],
.ag-theme-quartz-dark .ag-checkbox-input,
.ag-theme-quartz-dark .ag-toggle-button-input,
.ag-theme-quartz-dark .ag-radio-button-input,
.ag-theme-quartz-dark input[class^=ag-][type=range],
.ag-theme-quartz-auto-dark .ag-checkbox-input,
.ag-theme-quartz-auto-dark .ag-toggle-button-input,
.ag-theme-quartz-auto-dark .ag-radio-button-input,
.ag-theme-quartz-auto-dark input[class^=ag-][type=range] {
  cursor: pointer;
}
.ag-theme-quartz .ag-details-row,
.ag-theme-quartz-dark .ag-details-row,
.ag-theme-quartz-auto-dark .ag-details-row {
  padding: calc(var(--ag-grid-size) * 3.75);
}
.ag-theme-quartz .ag-list-item-hovered::after,
.ag-theme-quartz-dark .ag-list-item-hovered::after,
.ag-theme-quartz-auto-dark .ag-list-item-hovered::after {
  background-color: var(--ag-active-color);
}
.ag-theme-quartz .ag-pill .ag-pill-button:hover,
.ag-theme-quartz-dark .ag-pill .ag-pill-button:hover,
.ag-theme-quartz-auto-dark .ag-pill .ag-pill-button:hover {
  color: var(--ag-active-color);
}

.ag-theme-quartz-dark .ag-column-select-header-filter-wrapper .ag-input-wrapper::before,
.ag-theme-quartz-dark .ag-filter-toolpanel-search .ag-input-wrapper::before,
.ag-theme-quartz-dark .ag-mini-filter .ag-input-wrapper::before,
.ag-theme-quartz-dark .ag-filter-filter .ag-input-wrapper::before {
  opacity: 66%;
  filter: invert(100%);
}
.ag-theme-quartz-dark .ag-chart-menu {
  background-color: color-mix(in srgb, rgba(24, 39, 50, 0.3), var(--ag-background-color) 30%);
}
.ag-theme-quartz-dark .ag-text-field-input::placeholder {
  color: var(--ag-data-color);
  opacity: 0.8;
}

/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[6].rules[1].use[0]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].rules[1].use[1]!./src/styles.scss?ngGlobalStyle (3) ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
/* ==========================================================================
   STYLES.SCSS - SINGLE GLOBAL STYLE ENTRY POINT
   ==========================================================================

   This is the ONLY stylesheet loaded by Angular.
   All visual styles MUST be imported here in the correct order.

   IMPORT ORDER (STRICT):
   1. Foundation (tokens, reset, typography)
   2. Layout contracts (page, modal, drawer)
   3. Page variants (scoped, business-specific)
   4. Modal variants
   5. Headers & stats
   6. Controls
   7. Data display
   8. Tables (new architecture)
   9. Vendors
   10. Tailwind (gradual phase-out)
   11. Overrides (temporary only)

   RULES:
   - NO component-level CSS/SCSS files are allowed
   - All values reference tokens
   - No ad-hoc z-index, colors, or spacing

   ========================================================================== */
/* ==========================================================================
   1. FOUNDATION
   ========================================================================== */
/* ==========================================================================
   UI DESIGN TOKENS - Single Source of Truth
   ==========================================================================
   All visual values MUST reference these tokens.
   NO hardcoded colors, spacing, or z-indices outside this file.
   ========================================================================== */
:root {
  /* ========================================
     COLORS - Brand & Semantic
     ======================================== */
  /* Brand - Warm Orange */
  --ui-brand: #ff784f;
  --ui-brand-light: #ff9966;
  --ui-brand-dark: #e65a30;
  --ui-brand-glow: rgba(255, 153, 102, 0.6);
  --ui-brand-gradient: linear-gradient(135deg, #ff7043, #e94424);
  /* Surface Colors */
  --ui-surface-base: #0f1012;
  --ui-surface-1: rgba(255, 255, 255, 0.03);
  --ui-surface-2: rgba(255, 255, 255, 0.05);
  --ui-surface-3: rgba(255, 255, 255, 0.08);
  --ui-surface-hover: rgba(255, 255, 255, 0.06);
  --ui-surface-active: rgba(255, 255, 255, 0.1);
  /* Glass Surfaces */
  --ui-glass-light: linear-gradient(150deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.01));
  --ui-glass-medium: linear-gradient(145deg, rgba(35, 35, 38, 0.85), rgba(28, 28, 30, 0.9));
  --ui-glass-dark: rgba(30, 30, 32, 0.88);
  /* Text Colors */
  --ui-text-primary: #fefefe;
  --ui-text-secondary: rgba(255, 255, 255, 0.85);
  --ui-text-muted: rgba(255, 255, 255, 0.55);
  --ui-text-subtle: rgba(255, 255, 255, 0.4);
  --ui-text-disabled: rgba(255, 255, 255, 0.35);
  /* Semantic Colors */
  --ui-success: #4ade80;
  --ui-success-bg: rgba(74, 222, 128, 0.15);
  --ui-success-border: rgba(74, 222, 128, 0.4);
  --ui-warning: #fbbf24;
  --ui-warning-bg: rgba(251, 191, 36, 0.15);
  --ui-warning-border: rgba(251, 191, 36, 0.4);
  --ui-danger: #f87171;
  --ui-danger-bg: rgba(248, 113, 113, 0.18);
  --ui-danger-border: rgba(248, 113, 113, 0.4);
  --ui-info: #60a5fa;
  --ui-info-bg: rgba(96, 165, 250, 0.15);
  --ui-info-border: rgba(96, 165, 250, 0.4);
  /* Border Colors */
  --ui-border: rgba(255, 255, 255, 0.08);
  --ui-border-light: rgba(255, 255, 255, 0.06);
  --ui-border-hover: rgba(255, 255, 255, 0.12);
  --ui-border-focus: rgba(255, 130, 90, 0.5);
  /* ========================================
     SPACING SCALE
     ======================================== */
  --ui-space-1: 4px;
  --ui-space-2: 8px;
  --ui-space-3: 12px;
  --ui-space-4: 16px;
  --ui-space-5: 20px;
  --ui-space-6: 24px;
  --ui-space-8: 32px;
  --ui-space-10: 40px;
  --ui-space-12: 48px;
  /* ========================================
     BORDER RADIUS
     ======================================== */
  --ui-radius-sm: 6px;
  --ui-radius-md: 12px;
  --ui-radius-lg: 16px;
  --ui-radius-xl: 20px;
  --ui-radius-2xl: 24px;
  --ui-radius-3xl: 28px;
  --ui-radius-full: 999px;
  /* ========================================
     TYPOGRAPHY
     ======================================== */
  --ui-font-primary: "Inter", system-ui, sans-serif;
  --ui-font-display: "Montserrat", "Inter", system-ui, sans-serif;
  --ui-font-sans: var(--ui-font-primary);
  --ui-font-mono: "SF Mono", "Roboto Mono", ui-monospace, monospace;
  --ui-text-xs: 10px;
  --ui-text-sm: 12px;
  --ui-text-base: 14px;
  --ui-text-md: 16px;
  --ui-text-lg: 18px;
  --ui-text-xl: 20px;
  --ui-text-2xl: 24px;
  --ui-text-3xl: 32px;
  --ui-font-normal: 400;
  --ui-font-medium: 500;
  --ui-font-semibold: 600;
  --ui-font-bold: 700;
  /* ========================================
     Z-INDEX CONTRACT (CRITICAL)
     ======================================== 
     ALL z-index values MUST use these tokens.
     NO hardcoded z-indices allowed elsewhere.
     ======================================== */
  --z-base: 1;
  --z-dropdown: 100;
  --z-sticky: 500;
  --z-header: 900;
  --z-sidebar: 950;
  --z-drawer: 1000;
  --z-drawer-backdrop: 1000;
  --z-drawer-panel: 1001;
  --z-modal-backdrop: 1050;
  --z-modal: 1100;
  --z-modal-dropdown: 1150;
  --z-toast: 1200;
  --z-tooltip: 1300;
  /* ========================================
     SHADOWS
     ======================================== */
  --ui-shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.15);
  --ui-shadow-md: 0 8px 24px rgba(0, 0, 0, 0.25);
  --ui-shadow-lg: 0 16px 40px rgba(0, 0, 0, 0.35);
  --ui-shadow-xl: 0 24px 60px rgba(0, 0, 0, 0.45);
  --ui-shadow-glow: 0 0 20px rgba(255, 122, 61, 0.3);
  /* ========================================
     BLUR
     ======================================== */
  --ui-blur-sm: blur(8px);
  --ui-blur-md: blur(16px);
  --ui-blur-lg: blur(24px);
  --ui-blur-xl: blur(40px);
  /* ========================================
     TOOLTIP SYSTEM
     ======================================== */
  /* Dark warm orange glass - more opaque since blur may not work everywhere */
  --ui-tooltip-bg: rgba(45, 30, 25, 0.92);
  --ui-tooltip-bg-solid: rgba(45, 30, 25, 0.92); /* Solid fallback for arrows */
  --ui-tooltip-blur: blur(32px) saturate(180%);
  --ui-tooltip-border: rgba(255, 140, 90, 0.35);
  --ui-tooltip-radius: 12px;
  --ui-tooltip-padding: 10px 16px;
  --ui-tooltip-shadow: 0 8px 24px rgba(0, 0, 0, 0.4),
                       0 2px 8px rgba(0, 0, 0, 0.25);
  --ui-tooltip-color: rgba(255, 200, 170, 0.95);
  /* Permission Tooltip (Warning Variant) - red-tinted */
  --ui-tooltip-warning-bg: rgba(255, 100, 100, 0.12);
  --ui-tooltip-warning-bg-solid: rgba(255, 100, 100, 0.12);
  --ui-tooltip-warning-border: rgba(255, 100, 100, 0.3);
  --ui-tooltip-warning-glow: 0 0 16px rgba(255, 80, 80, 0.08);
  /* ========================================
     TRANSITIONS
     ======================================== */
  --ui-transition-fast: 0.15s ease;
  --ui-transition-base: 0.2s ease;
  --ui-transition-slow: 0.3s ease;
  --ui-transition-spring: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  /* ========================================
     TABLE SYSTEM
     ======================================== */
  --ui-table-header-bg: rgba(255, 255, 255, 0.06);
  --ui-table-header-color: rgba(255, 255, 255, 0.6);
  --ui-table-header-font: 11px;
  --ui-table-header-weight: 700;
  --ui-table-header-spacing: 0.1em;
  --ui-table-header-height: 60px;
  --ui-table-row-border: rgba(255, 255, 255, 0.035);
  --ui-table-row-hover: rgba(255, 130, 90, 0.06);
  --ui-table-row-hover-accent: #ff784f;
  --ui-table-row-active: rgba(255, 130, 90, 0.1);
  --ui-table-row-even: rgba(255, 255, 255, 0.015);
  --ui-table-cell-padding: 12px 10px;
  --ui-table-cell-padding-edge: 16px;
  --ui-table-cell-font: 13px;
  --ui-table-accent: #ff784f;
  --ui-table-accent-light: rgba(255, 130, 90, 0.85);
  --ui-table-accent-bg: rgba(255, 130, 90, 0.1);
  --ui-table-accent-border: rgba(255, 130, 90, 0.2);
  --ui-table-revenue: #ff6b4a;
  --ui-table-max-height: 78vh;
  --ui-table-min-width: 900px;
  --ui-table-radius: 12px;
  --ui-table-scrollbar-size: 6px;
  --ui-table-scrollbar-radius: 3px;
  /* ========================================
     DASHBOARD DENSITY SYSTEM
     ======================================== */
  --ui-dash-panel-gap: 4px;
  --ui-dash-panel-padding: 6px 8px;
  --ui-dash-card-padding: 4px 6px;
  --ui-dash-stat-padding: 4px 6px;
  --ui-dash-grid-gap: 3px;
  --ui-dash-donut-size: 56px;
  --ui-dash-chart-max-width: 280px;
  --ui-dash-glass-opacity: 0.025;
  --ui-dash-glow-opacity: 0.15;
  --ui-dash-glow-blur: 100px;
}

/* ==========================================================================
   UI RESET - Minimal CSS Reset
   ==========================================================================
   Establishes consistent baseline across browsers.
   ========================================================================== */
/* WCAG 2.4.1: Skip-to-content link — off-screen until keyboard focused */
.skip-to-content {
  position: fixed;
  top: -100%;
  left: 50%;
  transform: translateX(-50%);
  z-index: 9999;
  padding: 10px 20px;
  background: var(--ui-brand, #6366f1);
  color: #fff;
  border-radius: 0 0 8px 8px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: top 0.2s ease;
  white-space: nowrap;
}

.skip-to-content:focus {
  top: 0;
  outline: 2px solid #fff !important;
  outline-offset: 3px !important;
}

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  min-height: 100vh;
  line-height: 1.5;
}

/* Remove default list styles */
ul, ol {
  list-style: none;
}

/* Remove default link styles */
a {
  color: inherit;
  text-decoration: none;
}

/* Make images responsive (exclude AG Grid SVGs) */
img, picture, video, canvas {
  display: block;
  max-width: 100%;
}

svg:not([class*=ag-]) {
  display: block;
  max-width: 100%;
}

/* Remove built-in form typography styles */
input, button, textarea, select {
  font: inherit;
}

/* Avoid text overflows */
p, h1, h2, h3, h4, h5, h6 {
  overflow-wrap: break-word;
}

/* Remove button default styles */
button {
  background: none;
  border: none;
  cursor: pointer;
}

/* Focus visible for accessibility — WCAG 2.4.7
   !important needed because component SCSS files set outline:none on
   many interactive elements; this rule must always win for keyboard nav. */
:focus-visible {
  outline: 2px solid var(--ui-brand) !important;
  outline-offset: 2px !important;
}

/* Remove focus outline for non-keyboard navigation */
:focus:not(:focus-visible) {
  outline: none;
}

/* Scrollbar styling */
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

::-webkit-scrollbar-track {
  background: transparent;
}

::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.12);
  border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.22);
}

/* Firefox scrollbar */
* {
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.12) transparent;
}

/* ==========================================================================
   UI TYPOGRAPHY - Font Families & Base Typography
   ==========================================================================
   Uses tokens for all values.
   ========================================================================== */
/* Font imports */
/* Base typography */
html {
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-base);
  color: var(--ui-text-primary);
}

body {
  font-family: var(--ui-font-primary);
  font-style: normal;
}

/* Global font family override - matches original */
* {
  font-family: var(--ui-font-primary);
  font-style: normal;
}

/* Heading styles */
h1, .ui-h1 {
  font-family: var(--ui-font-display);
  font-size: var(--ui-text-3xl);
  font-weight: var(--ui-font-bold);
  line-height: 1.2;
  letter-spacing: 0;
}

h2, .ui-h2 {
  font-family: var(--ui-font-display);
  font-size: var(--ui-text-2xl);
  font-weight: var(--ui-font-semibold);
  line-height: 1.25;
  letter-spacing: 0;
}

h3, .ui-h3 {
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-semibold);
  line-height: 1.3;
}

h4, .ui-h4 {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-medium);
  line-height: 1.4;
}

h5, .ui-h5 {
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-medium);
  line-height: 1.4;
}

h6, .ui-h6 {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-medium);
  line-height: 1.5;
}

/* Utility classes */
.ui-text-xs {
  font-size: var(--ui-text-xs);
}

.ui-text-sm {
  font-size: var(--ui-text-sm);
}

.ui-text-base {
  font-size: var(--ui-text-base);
}

.ui-text-md {
  font-size: var(--ui-text-md);
}

.ui-text-lg {
  font-size: var(--ui-text-lg);
}

.ui-text-xl {
  font-size: var(--ui-text-xl);
}

.ui-text-2xl {
  font-size: var(--ui-text-2xl);
}

.ui-text-3xl {
  font-size: var(--ui-text-3xl);
}

.ui-text-muted {
  color: var(--ui-text-muted);
}

.ui-text-subtle {
  color: var(--ui-text-subtle);
}

.ui-text-primary {
  color: var(--ui-text-primary);
}

.ui-text-secondary {
  color: var(--ui-text-secondary);
}

.ui-text-success {
  color: var(--ui-success);
}

.ui-text-error {
  color: var(--ui-error);
}

.ui-text-warning {
  color: var(--ui-warning);
}

.ui-text-brand {
  color: var(--ui-brand);
}

.ui-text-info {
  color: var(--ui-info);
}

.ui-text-danger {
  color: var(--ui-danger);
}

.ui-font-mono {
  font-family: var(--ui-font-mono);
}

.ui-uppercase {
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.ui-label, .ui-filter-label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ui-text-muted);
}

/* ==========================================================================
   2. LAYOUT CONTRACTS
   ==========================================================================
   Selector Ownership:
   - page.scss        → .ui-page, .glass-page-shell, .glass-page-content, .glass-page-glow, .glass-page-back-link
   - modal.scss       → .glass-modal-container, .glass-modal-header, .glass-modal-body, .glass-modal-footer, .ui-modal__*
   - card.scss        → .ui-card, .glass-card, .glass-summary-card
   - drawer.scss      → .ui-drawer__*, .glass-sidenav
   - glass-drawer.scss→ .glass-drawer, .glass-drawer-*
   - glass-panel.scss → .glass-panel
   ========================================================================== */
/* ==========================================================================
   UI LAYOUT CONTRACT - APP SHELL
   ==========================================================================
   Top-level shell that owns global background and content stacking.
   Keeps legacy full-viewport backgrounds behind the console content.
   ========================================================================== */
/* Enforce fixed viewport height for independent scrolling */
html, body {
  height: 100%;
  overflow: hidden;
  overscroll-behavior: none;
}

.ui-app-shell {
  position: relative;
  height: 100%;
  width: 100%;
  background: var(--ui-surface-base);
  color: var(--ui-text-primary);
  display: flex;
  flex-direction: column;
  isolation: isolate;
  overflow: hidden;
}

.ui-app-shell__background {
  position: fixed;
  inset: 0;
  z-index: calc(var(--z-base) - 1);
  pointer-events: none;
  background: radial-gradient(ellipse 90% 85% at 50% 50%, transparent 45%, rgba(0, 0, 0, 0.6) 100%), radial-gradient(ellipse 60% 50% at 62% 40%, rgba(210, 95, 15, 0.38) 0%, rgba(180, 70, 10, 0.18) 40%, transparent 70%), radial-gradient(ellipse 55% 60% at 32% 68%, rgba(200, 85, 12, 0.28) 0%, rgba(160, 55, 5, 0.1) 45%, transparent 75%), radial-gradient(ellipse 45% 40% at 82% 15%, rgba(220, 110, 25, 0.22) 0%, rgba(200, 90, 20, 0.08) 50%, transparent 70%), radial-gradient(ellipse 70% 55% at 48% 52%, rgba(60, 25, 5, 0.35) 0%, rgba(30, 12, 2, 0.15) 50%, transparent 80%), var(--ui-surface-base);
  background-attachment: fixed;
}

.ui-app-shell__surface {
  position: relative;
  z-index: var(--z-base);
  height: 100%;
  display: flex;
  flex-direction: column;
  /* Transparent surface - allows background image to show through */
  background: transparent;
  pointer-events: auto;
  overflow: hidden;
}

.ui-app-shell__content {
  position: relative;
  height: 100%;
  display: flex;
  flex-direction: column;
  pointer-events: auto;
  overflow: hidden;
}

/* Layout host elements: rendered by Angular router as flex children of .ui-app-shell.
   They need flex: 1 + min-height: 0 to fill the container and pass height down. */
app-console-layout,
app-print-layout,
app-console-auth-layout {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* ==========================================================================
   COMMAND PALETTE CONTRACT
   ==========================================================================
   Global command/search palette launched from the console sidebar shortcut.
   Shell/backdrop must inherit from the shared modal contract.
   ========================================================================== */
app-command-palette .palette-overlay {
  align-items: flex-start;
  justify-content: center;
  padding-top: 13vh;
  isolation: isolate;
}

app-command-palette .palette-container {
  width: min(720px, 92vw);
  max-width: 92vw;
  max-height: min(72vh, 640px);
  isolation: isolate;
  will-change: transform, opacity;
  backface-visibility: hidden;
}

app-command-palette .palette-container::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(circle at 68% 38%, rgba(255, 126, 52, 0.12), transparent 44%), radial-gradient(circle at 22% 70%, rgba(255, 255, 255, 0.04), transparent 34%);
}

app-command-palette .palette-container > * {
  position: relative;
  z-index: 1;
}

app-command-palette .palette-search-row {
  gap: 10px;
  padding: 14px 18px;
}

app-command-palette .palette-search-icon {
  font-size: 20px !important;
  width: 20px !important;
  height: 20px !important;
  color: rgba(255, 140, 80, 0.6);
  flex-shrink: 0;
}

app-command-palette .palette-search {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  color: rgba(255, 255, 255, 0.92);
  font-size: 15px;
  font-family: inherit;
  letter-spacing: -0.01em;
}

app-command-palette .palette-search::placeholder {
  color: rgba(255, 255, 255, 0.3);
}

app-command-palette .palette-shortcut {
  font-size: 10px;
  padding: 2px 6px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.3);
  font-family: inherit;
  background: rgba(255, 255, 255, 0.04);
}

app-command-palette .palette-body {
  min-height: 0;
  overflow: hidden;
  padding: 12px 14px 10px;
  gap: 10px;
}

app-command-palette .palette-results {
  flex: 1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 10px;
  overflow-y: auto;
  min-height: 0;
  padding: 0 4px 4px;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 200, 150, 0.15) transparent;
}

app-command-palette .palette-results::-webkit-scrollbar {
  width: 4px;
}

app-command-palette .palette-results::-webkit-scrollbar-track {
  background: transparent;
}

app-command-palette .palette-results::-webkit-scrollbar-thumb {
  background: rgba(255, 200, 150, 0.15);
  border-radius: 4px;
}

app-command-palette .palette-section-header {
  display: flex;
  align-items: center;
  gap: 6px;
  grid-column: 1/-1;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.35);
  padding: 12px 14px 2px;
}

app-command-palette .palette-section-icon {
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
  color: rgba(255, 255, 255, 0.25);
}

app-command-palette .palette-section-icon--create {
  color: rgba(255, 140, 80, 0.45);
}

app-command-palette .palette-section-icon--navigate {
  color: rgba(99, 179, 237, 0.45);
}

app-command-palette .palette-section-icon--action {
  color: rgba(72, 187, 120, 0.45);
}

app-command-palette .palette-result {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 12px 14px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.01);
  border-radius: 16px;
  cursor: pointer;
  font: inherit;
  text-align: left;
  color: rgba(255, 255, 255, 0.75);
  transition: all 0.2s ease;
}

app-command-palette .palette-result:hover,
app-command-palette .palette-result--active {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.95);
  transform: translateX(2px);
}

app-command-palette .palette-result--active {
  background: rgba(231, 70, 48, 0.12);
  border-color: rgba(231, 70, 48, 0.65);
  box-shadow: 0 12px 28px rgba(231, 70, 48, 0.22);
}

app-command-palette .palette-result-icon {
  font-size: 20px !important;
  width: 36px !important;
  height: 36px !important;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  flex-shrink: 0;
}

app-command-palette .palette-result-icon--create {
  background: rgba(255, 140, 80, 0.12);
  color: #ff9966;
}

app-command-palette .palette-result-icon--navigate {
  background: rgba(99, 179, 237, 0.12);
  color: #63b3ed;
}

app-command-palette .palette-result-icon--action {
  background: rgba(72, 187, 120, 0.12);
  color: #48bb78;
}

app-command-palette .palette-result-text {
  display: flex;
  flex-direction: column;
  gap: 1px;
  flex: 1;
  min-width: 0;
}

app-command-palette .palette-result-label {
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

app-command-palette .palette-result-desc {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.35);
  white-space: normal;
  overflow: hidden;
  text-overflow: ellipsis;
  letter-spacing: 0.02em;
}

@media (max-width: 900px) {
  app-command-palette .palette-results {
    grid-template-columns: 1fr;
  }
}
app-command-palette .palette-pin-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: rgba(255, 255, 255, 0.15);
  cursor: pointer;
  flex-shrink: 0;
  transition: all 120ms ease;
  opacity: 0;
}

app-command-palette .palette-result:hover .palette-pin-btn,
app-command-palette .palette-result--active .palette-pin-btn {
  opacity: 1;
}

app-command-palette .palette-pin-btn:hover {
  background: rgba(255, 140, 80, 0.12);
  color: rgba(255, 170, 120, 0.7);
}

app-command-palette .palette-pin-btn mat-icon {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
}

app-command-palette .palette-pin-btn--active {
  color: rgba(255, 170, 120, 0.6) !important;
  opacity: 1 !important;
}

app-command-palette .palette-pin-btn--active:hover {
  color: rgba(255, 100, 80, 0.8) !important;
}

app-command-palette .palette-empty {
  padding: 32px 16px;
  text-align: center;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.3);
}

app-command-palette .palette-footer {
  justify-content: space-between;
  padding: 10px 16px;
}

app-command-palette .palette-hints {
  display: flex;
  align-items: center;
  gap: 16px;
}

app-command-palette .palette-powered-by {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.3);
  display: flex;
  align-items: center;
  gap: 4px;
}

app-command-palette .palette-powered-icon {
  width: 16px;
  height: 16px;
  display: block;
  object-fit: contain;
  opacity: 0.72;
  filter: sepia(1) saturate(1.45) hue-rotate(-18deg) brightness(1.02);
  flex-shrink: 0;
}

app-command-palette .palette-hint-item {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.3);
  display: flex;
  align-items: center;
  gap: 4px;
}

app-command-palette .palette-hint-item kbd {
  font-size: 10px;
  padding: 1px 5px;
  border-radius: 3px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.4);
  font-family: inherit;
}

/* ==========================================================================
   ASSIST INTEGRATION
   Suggestion chips, hybrid response preview, action mode, confidence layer
   ========================================================================== */
/* ── Assist Section Icon ── */
app-command-palette .palette-section-icon--assist {
  width: 16px !important;
  height: 16px !important;
  display: block;
  object-fit: contain;
  opacity: 0.72;
  filter: sepia(1) saturate(1.45) hue-rotate(-18deg) brightness(1.02);
  flex-shrink: 0;
}

/* ── Suggestion Chips (Empty State) ── */
app-command-palette .palette-assist-suggestions {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 0 2px 10px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

app-command-palette .palette-assist-suggestions .palette-section-header {
  flex-shrink: 0;
  padding: 0;
}

app-command-palette .palette-assist-chips {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  overflow-x: auto;
  padding: 0;
  scrollbar-width: none;
}

app-command-palette .palette-assist-chips::-webkit-scrollbar {
  display: none;
}

@keyframes palette-chip-enter {
  0% {
    opacity: 0;
    transform: translateY(8px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
app-command-palette .palette-assist-chip {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  padding: 5px 12px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.2;
  white-space: nowrap;
  color: rgba(255, 255, 255, 0.65);
  background: rgba(255, 140, 80, 0.06);
  border: 1px solid rgba(255, 140, 80, 0.15);
  border-radius: 999px;
  cursor: pointer;
  transition: all 150ms ease;
  animation: palette-chip-enter 0.3s ease-out both;
  font-family: inherit;
}

app-command-palette .palette-assist-chip:hover {
  background: rgba(255, 140, 80, 0.14);
  border-color: rgba(255, 140, 80, 0.3);
  color: rgba(255, 255, 255, 0.9);
  transform: translateY(-1px);
}

app-command-palette .palette-assist-chip:active {
  transform: translateY(0);
}

/* ── Assist Response Section ── */
app-command-palette .palette-assist-section {
  padding: 4px 14px 8px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  margin-top: 4px;
}

app-command-palette .palette-assist-response {
  padding: 10px 14px;
  background: rgba(255, 255, 255, 0.03);
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  margin: 8px 0;
}

app-command-palette .palette-assist-response-text {
  font-size: 13.5px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.75);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Confidence layer — builds trust */
app-command-palette .palette-assist-confidence {
  display: block;
  margin-top: 8px;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.25);
}

/* ── Generating State ── */
@keyframes palette-dot-pulse {
  0%, 80%, 100% {
    opacity: 0.3;
    transform: scale(0.8);
  }
  40% {
    opacity: 1;
    transform: scale(1);
  }
}
app-command-palette .palette-assist-generating {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 16px 14px;
}

app-command-palette .palette-assist-dots {
  display: flex;
  gap: 6px;
}

app-command-palette .palette-assist-dot {
  width: 6px;
  height: 6px;
  background: rgba(255, 140, 80, 0.7);
  border-radius: 50%;
  animation: palette-dot-pulse 1.4s ease-in-out infinite;
}

app-command-palette .palette-assist-dot:nth-child(2) {
  animation-delay: 0.2s;
}

app-command-palette .palette-assist-dot:nth-child(3) {
  animation-delay: 0.4s;
}

app-command-palette .palette-assist-generating-label {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.3);
  letter-spacing: 0.02em;
}

/* ── CTA Button — now replaced by compact icon, keep for legacy safety ── */
app-command-palette .palette-assist-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  padding: 8px 14px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: rgba(255, 140, 80, 0.8);
  background: transparent;
  border: none;
  border-top: 1px solid rgba(255, 255, 255, 0.04);
  cursor: pointer;
  font-family: inherit;
  transition: all 150ms ease;
}

app-command-palette .palette-assist-cta:hover {
  color: rgb(255, 140, 80);
  background: rgba(255, 140, 80, 0.06);
}

app-command-palette .palette-assist-cta i {
  font-size: 14px;
  transition: transform 150ms ease;
}

app-command-palette .palette-assist-cta:hover i {
  transform: translateX(3px);
}

/* ── Response footer: confidence + open icon ── */
app-command-palette .palette-assist-response-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 8px;
}

/* ── Compact open-in-sidebar icon button ── */
app-command-palette .palette-assist-open-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 8px;
  border: 1px solid rgba(255, 140, 80, 0.2);
  background: rgba(255, 140, 80, 0.06);
  color: rgba(255, 140, 80, 0.7);
  cursor: pointer;
  transition: all 150ms ease;
  flex-shrink: 0;
}

app-command-palette .palette-assist-open-btn:hover {
  background: rgba(255, 140, 80, 0.15);
  border-color: rgba(255, 140, 80, 0.4);
  color: rgb(255, 140, 80);
  transform: scale(1.05);
}

app-command-palette .palette-assist-open-btn i {
  font-size: 13px;
  line-height: 1;
}

/* ── Action Mode ── */
app-command-palette .palette-action-section {
  padding: 4px 14px 8px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  margin-top: 4px;
}

app-command-palette .palette-action-preview {
  padding: 10px 14px;
  background: rgba(72, 187, 120, 0.06);
  border: 1px solid rgba(72, 187, 120, 0.15);
  border-radius: 12px;
  margin: 8px 0;
}

app-command-palette .palette-action-text {
  font-size: 14px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.88);
  margin: 0 0 4px;
  text-transform: capitalize;
}

app-command-palette .palette-action-hint {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.35);
}

/* ==========================================================================
   UI LAYOUT CONTRACT - CONSOLE HEADER
   ==========================================================================
   Visual contract for the console header/topbar.
   Owns all header layout, glass styling, search, and breadcrumbs.
   ========================================================================== */
/* ==========================================================================
   TOP BAR / HEADER VISUAL CONTRACT
   ========================================================================== */
app-console-header {
  display: block;
  --console-search-backdrop-z: calc(var(--z-tooltip) + 9000);
  --console-search-shell-z: calc(var(--z-tooltip) + 9001);
  --console-search-surface-z: calc(var(--z-tooltip) + 9002);
}

/* Main topbar container - targets actual class in HTML */
.navbar-custom.careager-topbar {
  position: relative;
  z-index: var(--z-header);
  /* Full width, no side margins (matches old fixed behavior within flex parent) */
  margin: 0;
  padding: 0 12px;
  /* Fixed height from backup */
  height: 44px;
  /* No border radius - flush design */
  border-radius: 0;
  background: rgba(0, 0, 0, 0.35);
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
}

.careager-topbar__inner {
  display: flex !important;
  align-items: center;
  width: 100%;
  height: 100%;
  max-width: 100%;
  gap: 8px;
  overflow: visible;
  justify-content: flex-start !important;
  box-sizing: border-box;
}

.topbar-logo {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  margin-right: 12px;
  gap: 12px;
  cursor: pointer;
  transition: opacity 0.2s ease;
}

.topbar-logo:hover {
  opacity: 0.8;
}

.topbar-logo .autroid-logo {
  height: 28px;
  width: 28px;
  display: block;
  object-fit: contain;
  border-radius: 6px;
  filter: drop-shadow(0 2px 10px rgba(255, 120, 79, 0.4));
}

.topbar-logo .brand-text-group {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
}

.topbar-logo .autroid-title {
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #f4f4f5;
  line-height: 1;
}

.topbar-logo .autroid-subtitle {
  font-weight: 500;
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #8b8b95;
  line-height: 1;
}

.topbar-logo .autroid-divider {
  display: block;
  width: 1px;
  height: 24px;
  background: rgba(255, 255, 255, 0.12);
  margin-left: 12px;
  margin-right: 0;
  flex-shrink: 0;
  align-self: center;
}

/* ==========================================================================
   PHASE 9: CORPORATE MODE BADGE
   ==========================================================================
   Gold-accented badge shown between logo and breadcrumbs when in GROUP mode.
   ========================================================================== */
.topbar-corporate-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 28px;
  padding: 0 12px;
  margin-right: 8px;
  border-radius: 999px;
  border: 1px solid rgba(212, 175, 55, 0.35);
  background: linear-gradient(135deg, rgba(212, 175, 55, 0.15), rgba(255, 215, 0, 0.08));
  box-shadow: 0 0 12px rgba(212, 175, 55, 0.1);
  flex-shrink: 0;
  animation: corporateBadgeFadeIn 0.3s ease;
}

@keyframes corporateBadgeFadeIn {
  from {
    opacity: 0;
    transform: scale(0.95);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
.corporate-badge__icon {
  font-size: 13px;
  line-height: 1;
}

.corporate-badge__text {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #d4af37;
  text-transform: uppercase;
}

.corporate-badge__group {
  font-size: 11px;
  font-weight: 500;
  color: rgba(212, 175, 55, 0.7);
  max-width: 120px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.topbar-cluster--left {
  flex: 0 1 auto;
  min-width: 0;
  flex-shrink: 1;
  margin-right: auto;
}

.topbar-center {
  display: flex;
  justify-content: flex-start;
  min-width: 120px;
  max-width: 380px;
  flex: 1 1 auto;
  overflow: visible;
  margin-right: 0;
  margin-left: 8px;
  order: 2;
}

.topbar-cluster--right {
  display: flex !important;
  align-items: center !important;
  gap: 4px !important;
  flex-wrap: nowrap !important;
  flex: 0 0 auto !important;
  flex-shrink: 0 !important;
  overflow: visible !important;
  order: 3 !important;
}

.topbar-search {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 380px;
  height: 32px;
  padding: 0 6px;
  gap: 3px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.05);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12), 0 12px 32px rgba(0, 0, 0, 0.45);
}

.topbar-search__button {
  width: 24px;
  height: 24px;
  border: none;
  background: transparent;
  color: #f5f7fb;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  cursor: pointer;
}

.topbar-search__input {
  flex: 1;
  height: 100%;
  background: transparent;
  border: none;
  color: #f1f4f9;
  font-size: 12px;
  font-weight: 400;
  outline: none;
}

.topbar-search__input::placeholder {
  color: rgba(255, 255, 255, 0.75);
  transition: opacity 0.3s ease;
}

.topbar-search__input:focus::placeholder {
  opacity: 0.3;
}

.topbar-search__button {
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.6);
  cursor: pointer;
  padding: 0;
  margin-right: 8px;
}

.topbar-icon-button {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(32, 32, 32, 0.45);
  color: #f5f7fb;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  cursor: pointer;
  transition: border-color 0.2s ease, transform 0.2s ease;
  flex-shrink: 0;
}

.topbar-icon-button:hover {
  border-color: rgba(255, 255, 255, 0.32);
  transform: translateY(-1px);
}

.topbar-icon-button i {
  font-size: 14px;
}

.topbar-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 32px;
  padding: 0 8px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.04);
  color: #f5f7fb;
  font-size: 10px;
  letter-spacing: 0.02em;
  font-weight: 500;
  gap: 3px;
  cursor: pointer;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  white-space: nowrap;
  flex-shrink: 1;
  min-width: 0;
}

.topbar-chip:hover {
  border-color: rgba(255, 255, 255, 0.32);
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.35);
}

.topbar-chip--branch {
  padding-left: 0 !important;
  padding-right: 12px !important;
  overflow: hidden;
}

.topbar-chip--branch img {
  margin-left: 0 !important;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
  width: 28px;
  height: 28px;
  border-radius: 50%;
  object-fit: cover;
}

.topbar-chip--status {
  padding-right: 12px;
}

/* ==========================================================================
   ADVISOR CHIP & SUMMARY CARD - UI CONTRACT
   ==========================================================================
   Dropdown card for advisor progress/stats from top bar.
   ========================================================================== */
/* Advisor Chip Trigger */
.topbar-chip--advisor {
  padding-left: 2px;
  padding-right: 10px;
  gap: 6px;
}

.advisor-chip-avatar {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(255, 140, 80, 0.35), rgba(255, 100, 50, 0.25));
  border: 1px solid rgba(255, 140, 80, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.advisor-chip-letter {
  font-size: 11px;
  font-weight: 700;
  color: #ffb083;
  text-transform: uppercase;
}

.advisor-chip-name {
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.9);
  max-width: 100px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.advisor-chip-icon {
  font-size: 16px;
  color: rgba(255, 255, 255, 0.6);
  transition: transform 0.2s ease;
}

.topbar-chip--advisor:hover .advisor-chip-icon {
  transform: rotate(180deg);
}

/* Advisor Dropdown Wrapper */
.topbar-advisor {
  position: relative;
}

/* Advisor Summary Backdrop - same as settings-dropdown-backdrop */
.advisor-summary-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.05);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  z-index: var(--z-dropdown);
  pointer-events: auto;
  margin: 0;
  padding: 0;
  border: none;
}

/* Advisor Summary Card - uses UI tokens */
.advisor-summary-card {
  position: absolute;
  top: calc(100% + var(--ui-space-2));
  right: 0;
  width: 280px;
  z-index: calc(var(--z-dropdown) + 1);
  /* Glass Background - uses UI contract tokens */
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-2xl);
  background: var(--ui-glass-light);
  backdrop-filter: var(--ui-blur-xl);
  -webkit-backdrop-filter: var(--ui-blur-xl);
  border: 1px solid var(--ui-border-hover);
  box-shadow: var(--ui-shadow-xl);
  animation: advisorCardFadeIn var(--ui-transition-base);
}

@keyframes advisorCardFadeIn {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* Advisor Header */
.advisor-header {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
}

.advisor-avatar {
  width: var(--ui-space-10);
  height: var(--ui-space-10);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
  border: 2px solid var(--ui-brand-light);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-bold);
  color: var(--ui-brand-light);
  text-transform: uppercase;
  flex-shrink: 0;
}

.advisor-identity {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
}

.advisor-name {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.advisor-role {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-muted);
}

.advisor-close {
  width: var(--ui-space-6);
  height: var(--ui-space-6);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border);
  color: var(--ui-text-muted);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: var(--ui-transition-base);
  flex-shrink: 0;
}

.advisor-close:hover {
  background: var(--ui-surface-3);
  color: var(--ui-text-primary);
}

/* Advisor Stats Row */
.advisor-stats {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--ui-space-3);
  background: var(--ui-surface-1);
  border-radius: var(--ui-radius-md);
  border: 1px solid var(--ui-border-light);
}

.advisor-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ui-space-1);
  flex: 1;
}

.stat-value {
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
}

.stat-value--accent {
  color: var(--ui-success);
}

.stat-label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.stat-divider {
  width: 1px;
  height: var(--ui-space-6);
  background: var(--ui-border);
  flex-shrink: 0;
}

/* Stats block wrapper — holds period label + stats row */
.advisor-stats-block {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

/* "This Month" period indicator */
.advisor-stats-period {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 0 2px;
}

/* Pulsing green dot for "live / current month" */
.stats-period-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ui-success);
  flex-shrink: 0;
  animation: periodDotPulse 2.4s ease-in-out infinite;
}

@keyframes periodDotPulse {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.45;
    transform: scale(0.75);
  }
}
/* Month picker chip button */
.stats-month-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  transition: color var(--ui-transition-fast);
}

.stats-month-chip:hover {
  color: var(--ui-text-secondary);
}

.stats-month-chevron {
  font-size: 12px;
  transition: transform 0.2s ease;
}

.stats-month-chevron.rotated {
  transform: rotate(180deg);
}

/* Month picker dropdown */
.stats-month-dropdown {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  min-width: 130px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: var(--ui-space-2);
  background: var(--ui-glass-light);
  backdrop-filter: var(--ui-blur-xl);
  -webkit-backdrop-filter: var(--ui-blur-xl);
  border: 1px solid var(--ui-border-hover);
  border-radius: var(--ui-radius-md);
  box-shadow: var(--ui-shadow-xl);
  z-index: 999;
  animation: advisorCardFadeIn 0.15s ease;
}

.stats-month-option {
  display: block;
  width: 100%;
  text-align: left;
  padding: 6px var(--ui-space-2);
  border: none;
  background: transparent;
  border-radius: var(--ui-radius-sm);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-secondary);
  cursor: pointer;
  transition: background var(--ui-transition-fast), color var(--ui-transition-fast);
}

.stats-month-option:hover {
  background: var(--ui-surface-2);
  color: var(--ui-text-primary);
}

.stats-month-option.active {
  color: var(--ui-brand-light);
  font-weight: var(--ui-font-semibold);
}

/* Advisor Primary Action Button */
.advisor-action.pill-btn-primary {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-2);
  height: var(--ui-space-10);
  padding: 0 var(--ui-space-4);
  border-radius: var(--ui-radius-full);
  border: none;
  background: var(--ui-brand-gradient);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: var(--ui-transition-base);
  box-shadow: var(--ui-shadow-glow);
}

.advisor-action.pill-btn-primary:hover {
  transform: translateY(-1px);
  box-shadow: var(--ui-shadow-md);
}

.advisor-action.pill-btn-primary .mdi {
  font-size: var(--ui-text-md);
}

/* Advisor Status Section */
.advisor-status-section {
  padding-top: var(--ui-space-3);
  border-top: 1px solid var(--ui-border-light);
}

.advisor-status-section.is-inactive {
  padding-top: var(--ui-space-2);
}

.status-info {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin-bottom: var(--ui-space-2);
}

.status-info--inactive {
  opacity: 0.8;
}

.status-icon {
  width: var(--ui-space-6);
  height: var(--ui-space-6);
  border-radius: var(--ui-radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--ui-text-base);
}

.status-icon--inactive {
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
}

.status-label {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-secondary);
}

.status-label--inactive {
  color: var(--ui-warning);
}

/* Status Toggle Buttons */
.status-toggle {
  display: flex;
  gap: var(--ui-space-2);
}

.toggle-btn {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-1);
  height: 36px;
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: var(--ui-transition-base);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-2);
  color: var(--ui-text-muted);
}

.toggle-btn .mdi {
  font-size: var(--ui-text-base);
}

.toggle-btn:hover {
  background: var(--ui-surface-3);
  border-color: var(--ui-border-hover);
  color: var(--ui-text-secondary);
}

.toggle-btn--active-state.is-active {
  background: linear-gradient(135deg, rgba(77, 251, 168, 0.25), rgba(53, 213, 105, 0.2));
  border-color: rgba(77, 251, 168, 0.5);
  color: #4dfba8;
  box-shadow: 0 2px 8px rgba(77, 251, 168, 0.2);
}

.toggle-btn--inactive-state.is-active {
  background: linear-gradient(135deg, rgba(255, 180, 130, 0.25), rgba(255, 130, 80, 0.2));
  border-color: rgba(255, 180, 130, 0.5);
  color: #ffb083;
  box-shadow: 0 2px 8px rgba(255, 130, 80, 0.2);
}

.badge {
  position: absolute;
  top: -4px;
  right: -2px;
  min-width: 18px;
  height: 18px;
  padding: 0 6px;
  border-radius: 999px;
  background: #e74630;
  color: #fff;
  font-size: 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.topbar-icon-button .badge {
  pointer-events: none;
}

/* ==========================================================================
   BREADCRUMBS VISUAL CONTRACT
   ========================================================================== */
.topbar-breadcrumbs {
  min-width: 0;
  flex: 1;
  display: flex;
  align-items: center;
}

.topbar-breadcrumbs .premium-breadcrumbs {
  width: 100%;
  padding: 4px 14px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.09);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), inset 0 0 12px rgba(255, 255, 255, 0.02);
}

.premium-breadcrumbs {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.6);
}

.breadcrumbs {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 8px;
}

.breadcrumb-item {
  display: flex;
  align-items: center;
  white-space: nowrap;
}

.breadcrumb-separator {
  color: rgba(255, 255, 255, 0.4);
  font-size: 14px;
}

.breadcrumb-link {
  color: rgba(255, 255, 255, 0.7);
  text-decoration: none;
  transition: color 0.2s;
}

.breadcrumb-link:hover {
  color: #fff;
}

.breadcrumb-item--active .breadcrumb-label {
  color: #fff;
  font-weight: 500;
}

.breadcrumb-label--placeholder {
  opacity: 0.5;
}

/* Measurement list must be invisible/out of flow but measurable */
.breadcrumbs--measurement {
  position: absolute;
  visibility: hidden;
  height: 0;
  overflow: hidden;
  pointer-events: none;
}

/* ==========================================================================
   SETTINGS DROPDOWN BACKDROP - Full Page Blur Overlay
   ==========================================================================
   Triggered by body:has(.topbar-settings.show) using :has() selector
   ========================================================================== */
.settings-dropdown-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.05);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  z-index: 10001;
  pointer-events: auto;
  opacity: 0;
  transition: opacity 0.2s ease-out;
  display: none;
  margin: 0;
  padding: 0;
  border: none;
}

/* Show backdrop when dropdown is open */
body.settings-dropdown-open .settings-dropdown-backdrop {
  display: block;
  opacity: 1;
}

/* Alternative: Show backdrop when Bootstrap dropdown is shown */
body:has(.topbar-settings.show) .settings-dropdown-backdrop {
  display: block;
  opacity: 1;
}

/* Block body scroll when dropdown is open */
body:has(.topbar-settings.show) {
  overflow: hidden;
}

/* Ensure sidebar is behind backdrop when dropdown is open - apply blur directly since backdrop-filter won't affect it */
body:has(.topbar-settings.show) .left-side-menu,
body:has(.topbar-settings.show) .left-side-menu.glass-sidebar {
  z-index: 1 !important;
  pointer-events: none !important;
  filter: blur(8px) !important;
  opacity: 0.7 !important;
}

/* Ensure the ENTIRE TOPBAR (including dropdown inside) is above the backdrop when dropdown is open */
body:has(.topbar-settings.show) .careager-topbar,
body:has(.topbar-settings.show) .navbar-custom.careager-topbar {
  z-index: 10001 !important;
}

/* ==========================================================================
   PROFILE DROPDOWN (Settings Dropdown) - UI-DROPDOWN CONTRACT
   ==========================================================================
   Contract-driven visibility states for console header dropdowns.
   Uses .ui-dropdown pattern. Both hidden and visible states are explicit.
   ========================================================================== */
/* Default state: hidden */
.topbar-settings .dropdown-menu.profile-dropdown.ui-dropdown {
  display: none;
  /* Glass background */
  background: linear-gradient(145deg, rgba(60, 50, 45, 0.25), rgba(40, 35, 30, 0.35));
  backdrop-filter: blur(60px) saturate(100%) brightness(1);
  -webkit-backdrop-filter: blur(60px) saturate(100%) brightness(1);
  /* Border and shadow */
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 24px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.35), 0 16px 48px rgba(0, 0, 0, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.12);
  /* Spacing */
  padding: 8px;
  min-width: 240px;
  margin-top: 8px;
  white-space: nowrap;
  /* Ensure dropdown is above backdrop */
  z-index: 10000;
  position: absolute;
}

/* Visible state: when Bootstrap adds .show to wrapper or to dropdown-menu */
.topbar-settings.show .dropdown-menu.profile-dropdown.ui-dropdown,
.topbar-settings .dropdown-menu.profile-dropdown.ui-dropdown.show {
  display: block;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

/* Dropdown item base styles */
.topbar-settings .dropdown-menu.profile-dropdown.ui-dropdown .dropdown-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  margin: 2px 0;
  border-radius: 16px;
  background: transparent;
  color: rgba(255, 255, 255, 0.85);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.01em;
  transition: all 0.2s ease;
  border: 1px solid transparent;
  min-height: 44px;
  text-decoration: none;
}

/* Dropdown item icon styling */
.topbar-settings .dropdown-menu.profile-dropdown.ui-dropdown .dropdown-item i {
  color: rgba(255, 180, 130, 0.8);
  font-size: 16px;
  width: 20px;
  text-align: center;
  transition: color 0.2s ease;
}

/* Dropdown item hover effect */
.topbar-settings .dropdown-menu.profile-dropdown.ui-dropdown .dropdown-item:hover {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.04));
  border-color: rgba(255, 140, 80, 0.35);
  color: #ffffff;
  transform: translateX(2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15), 0 2px 4px rgba(255, 140, 80, 0.1);
}

/* Hover icon enhancement */
.topbar-settings .dropdown-menu.profile-dropdown.ui-dropdown .dropdown-item:hover i {
  color: #ffb083;
}

/* Dropdown item active/focus state */
.topbar-settings .dropdown-menu.profile-dropdown.ui-dropdown .dropdown-item:active,
.topbar-settings .dropdown-menu.profile-dropdown.ui-dropdown .dropdown-item:focus {
  background: rgba(255, 140, 80, 0.18);
  border-color: rgba(255, 140, 80, 0.45);
  color: #ffb083;
  outline: none;
}

/* Dropdown divider styling */
.topbar-settings .dropdown-menu.profile-dropdown.ui-dropdown .dropdown-divider {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  margin: 8px 12px;
}

/* Footer info (version, legal links) */
.topbar-settings .dropdown-menu.profile-dropdown.ui-dropdown .dropdown-footer-info {
  padding: 2px 16px;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.35);
  text-align: center;
  letter-spacing: 0.02em;
  -webkit-user-select: none;
          user-select: none;
}

/* Copyright line — more prominent */
.topbar-settings .dropdown-menu.profile-dropdown.ui-dropdown .dropdown-copyright {
  padding-top: 8px;
  font-size: 11.5px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.85);
  letter-spacing: 0.03em;
}

/* T&C line — subtle & smaller */
.topbar-settings .dropdown-menu.profile-dropdown.ui-dropdown .dropdown-footer-info + .dropdown-footer-info {
  padding-bottom: 10px;
  font-size: 9.5px;
}

.topbar-settings .dropdown-menu.profile-dropdown.ui-dropdown .dropdown-footer-info a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease;
}

.topbar-settings .dropdown-menu.profile-dropdown.ui-dropdown .dropdown-footer-info a:hover {
  color: rgba(255, 255, 255, 0.85);
  text-decoration: underline;
}

/* ==========================================================================
   LANGUAGE DROPDOWN - GLASS UI CONTRACT
   ========================================================================== */
.language-selector .language-dropdown {
  /* Glass background */
  position: absolute;
  top: 100%;
  right: 0;
  margin-top: 8px;
  background: linear-gradient(145deg, rgba(60, 50, 45, 0.25), rgba(40, 35, 30, 0.35));
  backdrop-filter: blur(60px) saturate(100%) brightness(1);
  -webkit-backdrop-filter: blur(60px) saturate(100%) brightness(1);
  /* Border and shadow */
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 16px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.35), 0 16px 48px rgba(0, 0, 0, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.12);
  /* Spacing */
  padding: 6px;
  min-width: 120px;
  z-index: 1000;
}

/* Language option base styles */
.language-selector .language-option {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 10px 14px;
  border-radius: 12px;
  background: transparent;
  border: 1px solid transparent;
  color: rgba(255, 255, 255, 0.85);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  text-align: left;
}

/* Language option checkmark */
.language-selector .language-option__check {
  opacity: 0;
  color: #ff8c50;
  font-size: 14px;
  transition: opacity 0.2s ease;
}

.language-selector .language-option.is-active .language-option__check {
  opacity: 1;
}

/* Language option hover */
.language-selector .language-option:hover {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.04));
  border-color: rgba(255, 140, 80, 0.35);
  color: #ffffff;
  transform: translateX(2px);
}

/* Language option active/selected */
.language-selector .language-option.is-active {
  background: rgba(255, 140, 80, 0.15);
  border-color: rgba(255, 140, 80, 0.4);
  color: #ffffff;
}

/* ==========================================================================
   SEARCH DROPDOWN VISUAL CONTRACT
   ========================================================================== */
/* Search Dropdown Backdrop */
.search-dropdown-backdrop {
  position: fixed;
  top: 44px;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100vw;
  height: calc(100vh - 44px);
  background: rgba(0, 0, 0, 0.05);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  z-index: var(--console-search-backdrop-z);
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.2s ease-out;
  display: none;
  margin: 0;
  padding: 0;
  border: none;
}

body.search-dropdown-open .search-dropdown-backdrop {
  display: block;
  opacity: 1;
  pointer-events: auto;
}

body.search-dropdown-open {
  overflow: hidden;
  overscroll-behavior: none;
}

/* Push sidebar behind backdrop when search is open */
body.search-dropdown-open .left-side-menu,
body.search-dropdown-open .left-side-menu.glass-sidebar {
  z-index: 1 !important;
  pointer-events: none !important;
  filter: blur(8px) !important;
  opacity: 0.7 !important;
}

/* Freeze main console scrolling and interactions while search is open */
body.search-dropdown-open .console-content {
  overflow: hidden !important;
  overscroll-behavior: none;
}

/* Keep header above backdrop when search is open */
body.search-dropdown-open .careager-topbar,
body.search-dropdown-open .navbar-custom.careager-topbar {
  z-index: var(--console-search-shell-z) !important;
  isolation: isolate;
}

/* Only the search surface stays interactive while the global search layer is open */
body.search-dropdown-open .careager-topbar__inner > :not(.topbar-center),
body.search-dropdown-open .topbar-center > :not(.topbar-search-wrapper) {
  pointer-events: none !important;
  -webkit-user-select: none;
          user-select: none;
}

/* Search Dropdown Container */
.search-dropdown {
  width: 500px;
  max-width: 90vw;
  position: absolute;
  top: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  /* Glass Background — matches glass-dropdown-panel contract */
  background: linear-gradient(145deg, rgba(60, 50, 45, 0.25), rgba(40, 35, 30, 0.35));
  backdrop-filter: blur(60px) saturate(120%) brightness(1);
  -webkit-backdrop-filter: blur(60px) saturate(120%) brightness(1);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: var(--ui-radius-xl);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.35), 0 16px 48px rgba(0, 0, 0, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.12);
  overflow: hidden;
  z-index: var(--console-search-surface-z);
  animation: searchDropdownFadeIn 0.2s ease;
}

@keyframes searchDropdownFadeIn {
  from {
    opacity: 0;
    transform: translateX(-50%) translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
}
/* Search Results Container */
.search-dropdown__results {
  max-height: 400px;
  overflow-y: auto;
}

.search-dropdown__results::-webkit-scrollbar {
  width: 6px;
}

.search-dropdown__results::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.03);
  border-radius: 10px;
}

.search-dropdown__results::-webkit-scrollbar-thumb {
  background: rgba(255, 200, 150, 0.2);
  border-radius: 10px;
}

.search-dropdown__results::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 200, 150, 0.3);
}

/* Search Result Item */
.search-result-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 16px;
  margin: 2px 8px;
  cursor: pointer;
  transition: all var(--ui-transition-base);
  border: 1px solid transparent;
  border-radius: 14px;
}

.search-result-item:last-child {
  border-bottom: none;
}

.search-result-item:hover {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.04));
  border-color: rgba(255, 140, 80, 0.3);
}

/* Search Result Icon/Avatar - FIXED 36px SIZE */
.search-result-icon {
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  max-width: 36px !important;
  min-height: 36px !important;
  max-height: 36px !important;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: rgba(255, 255, 255, 0.7);
  font-size: 16px;
  overflow: hidden;
}

.search-result-icon img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  border-radius: 50%;
}

/* Search Result Content */
.search-result-content {
  flex: 1;
  min-width: 0;
}

.search-result-name {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.95);
  margin-bottom: 4px;
}

.search-result-name__text {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}

.search-result-badges {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-left: auto;
  flex-shrink: 0;
}

.search-result-meta {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.6);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Search Dropdown Footer */
.search-dropdown__footer {
  padding: 10px 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.search-view-all {
  width: 100%;
  padding: 8px 16px;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  color: rgba(255, 255, 255, 0.85);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.search-view-all:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.95);
}

.search-view-all i {
  font-size: 11px;
  transition: transform 0.2s ease;
}

.search-view-all:hover i {
  transform: translateX(4px);
}

/* ==========================================================================
   RECENT SEARCHES
   ========================================================================== */
.search-recent {
  padding: 8px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.search-recent__header {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px 16px 8px;
}

.search-recent__icon {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.4);
}

.search-recent__label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.4);
}

.search-recent__clear {
  margin-left: auto;
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 140, 80, 0.7);
  background: none;
  border: none;
  cursor: pointer;
  padding: 2px 6px;
  border-radius: 4px;
  transition: all 0.15s ease;
}

.search-recent__clear:hover {
  color: rgb(255, 140, 80);
  background: rgba(255, 140, 80, 0.1);
}

.search-recent__item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 16px;
  cursor: pointer;
  transition: background 0.15s ease;
  border-left: 2px solid transparent;
}

.search-recent__item:hover {
  background: rgba(255, 255, 255, 0.06);
  border-left-color: rgba(255, 140, 80, 0.4);
}

.search-recent__item-icon {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.3);
  flex-shrink: 0;
}

.search-recent__item-text {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.8);
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.search-recent__item-remove {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border: none;
  background: none;
  color: rgba(255, 255, 255, 0.25);
  cursor: pointer;
  border-radius: 4px;
  transition: all 0.15s ease;
  flex-shrink: 0;
  opacity: 0;
  font-size: 12px;
}

.search-recent__item:hover .search-recent__item-remove {
  opacity: 1;
}

.search-recent__item-remove:hover {
  color: rgba(255, 100, 100, 0.9);
  background: rgba(255, 100, 100, 0.1);
}

/* ==========================================================================
   GLOBAL ENTITY SEARCH — GROUPED RESULTS
   ========================================================================== */
/* Search Group Container */
.search-group {
  padding: 4px 0;
}

.search-group + .search-group {
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.search-group__header {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px 4px;
}

.search-group__icon {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.45);
}

.search-group__label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
}

.search-group__count {
  font-size: 9px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.3);
  background: rgba(255, 255, 255, 0.06);
  padding: 1px 6px;
  border-radius: 999px;
  margin-left: auto;
}

/* Keyboard highlight state — matches glass-dropdown selected state */
.search-result-item.is-highlighted {
  background: rgba(255, 140, 80, 0.15);
  border-color: rgba(255, 140, 80, 0.4);
}

.search-result-item.is-highlighted .search-result-icon {
  border-color: rgba(255, 140, 80, 0.4);
}

/* Entity-type icon colors */
.search-result-icon--party {
  background: rgba(99, 179, 237, 0.15) !important;
  color: #63b3ed !important;
}

.search-result-icon--vehicle {
  background: rgba(72, 187, 120, 0.15) !important;
  color: #48bb78 !important;
}

.search-result-icon--invoice {
  background: rgba(237, 137, 54, 0.15) !important;
  color: #ed8936 !important;
}

.search-result-icon--bill {
  background: rgba(159, 122, 234, 0.15) !important;
  color: #9f7aea !important;
}

.search-result-icon--booking {
  background: rgba(246, 173, 85, 0.15) !important;
  color: #f6ad55 !important;
}

.search-result-icon--order {
  background: rgba(236, 201, 75, 0.15) !important;
  color: #ecc94b !important;
}

/* Amount display (right-aligned) */
.search-result-amount {
  font-size: 12px;
  font-weight: 600;
  color: rgba(77, 251, 168, 0.85);
  white-space: nowrap;
  flex-shrink: 0;
}

/* Entity type badge */
.search-result-type-badge {
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 2px 6px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.6);
  flex-shrink: 0;
}

.search-result-type-badge--party,
.search-result-type-badge--individual {
  background: rgba(99, 179, 237, 0.12);
  color: rgba(99, 179, 237, 0.85);
}

.search-result-type-badge--business {
  background: rgba(255, 160, 60, 0.12);
  color: rgba(255, 180, 100, 0.9);
}

.search-result-type-badge--active {
  background: rgba(34, 197, 94, 0.12);
  color: rgba(34, 197, 94, 0.85);
}

.search-result-type-badge--inactive {
  background: rgba(239, 68, 68, 0.12);
  color: rgba(239, 68, 68, 0.85);
}

.search-result-type-badge--role-customer {
  background: rgba(20, 184, 166, 0.15);
  color: rgba(45, 212, 191, 0.95);
  text-transform: uppercase;
  letter-spacing: 0.3px;
}

.search-result-type-badge--role-supplier {
  background: rgba(168, 85, 247, 0.15);
  color: rgba(192, 132, 252, 0.95);
  text-transform: uppercase;
  letter-spacing: 0.3px;
}

.search-result-branch {
  color: rgba(56, 189, 248, 0.75);
  font-size: 11px;
}
.search-result-branch .mdi {
  font-size: 11px;
  margin-right: 1px;
}

.search-result-branch--multi {
  color: rgba(251, 191, 36, 0.8);
}
.search-result-branch--multi .mdi {
  font-size: 11px;
  margin-right: 1px;
}

/* Quick Actions — pill buttons inside search results */
.search-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px solid rgba(255, 255, 255, 0.04);
  width: 100%;
}

.search-action-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 24px;
  padding: 0 10px;
  font-size: 11px;
  font-weight: 500;
  line-height: 24px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.55);
  cursor: pointer;
  transition: all 0.18s ease;
  white-space: nowrap;
  flex-shrink: 0;
}

.search-action-btn i {
  font-size: 12px;
}

.search-action-btn:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.85);
}

.search-action-btn--primary {
  background: rgba(255, 140, 80, 0.1);
  border-color: rgba(255, 140, 80, 0.2);
  color: rgba(255, 165, 100, 0.9);
}

.search-action-btn--primary:hover {
  background: rgba(255, 140, 80, 0.2);
  border-color: rgba(255, 140, 80, 0.35);
  color: #ffb070;
  box-shadow: 0 0 8px rgba(255, 140, 80, 0.15);
}

/* Show actions row on result hover/highlight */
.search-result-item {
  flex-wrap: wrap;
}

.search-result-item .search-actions {
  opacity: 0;
  max-height: 0;
  margin-top: 0;
  padding-top: 0;
  border-top: none;
  overflow: hidden;
  transition: all 0.2s ease;
}

.search-result-item:hover .search-actions,
.search-result-item.is-highlighted .search-actions {
  opacity: 1;
  max-height: 40px;
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px solid rgba(255, 255, 255, 0.04);
}

/* Empty state */
.search-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 32px 16px;
  gap: 12px;
}

.search-empty-state__icon {
  font-size: 36px;
  color: rgba(255, 255, 255, 0.2);
}

.search-empty-state__text {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.5);
  text-align: center;
}

/* Search Restricted state — shown when user lacks permissions */
.search-restricted-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 32px 24px;
  gap: 8px;
}

.search-restricted-state__icon {
  font-size: 32px;
  color: rgba(245, 158, 11, 0.7);
  margin-bottom: 4px;
}

.search-restricted-state__title {
  font-size: 14px;
  font-weight: 600;
  color: rgba(245, 158, 11, 0.9);
  letter-spacing: 0.02em;
}

.search-restricted-state__text {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.45);
  text-align: center;
  max-width: 280px;
  line-height: 1.5;
}

/* Keyboard shortcut hint inside search bar */
.search-shortcut-hint {
  font-size: 10px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.3);
  background: none;
  border: none;
  border-radius: 999px;
  padding: 1px 5px;
  flex-shrink: 0;
  pointer-events: none;
  margin-right: 4px;
}

.search-clear-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border: none;
  border-radius: var(--ui-radius-full);
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.5);
  font-size: 14px;
  cursor: pointer;
  flex-shrink: 0;
  margin-right: 4px;
  transition: all var(--ui-transition-fast);
}

.search-clear-btn:hover {
  background: rgba(255, 140, 80, 0.15);
  color: rgba(255, 200, 170, 0.95);
}

/* Footer hints bar */
.search-footer-hints {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
}

.search-footer-hint {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.35);
  display: flex;
  align-items: center;
  gap: 4px;
}

.search-footer-hint kbd {
  font-family: inherit;
  font-size: 10px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.5);
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 3px;
  padding: 1px 5px;
  min-width: 18px;
  text-align: center;
}

/* Search spinner */
.topbar-search__spinner {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  color: rgba(255, 255, 255, 0.5);
  font-size: 12px;
}

/* Skeleton Loader */
.skeleton-item {
  pointer-events: none;
}

.skeleton-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  position: relative;
  overflow: hidden;
}

.skeleton-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.skeleton-text {
  height: 12px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.1);
  position: relative;
  overflow: hidden;
}

.skeleton-name {
  width: 60%;
  height: 14px;
}

.skeleton-meta {
  width: 40%;
}

/* Shimmer Animation */
.skeleton-avatar::after,
.skeleton-text::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  transform: translateX(-100%);
  background-image: linear-gradient(90deg, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, 0.05) 20%, rgba(255, 255, 255, 0.1) 60%, rgba(255, 255, 255, 0));
  animation: shimmer 2s infinite;
}

@keyframes shimmer {
  100% {
    transform: translateX(100%);
  }
}
/* Search Status Badges */
.search-status-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.06);
  margin-left: 8px;
  vertical-align: middle;
}

.search-status-active {
  border-color: rgba(53, 213, 105, 0.6);
  background: rgba(53, 213, 105, 0.15);
  color: #4dfba8;
}

.search-status-inactive {
  border-color: rgba(255, 99, 71, 0.6);
  background: rgba(255, 99, 71, 0.15);
  color: #ffac9b;
}

/* Account type badges — Business / Individual */
.search-badge-business {
  border-color: rgba(245, 158, 11, 0.55);
  background: rgba(245, 158, 11, 0.14);
  color: #fbbf24;
}

.search-badge-individual {
  border-color: rgba(139, 92, 246, 0.5);
  background: rgba(139, 92, 246, 0.12);
  color: #c4b5fd;
}

/* User List Avatar Override for Search Results */
.search-dropdown .user.avatar-sm,
.search-dropdown .avatar-sm {
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  max-width: 36px !important;
  flex-shrink: 0 !important;
}

.search-dropdown .user.avatar-sm img,
.search-dropdown .avatar-sm img {
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  max-width: 36px !important;
  object-fit: cover !important;
}

/* Topbar Search Spinner */
.topbar-search__spinner {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: rgba(255, 255, 255, 0.6);
  pointer-events: none;
}

/* Search Wrapper */
.topbar-search-wrapper {
  position: relative;
  width: 100%;
  z-index: var(--z-base);
}

body.search-dropdown-open .topbar-search-wrapper {
  z-index: var(--console-search-surface-z);
}

/* ==========================================================================
   NOTIFICATION DROPDOWN - GLASS UI CONTRACT
   ==========================================================================
   Styles for the notification drawer that opens from the header bell icon.
   ========================================================================== */
/* Notification Dropdown Backdrop */
.notification-dropdown-backdrop {
  position: fixed;
  top: 44px;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100vw;
  height: calc(100vh - 44px);
  background: rgba(0, 0, 0, 0.25);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 999;
  pointer-events: auto;
}

/* Notification Dropdown Wrapper */
.notification-dropdown-wrapper {
  position: fixed;
  top: 52px;
  right: 60px;
  z-index: 1000;
  animation: notificationDropdownFadeIn 0.2s ease backwards;
  will-change: opacity, transform;
}

@keyframes notificationDropdownFadeIn {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* ==========================================================================
   NOTIFICATIONS PANEL - GLASS MODAL STYLING
   ========================================================================== */
/* Container - Override for dropdown usage */
.notifications-container.glass-modal-container {
  width: 380px;
  max-width: 95vw;
  max-height: 75vh;
  border-radius: 24px;
  overflow: hidden;
  /* Enhanced glass effect */
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)) !important;
  backdrop-filter: blur(60px) saturate(200%) brightness(1.15) !important;
  -webkit-backdrop-filter: blur(60px) saturate(200%) brightness(1.15) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;
  /* Warm glow accent */
  position: relative;
}

.notifications-container.glass-modal-container::before {
  content: "";
  position: absolute;
  width: 200px;
  height: 200px;
  top: -80px;
  right: -60px;
  background: radial-gradient(circle, rgba(255, 100, 50, 0.25) 0%, transparent 70%);
  filter: blur(50px);
  pointer-events: none;
  z-index: 0;
}

/* Header */
.notifications-container .glass-modal-header {
  padding: 20px 24px 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  position: relative;
  z-index: 1;
}

.notifications-container .glass-modal-header .header-content {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}

.notifications-container .glass-modal-header h2 {
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  color: #ffffff;
  text-align: center;
}

/* Body */
.notifications-body {
  padding: 16px 20px 20px;
  max-height: calc(75vh - 80px);
  overflow-y: auto;
  position: relative;
  z-index: 1;
}

.notifications-body::-webkit-scrollbar {
  width: 4px;
}

.notifications-body::-webkit-scrollbar-track {
  background: transparent;
}

.notifications-body::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.12);
  border-radius: 4px;
}

.notifications-body::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.2);
}

/* Section */
.notification-section {
  margin-bottom: 20px;
}

.notification-section:last-child {
  margin-bottom: 0;
}

.section-label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.2px;
  color: rgba(255, 255, 255, 0.45);
  margin-bottom: 12px;
  padding-left: 4px;
  text-transform: uppercase;
}

/* Card Group */
.notification-card-group {
  padding: 0 !important;
  overflow: hidden;
}

/* Notification Row */
.notification-row {
  display: flex;
  position: relative;
  padding: 14px 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  cursor: pointer;
  transition: all 0.2s ease;
}

.notification-row:last-child {
  border-bottom: none;
}

.notification-row:hover {
  background: rgba(255, 255, 255, 0.06);
}

.notification-row:active {
  background: rgba(255, 255, 255, 0.08);
}

/* Unread Indicator */
.unread-indicator {
  position: absolute;
  left: 6px;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 24px;
  background: linear-gradient(180deg, #F24627 0%, #dc8250 100%);
  border-radius: 3px;
  pointer-events: none;
  box-shadow: 0 0 8px rgba(242, 70, 39, 0.4);
}

/* Notification Content */
.notification-content {
  flex: 1;
  padding-left: 12px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
}

.notification-title {
  font-size: 14px;
  font-weight: 600;
  color: #ffffff;
  margin-bottom: 3px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.notification-subtitle {
  font-size: 13px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.75);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Notification Meta */
.notification-meta {
  margin-left: 12px;
  flex-shrink: 0;
  display: flex;
  align-items: flex-start;
  padding-top: 2px;
}

.notification-time {
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.4);
}

/* Empty State */
.notifications-container .empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 32px 20px !important;
  text-align: center;
}

.notifications-container .empty-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 50%;
  margin-bottom: 12px;
  color: rgba(255, 255, 255, 0.3);
}

.notifications-container .empty-icon svg {
  opacity: 0.6;
}

.notifications-container .empty-text {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.45);
  font-weight: 500;
}

/* Loading State */
.notifications-container .loading-state {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 180px;
  width: 100%;
}

.notifications-container .loading-spinner {
  width: 40px;
  height: 40px;
}

.notifications-container .spinner-ring {
  animation: notificationSpinnerRotate 1.4s linear infinite;
}

.notifications-container .ring-path {
  stroke: rgba(220, 130, 80, 0.8);
  stroke-linecap: round;
  stroke-dasharray: 80, 200;
  stroke-dashoffset: 0;
  animation: notificationSpinnerDash 1.4s ease-in-out infinite;
}

@keyframes notificationSpinnerRotate {
  100% {
    transform: rotate(360deg);
  }
}
@keyframes notificationSpinnerDash {
  0% {
    stroke-dasharray: 1, 200;
    stroke-dashoffset: 0;
  }
  50% {
    stroke-dasharray: 89, 200;
    stroke-dashoffset: -35px;
  }
  100% {
    stroke-dasharray: 89, 200;
    stroke-dashoffset: -124px;
  }
}
/* .glass-card visuals → Single owner: ui/layout/card.scss */
/* Notifications container structural override only */
.notifications-container .glass-card {
  padding: 0;
}

/* Responsive */
@media (max-width: 480px) {
  .notification-dropdown-wrapper {
    right: 8px;
    left: 8px;
  }
  .notifications-container.glass-modal-container {
    width: 100%;
    max-width: 100%;
    border-radius: 20px;
    max-height: 80vh;
  }
  .notifications-body {
    max-height: calc(80vh - 80px);
  }
}
/* ==========================================================================
   NOTIFICATION V2 ENHANCEMENTS
   ========================================================================== */
/* ── Bell Pulse Animation (when unread > 0) ── */
.notification-wrapper .badge {
  position: absolute;
  top: 2px;
  right: 2px;
  min-width: 16px;
  height: 16px;
  font-size: 9px;
  font-weight: 700;
  line-height: 16px;
  padding: 0 4px;
  border-radius: 999px;
  animation: bellBadgePulse 2s ease-in-out infinite;
  box-shadow: 0 0 8px rgba(239, 68, 68, 0.5);
}

@keyframes bellBadgePulse {
  0%, 100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.6);
  }
  50% {
    transform: scale(1.12);
    box-shadow: 0 0 0 6px rgba(239, 68, 68, 0);
  }
}
/* Bell icon swing animation when new notification arrives */
.notification-wrapper .topbar-icon-button .bell_icon {
  transition: transform 0.3s ease;
}

.notification-wrapper .topbar-icon-button:hover .bell_icon {
  animation: bellSwing 0.5s ease;
}

@keyframes bellSwing {
  0% {
    transform: rotate(0);
  }
  15% {
    transform: rotate(15deg);
  }
  30% {
    transform: rotate(-12deg);
  }
  45% {
    transform: rotate(8deg);
  }
  60% {
    transform: rotate(-5deg);
  }
  75% {
    transform: rotate(2deg);
  }
  100% {
    transform: rotate(0);
  }
}
/* ── Notification Header with Mark All Read ── */
.notifications-header .header-content {
  display: flex;
  justify-content: space-between !important;
  align-items: center;
}

.mark-all-btn {
  border: none;
  background: none;
  color: rgba(255, 140, 80, 0.85);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 6px;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.mark-all-btn:hover {
  background: rgba(255, 140, 80, 0.1);
  color: #ff8c50;
}

.mark-all-btn:active {
  background: rgba(255, 140, 80, 0.15);
  transform: scale(0.97);
}

/* ── Type-Specific Icon Circle ── */
.notification-type-icon {
  width: 36px;
  height: 36px;
  min-width: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.notification-type-icon i {
  font-size: 16px;
  color: #fff;
}

/* ── Unread Dot (right side) ── */
.unread-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: linear-gradient(135deg, #F24627, #dc8250);
  flex-shrink: 0;
  margin-left: 6px;
  margin-top: 6px;
  box-shadow: 0 0 6px rgba(242, 70, 39, 0.5);
  animation: unreadDotGlow 2s ease-in-out infinite;
}

@keyframes unreadDotGlow {
  0%, 100% {
    box-shadow: 0 0 4px rgba(242, 70, 39, 0.4);
  }
  50% {
    box-shadow: 0 0 10px rgba(242, 70, 39, 0.7);
  }
}
/* ── Notification Meta with dot ── */
.notification-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}

/* ── Priority Section ── */
.section-label--priority {
  color: rgba(242, 70, 39, 0.85) !important;
  display: flex;
  align-items: center;
  gap: 4px;
}

.section-label--priority i {
  font-size: 13px;
}

.notification-row--priority {
  border-left: 2px solid rgba(242, 70, 39, 0.4);
}

.notification-row--priority:hover {
  background: rgba(242, 70, 39, 0.06) !important;
}

/* ── Unread row styling ── */
.notification-row.unread {
  background: rgba(255, 255, 255, 0.03);
}

.notification-row.unread .notification-title {
  color: #ffffff;
  font-weight: 700;
}

/* ── Content with type icon ── */
.notification-row .notification-content {
  padding-left: 12px;
}

/* ── Load More Button ── */
.load-more-wrapper {
  display: flex;
  justify-content: center;
  padding: 12px 0 4px;
}

.load-more-btn {
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.6);
  font-size: 12px;
  font-weight: 600;
  padding: 6px 20px;
  border-radius: 999px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.load-more-btn:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.8);
}

.load-more-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* ── Enhanced Empty State ── */
.notifications-container .empty-subtext {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.3);
  margin-top: 2px;
}

.notifications-container .empty-icon {
  background: rgba(255, 140, 80, 0.06);
  color: rgba(255, 140, 80, 0.5);
}

/* ==========================================================================
   TASK DROPDOWN — HEADER ACCESS LAYER
   ==========================================================================
   Glass-morphism dropdown for Tasks icon in the header topbar.
   Mirrors notification dropdown patterns for consistency.
   ========================================================================== */
/* Task Dropdown Backdrop */
.task-dropdown-backdrop {
  position: fixed;
  top: 44px;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100vw;
  height: calc(100vh - 44px);
  background: rgba(0, 0, 0, 0.25);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 999;
  pointer-events: auto;
}

/* Task Dropdown Wrapper */
.task-dropdown-wrapper {
  position: fixed;
  top: 52px;
  right: 100px;
  z-index: 1000;
  animation: taskDropdownFadeIn 0.2s ease backwards;
  will-change: opacity, transform;
}

@keyframes taskDropdownFadeIn {
  from {
    opacity: 0;
    transform: translateY(-8px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
/* Task Dropdown Panel — matches notification glass theme */
.task-dropdown-panel {
  width: 380px;
  max-width: 95vw;
  border-radius: 24px;
  overflow: hidden;
  position: relative;
  /* Same glass effect as notifications-container */
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  backdrop-filter: blur(60px) saturate(200%) brightness(1.15);
  -webkit-backdrop-filter: blur(60px) saturate(200%) brightness(1.15);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

/* Warm glow accent — same as notification panel */
.task-dropdown-panel::before {
  content: "";
  position: absolute;
  width: 200px;
  height: 200px;
  top: -80px;
  right: -60px;
  background: radial-gradient(circle, rgba(255, 100, 50, 0.25) 0%, transparent 70%);
  filter: blur(50px);
  pointer-events: none;
  z-index: 0;
}

/* Header */
.task-dropdown-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  position: relative;
  z-index: 1;
}

.task-dropdown-title {
  font-size: 14px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.95);
  letter-spacing: -0.01em;
}

.task-dropdown-count {
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.4);
}

/* Body */
.task-dropdown-body {
  max-height: 340px;
  overflow-y: auto;
  position: relative;
  z-index: 1;
}

.task-dropdown-body::-webkit-scrollbar {
  width: 3px;
}

.task-dropdown-body::-webkit-scrollbar-track {
  background: transparent;
}

.task-dropdown-body::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.12);
  border-radius: 2px;
}

/* Task Row */
.task-dropdown-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 18px;
  cursor: pointer;
  transition: background 0.12s ease;
  position: relative;
}

.task-dropdown-row:not(:last-child) {
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.task-dropdown-row:hover {
  background: rgba(255, 255, 255, 0.05);
}

.task-dropdown-row:active {
  background: rgba(255, 255, 255, 0.08);
}

/* Priority Indicator */
.task-row-priority {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
}

.tp-high {
  background: #ef4444;
  box-shadow: 0 0 6px rgba(239, 68, 68, 0.5);
}

.tp-normal {
  background: #f59e0b;
}

.tp-low {
  background: rgba(255, 255, 255, 0.25);
}

/* HIGH priority row glow */
.task-dropdown-row.task-high {
  border-left: 2px solid rgba(239, 68, 68, 0.5);
}

/* Content */
.task-row-content {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.task-row-title {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.9);
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
}

.task-row-meta {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.35);
}

/* Done Button */
.task-row-done-btn {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 1.5px solid rgba(255, 255, 255, 0.2);
  background: transparent;
  color: rgba(255, 255, 255, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  transition: all 0.15s ease;
  opacity: 0;
}

.task-dropdown-row:hover .task-row-done-btn {
  opacity: 1;
}

.task-row-done-btn:hover {
  border-color: #10b981;
  color: #10b981;
  background: rgba(16, 185, 129, 0.12);
  transform: scale(1.1);
}

.task-row-done-btn i {
  font-size: 14px;
}

/* Footer — warm brand accent (matches notification theme) */
.task-dropdown-footer {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 14px 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 12px;
  font-weight: 600;
  color: rgba(255, 140, 80, 0.9);
  cursor: pointer;
  transition: color 0.12s ease, background 0.12s ease;
  text-decoration: none;
  position: relative;
  z-index: 1;
}

.task-dropdown-footer:hover {
  color: #ffb083;
  background: rgba(255, 140, 80, 0.06);
}

.task-dropdown-footer i {
  font-size: 14px;
  transition: transform 0.15s ease;
}

.task-dropdown-footer:hover i {
  transform: translateX(3px);
}

/* Empty State */
.task-dropdown-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 36px 20px;
  text-align: center;
}

.task-empty-icon {
  font-size: 36px;
  color: rgba(255, 140, 80, 0.4);
  margin-bottom: 10px;
}

.task-empty-text {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.4);
}

/* Skeleton Loading */
.task-dropdown-loading {
  padding: 8px 0;
}

.task-skeleton-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
}

.task-skeleton-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  animation: taskSkeletonPulse 1.5s ease-in-out infinite;
}

.task-skeleton-lines {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.task-skeleton-line {
  height: 10px;
  width: 80%;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.07);
  animation: taskSkeletonPulse 1.5s ease-in-out infinite;
}

.task-skeleton-line.short {
  width: 40%;
}

@keyframes taskSkeletonPulse {
  0%, 100% {
    opacity: 0.4;
  }
  50% {
    opacity: 0.8;
  }
}
/* Badge Variants */
.badge.bg-brand {
  background: #e74630;
}

.badge.badge-pulse {
  animation: badgePulse 1.5s ease-in-out infinite;
}

@keyframes badgePulse {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(231, 70, 48, 0.5);
  }
  50% {
    box-shadow: 0 0 0 4px rgba(231, 70, 48, 0);
  }
}
/* ── Responsive ── */
@media (max-width: 768px) {
  .task-dropdown-wrapper {
    right: 10px;
    left: 10px;
  }
  .task-dropdown-panel {
    width: auto;
  }
}
/* ==========================================================================
   UI LAYOUT CONTRACT - CONSOLE LAYOUT
   ==========================================================================
   Flex layout for console body (sidebar + content area).
   Controls the main horizontal arrangement and scrolling behavior.
   ========================================================================== */
/* Console body: horizontal flex container for sidebar + content */
.console-body {
  display: flex;
  flex: 1;
  gap: 0; /* Gaps handled by component internal margins if needed */
  padding: 0; /* Remove padding to fix "gap above sidebar" */
  min-height: 0;
  overflow: hidden; /* Lock body so only content scrolls */
}

/* Console content: main area that holds router-outlet */
.console-content {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow-y: auto; /* INDEPENDENT SCROLLING */
  padding: 10px; /* Content padding moved here */
  margin-top: 4px; /* Match sidebar gap from header */
  scroll-behavior: smooth;
  transition: padding 280ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* ==========================================================================
   COLLAPSED SIDEBAR - CONTENT GAP
   ==========================================================================
   When sidebar is collapsed, ensure there's proper spacing between the 
   sidebar edge and content. The gap should be consistent across all pages.
   ========================================================================== */
/* CSS variable for collapsed sidebar gap (applied to console-body) */
.console-body {
  --sidebar-content-gap: 12px;
}

/* Add gap between collapsed sidebar and content */
app-console-sidebar.is-collapsed + main.console-content,
app-console-sidebar.is-collapsed ~ main.console-content {
  margin-left: var(--sidebar-content-gap, 12px);
  padding-left: 12px;
}

/* Ensure .ui-page has minimal left padding when sidebar is collapsed */
app-console-sidebar.is-collapsed + main.console-content .ui-page,
app-console-sidebar.is-collapsed ~ main.console-content .ui-page {
  padding-left: 8px;
}

/* Override the CRM table page zero-padding when sidebar is collapsed */
app-console-sidebar.is-collapsed + main.console-content .ui-page--table:has(> .content),
app-console-sidebar.is-collapsed ~ main.console-content .ui-page--table:has(> .content) {
  padding-left: 8px !important;
}

/* Ensure stats-header has proper spacing */
app-console-sidebar.is-collapsed + main.console-content .stats-header,
app-console-sidebar.is-collapsed ~ main.console-content .stats-header {
  padding-left: 0;
}

/* ==========================================================================
   BP-17 — MOBILE RESPONSIVE LAYOUT
   ==========================================================================
   At ≤768px the sidebar becomes an overlay drawer.
   Triggered by body.mobile-sidebar-open (toggled by hamburger button in header).
   Content area takes full viewport width on mobile — sidebar never pushes it.
   ========================================================================== */
@media (max-width: 768px) {
  /* Content takes full width — sidebar is now an overlay, not in flow */
  .console-content {
    padding: 8px 6px;
    margin-left: 0 !important;
    padding-left: 6px !important;
    width: 100% !important;
  }
  /* Collapsed sidebar gap rules don't apply on mobile */
  app-console-sidebar.is-collapsed + main.console-content,
  app-console-sidebar.is-collapsed ~ main.console-content {
    margin-left: 0;
    padding-left: 6px;
  }
  /* Overlay backdrop — shown when sidebar is open on mobile */
  .mobile-sidebar-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    z-index: 299;
    backdrop-filter: blur(2px);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
  }
  body.mobile-sidebar-open .mobile-sidebar-backdrop {
    opacity: 1;
    pointer-events: auto;
  }
}
/* Hamburger toggle button — hidden on desktop, shown on mobile */
.console-hamburger-btn {
  display: none;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: none;
  background: transparent;
  color: var(--ui-text-secondary);
  cursor: pointer;
  border-radius: 8px;
  transition: background 0.15s;
  flex-shrink: 0;
}

.console-hamburger-btn:hover {
  background: var(--ui-surface-hover);
}

.console-hamburger-btn svg {
  width: 20px;
  height: 20px;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
}

@media (max-width: 768px) {
  .console-hamburger-btn {
    display: flex;
  }
}
/* ==========================================================================
   CONSOLE SIDEBAR CONTRACT
   ==========================================================================
   Visual contract for the console sidebar navigation.
   Owns all sidebar width, styling, and collapse behavior.
   ========================================================================== */
/* Host element: defines container width and responds to collapsed state */
app-console-sidebar {
  position: relative;
  z-index: var(--z-sidebar);
  display: block;
  width: 243px;
  /* 253px target - 10px left margin */
  flex-shrink: 0;
  height: 100%;
  transition: width 280ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* When command palette is open, keep the sidebar host above page-level fixed/sticky layers
   while dropping only the sidebar chrome below the palette modal rendered inside it. */
body.palette-open app-console-sidebar {
  z-index: 10000040 !important;
}

body.palette-open .left-side-menu.glass-sidebar,
body.palette-open .branch-dropdown-backdrop,
body.palette-open .sidebar-branch-panel {
  z-index: 1 !important;
}

/* Collapsed state: narrow width */
app-console-sidebar.is-collapsed {
  width: 62px;
  /* 72px target - 10px left margin */
}

/* Hover-expanded state: host stays collapsed width, inner sidebar floats over content */
app-console-sidebar.is-hover-expanded {
  width: 62px;
  /* Keep collapsed width to prevent layout shift */
}

app-console-sidebar.is-hover-expanded .left-side-menu.glass-sidebar {
  position: absolute;
  width: 243px;
  z-index: calc(var(--z-sidebar) + 1);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.02), 8px 0 32px rgba(0, 0, 0, 0.35);
}

/* Main sidebar container - targets actual class in HTML */
.left-side-menu.glass-sidebar {
  position: relative;
  z-index: var(--z-sidebar);
  /* Override legacy top:70px */
  top: 0 !important;
  /* Height: full height minus top and bottom margin */
  height: calc(100% - 20px);
  /* Margins: 10px gap on all sides except right connects to content */
  margin: 10px 0 10px 10px;
  /* Visual styling */
  border-radius: 24px;
  overflow: hidden;
  background: rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-right: 1px solid rgba(255, 255, 255, 0.05);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.02), 4px 0 24px rgba(0, 0, 0, 0.12);
}

.left-side-menu.glass-sidebar .sidebar-surface {
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: 12px 12px 0 12px;
  overflow: hidden;
  position: relative;
  box-sizing: border-box;
  transition: padding 280ms cubic-bezier(0.4, 0, 0.2, 1);
}

.left-side-menu.glass-sidebar .sidebar-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  /* Hide scrollbar but keep scroll functionality */
  scrollbar-width: none;
  /* Firefox */
  -ms-overflow-style: none;
  /* IE/Edge */
}

/* Hide scrollbar for Chrome/Safari/Opera */
.left-side-menu.glass-sidebar .sidebar-scroll::-webkit-scrollbar {
  display: none;
}

/* Constrain ALL images and SVGs in sidebar */
.left-side-menu.glass-sidebar img {
  max-width: 100%;
  height: auto;
}

.left-side-menu.glass-sidebar svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

/* Workspace switch header */
.left-side-menu.glass-sidebar .sidebar-header {
  display: flex;
  align-items: center;
  margin-top: -4px;
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.left-side-menu.glass-sidebar .workspace-switch {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0;
  border: none;
  background: transparent;
  color: inherit;
  cursor: default;
  font: inherit;
  min-width: 0;
  text-align: left;
}

.left-side-menu.glass-sidebar .workspace-logo {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  overflow: hidden;
  flex-shrink: 0;
  background: rgba(255, 255, 255, 0.04);
  display: grid;
  place-items: center;
}

.left-side-menu.glass-sidebar .workspace-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.left-side-menu.glass-sidebar .workspace-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1;
  overflow: hidden;
  transition: opacity 200ms cubic-bezier(0.4, 0, 0.2, 1), transform 200ms cubic-bezier(0.4, 0, 0.2, 1), max-width 280ms cubic-bezier(0.4, 0, 0.2, 1);
}

.left-side-menu.glass-sidebar .workspace-title {
  font-size: 13px;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: rgba(255, 255, 255, 0.92);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  white-space: normal;
  line-height: 1.3;
  text-align: left;
}

.left-side-menu.glass-sidebar .workspace-arrow {
  margin-left: 2px;
  color: rgba(255, 255, 255, 0.48);
  display: inline-flex;
  align-items: center;
  opacity: 0.5;
  margin-right: 0;
  padding: 0;
  transition: opacity 200ms cubic-bezier(0.4, 0, 0.2, 1), transform 200ms cubic-bezier(0.4, 0, 0.2, 1);
}

.left-side-menu.glass-sidebar .workspace-arrow .mdi {
  font-size: 16px;
  line-height: 1;
}

/* Primary CTA row — refined minimal */
.left-side-menu.glass-sidebar .sidebar-top-row {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 16px;
}

.left-side-menu.glass-sidebar .sidebar-toggle-btn {
  position: static;
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  background: rgba(255, 127, 69, 0.04);
  border: 1px solid rgba(255, 127, 69, 0.1);
  color: rgba(255, 255, 255, 0.35);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 180ms ease;
  z-index: 100;
  box-shadow: none;
}

.left-side-menu.glass-sidebar .sidebar-toggle-btn:hover {
  background: rgba(255, 127, 69, 0.08);
  border-color: rgba(255, 127, 69, 0.18);
  color: rgba(255, 255, 255, 0.7);
}

.left-side-menu.glass-sidebar .sidebar-toggle-btn:focus,
.left-side-menu.glass-sidebar .sidebar-toggle-btn:focus-visible {
  outline: none;
}

.left-side-menu.glass-sidebar .sidebar-toggle-btn:active {
  outline: none;
  transform: scale(0.92);
}

.left-side-menu.glass-sidebar .sidebar-toggle-btn svg {
  width: 14px;
  height: 14px;
  transition: transform 280ms cubic-bezier(0.4, 0, 0.2, 1);
}

.left-side-menu.glass-sidebar .sidebar-toggle-btn svg.sidebar-toggle-icon--collapsed {
  transform: rotate(180deg);
}

.left-side-menu.glass-sidebar .primary-cta {
  flex: 1;
  min-width: 0;
  height: 40px;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(255, 151, 85, 0.12), rgba(95, 38, 22, 0.1)), rgba(14, 8, 6, 0.72);
  border: 1px solid rgba(255, 151, 85, 0.26);
  color: rgba(255, 201, 157, 0.86);
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 44px 0 14px;
  cursor: pointer;
  transition: all 180ms ease;
  margin: 0;
  box-shadow: inset 0 0 0 1px rgba(255, 211, 172, 0.04), 0 8px 20px rgba(82, 31, 17, 0.18);
  position: relative;
}

.left-side-menu.glass-sidebar .primary-cta:hover {
  background: linear-gradient(135deg, rgba(255, 151, 85, 0.18), rgba(120, 48, 24, 0.15)), rgba(17, 9, 7, 0.78);
  border-color: rgba(255, 166, 101, 0.4);
  color: rgba(255, 224, 195, 0.96);
  box-shadow: inset 0 0 0 1px rgba(255, 221, 190, 0.07), 0 10px 24px rgba(103, 39, 20, 0.24);
}

.left-side-menu.glass-sidebar .primary-cta:active {
  transform: scale(0.98);
}

.left-side-menu.glass-sidebar .cta-assist-icon {
  width: 26px;
  height: 26px;
  display: block;
  object-fit: contain;
  opacity: 0.92;
  animation: ctaAssistBreath 3s ease-in-out infinite;
  flex-shrink: 0;
}

.left-side-menu.glass-sidebar .primary-cta:hover .cta-assist-icon {
  animation: none;
  opacity: 1;
  filter: drop-shadow(0 0 6px rgba(255, 140, 80, 0.4));
}

@keyframes ctaAssistBreath {
  0%, 100% {
    opacity: 0.9;
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(1.08);
  }
}
.left-side-menu.glass-sidebar .cta-shortcut {
  font-size: 10px;
  font-weight: 500;
  padding: 0;
  border: none;
  background: none;
  color: rgba(255, 201, 157, 0.38);
  font-family: inherit;
  position: absolute;
  right: 14px;
  flex-shrink: 0;
  pointer-events: none;
}

.left-side-menu.glass-sidebar .cta-label {
  min-width: 0;
  white-space: nowrap;
  text-shadow: 0 0 12px rgba(255, 139, 75, 0.16);
}

/* Navigation panels */
.left-side-menu.glass-sidebar .nav-accordion {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

/* ── Favorites section — visually distinct from regular modules ── */
/* Golden star icon for Favorites header */
.left-side-menu.glass-sidebar .nav-group-header[aria-label=Favorites] .group-mat-icon,
.left-side-menu.glass-sidebar .nav-group-header[aria-label=Favorites] .group-icon {
  opacity: 0.9;
  filter: none;
  color: #f0b358;
}

/* Favorites group name — warm accent */
.left-side-menu.glass-sidebar .nav-group-header[aria-label=Favorites] .group-name {
  color: rgba(240, 179, 88, 0.7);
  font-weight: 500;
  letter-spacing: 0.6px;
}

/* Favorites nav items — subtle left accent bar */
.left-side-menu.glass-sidebar .nav-group-header[aria-label=Favorites] ~ .nav-items .nav-link {
  padding-left: 10px;
  border-left: 2px solid rgba(240, 179, 88, 0.12);
  margin-left: 4px;
  border-radius: 0 6px 6px 0;
}

.left-side-menu.glass-sidebar .nav-group-header[aria-label=Favorites] ~ .nav-items .nav-link:hover {
  border-left-color: rgba(240, 179, 88, 0.3);
}

.left-side-menu.glass-sidebar .nav-group-header[aria-label=Favorites] ~ .nav-items .nav-link.active {
  border-left-color: rgba(240, 179, 88, 0.6);
}

/* Divider after Favorites panel to separate from modules */
.left-side-menu.glass-sidebar .nav-panel:has(.nav-group-header[aria-label=Favorites]) {
  margin-bottom: 2px;
  padding-bottom: 4px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

/* Section dividers between module groups (growth | operations | admin) */
.left-side-menu.glass-sidebar .nav-section-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.08), transparent);
  margin: 4px 12px;
  flex-shrink: 0;
}

/* Material icon used as module header icon (Organization, Platform) */
.left-side-menu.glass-sidebar .group-mat-icon {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
  flex-shrink: 0;
  opacity: 0.5;
  color: rgba(255, 255, 255, 0.7);
  transition: opacity 200ms ease, color 200ms ease;
}

.left-side-menu.glass-sidebar .nav-group-header:hover .group-mat-icon,
.left-side-menu.glass-sidebar .mat-expansion-panel-header.mat-expanded .group-mat-icon {
  opacity: 1;
  color: #ff8866;
  filter: drop-shadow(0 0 6px rgba(255, 136, 102, 0.3));
}

/* Corporate-only module hiding */
.left-side-menu.glass-sidebar .nav-panel.hide_portion {
  display: none !important;
}

.left-side-menu.glass-sidebar .nav-panel {
  background: transparent !important;
  box-shadow: none !important;
}

.left-side-menu.glass-sidebar .nav-panel .mat-expansion-panel-body {
  padding: 0 !important;
}

.left-side-menu.glass-sidebar .nav-group-header {
  min-height: 30px !important;
  height: 30px !important;
  padding: 0 !important;
  margin: 4px 0 1px 0;
  background: transparent !important;
  border-radius: 0 !important;
  transition: height 280ms cubic-bezier(0.4, 0, 0.2, 1), margin 280ms cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* Override Material internal layout to push chevron right */
.left-side-menu.glass-sidebar .nav-group-header .mat-content {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 100% !important;
}

.left-side-menu.glass-sidebar .nav-group-header:hover {
  background: transparent !important;
}

.left-side-menu.glass-sidebar .group-title {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-transform: none;
  letter-spacing: 0;
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.55);
  transition: color 200ms ease, padding 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 280ms cubic-bezier(0.4, 0, 0.2, 1);
}

.left-side-menu.glass-sidebar .nav-group-header:hover .group-title {
  color: rgba(255, 255, 255, 0.85);
}

.left-side-menu.glass-sidebar .group-icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  opacity: 0.5;
  filter: grayscale(100%) brightness(1.2);
  transition: opacity 200ms ease, filter 200ms ease;
}

.left-side-menu.glass-sidebar .nav-group-header:hover .group-icon,
.left-side-menu.glass-sidebar .mat-expansion-panel-header.mat-expanded .group-icon {
  opacity: 1;
  filter: none;
}

.left-side-menu.glass-sidebar .nav-group-header[aria-label=Intelligence] .group-icon {
  width: 17px;
  height: 17px;
  opacity: 0.68;
  filter: sepia(1) saturate(1.35) hue-rotate(-18deg) brightness(0.95);
}

.left-side-menu.glass-sidebar .nav-group-header[aria-label=Intelligence]:hover .group-icon,
.left-side-menu.glass-sidebar .nav-group-header[aria-label=Intelligence].mat-expanded .group-icon {
  opacity: 0.92;
  filter: sepia(1) saturate(1.65) hue-rotate(-18deg) brightness(1.08);
}

/* Keep Favorites star golden on hover/expanded — don't fall through to generic filter:none */
.left-side-menu.glass-sidebar .nav-group-header[aria-label=Favorites]:hover .group-mat-icon,
.left-side-menu.glass-sidebar .nav-group-header[aria-label=Favorites]:hover .group-icon,
.left-side-menu.glass-sidebar .nav-group-header[aria-label=Favorites].mat-expanded .group-mat-icon,
.left-side-menu.glass-sidebar .nav-group-header[aria-label=Favorites].mat-expanded .group-icon {
  color: #f0b358;
  filter: none;
  opacity: 1;
}

.left-side-menu.glass-sidebar .group-name {
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.7);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* Core modules (Customers, CRM, Marketing) — stronger visual presence */
.left-side-menu.glass-sidebar .group-name.core-module {
  color: rgba(255, 255, 255, 0.92);
  font-weight: 700;
  letter-spacing: 0.6px;
}

.left-side-menu.glass-sidebar .group-chevron svg {
  width: 14px;
  height: 14px;
}

/* Navigation items */
.left-side-menu.glass-sidebar .nav-items {
  display: flex;
  flex-direction: column;
  gap: 1px;
  padding-top: 2px;
  padding-bottom: 4px;
  transition: gap 280ms cubic-bezier(0.4, 0, 0.2, 1), padding 280ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* Sub-group titles — subtle dividers */
.left-side-menu.glass-sidebar .nav-group-title {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: rgba(255, 255, 255, 0.3);
  font-weight: 500;
  padding: 6px 12px 1px 8px;
  margin: 0;
  -webkit-user-select: none;
          user-select: none;
  border-top: 1px solid rgba(255, 255, 255, 0.03);
}

/* First group title: no top border */
.left-side-menu.glass-sidebar .nav-group-title:first-child {
  border-top: none;
  padding-top: 1px;
}

.left-side-menu.glass-sidebar .nav-link {
  width: 100%;
  border: none;
  border-radius: 6px;
  background: transparent;
  color: rgba(255, 255, 255, 0.48);
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  text-align: left;
  gap: 8px;
  padding: 5px 10px 5px 8px;
  cursor: pointer;
  transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);
  font: inherit;
  font-size: 12.5px;
  font-weight: 400;
  position: relative;
}

.left-side-menu.glass-sidebar .nav-link:hover {
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.92);
}

.left-side-menu.glass-sidebar .nav-link.active {
  background: rgba(255, 127, 69, 0.15);
  color: rgba(255, 255, 255, 0.92);
  font-weight: 500;
}

.left-side-menu.glass-sidebar .nav-icon {
  width: 17px;
  height: 17px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  opacity: 0.7;
  transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);
}

.left-side-menu.glass-sidebar .nav-icon img {
  width: 15px;
  height: 15px;
  object-fit: contain;
  /* Convert icons to orange theme using CSS filters */
  filter: sepia(1) saturate(2.5) hue-rotate(-25deg) brightness(1.05);
  transition: filter 180ms ease;
}

/* Brighten icons on hover */
.left-side-menu.glass-sidebar .nav-link:hover .nav-icon img {
  filter: sepia(1) saturate(2.5) hue-rotate(-25deg) brightness(1.2);
}

/* Make active icons more vibrant */
.left-side-menu.glass-sidebar .nav-link.active .nav-icon img {
  filter: sepia(1) saturate(3) hue-rotate(-30deg) brightness(1.25);
}

/* Material icons in navigation */
.left-side-menu.glass-sidebar .nav-mat-icon {
  font-size: 17px !important;
  width: 17px !important;
  height: 17px !important;
  color: #ff8866;
  transition: all 180ms ease;
  filter: drop-shadow(0 0 6px rgba(255, 136, 102, 0.25));
}

.left-side-menu.glass-sidebar .nav-link:hover .nav-mat-icon {
  color: #ff7755;
  filter: drop-shadow(0 0 10px rgba(255, 119, 85, 0.5));
  transform: scale(1.05);
}

.left-side-menu.glass-sidebar .nav-link.active .nav-mat-icon {
  color: #ff6644;
  filter: drop-shadow(0 0 12px rgba(255, 102, 68, 0.6));
}

.left-side-menu.glass-sidebar .nav-label {
  font-size: 12.5px;
  color: rgba(255, 255, 255, 0.85);
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  letter-spacing: -0.01em;
  transition: opacity 200ms cubic-bezier(0.4, 0, 0.2, 1), transform 200ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* ── Favorite star icon ── */
.left-side-menu.glass-sidebar .nav-fav-star {
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
  flex-shrink: 0;
  opacity: 0;
  color: rgba(255, 255, 255, 0.3);
  cursor: pointer;
  transition: opacity 180ms ease, color 180ms ease, transform 180ms ease;
  margin-left: auto;
  position: relative;
  z-index: 2;
}

/* Show star on nav-link hover */
.left-side-menu.glass-sidebar .nav-link:hover .nav-fav-star {
  opacity: 1;
}

/* Hover on star itself — brighter */
.left-side-menu.glass-sidebar .nav-fav-star:hover {
  color: rgba(255, 200, 50, 0.8) !important;
  transform: scale(1.15);
}

/* Filled state — always visible, golden */
.left-side-menu.glass-sidebar .nav-fav-star.is-favorited {
  opacity: 1;
  color: #ffc832;
  filter: drop-shadow(0 0 4px rgba(255, 200, 50, 0.35));
}

.left-side-menu.glass-sidebar .nav-fav-star.is-favorited:hover {
  color: rgba(255, 255, 255, 0.5) !important;
  filter: none;
}

/* Sidebar footer — pinned below scroll area */
.left-side-menu.glass-sidebar .sidebar-footer {
  flex-shrink: 0;
  margin-top: 0;
  padding: 4px 6px 0 0;
  border-top: 1px solid transparent;
  transition: border-color 200ms ease;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 2px;
}

/* Settings button — footer utility (mirrors switch-workspace pattern) */
.left-side-menu.glass-sidebar .sidebar-settings-btn {
  width: 100% !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 3px 8px 3px 8px !important;
  border: none !important;
  border-radius: 7px;
  background: transparent !important;
  box-shadow: none !important;
  color: rgba(255, 255, 255, 0.4);
  font: inherit;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.01em;
  cursor: pointer;
  transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);
}

.left-side-menu.glass-sidebar .sidebar-settings-btn:hover {
  background: transparent !important;
  color: rgba(255, 255, 255, 0.65);
}

.left-side-menu.glass-sidebar .sidebar-settings-btn:active {
  transform: scale(0.97);
}

.left-side-menu.glass-sidebar .sidebar-settings-icon {
  font-size: 15px !important;
  width: 15px !important;
  height: 15px !important;
  color: rgba(255, 127, 69, 0.55);
  transition: color 200ms ease, transform 350ms ease;
}

.left-side-menu.glass-sidebar .sidebar-settings-btn:hover .sidebar-settings-icon {
  color: rgba(255, 143, 90, 0.85);
  transform: rotate(60deg);
}

.left-side-menu.glass-sidebar .sidebar-settings-label {
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: opacity 200ms cubic-bezier(0.4, 0, 0.2, 1), max-width 280ms cubic-bezier(0.4, 0, 0.2, 1);
}

.left-side-menu.glass-sidebar .sidebar-footer.has-overflow {
  border-top-color: rgba(255, 255, 255, 0.05);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 2px;
}

.left-side-menu.glass-sidebar .footer-copyright,
.left-side-menu.glass-sidebar .footer-links {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.4);
  text-align: center;
}

.left-side-menu.glass-sidebar .footer-copyright {
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1.3;
  font-size: 9px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.2);
  letter-spacing: 0.03em;
}

.left-side-menu.glass-sidebar .footer-copyright span {
  display: block;
  white-space: nowrap;
}

/* Switch Workspace button — footer utility (centered, small) */
.left-side-menu.glass-sidebar .switch-workspace-btn {
  width: 100% !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 3px 8px 3px 8px !important;
  margin-bottom: 0;
  border: none !important;
  border-radius: 7px;
  background: transparent !important;
  box-shadow: none !important;
  color: rgba(255, 255, 255, 0.4);
  font: inherit;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.01em;
  cursor: pointer;
  transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);
}

.left-side-menu.glass-sidebar .switch-workspace-btn:hover {
  background: transparent !important;
  border: none !important;
  color: rgba(255, 255, 255, 0.65);
}

.left-side-menu.glass-sidebar .switch-workspace-btn:active {
  transform: scale(0.97);
}

.left-side-menu.glass-sidebar .switch-workspace-icon {
  font-size: 15px !important;
  width: 15px !important;
  height: 15px !important;
  color: rgba(255, 127, 69, 0.55);
  transition: color 200ms ease;
}

.left-side-menu.glass-sidebar .switch-workspace-btn:hover .switch-workspace-icon {
  color: rgba(255, 143, 90, 0.85);
}

.left-side-menu.glass-sidebar .switch-workspace-label {
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: opacity 200ms cubic-bezier(0.4, 0, 0.2, 1), max-width 280ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* Disabled state — permission not granted */
.left-side-menu.glass-sidebar .switch-workspace-btn--disabled,
.left-side-menu.glass-sidebar .switch-workspace-btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
  pointer-events: auto; /* keep pointer-events so tooltip shows */
}

.left-side-menu.glass-sidebar .switch-workspace-btn--disabled:hover,
.left-side-menu.glass-sidebar .switch-workspace-btn:disabled:hover {
  background: transparent;
  color: rgba(255, 255, 255, 0.4);
  transform: none;
}

/* ==========================================================================
   COLLAPSED STATE - WORLD-CLASS PREMIUM DESIGN
   ==========================================================================
   Optimized for:
   - Instant active-state recognizability (dual visual signals)
   - Faster scanning with reduced vertical density
   - Visual grouping through semantic spacing
   - Apple-level minimal aesthetic
   ========================================================================== */
/* Collapsed sidebar: narrow width, icons only */
.left-side-menu.glass-sidebar.collapsed {
  width: 72px;
  transition: width 280ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* Hide text elements and nav sections when collapsed */
.left-side-menu.glass-sidebar.collapsed .workspace-title,
.left-side-menu.glass-sidebar.collapsed .cta-label,
.left-side-menu.glass-sidebar.collapsed .cta-shortcut,
.left-side-menu.glass-sidebar.collapsed .group-name,
.left-side-menu.glass-sidebar.collapsed .group-chevron,
.left-side-menu.glass-sidebar.collapsed .nav-label,
.left-side-menu.glass-sidebar.collapsed .switch-workspace-label,
.left-side-menu.glass-sidebar.collapsed .footer-copyright,
.left-side-menu.glass-sidebar.collapsed .footer-links {
  opacity: 0;
  width: 0;
  min-width: 0;
  max-width: 0;
  margin: 0;
  transform: translateX(-6px);
  pointer-events: none;
}

/* In collapsed state: hide non-expanded panels, show only active section */
.left-side-menu.glass-sidebar.collapsed .nav-panel:not(.mat-expanded) {
  display: none;
}

/* Hide the group header in collapsed - just show the nav items icons */
.left-side-menu.glass-sidebar.collapsed .nav-panel.mat-expanded .nav-group-header {
  display: none;
}

.left-side-menu.glass-sidebar.collapsed .sidebar-surface {
  padding-left: 8px;
  padding-right: 8px;
  padding-top: 8px;
}

.left-side-menu.glass-sidebar.collapsed .sidebar-top-row {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}

/* Collapsed toggle button — refined minimal */
.left-side-menu.glass-sidebar.collapsed .sidebar-toggle-btn {
  margin: 0;
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  background: rgba(255, 127, 69, 0.04);
  border: 1px solid rgba(255, 127, 69, 0.1);
  box-shadow: none;
}

.left-side-menu.glass-sidebar.collapsed .sidebar-toggle-btn:hover {
  background: rgba(255, 127, 69, 0.08);
  border-color: rgba(255, 127, 69, 0.18);
}

.left-side-menu.glass-sidebar.collapsed .sidebar-toggle-btn svg {
  width: 14px;
  height: 14px;
}

.left-side-menu.glass-sidebar.collapsed .sidebar-header {
  width: 100%;
  justify-content: center;
  display: flex;
  margin: 0 0 16px 0;
  padding: 0 0 12px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

/* Center icons when collapsed */
.left-side-menu.glass-sidebar.collapsed .workspace-switch {
  justify-content: center;
  padding: 0;
  gap: 0;
  width: fit-content;
  margin: 0 auto;
  flex: none;
}

.left-side-menu.glass-sidebar.collapsed .workspace-logo {
  margin: 0;
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  max-width: 40px;
  max-height: 40px;
  overflow: hidden;
  border-radius: 10px;
}

.left-side-menu.glass-sidebar.collapsed .workspace-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.left-side-menu.glass-sidebar.collapsed .primary-cta {
  width: 100%;
  max-width: 40px;
  height: 40px;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(255, 151, 85, 0.12), rgba(95, 38, 22, 0.1)), rgba(14, 8, 6, 0.72);
  border: 1px solid rgba(255, 151, 85, 0.26);
  margin: 2px auto 0;
  padding: 0;
  gap: 0;
  justify-content: center;
}

.left-side-menu.glass-sidebar.collapsed .primary-cta .cta-assist-icon {
  width: 26px;
  height: 26px;
}

/* Switch workspace button collapsed: icon-only, ghost, centered */
.left-side-menu.glass-sidebar.collapsed .switch-workspace-btn {
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  gap: 0;
  border-radius: 8px;
  border: none;
  background: transparent;
  margin: 0 auto 4px;
}

.left-side-menu.glass-sidebar.collapsed .switch-workspace-btn:hover {
  background: rgba(255, 127, 69, 0.07);
}

.left-side-menu.glass-sidebar.collapsed .sidebar-footer {
  padding: 8px 4px 4px;
  align-items: center;
}

/* Settings button collapsed: icon-only, ghost, centered */
.left-side-menu.glass-sidebar.collapsed .sidebar-settings-btn {
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  gap: 0;
  border-radius: 8px;
  border: none;
  background: transparent;
  margin: 0 auto 2px;
}

.left-side-menu.glass-sidebar.collapsed .sidebar-settings-btn:hover {
  background: rgba(255, 127, 69, 0.07);
}

.left-side-menu.glass-sidebar.collapsed .sidebar-settings-label {
  opacity: 0;
  width: 0;
  min-width: 0;
  max-width: 0;
  margin: 0;
  transform: translateX(-6px);
  pointer-events: none;
}

/* ==========================================================================
   NAVIGATION PANELS - COLLAPSED STATE
   ========================================================================== */
.left-side-menu.glass-sidebar.collapsed .nav-accordion {
  gap: 2px;
}

.left-side-menu.glass-sidebar.collapsed .nav-group-header {
  justify-content: center;
  min-height: 24px !important;
  height: 24px !important;
  margin: 0;
  padding: 0 !important;
}

.left-side-menu.glass-sidebar.collapsed .group-title {
  justify-content: center;
  padding-left: 0;
  width: 100%;
}

/* Group icon slightly smaller in collapsed for better visual balance */
.left-side-menu.glass-sidebar.collapsed .group-icon {
  width: 16px;
  height: 16px;
  opacity: 0.55;
}

/* Active module group - stronger visual cue */
.left-side-menu.glass-sidebar.collapsed .mat-expansion-panel-header.mat-expanded .group-icon {
  opacity: 1;
  filter: none;
}

.left-side-menu.glass-sidebar.collapsed .group-chevron {
  display: none;
}

.left-side-menu.glass-sidebar.collapsed .nav-panel {
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 12px !important;
  border: 1px solid transparent !important;
  box-shadow: none !important;
}

/* Expanded panel border - subtle accent */
.left-side-menu.glass-sidebar.collapsed .nav-panel.mat-expanded {
  border-color: rgba(255, 127, 69, 0.3) !important;
  background: rgba(255, 127, 69, 0.04) !important;
  margin: 4px 0 !important;
}

/* ==========================================================================
   NAVIGATION ITEMS - COLLAPSED STATE (CRITICAL: ACTIVE STATE)
   ========================================================================== */
/* Ensure mat-expansion content is visible in collapsed state */
.left-side-menu.glass-sidebar.collapsed .nav-panel .mat-expansion-panel-content {
  display: block !important;
  height: auto !important;
  visibility: visible !important;
  overflow: visible !important;
}

.left-side-menu.glass-sidebar.collapsed .nav-panel .mat-expansion-panel-body {
  padding: 0 !important;
  overflow: visible !important;
}

/* Nav items container - reduced vertical density */
.left-side-menu.glass-sidebar.collapsed .nav-items {
  display: flex !important;
  flex-direction: column;
  gap: 0;
  padding-top: 2px;
  padding-bottom: 2px;
  margin-left: 0;
  margin-right: 0;
  overflow: visible !important;
}

/* Nav link - collapsed state base styling */
.left-side-menu.glass-sidebar.collapsed .nav-link {
  justify-content: center;
  padding: 5px 8px;
  height: 34px;
  border-radius: 10px;
  margin: 1px 4px;
  position: relative;
  transition: all 180ms cubic-bezier(0.4, 0, 0.2, 1);
  cursor: pointer;
}

/* Hover state - shadow only, no background */
.left-side-menu.glass-sidebar.collapsed .nav-link:hover {
  background: transparent;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

/* Click/Active press state - satisfying feedback */
.left-side-menu.glass-sidebar.collapsed .nav-link:active {
  transform: translateY(0) scale(0.96);
  transition: transform 80ms ease;
}

/* INACTIVE STATE: Quieter icons (60-65% opacity) */
.left-side-menu.glass-sidebar.collapsed .nav-icon {
  margin: 0;
  opacity: 0.6;
  transition: opacity 180ms ease, transform 220ms cubic-bezier(0.4, 0, 0.2, 1), filter 180ms ease;
}

.left-side-menu.glass-sidebar.collapsed .nav-icon img,
.left-side-menu.glass-sidebar.collapsed .nav-mat-icon {
  filter: grayscale(20%) brightness(0.95);
  transition: filter 180ms ease, transform 220ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* Hover state - scale up icon with smooth bounce */
.left-side-menu.glass-sidebar.collapsed .nav-link:hover .nav-icon {
  opacity: 0.92;
  transform: scale(1.12);
}

.left-side-menu.glass-sidebar.collapsed .nav-link:hover .nav-icon img {
  filter: sepia(1) saturate(2.5) hue-rotate(-25deg) brightness(1.15);
}

.left-side-menu.glass-sidebar.collapsed .nav-link:hover .nav-mat-icon {
  filter: drop-shadow(0 0 6px rgba(255, 136, 102, 0.4));
  color: #ff9966;
}

/* Click state - brief scale down for tactile feel */
.left-side-menu.glass-sidebar.collapsed .nav-link:active .nav-icon {
  transform: scale(0.95);
  transition: transform 60ms ease;
}

/* ==========================================================================
   ACTIVE STATE - Clean Minimal Design
   Single signal: Left vertical accent line + full icon opacity
   ========================================================================== */
/* Active nav link - no background, just icon emphasis */
.left-side-menu.glass-sidebar.collapsed .nav-link.active {
  background: transparent;
  box-shadow: none;
}

/* Full opacity for active icon */
.left-side-menu.glass-sidebar.collapsed .nav-link.active .nav-icon {
  opacity: 1;
}

.left-side-menu.glass-sidebar.collapsed .nav-link.active .nav-icon img {
  filter: sepia(1) saturate(3) hue-rotate(-30deg) brightness(1.25);
}

.left-side-menu.glass-sidebar.collapsed .nav-link.active .nav-mat-icon {
  color: #ff7744 !important;
  filter: drop-shadow(0 0 8px rgba(255, 119, 68, 0.4)) !important;
}

/* Left edge accent indicator - the primary active signal */
.left-side-menu.glass-sidebar.collapsed .nav-link.active::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 18px;
  background: linear-gradient(180deg, #ff8855, #ff6633);
  border-radius: 0 2px 2px 0;
  box-shadow: 0 0 8px rgba(255, 119, 68, 0.6);
}

/* Nav label hidden in collapsed */
.left-side-menu.glass-sidebar.collapsed .nav-label {
  opacity: 0;
  width: 0;
  min-width: 0;
  max-width: 0;
  transform: translateX(-6px);
  pointer-events: none;
}

/* ==========================================================================
   VISUAL GROUPING - Semantic Spacing
   Core operations, Growth/marketing, System/admin separated by gaps
   ========================================================================== */
/* First nav-panel (Core operations) - no extra top margin */
.left-side-menu.glass-sidebar.collapsed .nav-panel:first-child {
  margin-top: 0 !important;
}

/* Secondary panels get slightly more top margin for visual grouping */
.left-side-menu.glass-sidebar.collapsed .nav-panel:nth-child(n+4) {
  margin-top: 6px !important;
}

/* Last panel (System/admin) gets extra spacing */
.left-side-menu.glass-sidebar.collapsed .nav-panel:last-child {
  margin-top: 8px !important;
}

/* ==========================================================================
   TOOLTIP BEHAVIOR - Instant, Centered, Premium
   ========================================================================== */
/* Instant tooltip appearance (no delay) handled via matTooltipShowDelay="0" in HTML */
/* Ensure tooltips match premium dark theme via Angular Material theming */
/* ==========================================================================
   NOTE: Hover-expand disabled by design - use hamburger icon to toggle
   ========================================================================== */
/* ==========================================================================
   BRANCH SWITCHER PANEL - Glass Dropdown Style
   ========================================================================== */
/* Branch Dropdown Backdrop - Full screen blur behind dropdown */
.branch-dropdown-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.25);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  z-index: var(--z-drawer-backdrop);
  pointer-events: auto;
  opacity: 0;
  transition: opacity 0.2s ease-out;
  display: none;
  margin: 0;
  padding: 0;
  border: none;
  outline: none;
  box-sizing: border-box;
}

/* Show backdrop when branch dropdown is open - via JS inline style or body class */
body.branch-dropdown-open .branch-dropdown-backdrop {
  display: block;
  opacity: 1;
}

/* Branch Panel - Canonical Glass Surface styling (matches ui-modal--small) */
.sidebar-branch-panel {
  position: fixed;
  width: 420px;
  z-index: var(--z-drawer-panel);
  margin: 0;
  padding: var(--ui-space-5);
  pointer-events: auto;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  isolation: isolate; /* ← establishes stacking context for .branch-switching-overlay */
  /* CANONICAL GLASS SURFACE (from modal.scss) */
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.01));
  backdrop-filter: blur(60px) saturate(200%) brightness(1.2);
  -webkit-backdrop-filter: blur(60px) saturate(200%) brightness(1.2);
  /* Borders & Corners */
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-2xl);
  /* Shadow */
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.38);
  /* Animation — slides up from footer */
  animation: glassDropdownSlideUp 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) forwards;
}

@keyframes glassDropdownSlideUp {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.branch-panel-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 28px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  position: relative;
  z-index: 1;
}

.branch-headline {
  display: flex;
  align-items: center;
  gap: 10px;
}

.branch-headline-icon {
  font-size: 24px;
  width: 24px;
  height: 24px;
  color: #ff7744;
  filter: drop-shadow(0 0 8px rgba(255, 119, 68, 0.4));
}

.branch-headline h2 {
  font-size: 20px;
  letter-spacing: -0.02em;
  font-weight: 600;
  margin: 0;
  color: #ffffff;
}

.branch-panel-close {
  border: none;
  background: rgba(255, 255, 255, 0.05);
  width: 26px;
  height: 26px;
  border-radius: 50%;
  color: rgba(255, 255, 255, 0.7);
  cursor: pointer;
  padding: 0;
  display: grid;
  place-items: center;
  transition: background 200ms ease, color 200ms ease;
}

.branch-panel-close:hover {
  background: rgba(255, 118, 52, 0.25);
  color: #fff;
}

.branch-panel-close svg {
  width: 16px;
  height: 16px;
}

.branch-panel-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-height: 320px;
  overflow-y: auto;
  padding-right: 4px;
  position: relative;
  z-index: 1;
}

/* Branch option - Glass dropdown item pattern */
.branch-option {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  padding: 12px 16px;
  background: rgba(255, 255, 255, 0.01);
  color: inherit;
  cursor: pointer;
  transition: all 0.2s ease !important;
}

.branch-option:hover {
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: rgba(255, 255, 255, 0.15);
  transform: translateX(2px) !important;
}

.branch-option.is-selected {
  border-color: rgba(231, 70, 48, 0.65);
  background: rgba(231, 70, 48, 0.12);
  box-shadow: 0 12px 28px rgba(231, 70, 48, 0.22);
}

.branch-option-info {
  display: flex;
  align-items: center;
  gap: 14px;
}

/* CRITICAL: Branch avatar sizing */
.branch-avatar {
  width: 38px;
  height: 38px;
  min-width: 38px;
  min-height: 38px;
  max-width: 38px;
  max-height: 38px;
  border-radius: 50%;
  background: linear-gradient(135deg, #ff7034, #ff9642);
  display: grid;
  place-items: center;
  font-weight: 600;
  color: #180b05;
  letter-spacing: 0.02em;
  box-shadow: 0 6px 16px rgba(255, 112, 52, 0.4);
  overflow: hidden;
  flex-shrink: 0;
  position: relative;
}

.branch-avatar img,
.branch-avatar-img {
  width: 38px !important;
  height: 38px !important;
  min-width: 38px !important;
  min-height: 38px !important;
  max-width: 38px !important;
  max-height: 38px !important;
  object-fit: contain !important;
  border-radius: 50% !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
}

.branch-labels {
  display: flex;
  flex-direction: column;
  gap: 3px;
  text-align: left;
}

.branch-name {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.92);
}

.branch-meta {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.45);
}

.branch-option-indicator {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.28);
  display: grid;
  place-items: center;
  transition: border-color 200ms ease;
}

.branch-option-indicator-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: linear-gradient(135deg, #ff7034, #ff9642);
  transform: scale(0);
  transition: transform 150ms ease;
}

.branch-option.is-selected .branch-option-indicator {
  border-color: rgba(255, 112, 52, 0.9);
}

.branch-option.is-selected .branch-option-indicator-dot {
  transform: scale(1);
}

.branch-panel-empty {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.48);
  text-align: center;
  padding: 12px 8px;
}

/* ── Branch Switching Overlay ───────────────────────────────────── */
/* Panel dim: fade out body content while overlay is over it */
.branch-panel--switching .branch-panel-header,
.branch-panel--switching .branch-panel-body,
.branch-panel--switching .branch-panel-footer {
  opacity: 0.12;
  pointer-events: none;
  transition: opacity 0.25s ease;
}

/* Overlay: full-panel centred loading display */
.branch-switching-overlay {
  position: absolute;
  inset: 0;
  z-index: 10;
  border-radius: var(--ui-radius-2xl);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  overflow: hidden;
  animation: branchSwIn 0.3s cubic-bezier(0.4, 0, 0.2, 1) both;
}

@keyframes branchSwIn {
  from {
    opacity: 0;
    transform: scale(0.97);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
/* Ambient radial glow backdrop */
.branch-sw-glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse 70% 55% at 50% 42%, rgba(255, 120, 79, 0.12) 0%, rgba(255, 120, 79, 0.04) 45%, transparent 70%);
  animation: branchSwGlow 2.6s ease-in-out infinite;
}

@keyframes branchSwGlow {
  0%, 100% {
    opacity: 0.6;
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(1.06);
  }
}
/* Orbit container */
.branch-sw-orbit {
  position: relative;
  width: 88px;
  height: 88px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--ui-space-5);
}

/* Orbiting arc rings */
.branch-sw-ring {
  position: absolute;
  inset: -4px;
  border-radius: var(--ui-radius-full);
  border: 2px solid transparent;
  border-top-color: var(--ui-brand);
  border-right-color: rgba(255, 120, 79, 0.22);
  animation: branchSwSpin 2s linear infinite;
  filter: drop-shadow(0 0 5px rgba(255, 120, 79, 0.28));
}

.branch-sw-ring--reverse {
  inset: -10px;
  border-top-color: transparent;
  border-right-color: transparent;
  border-bottom-color: var(--ui-brand-light);
  border-left-color: rgba(255, 153, 102, 0.15);
  animation-duration: 3s;
  animation-direction: reverse;
}

@keyframes branchSwSpin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
/* Logo pill */
.branch-sw-logo {
  width: 60px;
  height: 60px;
  border-radius: var(--ui-radius-lg);
  display: grid;
  place-items: center;
  background: var(--ui-surface-1);
  box-shadow: 0 0 24px rgba(255, 120, 79, 0.18), 0 0 56px rgba(255, 120, 79, 0.06), inset 0 1px 0 var(--ui-border);
  animation: branchSwFloat 2.4s ease-in-out infinite;
}

.branch-sw-logo-img {
  width: 40px;
  height: 40px;
  object-fit: contain;
  filter: drop-shadow(0 2px 6px rgba(255, 120, 79, 0.25));
}

@keyframes branchSwFloat {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-3px);
  }
}
/* Status text */
.branch-sw-title {
  font-size: var(--ui-text-base);
  font-weight: 600;
  color: var(--ui-text-secondary);
  margin: 0 0 var(--ui-space-1);
  letter-spacing: 0.2px;
  animation: branchSwFadeUp 0.4s 0.1s cubic-bezier(0.4, 0, 0.2, 1) both;
}

.branch-sw-subtitle {
  font-size: var(--ui-text-xs);
  font-weight: 500;
  color: var(--ui-text-subtle);
  margin: 0 0 var(--ui-space-6);
  animation: branchSwFadeUp 0.4s 0.22s cubic-bezier(0.4, 0, 0.2, 1) both;
}

@keyframes branchSwFadeUp {
  from {
    opacity: 0;
    transform: translateY(5px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* Animated ellipsis */
.branch-sw-dots::after {
  content: "";
  animation: branchSwDots 1.6s steps(4, end) infinite;
}

@keyframes branchSwDots {
  0% {
    content: "";
  }
  25% {
    content: ".";
  }
  50% {
    content: "..";
  }
  75% {
    content: "...";
  }
}
/* Progress bar */
.branch-sw-progress-track {
  width: 120px;
  height: 2px;
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-3);
  overflow: hidden;
  animation: branchSwFadeUp 0.4s 0.32s cubic-bezier(0.4, 0, 0.2, 1) both;
}

.branch-sw-progress-bar {
  height: 100%;
  width: 40%;
  border-radius: var(--ui-radius-full);
  background: var(--ui-brand-gradient);
  animation: branchSwProgress 1.8s ease-in-out infinite;
  box-shadow: 0 0 8px rgba(255, 120, 79, 0.35);
}

@keyframes branchSwProgress {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(350%);
  }
}
/* ── Branch Loading Skeleton Rows ───────────────────────────────── */
.branch-skeleton-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 16px;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.04);
  background: rgba(255, 255, 255, 0.01);
  animation: branchSkeletonFadeIn 0.35s cubic-bezier(0.4, 0, 0.2, 1) both;
}

@keyframes branchSkeletonFadeIn {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.branch-skeleton-avatar {
  width: 38px !important;
  height: 38px !important;
  min-width: 38px;
  border-radius: 50% !important;
  flex-shrink: 0;
}

.branch-skeleton-labels {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.branch-skeleton-name {
  display: block;
  height: 13px;
  border-radius: 999px;
}

.branch-skeleton-meta {
  display: block;
  height: 10px;
  border-radius: 999px;
}

.branch-skeleton-indicator {
  width: 26px !important;
  height: 26px !important;
  min-width: 26px;
  border-radius: 50% !important;
  flex-shrink: 0;
}

.branch-panel-footer {
  margin-top: 16px;
  display: flex;
  justify-content: flex-end;
}

.manage-branches-btn {
  border: 1px solid rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.04);
  color: #fff;
  border-radius: 999px;
  padding: 7px 15px;
  font-size: 11px;
  cursor: pointer;
  transition: border-color 200ms ease, background 200ms ease, transform 150ms ease;
}

.manage-branches-btn:hover {
  border-color: rgba(255, 255, 255, 0.45);
  background: rgba(255, 255, 255, 0.08);
  transform: translateY(-1px);
}

/* ==========================================================================
   PHASE 5: GROUP (CORPORATE LAYER) — Branch Switcher Upgrade
   ========================================================================== */
/* Group Header — clickable corporate identity section */
.branch-group-header {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 16px;
  width: 100%;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.01);
  color: inherit;
  cursor: pointer;
  transition: all 0.2s ease;
  margin-bottom: 12px;
}

.branch-group-header:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.15);
  transform: translateX(2px);
}

.branch-group-header--active {
  border-color: rgba(231, 70, 48, 0.65);
  background: rgba(231, 70, 48, 0.12);
  box-shadow: 0 12px 28px rgba(231, 70, 48, 0.22);
}

.branch-group-header--active .branch-option-indicator {
  border-color: rgba(255, 112, 52, 0.9);
}

.branch-group-header--active .branch-option-indicator-dot {
  transform: scale(1);
}

.branch-group-header .branch-option-indicator {
  margin-left: auto;
}

.branch-group-icon {
  width: 40px;
  height: 40px;
  min-width: 40px;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(255, 143, 90, 0.18), rgba(255, 77, 63, 0.12));
  border: 1px solid rgba(255, 127, 69, 0.25);
  display: grid;
  place-items: center;
  box-shadow: 0 4px 16px rgba(255, 112, 52, 0.15);
}

.branch-group-icon img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 12px;
}

.branch-group-icon mat-icon {
  font-size: 22px;
  width: 22px;
  height: 22px;
  color: #ff8855;
  filter: drop-shadow(0 0 6px rgba(255, 136, 85, 0.35));
}

.branch-group-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.branch-group-name {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.92);
  letter-spacing: -0.01em;
}

.branch-group-label {
  font-size: 10px;
  font-weight: 500;
  color: rgba(255, 136, 85, 0.65);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* Group / Branch Divider */
.branch-group-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 127, 69, 0.2) 30%, rgba(255, 127, 69, 0.2) 70%, transparent);
  margin: 4px 16px 8px;
}

/* Nested branch option — slight left indent when grouped */
.branch-option--nested {
  margin-left: 16px;
  width: calc(100% - 16px);
}

/* Branch Type Badges */
.branch-type-badge {
  display: inline-block;
  padding: 1px 7px;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  line-height: 1.5;
}

.branch-type-badge--head {
  background: rgba(255, 143, 90, 0.15);
  color: #ff9966;
  border: 1px solid rgba(255, 143, 90, 0.25);
}

.branch-type-badge--branch {
  background: rgba(255, 255, 255, 0.05);
  color: rgba(255, 255, 255, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

/* ==========================================================================
   CORPORATE MODE — Golden Amber Variant (Phase 15.1)
   ==========================================================================
   Applied when sidebar has .corporate-mode class (GROUP mode active).
   Shifts orange accent → golden amber for visual differentiation.
   ========================================================================== */
/* Corporate Badge */
.left-side-menu.glass-sidebar .corporate-badge {
  display: inline-block;
  align-self: flex-start;
  padding: 1px 8px;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.6;
  background: linear-gradient(135deg, rgba(212, 168, 75, 0.2), rgba(184, 134, 46, 0.15));
  color: #d4a84b;
  border: 1px solid rgba(212, 168, 75, 0.35);
  margin-top: 2px;
}

/* Corporate Mode: Golden icon tint */
.left-side-menu.glass-sidebar.corporate-mode .nav-icon img {
  filter: sepia(1) saturate(1.8) hue-rotate(10deg) brightness(1.1);
}

.left-side-menu.glass-sidebar.corporate-mode .nav-link:hover .nav-icon img {
  filter: sepia(1) saturate(2) hue-rotate(10deg) brightness(1.25);
}

.left-side-menu.glass-sidebar.corporate-mode .nav-link.active .nav-icon img {
  filter: sepia(1) saturate(2.5) hue-rotate(8deg) brightness(1.3);
}

/* Corporate Mode: Golden Material icons */
.left-side-menu.glass-sidebar.corporate-mode .nav-mat-icon {
  color: #d4a84b;
  filter: drop-shadow(0 0 8px rgba(212, 168, 75, 0.3));
}

.left-side-menu.glass-sidebar.corporate-mode .nav-link:hover .nav-mat-icon {
  color: #c89b3f;
  filter: drop-shadow(0 0 10px rgba(200, 155, 63, 0.5));
}

.left-side-menu.glass-sidebar.corporate-mode .nav-link.active .nav-mat-icon {
  color: #b8862e;
  filter: drop-shadow(0 0 12px rgba(184, 134, 46, 0.6));
}

/* Corporate Mode: Golden active background */
.left-side-menu.glass-sidebar.corporate-mode .nav-link.active {
  background: rgba(212, 168, 75, 0.12);
}

/* Corporate Mode: Golden CTA */
.left-side-menu.glass-sidebar.corporate-mode .primary-cta {
  background: linear-gradient(135deg, rgba(212, 168, 75, 0.15), rgba(184, 134, 46, 0.1));
  border-color: rgba(212, 168, 75, 0.3);
  color: #d4a84b;
}

.left-side-menu.glass-sidebar.corporate-mode .primary-cta:hover {
  background: linear-gradient(135deg, rgba(212, 168, 75, 0.25), rgba(184, 134, 46, 0.2));
  border-color: rgba(212, 168, 75, 0.45);
  color: #f0d080;
}

.left-side-menu.glass-sidebar.corporate-mode .cta-assist-icon {
  filter: sepia(1) saturate(1.45) hue-rotate(10deg) brightness(1.05) drop-shadow(0 0 8px rgba(212, 168, 75, 0.32));
}

.left-side-menu.glass-sidebar.corporate-mode .primary-cta:hover .cta-assist-icon {
  filter: sepia(1) saturate(1.7) hue-rotate(10deg) brightness(1.14) drop-shadow(0 0 10px rgba(240, 208, 128, 0.48));
}

.left-side-menu.glass-sidebar.corporate-mode .cta-shortcut {
  color: rgba(212, 168, 75, 0.45);
}

.left-side-menu.glass-sidebar.corporate-mode .cta-label {
  text-shadow: 0 0 12px rgba(212, 168, 75, 0.18);
}

/* Corporate Mode: Golden toggle button */
.left-side-menu.glass-sidebar.corporate-mode .sidebar-toggle-btn {
  background: linear-gradient(135deg, rgba(212, 168, 75, 0.15), rgba(184, 134, 46, 0.1));
  border-color: rgba(212, 168, 75, 0.3);
  color: #d4a84b;
}

.left-side-menu.glass-sidebar.corporate-mode .sidebar-toggle-btn:hover {
  background: linear-gradient(135deg, rgba(212, 168, 75, 0.25), rgba(184, 134, 46, 0.2));
  border-color: rgba(212, 168, 75, 0.45);
  color: #f0d080;
}

/* Corporate Mode: Golden group icon tint */
.left-side-menu.glass-sidebar.corporate-mode .group-icon {
  filter: sepia(1) saturate(1.5) hue-rotate(10deg) brightness(1.1);
}

.left-side-menu.glass-sidebar.corporate-mode .nav-group-header:hover .group-icon,
.left-side-menu.glass-sidebar.corporate-mode .mat-expansion-panel-header.mat-expanded .group-icon {
  filter: sepia(1) saturate(2) hue-rotate(8deg) brightness(1.2);
}

.left-side-menu.glass-sidebar.corporate-mode .nav-group-header[aria-label=Intelligence] .group-icon {
  opacity: 0.72;
  filter: sepia(1) saturate(1.45) hue-rotate(10deg) brightness(1.02);
}

.left-side-menu.glass-sidebar.corporate-mode .nav-group-header[aria-label=Intelligence]:hover .group-icon,
.left-side-menu.glass-sidebar.corporate-mode .nav-group-header[aria-label=Intelligence].mat-expanded .group-icon {
  opacity: 0.95;
  filter: sepia(1) saturate(1.75) hue-rotate(10deg) brightness(1.12) drop-shadow(0 0 6px rgba(212, 168, 75, 0.28));
}

/* Corporate Mode: Golden collapsed active indicator */
.left-side-menu.glass-sidebar.corporate-mode.collapsed .nav-link.active::before {
  background: linear-gradient(180deg, #d4a84b, #b8862e);
  box-shadow: 0 0 8px rgba(212, 168, 75, 0.6);
}

/* Corporate Mode: Golden collapsed expanded panel */
.left-side-menu.glass-sidebar.corporate-mode.collapsed .nav-panel.mat-expanded {
  border-color: rgba(212, 168, 75, 0.3) !important;
  background: rgba(212, 168, 75, 0.04) !important;
}

/* ==========================================================================
   SIDEBAR SKELETON LOADER
   ==========================================================================
   Shimmer placeholders shown while navigation data loads.
   Uses the global ui-skeleton system for consistent animation.
   ========================================================================== */
.left-side-menu.glass-sidebar .nav-skeleton {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 4px 0;
}

.left-side-menu.glass-sidebar .nav-skeleton-module {
  padding: 6px 4px;
  border-radius: 10px;
}

.left-side-menu.glass-sidebar .nav-skeleton-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 4px;
}

.left-side-menu.glass-sidebar .nav-skeleton-icon {
  width: 18px !important;
  height: 18px !important;
  border-radius: 6px !important;
  flex-shrink: 0;
}

.left-side-menu.glass-sidebar .nav-skeleton-label {
  height: 12px;
  border-radius: 999px;
}

/* Stagger animation for natural cascading feel */
.left-side-menu.glass-sidebar .nav-skeleton-module:nth-child(1) .ui-skeleton::after {
  animation-delay: 0ms;
}

.left-side-menu.glass-sidebar .nav-skeleton-module:nth-child(2) .ui-skeleton::after {
  animation-delay: 80ms;
}

.left-side-menu.glass-sidebar .nav-skeleton-module:nth-child(3) .ui-skeleton::after {
  animation-delay: 160ms;
}

.left-side-menu.glass-sidebar .nav-skeleton-module:nth-child(4) .ui-skeleton::after {
  animation-delay: 240ms;
}

.left-side-menu.glass-sidebar .nav-skeleton-module:nth-child(5) .ui-skeleton::after {
  animation-delay: 320ms;
}

.left-side-menu.glass-sidebar .nav-skeleton-module:nth-child(6) .ui-skeleton::after {
  animation-delay: 400ms;
}

/* Hide skeleton in collapsed state */
.left-side-menu.glass-sidebar.collapsed .nav-skeleton {
  display: none;
}

/* Error state — shown when /identity/me fails */
.left-side-menu.glass-sidebar .nav-error-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 32px 16px;
  gap: 8px;
  text-align: center;
  animation: fadeIn 300ms ease-out;
}

.left-side-menu.glass-sidebar .nav-error-icon {
  font-size: 32px !important;
  width: 32px !important;
  height: 32px !important;
  color: rgba(255, 127, 69, 0.6);
}

.left-side-menu.glass-sidebar .nav-error-state p {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
  margin: 0;
}

.left-side-menu.glass-sidebar .nav-error-retry {
  margin-top: 8px;
  padding: 6px 16px;
  border-radius: 999px;
  border: 1px solid rgba(255, 127, 69, 0.25);
  background: rgba(255, 127, 69, 0.1);
  color: #ffbca6;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: all 200ms ease;
}

.left-side-menu.glass-sidebar .nav-error-retry:hover {
  background: rgba(255, 127, 69, 0.2);
  border-color: rgba(255, 127, 69, 0.4);
  color: #fff;
}

/* ==========================================================================
   BP-17 — MOBILE SIDEBAR OVERLAY
   ==========================================================================
   At ≤768px the sidebar becomes a fixed overlay drawer.
   Default state: off-screen to the left (translateX(-100%)).
   Open state:    body.mobile-sidebar-open → sidebar slides in (translateX(0)).
   Z-index: 300 — above all content, below command palette (10000040).
   ========================================================================== */
@media (max-width: 768px) {
  /* Host element: remove from flow, become a fixed overlay */
  app-console-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    height: 100dvh;
    width: 260px !important;
    z-index: 300;
    transform: translateX(-100%);
    transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1);
    /* Override collapsed width — always show full sidebar on mobile */
  }
  /* Sidebar open: slide in */
  body.mobile-sidebar-open app-console-sidebar {
    transform: translateX(0);
  }
  /* When open, sidebar is never icon-only — always full width */
  body.mobile-sidebar-open app-console-sidebar.is-collapsed {
    width: 260px !important;
  }
  /* Inner glass panel: full height, no border-radius on left (flush with edge) */
  app-console-sidebar .left-side-menu.glass-sidebar {
    height: 100%;
    margin: 0;
    border-radius: 0 20px 20px 0;
    box-shadow: 4px 0 40px rgba(0, 0, 0, 0.5), inset 0 0 0 1px rgba(255, 255, 255, 0.04);
  }
  /* Collapsed state has no meaning on mobile — always show labels */
  app-console-sidebar.is-collapsed .group-name,
  app-console-sidebar.is-collapsed .nav-label,
  app-console-sidebar.is-collapsed .workspace-meta,
  app-console-sidebar.is-collapsed .workspace-title {
    display: block !important;
    opacity: 1 !important;
    max-width: unset !important;
  }
  /* Restore full width for the hover-expanded state on mobile */
  app-console-sidebar.is-hover-expanded {
    width: 260px !important;
  }
  app-console-sidebar.is-hover-expanded .left-side-menu.glass-sidebar {
    position: relative;
    width: 100%;
  }
}
/*
 * CONTRACT RULE — SINGLE OWNER
 * Selectors defined here must NOT be redefined in:
 *   - ui/data/*
 *   - ui/tables/*
 *   - ui/modals/*
 * Other layers may use scoped overrides (parent > child) only.
 */
/* ==========================================================================
   UI LAYOUT - PAGE CONTRACT
   ==========================================================================
   Base page layout. Pages opt into variants via .ui-page--* classes.
   ALL page layouts inherit this foundation.
   ========================================================================== */
/* ==========================================================================
   UI LAYOUT - GRID CONTRACT
   ==========================================================================
   Shared grid patterns for summary cards and split layouts.
   ========================================================================== */
/* Summary card grids */
.glass-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ui-space-5);
}

@media (max-width: 1200px) {
  .glass-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 768px) {
  .glass-summary-grid {
    grid-template-columns: 1fr;
  }
}
.glass-summary-grid.cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 768px) {
  .glass-summary-grid.cols-2 {
    grid-template-columns: 1fr;
  }
}
/* Step-based two-column flows */
.step-flow-container {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: var(--ui-space-6);
  align-items: start;
}

.step-column-left,
.step-column-right {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
  min-width: 0;
}

@media (max-width: 1100px) {
  .step-flow-container {
    grid-template-columns: 1fr;
  }
}
/* Card grids */
.ui-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--ui-space-6);
}

@media (max-width: 768px) {
  .ui-card-grid {
    grid-template-columns: 1fr;
  }
}
/* Manager insights grid (wide + side panel) */
.manager-insights-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: var(--ui-space-4);
}

@media (max-width: 960px) {
  .manager-insights-grid {
    grid-template-columns: 1fr;
  }
}
/* Summary card grid (3-up) */
.summary-card {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ui-space-5);
  align-items: stretch;
}

@media (max-width: 1200px) {
  .summary-card {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 768px) {
  .summary-card {
    grid-template-columns: 1fr;
  }
}
/* Job value overview split layout */
.jvo-split-row {
  display: flex;
  align-items: stretch;
  gap: var(--ui-space-5);
  flex-wrap: wrap;
}

@media (max-width: 1100px) {
  .jvo-split-row {
    flex-direction: column;
  }
}
/* Modal meta split layout */
.meta-split-layout {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: var(--ui-space-5);
}

@media (max-width: 960px) {
  .meta-split-layout {
    grid-template-columns: 1fr;
  }
}
.details-grid {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.tech-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-4);
}

@media (max-width: 720px) {
  .tech-grid {
    grid-template-columns: 1fr;
  }
}
/* Rules grid (four columns) */
.rules-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--ui-space-4);
}

@media (max-width: 1100px) {
  .rules-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 720px) {
  .rules-grid {
    grid-template-columns: 1fr;
  }
}
/* Cadence timeline (stepper layout) */
.cadence-timeline {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.timeline-step {
  display: grid;
  grid-template-columns: minmax(0, calc(var(--ui-space-12) * 1.4)) minmax(0, 1fr);
  gap: var(--ui-space-4);
  position: relative;
  padding: var(--ui-space-3) 0;
}

.step-day {
  display: flex;
  align-items: flex-start;
}

.day-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: calc(var(--ui-space-1) / 2) var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border-light);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ui-text-secondary);
}

.step-connector {
  position: absolute;
  left: var(--ui-space-6);
  top: calc(var(--ui-space-6));
  width: calc(var(--ui-space-1) / 2);
  height: calc(100% - var(--ui-space-6));
  background: var(--ui-border-light);
  transform: translateX(-50%);
}

.step-content {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  min-width: 0;
}

.step-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
}

.step-meta {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

/* Escalation matrix */
.escalation-matrix {
  display: grid;
  gap: 0;
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-lg);
  overflow: hidden;
}

.matrix-row {
  display: grid;
  grid-template-columns: minmax(0, calc(var(--ui-space-12) * 2.5)) minmax(0, 1fr) minmax(0, calc(var(--ui-space-12) * 3.75));
  gap: var(--ui-space-3);
  align-items: center;
  padding: var(--ui-space-3) var(--ui-space-4);
  border-bottom: 1px solid var(--ui-border-light);
  background: var(--ui-surface-1);
}

.matrix-row:last-child {
  border-bottom: none;
}

.matrix-header {
  background: var(--ui-surface-2);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
}

/* Base page shell - optional wrapper for ambient effects */
.ui-page {
  position: relative;
  min-height: calc(100vh - 60px);
  padding: var(--ui-space-6) var(--ui-space-4);
  color: var(--ui-text-primary);
  font-family: var(--ui-font-primary);
}

/* Page content container - centers and constrains width */
.ui-page__content {
  position: relative;
  z-index: var(--z-base);
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-6);
}

/* Legacy pages still mount content directly under .ui-page.
   Give them the same centered shell until each template is migrated. */
.ui-page > :where(:not(.ui-page__content):not(.fd-shell):not(.glass-page-shell):not(.glass-page-glow):not(.fd-glow):not(mat-menu):not(router-outlet):not(script):not(style):not([class*=backdrop]):not([class*=overlay]):not([class*=lightbox])) {
  position: relative;
  z-index: var(--z-base);
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
}

/* Normalize header spacing inside page stacks */
.ui-page__content > .erp-header-block {
  margin-bottom: 0;
}

/* Full-width variant */
.ui-page--full .ui-page__content {
  max-width: none;
}

.ui-page--full > :where(:not(.ui-page__content):not(.fd-shell):not(.glass-page-shell):not(.glass-page-glow):not(.fd-glow):not(mat-menu):not(router-outlet):not(script):not(style):not([class*=backdrop]):not([class*=overlay]):not([class*=lightbox])) {
  max-width: none;
}

/* Narrow variant for forms/detail pages */
.ui-page--narrow .ui-page__content {
  max-width: 960px;
}

.ui-page--narrow > :where(:not(.ui-page__content):not(.fd-shell):not(.glass-page-shell):not(.glass-page-glow):not(.fd-glow):not(mat-menu):not(router-outlet):not(script):not(style):not([class*=backdrop]):not([class*=overlay]):not([class*=lightbox])) {
  max-width: 960px;
}

/* ==========================================================================
   AMBIENT GLOW EFFECTS (Optional)
   Apply .ui-page--glow to enable background glow orbs
   ========================================================================== */
.ui-page--glow::before,
.ui-page--glow::after {
  content: "";
  position: fixed;
  border-radius: 50%;
  filter: blur(100px);
  opacity: 0.45;
  z-index: 0;
  pointer-events: none;
}

.ui-page--glow::before {
  width: 320px;
  height: 320px;
  top: -40px;
  left: -60px;
  background: var(--ui-brand);
  animation: ui-glow-pulse 14s ease-in-out infinite;
}

.ui-page--glow::after {
  width: 280px;
  height: 280px;
  bottom: 40px;
  right: -80px;
  background: #6c5bff;
  animation: ui-glow-pulse 14s ease-in-out infinite 2s;
}

@keyframes ui-glow-pulse {
  0%, 100% {
    opacity: 0.4;
    transform: scale(0.95);
  }
  50% {
    opacity: 0.75;
    transform: scale(1.05);
  }
}
/* ==========================================================================
   LEGACY GLASS PAGE SHELL (Table Pages)
   ========================================================================== */
/* Avoid double padding when glass-page-shell is nested in ui-page */
.ui-page:has(.glass-page-shell) {
  padding: 0;
}

/* OWNER: ui/layout/page.scss */
.glass-page-shell {
  position: relative;
  min-height: calc(100vh - 60px);
  padding: var(--ui-space-6) var(--ui-space-4) calc(var(--ui-space-12) + var(--ui-space-4));
  color: var(--ui-text-primary);
  font-family: var(--ui-font-primary);
}

.glass-page-content {
  position: relative;
  z-index: var(--z-base);
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-6);
}

.glass-page-glow {
  position: fixed;
  border-radius: 50%;
  filter: blur(100px);
  opacity: 0.45;
  z-index: 0;
  pointer-events: none;
  animation: ui-glow-pulse 14s ease-in-out infinite;
}

.glass-page-glow.glow-1 {
  width: 320px;
  height: 320px;
  top: -40px;
  left: -60px;
  background: var(--ui-brand);
}

.glass-page-glow.glow-2 {
  width: 360px;
  height: 360px;
  top: 80px;
  right: -80px;
  background: var(--ui-info);
  animation-delay: 1s;
}

.glass-page-glow.glow-3 {
  width: calc(var(--ui-space-12) * 3);
  height: calc(var(--ui-space-12) * 3);
  bottom: var(--ui-space-10);
  left: 30%;
  background: var(--ui-success);
  animation-delay: 2s;
}

.glass-page-back-link {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  text-decoration: none;
  transition: color var(--ui-transition-base);
}

.glass-page-back-link mat-icon {
  font-size: var(--ui-text-base);
  width: var(--ui-text-base);
  height: var(--ui-text-base);
  color: var(--ui-brand);
}

.glass-page-back-link:hover {
  color: var(--ui-text-primary);
}

/* Loading overlay used by data-heavy pages */
.loading-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-2);
  background: var(--ui-glass-dark);
  backdrop-filter: var(--ui-blur-sm);
  -webkit-backdrop-filter: var(--ui-blur-sm);
  border-radius: var(--ui-radius-xl);
  z-index: var(--z-sticky);
}

.loading-overlay--skeleton {
  align-items: stretch;
  justify-content: flex-start;
  gap: var(--ui-space-4);
  padding: var(--ui-space-6);
}

/* ==========================================================================
   DASHBOARD SHELL (fd-shell)
   ========================================================================== */
.ui-page--dashboard:has(> .fd-shell) {
  padding: 0;
}

.fd-shell {
  position: relative;
  min-height: calc(100vh - 60px);
  margin: 0 auto;
  padding: var(--ui-space-6) var(--ui-space-4);
  color: var(--ui-text-primary);
  font-family: var(--ui-font-primary);
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-6);
}

.fd-shell > * {
  position: relative;
  z-index: var(--z-base);
}

.fd-glow {
  position: fixed;
  border-radius: 50%;
  filter: var(--ui-blur-xl);
  opacity: 0.12;
  pointer-events: none;
  z-index: 0;
}

.fd-glow-1 {
  width: calc(var(--ui-space-10) * 4);
  height: calc(var(--ui-space-10) * 4);
  top: calc(var(--ui-space-10) * -1);
  left: calc(var(--ui-space-12) * -1);
  background: var(--ui-brand);
}

.fd-glow-2 {
  width: calc(var(--ui-space-10) * 4);
  height: calc(var(--ui-space-10) * 4);
  top: calc(var(--ui-space-12) + var(--ui-space-4));
  right: calc(var(--ui-space-10) * -2);
  background: var(--ui-info);
}

.fd-glow-3 {
  width: calc(var(--ui-space-12) * 3);
  height: calc(var(--ui-space-12) * 3);
  bottom: var(--ui-space-10);
  left: 35%;
  background: var(--ui-success);
}

/* Tabbed content spacing */
.tab-content-container {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-6);
}

.tab-panel {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-6);
}

/* Operations toolbar */
.operations-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-4);
  flex-wrap: wrap;
  padding: var(--ui-space-4) var(--ui-space-5);
  border-radius: var(--ui-radius-xl);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
}

.operations-search {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-4);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border);
  flex: 1 1 320px;
  max-width: calc(var(--ui-space-12) * 10);
}

.operations-search mat-icon {
  font-size: var(--ui-text-md);
  width: var(--ui-text-md);
  height: var(--ui-text-md);
  color: var(--ui-text-muted);
}

.operations-search input {
  flex: 1;
  border: none;
  outline: none;
  background: transparent;
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
}

.operations-search input::placeholder {
  color: var(--ui-text-subtle);
}

.operations-actions {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

/* Filter drawer (off-canvas panel) */
.filter-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: calc(var(--ui-space-12) * 9);
  max-width: 92vw;
  display: flex;
  flex-direction: column;
  background: var(--ui-glass-medium);
  backdrop-filter: var(--ui-blur-xl);
  -webkit-backdrop-filter: var(--ui-blur-xl);
  border-left: 1px solid var(--ui-border);
  box-shadow: var(--ui-shadow-xl);
  transform: translateX(100%);
  transition: transform var(--ui-transition-spring);
  z-index: var(--z-drawer-panel);
}

.filter-drawer.open {
  transform: translateX(0);
}

.filter-drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--ui-space-5) var(--ui-space-6);
  border-bottom: 1px solid var(--ui-border);
}

.filter-drawer-body {
  padding: var(--ui-space-5) var(--ui-space-6);
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  overflow-y: auto;
}

.filter-drawer-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-2);
  padding: var(--ui-space-4) var(--ui-space-6);
  border-top: 1px solid var(--ui-border);
}

.ghost-icon {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: none;
  background: transparent;
  color: var(--ui-text-muted);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: var(--ui-transition-base);
}

.ghost-icon:hover {
  background: var(--ui-surface-2);
  color: var(--ui-text-secondary);
}

.drawer-overlay {
  position: fixed;
  inset: 0;
  z-index: var(--z-drawer-backdrop);
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: var(--ui-blur-sm);
  -webkit-backdrop-filter: var(--ui-blur-sm);
}

.filter-drawer .filter-group {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.filter-drawer .filter-label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ui-text-muted);
}

.filter-drawer .risk-filter-pills {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
}

.filter-drawer .filter-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--ui-space-2) var(--ui-space-4);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.filter-drawer .filter-pill.active {
  border-color: var(--ui-border-focus);
  background: var(--ui-surface-2);
  color: var(--ui-text-primary);
}

.filter-drawer .filter-pill--high.active {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
}

.filter-drawer .filter-pill--medium.active {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.filter-drawer .filter-pill--low.active {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

/* Centered loading state for pages */
.ui-loading-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-4);
  padding: var(--ui-space-10) var(--ui-space-4);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  text-align: center;
}

/* Page-level empty states */
.ui-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-10) var(--ui-space-6);
  color: var(--ui-text-muted);
}

.ui-empty-state--bordered {
  background: var(--ui-surface-1);
  border: 1px dashed var(--ui-border);
  border-radius: var(--ui-radius-2xl);
}

.ui-empty-state__icon {
  font-size: var(--ui-text-3xl);
  width: var(--ui-text-3xl);
  height: var(--ui-text-3xl);
  color: var(--ui-text-subtle);
}

.ui-empty-state__title {
  margin: 0;
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
}

.ui-empty-state__text {
  margin: 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

/*
 * CONTRACT RULE — SINGLE OWNER
 * Selectors defined here must NOT be redefined in:
 *   - ui/data/*
 *   - ui/tables/*
 *   - ui/modals/*
 * Other layers may use scoped overrides (parent > child) only.
 */
/* ==========================================================================
   UI LAYOUT - MODAL CONTRACT (CRITICAL)
   ==========================================================================
   Base modal system. ALL modals MUST use this structure.

   USAGE:
   - Apply .ui-modal to the modal wrapper
   - Apply .ui-modal__backdrop for the overlay
   - Apply .ui-modal__panel for the modal content
   - Add ONE variant class: .ui-modal--big, .ui-modal--small, .ui-modal--print

   Z-INDEX RULES:
   - Modal backdrop: var(--z-modal-backdrop) = 1050
   - Modal panel: var(--z-modal) = 1100
   - Dropdowns inside modals: var(--z-modal-dropdown) = 1150

   NO modal component may define its own:
   - z-index
   - backdrop styling
   - fixed positioning
   ========================================================================== */
/* ==========================================================================
   CANONICAL GLASS MODAL BASE (SINGLE SOURCE OF TRUTH)
   ==========================================================================
   ALL modal glass visuals MUST inherit from this section.
   NO other file may define modal glass backgrounds, blur, or backdrop.

   GLASS VISUAL PARAMETERS (canonical values):
   - Backdrop: rgba(8, 8, 8, 0.65) with blur(12px) saturate(150%)
   - Surface gradient: linear-gradient(150deg, rgba(255,255,255,0.05), rgba(255,255,255,0.01))
   - Surface blur: blur(60px) saturate(200%) brightness(1.2)
   - Border: 1px solid rgba(255,255,255,0.08)
   - Shadow: 0 24px 60px rgba(0,0,0,0.38)
   - Radius: 24px
   ========================================================================== */
/* CANONICAL BACKDROP - applies to ALL modals */
.ui-modal-backdrop,
.cdk-overlay-backdrop.ui-modal-backdrop,
.glass-modal-backdrop,
.glass-modal-backdrop-v2,
.glass-dialog-backdrop {
  background: rgba(8, 8, 8, 0.65) !important;
  backdrop-filter: blur(12px) saturate(150%) !important;
  -webkit-backdrop-filter: blur(12px) saturate(150%) !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

/* CANONICAL GLASS SURFACE - applies to modal containers */
/* OWNER: ui/layout/modal.scss */
.glass-modal-surface,
.glass-modal-container,
.glass-modal-container.glass-modal-surface {
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.01)) !important;
  backdrop-filter: blur(60px) saturate(200%) brightness(1.2) !important;
  -webkit-backdrop-filter: blur(60px) saturate(200%) brightness(1.2) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.38) !important;
  border-radius: 24px !important;
  overflow: hidden !important;
}

/* MATERIAL CONTAINER RESET - transparent wrapper for glass to show through */
.cdk-overlay-pane[class*=-dialog-panel] .mat-mdc-dialog-container,
.cdk-overlay-pane[class*=-dialog-panel] .mdc-dialog__container,
.cdk-overlay-pane[class*=-dialog-panel] .mdc-dialog__surface,
.cdk-overlay-pane[class*=-dialog-panel] .mat-mdc-dialog-surface {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  border: none !important;
  padding: 0 !important;
  border-radius: 24px !important;
  overflow: visible !important;
}

/* Ensure glass modal containers clip their own surface */
.cdk-overlay-pane[class*=-dialog-panel] .glass-modal-container {
  border-radius: 24px !important;
  overflow: hidden !important;
}

/* Panel pane transparency for all dialog panels */
.cdk-overlay-pane[class*=-dialog-panel] {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
}

/* UNIFIED BACKDROP for all panel classes - excludes transparent dropdown/datepicker backdrops.
   NOTE: Angular Material datepicker uses 'mat-overlay-transparent-backdrop' (mat- prefix),
   while CDK uses 'cdk-overlay-transparent-backdrop' (cdk- prefix). Both must be excluded. */
.cdk-overlay-container:has(.cdk-overlay-pane[class*=-dialog-panel]) .cdk-overlay-backdrop.cdk-overlay-backdrop-showing:not(.cdk-overlay-transparent-backdrop):not(.mat-overlay-transparent-backdrop),
.cdk-overlay-container:has(.cdk-overlay-pane.glass-dialog-panel) .cdk-overlay-backdrop.cdk-overlay-backdrop-showing:not(.cdk-overlay-transparent-backdrop):not(.mat-overlay-transparent-backdrop),
.cdk-overlay-container:has(.cdk-overlay-pane.job-details-dialog-panel) .cdk-overlay-backdrop.cdk-overlay-backdrop-showing:not(.cdk-overlay-transparent-backdrop):not(.mat-overlay-transparent-backdrop),
.cdk-overlay-container:has(.cdk-overlay-pane.workshop-pipeline-dialog-panel) .cdk-overlay-backdrop.cdk-overlay-backdrop-showing:not(.cdk-overlay-transparent-backdrop):not(.mat-overlay-transparent-backdrop),
.cdk-overlay-container:has(.cdk-overlay-pane.issue-parts-dialog-panel) .cdk-overlay-backdrop.cdk-overlay-backdrop-showing:not(.cdk-overlay-transparent-backdrop):not(.mat-overlay-transparent-backdrop),
.cdk-overlay-container:has(.cdk-overlay-pane.pick-drop-details-panel) .cdk-overlay-backdrop.cdk-overlay-backdrop-showing:not(.cdk-overlay-transparent-backdrop):not(.mat-overlay-transparent-backdrop),
.cdk-overlay-container:has(.cdk-overlay-pane.edit-service-dialog) .cdk-overlay-backdrop.cdk-overlay-backdrop-showing:not(.cdk-overlay-transparent-backdrop):not(.mat-overlay-transparent-backdrop),
.cdk-overlay-container:has(.cdk-overlay-pane.package-modal-panel) .cdk-overlay-backdrop.cdk-overlay-backdrop-showing:not(.cdk-overlay-transparent-backdrop):not(.mat-overlay-transparent-backdrop) {
  background: rgba(8, 8, 8, 0.65) !important;
  backdrop-filter: blur(12px) saturate(150%) !important;
  -webkit-backdrop-filter: blur(12px) saturate(150%) !important;
  opacity: 1 !important;
}

/* ==========================================================================
   SIZE VARIANTS (only dimensions, NO glass redefinition)
   ========================================================================== */
.ui-modal--small,
.cdk-overlay-pane.ui-modal--small {
  max-width: 550px !important;
}

.ui-modal--default,
.cdk-overlay-pane.ui-modal--default {
  max-width: 720px !important;
}

.ui-modal--large,
.cdk-overlay-pane.ui-modal--large {
  max-width: 960px !important;
}

.ui-modal--xlarge,
.cdk-overlay-pane.ui-modal--xlarge {
  width: 94vw !important;
  max-width: 94vw !important;
  height: 92vh !important;
  max-height: calc(100vh - 24px) !important;
  margin: auto !important;
}

@supports (height: 100dvh) {
  .ui-modal--xlarge,
  .cdk-overlay-pane.ui-modal--xlarge {
    height: min(92dvh, 100dvh - 24px) !important;
    max-height: min(92dvh, 100dvh - 24px) !important;
  }
}
/* Center xlarge modal dialogs */
.cdk-global-overlay-wrapper:has(.ui-modal--xlarge) {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}

/* Make xlarge modal content fill the height */
.cdk-overlay-pane.ui-modal--xlarge .mat-mdc-dialog-container,
.cdk-overlay-pane.ui-modal--xlarge .mdc-dialog__container,
.cdk-overlay-pane.ui-modal--xlarge .mdc-dialog__surface,
.cdk-overlay-pane.ui-modal--xlarge .mat-mdc-dialog-surface,
.cdk-overlay-pane:has(.ui-modal--xlarge) .mat-mdc-dialog-container,
.cdk-overlay-pane:has(.ui-modal--xlarge) .mdc-dialog__container,
.cdk-overlay-pane:has(.ui-modal--xlarge) .mdc-dialog__surface,
.cdk-overlay-pane:has(.ui-modal--xlarge) .mat-mdc-dialog-surface {
  height: 100% !important;
}

/* Angular component host elements are display: inline by default.
   height: 100% doesn't work on inline elements, so we need display: block. */
.cdk-overlay-pane.ui-modal--xlarge .mdc-dialog__surface > *,
.cdk-overlay-pane.ui-modal--xlarge .mat-mdc-dialog-surface > *,
.cdk-overlay-pane:has(.ui-modal--xlarge) .mdc-dialog__surface > *,
.cdk-overlay-pane:has(.ui-modal--xlarge) .mat-mdc-dialog-surface > * {
  display: block !important;
  height: 100% !important;
}

.cdk-overlay-pane.ui-modal--xlarge mat-dialog-content,
.cdk-overlay-pane.ui-modal--xlarge .mat-mdc-dialog-content,
.cdk-overlay-pane.ui-modal--xlarge .mdc-dialog__content,
.cdk-overlay-pane.activity-edit-info-panel mat-dialog-content,
.cdk-overlay-pane.activity-edit-info-panel .mat-mdc-dialog-content,
.cdk-overlay-pane.activity-edit-info-panel .mdc-dialog__content {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

.cdk-overlay-pane.activity-edit-info-panel mat-dialog-content > .row,
.cdk-overlay-pane.activity-edit-info-panel .mat-mdc-dialog-content > .row,
.cdk-overlay-pane.activity-edit-info-panel .mdc-dialog__content > .row {
  height: 100% !important;
  margin: 0 !important;
}

.cdk-overlay-pane.activity-edit-info-panel mat-dialog-content > .row > [class*=col-],
.cdk-overlay-pane.activity-edit-info-panel .mat-mdc-dialog-content > .row > [class*=col-],
.cdk-overlay-pane.activity-edit-info-panel .mdc-dialog__content > .row > [class*=col-] {
  height: 100% !important;
  padding: 0 !important;
}

.cdk-overlay-pane.ui-modal--xlarge .glass-modal-container,
.glass-modal-container.ui-modal--xlarge {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  max-width: none !important;
  max-height: none !important;
  height: 100% !important;
  min-height: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
  overflow: hidden !important;
}

/* Ensure standalone component hosts fill xlarge modal height. */
.cdk-overlay-pane.ui-modal--xlarge .mdc-dialog__surface > *,
.cdk-overlay-pane.ui-modal--xlarge .mat-mdc-dialog-surface > * {
  display: block !important;
  height: 100% !important;
}

.cdk-overlay-pane.ui-modal--xlarge .glass-modal-body,
.glass-modal-container.ui-modal--xlarge .glass-modal-body {
  flex: 1 1 0 !important;
  min-height: 0 !important;
  max-height: none !important;
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
  overflow-y: auto !important;
}

.cdk-overlay-pane.ui-modal--xlarge .glass-modal-body > *:last-child,
.glass-modal-container.ui-modal--xlarge .glass-modal-body > *:last-child {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.cdk-overlay-pane.ui-modal--xlarge .glass-modal-body form,
.glass-modal-container.ui-modal--xlarge .glass-modal-body form {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.cdk-overlay-pane.ui-modal--xlarge .glass-modal-footer,
.glass-modal-container.ui-modal--xlarge .glass-modal-footer {
  flex: 0 0 auto !important;
  margin-bottom: 0 !important;
  padding: 12px 24px !important;
}

.cdk-overlay-pane.ui-modal--xlarge .glass-modal-footer button,
.glass-modal-container.ui-modal--xlarge .glass-modal-footer button {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* ==========================================================================
   SALE MODAL V2 — Enterprise POS Layout
   Flat, fast, keyboard-first. No glass, no nested cards.
   ========================================================================== */
.sale-v2 {
  display: flex;
  flex-direction: column;
  height: 100%;
  max-height: 92vh;
  overflow: hidden;
}

/* ── TOP BAR ────────────────────────────────────────────────────────────── */
.sale-v2-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-5);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  flex: 0 0 auto;
}

.sale-v2-topbar__left {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  min-width: 0;
}

.sale-v2-topbar__title {
  margin: 0;
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  white-space: nowrap;
}

.sale-v2-topbar__badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: var(--ui-radius-full);
  background: rgba(255, 255, 255, 0.06);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  letter-spacing: 0.04em;
}

.sale-v2-topbar__status {
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-2);
  color: var(--ui-text-muted);
}

.sale-v2-topbar__status.status-open {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.sale-v2-topbar__status.status-paid {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.sale-v2-topbar__status.status-cancelled {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
}

.sale-v2-topbar__right {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.sale-v2-topbar__meta {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  padding: 4px 10px;
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-1);
}

.sale-v2-topbar__meta mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.sale-v2-topbar__icon-btn {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid var(--ui-border-light);
  background: transparent;
  color: var(--ui-text-muted);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.sale-v2-topbar__icon-btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
  pointer-events: none;
}

.sale-v2-topbar__icon-btn:hover {
  background: var(--ui-surface-hover);
  color: var(--ui-text-primary);
}

.sale-v2-topbar__icon-btn.is-active {
  background: var(--ui-accent-bg);
  border-color: var(--ui-accent-border);
  color: var(--ui-accent);
}

.sale-v2-topbar__icon-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.sale-v2-topbar__close {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid var(--ui-border-light);
  background: transparent;
  color: var(--ui-text-muted);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.sale-v2-topbar__close:hover {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
}

.sale-v2-topbar__close mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.sale-v2-topbar__native-picker {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

/* ── CUSTOMER BAR ───────────────────────────────────────────────────────── */
.sale-v2-customer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-4);
  padding: var(--ui-space-2) var(--ui-space-5);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.02);
  cursor: pointer;
  transition: var(--ui-transition-base);
  flex: 0 0 auto;
}

.sale-v2-customer:hover {
  background: rgba(255, 255, 255, 0.04);
}

.sale-v2-customer__info {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  min-width: 0;
  flex-wrap: wrap;
}

.sale-v2-customer__name {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  white-space: nowrap;
}

.sale-v2-customer__name--link {
  cursor: pointer;
  transition: color 120ms ease;
}

.sale-v2-customer__name--link:hover {
  color: var(--ui-accent, #ff784f);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.sale-v2-customer__contact {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  white-space: nowrap;
}

.sale-v2-customer__gstin {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  white-space: nowrap;
  font-family: var(--ui-font-mono);
}

.sale-v2-customer__right {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  flex-shrink: 0;
}

.sale-v2-customer__address {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-shrink: 0;
}

.sale-v2-customer__address-text {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  white-space: nowrap;
}

.sale-v2-customer__address-indicators {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-shrink: 0;
}

.sale-v2-customer__address-warn {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-warning, #f59e0b);
  white-space: nowrap;
}

.sale-v2-customer__gst-error {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: var(--ui-radius-full);
  background: var(--ui-danger-bg, rgba(239, 68, 68, 0.12));
  border: 1px solid var(--ui-danger-border, rgba(239, 68, 68, 0.25));
  font-size: 11px;
  font-weight: var(--ui-font-bold);
  color: var(--ui-danger, #ef4444);
  white-space: nowrap;
  letter-spacing: 0.02em;
}

/* ── Customer Quick-View — above CDK overlay + blur backdrop (matches glass-sidenav) ── */
app-customer-quick-view .glass-drawer-overlay {
  z-index: 10000010 !important;
  background: rgba(8, 8, 8, 0.55) !important;
  backdrop-filter: blur(12px) saturate(140%) !important;
  -webkit-backdrop-filter: blur(12px) saturate(140%) !important;
}

app-customer-quick-view .glass-drawer {
  z-index: 10000020 !important;
  box-shadow: none !important;
  width: 440px !important;
}

/* ── Quick-View loading states ───────────────────────────────────────────── */
.cqv-skeleton {
  height: 14px;
  border-radius: 4px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.04) 25%, rgba(255, 255, 255, 0.08) 50%, rgba(255, 255, 255, 0.04) 75%);
  background-size: 200% 100%;
  animation: cqv-shimmer 1.5s infinite;
  margin-bottom: 10px;
}

.cqv-skeleton--short {
  width: 60%;
}

@keyframes cqv-shimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
.cqv-inline-spinner {
  margin-left: auto;
}

/* ── GST Badge ───────────────────────────────────────────────────────────── */
.cqv-badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 2px 8px;
  border-radius: 999px;
  margin-left: 8px;
  vertical-align: middle;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.5);
}

.cqv-badge--gst {
  background: rgba(255, 122, 61, 0.15);
  border-color: rgba(255, 122, 61, 0.3);
  color: #ff8a50;
}

/* ── Risk Indicator ──────────────────────────────────────────────────────── */
.cqv-risk {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 12px;
}

.cqv-risk mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.cqv-risk--danger {
  background: rgba(255, 80, 80, 0.1);
  border: 1px solid rgba(255, 80, 80, 0.25);
  color: #ff6b6b;
}

.cqv-risk--safe {
  background: rgba(74, 222, 128, 0.08);
  border: 1px solid rgba(74, 222, 128, 0.2);
  color: #4ade80;
}

/* ── Quick Actions ───────────────────────────────────────────────────────── */
.cqv-actions {
  display: flex;
  gap: 8px;
  margin-bottom: 14px;
}

.cqv-action-btn {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 0;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
  color: rgba(255, 255, 255, 0.75);
  font-family: var(--ui-font-primary);
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

.cqv-action-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.cqv-action-btn:hover {
  background: rgba(255, 122, 61, 0.1);
  border-color: rgba(255, 122, 61, 0.3);
  color: #ff8a50;
}

/* ── Mini Row (invoices, activity) ────────────────────────────────────────── */
.cqv-mini-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 8px 10px;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.2s ease;
  margin: 2px -10px;
}

.cqv-mini-row:hover {
  background: rgba(255, 255, 255, 0.04);
}

.cqv-mini-row--static {
  cursor: default;
}

.cqv-mini-row--static:hover {
  background: transparent;
}

.cqv-mini-left {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.cqv-mini-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
}

.cqv-mini-primary {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.85);
}

.cqv-mini-sub {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.4);
}

.cqv-mini-amount {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
  font-family: var(--ui-font-mono);
}

.cqv-mini-due {
  font-size: 10px;
  font-weight: 700;
  color: #ff6b6b;
}

.cqv-empty {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.35);
  padding: 4px 0;
}

/* ── Stacked Cell Grid (matches item drawer layout) ──────────────────────── */
.cqv-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}

.cqv-cell {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.cqv-cell-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.4);
}

.cqv-cell-value {
  font-family: var(--ui-font-primary);
  font-size: 15px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
}

.cqv-cell-value.mono {
  font-family: var(--ui-font-mono);
  font-size: 14px;
}

/* ── SPLIT BODY ─────────────────────────────────────────────────────────── */
.sale-v2-body {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: var(--ui-space-4) var(--ui-space-5);
}
.sale-v2-body::-webkit-scrollbar {
  width: 4px;
}
.sale-v2-body::-webkit-scrollbar-track {
  background: transparent;
}
.sale-v2-body::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.08);
  border-radius: 4px;
}

.sale-v2-split {
  display: grid;
  grid-template-columns: 1fr 260px;
  gap: var(--ui-space-5);
  align-items: start;
}

@media (max-width: 1200px) {
  .sale-v2-split {
    grid-template-columns: 1fr;
  }
}
/* ── LEFT PANEL: Operations ─────────────────────────────────────────────── */
.sale-v2-ops {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  min-width: 0;
}

/* ── TABLE SECTION ──────────────────────────────────────────────────────── */
.sale-v2-table-section {
  overflow: hidden;
  padding: 0; /* override ui-card padding — table fills edge-to-edge */
}

.sale-v2-table-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--ui-space-2) var(--ui-space-3);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.sale-v2-table-header__label {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.sale-v2-table-header__eyebrow {
  font-size: var(--ui-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ui-text-muted);
  font-weight: var(--ui-font-semibold);
}

.sale-v2-table-header__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  border-radius: var(--ui-radius-full);
  background: rgba(255, 255, 255, 0.08);
  font-size: 11px;
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-muted);
}

.sale-v2-add-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 12px;
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border-light);
  background: transparent;
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.sale-v2-add-btn:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
  color: var(--ui-text-primary);
}

.sale-v2-add-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.sale-v2-save-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 14px;
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-success-border);
  background: var(--ui-success-bg);
  color: var(--ui-success);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.sale-v2-save-btn:hover {
  background: rgba(74, 222, 128, 0.2);
}

.sale-v2-save-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.sale-v2-table-wrap {
  overflow-x: auto;
}

/* ── TABLE ──────────────────────────────────────────────────────────────── */
.sale-v2-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--ui-text-sm);
}

.sale-v2-table thead th {
  padding: 6px 5px;
  font-size: 11px;
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ui-text-muted);
  text-align: left;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  white-space: nowrap;
  background: rgba(255, 255, 255, 0.02);
}

.sale-v2-table tbody tr {
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  transition: background 120ms ease;
}

.sale-v2-table tbody tr:last-child {
  border-bottom: none;
}

.sale-v2-table tbody tr:hover {
  background: rgba(255, 255, 255, 0.03);
}

.sale-v2-table tbody tr.selected-row {
  background: rgba(255, 120, 79, 0.06);
  box-shadow: inset 2px 0 0 var(--ui-accent);
}

.sale-v2-table tbody tr.saved-row {
  opacity: 0.7;
}

.sale-v2-table tbody td {
  padding: 4px 5px;
  vertical-align: middle;
}

.sale-v2-th--item {
  min-width: 140px;
}

.sale-v2-th--action {
  width: 24px;
  padding-left: 0;
  padding-right: 0;
}

.sale-v2-td--item {
  position: relative;
  min-width: 140px;
}

/* ── OCR Stock Match Indicators ───────────────────────────────────────── */
.ocr-stock-chip {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.03em;
  padding: 1px 8px 1px 4px;
  border-radius: 999px;
  margin-top: 3px;
  line-height: 1;
}

.ocr-stock-chip mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

.ocr-stock-chip--unlinked {
  background: rgba(255, 160, 60, 0.12);
  border: 1px solid rgba(255, 160, 60, 0.3);
  color: #ffb347;
  cursor: pointer;
  transition: all 0.15s ease;
}

.ocr-stock-chip--unlinked:hover {
  background: rgba(255, 160, 60, 0.22);
  border-color: rgba(255, 160, 60, 0.5);
  color: #ffc570;
}

.ocr-stock-chip--linked {
  background: rgba(74, 222, 128, 0.08);
  border: 1px solid rgba(74, 222, 128, 0.2);
  color: #4ade80;
}

.sale-v2-td--action {
  width: 24px;
  text-align: center;
  padding-left: 0;
  padding-right: 2px;
}

.sale-v2-th--discount {
  width: 100px;
}

.sale-v2-th--qty {
  width: 50px;
}

.sale-v2-th--tax {
  width: 66px;
}

.sale-v2-th--final {
  width: 120px;
}

/* ── INLINE INPUTS ──────────────────────────────────────────────────────── */
.sale-v2-input {
  width: 100%;
  height: 34px;
  padding: 0 10px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.9);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 6px;
  box-sizing: border-box;
  font-family: inherit;
  outline: none;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.sale-v2-input:focus {
  border-color: rgba(255, 140, 100, 0.5);
  background: rgba(255, 255, 255, 0.08);
}

.sale-v2-input::placeholder {
  color: rgba(255, 255, 255, 0.3);
}

.sale-v2-input[readonly] {
  color: var(--ui-text-muted);
  cursor: default;
  opacity: 0.7;
}

.sale-v2-input--num {
  text-align: right;
  width: 100%;
  font-variant-numeric: tabular-nums;
}

.sale-v2-input--hsn {
  width: 100%;
  font-size: 12px;
}

.sale-v2-input--gross {
  width: 100%;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.sale-v2-select {
  width: 100%;
  height: 34px;
  padding: 0 8px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.9);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 6px;
  box-sizing: border-box;
  font-family: inherit;
  outline: none;
  cursor: pointer;
  appearance: none;
  transition: border-color 0.2s ease;
}

.sale-v2-select:focus {
  border-color: rgba(255, 140, 100, 0.5);
}

.sale-v2-final {
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.sale-v2-gross {
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-secondary);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  opacity: 0.7;
}

/* ── ROW ACTIONS ────────────────────────────────────────────────────────── */
.sale-v2-row-btn {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: none;
  background: transparent;
  color: var(--ui-text-muted);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.sale-v2-row-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.sale-v2-row-btn--delete:hover {
  background: var(--ui-danger-bg);
  color: var(--ui-danger);
}

.sale-v2-row-btn--return:hover {
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
}

.sale-v2-row-btn--save:hover {
  background: rgba(74, 222, 128, 0.15);
  color: #4ade80;
}

/* ── EMPTY STATE ────────────────────────────────────────────────────────── */
.sale-v2-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-6) var(--ui-space-4);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  text-align: center;
}

.sale-v2-empty mat-icon {
  font-size: 32px;
  width: 32px;
  height: 32px;
  opacity: 0.4;
}

.sale-v2-empty kbd {
  display: inline-flex;
  align-items: center;
  padding: 1px 6px;
  border-radius: 4px;
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-2);
  font-size: 11px;
  font-family: var(--ui-font-mono);
  color: var(--ui-text-secondary);
}

.sale-v2-empty--compact {
  padding: var(--ui-space-4) var(--ui-space-3);
}

/* ── RIGHT PANEL: Finance ───────────────────────────────────────────────── */
.sale-v2-finance {
  position: sticky;
  top: 0;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  max-height: calc(100vh - 200px);
  overflow-y: auto;
}
.sale-v2-finance::-webkit-scrollbar {
  width: 3px;
}
.sale-v2-finance::-webkit-scrollbar-track {
  background: transparent;
}
.sale-v2-finance::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.08);
  border-radius: 3px;
}

/* Compact card override for sale sidebar */
.sale-v2-finance__card.ui-card, .glass-modal-container .sale-v2-finance__card.glass-card,
.glass-modal-container .sale-v2-finance__card.glass-panel,
.glass-modal-container .sale-v2-finance__card.fd-glass,
.glass-modal-container .sale-v2-finance__card.section-card,
.glass-modal-container .sale-v2-finance__card.content-section,
.glass-modal-container .sale-v2-finance__card.timeline-card,
.glass-modal-container .sale-v2-finance__card.entry-section,
.glass-modal-container .sale-v2-finance__card.attachments,
.glass-modal-container .sale-v2-finance__card.summary-card,
.glass-modal-container .sale-v2-finance__card.metric-card,
.glass-modal-container .sale-v2-finance__card.review-card,
.glass-modal-container .sale-v2-finance__card.config-section,
.glass-modal-container .sale-v2-finance__card.panel-card {
  padding: var(--ui-space-3);
  gap: var(--ui-space-2);
  border-radius: var(--ui-radius-md);
}

.sale-v2-finance__title {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin: 0 0 var(--ui-space-3);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ui-text-muted);
}

.sale-v2-finance__title mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.sale-v2-finance__rows {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.sale-v2-finance__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
}

.sale-v2-finance__label {
  font-size: var(--ui-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--ui-text-muted);
}

.sale-v2-finance__value {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-secondary);
  font-variant-numeric: tabular-nums;
}

.sale-v2-finance__value.is-success {
  color: var(--ui-success);
}

.sale-v2-finance__value.is-danger {
  color: var(--ui-danger);
}

.sale-v2-finance__divider {
  height: 1px;
  margin: var(--ui-space-1) 0;
  background: rgba(255, 255, 255, 0.08);
}

.sale-v2-finance__row--total .sale-v2-finance__label {
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-secondary);
}

.sale-v2-finance__value--hero {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
}

.sale-v2-finance__input-wrap {
  display: flex;
  align-items: center;
  gap: 4px;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}

.sale-v2-finance__input {
  width: 56px;
  min-width: 56px;
}

/* ── Payment History (collapsible) ─────────────────────────────────────── */
.sale-v2-payment-history {
  margin-top: var(--ui-space-2);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  padding-top: var(--ui-space-2);
}

.sale-v2-payment-history__toggle {
  display: flex;
  align-items: center;
  gap: 4px;
  width: 100%;
  padding: 4px 0;
  border: none;
  background: transparent;
  color: var(--ui-text-muted);
  font-size: 11px;
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  cursor: pointer;
  transition: color 0.15s ease;
  font-family: inherit;
}

.sale-v2-payment-history__toggle:hover {
  color: var(--ui-text-secondary);
}

.sale-v2-payment-history__chevron {
  font-size: 18px;
  width: 18px;
  height: 18px;
  transition: transform 0.2s ease;
}

.sale-v2-payment-history__chevron.is-open {
  transform: rotate(180deg);
}

.sale-v2-payment-history__list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: var(--ui-space-1);
  animation: saleV2PayHistIn 150ms ease-out;
}

@keyframes saleV2PayHistIn {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.sale-v2-payment-history__entry {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 8px;
  border-radius: var(--ui-radius-sm);
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.04);
}

.sale-v2-payment-history__left {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.sale-v2-payment-history__mode {
  font-size: 12px;
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-secondary);
}

.sale-v2-payment-history__date {
  font-size: 10px;
  color: var(--ui-text-muted);
}

.sale-v2-payment-history__amount {
  font-size: 13px;
  font-weight: var(--ui-font-semibold);
  color: var(--ui-success);
  font-variant-numeric: tabular-nums;
}

.sale-v2-payment-history__actions {
  display: flex;
  align-items: center;
  gap: 2px;
  margin-left: 4px;
}

.sale-v2-payment-history__action-btn {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: none;
  background: transparent;
  color: var(--ui-text-muted);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.15s ease;
  padding: 0;
}

.sale-v2-payment-history__action-btn mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.sale-v2-payment-history__action-btn:hover {
  background: rgba(255, 255, 255, 0.08);
  color: var(--ui-text-secondary);
}

.sale-v2-payment-history__action-btn--danger:hover {
  background: var(--ui-danger-bg);
  color: var(--ui-danger);
}

.sale-v2-drawer-backdrop {
  position: fixed;
  inset: 0;
  z-index: 99;
  background: rgba(0, 0, 0, 0.3);
}

.sale-v2-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 100;
  width: 340px;
  max-width: 90vw;
  background: var(--ui-surface-1);
  border-left: 1px solid var(--ui-border-light);
  display: flex;
  flex-direction: column;
  box-shadow: -8px 0 32px rgba(0, 0, 0, 0.3);
  animation: saleV2DrawerIn 200ms ease-out;
}

@keyframes saleV2DrawerIn {
  from {
    transform: translateX(100%);
  }
  to {
    transform: translateX(0);
  }
}
.sale-v2-drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--ui-space-3) var(--ui-space-4);
  border-bottom: 1px solid var(--ui-border-light);
}

.sale-v2-drawer__header h4 {
  margin: 0;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.sale-v2-drawer__body {
  flex: 1;
  overflow-y: auto;
  padding: var(--ui-space-3) var(--ui-space-4);
}
.sale-v2-drawer__body::-webkit-scrollbar {
  width: 4px;
}
.sale-v2-drawer__body::-webkit-scrollbar-track {
  background: transparent;
}
.sale-v2-drawer__body::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.1);
  border-radius: 4px;
}

/* Drawer timeline inherits .ui-modal__timeline from contract — no max-height override here */
.sale-v2-drawer__body .ui-modal__timeline {
  max-height: none;
}

/* ── STICKY FOOTER ──────────────────────────────────────────────────────── */
.sale-v2-footer {
  flex: 0 0 auto;
  padding: var(--ui-space-2) var(--ui-space-5);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.sale-v2-footer__actions {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

/* ── ACTION BUTTONS ─────────────────────────────────────────────────────── */
.sale-v2-action {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 16px;
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: var(--ui-transition-base);
  white-space: nowrap;
  border: 1px solid;
  outline: none;
  overflow: hidden;
  position: relative;
}

/* Nuclear kill: all pseudo-elements, ripples, focus indicators, and touch targets */
.sale-v2-action::before,
.sale-v2-action::after,
.sale-v2-action .mat-ripple,
.sale-v2-action .mat-ripple-element,
.sale-v2-action .mat-mdc-button-ripple,
.sale-v2-action .mat-mdc-button-persistent-ripple,
.sale-v2-action .mdc-button__ripple,
.sale-v2-action .mat-mdc-focus-indicator,
.sale-v2-action .mat-mdc-button-touch-target,
.sale-v2-action .mdc-button__focus-ring,
.sale-v2-action .cdk-focus-indicator::before {
  display: none !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
}

.sale-v2-action.cdk-focused,
.sale-v2-action.cdk-mouse-focused,
.sale-v2-action.cdk-touch-focused,
.sale-v2-action.cdk-program-focused {
  box-shadow: none !important;
  outline: none !important;
}

.sale-v2-action:active {
  transform: scale(0.97);
  transition: transform 80ms ease;
}

.sale-v2-action:focus-visible {
  box-shadow: 0 0 0 2px var(--ui-accent);
}

.sale-v2-action mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.sale-v2-action:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.sale-v2-action--primary {
  background: linear-gradient(135deg, var(--ui-accent) 0%, hsl(20, 100%, 55%) 100%);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 2px 8px rgba(255, 120, 79, 0.3);
}

.sale-v2-action--primary:hover:not(:disabled) {
  box-shadow: 0 4px 16px rgba(255, 120, 79, 0.4);
  transform: translateY(-1px);
}

.sale-v2-action--secondary {
  background: transparent;
  border-color: var(--ui-border-light);
  color: var(--ui-text-secondary);
}

.sale-v2-action--secondary:hover:not(:disabled) {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
  color: var(--ui-text-primary);
}

.sale-v2-action--danger {
  background: transparent;
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
  margin-left: auto;
}

.sale-v2-action--danger:hover:not(:disabled) {
  background: var(--ui-danger-bg);
}

.sale-v2-kbd {
  display: inline-flex;
  align-items: center;
  padding: 0 5px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.1);
  font-size: 10px;
  font-family: var(--ui-font-mono);
  line-height: 1.6;
  min-width: 18px;
  justify-content: center;
}

/* ── FOOTER MENUS ───────────────────────────────────────────────────────── */
.sale-v2-menu {
  min-width: 290px;
  padding: var(--ui-space-1);
}

/* Footer action menus should float above the trigger instead of stretching
   the inline-flex anchor and inflating the button hit area. */
.sale-v2-footer .ui-menu-anchor {
  flex: 0 0 auto;
  align-items: flex-start;
  isolation: isolate;
}

.sale-v2-footer .ui-menu-anchor > .sale-v2-action {
  flex: 0 0 auto;
  align-self: center;
}

.sale-v2-footer .ui-menu-anchor > [data-sale-menu-panel] {
  position: absolute;
  left: 0;
  bottom: calc(100% + var(--ui-space-2));
  z-index: 30;
  flex: 0 0 auto;
}

.sale-v2-footer .ui-menu-anchor:last-of-type > [data-sale-menu-panel] {
  left: auto;
  right: 0;
}

.sale-v2-menu__item {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  width: 100%;
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  border: none;
  background: transparent;
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  cursor: pointer;
  transition: var(--ui-transition-base);
  text-align: left;
  font-family: inherit;
}

.sale-v2-menu__item:hover {
  background: var(--ui-surface-hover);
  color: var(--ui-text-primary);
}

.sale-v2-menu__item mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.sale-v2-menu__divider {
  height: 1px;
  background: var(--ui-border-light);
  margin: var(--ui-space-2) 0;
  width: calc(100% + var(--ui-space-4));
  margin-left: calc(var(--ui-space-2) * -1);
}

.sale-v2-menu__item--primary {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--ui-border-light);
}

.sale-v2-menu__status {
  margin-left: auto;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  padding: 2px 8px;
  border-radius: var(--ui-radius-full);
}

.sale-v2-menu__status.is-active {
  background: var(--ui-success-bg);
  color: var(--ui-success);
}

.sale-v2-menu__status.is-outdated {
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
}

/* ── MODE COLORS (title) ────────────────────────────────────────────────── */
.sale-v2-topbar__title.mode-new {
  color: var(--ui-text-primary);
}

.sale-v2-topbar__title.mode-edit {
  color: hsl(197, 71%, 73%);
}

.sale-v2-topbar__title.mode-view {
  color: var(--ui-text-muted);
}

/* ── UTILITY BUTTONS (smaller, calmer) ──────────────────────────────────── */
.sale-v2-action--utility {
  background: transparent;
  border-color: transparent;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  padding: 4px 10px;
}

.sale-v2-action--utility:hover:not(:disabled) {
  color: var(--ui-text-secondary);
  background: rgba(255, 255, 255, 0.04);
}

.sale-v2-action--utility mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

/* ── FOOTER SEPARATOR ───────────────────────────────────────────────────── */
.sale-v2-footer__separator {
  width: 1px;
  height: 20px;
  background: rgba(255, 255, 255, 0.08);
  margin: 0 var(--ui-space-1);
}

/* ── ROW FLASH FEEDBACK ─────────────────────────────────────────────────── */
@keyframes saleRowFlash {
  0% {
    background: rgba(74, 222, 128, 0.2);
  }
  100% {
    background: transparent;
  }
}
.sale-v2-table tbody tr.flash-row {
  animation: saleRowFlash 400ms ease-out;
}

/* Hide non-essential columns (Part#, HSN, Tax) — form inputs kept for backend */
.sale-v2-col--hidden {
  display: none !important;
}

/* ── ENHANCED FOCUS INDICATOR ───────────────────────────────────────────── */
.sale-v2-table tbody tr.selected-row {
  background: rgba(255, 255, 255, 0.06);
  outline: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: inset 3px 0 0 var(--ui-accent);
  scroll-margin-block: var(--ui-space-4);
}

/* ── TOTAL HERO (dominant) ──────────────────────────────────────────────── */
.sale-v2-finance__value--hero {
  font-size: 28px;
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  letter-spacing: -0.02em;
  text-shadow: 0 2px 16px rgba(255, 120, 79, 0.3);
}

/* ── INLINE VALIDATION ──────────────────────────────────────────────────── */
.sale-v2-input.has-warning {
  border-color: var(--ui-warning);
  background: var(--ui-warning-bg);
}

.sale-v2-input.has-error {
  border-color: var(--ui-danger);
  background: var(--ui-danger-bg);
}

.sale-v2-row-warning {
  font-size: 10px;
  color: var(--ui-warning);
  padding: 2px 8px;
}

/* ── ROW SAVE STATUS INDICATORS ────────────────────────────────────────── */
.sale-v2-row-saving {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.35);
  animation: rowSpin 1s linear infinite;
  display: inline-block;
  margin-right: 8px;
}

@keyframes rowSpin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.sale-v2-row-error {
  font-size: 12px;
  color: rgba(239, 68, 68, 0.8);
  cursor: pointer;
  margin-right: 8px;
}
.sale-v2-row-error:hover {
  color: rgb(239, 68, 68);
}

/* ── Row-level save state indicators (no layout shift) ── */
@keyframes rowSavePulse {
  0%, 100% {
    border-left-color: rgba(74, 222, 128, 0.2);
    box-shadow: inset 0 0 8px rgba(255, 200, 100, 0.04);
  }
  50% {
    border-left-color: rgba(74, 222, 128, 0.6);
    box-shadow: inset 0 0 14px rgba(255, 200, 100, 0.08);
  }
}
tr.row-saving {
  border-left: 3px solid rgba(74, 222, 128, 0.4);
  animation: rowSavePulse 1s ease-in-out infinite;
}

tr.row-synced {
  border-left: 3px solid rgba(74, 222, 128, 0.7);
  box-shadow: inset 0 0 20px rgba(74, 222, 128, 0.12);
  animation: rowSyncedFade 2s ease-out forwards;
}

@keyframes rowSyncedFade {
  0% {
    border-left-color: rgba(74, 222, 128, 0.8);
    box-shadow: inset 0 0 20px rgba(74, 222, 128, 0.15), 0 0 12px rgba(74, 222, 128, 0.1);
    background: rgba(74, 222, 128, 0.12);
  }
  40% {
    border-left-color: rgba(74, 222, 128, 0.4);
    box-shadow: inset 0 0 10px rgba(74, 222, 128, 0.06);
    background: rgba(74, 222, 128, 0.04);
  }
  100% {
    border-left-color: transparent;
    box-shadow: none;
    background: transparent;
  }
}
/* ── TOTAL PULSE ANIMATION ──────────────────────────────────────────────── */
@keyframes totalPulse {
  0% {
    transform: scale(1.08);
  }
  50% {
    transform: scale(1.04);
  }
  100% {
    transform: scale(1);
  }
}
.sale-v2-finance__value--hero.total-pulse {
  animation: totalPulse 300ms ease-out;
}

/* ── ROW SLIDE-IN ANIMATION ─────────────────────────────────────────────── */
@keyframes saleRowSlideIn {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.sale-v2-table tbody tr:last-child:not(.saved-row) {
  animation: saleRowSlideIn 120ms ease-out;
}

/* ── INVOICE STATE BANNER ───────────────────────────────────────────────── */
.sale-v2-finance__banner {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  margin-top: var(--ui-space-2);
}

.sale-v2-finance__banner mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.sale-v2-finance__banner--invoice {
  background: rgba(56, 189, 248, 0.08);
  border: 1px solid rgba(56, 189, 248, 0.2);
  color: hsl(197, 71%, 73%);
}

.sale-v2-finance__banner--paid {
  background: var(--ui-success-bg);
  border: 1px solid var(--ui-success-border);
  color: var(--ui-success);
}

.sale-v2-finance__banner--no-invoice {
  background: rgba(239, 68, 68, 0.08);
  border: 1px solid rgba(239, 68, 68, 0.2);
  color: hsl(0, 72%, 65%);
}

.sale-v2-finance__banner-info {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.sale-v2-finance__banner-title {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
}

.sale-v2-finance__banner-sub {
  font-size: 11px;
  opacity: 0.7;
  font-family: var(--ui-font-mono);
}

/* ── Invoice Lifecycle State Badge (finance panel) ── */
.sale-v2-invoice-state {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 30px;
  font-size: 10px;
  font-weight: var(--ui-font-bold);
  padding: 0 12px;
  border-radius: var(--ui-radius-full);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  flex-shrink: 0;
}

.sale-v2-invoice-state--draft {
  background: rgba(245, 158, 11, 0.15);
  color: #f59e0b;
  border: 1px solid rgba(245, 158, 11, 0.3);
}

.sale-v2-invoice-state--final {
  background: rgba(14, 116, 144, 0.18);
  color: #d4f4ff;
  border: 1px solid rgba(125, 211, 252, 0.28);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.sale-v2-invoice-state--draft::before,
.sale-v2-invoice-state--final::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.sale-v2-invoice-state--draft::before {
  background: #f59e0b;
  box-shadow: 0 0 10px rgba(245, 158, 11, 0.4);
}

.sale-v2-invoice-state--final::before {
  background: #7dd3fc;
  box-shadow: 0 0 10px rgba(125, 211, 252, 0.45);
}

/* ── Footer Button State Label ── */
.sale-v2-btn-state {
  font-size: 9px;
  font-weight: var(--ui-font-bold);
  padding: 1px 6px;
  border-radius: var(--ui-radius-full);
  letter-spacing: 0.06em;
}

.sale-v2-btn-state--draft {
  background: rgba(245, 158, 11, 0.15);
  color: #f59e0b;
}

.sale-v2-btn-state--final {
  background: rgba(14, 116, 144, 0.18);
  color: #d4f4ff;
}

.sale-v2-btn-state--outdated {
  background: rgba(239, 68, 68, 0.15);
  color: #ef4444;
  animation: outdatedPulse 2s ease-in-out infinite;
}

/* ── Invoice Out-of-Sync Warning ── */
.sale-v2-invoice-state--outdated {
  background: rgba(239, 68, 68, 0.15);
  color: #ef4444;
  border: 1px solid rgba(239, 68, 68, 0.3);
  animation: outdatedPulse 2s ease-in-out infinite;
}

@keyframes outdatedPulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.7;
  }
}
.sale-v2-sync-warning {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  margin-top: var(--ui-space-2);
  background: rgba(239, 68, 68, 0.08);
  border: 1px solid rgba(239, 68, 68, 0.2);
}

.sale-v2-sync-warning__text {
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
  font-size: var(--ui-text-xs);
  color: hsl(0, 72%, 65%);
}

.sale-v2-sync-warning__text mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.sale-v2-sync-warning__action {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: var(--ui-radius-full);
  border: 1px solid rgba(255, 120, 79, 0.3);
  background: rgba(255, 120, 79, 0.1);
  color: var(--ui-accent);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: var(--ui-transition-base);
  font-family: inherit;
  width: fit-content;
}

.sale-v2-sync-warning__action:hover {
  background: rgba(255, 120, 79, 0.2);
  border-color: var(--ui-accent);
}

.sale-v2-sync-warning__action mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

body.ui-modal-open {
  overflow: hidden !important;
}

/* ==========================================================================
   SALE SKELETON LOADER
   ==========================================================================
   Layout-only skeleton that mirrors the real sale-v2 structure.
   Shimmer primitives come from controls/skeleton.scss (ui-skeleton contract).
   Shows while `isLoading` is true; prevents layout shift on transition.
   ========================================================================== */
/* ── Full-height container (matches .sale-v2) ── */
.sale-v2-skeleton {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  min-height: 0;
  overflow: hidden;
}

/* ── Top Bar (matches .sale-v2-topbar) ── */
.sale-v2-skeleton__topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-5);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  flex: 0 0 auto;
}

.sale-v2-skeleton__topbar-left {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.sale-v2-skeleton__topbar-right {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

/* ── Customer Bar (matches .sale-v2-customer) ── */
.sale-v2-skeleton__customer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-4);
  padding: var(--ui-space-2) var(--ui-space-5);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.02);
  flex: 0 0 auto;
}

.sale-v2-skeleton__customer-left {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.sale-v2-skeleton__customer-right {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
}

/* ── Split Body (matches .sale-v2-body + .sale-v2-split grid) ── */
.sale-v2-skeleton__body {
  display: grid;
  grid-template-columns: 1fr 260px;
  gap: var(--ui-space-5);
  align-items: start;
  flex: 1 1 auto;
  overflow: hidden;
  padding: var(--ui-space-4) var(--ui-space-5);
}

/* ── Left Panel — Ops (matches .sale-v2-ops) ── */
.sale-v2-skeleton__ops {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  min-width: 0;
}

/* ── Table Section (matches .sale-v2-table-section ui-card) ── */
.sale-v2-skeleton__table-section {
  background: var(--ui-surface-1, rgba(255, 255, 255, 0.03));
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-lg);
  overflow: hidden;
}

.sale-v2-skeleton__table-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--ui-space-2) var(--ui-space-3);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.sale-v2-skeleton__table-header-left {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

/* ── Table Head Row ── */
.sale-v2-skeleton__thead {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: var(--ui-space-2) var(--ui-space-3);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

/* Flex-proportional column headers */
.sale-v2-skel-th {
  flex: 1;
  height: 10px;
  border-radius: var(--ui-radius-full);
}

.sale-v2-skel-th--item {
  flex: 2.5;
}

.sale-v2-skel-th--sm {
  flex: 0.6;
}

/* ── Table Data Rows ── */
.sale-v2-skeleton__row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px var(--ui-space-3);
  border-bottom: 1px solid rgba(255, 255, 255, 0.03);
}

.sale-v2-skeleton__row:last-child {
  border-bottom: none;
}

/* Flex-proportional data cells */
.sale-v2-skel-cell {
  flex: 1;
  height: 30px;
  border-radius: var(--ui-radius-md);
}

.sale-v2-skel-cell--item {
  flex: 2.5;
}

.sale-v2-skel-cell--sm {
  flex: 0.6;
}

/* ── Right Panel — Finance (matches .sale-v2-finance, fixed 260px) ── */
.sale-v2-skeleton__finance {
  position: sticky;
  top: 0;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  min-width: 0;
}

.sale-v2-skeleton__finance-card {
  background: var(--ui-surface-1, rgba(255, 255, 255, 0.03));
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-md);
  padding: var(--ui-space-3);
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

/* Due row layout */
.sale-v2-skeleton__due-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--ui-space-1) 0;
}

/* Finance summary rows */
.sale-v2-skeleton__finance-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--ui-space-1) 0;
}

/* ── Footer (matches .sale-v2-footer) ── */
.sale-v2-skeleton__footer {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-5);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  flex: 0 0 auto;
}

.sale-v2-skeleton__footer-sep {
  width: 1px;
  height: 20px;
  background: rgba(255, 255, 255, 0.08);
  margin: 0 var(--ui-space-1);
}

/* ── Responsive: collapse to single column (matches .sale-v2-split media query) ── */
@media (max-width: 1200px) {
  .sale-v2-skeleton__body {
    grid-template-columns: 1fr;
  }
}
/* ==========================================================================
   ADDRESS PICKER — Enterprise address selection cards
   ==========================================================================
   Usage: class="addr-picker" in address.component.html
   ========================================================================== */
.addr-picker__list {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  margin-bottom: var(--ui-space-4);
  max-height: 400px;
  overflow-y: auto;
  padding-right: var(--ui-space-1);
}

.addr-picker__radio {
  display: block;
  width: 100%;
}

.addr-picker__radio .mdc-form-field {
  width: 100%;
  align-items: flex-start;
}

.addr-picker__radio .mdc-radio {
  margin-top: 10px;
}

.addr-picker__card {
  display: flex;
  align-items: stretch;
  gap: var(--ui-space-3);
  padding: var(--ui-space-4) var(--ui-space-4);
  border-radius: var(--ui-radius-lg);
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: var(--ui-surface-1);
  transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
  width: 100%;
  min-height: 72px;
  position: relative;
}

.addr-picker__radio--selected .addr-picker__card {
  border-color: var(--ui-accent);
  background: rgba(255, 120, 79, 0.06);
  box-shadow: inset 3px 0 0 var(--ui-accent), 0 0 0 1px rgba(255, 120, 79, 0.12);
}

.addr-picker__card:hover {
  background: var(--ui-surface-2);
  border-color: rgba(255, 255, 255, 0.15);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.addr-picker__content {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.addr-picker__line1 {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  line-height: 1.35;
}

.addr-picker__line2 {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  line-height: 1.35;
}

.addr-picker__line3 {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  line-height: 1.35;
  margin-top: 2px;
}

.addr-picker__pin-icon {
  font-size: 15px;
  width: 15px;
  height: 15px;
  color: var(--ui-accent);
  flex-shrink: 0;
}

/* ── GST Badge ── */
.addr-picker__gst {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
  padding: 4px 10px;
  border-radius: var(--ui-radius-sm);
  background: rgba(56, 189, 248, 0.08);
  border: 1px solid rgba(56, 189, 248, 0.2);
  width: fit-content;
}

.addr-picker__gst mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: hsl(197, 71%, 73%);
}

.addr-picker__gst-label {
  font-size: 10px;
  font-weight: var(--ui-font-bold);
  color: hsl(197, 71%, 73%);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.addr-picker__gst-value {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  font-family: var(--ui-font-mono);
  color: var(--ui-text-primary);
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

/* ── Delete Button ── */
.addr-picker__delete {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: var(--ui-radius-md);
  border: 1px solid transparent;
  background: transparent;
  color: var(--ui-text-muted);
  cursor: pointer;
  flex-shrink: 0;
  align-self: flex-start;
  margin-top: 2px;
  transition: color 0.15s, background 0.15s, border-color 0.15s;
}

.addr-picker__delete:hover {
  color: var(--ui-danger);
  background: var(--ui-danger-bg);
  border-color: rgba(239, 68, 68, 0.2);
}

.addr-picker__delete mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

/* ── Actions Column (edit + delete stacked) ── */
.addr-picker__actions-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
  align-self: flex-start;
  margin-top: 2px;
}

.addr-picker__edit {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: var(--ui-radius-md);
  border: 1px solid transparent;
  background: transparent;
  color: var(--ui-text-muted);
  cursor: pointer;
  flex-shrink: 0;
  transition: color 0.15s, background 0.15s, border-color 0.15s;
}

.addr-picker__edit:hover {
  color: var(--ui-accent);
  background: rgba(255, 120, 79, 0.08);
  border-color: rgba(255, 120, 79, 0.2);
}

.addr-picker__edit mat-icon {
  font-size: 17px;
  width: 17px;
  height: 17px;
}

/* ── Empty state ── */
.addr-picker__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-8) 0;
  color: var(--ui-text-muted);
}

.addr-picker__empty mat-icon {
  font-size: 44px;
  width: 44px;
  height: 44px;
  opacity: 0.35;
}

.addr-picker__empty-hint {
  font-size: var(--ui-text-xs);
  opacity: 0.5;
}

/* ── Actions ── */
.addr-picker__actions {
  display: flex;
  gap: var(--ui-space-2);
  justify-content: flex-end;
  padding-top: var(--ui-space-2);
}

/* ==========================================================================
   FULLSCREEN VARIANT (large workspace — dominates viewport)
   ==========================================================================
   Usage: panelClass: ['issue-parts-dialog-panel', 'ui-modal--fullscreen']

   Structural ONLY — no colors, no typography, no shadows.
   ========================================================================== */
.ui-modal--fullscreen,
.cdk-overlay-pane.ui-modal--fullscreen {
  width: 96vw !important;
  max-width: 96vw !important;
  height: 94vh !important;
  max-height: 94vh !important;
}

/* Standalone route-rendered fullscreen modals use the same workspace contract
   as CDK fullscreen dialogs. Visual tokens remain owned by .glass-modal-container. */
.ui-modal__panel.ui-modal--fullscreen.glass-modal-container, .ui-modal--fullscreen.glass-modal-container {
  display: flex !important;
  flex-direction: column !important;
  width: 96vw !important;
  max-width: 96vw !important;
  height: 94vh !important;
  max-height: 94vh !important;
  min-height: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
  overflow: hidden !important;
  border-radius: 20px !important;
}

.ui-modal__panel.ui-modal--fullscreen .ui-modal__body, .ui-modal--fullscreen.glass-modal-container .ui-modal__body,
.ui-modal__panel.ui-modal--fullscreen .glass-modal-body,
.ui-modal--fullscreen.glass-modal-container .glass-modal-body {
  flex: 1 1 0 !important;
  min-height: 0 !important;
  max-height: none !important;
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
  overflow-y: auto !important;
}

.ui-modal__panel.ui-modal--fullscreen .ui-modal__footer, .ui-modal--fullscreen.glass-modal-container .ui-modal__footer,
.ui-modal__panel.ui-modal--fullscreen .glass-modal-footer,
.ui-modal--fullscreen.glass-modal-container .glass-modal-footer {
  flex: 0 0 auto !important;
  margin-bottom: 0 !important;
  padding: 14px 24px !important;
}

/* Dense data-workspace modals keep the modal shell fixed while the owned table
   region scrolls internally. */
.ui-modal__panel.ui-modal--table-workspace .ui-modal__body, .ui-modal--table-workspace.glass-modal-container .ui-modal__body,
.ui-modal__panel.ui-modal--table-workspace .glass-modal-body,
.ui-modal--table-workspace.glass-modal-container .glass-modal-body {
  overflow: hidden !important;
}

/* Center the modal within the overlay */
.cdk-global-overlay-wrapper:has(.ui-modal--fullscreen) {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}

/* Material container reset — transparent wrapper, rounded to match glass */
.cdk-overlay-pane.ui-modal--fullscreen .mat-mdc-dialog-container,
.cdk-overlay-pane.ui-modal--fullscreen .mdc-dialog__container,
.cdk-overlay-pane.ui-modal--fullscreen .mdc-dialog__surface,
.cdk-overlay-pane.ui-modal--fullscreen .mat-mdc-dialog-surface {
  height: 100% !important;
  border-radius: 20px !important;
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* Angular host element must be block + full height */
.cdk-overlay-pane.ui-modal--fullscreen .mdc-dialog__surface > *,
.cdk-overlay-pane.ui-modal--fullscreen .mat-mdc-dialog-surface > * {
  display: block !important;
  height: 100% !important;
}

/* Glass container: flex column to enable sticky header/footer + scrollable body */
.cdk-overlay-pane.ui-modal--fullscreen .glass-modal-container {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  height: 94vh !important;
  max-height: none !important;
  min-height: 0 !important;
  max-width: none !important;
  padding: 0 !important;
  gap: 0 !important;
  overflow: hidden !important;
  border-radius: 20px !important;
}

/* Body fills remaining space and scrolls */
.cdk-overlay-pane.ui-modal--fullscreen .glass-modal-body {
  flex: 1 1 0 !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow-y: auto !important;
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

/* Footer sticks to bottom */
.cdk-overlay-pane.ui-modal--fullscreen .glass-modal-footer {
  flex: 0 0 auto !important;
  margin-bottom: 0 !important;
  padding: 14px 24px !important;
}

.cdk-overlay-pane.ui-modal--full,
.ui-modal__panel.ui-modal--full,
.ui-modal--full.glass-modal-container,
.cdk-overlay-pane.workshop-pipeline-dialog-panel {
  width: 94vw !important;
  max-width: none !important;
  height: 92vh !important;
  max-height: none !important;
}

/* Prevent legacy modal-body max-height caps from creating dead space below footer */
.cdk-overlay-pane.ui-modal--full .glass-modal-body,
.ui-modal__panel.ui-modal--full .glass-modal-body,
.ui-modal--full.glass-modal-container .glass-modal-body,
.cdk-overlay-pane.workshop-pipeline-dialog-panel .glass-modal-body,
.cdk-overlay-pane.job-details-dialog-panel .glass-modal-body {
  max-height: none !important;
}

/* Center full modal dialogs */
.cdk-global-overlay-wrapper:has(.ui-modal--full) {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}

/* Full modal header compact sizing + rounded header search field */
.ui-modal--full .ui-modal__header,
.ui-modal__panel.ui-modal--full .ui-modal__header {
  padding: var(--ui-space-2) var(--ui-space-5);
  min-height: var(--ui-space-10);
  gap: var(--ui-space-3);
}

.ui-modal--full .ui-modal__header .mat-mdc-text-field-wrapper,
.ui-modal--full .ui-modal__header .mdc-text-field--filled,
.ui-modal__panel.ui-modal--full .ui-modal__header .mat-mdc-text-field-wrapper,
.ui-modal__panel.ui-modal--full .ui-modal__header .mdc-text-field--filled {
  border-radius: var(--ui-radius-full);
  height: 40px;
  min-height: 40px;
}

/* Full modal surface */
.ui-modal__panel.ui-modal--full, .ui-modal--full.glass-modal-container {
  background: var(--ui-glass-light);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-2xl);
  box-shadow: var(--ui-shadow-xl);
  backdrop-filter: var(--ui-blur-lg);
  -webkit-backdrop-filter: var(--ui-blur-lg);
}

/* Compact form field sizing in modal headers */
.ui-modal__header .mat-mdc-form-field {
  --mat-form-field-container-height: 40px;
  --mat-form-field-container-vertical-padding: 0;
}

.ui-modal__header .mat-mdc-form-field-infix {
  padding-top: 8px;
  padding-bottom: 8px;
  min-height: 40px;
}

.ui-modal__header .mat-mdc-form-field-subscript-wrapper {
  display: none;
}

/* ==========================================================================
   BASE MODAL STRUCTURE
   ========================================================================== */
.ui-modal {
  /* Modal is a logical grouping - no styles on wrapper itself */
}

/* Route-rendered modals mount as direct children of page components. The page
   contract frames direct children, so modal hosts must opt out and occupy the
   viewport without lifting page content above the backdrop. */
.ui-page > :has(.ui-modal__backdrop) {
  position: fixed !important;
  inset: 0 !important;
  z-index: var(--z-modal-backdrop) !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  pointer-events: none;
}

.ui-page > :has(.ui-modal__backdrop) .ui-modal,
.ui-page > :has(.ui-modal__backdrop) .ui-modal__backdrop {
  pointer-events: auto;
}

/* Keep console chrome behind contract modal overlays, including route-rendered
   modals that mount inside .console-content instead of the CDK overlay root. */
body:has(.ui-modal__backdrop) app-console-sidebar,
body:has(.ui-modal__backdrop) app-console-header,
body:has(.ui-modal__backdrop) .careager-topbar,
body:has(.ui-modal__backdrop) .navbar-custom.careager-topbar {
  z-index: var(--z-base) !important;
}

/* Command palette is mounted inside app-console-sidebar, so the generic modal
   chrome-lowering rule above must not push its own overlay behind page content. */
body.palette-open:has(app-command-palette .ui-modal__backdrop) app-console-sidebar {
  z-index: calc(var(--z-modal) + 2) !important;
}

body.palette-open app-command-palette {
  position: fixed;
  inset: 0;
  z-index: calc(var(--z-modal) + 3);
  pointer-events: none;
}

body.palette-open app-command-palette .ui-modal,
body.palette-open app-command-palette .ui-modal__backdrop {
  pointer-events: auto;
}

body.palette-open app-command-palette .palette-overlay {
  background: rgba(0, 0, 0, 0.25) !important;
  backdrop-filter: blur(6px) !important;
  -webkit-backdrop-filter: blur(6px) !important;
}

body.palette-open app-command-palette .palette-container {
  background: radial-gradient(circle at 76% 42%, rgba(255, 126, 52, 0.16), transparent 44%), linear-gradient(150deg, rgba(92, 45, 30, 0.68), rgba(28, 22, 20, 0.76)) !important;
  backdrop-filter: blur(60px) saturate(200%) brightness(1.2) !important;
  -webkit-backdrop-filter: blur(60px) saturate(200%) brightness(1.2) !important;
  border: 1px solid rgba(255, 255, 255, 0.14) !important;
  border-radius: var(--ui-radius-2xl) !important;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.38), inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;
}

/* Backdrop - Full screen overlay with blur */
.ui-modal__backdrop {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal-backdrop);
  display: flex;
  align-items: center;
  justify-content: center;
  /* Dark overlay with blur */
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: var(--ui-blur-md);
  -webkit-backdrop-filter: var(--ui-blur-md);
  /* Fade in animation */
  animation: ui-modal-backdrop-in 0.2s ease-out;
}

/* Blur-only contract backdrop for status/confirmation modals where page context
   must remain visible without adding a dark color wash. */
.ui-modal__backdrop--blur {
  background: transparent !important;
  backdrop-filter: blur(12px) saturate(145%) !important;
  -webkit-backdrop-filter: blur(12px) saturate(145%) !important;
}

@keyframes ui-modal-backdrop-in {
  from {
    opacity: 0;
    backdrop-filter: blur(0px);
    -webkit-backdrop-filter: blur(0px);
  }
  to {
    opacity: 1;
  }
}
/* Panel - The modal content container */
.ui-modal__panel, .glass-modal-container {
  position: relative;
  z-index: var(--z-modal);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  /* Default sizing - overridden by variants */
  width: 95%;
  max-width: 600px;
  max-height: 85vh;
  /* Slide up animation */
  animation: ui-modal-panel-in 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes ui-modal-panel-in {
  from {
    opacity: 0;
    transform: translateY(12px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
/* ==========================================================================
   MODAL INTERNAL STRUCTURE
   ========================================================================== */
.ui-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--ui-space-3) var(--ui-space-5);
  border-bottom: 1px solid var(--ui-border);
  flex-shrink: 0;
}

/* Legacy modal header alias */
/* OWNER: ui/layout/modal.scss */
.glass-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-5);
  border-bottom: 1px solid var(--ui-border);
  flex-shrink: 0;
}

.glass-modal-header .header-text,
.glass-modal-header .header-content {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  min-width: 0;
  flex: 1;
}

.glass-modal-header .header-controls {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.glass-modal-header .dialog-title {
  margin: 0;
  padding: 0;
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  line-height: 1;
}

.glass-modal-header .dialog-icon,
.glass-modal-header .header-content > mat-icon {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  font-size: 24px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.ui-modal__title {
  margin: 0;
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.ui-modal__close {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  color: var(--ui-text-muted);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.ui-modal__close:hover {
  background: var(--ui-surface-3);
  color: var(--ui-text-primary);
}

.ui-modal__body {
  flex: 1;
  padding: var(--ui-space-6);
  overflow-y: auto;
}

/* OWNER: ui/layout/modal.scss */
.glass-modal-body,
.modal-body {
  flex: 1;
  padding: var(--ui-space-6);
  overflow-y: auto;
}

.ui-modal__body {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
}

.ui-modal__footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ui-space-3);
  padding: var(--ui-space-5) var(--ui-space-6);
  border-top: 1px solid var(--ui-border);
  background: rgba(0, 0, 0, 0.2);
}

.ui-modal__footer .footer-left {
  margin-right: auto;
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.ui-modal__footer .footer-right {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
  justify-content: flex-end;
}

/* Payment-In modal keeps the existing body, but uses tighter chrome. */
.ui-modal--payment-in .ui-modal__header,
.ui-modal--payment-in .glass-modal-header {
  padding: var(--ui-space-2) var(--ui-space-4);
}

.ui-modal--payment-in .ui-modal__title-group .ui-stack--tight {
  gap: 4px;
}

.ui-modal--payment-in .ui-modal__close {
  width: 30px;
  height: 30px;
}

.ui-modal--payment-in .ui-modal__footer,
.ui-modal--payment-in .glass-modal-footer {
  padding: var(--ui-space-3) var(--ui-space-4);
}

/* ==========================================================================
   MODAL DETAILS LAYOUT (Generic)
   ========================================================================== */
.ui-modal__title-group {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  flex-wrap: wrap;
  flex: 1 1 auto;
  min-width: 0;
}

.ui-modal__title-group--nowrap {
  flex-wrap: nowrap;
}

.ui-modal__header-actions {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin-left: auto;
  justify-content: flex-end;
  flex-shrink: 0;
}

.ui-modal__header-actions > * {
  flex-shrink: 0;
}

.ui-modal__badge, .glass-modal-container .modal-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border-light);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  letter-spacing: 0.04em;
}

.ui-modal__tag {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-1);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-secondary);
}

.ui-modal__tag.type-vendor,
.ui-modal__tag.type-service {
  background: var(--ui-info-bg);
  border-color: var(--ui-info-border);
  color: var(--ui-info);
}

.ui-modal__tag.type-reimbursement,
.ui-modal__tag.type-petty {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.ui-modal__tag.type-purchase,
.ui-modal__tag.type-card {
  background: var(--ui-surface-2);
  border-color: var(--ui-border-hover);
  color: var(--ui-text-secondary);
}

.ui-modal__tag--required {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
  font-weight: var(--ui-font-semibold);
}

.ui-modal__status, .glass-modal-container .status-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-2);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ui-text-muted);
}

.ui-modal__status.status-draft, .glass-modal-container .status-draft.status-badge,
.ui-modal__status.status-pending,
.glass-modal-container .status-pending.status-badge,
.ui-modal__status.status-on-hold,
.glass-modal-container .status-on-hold.status-badge,
.ui-modal__status.status-hold,
.glass-modal-container .status-hold.status-badge,
.ui-modal__status.status-partially-paid,
.glass-modal-container .status-partially-paid.status-badge {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.ui-modal__status.status-submitted, .glass-modal-container .status-submitted.status-badge,
.ui-modal__status.status-payable-created,
.glass-modal-container .status-payable-created.status-badge,
.ui-modal__status.status-ready,
.glass-modal-container .status-ready.status-badge {
  background: var(--ui-info-bg);
  border-color: var(--ui-info-border);
  color: var(--ui-info);
}

.ui-modal__status.status-approved, .glass-modal-container .status-approved.status-badge,
.ui-modal__status.status-settled,
.glass-modal-container .status-settled.status-badge,
.ui-modal__status.status-paid,
.glass-modal-container .status-paid.status-badge,
.ui-modal__status.status-closed,
.glass-modal-container .status-closed.status-badge {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.ui-modal__status.status-rejected, .glass-modal-container .status-rejected.status-badge,
.ui-modal__status.status-cancelled,
.glass-modal-container .status-cancelled.status-badge {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
}

.ui-modal__grid {
  --ui-grid-columns: minmax(0, 1fr) minmax(0, 360px);
  --ui-grid-gap: var(--ui-space-5);
  align-items: stretch;
}

.ui-modal__grid--top {
  --ui-grid-columns: minmax(0, 1fr) minmax(0, 360px);
}

.ui-modal__grid--bottom {
  --ui-grid-columns: minmax(0, 1fr) minmax(0, 360px);
  align-items: stretch;
}

.ui-modal__grid--bottom > .ui-stack {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.ui-modal__grid--bottom > .ui-stack > .ui-modal__section {
  flex: 1;
  display: flex;
  flex-direction: column;
}

@media (max-width: 1100px) {
  .ui-modal__grid {
    --ui-grid-columns: 1fr;
  }
}
.ui-modal__section {
  gap: var(--ui-space-3);
  min-width: 0;
  height: 100%;
}

.ui-modal__section-heading {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
}

.ui-modal__section-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: var(--ui-brand);
  margin-top: 0;
}

.glass-modal-container .ui-card__header, .glass-modal-container .card-header,
.glass-modal-container .section-header,
.glass-modal-container .entry-header,
.glass-modal-container .timeline-card > header,
.glass-modal-container .attachments > header,
.glass-modal-container .review-header,
.glass-modal-container .modal-header {
  position: relative;
  padding-bottom: var(--ui-space-2);
}

.glass-modal-container .ui-card__header::after, .glass-modal-container .card-header::after,
.glass-modal-container .section-header::after,
.glass-modal-container .entry-header::after,
.glass-modal-container .timeline-card > header::after,
.glass-modal-container .attachments > header::after,
.glass-modal-container .review-header::after,
.glass-modal-container .modal-header::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: rgba(255, 120, 79, 0.18);
}

.glass-modal-container .ui-card__title, .glass-modal-container .card-header h3,
.glass-modal-container .section-title,
.glass-modal-container .card-title,
.glass-modal-container .entry-header h3,
.glass-modal-container .timeline-card h3,
.glass-modal-container .review-title,
.glass-modal-container .modal-title h2 {
  color: var(--ui-brand);
  line-height: 1;
}

.ui-modal__helper-text, .glass-modal-container .muted,
.glass-modal-container .helper-text,
.glass-modal-container .hint,
.glass-modal-container .confirm-message {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  letter-spacing: 0.03em;
}

.ui-modal__inline-form {
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-lg);
  background: rgba(0, 0, 0, 0.18);
  padding: var(--ui-space-3) var(--ui-space-4);
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.ui-modal__inline-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-2);
}

.ui-modal__inline-title {
  margin: 0;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ui-text-secondary);
}

.ui-modal__inline-close {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-2);
  color: var(--ui-text-muted);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: var(--ui-transition-base);
}

.ui-modal__inline-close:hover {
  background: var(--ui-surface-3);
  color: var(--ui-text-primary);
}

.ui-modal__inline-body {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.ui-modal__inline-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.ui-modal__error-text {
  font-size: var(--ui-text-xs);
  color: var(--ui-danger);
}

/* Nested modal overlay (inside an existing modal panel) */
.ui-modal__submodal {
  position: absolute;
  inset: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--ui-space-6);
  background: rgba(8, 8, 8, 0.6);
  backdrop-filter: blur(12px) saturate(150%);
  -webkit-backdrop-filter: blur(12px) saturate(150%);
}

.ui-modal__submodal-panel {
  width: min(560px, 100%);
  max-height: 80vh;
}

.ui-modal__info-grid, .glass-modal-container .info-grid,
.glass-modal-container .detail-grid,
.glass-modal-container .summary-grid,
.glass-modal-container .form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-3) var(--ui-space-5);
}

@media (max-width: 900px) {
  .ui-modal__info-grid, .glass-modal-container .info-grid,
  .glass-modal-container .detail-grid,
  .glass-modal-container .summary-grid,
  .glass-modal-container .form-grid {
    grid-template-columns: 1fr;
  }
}
.ui-modal__info-item, .glass-modal-container .info-item,
.glass-modal-container .detail-item,
.glass-modal-container .summary-item {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-bottom: var(--ui-space-3);
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.ui-modal__info-item--full {
  grid-column: 1/-1;
}

.ui-modal__info-item:nth-last-child(-n+2), .glass-modal-container .info-item:nth-last-child(-n+2),
.glass-modal-container .detail-item:nth-last-child(-n+2),
.glass-modal-container .summary-item:nth-last-child(-n+2) {
  border-bottom: none;
  padding-bottom: 0;
}

@media (max-width: 900px) {
  .ui-modal__info-item, .glass-modal-container .info-item,
  .glass-modal-container .detail-item,
  .glass-modal-container .summary-item {
    padding-bottom: var(--ui-space-2);
  }
  .ui-modal__info-item:nth-last-child(-n+2), .glass-modal-container .info-item:nth-last-child(-n+2),
  .glass-modal-container .detail-item:nth-last-child(-n+2),
  .glass-modal-container .summary-item:nth-last-child(-n+2) {
    border-bottom: 1px solid var(--ui-border-light);
    padding-bottom: var(--ui-space-2);
  }
  .ui-modal__info-item:last-child, .glass-modal-container .info-item:last-child,
  .glass-modal-container .detail-item:last-child,
  .glass-modal-container .summary-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }
}
.ui-modal__label, .glass-modal-container .label,
.glass-modal-container .metric-label,
.glass-modal-container .ref-label,
.glass-modal-container .field-label,
.glass-modal-container .section-label,
.glass-modal-container .info-label,
.glass-modal-container .detail-label,
.glass-modal-container .summary-label {
  font-size: var(--ui-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ui-text-muted);
}

.ui-modal__value, .glass-modal-container .value,
.glass-modal-container .metric-value,
.glass-modal-container .ref-value,
.glass-modal-container .info-value,
.glass-modal-container .detail-value,
.glass-modal-container .summary-value {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
}

.ui-modal__value--secondary {
  display: block;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-muted);
  margin-top: 2px;
}

.ui-modal__summary {
  background: var(--ui-surface-1);
  border-radius: var(--ui-radius-md);
  padding: var(--ui-space-3);
  border: 1px solid var(--ui-border-light);
  margin-top: var(--ui-space-3);
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.ui-modal__summary-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

.ui-modal__summary-row--total {
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.ui-modal__summary-label {
  font-size: var(--ui-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ui-text-muted);
}

.ui-modal__summary-value {
  font-size: var(--ui-text-base);
  color: var(--ui-text-secondary);
}

.ui-modal__summary-value--highlight {
  color: var(--ui-text-primary);
}

.ui-modal__summary-value.is-danger {
  color: var(--ui-danger);
}

.ui-modal__summary-value.is-success {
  color: var(--ui-success);
}

.ui-modal__summary-input {
  width: 72px;
  min-width: 72px;
  height: 32px;
}

/* Premium Total Hero */
.ui-modal__total-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-4);
  padding: var(--ui-space-4) var(--ui-space-5);
  margin-top: var(--ui-space-3);
  background: linear-gradient(135deg, rgba(255, 120, 79, 0.08) 0%, rgba(255, 120, 79, 0.02) 100%);
  border: 1px solid rgba(255, 120, 79, 0.2);
  border-radius: var(--ui-radius-lg);
  position: relative;
  overflow: hidden;
}

.ui-modal__total-hero::before {
  content: "";
  position: absolute;
  top: -50%;
  right: -20%;
  width: 150px;
  height: 150px;
  background: radial-gradient(circle, rgba(255, 120, 79, 0.15) 0%, transparent 70%);
  pointer-events: none;
}

.ui-modal__total-label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ui-text-muted);
}

.ui-modal__total-value {
  font-size: 28px;
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  letter-spacing: -0.02em;
  text-shadow: 0 2px 12px rgba(255, 120, 79, 0.25);
}

.ui-modal__meta {
  margin-top: var(--ui-space-2);
  color: var(--ui-text-muted);
}

.ui-modal__attachments {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--ui-space-3);
}

.ui-modal__attachment {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr) auto;
  gap: var(--ui-space-3);
  align-items: center;
  padding: var(--ui-space-2);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
}

.ui-modal__attachment-preview {
  width: 52px;
  height: 52px;
  border-radius: var(--ui-radius-md);
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: pointer;
  overflow: hidden;
}

.ui-modal__attachment-preview mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: var(--ui-text-muted);
}

.ui-modal__attachment-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
}

.ui-modal__attachment-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.ui-modal__attachment-name {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ui-modal__attachment-size {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.ui-modal__attachment-actions {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
}

.ui-modal__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-4);
  border: 1px dashed var(--ui-border-light);
  border-radius: var(--ui-radius-md);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  text-align: center;
}

.ui-modal__notice {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin-top: var(--ui-space-3);
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  border: 1px solid var(--ui-warning-border);
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
  font-size: var(--ui-text-xs);
}

.ui-modal__floating-menu {
  position: absolute;
  top: 50%;
  right: var(--ui-space-6);
  transform: translateY(-50%);
  z-index: calc(var(--z-modal, 1100) + 5);
  min-width: 300px;
  max-width: min(360px, 100% - var(--ui-space-6) * 2);
}

.ui-modal__floating-menu .ui-list-item {
  width: 100%;
  justify-content: space-between;
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-1);
  color: var(--ui-text-secondary);
  font: inherit;
  cursor: pointer;
}

.ui-modal__floating-menu .ui-list-item:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
}

.ui-menu-anchor {
  position: relative;
  display: inline-flex;
}

/* Footer-triggered menus should anchor to their button, not modal center. */
.ui-modal__floating-menu--footer {
  top: auto;
  right: 0;
  bottom: calc(100% + var(--ui-space-2));
  transform: none;
  min-width: 280px;
  max-width: min(360px, 100vw - var(--ui-space-6) * 2);
}

.ui-modal__timeline {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  max-height: 280px;
  overflow-y: auto;
  /* Subtle scrollbar */
}
.ui-modal__timeline::-webkit-scrollbar {
  width: 4px;
}
.ui-modal__timeline::-webkit-scrollbar-track {
  background: transparent;
}
.ui-modal__timeline::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.12);
  border-radius: 4px;
}

.ui-modal__timeline-entry {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: var(--ui-space-3);
  align-items: flex-start;
}

.ui-modal__timeline-indicator {
  position: relative;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ui-text-muted);
}

.ui-modal__timeline-indicator.is-success {
  color: var(--ui-success);
}

.ui-modal__timeline-indicator.is-danger {
  color: var(--ui-danger);
}

.ui-modal__timeline-connector {
  position: absolute;
  top: 22px;
  left: 50%;
  transform: translateX(-50%);
  width: 2px;
  height: calc(100% - 16px);
  background: var(--ui-border);
}

.ui-modal__timeline-content {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.ui-modal__timeline-action {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
}

.ui-modal__timeline-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-3);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.ui-modal__timeline-details {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.ui-modal__stepper {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.ui-modal__step {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: var(--ui-space-3);
  align-items: flex-start;
}

.ui-modal__step-indicator {
  position: relative;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-2);
  color: var(--ui-text-muted);
  display: flex;
  align-items: center;
  justify-content: center;
}

.ui-modal__step-indicator mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.ui-modal__step-connector {
  position: absolute;
  top: 34px;
  left: 50%;
  transform: translateX(-50%);
  width: 2px;
  height: calc(100% + var(--ui-space-2));
  background: var(--ui-border);
}

.ui-modal__step.is-complete .ui-modal__step-indicator {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.ui-modal__step.is-current .ui-modal__step-indicator,
.ui-modal__step.is-hold .ui-modal__step-indicator {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.ui-modal__step.is-rejected .ui-modal__step-indicator {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
}

.ui-modal__step-content {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.ui-modal__step-label {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
}

.ui-modal__step-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.ui-modal__step-approver {
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-secondary);
}

.ui-modal__step-time {
  color: var(--ui-text-muted);
}

.ui-modal__step-remarks {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  font-style: italic;
}

.ui-modal__kv {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.ui-modal__kv-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
}

.ui-modal__link {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  background: transparent;
  border: none;
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  cursor: pointer;
  padding: 0;
}

.ui-modal__link mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.ui-modal__action {
  margin: var(--ui-space-3) 0;
}

.ui-modal__status-block {
  margin-top: var(--ui-space-3);
  padding-top: var(--ui-space-3);
  border-top: 1px solid var(--ui-border-light);
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.ui-modal__status-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
}

.ui-modal__pill {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-2);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
}

.ui-modal__pill.paid {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.ui-modal__pill.partial,
.ui-modal__pill.pending {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.ui-modal__pill.unpaid,
.ui-modal__pill.overdue {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
}

.ui-modal__value.is-success, .glass-modal-container .is-success.value,
.glass-modal-container .is-success.metric-value,
.glass-modal-container .is-success.ref-value,
.glass-modal-container .is-success.info-value,
.glass-modal-container .is-success.detail-value,
.glass-modal-container .is-success.summary-value {
  color: var(--ui-success);
}

.ui-modal__value.is-danger, .glass-modal-container .is-danger.value,
.glass-modal-container .is-danger.metric-value,
.glass-modal-container .is-danger.ref-value,
.glass-modal-container .is-danger.info-value,
.glass-modal-container .is-danger.detail-value,
.glass-modal-container .is-danger.summary-value {
  color: var(--ui-danger);
}

.ui-modal__description {
  margin: 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  line-height: 1.5;
}

/* ==========================================================================
   MATERIAL DIALOG INTEGRATION
   ==========================================================================
   Styles for Angular Material dialogs using the UI modal system.
   Apply panel class to MatDialog for integration.

   NOTE: Glass container visuals are defined in styles/glass-modal.css (line 265-274).
   Do NOT override them here.
   ========================================================================== */
/* Glass backdrop for MatDialog */
.ui-modal-backdrop.cdk-overlay-backdrop-showing {
  background: rgba(0, 0, 0, 0.6) !important;
  backdrop-filter: var(--ui-blur-md) !important;
  -webkit-backdrop-filter: var(--ui-blur-md) !important;
  opacity: 1 !important;
}

/* Transparent dialog surface - lets inner glass styling show */
.cdk-overlay-pane.ui-modal-panel .mat-mdc-dialog-container,
.cdk-overlay-pane.ui-modal-panel .mdc-dialog__container,
.cdk-overlay-pane.ui-modal-panel .mdc-dialog__surface,
.cdk-overlay-pane.ui-modal-panel .mat-mdc-dialog-surface {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
  padding: 0 !important;
  overflow: visible !important;
}

/* Center modal panels */
.cdk-global-overlay-wrapper:has(.ui-modal-panel) {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}

/* Fallback centering for environments without :has support */
.cdk-overlay-pane.ui-modal-panel {
  margin: auto;
}

/* Ensure dropdowns inside modals appear above dialog overlay (z-index: 10010 in overrides.scss) */
.cdk-overlay-container .cdk-overlay-pane:has(.mat-mdc-select-panel) {
  z-index: 10020 !important;
}

/* ==========================================================================
   SCROLL LOCK
   Apply to body when modal is open
   ========================================================================== */
body.ui-modal-open {
  overflow: hidden !important;
}

/* ==========================================================================
   JOB DETAILS DIALOG PANEL (Big Modals)
   ==========================================================================
   Copied from backup styles.css for job-details-dialog-panel.
   These rules ensure big modals display correctly with glass visuals.
   ========================================================================== */
/* Panel transparency - the overlay pane itself must be transparent */
body .cdk-overlay-pane.job-details-dialog-panel {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
}

/* Blur overlay backdrop - applies blur effect behind the dialog - excludes dropdown/datepicker backdrops */
body.job-details-dialog-open .cdk-overlay-backdrop.cdk-overlay-backdrop-showing:not(.cdk-overlay-transparent-backdrop):not(.mat-overlay-transparent-backdrop),
.cdk-overlay-container:has(.cdk-overlay-pane.job-details-dialog-panel) .cdk-overlay-backdrop.cdk-overlay-backdrop-showing:not(.cdk-overlay-transparent-backdrop):not(.mat-overlay-transparent-backdrop),
.cdk-overlay-container:has([class*=job-details-dialog-panel]) .cdk-overlay-backdrop.cdk-overlay-backdrop-showing:not(.cdk-overlay-transparent-backdrop):not(.mat-overlay-transparent-backdrop) {
  background: rgba(8, 8, 8, 0.65) !important;
  backdrop-filter: blur(12px) saturate(150%) !important;
  -webkit-backdrop-filter: blur(12px) saturate(150%) !important;
  opacity: 1 !important;
}

/* Mat dialog container - must be transparent so inner glass shows */
body .job-details-dialog-panel .mat-dialog-container,
body .job-details-dialog-panel .mat-mdc-dialog-container,
body .job-details-dialog-panel .mdc-dialog__surface,
body .job-details-dialog-panel .mat-mdc-dialog-surface {
  padding: 0 !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  border: none !important;
  border-radius: 0 !important;
  overflow: visible !important;
}

.cdk-overlay-pane.job-details-dialog-panel .mat-mdc-dialog-container .mat-mdc-dialog-surface,
.cdk-overlay-pane.job-details-dialog-panel .mat-mdc-dialog-container .mdc-dialog__surface {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border-radius: 24px !important;
  overflow: hidden !important;
}

.cdk-overlay-pane.job-details-dialog-panel .mat-mdc-dialog-container,
.cdk-overlay-pane.job-details-dialog-panel .mdc-dialog__container {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border-radius: 24px !important;
  overflow: hidden !important;
  width: 100% !important;
  max-width: 100% !important;
}

/* Job Details Dialog - Glassmorphic effect */
.cdk-overlay-pane.job-details-dialog-panel .job-details-dialog,
body .cdk-overlay-pane.job-details-dialog-panel .job-details-dialog,
.job-details-dialog-panel .mat-mdc-dialog-content.job-details-dialog {
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.01)) !important;
  backdrop-filter: blur(60px) saturate(200%) brightness(1.2) !important;
  -webkit-backdrop-filter: blur(60px) saturate(200%) brightness(1.2) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.38) !important;
  border-radius: 24px !important;
}

/* ==========================================================================
   WORKSHOP PIPELINE DIALOG PANEL
   ========================================================================== */
/* Panel transparency */
body .cdk-overlay-pane.workshop-pipeline-dialog-panel {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
}

/* Blur overlay backdrop - excludes dropdown/datepicker backdrops */
.cdk-overlay-container:has(.cdk-overlay-pane.workshop-pipeline-dialog-panel) .cdk-overlay-backdrop.cdk-overlay-backdrop-showing:not(.cdk-overlay-transparent-backdrop):not(.mat-overlay-transparent-backdrop),
.cdk-overlay-container:has([class*=workshop-pipeline-dialog-panel]) .cdk-overlay-backdrop.cdk-overlay-backdrop-showing:not(.cdk-overlay-transparent-backdrop):not(.mat-overlay-transparent-backdrop) {
  background: rgba(8, 8, 8, 0.65) !important;
  backdrop-filter: blur(12px) saturate(150%) !important;
  -webkit-backdrop-filter: blur(12px) saturate(150%) !important;
  opacity: 1 !important;
}

/* Mat dialog container transparency */
body .workshop-pipeline-dialog-panel .mat-dialog-container,
body .workshop-pipeline-dialog-panel .mat-mdc-dialog-container,
body .workshop-pipeline-dialog-panel .mdc-dialog__surface,
body .workshop-pipeline-dialog-panel .mat-mdc-dialog-surface {
  padding: 0 !important;
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border: none !important;
  overflow: visible !important;
}

/* Pipeline Dialog - Glassmorphic effect */
.cdk-overlay-pane.workshop-pipeline-dialog-panel .pipeline-dialog,
body .cdk-overlay-pane.workshop-pipeline-dialog-panel .pipeline-dialog {
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.01)) !important;
  backdrop-filter: blur(60px) saturate(200%) brightness(1.2) !important;
  -webkit-backdrop-filter: blur(60px) saturate(200%) brightness(1.2) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.38) !important;
  border-radius: 24px !important;
}

/* ==========================================================================
   LEGACY MODAL STYLES (Migrated from styles.scss)
   ========================================================================== */
/* Centered modal utility */
.cdk-global-overlay-wrapper:has(.centered-modal) {
  justify-content: center !important;
  align-items: center !important;
}

body .cdk-overlay-pane.centered-modal {
  position: fixed !important;
  inset: 0 !important;
  margin: 0 !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  transform: none !important;
  left: auto !important;
  right: auto !important;
  pointer-events: none !important;
}

body .cdk-overlay-pane.centered-modal > * {
  pointer-events: auto !important;
}

/* Transparent surface dialog */
.cdk-overlay-pane.transparent-surface-dialog .mat-mdc-dialog-container,
.cdk-overlay-pane.transparent-surface-dialog .mdc-dialog__container,
.cdk-overlay-pane.transparent-surface-dialog .mdc-dialog__surface,
.cdk-overlay-pane.transparent-surface-dialog .mat-mdc-dialog-surface {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: none !important;
  border: none !important;
  border-radius: 24px !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Glass dialog system
   LEGACY SCOPING: Only applies to explicitly listed legacy panel classes.
   EXCLUDES: ui-modal--small, ui-modal--default, ui-modal--big, ui-modal--print */
.custom-bg-modal .mat-mdc-dialog-container,
.custom-bg-modal .mdc-dialog__surface,
.dialog-container-custom .mat-mdc-dialog-container,
.dialog-container-custom .mdc-dialog__surface,
.neo-dialog-panel .mat-mdc-dialog-container,
.neo-dialog-panel .mdc-dialog__surface,
.loyalty-dialog .mat-mdc-dialog-container,
.loyalty-dialog .mdc-dialog__surface,
.macos-modal-panel .mat-mdc-dialog-container,
.macos-modal-panel .mdc-dialog__surface,
.glass-dialog-panel:not(.ui-modal--small):not(.ui-modal--default):not(.ui-modal--big):not(.ui-modal--print) .mat-mdc-dialog-container:not(:has(.glass-modal-container)),
.glass-dialog-panel:not(.ui-modal--small):not(.ui-modal--default):not(.ui-modal--big):not(.ui-modal--print) .mdc-dialog__surface:not(:has(.glass-modal-container)) {
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.01)) !important;
  backdrop-filter: blur(60px) saturate(130%) !important;
  -webkit-backdrop-filter: blur(60px) saturate(130%) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 24px !important;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.38) !important;
  overflow: hidden !important;
}

/* ==========================================================================
   MODAL FORM LAYOUT SYSTEM
   ==========================================================================
   Reusable form layout classes for modal forms.
   Used by: assign-advisor, add-car, and similar form-based modals.
   ========================================================================== */
/* Form Grid - 2-column layout for form cards/sections */
.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

/* Full span - element takes both columns */
.full-span {
  grid-column: 1/-1;
}

/* Form Row - Row of fields within a section */
.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 16px;
}

.form-row:last-child {
  margin-bottom: 0;
}

/* Three column variant */
.form-row.three-col {
  grid-template-columns: 1fr 1fr 1fr;
}

/* Form Field - Individual field wrapper */
.form-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.form-field.full-width {
  width: 100%;
}

/* Field Label - Label above form inputs */
.field-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: rgba(255, 255, 255, 0.6);
}

.field-label .required {
  color: #ff6b6b;
  margin-left: 2px;
}

/* Header Icon - Icon in modal header */
.header-icon {
  width: 28px;
  height: 28px;
  font-size: 28px;
  color: #ff7a3d;
}

/* Modal Title - Heading in modal header */
.modal-title {
  font-size: 20px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
  margin: 0;
  letter-spacing: -0.01em;
}

/* Responsive adjustments for form layouts */
@media (max-width: 600px) {
  .form-grid {
    grid-template-columns: 1fr;
  }
  .form-row,
  .form-row.three-col {
    grid-template-columns: 1fr;
  }
}
/* ==========================================================================
   MODAL BUTTON STYLES
   ==========================================================================
   Standard button styles for modal footers.
   Uses design patterns from ui/controls/buttons.scss
   ========================================================================== */
/* Primary action button for modals */
.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 24px;
  height: 44px;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
  /* Bright orange gradient matching backup */
  background: linear-gradient(135deg, rgba(255, 120, 80, 0.85), rgba(255, 80, 50, 0.9));
  border: 1px solid rgba(255, 160, 120, 0.3);
  color: white;
  box-shadow: 0 4px 16px rgba(255, 95, 70, 0.25);
}

.btn-primary:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(255, 95, 70, 0.35);
}

.btn-primary:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.btn-primary mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

/* ==========================================================================
   MODAL HERO HEADER — For view mode profile displays
   ========================================================================== */
.ui-modal__hero {
  display: flex;
  align-items: center;
  gap: var(--ui-space-4);
  padding: var(--ui-space-4) var(--ui-space-5);
  border-bottom: 1px solid var(--ui-border);
}

.ui-modal__avatar {
  position: relative;
  width: 56px;
  height: 56px;
  border-radius: var(--ui-radius-lg);
  background: var(--ui-surface-2);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
}

.ui-modal__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ui-modal__avatar-initials {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-secondary);
  text-transform: uppercase;
}

.ui-modal__avatar-status {
  position: absolute;
  bottom: 2px;
  right: 2px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 2px solid rgba(0, 0, 0, 0.4);
  background: var(--ui-text-muted);
}

.ui-modal__avatar-status.active {
  background: var(--ui-success);
}

.ui-modal__identity {
  flex: 1;
  min-width: 0;
}

.ui-modal__name {
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  margin: 0;
}

.ui-modal__subtitle, .glass-modal-container .header-subtitle,
.glass-modal-container .modal-subtitle {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  margin-top: var(--ui-space-1);
}

.ui-modal__meta {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
  margin-top: var(--ui-space-1);
}

.ui-modal__meta-pill {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  padding: calc(var(--ui-space-1) * 0.75) var(--ui-space-2);
  background: var(--ui-surface-2);
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-secondary);
}

.ui-modal__meta-pill mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

.ui-modal__badge, .glass-modal-container .modal-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  padding: calc(var(--ui-space-1) * 0.75) var(--ui-space-2);
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
}

.ui-modal__badge--success {
  background: var(--ui-success-bg);
  color: var(--ui-success);
}

.ui-modal__badge--warning {
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
}

.ui-modal__badge--info {
  background: var(--ui-info-bg);
  color: var(--ui-info);
}

.ui-modal__badge mat-icon, .glass-modal-container .modal-badge mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

/* ==========================================================================
   MODAL LEGACY NORMALIZATION
   ==========================================================================
   Aligns legacy modal content blocks with the canonical modal + card contracts.
   Scoped to modal containers only to avoid page-level impact.
   ========================================================================== */
.glass-modal-container .card-header,
.glass-modal-container .section-header,
.glass-modal-container .entry-header,
.glass-modal-container .timeline-card > header,
.glass-modal-container .attachments > header,
.glass-modal-container .review-header,
.glass-modal-container .modal-header {
  margin-bottom: var(--ui-space-3);
}

.glass-modal-container .ui-card__section-title,
.glass-modal-container .glass-section-title,
.glass-modal-container .section-title,
.glass-modal-container .card-title {
  color: var(--ui-brand);
  border-bottom: 1px solid rgba(255, 120, 79, 0.18);
}

.glass-modal-container .ui-card__section-title mat-icon,
.glass-modal-container .glass-section-title mat-icon,
.glass-modal-container .section-title mat-icon,
.glass-modal-container .card-title mat-icon {
  color: var(--ui-brand);
}

/* ==========================================================================
   MODAL ROW CONSISTENCY
   Ensures equal-height cards and consistent gaps for card rows in modals.
   ========================================================================== */
.glass-modal-container .ui-modal__grid {
  --ui-grid-gap: var(--ui-space-5);
  align-items: stretch;
}

.glass-modal-container .ui-grid:has(.ui-card, .glass-modal-container .glass-card,
.glass-modal-container .glass-panel,
.glass-modal-container .fd-glass,
.glass-modal-container .section-card,
.glass-modal-container .content-section,
.glass-modal-container .timeline-card,
.glass-modal-container .entry-section,
.glass-modal-container .attachments,
.glass-modal-container .summary-card,
.glass-modal-container .metric-card,
.glass-modal-container .review-card,
.glass-modal-container .config-section,
.glass-modal-container .panel-card),
.glass-modal-container .ui-grid:has(.glass-card) {
  --ui-grid-gap: var(--ui-space-5);
  align-items: stretch;
}

.glass-modal-container .detail-layout,
.glass-modal-container .two-column-layout,
.glass-modal-container .glass-form-two-column,
.glass-modal-container .cards-grid,
.glass-modal-container .settings-grid {
  gap: var(--ui-space-5);
  align-items: stretch;
}

.glass-modal-container .ui-modal__grid > *,
.glass-modal-container .ui-grid > *,
.glass-modal-container .detail-layout > *,
.glass-modal-container .two-column-layout > *,
.glass-modal-container .glass-form-two-column > *,
.glass-modal-container .cards-grid > *,
.glass-modal-container .settings-grid > * {
  align-self: stretch;
}

.glass-modal-container .ui-modal__grid > .ui-card, .glass-modal-container .ui-modal__grid > .glass-card,
.glass-modal-container .ui-modal__grid > .glass-panel,
.glass-modal-container .ui-modal__grid > .fd-glass,
.glass-modal-container .ui-modal__grid > .section-card,
.glass-modal-container .ui-modal__grid > .content-section,
.glass-modal-container .ui-modal__grid > .timeline-card,
.glass-modal-container .ui-modal__grid > .entry-section,
.glass-modal-container .ui-modal__grid > .attachments,
.glass-modal-container .ui-modal__grid > .summary-card,
.glass-modal-container .ui-modal__grid > .metric-card,
.glass-modal-container .ui-modal__grid > .review-card,
.glass-modal-container .ui-modal__grid > .config-section,
.glass-modal-container .ui-modal__grid > .panel-card,
.glass-modal-container .ui-grid > .ui-card,
.glass-modal-container .ui-grid > .glass-card,
.glass-modal-container .ui-grid > .glass-panel,
.glass-modal-container .ui-grid > .fd-glass,
.glass-modal-container .ui-grid > .section-card,
.glass-modal-container .ui-grid > .content-section,
.glass-modal-container .ui-grid > .timeline-card,
.glass-modal-container .ui-grid > .entry-section,
.glass-modal-container .ui-grid > .attachments,
.glass-modal-container .ui-grid > .summary-card,
.glass-modal-container .ui-grid > .metric-card,
.glass-modal-container .ui-grid > .review-card,
.glass-modal-container .ui-grid > .config-section,
.glass-modal-container .ui-grid > .panel-card,
.glass-modal-container .ui-grid > .glass-card,
.glass-modal-container .detail-layout > .ui-card,
.glass-modal-container .detail-layout > .glass-card,
.glass-modal-container .detail-layout > .glass-panel,
.glass-modal-container .detail-layout > .fd-glass,
.glass-modal-container .detail-layout > .section-card,
.glass-modal-container .detail-layout > .content-section,
.glass-modal-container .detail-layout > .timeline-card,
.glass-modal-container .detail-layout > .entry-section,
.glass-modal-container .detail-layout > .attachments,
.glass-modal-container .detail-layout > .summary-card,
.glass-modal-container .detail-layout > .metric-card,
.glass-modal-container .detail-layout > .review-card,
.glass-modal-container .detail-layout > .config-section,
.glass-modal-container .detail-layout > .panel-card,
.glass-modal-container .detail-layout > .glass-card,
.glass-modal-container .two-column-layout > .ui-card,
.glass-modal-container .two-column-layout > .glass-card,
.glass-modal-container .two-column-layout > .glass-panel,
.glass-modal-container .two-column-layout > .fd-glass,
.glass-modal-container .two-column-layout > .section-card,
.glass-modal-container .two-column-layout > .content-section,
.glass-modal-container .two-column-layout > .timeline-card,
.glass-modal-container .two-column-layout > .entry-section,
.glass-modal-container .two-column-layout > .attachments,
.glass-modal-container .two-column-layout > .summary-card,
.glass-modal-container .two-column-layout > .metric-card,
.glass-modal-container .two-column-layout > .review-card,
.glass-modal-container .two-column-layout > .config-section,
.glass-modal-container .two-column-layout > .panel-card,
.glass-modal-container .two-column-layout > .glass-card,
.glass-modal-container .glass-form-two-column > .ui-card,
.glass-modal-container .glass-form-two-column > .glass-card,
.glass-modal-container .glass-form-two-column > .glass-panel,
.glass-modal-container .glass-form-two-column > .fd-glass,
.glass-modal-container .glass-form-two-column > .section-card,
.glass-modal-container .glass-form-two-column > .content-section,
.glass-modal-container .glass-form-two-column > .timeline-card,
.glass-modal-container .glass-form-two-column > .entry-section,
.glass-modal-container .glass-form-two-column > .attachments,
.glass-modal-container .glass-form-two-column > .summary-card,
.glass-modal-container .glass-form-two-column > .metric-card,
.glass-modal-container .glass-form-two-column > .review-card,
.glass-modal-container .glass-form-two-column > .config-section,
.glass-modal-container .glass-form-two-column > .panel-card,
.glass-modal-container .glass-form-two-column > .glass-card,
.glass-modal-container .cards-grid > .ui-card,
.glass-modal-container .cards-grid > .glass-card,
.glass-modal-container .cards-grid > .glass-panel,
.glass-modal-container .cards-grid > .fd-glass,
.glass-modal-container .cards-grid > .section-card,
.glass-modal-container .cards-grid > .content-section,
.glass-modal-container .cards-grid > .timeline-card,
.glass-modal-container .cards-grid > .entry-section,
.glass-modal-container .cards-grid > .attachments,
.glass-modal-container .cards-grid > .summary-card,
.glass-modal-container .cards-grid > .metric-card,
.glass-modal-container .cards-grid > .review-card,
.glass-modal-container .cards-grid > .config-section,
.glass-modal-container .cards-grid > .panel-card,
.glass-modal-container .cards-grid > .glass-card,
.glass-modal-container .settings-grid > .ui-card,
.glass-modal-container .settings-grid > .glass-card,
.glass-modal-container .settings-grid > .glass-panel,
.glass-modal-container .settings-grid > .fd-glass,
.glass-modal-container .settings-grid > .section-card,
.glass-modal-container .settings-grid > .content-section,
.glass-modal-container .settings-grid > .timeline-card,
.glass-modal-container .settings-grid > .entry-section,
.glass-modal-container .settings-grid > .attachments,
.glass-modal-container .settings-grid > .summary-card,
.glass-modal-container .settings-grid > .metric-card,
.glass-modal-container .settings-grid > .review-card,
.glass-modal-container .settings-grid > .config-section,
.glass-modal-container .settings-grid > .panel-card,
.glass-modal-container .settings-grid > .glass-card {
  height: 100%;
}

/* ==========================================================================
   ADDRESS CARD PATTERN
   For listing addresses with labels, GSTIN, and contact details within modals.
   ========================================================================== */
.address-cards {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.address-card {
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-lg);
  overflow: hidden;
  transition: var(--ui-transition-base);
}

.address-card:hover {
  border-color: var(--ui-border-hover);
}

.address-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--ui-space-3) var(--ui-space-4);
  border-bottom: 1px solid var(--ui-border-light);
  background: var(--ui-surface-1);
}

.address-card__label {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.address-card__icon {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
  color: var(--ui-brand);
}

.address-card__body {
  padding: var(--ui-space-3) var(--ui-space-4);
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.address-card__line {
  display: flex;
  align-items: baseline;
  gap: var(--ui-space-3);
}

.address-card__field-label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  min-width: 60px;
  flex-shrink: 0;
}

.address-card__field-value {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

.address-card__field-value.mono {
  font-family: var(--ui-font-mono);
  letter-spacing: 0.03em;
}

/* Empty state inline for address sections */
.empty-state--inline {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-5) var(--ui-space-4);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}

.empty-state--inline mat-icon {
  font-size: 24px !important;
  width: 24px !important;
  height: 24px !important;
  color: var(--ui-text-disabled);
}

/* Badge count for section titles */
.badge-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  border-radius: var(--ui-radius-full);
  background: var(--ui-brand-bg);
  border: 1px solid var(--ui-brand-border);
  color: var(--ui-brand);
  font-size: 10px;
  font-weight: var(--ui-font-bold);
  margin-left: var(--ui-space-2);
}

/* Section title icon alignment */
.section-title-icon {
  font-size: 18px !important;
  width: 18px !important;
  height: 18px !important;
  vertical-align: text-bottom;
  margin-right: var(--ui-space-1);
  color: var(--ui-brand);
}

/* Cashless tie-up status icons */
.cashless-yes {
  font-size: 18px !important;
  width: 18px !important;
  height: 18px !important;
  color: #4ade80;
  vertical-align: middle;
}

.cashless-no {
  font-size: 18px !important;
  width: 18px !important;
  height: 18px !important;
  color: rgba(255, 255, 255, 0.25);
  vertical-align: middle;
}

/* ==========================================================================
   PAYMENT V2 — POS-Speed Modal
   ========================================================================== */
.payment-v2 {
  display: flex;
  flex-direction: column;
  padding: 0;
  min-width: 380px;
  max-width: 440px;
  max-height: 85vh;
  margin: 0 auto;
  overflow: hidden;
}

.payment-v2-body {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 0 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.12) transparent;
}
.payment-v2-body::-webkit-scrollbar {
  width: 4px;
}
.payment-v2-body::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.12);
  border-radius: 4px;
}
.payment-v2-body::-webkit-scrollbar-track {
  background: transparent;
}

.payment-v2-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-shrink: 0;
  padding: 28px 24px 16px;
}

.payment-v2-title {
  font-size: 22px;
  font-weight: 700;
  color: var(--ui-text-primary);
  letter-spacing: -0.3px;
}

.payment-v2-party {
  font-size: 13px;
  color: var(--ui-text-secondary);
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 300px;
}

.payment-v2-due-chip {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--ui-space-1);
  margin-top: var(--ui-space-2);
  padding: 5px 10px;
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-hover, rgba(255, 255, 255, 0.04));
  border: 1px solid var(--ui-border-light, rgba(255, 255, 255, 0.07));
  width: fit-content;
}

.payment-v2-due-chip__item {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  white-space: nowrap;
}

.payment-v2-due-chip__item--muted {
  color: var(--ui-text-tertiary, rgba(255, 255, 255, 0.35));
}

.payment-v2-due-chip__item--paid {
  color: var(--ui-success, #4ade80);
}

.payment-v2-due-chip__item--due {
  color: var(--ui-brand, #ff784f);
  font-weight: var(--ui-font-semibold);
}

.payment-v2-due-chip__sep {
  font-size: var(--ui-text-xs);
  color: var(--ui-border, rgba(255, 255, 255, 0.15));
}

/* Pay Full CTA handled by .ui-btn--primary.ui-btn--block.ui-btn--lg from controls/buttons.scss */
.payment-v2-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--ui-text-tertiary, rgba(255, 255, 255, 0.3));
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.payment-v2-divider::before, .payment-v2-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--ui-border, rgba(255, 255, 255, 0.08));
}

.payment-v2-amount-wrap {
  display: flex;
  align-items: center;
  gap: 4px;
  background: var(--ui-surface-hover, rgba(255, 255, 255, 0.04));
  border: 1px solid var(--ui-border, rgba(255, 255, 255, 0.1));
  border-radius: 12px;
  padding: 0 16px;
  transition: border-color 0.15s;
}
.payment-v2-amount-wrap:focus-within {
  border-color: var(--ui-accent, #4f8cff);
}

.payment-v2-currency {
  font-size: 24px;
  font-weight: 600;
  color: var(--ui-text-secondary);
}

.payment-v2-amount {
  flex: 1;
  font-size: 28px;
  font-weight: 600;
  height: 60px;
  background: transparent;
  border: none;
  outline: none;
  color: var(--ui-text-primary);
  text-align: left;
  -moz-appearance: textfield;
}
.payment-v2-amount::placeholder {
  color: var(--ui-text-tertiary, rgba(255, 255, 255, 0.2));
}
.payment-v2-amount::-webkit-outer-spin-button, .payment-v2-amount::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.payment-v2-meta {
  display: flex;
  gap: 12px;
  align-items: center;
}

.payment-v2-mode,
.payment-v2-date {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  border-radius: 8px;
  background: var(--ui-surface-hover, rgba(255, 255, 255, 0.04));
  border: 1px solid var(--ui-border, rgba(255, 255, 255, 0.08));
  font-size: 13px;
  color: var(--ui-text-secondary);
}

.payment-v2-mode {
  flex: 1;
}
.payment-v2-mode select {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  color: var(--ui-text-primary);
  font-size: 13px;
  cursor: pointer;
}
.payment-v2-mode select option {
  background: var(--ui-surface, #1a1a2e);
  color: var(--ui-text-primary);
}

.payment-v2-meta-icon {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
  color: var(--ui-text-tertiary, rgba(255, 255, 255, 0.3));
}

.payment-v2-more {
  display: flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: none;
  color: var(--ui-text-tertiary, rgba(255, 255, 255, 0.4));
  font-size: 12px;
  cursor: pointer;
  padding: 4px 0;
  transition: color 0.15s;
}
.payment-v2-more:hover {
  color: var(--ui-text-secondary);
}
.payment-v2-more mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.payment-v2-advanced {
  display: flex;
  flex-direction: column;
  gap: 10px;
  animation: paymentV2SlideDown 0.15s ease;
}

@keyframes paymentV2SlideDown {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.payment-v2-field {
  width: 100%;
  padding: 10px 12px;
  border-radius: 8px;
  background: var(--ui-surface-hover, rgba(255, 255, 255, 0.04));
  border: 1px solid var(--ui-border, rgba(255, 255, 255, 0.08));
  color: var(--ui-text-primary);
  font-size: 13px;
  outline: none;
  resize: none;
  font-family: inherit;
  transition: border-color 0.15s;
  box-sizing: border-box;
}
.payment-v2-field::placeholder {
  color: var(--ui-text-tertiary, rgba(255, 255, 255, 0.3));
}
.payment-v2-field:focus {
  border-color: var(--ui-accent, #4f8cff);
}

.payment-v2-footer {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  flex-shrink: 0;
  padding: 16px 24px 20px;
  border-top: 1px solid var(--ui-border, rgba(255, 255, 255, 0.06));
}

/* Footer buttons use .ui-btn--primary and .ui-btn--ghost from controls/buttons.scss */
.payment-v2-footer-confirm {
  flex: 1;
}

.payment-v2-kbd {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 18px;
  padding: 0 5px;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 600;
  font-family: inherit;
  background: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.5);
  margin-left: 4px;
}

/* Spin animation — used by PaymentModalComponent submit loading state */
@keyframes payment-v2-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.payment-v2 .spin {
  animation: payment-v2-spin 0.8s linear infinite;
}

.payment-v2-advance-badge {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  margin-bottom: 12px;
  border-radius: 8px;
  background: rgba(var(--color-info-rgb, 59, 130, 246), 0.12);
  border: 1px solid rgba(var(--color-info-rgb, 59, 130, 246), 0.25);
  color: var(--color-info, #3b82f6);
  font-size: 12px;
  font-weight: 500;
}
.payment-v2-advance-badge mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.payment-v2-error {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  margin-top: 12px;
  border-radius: 8px;
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.3);
  animation: fadeIn 0.2s ease;
}
.payment-v2-error .payment-v2-error-icon {
  color: #ef4444;
  font-size: 18px;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}
.payment-v2-error .payment-v2-error-msg {
  flex: 1;
  font-size: 12.5px;
  color: #ef4444;
  line-height: 1.4;
}
.payment-v2-error .payment-v2-retry-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border: 1px solid rgba(239, 68, 68, 0.4);
  border-radius: 6px;
  background: transparent;
  color: #ef4444;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s;
}
.payment-v2-error .payment-v2-retry-btn mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}
.payment-v2-error .payment-v2-retry-btn:hover:not(:disabled) {
  background: rgba(239, 68, 68, 0.12);
}
.payment-v2-error .payment-v2-retry-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.payment-v2-payer-section {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 12px 0;
  border-top: 1px solid var(--ui-border, rgba(255, 255, 255, 0.06));
}

.payment-v2-payer-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ui-text-tertiary, rgba(255, 255, 255, 0.35));
}

.payment-v2-payer-toggle {
  display: flex;
  gap: 6px;
  padding: 3px;
  border-radius: 10px;
  background: var(--ui-surface-hover, rgba(255, 255, 255, 0.04));
  border: 1px solid var(--ui-border, rgba(255, 255, 255, 0.08));
}

.payment-v2-payer-btn {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 12px;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: var(--ui-text-tertiary, rgba(255, 255, 255, 0.4));
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
}
.payment-v2-payer-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}
.payment-v2-payer-btn:hover:not(.active) {
  color: var(--ui-text-secondary);
  background: rgba(255, 255, 255, 0.04);
}
.payment-v2-payer-btn.active {
  background: rgba(255, 120, 79, 0.15);
  color: #ffb083;
  font-weight: 600;
  border: 1px solid rgba(255, 120, 79, 0.25);
}

.payment-v2-emp-section {
  display: flex;
  flex-direction: column;
  gap: 10px;
  animation: paymentV2SlideDown 0.15s ease;
}

.payment-v2-emp-input {
  width: 100%;
  padding: 10px 12px;
  border-radius: 8px;
  background: var(--ui-surface-hover, rgba(255, 255, 255, 0.04));
  border: 1px solid var(--ui-border, rgba(255, 255, 255, 0.1));
  color: var(--ui-text-primary);
  font-size: 13px;
  outline: none;
  font-family: inherit;
  transition: border-color 0.15s;
  box-sizing: border-box;
}
.payment-v2-emp-input::placeholder {
  color: var(--ui-text-tertiary, rgba(255, 255, 255, 0.3));
}
.payment-v2-emp-input:focus {
  border-color: rgba(96, 165, 250, 0.5);
}

.payment-v2-emp-selected {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 10px;
  background: rgba(96, 165, 250, 0.08);
  border: 1px solid rgba(96, 165, 250, 0.2);
}

.payment-v2-emp-avatar {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(96, 165, 250, 0.3), rgba(59, 130, 246, 0.3));
  border: 1px solid rgba(96, 165, 250, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  color: #93c5fd;
  flex-shrink: 0;
}

.payment-v2-emp-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.payment-v2-emp-name {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}

.payment-v2-emp-code {
  font-size: 11px;
  color: rgba(147, 197, 253, 0.7);
  font-family: var(--ui-font-mono);
  letter-spacing: 0.02em;
}

.payment-v2-emp-clear {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 6px;
  border: none;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.4);
  cursor: pointer;
  transition: all 0.15s;
}
.payment-v2-emp-clear mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}
.payment-v2-emp-clear:hover {
  background: rgba(255, 80, 80, 0.15);
  color: #ff6b6b;
}

.payment-v2-emp-warning {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 8px;
  background: rgba(251, 191, 36, 0.08);
  border: 1px solid rgba(251, 191, 36, 0.2);
  font-size: 12px;
  color: rgba(253, 224, 71, 0.85);
  line-height: 1.4;
}
.payment-v2-emp-warning mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: #fbbf24;
  flex-shrink: 0;
  margin-top: 1px;
}

/* ==========================================================================
   MULTI-ADDRESS CARDS — Customer Edit Dialog
   ========================================================================== */
.addr-cards-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.addr-card {
  background: var(--ui-surface-2, rgba(255, 255, 255, 0.04));
  border: 1px solid var(--ui-border-light, rgba(255, 255, 255, 0.08));
  border-radius: 12px;
  overflow: hidden;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.addr-card:hover {
  border-color: rgba(255, 255, 255, 0.15);
}

.addr-card--default {
  border-color: rgba(255, 120, 79, 0.3);
  background: rgba(255, 120, 79, 0.04);
}

.addr-card--default:hover {
  border-color: rgba(255, 120, 79, 0.45);
}

.addr-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.addr-card__label-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.addr-card__label {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
  letter-spacing: 0.01em;
}

.addr-card__default-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 20px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  background: rgba(255, 120, 79, 0.15);
  color: #ff784f;
  border: 1px solid rgba(255, 120, 79, 0.25);
}

.addr-card__actions {
  display: flex;
  align-items: center;
  gap: 4px;
}

.addr-card__action-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  border: none;
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.5);
  cursor: pointer;
  transition: all 0.15s ease;
}

.addr-card__action-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.addr-card__action-btn:hover {
  background: rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.85);
}

.addr-card__action-btn--danger:hover {
  background: rgba(255, 80, 80, 0.15);
  color: #ff6b6b;
}

.addr-card__body {
  padding: 12px 16px;
}

.addr-card__body p {
  margin: 0;
  line-height: 1.5;
}

.addr-card__line {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.8);
}

.addr-card__city-state {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.55);
  margin-top: 2px !important;
}

.addr-card__country {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.35);
  margin-top: 2px !important;
}

.addr-card__gst {
  padding: 8px 16px 12px;
}

.addr-gst-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  border-radius: 8px;
  background: rgba(79, 140, 255, 0.1);
  border: 1px solid rgba(79, 140, 255, 0.2);
}

.addr-gst-badge__icon {
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
  color: #4f8cff;
}

.addr-gst-badge__number {
  font-size: 12px;
  font-weight: 600;
  font-family: var(--ui-font-mono);
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.8);
}

.addr-gst-badge__type {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 1px 6px;
  border-radius: 4px;
  background: rgba(79, 140, 255, 0.15);
  color: #6ba3ff;
}

/* Empty State */
.addr-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 48px 24px;
  text-align: center;
}

.addr-empty__icon {
  font-size: 48px !important;
  width: 48px !important;
  height: 48px !important;
  color: rgba(255, 255, 255, 0.15);
  margin-bottom: 12px;
}

.addr-empty__text {
  font-size: 15px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.55);
  margin: 0 0 4px;
}

.addr-empty__hint {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.35);
  margin: 0;
}

/* Add Address Button */
.addr-add-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  padding: 12px;
  border-radius: 10px;
  border: 1px dashed rgba(255, 255, 255, 0.15);
  background: rgba(255, 255, 255, 0.02);
  color: rgba(255, 255, 255, 0.5);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

.addr-add-btn:hover {
  border-color: rgba(255, 120, 79, 0.4);
  background: rgba(255, 120, 79, 0.06);
  color: #ff784f;
}

.addr-add-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

/* Address count badge on nav tab */
.addr-count-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 10px;
  font-size: 10px;
  font-weight: 700;
  background: rgba(255, 120, 79, 0.15);
  color: #ff784f;
  margin-left: 6px;
}

/* Default toggle alignment in address form */
.addr-form-default-toggle {
  display: flex;
  align-items: center;
  padding-top: 8px;
}

/* Custom toggle for dark glassmorphism */
.addr-toggle {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  -webkit-user-select: none;
          user-select: none;
}

.addr-toggle__input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}

.addr-toggle__track {
  position: relative;
  width: 36px;
  height: 20px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.15);
  transition: all 0.2s ease;
  flex-shrink: 0;
}

.addr-toggle__thumb {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.45);
  transition: all 0.2s ease;
}

.addr-toggle__input:checked ~ .addr-toggle__track {
  background: rgba(255, 120, 79, 0.3);
  border-color: rgba(255, 120, 79, 0.5);
}

.addr-toggle__input:checked ~ .addr-toggle__track .addr-toggle__thumb {
  left: 18px;
  background: #ff784f;
  box-shadow: 0 0 8px rgba(255, 120, 79, 0.4);
}

.addr-toggle__label {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.7);
}

/* ==========================================================================
   MEMBERSHIP TIER DIALOG — Color picker & Icon Upload
   ========================================================================== */
/* Color row: text field + picker side-by-side */
.glass-modal-container .color-row {
  align-items: center;
}

/* The clickable wrapper that contains the hidden native input + the preview swatch */
.color-picker-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 10px;
  overflow: hidden;
  border: 2px solid rgba(255, 255, 255, 0.12);
  cursor: pointer;
  flex-shrink: 0;
  position: relative;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.color-picker-wrap:hover {
  border-color: rgba(255, 120, 79, 0.5);
  box-shadow: 0 0 0 3px rgba(255, 120, 79, 0.12);
}

/* Hide the native input visually but keep it clickable */
.color-picker-native {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
  padding: 0;
  border: none;
}

/* The visible swatch that shows the selected color */
.color-picker-preview {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 8px;
  pointer-events: none;
}

/* Tier Icon upload area */
.glass-modal-container .icon-upload-area {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 8px 0 4px;
}

/* Large preview circle / placeholder */
.glass-modal-container .icon-preview-lg {
  width: 72px;
  height: 72px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.05);
  border: 2px dashed rgba(255, 255, 255, 0.14);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
  transition: border-color 0.2s ease;
}
.glass-modal-container .icon-preview-lg mat-icon {
  font-size: 30px !important;
  width: 30px !important;
  height: 30px !important;
  color: rgba(255, 255, 255, 0.25);
}
.glass-modal-container .icon-preview-lg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.glass-modal-container .icon-preview-lg.has-image {
  border-style: solid;
  border-color: rgba(255, 120, 79, 0.35);
}

/* Upload actions column */
.glass-modal-container .icon-upload-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* Upload button */
.glass-modal-container .btn-upload {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.8);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
}
.glass-modal-container .btn-upload mat-icon {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
}
.glass-modal-container .btn-upload:hover {
  background: rgba(255, 120, 79, 0.12);
  border-color: rgba(255, 120, 79, 0.35);
  color: #ff784f;
}

/* Hint text below upload button */
.glass-modal-container .upload-hint {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.35);
  margin: 0;
  line-height: 1.4;
}

/* Optional badge — shown in card-title to mark non-required sections */
.glass-modal-container .optional-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.4);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-left: auto; /* push to right of card-title */
  flex-shrink: 0;
}

/* ==========================================================================
   PARTY PROFILE COMPONENT (pp-*)
   Glass-native styles for PartyProfileComponent rendered inside legacy dialogs.
   ========================================================================== */
.pp-search-panel {
  padding: 16px;
}

/* User search result list */
.pp-user-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.pp-user-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 12px;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
}

.pp-user-item:hover {
  background: rgba(255, 255, 255, 0.07);
  border-color: rgba(255, 255, 255, 0.12);
}

.pp-user-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  background: rgba(255, 255, 255, 0.08);
}

.pp-user-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.pp-user-info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.pp-user-name {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pp-user-sub {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
}

/* Profile header card */
.pp-header-card {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 20px 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.pp-header-left {
  flex: 1;
  min-width: 0;
}

.pp-name-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 4px;
}

.pp-transfer-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 10px;
  border-radius: 12px;
  background: rgba(255, 152, 0, 0.15);
  color: #ffb74d;
  border: 1px solid rgba(255, 152, 0, 0.4);
  font-size: 11px;
  font-weight: 500;
}
.pp-transfer-badge mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.transfer-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border-radius: 10px;
  background: #fff3e0;
  color: #e65100;
  border: 1px solid #ffb74d;
  font-size: 11px;
  font-weight: 500;
  vertical-align: middle;
}
.transfer-badge mat-icon {
  font-size: 13px;
  width: 13px;
  height: 13px;
}

.pp-name {
  font-size: 15px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.95);
  margin: 0;
  letter-spacing: -0.01em;
}

.pp-contact {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
  margin: 0;
}

.pp-header-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  flex-shrink: 0;
}

.pp-meta-item {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 1px;
}

.pp-meta-label {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: rgba(255, 255, 255, 0.35);
}

.pp-meta-value {
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.75);
}

/* Tab content area */
.pp-tab-content {
  padding: 12px 16px 16px;
  min-height: 160px;
}

/* Generic data list (cars, bookings, packages, leads) */
.pp-data-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.pp-data-item {
  border-radius: 10px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  transition: background 0.15s, border-color 0.15s;
}

.pp-data-item:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.1);
}

.pp-data-link {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 10px 14px;
  cursor: pointer;
  text-decoration: none;
  color: inherit;
}

.pp-data-primary {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.88);
  display: flex;
  align-items: center;
  gap: 4px;
}

.pp-data-sub {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.4);
  display: flex;
  align-items: center;
  gap: 8px;
}

.pp-data-date {
  margin-left: auto;
  color: rgba(255, 255, 255, 0.3);
}

/* Empty state */
.pp-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 40px 16px;
  color: rgba(255, 255, 255, 0.3);
  font-size: 13px;
  text-align: center;
}

.pp-empty mat-icon {
  font-size: 32px !important;
  width: 32px !important;
  height: 32px !important;
  color: rgba(255, 255, 255, 0.15);
}

/*
 * CONTRACT RULE — SINGLE OWNER
 * Selectors defined here must NOT be redefined in:
 *   - ui/data/*
 *   - ui/tables/*
 *   - ui/modals/*
 * Other layers may use scoped overrides (parent > child) only.
 */
/* ==========================================================================
   UI LAYOUT - DRAWER CONTRACT
   ==========================================================================
   Slide-out drawer panel system.

   Z-INDEX RULES:
   - Drawer backdrop: var(--z-drawer-backdrop) = 1000
   - Drawer panel: var(--z-drawer-panel) = 1001
   - Drawers are BELOW modals (modals can open above drawers)
   ========================================================================== */
/* ==========================================================================
   BASE DRAWER STRUCTURE
   ========================================================================== */
.ui-drawer {
  /* Logical wrapper for drawer components - no visual styles */
  display: contents;
}

/* Backdrop */
.ui-drawer__backdrop {
  position: fixed;
  inset: 0;
  z-index: var(--z-drawer-backdrop);
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: var(--ui-blur-sm);
  -webkit-backdrop-filter: var(--ui-blur-sm);
  animation: ui-drawer-backdrop-in 0.2s ease-out;
}

@keyframes ui-drawer-backdrop-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/* Panel - slides in from right by default */
/* OWNER: ui/layout/drawer.scss */
.ui-drawer__panel {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: var(--z-drawer-panel);
  width: 480px;
  max-width: 95vw;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  /* Glass surface */
  background: var(--ui-glass-medium);
  backdrop-filter: var(--ui-blur-xl);
  -webkit-backdrop-filter: var(--ui-blur-xl);
  border-left: 1px solid var(--ui-border);
  box-shadow: var(--ui-shadow-xl);
  /* Slide in animation */
  animation: ui-drawer-slide-in 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes ui-drawer-slide-in {
  from {
    opacity: 0;
    transform: translateX(100%);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
/* Left-side drawer variant */
.ui-drawer--left .ui-drawer__panel {
  right: auto;
  left: 0;
  border-left: none;
  border-right: 1px solid var(--ui-border);
  animation-name: ui-drawer-slide-in-left;
}

@keyframes ui-drawer-slide-in-left {
  from {
    opacity: 0;
    transform: translateX(-100%);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
/* ==========================================================================
   DRAWER SIZE VARIANTS
   ========================================================================== */
.ui-drawer--sm .ui-drawer__panel {
  width: 360px;
}

.ui-drawer--lg .ui-drawer__panel {
  width: 640px;
}

.ui-drawer--xl .ui-drawer__panel {
  width: 800px;
}

/* ==========================================================================
   OFFCANVAS TOGGLE (FOR IN-PAGE DRAWERS)
   ========================================================================== */
.ui-drawer__panel--offcanvas {
  transform: translateX(100%);
  animation: none;
  transition: transform var(--ui-transition-spring);
}

.ui-drawer__panel--offcanvas.open {
  transform: translateX(0);
}

/* ==========================================================================
   INLINE DRAWER VARIANT
   ==========================================================================
   Inline drawer sits within the page flow and pushes content.
   Floating rounded card design matching console-sidebar.
   ========================================================================== */
.ui-drawer--inline {
  /* Inline drawer is part of layout, not overlaid */
  display: flex;
  flex-shrink: 0;
  width: 0;
  overflow: hidden;
  transition: width 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  height: 100%;
  padding: 10px 10px 10px 0; /* Margin effect via padding */
  box-sizing: border-box;
}

.ui-drawer--inline.is-open {
  width: 400px;
}

/* Inline panel - floating rounded card */
.ui-drawer--inline .ui-drawer__panel {
  position: relative;
  top: auto;
  right: auto;
  bottom: auto;
  width: 100%;
  height: 100%;
  z-index: auto;
  animation: none;
  /* Floating rounded card - matches console-sidebar */
  border-radius: var(--ui-radius-2xl); /* 24px */
  background: rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border: 1px solid rgba(255, 255, 255, 0.05);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.02), -4px 0 24px rgba(0, 0, 0, 0.12);
}

/* No backdrop for inline drawer */
.ui-drawer--inline .ui-drawer__backdrop {
  display: none;
}

/* Content area transition when inline drawer opens */
.console-body.has-assist-sidebar .console-content {
  transition: margin-right 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

/* ==========================================================================
   DRAWER INTERNAL STRUCTURE
   ========================================================================== */
.ui-drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--ui-space-5) var(--ui-space-6);
  border-bottom: 1px solid var(--ui-border);
  flex-shrink: 0;
}

.ui-drawer__title {
  margin: 0;
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.ui-drawer__close {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  color: var(--ui-text-muted);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.ui-drawer__close:hover {
  background: var(--ui-surface-3);
  color: var(--ui-text-primary);
}

.ui-drawer__body {
  flex: 1;
  padding: var(--ui-space-6);
  overflow-y: auto;
}

.ui-drawer__footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ui-space-3);
  padding: var(--ui-space-4) var(--ui-space-6);
  border-top: 1px solid var(--ui-border);
  background: rgba(0, 0, 0, 0.2);
}

/* ==========================================================================
   BODY STATE WHEN DRAWER OPEN
   ========================================================================== */
body.ui-drawer-open {
  overflow: hidden !important;
}

/* Lower header/sidebar z-index when drawer is open (existing behavior) */
body.ui-drawer-open .careager-topbar,
body.ui-drawer-open .navbar-custom.careager-topbar {
  z-index: var(--z-base) !important;
}

body.ui-drawer-open .left-side-menu,
body.ui-drawer-open .left-side-menu.glass-sidebar,
body.ui-drawer-open app-console-sidebar,
body.ui-drawer-open app-console-header {
  z-index: var(--z-base) !important;
}

/* ==========================================================================
   LEGACY DRAWER STYLES (Migrated from styles.scss)
   ========================================================================== */
/* ==========================================================================
   GLASS SIDENAV — Visual contract for mat-sidenav drawers
   ==========================================================================
   Layers visual styling on top of Angular Material's structural primitives.
   Material owns: positioning, animation.
   This contract owns: surface, sizing, z-index, backdrop, scroll lock.
   ========================================================================== */
.mat-drawer.glass-sidenav {
  width: 440px;
  max-width: 90vw;
  background: transparent;
  border: none;
  overflow: hidden;
  z-index: var(--z-drawer-panel);
}

/* Keep sidenav drawers above app shell chrome and pinned to viewport */
.mat-drawer-container:has(.glass-sidenav) .mat-drawer.glass-sidenav {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: auto !important;
  height: 100vh !important;
  max-height: 100vh !important;
  z-index: var(--z-drawer-panel) !important;
}

@supports (height: 100dvh) {
  .mat-drawer-container:has(.glass-sidenav) .mat-drawer.glass-sidenav {
    height: 100dvh !important;
    max-height: 100dvh !important;
  }
}
/* Backdrop — full viewport blur for sidenav drawers */
.mat-drawer-container:has(.glass-sidenav) .mat-drawer-backdrop.mat-drawer-shown {
  position: fixed !important;
  inset: 0 !important;
  background: rgba(8, 8, 8, 0.55) !important;
  backdrop-filter: blur(12px) saturate(140%) !important;
  -webkit-backdrop-filter: blur(12px) saturate(140%) !important;
  z-index: var(--z-drawer-backdrop) !important;
}

/* Lock background scroll when drawer is open */
html.drawer-open,
body.drawer-open {
  overflow: hidden !important;
  overscroll-behavior: none !important;
}

body.drawer-open .console-content,
body.drawer-open .mat-drawer-content,
body.drawer-open mat-sidenav-content {
  overflow: hidden !important;
}

/* Fallback: lock scroll whenever a glass sidenav is open even without body class wiring */
html:has(.mat-drawer-container.mat-drawer-container-has-open .glass-sidenav),
body:has(.mat-drawer-container.mat-drawer-container-has-open .glass-sidenav) {
  overflow: hidden !important;
  overscroll-behavior: none !important;
}

/* Keep drawer above global console chrome that uses high legacy z-index values */
body.drawer-open app-console-sidebar,
body.drawer-open app-console-header,
body.drawer-open .careager-topbar,
body.drawer-open .navbar-custom.careager-topbar,
body.drawer-open .left-side-menu,
body.drawer-open .left-side-menu.glass-sidebar {
  z-index: var(--z-base) !important;
}

/* Fallback z-index lowering for open sidenav state without body class */
body:has(.mat-drawer-container.mat-drawer-container-has-open .glass-sidenav) app-console-sidebar,
body:has(.mat-drawer-container.mat-drawer-container-has-open .glass-sidenav) app-console-header,
body:has(.mat-drawer-container.mat-drawer-container-has-open .glass-sidenav) .careager-topbar,
body:has(.mat-drawer-container.mat-drawer-container-has-open .glass-sidenav) .navbar-custom.careager-topbar,
body:has(.mat-drawer-container.mat-drawer-container-has-open .glass-sidenav) .left-side-menu,
body:has(.mat-drawer-container.mat-drawer-container-has-open .glass-sidenav) .left-side-menu.glass-sidebar {
  z-index: var(--z-base) !important;
}

/* PO Delivery Drawer */
html body app-purchased-order .delivery-drawer,
html body app-console-layout app-purchased-order .delivery-drawer,
html body .delivery-drawer[class*=delivery-drawer],
.delivery-drawer {
  position: fixed !important;
  z-index: 10000030 !important;
}

html body app-purchased-order .drawer-toggle-btn,
html body app-console-layout app-purchased-order .drawer-toggle-btn,
html body .drawer-toggle-btn[class*=drawer-toggle],
.drawer-toggle-btn {
  position: fixed !important;
  z-index: 10000030 !important;
}

/*
 * CONTRACT RULE — SINGLE OWNER
 * Selectors defined here must NOT be redefined in:
 *   - ui/data/*
 *   - ui/tables/*
 *   - ui/modals/*
 * Other layers may use scoped overrides (parent > child) only.
 */
/* ==========================================================================
   GLASS DRAWER - Reusable Right-Side Drawer Component
   Autroid Design System

   Usage:
   1. Import in your component: @import 'src/styles/glass-drawer.css';
   2. Add body class on open: document.body.classList.add('glass-drawer-open');
   3. Remove body class on close: document.body.classList.remove('glass-drawer-open');

   HTML Structure:
   <div class="glass-drawer-overlay" [class.open]="drawerOpen" (click)="closeDrawer()"></div>
   <aside class="glass-drawer" [class.open]="drawerOpen">
     <div class="glass-drawer-header">
       <h2><mat-icon class="header-icon">tune</mat-icon> Title</h2>
       <button class="glass-drawer-close" (click)="closeDrawer()">
         <mat-icon>close</mat-icon>
       </button>
     </div>
     <div class="glass-drawer-body">
       <div class="drawer-section">
         <div class="section-header">
           <mat-icon>icon_name</mat-icon>
           <span>Section Title</span>
         </div>
         <div class="section-chips">
           <button class="drawer-chip" [class.active]="isActive">Label</button>
         </div>
       </div>
     </div>
     <div class="glass-drawer-footer">
       <button class="drawer-btn-secondary">Reset</button>
       <button class="drawer-btn-primary">Apply</button>
     </div>
   </aside>
   ========================================================================== */
/* ==========================================================================
   BODY SCROLL LOCK
   ========================================================================== */
body.glass-drawer-open {
  overflow: hidden !important;
}

/* Break stacking context so fixed overlay can cover sidebar/header */
body.glass-drawer-open .ui-app-shell {
  isolation: auto !important;
}

/* Lower header/sidebar z-index when glass drawer is open */
body.glass-drawer-open .careager-topbar,
body.glass-drawer-open .navbar-custom.careager-topbar {
  z-index: 1 !important;
}

body.glass-drawer-open .left-side-menu,
body.glass-drawer-open .left-side-menu.glass-sidebar {
  z-index: 1 !important;
}

body.glass-drawer-open app-console-header,
body.glass-drawer-open app-console-sidebar {
  z-index: 1 !important;
}

/* ==========================================================================
   OVERLAY
   ========================================================================== */
.glass-drawer-overlay {
  position: fixed;
  inset: 0;
  background: rgba(8, 8, 8, 0.18);
  backdrop-filter: var(--ui-blur-md);
  -webkit-backdrop-filter: var(--ui-blur-md);
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
  z-index: var(--z-drawer-backdrop);
}

.glass-drawer-overlay.open {
  opacity: 1;
  visibility: visible;
}

/* ==========================================================================
   DRAWER CONTAINER
   ========================================================================== */
/* OWNER: ui/layout/glass-drawer.scss */
.glass-drawer {
  position: fixed;
  top: 0;
  right: 0;
  width: 560px;
  max-width: 100vw;
  height: 100vh;
  /* Glassmorphic background */
  background: rgba(255, 255, 255, 0.04);
  backdrop-filter: blur(22px) saturate(120%);
  -webkit-backdrop-filter: blur(22px) saturate(120%);
  border-left: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: -32px 0 64px rgba(0, 0, 0, 0.6), inset 1px 0 0 rgba(255, 255, 255, 0.04);
  display: flex;
  flex-direction: column;
  z-index: var(--z-drawer-panel);
  transform: translateX(100%);
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.glass-drawer.open {
  transform: translateX(0);
}

/* Hosted variant — for drawers embedded inside mat-sidenav or other containers
   that already handle positioning and animation.
   Material owns layout/animation. This contract owns surface + scroll. */
.glass-drawer.drawer-hosted {
  /* Reset fixed positioning — host container handles it */
  position: relative;
  width: 100%;
  height: 100%;
  max-width: none;
  z-index: auto;
  transform: none;
  transition: none;
  border-left: none;
  /* Flex column: header fixed, body scrolls */
  display: flex;
  flex-direction: column;
  /* Glass surface */
  background: rgba(255, 255, 255, 0.04);
  backdrop-filter: blur(22px) saturate(120%);
  -webkit-backdrop-filter: blur(22px) saturate(120%);
  border: 1px solid rgba(255, 255, 255, 0.06);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.03), -4px 0 24px rgba(0, 0, 0, 0.15);
  overflow: hidden;
}

/* Width variants */
.glass-drawer.drawer-sm {
  width: 360px;
}

.glass-drawer.drawer-md {
  width: 480px;
}

.glass-drawer.drawer-lg {
  width: 560px;
}

.glass-drawer.drawer-xl {
  width: 640px;
}

/* ==========================================================================
   HEADER
   ========================================================================== */
.glass-drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 28px 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  position: relative;
}

/* Orange gradient accent line */
.glass-drawer-header::after {
  content: "";
  position: absolute;
  left: 28px;
  right: 28px;
  bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 122, 61, 0.3), rgba(255, 122, 61, 0.5), rgba(255, 122, 61, 0.3), transparent);
}

.glass-drawer-header h2 {
  margin: 0;
  font-family: var(--ui-font-primary);
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.02em;
  display: flex;
  align-items: center;
  gap: 10px;
}

.glass-drawer-header h2 .header-icon {
  font-size: 22px;
  width: 22px;
  height: 22px;
  color: #ff7a3d;
  filter: drop-shadow(0 0 8px rgba(255, 122, 61, 0.5));
}

/* Close button */
.glass-drawer-close {
  width: 34px;
  height: 34px;
  min-width: 34px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  padding: 0;
}

.glass-drawer-close:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.9);
  transform: scale(1.05);
}

.glass-drawer-close mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

/* Header actions container */
.glass-drawer-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Icon button (used for profile link etc.) */
.glass-drawer-icon-btn {
  width: 34px;
  height: 34px;
  min-width: 34px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  padding: 0;
}

.glass-drawer-icon-btn:hover {
  background: rgba(255, 130, 90, 0.12);
  border-color: rgba(255, 130, 90, 0.3);
  color: #ff8a50;
  transform: scale(1.05);
}

.glass-drawer-icon-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

/* ==========================================================================
   BODY / CONTENT AREA
   ========================================================================== */
.glass-drawer-body {
  flex: 1;
  overflow-y: auto;
  padding: 20px 16px 24px;
}

/* Custom scrollbar */
.glass-drawer-body::-webkit-scrollbar {
  width: 6px;
}

.glass-drawer-body::-webkit-scrollbar-track {
  background: transparent;
}

.glass-drawer-body::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.1);
  border-radius: 3px;
}

.glass-drawer-body::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.15);
}

/* ==========================================================================
   SECTION CARDS
   ========================================================================== */
.drawer-section {
  margin-bottom: 8px;
  padding: 16px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.04);
  border-radius: 14px;
  transition: all 0.3s ease;
}

.drawer-section:hover {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
}

.drawer-section:last-child {
  margin-bottom: 0;
}

/* Section header */
.drawer-section .section-header {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  width: 100%;
  margin-bottom: 14px;
  padding: 0 0 12px;
  background: transparent;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 0;
}

.drawer-section .section-header mat-icon {
  font-size: 17px;
  width: 17px;
  height: 17px;
  color: #ff7a3d;
  flex-shrink: 0;
  filter: none;
}

.drawer-section .section-header span {
  font-family: var(--ui-font-primary);
  font-size: 11px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.86);
  text-transform: uppercase;
  letter-spacing: 0.12em;
}

/* ==========================================================================
   CHIPS / FILTER BUTTONS
   ========================================================================== */
.section-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.drawer-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 8px 16px;
  height: 32px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.03);
  color: rgba(255, 255, 255, 0.8);
  font-family: var(--ui-font-primary);
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  overflow: hidden;
}

/* Gradient overlay for hover */
.drawer-chip::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255, 122, 61, 0.1), transparent);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.drawer-chip mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.drawer-chip:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 122, 61, 0.3);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.drawer-chip:hover::before {
  opacity: 1;
}

/* Active state */
.drawer-chip.active {
  background: linear-gradient(135deg, rgba(255, 122, 61, 0.2), rgba(255, 80, 40, 0.1));
  border-color: rgba(255, 122, 61, 0.5);
  color: #ff8a50;
  font-weight: 600;
  box-shadow: 0 0 20px rgba(255, 122, 61, 0.15), inset 0 0 20px rgba(255, 122, 61, 0.05);
}

.drawer-chip.active::before {
  opacity: 1;
}

/* Quick filter chip variant */
.drawer-chip.quick mat-icon {
  color: rgba(255, 180, 100, 0.8);
}

.drawer-chip.quick.active mat-icon {
  color: #ff8a50;
  filter: drop-shadow(0 0 4px rgba(255, 122, 61, 0.5));
}

/* Domain chip variant uses global chip/badge contracts with drawer polish */
.glass-drawer .drawer-chip--domain {
  height: auto;
  min-height: 32px;
  padding: 6px 10px;
  gap: var(--ui-space-2);
  cursor: default;
}

.glass-drawer .drawer-chip--domain .drawer-chip__label {
  max-width: 140px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.glass-drawer .drawer-chip--domain .drawer-chip__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-2);
  color: var(--ui-text-secondary);
  font-weight: var(--ui-font-semibold);
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.glass-drawer-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  padding: 20px 28px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(0, 0, 0, 0.2);
}

/* Secondary button (Reset, Cancel) */
.drawer-btn-secondary {
  padding: 12px 24px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.8);
  font-family: var(--ui-font-primary);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.drawer-btn-secondary:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
  transform: translateY(-1px);
}

.drawer-btn-secondary.drawer-btn-secondary--compact {
  padding: 10px 18px;
  font-size: 12px;
}

/* Primary button (Apply, Save) */
.drawer-btn-primary {
  padding: 12px 32px;
  border-radius: 999px;
  background: linear-gradient(135deg, #ff7a3d, #e14125);
  border: none;
  color: #fff;
  font-family: var(--ui-font-primary);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 4px 20px rgba(255, 122, 61, 0.4), 0 0 40px rgba(255, 122, 61, 0.1);
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.drawer-btn-primary:hover {
  background: linear-gradient(135deg, #ff8a50, #e9522a);
  box-shadow: 0 6px 28px rgba(255, 122, 61, 0.5), 0 0 50px rgba(255, 122, 61, 0.2);
  transform: translateY(-2px);
}

.drawer-btn-primary:active {
  transform: translateY(0);
}

/* Disabled state */
.drawer-btn-primary:disabled,
.drawer-btn-secondary:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none !important;
}

/* ==========================================================================
   FORM ELEMENTS INSIDE DRAWER
   ========================================================================== */
/* Text input */
.drawer-input {
  width: 100%;
  padding: 12px 16px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.04);
  color: #fff;
  font-family: var(--ui-font-primary);
  font-size: 13px;
  font-weight: 500;
  transition: all 0.2s ease;
}

.drawer-input::placeholder {
  color: rgba(255, 255, 255, 0.4);
}

.drawer-input:focus {
  outline: none;
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 122, 61, 0.4);
  box-shadow: 0 0 0 3px rgba(255, 122, 61, 0.1);
}

/* Select dropdown styling */
.drawer-select {
  width: 100%;
  padding: 12px 16px;
  padding-right: 40px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.04);
  color: #fff;
  font-family: var(--ui-font-primary);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.5)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6,9 12,15 18,9'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  transition: all 0.2s ease;
}

.drawer-select:focus {
  outline: none;
  background-color: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 122, 61, 0.4);
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 500px) {
  .glass-drawer {
    width: 100vw;
  }
  .glass-drawer-header {
    padding: 20px 20px 16px;
  }
  .glass-drawer-header::after {
    left: 20px;
    right: 20px;
  }
  .glass-drawer-body {
    padding: 16px 12px 20px;
  }
  .glass-drawer-footer {
    padding: 16px 20px;
  }
  .drawer-section {
    padding: 14px;
  }
}
/* ==========================================================================
   SUMMARY CARD - Key/Value Data Display
   ========================================================================== */
.glass-drawer .summary-card {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 12px 16px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 12px;
  min-width: 0;
}

.glass-drawer .summary-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  min-width: 0;
}

.glass-drawer .summary-row:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.glass-drawer .summary-row:first-child {
  padding-top: 0;
}

.glass-drawer .summary-label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.45);
  margin: 0;
  padding: 0;
  border-bottom: 0;
  min-width: 0;
}

.glass-drawer .summary-value {
  font-family: var(--ui-font-primary);
  font-size: 15px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
  text-align: right;
  margin: 0;
  min-width: 0;
}

.glass-drawer .summary-value.mono {
  font-family: var(--ui-font-mono);
  letter-spacing: 0.02em;
  font-size: 14px;
}

.glass-drawer .summary-value.highlight {
  color: #ff8a50;
  font-weight: 700;
  font-size: 16px;
  filter: drop-shadow(0 0 8px rgba(255, 122, 61, 0.4));
}

.glass-drawer .summary-value.emi {
  color: #4ade80;
  font-size: 16px;
}

.glass-drawer .summary-value-group {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}

.glass-drawer .summary-sub {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
  font-weight: 500;
  font-family: var(--ui-font-mono);
}

/* ==========================================================================
   PROGRESS BAR - Repayment/Completion Progress
   ========================================================================== */
.glass-drawer .progress-section {
  margin-top: 20px;
  padding: 16px;
  background: rgba(0, 0, 0, 0.15);
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.05);
}

.glass-drawer .progress-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.glass-drawer .progress-label {
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.6);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.glass-drawer .progress-percent {
  font-family: var(--ui-font-mono);
  font-size: 14px;
  font-weight: 700;
  color: #ff8a50;
}

.glass-drawer .progress-bar {
  height: 10px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 999px;
  overflow: hidden;
  position: relative;
}

.glass-drawer .progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #ff7a3d, #ff9a60);
  border-radius: 999px;
  transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 0 16px rgba(255, 122, 61, 0.5);
}

.glass-drawer .progress-amounts {
  display: flex;
  justify-content: space-between;
  margin-top: 12px;
  font-size: 12px;
}

.glass-drawer .progress-amounts .paid {
  color: #4ade80;
  font-weight: 600;
}

.glass-drawer .progress-amounts .remaining {
  color: rgba(255, 255, 255, 0.5);
  font-weight: 500;
}

/* ==========================================================================
   INSTALLMENTS TABLE - Compact Data Table
   ========================================================================== */
.glass-drawer .installments-table-wrap {
  margin-top: 8px;
  overflow-x: auto;
  background: rgba(0, 0, 0, 0.1);
  border-radius: 10px;
  padding: 8px;
}

.glass-drawer .installments-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.glass-drawer .installments-table thead tr {
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.glass-drawer .installments-table th {
  padding: 12px 12px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.5);
  text-align: left;
}

.glass-drawer .installments-table td {
  padding: 14px 12px;
  color: rgba(255, 255, 255, 0.85);
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.glass-drawer .installments-table tbody tr:last-child td {
  border-bottom: none;
}

.glass-drawer .installments-table .num-cell {
  color: rgba(255, 255, 255, 0.4);
  font-weight: 600;
  width: 40px;
}

.glass-drawer .installments-table .amount-cell {
  text-align: right;
  font-family: var(--ui-font-mono);
  font-weight: 600;
}

.glass-drawer .installments-table .status-cell {
  text-align: center;
}

.glass-drawer .inst-status {
  display: inline-block;
  padding: 5px 12px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.glass-drawer .inst-status.status-recovered {
  background: rgba(74, 222, 128, 0.15);
  color: #4ade80;
  border: 1px solid rgba(74, 222, 128, 0.3);
}

.glass-drawer .inst-status.status-pending {
  background: rgba(255, 122, 61, 0.15);
  color: #ff8a50;
  border: 1px solid rgba(255, 122, 61, 0.3);
}

.glass-drawer .inst-status.status-skipped {
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.glass-drawer .empty-installments-cell {
  text-align: center;
  padding: 24px 0;
  color: rgba(255, 255, 255, 0.4);
}

.glass-drawer .empty-installments-cell mat-icon {
  font-size: 24px;
  width: 24px;
  height: 24px;
  vertical-align: middle;
  margin-right: 8px;
  opacity: 0.5;
}

/* ==========================================================================
   ACTIVITY TIMELINE - Vertical Event Log
   ========================================================================== */
.glass-drawer .activity-timeline {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  margin-top: 8px;
  padding: 8px 0;
  width: 100%;
}

.glass-drawer .timeline-item {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 14px;
  padding: 14px 0;
  position: relative;
  text-align: left;
  width: 100%;
  margin: 0;
}

.glass-drawer .timeline-item:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 17px;
  top: 50px;
  bottom: 0;
  width: 2px;
  background: linear-gradient(180deg, rgba(255, 122, 61, 0.3), rgba(255, 122, 61, 0.05));
}

.glass-drawer .timeline-dot {
  width: 36px;
  height: 36px;
  min-width: 36px;
  border-radius: 50%;
  background: rgba(255, 122, 61, 0.12);
  border: 1px solid rgba(255, 122, 61, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 16px rgba(255, 122, 61, 0.2);
  flex-shrink: 0;
  align-self: flex-start;
}

.glass-drawer .timeline-dot mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: #ff8a50;
}

.glass-drawer .timeline-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex: 1;
  min-width: 0;
  padding-top: 2px;
  text-align: left;
  width: 100%;
}

.glass-drawer .timeline-action {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(255, 180, 130, 0.9);
  margin-bottom: 6px;
}

.glass-drawer .timeline-message {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.5;
  margin-bottom: 8px;
}

.glass-drawer .timeline-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: flex-start;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.45);
  width: 100%;
  text-align: left;
}

.glass-drawer .timeline-meta .actor {
  font-weight: 600;
  color: rgba(255, 255, 255, 0.6);
}

.glass-drawer .timeline-meta .time {
  font-family: var(--ui-font-mono);
  font-size: 11px;
}

.glass-drawer .empty-activity {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 30px 0;
  color: rgba(255, 255, 255, 0.4);
  font-size: 13px;
}

.glass-drawer .empty-activity mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  opacity: 0.5;
}

/* ==========================================================================
   DRAWER ACTIVITY LOG - Isolated from generic timeline contracts
   ========================================================================== */
.glass-drawer .drawer-activity-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: 100%;
  margin-top: 8px;
  padding: 8px 0;
}

.glass-drawer .drawer-activity-item {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 14px;
  width: 100%;
  padding: 14px 0;
  margin: 0;
  text-align: left;
}

.glass-drawer .drawer-activity-item:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 17px;
  top: 50px;
  bottom: -4px;
  width: 2px;
  background: linear-gradient(180deg, rgba(255, 122, 61, 0.3), rgba(255, 122, 61, 0.05));
}

.glass-drawer .drawer-activity-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  min-width: 36px;
  border-radius: 50%;
  border: 1px solid rgba(255, 122, 61, 0.25);
  background: rgba(255, 122, 61, 0.12);
  box-shadow: 0 0 16px rgba(255, 122, 61, 0.2);
  flex-shrink: 0;
}

.glass-drawer .drawer-activity-icon mat-icon {
  width: 18px;
  height: 18px;
  font-size: 18px;
  color: #ff8a50;
}

.glass-drawer .drawer-activity-content {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  width: 100%;
  min-width: 0;
  padding-top: 2px;
  text-align: left;
}

.glass-drawer .drawer-activity-title {
  margin-bottom: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 180, 130, 0.9);
}

.glass-drawer .drawer-activity-message {
  margin-bottom: 8px;
  font-size: 14px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.85);
}

.glass-drawer .drawer-activity-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 16px;
  width: 100%;
  text-align: left;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.45);
}

.glass-drawer .drawer-activity-actor {
  font-weight: 600;
  color: rgba(255, 255, 255, 0.6);
}

.glass-drawer .drawer-activity-time {
  font-family: var(--ui-font-mono);
  font-size: 11px;
}

/* ==========================================================================
   LOADING STATE
   ========================================================================== */
.loading-details {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 40px 0;
  color: rgba(255, 255, 255, 0.5);
  font-size: 13px;
}

.loading-spinner {
  width: 32px;
  height: 32px;
  border: 3px solid rgba(255, 122, 61, 0.15);
  border-top-color: #ff7a3d;
  border-radius: 50%;
  animation: drawerSpinner 0.8s linear infinite;
}

@keyframes drawerSpinner {
  to {
    transform: rotate(360deg);
  }
}
/* ==========================================================================
   CONFIRMATION MODAL OVERLAY
   ========================================================================== */
.confirm-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.7);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1100;
}

.confirm-modal {
  width: 400px;
  max-width: 90vw;
  padding: 28px;
  background: rgba(30, 25, 22, 0.98);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 20px;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.6);
}

.confirm-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}

.confirm-header h3 {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  color: #fff;
}

.confirm-icon {
  font-size: 28px;
  width: 28px;
  height: 28px;
}

.confirm-icon.warn {
  color: #f59e0b;
  filter: drop-shadow(0 0 8px rgba(245, 158, 11, 0.4));
}

.confirm-body {
  margin-bottom: 24px;
}

.confirm-body p {
  margin: 0 0 8px;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.5;
}

.confirm-body .warning-text {
  color: #f59e0b;
}

.confirm-footer {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
}

/* Warning button variant */
.drawer-btn-secondary.warn {
  border-color: rgba(245, 158, 11, 0.3);
  color: #f59e0b;
}

.drawer-btn-secondary.warn:hover {
  background: rgba(245, 158, 11, 0.12);
  border-color: rgba(245, 158, 11, 0.5);
}

.drawer-btn-secondary.disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.drawer-btn-primary.warn {
  background: linear-gradient(135deg, #f59e0b, #d97706);
  box-shadow: 0 4px 20px rgba(245, 158, 11, 0.3);
}

.drawer-btn-primary.warn:hover {
  background: linear-gradient(135deg, #fbbf24, #f59e0b);
}

/* Button with icon */
.drawer-btn-secondary mat-icon,
.drawer-btn-primary mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  margin-right: 6px;
  vertical-align: middle;
}

.drawer-btn-primary mat-icon.spinning,
.drawer-btn-secondary mat-icon.spinning {
  animation: drawerSpinner 0.8s linear infinite;
}

/* ==========================================================================
   ANIMATION UTILITIES
   ========================================================================== */
/* Fade in animation for content */
.glass-drawer.open .drawer-section {
  animation: drawerSectionFadeIn 0.3s ease forwards;
  animation-delay: calc(var(--section-index, 0) * 0.05s);
}

@keyframes drawerSectionFadeIn {
  from {
    opacity: 0;
    transform: translateX(20px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
/* ==========================================================================
   ITEM DETAIL DRAWER — Stock / Inventory Item View
   ==========================================================================
   Used by stock-details drawer for displaying item information,
   pricing, tracking, and transaction history.
   ========================================================================== */
/* --- Header: Image + Name + Meta --- */
.drawer-item-header {
  display: flex;
  align-items: flex-start;
  gap: 16px;
}

.drawer-item-image {
  width: 72px;
  height: 72px;
  min-width: 72px;
  border-radius: 14px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
}

.drawer-item-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.drawer-item-info {
  flex: 1;
  min-width: 0;
}

.drawer-item-name {
  margin: 0;
  font-family: var(--ui-font-primary);
  font-size: 17px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.95);
  line-height: 1.3;
  word-break: break-word;
}

.drawer-item-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 6px;
  font-family: var(--ui-font-primary);
  font-size: 13px;
}

.drawer-meta-sku {
  color: rgba(255, 255, 255, 0.45);
  font-weight: 500;
  font-family: var(--ui-font-mono);
  font-size: 12px;
  letter-spacing: 0.02em;
}

.drawer-meta-price {
  color: #ff8a50;
  font-weight: 600;
  filter: drop-shadow(0 0 6px rgba(255, 122, 61, 0.3));
}

/* --- Header Actions (edit, close) --- */
.drawer-actions-group {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.drawer-action-btn {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
}

.drawer-action-btn:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.9);
  transform: scale(1.05);
}

.drawer-action-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

/* --- Tab Panel Container --- */
.drawer-tab-panel {
  animation: drawerSectionFadeIn 0.25s ease forwards;
}

/* --- Info Grid: 2-column key/value pairs --- */
.drawer-info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
}

.drawer-info-item {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 10px 12px;
  border-radius: 10px;
  transition: background 0.2s ease;
}

.drawer-info-item:hover {
  background: rgba(255, 255, 255, 0.03);
}

.drawer-info-label {
  font-family: var(--ui-font-primary);
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.4);
}

.drawer-info-value {
  font-family: var(--ui-font-primary);
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}

.drawer-info-value.price {
  color: #ff8a50;
  font-weight: 700;
  filter: drop-shadow(0 0 6px rgba(255, 122, 61, 0.3));
}

.drawer-info-value.highlight {
  color: #ff8a50;
  font-weight: 700;
}

/* --- Pricing Row: Side-by-side sections --- */
.drawer-pricing-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

/* --- Info Stack: Vertical list variant for pricing --- */
.drawer-info-stack {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

/* --- Text Action Buttons (View, Print Label) --- */
.drawer-text-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.7);
  font-family: var(--ui-font-primary);
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

.drawer-text-btn:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.95);
}

.drawer-text-btn.primary {
  background: rgba(255, 122, 61, 0.1);
  border-color: rgba(255, 122, 61, 0.25);
  color: #ff8a50;
}

.drawer-text-btn.primary:hover {
  background: rgba(255, 122, 61, 0.18);
  border-color: rgba(255, 122, 61, 0.4);
}

.drawer-text-btn mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

/* --- Section Header with Actions --- */
.drawer-section-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 14px;
  width: 100%;
}

.drawer-section-header .section-header {
  flex: 1 1 auto;
  min-width: 0;
  width: auto;
  margin-bottom: 0;
}

.drawer-section-actions {
  display: flex;
  align-items: center;
  gap: 6px;
}

/* --- Tracking Status --- */
.drawer-tracking-status {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.05);
}

.drawer-tracking-status.disabled {
  color: rgba(255, 255, 255, 0.4);
}

.drawer-tracking-status .status-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  opacity: 0.5;
}

.drawer-tracking-status .status-text {
  font-family: var(--ui-font-primary);
  font-size: 13px;
  font-weight: 500;
}

.drawer-tracking-info {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.drawer-tracking-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 999px;
  font-family: var(--ui-font-primary);
  font-size: 12px;
  font-weight: 600;
}

.drawer-tracking-badge.enabled {
  background: rgba(74, 222, 128, 0.1);
  border: 1px solid rgba(74, 222, 128, 0.25);
  color: #4ade80;
}

.drawer-tracking-badge.enabled mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: #4ade80;
}

.drawer-tracking-meta {
  display: flex;
  gap: 6px;
}

.drawer-meta-tag {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  font-family: var(--ui-font-primary);
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.6);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* --- Link Button (e.g., View terms) --- */
.drawer-link-btn {
  background: none;
  border: none;
  padding: 0;
  color: #ff8a50;
  font-family: var(--ui-font-primary);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  text-decoration: underline;
  text-decoration-color: rgba(255, 122, 61, 0.3);
  text-underline-offset: 3px;
  transition: all 0.2s ease;
}

.drawer-link-btn:hover {
  color: #ffab76;
  text-decoration-color: rgba(255, 122, 61, 0.6);
}

/* --- Transaction Timeline --- */
.drawer-timeline-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.drawer-timeline-item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 14px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.04);
  transition: all 0.2s ease;
}

.drawer-timeline-item:hover {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
}

.drawer-transaction-main {
  flex: 1;
  min-width: 0;
}

.drawer-transaction-vendor {
  font-family: var(--ui-font-primary);
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 4px;
}

.drawer-transaction-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--ui-font-primary);
  font-size: 12px;
  color: rgba(255, 255, 255, 0.4);
}

.drawer-transaction-meta span {
  font-weight: 500;
}

.drawer-transaction-details {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  flex-shrink: 0;
}

.drawer-activity-badge {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 999px;
  font-family: var(--ui-font-primary);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.drawer-activity-badge.purchased {
  background: rgba(74, 222, 128, 0.12);
  color: #4ade80;
  border: 1px solid rgba(74, 222, 128, 0.25);
}

.drawer-activity-badge.issued {
  background: rgba(255, 122, 61, 0.12);
  color: #ff8a50;
  border: 1px solid rgba(255, 122, 61, 0.25);
}

.drawer-activity-badge.returned {
  background: rgba(96, 165, 250, 0.12);
  color: #60a5fa;
  border: 1px solid rgba(96, 165, 250, 0.25);
}

.drawer-activity-badge.uninstalled {
  background: rgba(251, 191, 36, 0.12);
  color: #fbbf24;
  border: 1px solid rgba(251, 191, 36, 0.25);
}

.drawer-transaction-amounts {
  display: flex;
  gap: 14px;
}

.drawer-amount-item {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
}

.drawer-amount-label {
  font-family: var(--ui-font-primary);
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.35);
}

.drawer-amount-value {
  font-family: var(--ui-font-mono);
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
}

/* --- Empty State --- */
.drawer-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 40px 20px;
  color: rgba(255, 255, 255, 0.4);
}

.drawer-empty-state mat-icon {
  font-size: 32px;
  width: 32px;
  height: 32px;
  opacity: 0.4;
}

.drawer-empty-state span {
  font-family: var(--ui-font-primary);
  font-size: 13px;
  font-weight: 500;
}

/* --- Delete Action in Tab --- */
.drawer-delete-action {
  margin-left: 8px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
}

.drawer-delete-action mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: #ef4444;
  transition: all 0.2s ease;
}

.drawer-delete-action:hover mat-icon {
  filter: drop-shadow(0 0 6px rgba(239, 68, 68, 0.5));
}

/* ==========================================================================
   CLICKABLE METRIC — Drill-Down Affordance
   Used on KPI cards, revenue bars, leaderboard cells.
   ========================================================================== */
.clickable-metric {
  cursor: pointer;
  position: relative;
  transition: opacity 0.15s ease, transform 0.15s ease;
}

.clickable-metric:hover {
  opacity: 0.85;
}

.clickable-metric:active {
  transform: scale(0.98);
}

/* Hint text that appears on hover */
.clickable-metric__hint {
  display: block;
  font-size: 9px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 122, 61, 0);
  margin-top: 4px;
  transition: color 0.2s ease;
}

.clickable-metric:hover .clickable-metric__hint {
  color: rgba(255, 122, 61, 0.7);
}

/* Table cell variant — subtle underline on hover */
td.clickable-metric:hover span {
  text-decoration: underline;
  text-decoration-color: rgba(255, 122, 61, 0.4);
  text-underline-offset: 2px;
}

/* ==========================================================================
   CRM FUNNEL — Lead Pipeline Visualization
   ========================================================================== */
.crm-funnel {
  padding: 20px 24px 24px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.crm-funnel__stage {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.crm-funnel__stage-header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 0 2px;
}

.crm-funnel__stage-name {
  font-size: 12px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.7);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.crm-funnel__stage-count {
  font-size: 16px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.95);
  font-variant-numeric: tabular-nums;
}

.crm-funnel__bar-track {
  height: 26px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.04);
  overflow: hidden;
}

.crm-funnel__bar-fill {
  height: 100%;
  border-radius: 6px;
  background: linear-gradient(90deg, #6366f1, #818cf8);
  transition: width 0.6s cubic-bezier(0.22, 1, 0.36, 1);
  min-width: 4px;
}

.crm-funnel__bar-fill--converted {
  background: linear-gradient(90deg, #22c55e, #4ade80);
}

.crm-funnel__bar-fill--lost {
  background: linear-gradient(90deg, #ef4444, #f87171);
}

.crm-funnel__drop-off {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 600;
  color: #f97316;
  padding: 2px 0 4px 4px;
}

.crm-funnel__drop-off mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.crm-funnel__lost-badge {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: rgba(239, 68, 68, 0.7);
  padding: 8px 4px 4px;
  border-top: 1px solid rgba(239, 68, 68, 0.12);
  margin-top: 4px;
}

.crm-funnel__lost-badge mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

/* ==========================================================================
   UI LAYOUT UTILITIES
   ==========================================================================
   Generic layout utilities for stacks, inline rows, and grids.
   ========================================================================== */
.ui-stack {
  display: flex;
  flex-direction: column;
  gap: var(--ui-stack-gap, var(--ui-space-4));
  min-width: 0;
}

.ui-stack--tight {
  --ui-stack-gap: var(--ui-space-2);
}

.ui-stack--dense {
  --ui-stack-gap: var(--ui-space-3);
}

.ui-stack--loose {
  --ui-stack-gap: var(--ui-space-6);
}

.ui-inline {
  display: flex;
  align-items: center;
  gap: var(--ui-inline-gap, var(--ui-space-3));
  flex-wrap: wrap;
  min-width: 0;
}

.ui-inline--tight {
  --ui-inline-gap: var(--ui-space-2);
}

.ui-inline--dense {
  --ui-inline-gap: var(--ui-space-1);
}

.ui-inline--nowrap {
  flex-wrap: nowrap;
}

.ui-inline--between {
  justify-content: space-between;
}

.ui-inline--stretch {
  align-items: stretch;
}

.ui-grid {
  display: grid;
  gap: var(--ui-grid-gap, var(--ui-space-4));
  grid-template-columns: var(--ui-grid-columns, repeat(auto-fit, minmax(220px, 1fr)));
  min-width: 0;
}

.ui-grid--tight {
  --ui-grid-gap: var(--ui-space-2);
}

.ui-grid--dense {
  --ui-grid-gap: var(--ui-space-3);
}

.ui-grid--loose {
  --ui-grid-gap: var(--ui-space-6);
}

.ui-grid--2 {
  --ui-grid-columns: repeat(2, minmax(0, 1fr));
}

.ui-grid--3 {
  --ui-grid-columns: repeat(3, minmax(0, 1fr));
}

.ui-grid--4 {
  --ui-grid-columns: repeat(4, minmax(0, 1fr));
}

.ui-grid--5 {
  --ui-grid-columns: repeat(5, minmax(0, 1fr));
}

.ui-grid--kpi {
  --ui-grid-columns: repeat(auto-fit, minmax(160px, 1fr));
}

.ui-grid--split {
  --ui-grid-columns: minmax(0, 2.6fr) minmax(0, 1fr);
}

.ui-grid--sidebar {
  --ui-grid-columns: minmax(0, 1.4fr) minmax(0, 1fr);
}

@media (max-width: 960px) {
  .ui-grid--split,
  .ui-grid--sidebar {
    --ui-grid-columns: 1fr;
  }
}
@media (max-width: 1100px) {
  .ui-grid--3,
  .ui-grid--4,
  .ui-grid--5 {
    --ui-grid-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 720px) {
  .ui-grid--3,
  .ui-grid--4,
  .ui-grid--5 {
    --ui-grid-columns: 1fr;
  }
}
/* ==========================================================================
   TOOLBAR & LIST UTILITIES
   ========================================================================== */
.ui-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-toolbar-gap, var(--ui-space-4));
  flex-wrap: wrap;
  min-width: 0;
}

.ui-toolbar--tight {
  --ui-toolbar-gap: var(--ui-space-2);
}

.ui-toolbar__actions {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.ui-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--ui-list-gap, var(--ui-space-2));
}

.ui-list--dense {
  --ui-list-gap: var(--ui-space-2);
}

.ui-list-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
  border-radius: var(--ui-radius-lg);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
  transition: var(--ui-transition-base);
}

.ui-list-item--interactive:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
}

.ui-clamp, .ui-table .next-action-text, .glass-table .next-action-text,
.premium-table .next-action-text {
  display: -webkit-box;
  -webkit-line-clamp: var(--ui-clamp-lines, 2);
  line-clamp: var(--ui-clamp-lines, 2);
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ==========================================================================
   METRIC & META TEXT UTILITIES
   ========================================================================== */
.ui-metric__label {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-secondary);
}

.ui-metric__meta {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.ui-metric__value {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.ui-meta-inline {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.ui-meta-inline--nowrap {
  flex-wrap: nowrap;
  white-space: nowrap;
}

.ui-meta-inline mat-icon {
  font-size: var(--ui-text-sm);
  width: var(--ui-text-sm);
  height: var(--ui-text-sm);
}

/* ==========================================================================
   STEPPER & MATRIX UTILITIES
   ========================================================================== */
.ui-stepper {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.ui-stepper__step {
  display: grid;
  grid-template-columns: var(--ui-stepper-label-width, calc(var(--ui-space-12) * 1.5)) minmax(0, 1fr);
  gap: var(--ui-space-4);
  position: relative;
}

.ui-stepper__label {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: var(--ui-space-1);
}

.ui-stepper__pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: calc(var(--ui-space-12) * 1.25);
  padding: calc(var(--ui-space-1) * 1.5) var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  background: var(--ui-warning-bg);
  border: 1px solid var(--ui-warning-border);
  color: var(--ui-warning);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.02em;
}

.ui-stepper__connector {
  position: absolute;
  left: calc(var(--ui-stepper-label-width, calc(var(--ui-space-12) * 1.5)) * 0.5);
  top: calc(var(--ui-space-6));
  bottom: calc(var(--ui-space-4) * -1);
  width: 2px;
  background: var(--ui-border);
}

.ui-stepper__content {
  padding: var(--ui-space-3) var(--ui-space-4);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-lg);
  margin-bottom: var(--ui-space-4);
}

.ui-matrix {
  border-radius: var(--ui-radius-lg);
  border: 1px solid var(--ui-border);
  overflow: hidden;
  background: var(--ui-surface-1);
}

.ui-matrix__row {
  display: grid;
  grid-template-columns: var(--ui-matrix-columns, minmax(0, 140px) minmax(0, 1fr) minmax(0, 200px));
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
  border-bottom: 1px solid var(--ui-border-light);
  align-items: center;
}

.ui-matrix__row:last-child {
  border-bottom: none;
}

.ui-matrix__row--header {
  background: var(--ui-surface-2);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--ui-text-muted);
}

@media (max-width: 768px) {
  .ui-stepper__step {
    grid-template-columns: 1fr;
  }
  .ui-stepper__label {
    justify-content: flex-start;
  }
  .ui-stepper__connector {
    display: none;
  }
  .ui-matrix__row {
    grid-template-columns: 1fr;
  }
  .ui-matrix__row--header {
    display: none;
  }
}
/* ==========================================================================
   DIVIDER UTILITIES
   ========================================================================== */
.ui-divider {
  height: 1px;
  background: var(--ui-border-light);
  margin: var(--ui-space-4) 0;
}

.ui-divider--subtle {
  background: var(--ui-border);
}

.ui-divider--tight {
  margin: var(--ui-space-2) 0;
}

.ui-divider--loose {
  margin: var(--ui-space-6) 0;
}

/* ==========================================================================
   STATE UTILITIES - Empty, Loading, Error States
   ========================================================================== */
.ui-state--empty,
.ui-state--loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-12) var(--ui-space-6);
  text-align: center;
  min-height: 200px;
}

.ui-state__icon {
  font-size: 48px;
  width: 48px;
  height: 48px;
  color: var(--ui-text-muted);
  opacity: 0.5;
}

.ui-state__icon--branded {
  color: var(--ui-brand-light);
  opacity: 0.7;
}

.ui-state__title {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
  margin: 0;
}

.ui-state__description {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  margin: 0;
  line-height: 1.5;
}

/* Banner - Warning/Info message inline */
.ui-banner {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
  border-radius: var(--ui-radius-lg);
  font-size: var(--ui-text-sm);
}

.ui-banner--warning {
  background: var(--ui-warning-bg);
  border: 1px solid var(--ui-warning-border);
  color: var(--ui-warning);
}

.ui-banner--info {
  background: var(--ui-info-bg);
  border: 1px solid var(--ui-info-border);
  color: var(--ui-info);
}

.ui-banner mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
}

/* ==========================================================================
   SPACING UTILITIES — Semantic scale (xs/sm/md/lg/xl/2xl)
   ==========================================================================
   Maps to --ui-space-* tokens. Use these instead of inline margins/padding.
   ========================================================================== */
/* --- Margin Top --- */
.ui-mt-0 {
  margin-top: 0 !important;
}

.ui-mt-xs {
  margin-top: var(--ui-space-1) !important;
}

.ui-mt-sm {
  margin-top: var(--ui-space-2) !important;
}

.ui-mt-md {
  margin-top: var(--ui-space-4) !important;
}

.ui-mt-lg {
  margin-top: var(--ui-space-6) !important;
}

.ui-mt-xl {
  margin-top: var(--ui-space-8) !important;
}

.ui-mt-2xl {
  margin-top: var(--ui-space-12) !important;
}

/* --- Margin Bottom --- */
.ui-mb-0 {
  margin-bottom: 0 !important;
}

.ui-mb-xs {
  margin-bottom: var(--ui-space-1) !important;
}

.ui-mb-sm {
  margin-bottom: var(--ui-space-2) !important;
}

.ui-mb-md {
  margin-bottom: var(--ui-space-4) !important;
}

.ui-mb-lg {
  margin-bottom: var(--ui-space-6) !important;
}

.ui-mb-xl {
  margin-bottom: var(--ui-space-8) !important;
}

/* --- Margin Left --- */
.ui-ml-0 {
  margin-left: 0 !important;
}

.ui-ml-xs {
  margin-left: var(--ui-space-1) !important;
}

.ui-ml-sm {
  margin-left: var(--ui-space-2) !important;
}

.ui-ml-md {
  margin-left: var(--ui-space-4) !important;
}

.ui-ml-lg {
  margin-left: var(--ui-space-6) !important;
}

/* --- Margin Right --- */
.ui-mr-0 {
  margin-right: 0 !important;
}

.ui-mr-xs {
  margin-right: var(--ui-space-1) !important;
}

.ui-mr-sm {
  margin-right: var(--ui-space-2) !important;
}

.ui-mr-md {
  margin-right: var(--ui-space-4) !important;
}

.ui-mr-lg {
  margin-right: var(--ui-space-6) !important;
}

/* --- Margin Axis --- */
.ui-mx-auto {
  margin-left: auto !important;
  margin-right: auto !important;
}

.ui-mx-sm {
  margin-left: var(--ui-space-2) !important;
  margin-right: var(--ui-space-2) !important;
}

.ui-mx-md {
  margin-left: var(--ui-space-4) !important;
  margin-right: var(--ui-space-4) !important;
}

.ui-my-sm {
  margin-top: var(--ui-space-2) !important;
  margin-bottom: var(--ui-space-2) !important;
}

.ui-my-md {
  margin-top: var(--ui-space-4) !important;
  margin-bottom: var(--ui-space-4) !important;
}

.ui-my-lg {
  margin-top: var(--ui-space-6) !important;
  margin-bottom: var(--ui-space-6) !important;
}

/* --- Margin (all sides) --- */
.ui-m-0 {
  margin: 0 !important;
}

.ui-m-sm {
  margin: var(--ui-space-2) !important;
}

.ui-m-md {
  margin: var(--ui-space-4) !important;
}

/* --- Padding --- */
.ui-p-0 {
  padding: 0 !important;
}

.ui-p-xs {
  padding: var(--ui-space-1) !important;
}

.ui-p-sm {
  padding: var(--ui-space-2) !important;
}

.ui-p-md {
  padding: var(--ui-space-4) !important;
}

.ui-p-lg {
  padding: var(--ui-space-6) !important;
}

.ui-p-xl {
  padding: var(--ui-space-8) !important;
}

.ui-pt-0 {
  padding-top: 0 !important;
}

.ui-pt-sm {
  padding-top: var(--ui-space-2) !important;
}

.ui-pt-md {
  padding-top: var(--ui-space-4) !important;
}

.ui-pt-lg {
  padding-top: var(--ui-space-6) !important;
}

.ui-pb-0 {
  padding-bottom: 0 !important;
}

.ui-pb-sm {
  padding-bottom: var(--ui-space-2) !important;
}

.ui-pb-md {
  padding-bottom: var(--ui-space-4) !important;
}

.ui-pb-lg {
  padding-bottom: var(--ui-space-6) !important;
}

.ui-pl-0 {
  padding-left: 0 !important;
}

.ui-pl-sm {
  padding-left: var(--ui-space-2) !important;
}

.ui-pl-md {
  padding-left: var(--ui-space-4) !important;
}

.ui-pr-0 {
  padding-right: 0 !important;
}

.ui-pr-sm {
  padding-right: var(--ui-space-2) !important;
}

.ui-pr-md {
  padding-right: var(--ui-space-4) !important;
}

.ui-px-sm {
  padding-left: var(--ui-space-2) !important;
  padding-right: var(--ui-space-2) !important;
}

.ui-px-md {
  padding-left: var(--ui-space-4) !important;
  padding-right: var(--ui-space-4) !important;
}

.ui-px-lg {
  padding-left: var(--ui-space-6) !important;
  padding-right: var(--ui-space-6) !important;
}

.ui-py-sm {
  padding-top: var(--ui-space-2) !important;
  padding-bottom: var(--ui-space-2) !important;
}

.ui-py-md {
  padding-top: var(--ui-space-4) !important;
  padding-bottom: var(--ui-space-4) !important;
}

.ui-py-lg {
  padding-top: var(--ui-space-6) !important;
  padding-bottom: var(--ui-space-6) !important;
}

/* --- Gap --- */
.ui-gap-0 {
  gap: 0 !important;
}

.ui-gap-xs {
  gap: var(--ui-space-1) !important;
}

.ui-gap-sm {
  gap: var(--ui-space-2) !important;
}

.ui-gap-md {
  gap: var(--ui-space-4) !important;
}

.ui-gap-lg {
  gap: var(--ui-space-6) !important;
}

.ui-gap-xl {
  gap: var(--ui-space-8) !important;
}

/* ==========================================================================
   LAYOUT UTILITIES — Display, Flex, Position
   ========================================================================== */
.ui-flex {
  display: flex !important;
}

.ui-inline-flex {
  display: inline-flex !important;
}

.ui-block {
  display: block !important;
}

.ui-inline-block {
  display: inline-block !important;
}

.ui-none {
  display: none !important;
}

/* Flex direction & wrap */
.ui-flex-row {
  flex-direction: row !important;
}

.ui-flex-col {
  flex-direction: column !important;
}

.ui-flex-wrap {
  flex-wrap: wrap !important;
}

.ui-flex-nowrap {
  flex-wrap: nowrap !important;
}

.ui-flex-1 {
  flex: 1 !important;
}

.ui-flex-auto {
  flex: auto !important;
}

.ui-flex-shrink-0 {
  flex-shrink: 0 !important;
}

/* Alignment */
.ui-items-center {
  align-items: center !important;
}

.ui-items-start {
  align-items: flex-start !important;
}

.ui-items-end {
  align-items: flex-end !important;
}

.ui-items-stretch {
  align-items: stretch !important;
}

.ui-items-baseline {
  align-items: baseline !important;
}

.ui-justify-center {
  justify-content: center !important;
}

.ui-justify-between {
  justify-content: space-between !important;
}

.ui-justify-end {
  justify-content: flex-end !important;
}

.ui-justify-start {
  justify-content: flex-start !important;
}

.ui-justify-around {
  justify-content: space-around !important;
}

.ui-self-center {
  align-self: center !important;
}

.ui-self-start {
  align-self: flex-start !important;
}

.ui-self-end {
  align-self: flex-end !important;
}

/* Text alignment */
.ui-text-center {
  text-align: center !important;
}

.ui-text-left {
  text-align: left !important;
}

.ui-text-right {
  text-align: right !important;
}

/* Position */
.ui-relative {
  position: relative !important;
}

.ui-absolute {
  position: absolute !important;
}

.ui-fixed {
  position: fixed !important;
}

.ui-sticky {
  position: sticky !important;
}

/* Width & Height */
.ui-w-full {
  width: 100% !important;
}

.ui-w-auto {
  width: auto !important;
}

.ui-w-50 {
  width: 50% !important;
}

.ui-h-full {
  height: 100% !important;
}

.ui-h-auto {
  height: auto !important;
}

.ui-min-h-0 {
  min-height: 0 !important;
}

/* Overflow */
.ui-overflow-hidden {
  overflow: hidden !important;
}

.ui-overflow-auto {
  overflow: auto !important;
}

.ui-overflow-y-auto {
  overflow-y: auto !important;
}

.ui-overflow-x-auto {
  overflow-x: auto !important;
}

.ui-overflow-visible {
  overflow: visible !important;
}

/* ==========================================================================
   VISIBILITY & CURSOR UTILITIES
   ========================================================================== */
.ui-visible {
  visibility: visible !important;
}

.ui-invisible {
  visibility: hidden !important;
}

.ui-cursor-pointer {
  cursor: pointer !important;
}

.ui-cursor-default {
  cursor: default !important;
}

.ui-cursor-text {
  cursor: text !important;
}

.ui-cursor-not-allowed {
  cursor: not-allowed !important;
}

.ui-select-none {
  -webkit-user-select: none !important;
          user-select: none !important;
}

.ui-pointer-none {
  pointer-events: none !important;
}

.ui-pointer-auto {
  pointer-events: auto !important;
}

/* ==========================================================================
   COLOR UTILITIES — Text, Background, Border
   ==========================================================================
   Text color classes (.ui-text-muted, .ui-text-brand etc.) live in
   typography.scss. These are ONLY for bg/border colors.
   ========================================================================== */
/* Background */
.ui-bg-transparent {
  background: transparent !important;
}

.ui-bg-surface-1 {
  background: var(--ui-surface-1) !important;
}

.ui-bg-surface-2 {
  background: var(--ui-surface-2) !important;
}

.ui-bg-surface-3 {
  background: var(--ui-surface-3) !important;
}

.ui-bg-surface-base {
  background: var(--ui-surface-base) !important;
}

.ui-bg-brand {
  background: var(--ui-brand) !important;
}

.ui-bg-success {
  background: var(--ui-success-bg) !important;
}

.ui-bg-warning {
  background: var(--ui-warning-bg) !important;
}

.ui-bg-danger {
  background: var(--ui-danger-bg) !important;
}

.ui-bg-info {
  background: var(--ui-info-bg) !important;
}

/* Border */
.ui-border {
  border: 1px solid var(--ui-border) !important;
}

.ui-border-light {
  border: 1px solid var(--ui-border-light) !important;
}

.ui-border-top {
  border-top: 1px solid var(--ui-border) !important;
}

.ui-border-bottom {
  border-bottom: 1px solid var(--ui-border) !important;
}

.ui-border-left {
  border-left: 1px solid var(--ui-border) !important;
}

.ui-border-right {
  border-right: 1px solid var(--ui-border) !important;
}

.ui-border-none {
  border: none !important;
}

.ui-border-brand {
  border-color: var(--ui-brand) !important;
}

.ui-border-success {
  border-color: var(--ui-success) !important;
}

.ui-border-danger {
  border-color: var(--ui-danger) !important;
}

/* ==========================================================================
   TYPOGRAPHY UTILITIES — Weight, Transform, Whitespace
   ==========================================================================
   Font-size classes (.ui-text-xs through .ui-text-3xl) and semantic
   color classes live in typography.scss. These complement them.
   ========================================================================== */
.ui-font-normal {
  font-weight: var(--ui-font-normal) !important;
}

.ui-font-medium {
  font-weight: var(--ui-font-medium) !important;
}

.ui-font-semibold {
  font-weight: var(--ui-font-semibold) !important;
}

.ui-font-bold {
  font-weight: var(--ui-font-bold) !important;
}

.ui-font-light {
  font-weight: 100 !important;
}

.ui-text-capitalize {
  text-transform: capitalize !important;
}

.ui-text-lowercase {
  text-transform: lowercase !important;
}

.ui-whitespace-nowrap {
  white-space: nowrap !important;
}

.ui-whitespace-normal {
  white-space: normal !important;
}

.ui-truncate {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.ui-break-word {
  word-break: break-word !important;
}

.ui-leading-tight {
  line-height: 1.2 !important;
}

.ui-leading-normal {
  line-height: 1.5 !important;
}

.ui-leading-relaxed {
  line-height: 1.7 !important;
}

.ui-tracking-wide {
  letter-spacing: 0.08em !important;
}

/* ==========================================================================
   BORDER RADIUS UTILITIES
   ========================================================================== */
.ui-rounded-none {
  border-radius: 0 !important;
}

.ui-rounded-sm {
  border-radius: var(--ui-radius-sm) !important;
}

.ui-rounded-md {
  border-radius: var(--ui-radius-md) !important;
}

.ui-rounded-lg {
  border-radius: var(--ui-radius-lg) !important;
}

.ui-rounded-full {
  border-radius: var(--ui-radius-full) !important;
}

/* ==========================================================================
   SHADOW UTILITIES
   ========================================================================== */
.ui-shadow-none {
  box-shadow: none !important;
}

.ui-shadow-sm {
  box-shadow: var(--ui-shadow-sm) !important;
}

.ui-shadow-md {
  box-shadow: var(--ui-shadow-md) !important;
}

.ui-shadow-lg {
  box-shadow: var(--ui-shadow-lg) !important;
}

/* ==========================================================================
   OPACITY UTILITIES
   ========================================================================== */
.ui-opacity-0 {
  opacity: 0 !important;
}

.ui-opacity-50 {
  opacity: 0.5 !important;
}

.ui-opacity-70 {
  opacity: 0.7 !important;
}

.ui-opacity-100 {
  opacity: 1 !important;
}

/* ==========================================================================
   PRINT COLUMN UTILITIES — For report/invoice print layouts
   ==========================================================================
   Scoped width classes for print templates. Use these instead of
   inline style="width: X%" in gstrreport, wms/print, and invoices.
   ========================================================================== */
.ui-print-col-4 {
  width: 4%;
}

.ui-print-col-5 {
  width: 5%;
}

.ui-print-col-6 {
  width: 6%;
}

.ui-print-col-7 {
  width: 7%;
}

.ui-print-col-8 {
  width: 8%;
}

.ui-print-col-9 {
  width: 9%;
}

.ui-print-col-10 {
  width: 10%;
}

.ui-print-col-11 {
  width: 11%;
}

.ui-print-col-12 {
  width: 12%;
}

.ui-print-col-13 {
  width: 13%;
}

.ui-print-col-14 {
  width: 14%;
}

.ui-print-col-15 {
  width: 15%;
}

.ui-print-col-16 {
  width: 16%;
}

.ui-print-col-17 {
  width: 17%;
}

.ui-print-col-18 {
  width: 18%;
}

.ui-print-col-20 {
  width: 20%;
}

.ui-print-col-21 {
  width: 21%;
}

.ui-print-col-22 {
  width: 22%;
}

.ui-print-col-23 {
  width: 23%;
}

.ui-print-col-24 {
  width: 24%;
}

.ui-print-col-25 {
  width: 25%;
}

.ui-print-col-28 {
  width: 28%;
}

.ui-print-col-30 {
  width: 30%;
}

.ui-print-col-33 {
  width: 33.33%;
}

.ui-print-col-34 {
  width: 34%;
}

.ui-print-col-35 {
  width: 35%;
}

.ui-print-col-40 {
  width: 40%;
}

.ui-print-col-43 {
  width: 43%;
}

.ui-print-col-45 {
  width: 45%;
}

.ui-print-col-48 {
  width: 48%;
}

.ui-print-col-50 {
  width: 50%;
}

.ui-print-col-55 {
  width: 55%;
}

.ui-print-col-58 {
  width: 58%;
}

.ui-print-col-60 {
  width: 60%;
}

.ui-print-col-62 {
  width: 62%;
}

.ui-print-col-65 {
  width: 65%;
}

.ui-print-col-66 {
  width: 66%;
}

.ui-print-col-68 {
  width: 68%;
}

.ui-print-col-70 {
  width: 70%;
}

.ui-print-col-72 {
  width: 72%;
}

.ui-print-col-74 {
  width: 74%;
}

.ui-print-col-75 {
  width: 75%;
}

.ui-print-col-80 {
  width: 80%;
}

.ui-print-col-82 {
  width: 82%;
}

.ui-print-col-84 {
  width: 84%;
}

.ui-print-col-85 {
  width: 85%;
}

.ui-print-col-88 {
  width: 88%;
}

.ui-print-col-90 {
  width: 90%;
}

.ui-print-col-92 {
  width: 92%;
}

.ui-print-col-93 {
  width: 93%;
}

.ui-print-col-94 {
  width: 94%;
}

.ui-print-col-100 {
  width: 100%;
}

/* Float (legacy print layouts only) */
.ui-float-left {
  float: left !important;
}

.ui-float-right {
  float: right !important;
}

.ui-float-none {
  float: none !important;
}

.ui-clearfix::after {
  content: "";
  display: table;
  clear: both;
}

/* ==========================================================================
   REPORT / PRINT CONTRACT UTILITIES
   ==========================================================================
   Scoped classes for GST reports, invoices, print templates.
   Replace inline border, width, and height styles in report layouts.
   ========================================================================== */
/* Report borders — used heavily in gstrreport, bill-edit */
.ui-report-border {
  border: 2px solid #808080;
}

.ui-report-border-bottom {
  border-bottom: 1px solid #696969;
}

.ui-report-border-right {
  border-right: 2px solid #808080;
}

.ui-report-border-top {
  border-top: 2px solid #808080;
}

/* Report fixed-width columns (vw) */
.ui-report-col-4vw {
  width: 4vw;
}

.ui-report-col-5vw {
  width: 5vw;
}

.ui-report-col-6vw {
  width: 6vw;
}

.ui-report-col-7vw {
  width: 7vw;
}

/* Report fixed-width columns (rem) */
.ui-report-col-3r {
  width: 3.5rem;
}

.ui-report-col-4r {
  width: 4.5rem;
}

/* Report fixed-width columns (px) */
.ui-report-col-20px {
  width: 20px;
}

.ui-report-col-50px {
  width: 50px;
}

.ui-report-col-60 {
  width: 60px;
}

.ui-report-col-70 {
  width: 70px;
}

.ui-report-col-80 {
  width: 80px;
}

.ui-report-col-90 {
  width: 90px;
}

.ui-report-col-95 {
  width: 95px;
}

.ui-report-col-100 {
  width: 100px;
}

.ui-report-col-120 {
  width: 120px;
}

.ui-report-col-130 {
  width: 130px;
}

.ui-report-col-140 {
  width: 140px;
}

.ui-report-col-143 {
  width: 143px;
}

.ui-report-col-150 {
  width: 150px;
}

.ui-report-col-200 {
  width: 200px;
}

.ui-report-col-250 {
  width: 250px;
}

.ui-report-col-300 {
  width: 300px;
}

/* Report heights */
.ui-report-height-62vh {
  height: 62vh;
}

.ui-report-height-40 {
  height: 40px;
}

.ui-report-height-2rem {
  height: 2rem;
}

.ui-report-max-h-16 {
  max-height: 16px;
}

/* Icon size helpers */
.ui-icon-sm {
  width: 14px;
  height: 14px;
}

/* ==========================================================================
   VERTICAL ALIGNMENT UTILITIES
   ========================================================================== */
.ui-align-super {
  vertical-align: super !important;
}

.ui-align-middle {
  vertical-align: middle !important;
}

.ui-align-top {
  vertical-align: top !important;
}

.ui-align-bottom {
  vertical-align: bottom !important;
}

/* ==========================================================================
   ADDITIONAL COLOR UTILITIES
   ========================================================================== */
/* White/dark backgrounds for report/print contexts */
.ui-bg-white {
  background: white !important;
}

.ui-text-dark {
  color: #000 !important;
}

.ui-ml-auto {
  margin-left: auto !important;
}

/*
 * CONTRACT RULE — SINGLE OWNER
 * Selectors defined here must NOT be redefined in:
 *   - ui/data/*
 *   - ui/tables/*
 *   - ui/modals/*
 * Other layers may use scoped overrides (parent > child) only.
 */
/* ==========================================================================
   UI LAYOUT - CARD SURFACES
   ==========================================================================
   Generic card/surface contract for dashboards and panels.
   ========================================================================== */
/* OWNER: ui/layout/card.scss */
.ui-card, .glass-modal-container .glass-card,
.glass-modal-container .glass-panel,
.glass-modal-container .fd-glass,
.glass-modal-container .section-card,
.glass-modal-container .content-section,
.glass-modal-container .timeline-card,
.glass-modal-container .entry-section,
.glass-modal-container .attachments,
.glass-modal-container .summary-card,
.glass-modal-container .metric-card,
.glass-modal-container .review-card,
.glass-modal-container .config-section,
.glass-modal-container .panel-card {
  background: var(--ui-glass-light);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-lg);
  padding: var(--ui-space-4);
  box-shadow: var(--ui-shadow-sm);
  backdrop-filter: var(--ui-blur-sm);
  -webkit-backdrop-filter: var(--ui-blur-sm);
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  min-width: 0;
}

.ui-card--compact {
  padding: var(--ui-space-2);
  gap: var(--ui-space-1);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
  border-color: var(--ui-border-light);
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.ui-card--compact .ui-card__value {
  font-size: var(--ui-text-lg);
}

.ui-card--flat {
  background: var(--ui-surface-1);
  box-shadow: none;
}

.ui-card--subtle, .glass-modal-container .glass-card,
.glass-modal-container .glass-panel,
.glass-modal-container .fd-glass,
.glass-modal-container .section-card,
.glass-modal-container .content-section,
.glass-modal-container .timeline-card,
.glass-modal-container .entry-section,
.glass-modal-container .attachments,
.glass-modal-container .summary-card,
.glass-modal-container .metric-card,
.glass-modal-container .review-card,
.glass-modal-container .config-section,
.glass-modal-container .panel-card {
  background: var(--ui-surface-1);
  border-color: var(--ui-border);
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.ui-card--solid {
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.08));
  border-color: rgba(255, 255, 255, 0.12);
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.ui-card--outline {
  background: transparent;
  border-color: var(--ui-border);
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

/* No shadow variant - completely flat, no glow effects, more transparent */
.ui-card--no-shadow {
  background: rgba(255, 255, 255, 0.02) !important;
  border: 1px solid rgba(255, 255, 255, 0.06) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  text-shadow: none !important;
}

.ui-card--no-shadow * {
  text-shadow: none !important;
}

.ui-card--no-shadow.ui-card--interactive:hover {
  box-shadow: none !important;
  transform: none !important;
}

.ui-card--hero {
  padding: var(--ui-space-5);
  gap: var(--ui-space-4);
  border-radius: var(--ui-radius-xl);
  background: var(--ui-glass-light);
  border-color: var(--ui-border-light);
  box-shadow: var(--ui-shadow-md);
  backdrop-filter: var(--ui-blur-sm);
  -webkit-backdrop-filter: var(--ui-blur-sm);
}

.ui-card--control {
  padding: var(--ui-space-2) var(--ui-space-3);
  gap: var(--ui-space-2);
  border-radius: var(--ui-radius-lg);
  background: var(--ui-glass-light);
  border-color: var(--ui-border-light);
  box-shadow: none;
  backdrop-filter: var(--ui-blur-sm);
  -webkit-backdrop-filter: var(--ui-blur-sm);
}

.ui-card__header, .glass-modal-container .card-header,
.glass-modal-container .section-header,
.glass-modal-container .entry-header,
.glass-modal-container .timeline-card > header,
.glass-modal-container .attachments > header,
.glass-modal-container .review-header,
.glass-modal-container .modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
}

.ui-card__header--spaced {
  margin-bottom: var(--ui-space-3);
}

.ui-card__title, .glass-modal-container .card-header h3,
.glass-modal-container .section-title,
.glass-modal-container .card-title,
.glass-modal-container .entry-header h3,
.glass-modal-container .timeline-card h3,
.glass-modal-container .review-title,
.glass-modal-container .modal-title h2 {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ui-text-secondary);
  margin: 0;
}

.ui-card__subtitle, .glass-modal-container .card-header .subtitle,
.glass-modal-container .header-subtitle,
.glass-modal-container .section-hint,
.glass-modal-container .subtitle {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  margin: 0;
}

.ui-card__value {
  font-size: var(--ui-text-2xl);
  font-weight: var(--ui-font-bold);
  letter-spacing: -0.01em;
  margin: 0;
  color: var(--ui-text-primary);
}

.ui-card__value--hero {
  font-size: calc(var(--ui-text-3xl) * 1.15);
  letter-spacing: -0.02em;
  line-height: 1.05;
}

.ui-card__meta {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  margin: 0;
}

.ui-card__body {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  min-width: 0;
}

/* ==========================================================================
   CONTENT CARD PATTERNS
   ========================================================================== */
.ui-card__badge {
  display: inline-flex;
  align-items: center;
  padding: calc(var(--ui-space-1) / 2) var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border-light);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ui-text-muted);
}

.ui-card__status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--ui-space-2) var(--ui-space-4);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border-light);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ui-text-muted);
}

.ui-card__status--success {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.ui-card__status--warning {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.ui-card__status--muted {
  background: var(--ui-surface-1);
  border-color: var(--ui-border-light);
  color: var(--ui-text-muted);
}

.ui-card__heading {
  margin: 0;
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  line-height: 1.4;
}

.ui-card__description {
  margin: 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  line-height: 1.55;
}

.ui-card__meta-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  padding-top: var(--ui-space-4);
  border-top: 1px solid var(--ui-border-light);
}

.ui-card__meta-item {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.ui-card__meta-item mat-icon {
  font-size: var(--ui-text-sm);
  width: var(--ui-text-sm);
  height: var(--ui-text-sm);
  color: var(--ui-text-subtle);
}

.ui-card__meta-text {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-secondary);
}

.ui-card__progress {
  height: var(--ui-space-1);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
  overflow: hidden;
}

.ui-card__progress-bar {
  height: 100%;
  border-radius: inherit;
  background: var(--ui-text-subtle);
  transition: width var(--ui-transition-slow);
}

.ui-card__progress-bar--success {
  background: var(--ui-success);
}

.ui-card__progress-bar--warning {
  background: var(--ui-warning);
}

.ui-card__action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-2);
  width: 100%;
  padding: var(--ui-space-2) var(--ui-space-4);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border-light);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  text-decoration: none;
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.ui-card__action:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
  transform: translateY(-1px);
}

.ui-card__action mat-icon {
  font-size: var(--ui-text-base);
  width: var(--ui-text-base);
  height: var(--ui-text-base);
}

.ui-card__action--success {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.ui-card__action--warning {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.ui-card--success {
  border-color: var(--ui-success-border);
}

.ui-card--warning {
  border-color: var(--ui-warning-border);
}

.ui-card--interactive {
  transition: var(--ui-transition-base);
  will-change: transform;
}

.ui-card--interactive:hover {
  transform: translateY(-4px);
  border-color: var(--ui-border-hover);
  box-shadow: var(--ui-shadow-md);
}

/* ==========================================================================
   TABLE SHELL CARD — Glass container for tables with blur effect
   ========================================================================== */
.ui-card--table-shell {
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.01));
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
  border-radius: 28px;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  padding: 0;
  overflow: visible;
}

.ui-card--table-shell .ui-table-card,
.ui-card--table-shell .glass-table-card {
  border-radius: 0;
  border: none;
  background: transparent;
  box-shadow: none;
}

/* ==========================================================================
   SECTION CARD — For modal content areas
   ========================================================================== */
.ui-card--section {
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-lg);
  padding: var(--ui-space-4);
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

/* Full-width card that spans all grid columns */
.ui-card--fullwidth {
  grid-column: 1/-1;
}

.ui-card__section-title, .glass-modal-container .ui-card__section-title,
.glass-modal-container .glass-section-title,
.glass-modal-container .section-title,
.glass-modal-container .card-title {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ui-text-muted);
  margin: 0 0 var(--ui-space-4) 0;
  padding-bottom: var(--ui-space-3);
  border-bottom: 1px solid var(--ui-border-light);
}

.ui-card__section-title mat-icon, .glass-modal-container .ui-card__section-title mat-icon,
.glass-modal-container .glass-section-title mat-icon,
.glass-modal-container .section-title mat-icon,
.glass-modal-container .card-title mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: var(--ui-brand-light);
}

.ui-card__section-note {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  margin: calc(var(--ui-space-3) * -1) 0 var(--ui-space-3) 0;
}

/* ==========================================================================
   CARD TOGGLE — Expandable/collapsible card section header
   ========================================================================== */
.ui-card__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 0;
  margin: 0 0 var(--ui-space-3) 0;
  border: none;
  background: transparent;
  cursor: pointer;
  color: inherit;
}

.ui-card__toggle-label {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ui-text-muted);
}

.ui-card__toggle-label mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: var(--ui-brand-light);
}

.ui-card__toggle-count {
  font-weight: var(--ui-font-normal);
  color: var(--ui-text-muted);
  opacity: 0.7;
}

.ui-card__toggle-arrow {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: var(--ui-text-muted);
  transition: transform 0.2s ease;
}

.ui-card__toggle-arrow--expanded {
  transform: rotate(180deg);
}

/* ==========================================================================
   LEGACY GLASS SUMMARY CARDS
   ========================================================================== */
/* OWNER: ui/layout/card.scss */
.glass-summary-card {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  padding: var(--ui-space-6);
  position: relative;
  background: var(--ui-glass-light);
  border-radius: var(--ui-radius-3xl);
  border: 1px solid var(--ui-border);
  box-shadow: var(--ui-shadow-xl);
  backdrop-filter: var(--ui-blur-md);
  -webkit-backdrop-filter: var(--ui-blur-md);
  transition: var(--ui-transition-base);
  min-width: 0;
  overflow: hidden;
}

.glass-summary-card:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
  box-shadow: var(--ui-shadow-lg);
  transform: translateY(-2px);
}

.glass-summary-card .step-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  flex-wrap: wrap;
}

.glass-summary-card .step-label {
  display: inline-flex;
  align-items: center;
  padding: calc(var(--ui-space-1) / 2) var(--ui-space-2);
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-2);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ui-text-muted);
}

.glass-summary-card .glass-section-label {
  font-size: var(--ui-text-xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ui-brand-light);
  margin: 0 0 var(--ui-space-3) 0;
  font-weight: var(--ui-font-semibold);
  padding-bottom: var(--ui-space-2);
  border-bottom: 1px solid var(--ui-border-light);
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.glass-summary-card .glass-section-label::before {
  content: "";
  width: var(--ui-space-1);
  height: var(--ui-space-1);
  background: var(--ui-brand-light);
  border-radius: 50%;
  box-shadow: 0 0 var(--ui-space-2) var(--ui-brand-glow);
}

/* Hero value - large currency display */
.glass-summary-card .glass-hero-value {
  font-size: 28px;
  font-weight: 700;
  color: var(--ui-success);
  letter-spacing: -0.5px;
  line-height: 1.2;
  margin: var(--ui-space-2) 0;
}

.glass-summary-card form {
  display: grid;
  gap: var(--ui-space-4);
}

.glass-summary-card .empty-state-compact {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-4) 0;
  color: var(--ui-text-muted);
}

.glass-summary-card .empty-state-compact mat-icon {
  font-size: var(--ui-text-2xl);
  width: var(--ui-text-2xl);
  height: var(--ui-text-2xl);
  color: var(--ui-text-muted);
  opacity: 0.7;
}

.glass-summary-card .empty-message {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

.glass-summary-card .empty-hint {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.glass-summary-card .affected-summary {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.glass-summary-card .count-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: var(--ui-space-6);
  height: var(--ui-space-6);
  padding: 0 var(--ui-space-2);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border-light);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
}

.glass-summary-card .summary-text {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.glass-summary-card .summary-text strong {
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-semibold);
}

.glass-summary-card .employee-chips-container {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
}

.glass-summary-card .employee-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border-light);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-secondary);
  transition: var(--ui-transition-base);
}

.glass-summary-card .employee-chip.clickable {
  cursor: pointer;
}

.glass-summary-card .employee-chip:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
}

.glass-summary-card .chip-avatar {
  width: var(--ui-space-6);
  height: var(--ui-space-6);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-3);
  border: 1px solid var(--ui-border-light);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  text-transform: uppercase;
}

.glass-summary-card .chip-status {
  font-size: var(--ui-text-sm);
  width: var(--ui-text-sm);
  height: var(--ui-text-sm);
}

.glass-summary-card .chip-status.warning {
  color: var(--ui-warning);
}

.glass-summary-card .more-employees {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.glass-summary-card .structure-status {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
}

.glass-summary-card .status-item {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  padding: calc(var(--ui-space-1) / 2) var(--ui-space-2);
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-2);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--ui-text-muted);
}

.glass-summary-card .status-item.success {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.glass-summary-card .status-item.warning {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.glass-summary-card .net-pay-preview {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  padding: var(--ui-space-3) var(--ui-space-4);
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-lg);
}

.glass-summary-card .net-label {
  font-size: var(--ui-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ui-text-muted);
}

.glass-summary-card .net-value {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
}

.glass-summary-card .salary-breakdown {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.glass-summary-card .breakdown-grid {
  display: grid;
  gap: var(--ui-space-2);
}

.glass-summary-card .breakdown-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

.glass-summary-card .breakdown-item.deduction {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.glass-summary-card .breakdown-item.net {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
  font-weight: var(--ui-font-semibold);
}

.glass-summary-card .breakdown-label {
  color: var(--ui-text-muted);
}

.glass-summary-card .breakdown-item.deduction .breakdown-label,
.glass-summary-card .breakdown-item.net .breakdown-label {
  color: inherit;
}

/* ==========================================================================
   FINANCIAL DASHBOARD PANELS
   ========================================================================== */
.fd-glass {
  background: var(--ui-glass-light);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-xl);
  box-shadow: var(--ui-shadow-lg);
  backdrop-filter: var(--ui-blur-md);
  -webkit-backdrop-filter: var(--ui-blur-md);
}

.insight-card {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  padding: var(--ui-space-5);
  min-width: 0;
}

.insight-card:hover {
  border-color: var(--ui-border-hover);
  box-shadow: var(--ui-shadow-xl);
  transform: translateY(calc(var(--ui-space-1) * -0.5));
}

.insight-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-3);
}

.insight-header .muted {
  margin: 0;
  font-size: var(--ui-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ui-text-muted);
}

.insight-header h3 {
  margin: var(--ui-space-1) 0 0 0;
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.aging-buckets {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.bucket-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
}

.bucket-label {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-secondary);
}

.bucket-meta {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.bucket-value {
  min-width: calc(var(--ui-space-12) * 3);
  text-align: right;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.bucket-bar {
  display: block;
  height: calc(var(--ui-space-1) / 2);
  margin-top: var(--ui-space-1);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
  overflow: hidden;
}

.bucket-bar span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--ui-brand);
}

.bucket-bar.info span {
  background: var(--ui-info);
}

.bucket-bar.warning span {
  background: var(--ui-warning);
}

.bucket-bar.alert span {
  background: var(--ui-danger);
}

.bucket-bar.positive span {
  background: var(--ui-success);
}

.escalations-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.escalations-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
  border-radius: var(--ui-radius-lg);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
  transition: var(--ui-transition-base);
}

.escalations-list li:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
}

.escalation-info {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  min-width: 0;
}

.escalation-meta {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-shrink: 0;
}

.owner-tag,
.severity-badge,
.automation-pill,
.channel-pill,
.days-badge,
.role-tag {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  padding: calc(var(--ui-space-1) / 2) var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border-light);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
  text-transform: capitalize;
}

.severity-badge.high,
.days-badge.critical {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
}

.severity-badge.medium,
.automation-pill.manual {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.severity-badge.low,
.automation-pill.auto {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.channel-pill.active {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.config-section {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  padding: var(--ui-space-5);
}

.config-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-4);
  flex-wrap: wrap;
}

.config-header .muted {
  margin: 0;
  font-size: var(--ui-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ui-text-muted);
}

.config-header h3 {
  margin: var(--ui-space-1) 0 0 0;
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.config-subtitle {
  margin: var(--ui-space-1) 0 0 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.rule-card {
  display: flex;
  align-items: center;
  gap: var(--ui-space-4);
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-lg);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
}

.rule-icon {
  width: var(--ui-space-10);
  height: var(--ui-space-10);
  border-radius: var(--ui-radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border);
  color: var(--ui-text-muted);
}

.rule-icon.warning {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.rule-content {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  min-width: 0;
}

.rule-label {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.rule-value {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
}

.channels-section {
  padding-top: var(--ui-space-4);
  border-top: 1px solid var(--ui-border-light);
}

.channels-label {
  display: block;
  margin-bottom: var(--ui-space-2);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ui-text-muted);
}

.channel-pills {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
}

.step-title {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
}

.channel-tag {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.channel-tag mat-icon {
  font-size: var(--ui-text-sm);
  width: var(--ui-text-sm);
  height: var(--ui-text-sm);
}

.owner-text {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.action-cell {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

/* ==========================================================================
   GLASS PANELS & SUMMARY CARDS
   ========================================================================== */
.glass-shell {
  background: var(--ui-glass-light);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-3xl);
  box-shadow: var(--ui-shadow-lg);
  padding: var(--ui-space-6);
  backdrop-filter: var(--ui-blur-md);
  -webkit-backdrop-filter: var(--ui-blur-md);
  min-width: 0;
}

.legacy-summary-card {
  background: var(--ui-glass-light);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-xl);
  box-shadow: var(--ui-shadow-md);
  padding: var(--ui-space-4);
  backdrop-filter: var(--ui-blur-md);
  -webkit-backdrop-filter: var(--ui-blur-md);
  min-width: 0;
}

.legacy-summary-card.table-card {
  padding: 0;
  overflow: hidden;
}

.summary-column {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  padding: var(--ui-space-6);
  background: var(--ui-glass-light);
  border-radius: var(--ui-radius-3xl);
  border: 1px solid var(--ui-border);
  box-shadow: var(--ui-shadow-lg);
  backdrop-filter: var(--ui-blur-md);
  -webkit-backdrop-filter: var(--ui-blur-md);
  transition: var(--ui-transition-base);
  min-width: 0;
  height: 100%;
}

.summary-column:hover {
  border-color: var(--ui-border-hover);
  box-shadow: var(--ui-shadow-xl);
  transform: translateY(-2px);
}

.summary-label {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin: 0 0 var(--ui-space-2) 0;
  font-size: var(--ui-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--ui-brand-light);
  font-weight: var(--ui-font-semibold);
  padding-bottom: var(--ui-space-2);
  border-bottom: 1px solid var(--ui-border-light);
}

.summary-label mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.summary-column h3 {
  margin: 0 0 var(--ui-space-1) 0;
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.summary-sub {
  margin: 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.summary-actions {
  display: flex;
  gap: var(--ui-space-2);
  margin-top: var(--ui-space-2);
}

.view-profile-btn {
  margin-top: var(--ui-space-3);
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: 0 var(--ui-space-4);
  height: 32px;
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-full);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.view-profile-btn:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
  color: var(--ui-text-primary);
  box-shadow: var(--ui-shadow-sm);
  transform: translateY(-1px);
}

.summary-column ul {
  list-style: none;
  margin: var(--ui-space-2) 0 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.summary-column li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--ui-space-4);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface-1);
  min-width: 0;
}

.summary-column li:hover {
  background: var(--ui-surface-hover);
  color: var(--ui-text-primary);
}

.summary-column li span {
  text-transform: uppercase;
  font-size: 10px;
  letter-spacing: 0.1em;
  color: var(--ui-text-subtle);
  font-weight: var(--ui-font-semibold);
  min-width: 110px;
  flex-shrink: 0;
  white-space: nowrap;
}

.summary-column li strong {
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-medium);
  text-align: right;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.summary-column .highlight {
  color: var(--ui-warning);
}

.footer-stats-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-4);
  padding: var(--ui-space-4) var(--ui-space-6);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-lg);
}

.footer-action {
  flex: 0 0 auto;
}

.footer-costs {
  display: flex;
  align-items: center;
  gap: var(--ui-space-6);
  flex: 1;
  border-right: 1px solid var(--ui-border-light);
  margin: 0 var(--ui-space-6);
  padding-right: var(--ui-space-6);
}

.footer-cost-item {
  display: flex;
  align-items: baseline;
  gap: var(--ui-space-2);
}

.footer-cost-item:last-child {
  border-left: 1px solid var(--ui-border-light);
  padding-left: var(--ui-space-6);
}

.footer-cost-label {
  font-size: var(--ui-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--ui-text-muted);
}

.footer-cost-value {
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-primary);
}

.footer-total {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

.footer-total span {
  font-size: var(--ui-text-xs);
  letter-spacing: 0.1em;
  color: var(--ui-text-muted);
  text-transform: uppercase;
}

.footer-total strong {
  font-size: var(--ui-text-2xl);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  line-height: 1;
}

.glass-panel .section-header,
.glass-shell .section-header,
.legacy-summary-card .section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  padding: var(--ui-space-4) var(--ui-space-5);
  border-bottom: 1px solid var(--ui-border-light);
}

.section-title {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ui-text-muted);
}

/* .add-btn → Single owner: controls/section-header.scss */
.financial-summary {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.cost-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-2);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
}

.cost-item strong {
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-semibold);
}

.cost-item.total {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
}

.summary-divider {
  height: 1px;
  width: 100%;
  background: var(--ui-border-light);
  margin: var(--ui-space-2) 0;
}

.jvo-card {
  flex: 0 0 320px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-6);
  padding: var(--ui-space-6);
  text-align: center;
}

.jvo-payment-card {
  flex: 1;
  min-width: 0;
}

.jvo-hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ui-space-1);
}

.jvo-label {
  font-size: 11px;
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--ui-brand-light);
}

.jvo-amount {
  font-size: 42px;
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  letter-spacing: -0.02em;
  position: relative;
}

.jvo-amount::after {
  content: "";
  position: absolute;
  bottom: -6px;
  left: 50%;
  transform: translateX(-50%);
  width: 60%;
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--ui-brand-light), transparent);
  border-radius: 2px;
}

.jvo-ring-wrap {
  position: relative;
  width: 160px;
  height: 160px;
}

.jvo-ring {
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}

.jvo-ring circle {
  fill: none;
  stroke-width: 8;
}

.jvo-ring-track {
  stroke: var(--ui-border);
}

.jvo-ring-fill {
  stroke-linecap: round;
}

.jvo-ring-labour {
  stroke: var(--ui-brand);
}

.jvo-ring-parts {
  stroke: var(--ui-border-light);
}

.jvo-ring-others {
  stroke: var(--ui-info);
}

.jvo-ring-inner {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-1);
}

.jvo-ring-pct {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.jvo-ring-txt {
  font-size: var(--ui-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ui-text-muted);
}

.jvo-bifurcation {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  width: 100%;
}

.jvo-bifurcation-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

.jvo-bif-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--ui-border);
}

.jvo-bifurcation-item.labour .jvo-bif-dot {
  background: var(--ui-brand);
}

.jvo-bifurcation-item.parts .jvo-bif-dot {
  background: var(--ui-border-light);
}

.jvo-bifurcation-item.others .jvo-bif-dot {
  background: var(--ui-info);
}

.jvo-bif-label {
  color: var(--ui-text-muted);
}

.jvo-bif-value {
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.jvo-perday {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.jvo-perday-label {
  font-size: var(--ui-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ui-text-muted);
}

.jvo-perday-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.jvo-perday-value {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.jvo-perday-unit {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.jvo-badge {
  display: inline-flex;
  align-items: center;
  padding: 0 var(--ui-space-3);
  height: var(--ui-space-6);
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  border: 1px solid var(--ui-border-light);
}

.jvo-badge.health-excellent {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.jvo-badge.health-healthy {
  background: var(--ui-info-bg);
  border-color: var(--ui-info-border);
  color: var(--ui-info);
}

.jvo-badge.health-average {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.jvo-badge.health-low {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
}

.payment-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  padding: var(--ui-space-2) 0;
}

.payment-label {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  color: var(--ui-text-muted);
}

.payment-value {
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.payment-divider {
  height: 1px;
  width: 100%;
  background: var(--ui-border-light);
  margin: var(--ui-space-3) 0;
}

.payment-total {
  font-size: var(--ui-text-base);
  color: var(--ui-text-primary);
}

.careager_convenience_input {
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  color: var(--ui-text-primary);
  padding: var(--ui-space-2) var(--ui-space-3);
  font-size: 13px;
  font-weight: var(--ui-font-medium);
  width: 160px;
  max-width: 100%;
  transition: var(--ui-transition-base);
  outline: none;
}

.careager_convenience_input:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
}

.careager_convenience_input:focus {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-focus);
  box-shadow: 0 0 0 3px rgba(255, 126, 64, 0.12);
}

.careager_convenience_input::placeholder {
  color: var(--ui-text-subtle);
}

.jvo-input-group {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.jvo-input-group .input-box {
  display: flex;
  align-items: center;
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  overflow: hidden;
}

.jvo-input-group .input-box .first {
  padding: var(--ui-space-2);
  background: var(--ui-surface-hover);
  color: var(--ui-text-muted);
  font-size: 13px;
  border-right: 1px solid var(--ui-border);
}

.jvo-input-group .input-box input {
  background: transparent;
  border: none;
  padding: var(--ui-space-2) var(--ui-space-3);
  color: var(--ui-text-primary);
  font-size: 13px;
  font-weight: var(--ui-font-medium);
  width: 100px;
  outline: none;
}

.jvo-save-btn {
  width: 32px;
  height: 32px;
  min-width: 32px;
  border-radius: 50%;
  border: none;
  background: var(--ui-brand-gradient);
  color: var(--ui-text-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.jvo-save-btn:hover {
  transform: scale(1.05);
  box-shadow: var(--ui-shadow-sm);
}

.payment-row select,
.legacy-summary-card select {
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  color: var(--ui-text-primary);
  padding: var(--ui-space-2) var(--ui-space-3);
  font-size: 13px;
  font-weight: var(--ui-font-medium);
  cursor: pointer;
  transition: var(--ui-transition-base);
  min-width: 180px;
}

.payment-row select:hover,
.legacy-summary-card select:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
}

.payment-row select:focus,
.legacy-summary-card select:focus {
  outline: none;
  border-color: var(--ui-border-focus);
}

.payment-row select option,
.legacy-summary-card select option {
  background: var(--ui-surface-base);
  color: var(--ui-text-primary);
}

.couponbtn {
  background: transparent;
  color: var(--ui-text-secondary);
  font-size: 13px;
  font-weight: var(--ui-font-medium);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  padding: var(--ui-space-1) 0;
  transition: var(--ui-transition-base);
}

.couponbtn:hover {
  color: var(--ui-text-primary);
}

.couponbtn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.selected-coupon {
  position: absolute;
  top: 100%;
  right: 0;
  margin-top: var(--ui-space-2);
  background: var(--ui-glass-light);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-lg);
  box-shadow: var(--ui-shadow-lg);
  z-index: var(--z-modal-dropdown);
  min-width: 320px;
  max-height: 400px;
  overflow: hidden;
}

.coupon-search {
  padding: var(--ui-space-3);
  border-bottom: 1px solid var(--ui-border-light);
}

.coupon-search input {
  width: 100%;
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  color: var(--ui-text-primary);
  padding: var(--ui-space-2) var(--ui-space-3);
  font-size: 13px;
  outline: none;
}

.coupon-search input:focus {
  border-color: var(--ui-border-focus);
}

.coupon-list-items {
  max-height: 300px;
  overflow-y: auto;
  padding: var(--ui-space-2);
}

.coupon-item-card {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
  margin-bottom: var(--ui-space-2);
  transition: var(--ui-transition-base);
}

.coupon-item-card:hover {
  background: var(--ui-surface-hover);
}

.coupon-item-left {
  flex: 1;
  min-width: 0;
}

.coupon-code {
  font-size: 14px;
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  margin-bottom: 2px;
}

.coupon-desc {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  margin-bottom: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.coupon-discount {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-success);
}

.coupon-item-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--ui-space-1);
}

.clearfix {
  position: absolute;
  right: var(--ui-space-2);
  top: 50%;
  transform: translateY(-50%);
  cursor: pointer;
  color: var(--ui-text-muted);
  display: flex;
  align-items: center;
  justify-content: center;
}

.clearfix:hover {
  color: var(--ui-text-primary);
}

.clearfix mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

/* Collapsed card state - equal padding when content is hidden */
.ui-card--collapsed {
  padding-bottom: var(--ui-space-4);
}

.ui-card--collapsed .ui-card__toggle {
  margin-bottom: 0;
}

/* ==========================================================================
   HORIZONTAL CARD — Department/Category Cards
   ========================================================================== */
.department-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  overflow-y: auto;
  max-height: calc(100vh - 220px);
  padding-bottom: var(--ui-space-4);
}

/* Infinite scroll footer */
.dept-scroll-footer {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-5) 0;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  letter-spacing: 0.03em;
}

.dept-scroll-footer--end {
  opacity: 0.5;
  font-size: var(--ui-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.department-card-horizontal {
  position: relative;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  padding: 20px 28px;
  min-height: 78px;
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
  cursor: pointer;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.department-card-horizontal::before {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: 17px;
  padding: 1px;
  background: linear-gradient(130deg, rgba(255, 122, 61, 0.45), rgba(255, 160, 100, 0.25), rgba(255, 255, 255, 0));
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask-composite: exclude;
  opacity: 0;
  transition: opacity 0.2s ease;
  pointer-events: none;
}

.department-card-horizontal:hover {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.04));
  border-color: rgba(255, 255, 255, 0.18);
  transform: translateY(-1px);
  box-shadow: 0 22px 50px rgba(0, 0, 0, 0.4);
}

.department-card-horizontal:hover::before {
  opacity: 0.6;
}

.card-row {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 24px;
}

.info-block {
  flex: 0 0 200px;
  min-width: 180px;
}

.department-title {
  font-size: 22px;
  font-weight: 500;
  margin: 0 0 4px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.department-title .lock-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  opacity: 0.7;
}

.department-division {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.6);
}

.roles-count {
  display: inline-flex;
  align-items: center;
  font-size: 10px;
  color: rgba(255, 255, 255, 0.7);
  margin-top: 6px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  padding: 3px 10px;
  border-radius: 12px;
  font-weight: 500;
}

.count-section {
  min-width: 110px;
  max-width: 160px;
  text-align: right;
  color: rgba(255, 255, 255, 0.7);
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 60px;
}

.count-row {
  display: flex;
  align-items: center;
  gap: 8px;
  justify-content: flex-end;
}

.count-value {
  font-size: 24px;
  font-weight: 700;
  margin-bottom: 2px;
  color: #fff;
  letter-spacing: -0.01em;
}

.count-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.55);
  white-space: nowrap;
}

.health-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.health-good {
  background: #22c55e;
  box-shadow: 0 0 10px rgba(34, 197, 94, 0.6);
}

.health-limited {
  background: #f59e0b;
  box-shadow: 0 0 10px rgba(245, 158, 11, 0.6);
}

.health-empty {
  background: rgba(255, 255, 255, 0.25);
}

.department-card-horizontal .divider-line {
  width: 1px;
  min-width: 1px;
  max-width: 1px;
  height: 60px;
  min-height: 60px;
  background: rgba(255, 255, 255, 0.2);
  flex-shrink: 0;
  align-self: stretch;
}

.roles-section {
  flex: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: flex-start;
  overflow: visible;
  padding-top: 2px;
}

.role-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 28px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.9);
  letter-spacing: 0.01em;
  white-space: nowrap;
  transition: all 0.2s ease;
}

.role-chip.clickable {
  cursor: pointer;
}

.role-chip.clickable:hover {
  background: rgba(220, 130, 80, 0.15);
  border-color: rgba(220, 130, 80, 0.35);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.role-chip .permissions-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: rgba(255, 255, 255, 0.4);
  transition: color 0.2s ease;
}

.role-chip.clickable:hover .permissions-icon {
  color: #dc8250;
}

.department-card-horizontal:hover .role-chip:not(.clickable) {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.2);
}

.role-chip.more {
  background: rgba(255, 255, 255, 0.04);
  border-style: dashed;
  color: rgba(255, 255, 255, 0.6);
  font-size: 12px;
  cursor: default;
}

.role-chip.unused {
  opacity: 0.6;
  border-style: dashed;
  border-color: rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.03);
}

.role-chip.unused:hover {
  opacity: 0.8;
  background: rgba(255, 255, 255, 0.06);
}

.no-roles {
  color: rgba(255, 255, 255, 0.5);
  font-style: italic;
  font-size: 14px;
}

.card-action {
  min-width: 40px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.action-arrow {
  font-size: 28px;
  width: 28px;
  height: 28px;
  color: rgba(255, 255, 255, 0.4);
  transition: color 0.2s ease, transform 0.2s ease;
}

.department-card-horizontal:hover .action-arrow {
  color: rgba(255, 255, 255, 0.8);
  transform: translateX(4px);
}

/* ==========================================================================
   EMPLOYEE ROW — List row cards (from role-management)
   ========================================================================== */
.employee-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.employee-row {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 18px 28px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.08);
  transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
  cursor: pointer;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.employee-row:hover {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.04));
  border-color: rgba(255, 130, 90, 0.2);
  transform: translateY(-1px);
  box-shadow: 0 22px 50px rgba(0, 0, 0, 0.4), inset 2px 0 0 0 rgba(255, 130, 90, 0.5);
}

.employee-row.row-muted {
  opacity: 0.7;
}

.employee-row.row-muted:hover {
  opacity: 0.9;
}

/* Cross-branch employee: subtle blue-tinted card */
.employee-row.row-cross-branch {
  background: linear-gradient(145deg, rgba(120, 160, 220, 0.08), rgba(120, 160, 220, 0.03));
  border-color: rgba(120, 160, 220, 0.12);
}

.employee-row.row-cross-branch:hover {
  background: linear-gradient(145deg, rgba(120, 160, 220, 0.12), rgba(120, 160, 220, 0.05));
  border-color: rgba(120, 160, 220, 0.25);
  box-shadow: 0 22px 50px rgba(0, 0, 0, 0.4), inset 2px 0 0 0 rgba(120, 160, 220, 0.4);
}

.employee-row.row-cross-branch .emp-code-pill {
  background: rgba(120, 160, 220, 0.12);
  border-color: rgba(120, 160, 220, 0.25);
  color: rgba(160, 195, 240, 0.85);
}

.row-identity {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 1;
  min-width: 240px;
}

.avatar-wrap {
  position: relative;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.05));
  border: 2px solid rgba(16, 185, 129, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  flex-shrink: 0;
}

.avatar-wrap.muted {
  border-color: rgba(255, 255, 255, 0.2);
}

.avatar-wrap img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.avatar-wrap img.loaded {
  opacity: 1;
}

.avatar-wrap .initials {
  font-size: 16px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.8);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.avatar-wrap .status-dot {
  position: absolute;
  bottom: -2px;
  right: -2px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #ef4444;
  border: 3px solid rgba(26, 26, 32, 0.9);
}

.avatar-wrap .status-dot.active {
  background: #10b981;
}

.identity-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.emp-name-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.emp-name {
  font-size: 15px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
}

.emp-code-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 6px;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.6);
  font-weight: 500;
}

.emp-code-pill mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

.pill-branch {
  color: rgba(255, 255, 255, 0.45);
  font-weight: 400;
}

.emp-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.5);
}

.emp-role {
  font-weight: 500;
  color: rgba(255, 255, 255, 0.7);
}

.emp-dept {
  color: rgba(255, 255, 255, 0.5);
}

.meta-sep {
  color: rgba(255, 255, 255, 0.3);
}

/* Home Branch Row */
.emp-branch-row {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.4);
  cursor: default;
  margin-top: 1px;
}

.emp-branch-row .branch-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
  opacity: 0.6;
}

.emp-branch-name {
  font-weight: 500;
  letter-spacing: 0.01em;
}

.row-salary {
  flex: 0 0 150px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  padding-right: 8px;
}

.salary-line {
  display: flex;
  align-items: baseline;
  gap: 2px;
}

.salary-value {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
}

.salary-amount {
  font-size: 15px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.9);
}

.salary-period {
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.4);
  margin-left: 2px;
}

/* Cost Classification Pill — Direct / Indirect Labour */
.cost-badge {
  display: inline-flex;
  align-items: center;
  padding: 1px 6px;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  border: 1px solid;
  white-space: nowrap;
  cursor: default;
}

.cost-badge--direct {
  background: rgba(16, 185, 129, 0.08);
  border-color: rgba(16, 185, 129, 0.22);
  color: #34d399;
}

.cost-badge--indirect {
  background: rgba(245, 158, 11, 0.08);
  border-color: rgba(245, 158, 11, 0.22);
  color: #fbbf24;
}

.row-alerts {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
}

/* Probation Badge */
.probation-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  background: rgba(245, 158, 11, 0.12);
  border: 1px solid rgba(245, 158, 11, 0.3);
  border-radius: 12px;
  font-size: 11px;
  font-weight: 600;
  color: #fbbf24;
}

.probation-badge mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

/* Readiness Badge - Complete/Incomplete/Attention */
.readiness-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 10px;
  height: 26px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  border: 1px solid;
}

.readiness-badge.ready {
  background: rgba(34, 197, 94, 0.12);
  border-color: rgba(34, 197, 94, 0.3);
  color: #22c55e;
}

.readiness-badge.attention {
  background: rgba(251, 191, 36, 0.12);
  border-color: rgba(251, 191, 36, 0.3);
  color: #fbbf24;
}

.readiness-badge.incomplete {
  background: rgba(239, 68, 68, 0.12);
  border-color: rgba(239, 68, 68, 0.3);
  color: #f87171;
}

.readiness-badge mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.row-actions {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 0 0 auto;
  padding-left: 8px;
}

/* Status Button - Available/Away toggle */
.status-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 10px;
  height: 26px;
  border-radius: 999px;
  border: 1px solid;
  background: transparent;
  font-size: 10px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
  letter-spacing: 0.05em;
}

.status-btn .dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
}

.status-btn:not(.available) {
  border-color: rgba(239, 68, 68, 0.25);
  color: #ef4444;
}

.status-btn:not(.available) .dot {
  background: #ef4444;
}

.status-btn:not(.available):hover {
  background: rgba(239, 68, 68, 0.08);
  border-color: rgba(239, 68, 68, 0.4);
}

.status-btn.available {
  border-color: rgba(16, 185, 129, 0.25);
  color: #10b981;
}

.status-btn.available .dot {
  background: #10b981;
}

.status-btn.available:hover {
  background: rgba(16, 185, 129, 0.08);
  border-color: rgba(16, 185, 129, 0.4);
}

.status-btn .dropdown-arrow {
  font-size: 14px;
  width: 14px;
  height: 14px;
  margin-left: 2px;
}

/* Action Icons - Edit, Transfer, etc. */
.action-icons {
  display: flex;
  gap: 6px;
}

.action-icons .icon-btn {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.7);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
  padding: 0;
  opacity: 1;
  /* Override table-grouped.scss opacity: 0 */
}

.action-icons .icon-btn:hover {
  background: rgba(255, 130, 90, 0.12);
  border-color: rgba(255, 130, 90, 0.3);
  color: rgba(255, 180, 140, 0.95);
}

.action-icons .icon-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.view-only {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.4);
  font-style: italic;
}

/* ==========================================================================
   EMPTY STATE CARD — Centered placeholder for employee lists
   ========================================================================== */
.empty-state-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 64px 24px;
  text-align: center;
  color: rgba(255, 255, 255, 0.6);
}

.empty-state-card .empty-visual {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
}

.empty-state-card .empty-visual mat-icon {
  font-size: 32px;
  width: 32px;
  height: 32px;
  color: rgba(255, 255, 255, 0.3);
}

.empty-state-card h3 {
  margin: 0 0 8px;
  font-size: 18px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
}

.empty-state-card p {
  margin: 0 0 20px;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.5);
}

.empty-state-card .pill-btn-add {
  margin-top: 4px;
}

/* ==========================================================================
   BACKWARDS COMPATIBILITY ALIASES
   ==========================================================================
   These aliases allow legacy class names to work with modern contract styles.
   DO NOT add new usages of these classes - use .ui-card instead.
   ========================================================================== */
/* Legacy .glass-card → .ui-card */
/* OWNER: ui/layout/card.scss */
.glass-card {
  background: var(--ui-glass-light);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-lg);
  padding: var(--ui-space-4);
  box-shadow: var(--ui-shadow-sm);
  backdrop-filter: var(--ui-blur-sm);
  -webkit-backdrop-filter: var(--ui-blur-sm);
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  min-width: 0;
}

.glass-card.table-card {
  padding: 0;
  overflow: hidden;
}

/* Legacy card heading pattern */
.card-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--ui-space-4) var(--ui-space-5);
  border-bottom: 1px solid var(--ui-border-light);
  gap: var(--ui-space-3);
}

.card-heading .eyebrow {
  font-size: var(--ui-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ui-text-muted);
  margin-bottom: var(--ui-space-1);
}

.card-heading .card-title {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  margin: 0;
}

.card-heading .muted {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  margin-top: var(--ui-space-1);
}

.card-heading .card-actions {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

/* Legacy count-pill */
.count-pill {
  display: inline-flex;
  align-items: center;
  padding: var(--ui-space-1) var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
}

.count-pill.subtle {
  background: rgba(255, 255, 255, 0.04);
  color: var(--ui-text-muted);
}

/* Legacy link button */
.link-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  padding: var(--ui-space-1) var(--ui-space-2);
  background: transparent;
  border: none;
  color: var(--ui-accent);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  cursor: pointer;
  transition: color var(--ui-transition-base);
}

.link-btn:hover {
  color: var(--ui-accent-hover);
}

/*
 * CONTRACT RULE — SINGLE OWNER
 * Selectors defined here must NOT be redefined in:
 *   - ui/data/*
 *   - ui/tables/*
 *   - ui/modals/*
 * Other layers may use scoped overrides (parent > child) only.
 */
/* ==========================================================================
   UI LAYOUT — GLASS PANEL
   ==========================================================================
   A translucent glass-effect card container used for sections within
   modals, forms, and other surfaces.

   Usage:
     <div class="glass-panel">...</div>
     <div class="glass-panel table-card">...</div>
   ========================================================================== */
/* OWNER: ui/layout/glass-panel.scss */
.glass-panel {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 16px;
  padding: var(--ui-space-5, 20px);
  overflow: hidden;
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04), 0 4px 20px rgba(0, 0, 0, 0.18);
}

.glass-panel.table-card {
  margin-bottom: 20px;
  padding: 0; /* Remove inherited padding so section-header reaches edges */
  min-height: 0; /* Allow flex child to shrink below content size */
  display: flex; /* Establish flex context for child .table-wrap */
  flex-direction: column; /* Stack section-header and table-wrap vertically */
  overflow: visible; /* Allow child .table-wrap to handle scrolling */
}

.glass-panel.table-card:last-child {
  margin-bottom: 0;
}

/* Chart card — hidden overflow to contain chart SVG within the panel */
.glass-panel.chart-card {
  overflow: hidden;
}

/* ==========================================================================
   UI LAYOUT - GRID CONTRACT
   ==========================================================================
   Shared grid patterns for summary cards and split layouts.
   ========================================================================== */
/* Summary card grids */
.glass-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ui-space-5);
}

@media (max-width: 1200px) {
  .glass-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 768px) {
  .glass-summary-grid {
    grid-template-columns: 1fr;
  }
}
.glass-summary-grid.cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 768px) {
  .glass-summary-grid.cols-2 {
    grid-template-columns: 1fr;
  }
}
/* Step-based two-column flows */
.step-flow-container {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: var(--ui-space-6);
  align-items: start;
}

.step-column-left,
.step-column-right {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
  min-width: 0;
}

@media (max-width: 1100px) {
  .step-flow-container {
    grid-template-columns: 1fr;
  }
}
/* Card grids */
.ui-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--ui-space-6);
}

@media (max-width: 768px) {
  .ui-card-grid {
    grid-template-columns: 1fr;
  }
}
/* Manager insights grid (wide + side panel) */
.manager-insights-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: var(--ui-space-4);
}

@media (max-width: 960px) {
  .manager-insights-grid {
    grid-template-columns: 1fr;
  }
}
/* Summary card grid (3-up) */
.summary-card {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ui-space-5);
  align-items: stretch;
}

@media (max-width: 1200px) {
  .summary-card {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 768px) {
  .summary-card {
    grid-template-columns: 1fr;
  }
}
/* Job value overview split layout */
.jvo-split-row {
  display: flex;
  align-items: stretch;
  gap: var(--ui-space-5);
  flex-wrap: wrap;
}

@media (max-width: 1100px) {
  .jvo-split-row {
    flex-direction: column;
  }
}
/* Modal meta split layout */
.meta-split-layout {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: var(--ui-space-5);
}

@media (max-width: 960px) {
  .meta-split-layout {
    grid-template-columns: 1fr;
  }
}
.details-grid {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.tech-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-4);
}

@media (max-width: 720px) {
  .tech-grid {
    grid-template-columns: 1fr;
  }
}
/* Rules grid (four columns) */
.rules-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--ui-space-4);
}

@media (max-width: 1100px) {
  .rules-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 720px) {
  .rules-grid {
    grid-template-columns: 1fr;
  }
}
/* Cadence timeline (stepper layout) */
.cadence-timeline {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.timeline-step {
  display: grid;
  grid-template-columns: minmax(0, calc(var(--ui-space-12) * 1.4)) minmax(0, 1fr);
  gap: var(--ui-space-4);
  position: relative;
  padding: var(--ui-space-3) 0;
}

.step-day {
  display: flex;
  align-items: flex-start;
}

.day-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: calc(var(--ui-space-1) / 2) var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border-light);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ui-text-secondary);
}

.step-connector {
  position: absolute;
  left: var(--ui-space-6);
  top: calc(var(--ui-space-6));
  width: calc(var(--ui-space-1) / 2);
  height: calc(100% - var(--ui-space-6));
  background: var(--ui-border-light);
  transform: translateX(-50%);
}

.step-content {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  min-width: 0;
}

.step-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
}

.step-meta {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

/* Escalation matrix */
.escalation-matrix {
  display: grid;
  gap: 0;
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-lg);
  overflow: hidden;
}

.matrix-row {
  display: grid;
  grid-template-columns: minmax(0, calc(var(--ui-space-12) * 2.5)) minmax(0, 1fr) minmax(0, calc(var(--ui-space-12) * 3.75));
  gap: var(--ui-space-3);
  align-items: center;
  padding: var(--ui-space-3) var(--ui-space-4);
  border-bottom: 1px solid var(--ui-border-light);
  background: var(--ui-surface-1);
}

.matrix-row:last-child {
  border-bottom: none;
}

.matrix-header {
  background: var(--ui-surface-2);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
}

/* ==========================================================================
   PAGE CONTRACT: LANES (WMS Job List)
   ==========================================================================
   Multi-column lane layout matching original wms-job.component.css
   ========================================================================== */
/* ============================================================================
   JOB LIST — Kanban Docking Layout
   ============================================================================
   Scroll root: .console-content (already overflow-y: auto)
   Overflow chain to sticky target — ALL must be overflow: visible:
     .console-content        ← scroll root
       .ui-page              ← visible (default)
       .ui-page__content     ← visible
         .content            ← visible
           .stats-header     ← scrolls away naturally (no sticky)
           .job-columns-shell ← position: sticky; top: 0 — DOCKS THE ENTIRE BOARD
             .job-board      ← overflow-x: auto (INSIDE sticky, doesn't break it)
               .child-card   ← overflow-y: auto (per-column scroll)

   Sticky range = stats-header height (~116px). As console-content scrolls,
   the stats-header exits, and job-columns-shell sticks at top:0.
   ============================================================================ */
/* ── Outer surface: NO overflow (required for sticky chain) ── */
.job-list-surface {
  position: relative;
  width: 100%;
  min-height: 100%;
  overflow: visible;
  padding-top: 0;
}

/* Zero out ui-page padding for kanban — stats-header sits flush */
.ui-page:has(.job-list-surface) {
  padding-top: 0;
  padding-bottom: 0;
}

/* ── Hide page-level scrollbar on kanban (columns have their own) ── */
.console-content:has(.job-list-surface) {
  scrollbar-width: none;
}

.console-content:has(.job-list-surface)::-webkit-scrollbar {
  display: none;
}

/* ── Content wrapper: NO overflow, tall enough for sticky range ── */
.job-list-surface > .content {
  overflow: visible;
  min-height: 200vh;
}

/* ── Stats-header: scrolls away naturally ── */
.job-list-surface .stats-header {
  flex-shrink: 0;
  width: 100%;
  box-sizing: border-box;
}

.job-list-surface .stats-header__cards {
  max-width: 100%;
  overflow-x: auto;
}

/* ── JOB-COLUMNS-SHELL: DOCKS the entire board ── */
.job-list-surface .job-columns-shell {
  position: sticky;
  top: 20px;
  z-index: var(--z-sticky, 10);
  height: calc(100vh - 83px);
  padding: 0;
  overflow: hidden;
}

/* Hide spacer */
.job-list-surface .job-columns-shell .mb-3 {
  display: none;
}

/* ── Height chain: shell → board → stage-group → column → child-card ── */
.job-list-surface .job-board {
  height: 100%;
}

.job-list-surface .stage-group {
  height: 100%;
}

.job-list-surface .job-column {
  height: 100%;
  overflow: hidden;
}

/* ── child-card: hidden pre-dock (page scrolls first), auto post-dock ── */
.job-list-surface .child-card {
  flex: 1;
  min-height: 0;
  overflow-y: hidden;
  overflow-x: hidden;
}

/* When docked: JS adds .is-docked to shell → child-card becomes scrollable */
.job-list-surface .job-columns-shell.is-docked .child-card {
  overflow-y: auto;
}

/* Compact filter bar - reduce vertical space for Kanban density */
.job-list-surface .stats-header__filters {
  padding: 8px 14px;
  gap: 10px;
  justify-content: flex-start;
}

.job-list-surface .pill-tab-btn {
  padding: 5px 14px;
  font-size: 12px;
}

.job-list-surface .stats-header__search {
  height: 32px;
  min-width: 260px;
  max-width: 360px;
  font-size: 12px;
}

.job-list-surface .stats-header__search-input {
  font-size: 12px;
}

.job-list-surface .pill-btn-add,
.job-list-surface .pill-btn-secondary {
  padding: 5px 14px;
  font-size: 12px;
}
.job-list-surface .pill-btn-add mat-icon,
.job-list-surface .pill-btn-secondary mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.job-list-surface .zoom-toggle-btn {
  width: 30px;
  height: 30px;
  min-width: 30px;
}

/* Zoom toggle button */
.zoom-toggle-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  min-width: 36px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.15);
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.65);
  cursor: pointer;
  transition: all 0.2s ease;
  padding: 0;
  outline: none;
  margin-left: 4px;
}
.zoom-toggle-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}
.zoom-toggle-btn:hover {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.3);
  color: rgba(255, 255, 255, 0.95);
}

/* Job board container — horizontal kanban scroll track */
.job-board {
  display: flex;
  gap: 12px;
  /* overflow-x: auto is safe here — job-board is INSIDE the sticky element.
     Only overflow on ANCESTORS between scroll-root and sticky breaks it.
     overflow on DESCENDANTS is fine. */
  overflow-x: auto;
  overflow-y: hidden;
  padding-bottom: 12px;
  padding-left: 16px;
  padding-right: 16px;
  align-items: stretch;
  scroll-snap-type: x proximity;
  touch-action: pan-x pan-y;
  overscroll-behavior-x: contain;
  box-sizing: border-box;
}

.job-board::-webkit-scrollbar {
  height: 6px;
}

.job-board::-webkit-scrollbar-track {
  background: #141414;
}

.job-board::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 999px;
  border: none;
}

.job-board:hover::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.15);
}

.stage-group {
  display: flex;
  gap: 12px;
  align-items: stretch;
  flex: 0 0 auto;
  scroll-snap-align: start;
  min-height: 0;
}

.job-column-separator {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  min-width: 32px;
  color: rgba(255, 255, 255, 0.45);
}

.job-column {
  display: flex;
  flex-direction: column;
  flex: 0 0 360px;
  width: 360px;
  max-width: 360px;
  min-width: 360px;
  scroll-snap-align: start;
}

.job-column .card {
  background: rgba(255, 255, 255, 0.03) !important;
  border: 1px solid rgba(255, 255, 255, 0.06);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(12px);
  padding: 8px;
  display: flex;
  flex-direction: column;
  height: 100%;
  border-radius: 32px;
  min-height: 100%;
}

.card-box {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 0;
  border-radius: 32px;
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
}

/* Child card container */
.child-card {
  background: transparent;
  border: none;
  box-shadow: none;
  flex: 1 1 auto;
  display: flex;
  height: 100%;
  max-height: none;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-y: auto;
  overscroll-behavior-x: auto;
  touch-action: manipulation;
  scrollbar-gutter: stable both-edges;
}

/* Header box */
.header-box {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 44px;
  height: auto;
  padding: 10px 16px;
  border-radius: 32px;
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.32);
  backdrop-filter: blur(16px);
  transition: transform 0.2s ease, background 0.2s ease, border 0.2s ease;
  flex-wrap: nowrap;
  overflow: hidden;
}

.header-box:hover {
  transform: translateY(-2px);
  border-color: rgba(255, 255, 255, 0.2);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.04));
}

/* Header actions - right side with refresh + count */
.header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  flex-shrink: 0;
}

.header-title {
  margin-top: 0;
}

/* Header text */
.header-text {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  flex: 1 1 auto;
  min-width: 0;
  font-weight: 600;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.88);
  white-space: nowrap;
  flex-wrap: nowrap;
  line-height: 1.1;
  overflow: visible;
  text-align: left;
}

/* Header icons with theme colors */
.header-icon {
  font-size: 20px !important;
  width: 20px !important;
  height: 20px !important;
  margin-right: 4px;
  opacity: 0.9;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.header-box:hover .header-icon {
  transform: scale(1.1);
  opacity: 1;
}

/* Header action icons (add button, info icon, etc) */
.header-text mat-icon:not(.header-icon):not(.header-add-btn) {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
  color: rgba(255, 255, 255, 0.35);
  opacity: 0.7;
  transition: all 0.2s ease;
  cursor: pointer;
  margin-left: 4px;
}

.header-text mat-icon:not(.header-icon):not(.header-add-btn):hover {
  color: rgba(255, 140, 100, 0.8);
  opacity: 1;
  transform: scale(1.1);
}

/* Header Add Button - Elegant round style */
.header-add-btn {
  font-size: 16px !important;
  width: 24px !important;
  height: 24px !important;
  min-width: 24px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  background: rgba(255, 140, 100, 0.2);
  border: 1px solid rgba(255, 140, 100, 0.4);
  border-radius: 50%;
  color: rgba(255, 200, 170, 0.9);
  box-shadow: 0 0 10px rgba(255, 140, 100, 0.2);
  transition: all 0.2s ease;
  cursor: pointer;
  margin-left: 8px;
}

.header-add-btn:hover {
  background: rgba(255, 140, 100, 0.35);
  border-color: rgba(255, 140, 100, 0.6);
  color: #fff;
  box-shadow: 0 0 16px rgba(255, 140, 100, 0.4);
  transform: scale(1.1);
}

.request-box .header-icon {
  color: #FF9966;
  filter: drop-shadow(0 0 8px rgba(255, 153, 102, 0.4));
}

.estimate-box .header-icon {
  color: #49D39E;
  filter: drop-shadow(0 0 8px rgba(73, 211, 158, 0.4));
}

.booking-box .header-icon {
  color: #8CAED2;
  filter: drop-shadow(0 0 8px rgba(140, 174, 210, 0.4));
}

.job-box .header-icon {
  color: #A8C8D4;
  filter: drop-shadow(0 0 8px rgba(168, 200, 212, 0.4));
}

/* Refresh icon */
.refresh_icon {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
  color: rgba(255, 255, 255, 0.45);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  cursor: pointer;
}

.refresh_icon:hover {
  color: rgba(255, 255, 255, 0.9);
  transform: rotate(180deg);
}

/* Column count badge */
.column-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 26px;
  padding: 0 8px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  background: rgba(255, 120, 80, 0.25);
  border: 1px solid rgba(255, 120, 80, 0.45);
  color: rgba(255, 230, 210, 0.95);
  box-shadow: 0 0 14px rgba(255, 120, 80, 0.32);
}

.estimate-box .column-count {
  background: rgba(73, 211, 158, 0.18);
  border-color: rgba(73, 211, 158, 0.38);
  color: rgba(220, 255, 245, 0.96);
  box-shadow: 0 0 14px rgba(73, 211, 158, 0.3);
}

.booking-box .column-count {
  background: rgba(140, 174, 210, 0.18);
  border-color: rgba(140, 174, 210, 0.38);
  color: rgba(222, 235, 255, 0.94);
  box-shadow: 0 0 14px rgba(140, 174, 210, 0.28);
}

.job-box .column-count {
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(255, 255, 255, 0.28);
  color: rgba(255, 255, 255, 0.9);
  box-shadow: 0 0 12px rgba(255, 255, 255, 0.22);
}

/* Header box color variants - Red theme (Estimates/Approvals/Scheduled) */
.request-box,
.estimate-box,
.booking-box {
  background: linear-gradient(155deg, rgba(200, 50, 50, 0.2), rgba(255, 255, 255, 0.02));
  border-color: rgba(200, 50, 50, 0.28);
}

.request-box:hover,
.estimate-box:hover,
.booking-box:hover {
  background: linear-gradient(155deg, rgba(200, 50, 50, 0.28), rgba(255, 255, 255, 0.04));
  border-color: rgba(200, 50, 50, 0.38);
}

.request-box .column-count,
.estimate-box .column-count,
.booking-box .column-count {
  background: rgba(200, 50, 50, 0.28);
  border: 1px solid rgba(200, 50, 50, 0.5);
  color: rgba(255, 200, 200, 0.95);
  box-shadow: 0 0 14px rgba(200, 50, 50, 0.35);
}

.request-box .header-icon,
.estimate-box .header-icon,
.booking-box .header-icon {
  color: #E85050;
  filter: drop-shadow(0 0 8px rgba(200, 50, 50, 0.5));
}

/* ── Voice Leads — Teal theme (telephony intake column) ── */
.voice-leads-box {
  background: linear-gradient(155deg, rgba(0, 150, 136, 0.22), rgba(255, 255, 255, 0.02));
  border-color: rgba(0, 150, 136, 0.32);
}

.voice-leads-box:hover {
  background: linear-gradient(155deg, rgba(0, 150, 136, 0.3), rgba(255, 255, 255, 0.04));
  border-color: rgba(0, 150, 136, 0.42);
}

.voice-leads-box .header-icon {
  color: #26A69A;
  filter: drop-shadow(0 0 8px rgba(0, 150, 136, 0.5));
}

.voice-leads-box .column-count {
  background: rgba(0, 150, 136, 0.22);
  border: 1px solid rgba(0, 150, 136, 0.45);
  color: rgba(200, 255, 245, 0.95);
  box-shadow: 0 0 14px rgba(0, 150, 136, 0.3);
}

/* Voice lead card — teal left-border accent */
.voice-lead-card {
  border-left: 3px solid rgba(0, 150, 136, 0.6) !important;
}

.voice-lead-card:hover {
  border-left-color: #26A69A !important;
}

.voice-lead-icon {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
  color: #26A69A;
  margin-right: 6px;
  vertical-align: middle;
}

.lead-id-badge {
  display: inline-flex;
  align-items: center;
  padding: 1px 6px;
  border-radius: 4px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: rgba(0, 150, 136, 0.12);
  border: 1px solid rgba(0, 150, 136, 0.3);
  color: #26A69A;
  white-space: nowrap;
  vertical-align: middle;
  margin-left: 6px;
}

.source-badge--voice {
  background: rgba(0, 150, 136, 0.15);
  border-color: rgba(0, 150, 136, 0.35);
  color: #4DB6AC;
}

/* Voice leads empty state */
.voice-leads-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 48px 24px;
  text-align: center;
  opacity: 0.7;
}

.voice-leads-empty__icon {
  font-size: 40px !important;
  width: 40px !important;
  height: 40px !important;
  color: rgba(0, 150, 136, 0.35);
  margin-bottom: 12px;
}

.voice-leads-empty__text {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.5);
  margin: 0 0 4px;
}

.voice-leads-empty__sub {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.3);
  margin: 0;
  max-width: 200px;
  line-height: 1.4;
}

.job-box,
.process-box,
.quality-box {
  background: linear-gradient(155deg, rgba(255, 120, 80, 0.18), rgba(255, 255, 255, 0.02));
  border-color: rgba(255, 120, 80, 0.22);
}

.job-box:hover,
.process-box:hover,
.quality-box:hover {
  background: linear-gradient(155deg, rgba(255, 120, 80, 0.24), rgba(255, 255, 255, 0.04));
  border-color: rgba(255, 120, 80, 0.32);
}

.job-box .column-count,
.process-box .column-count,
.quality-box .column-count {
  background: rgba(255, 120, 80, 0.25);
  border: 1px solid rgba(255, 120, 80, 0.45);
  color: rgba(255, 230, 210, 0.95);
  box-shadow: 0 0 14px rgba(255, 120, 80, 0.32);
}

.job-box .header-icon,
.process-box .header-icon,
.quality-box .header-icon {
  color: #FF9966;
  filter: drop-shadow(0 0 8px rgba(255, 153, 102, 0.4));
}

/* Store Approval, Ready, Invoice - Green theme (Ready State columns) */
.store-box,
.ready-box,
.invoice-box {
  background: linear-gradient(155deg, rgba(73, 211, 158, 0.18), rgba(255, 255, 255, 0.02));
  border-color: rgba(73, 211, 158, 0.22);
}

.store-box:hover,
.ready-box:hover,
.invoice-box:hover {
  background: linear-gradient(155deg, rgba(73, 211, 158, 0.24), rgba(255, 255, 255, 0.04));
  border-color: rgba(73, 211, 158, 0.32);
}

.store-box .column-count,
.ready-box .column-count,
.invoice-box .column-count {
  background: rgba(73, 211, 158, 0.18);
  border-color: rgba(73, 211, 158, 0.38);
  color: rgba(220, 255, 245, 0.96);
  box-shadow: 0 0 14px rgba(73, 211, 158, 0.3);
}

.store-box .header-icon,
.ready-box .header-icon,
.invoice-box .header-icon {
  color: #49D39E;
  filter: drop-shadow(0 0 8px rgba(73, 211, 158, 0.4));
}

/* Open Orders - Orange/Warning theme (Purchase & Sales) */
.open-box {
  background: linear-gradient(155deg, rgba(255, 120, 80, 0.18), rgba(255, 255, 255, 0.02));
  border-color: rgba(255, 120, 80, 0.22);
}

.open-box:hover {
  background: linear-gradient(155deg, rgba(255, 120, 80, 0.24), rgba(255, 255, 255, 0.04));
  border-color: rgba(255, 120, 80, 0.32);
}

.open-box .column-count {
  background: rgba(255, 120, 80, 0.25);
  border: 1px solid rgba(255, 120, 80, 0.45);
  color: rgba(255, 230, 210, 0.95);
  box-shadow: 0 0 14px rgba(255, 120, 80, 0.32);
}

.open-box .header-icon {
  color: #FF9966;
  filter: drop-shadow(0 0 8px rgba(255, 153, 102, 0.4));
}

/* Shipped - Blue theme (Sales Orders) */
.shipped-box {
  background: linear-gradient(155deg, rgba(140, 174, 210, 0.18), rgba(255, 255, 255, 0.02));
  border-color: rgba(140, 174, 210, 0.22);
}

.shipped-box:hover {
  background: linear-gradient(155deg, rgba(140, 174, 210, 0.24), rgba(255, 255, 255, 0.04));
  border-color: rgba(140, 174, 210, 0.32);
}

.shipped-box .column-count {
  background: rgba(140, 174, 210, 0.18);
  border-color: rgba(140, 174, 210, 0.38);
  color: rgba(222, 235, 255, 0.94);
  box-shadow: 0 0 14px rgba(140, 174, 210, 0.28);
}

.shipped-box .header-icon {
  color: #8CAED2;
  filter: drop-shadow(0 0 8px rgba(140, 174, 210, 0.4));
}

/* Delivered / Received - Green theme (order completion states) */
.delivered-box,
.received-box {
  background: linear-gradient(155deg, rgba(73, 211, 158, 0.18), rgba(255, 255, 255, 0.02));
  border-color: rgba(73, 211, 158, 0.22);
}

.delivered-box:hover,
.received-box:hover {
  background: linear-gradient(155deg, rgba(73, 211, 158, 0.24), rgba(255, 255, 255, 0.04));
  border-color: rgba(73, 211, 158, 0.32);
}

.delivered-box .column-count,
.received-box .column-count {
  background: rgba(73, 211, 158, 0.18);
  border-color: rgba(73, 211, 158, 0.38);
  color: rgba(220, 255, 245, 0.96);
  box-shadow: 0 0 14px rgba(73, 211, 158, 0.3);
}

.delivered-box .header-icon,
.received-box .header-icon {
  color: #49D39E;
  filter: drop-shadow(0 0 8px rgba(73, 211, 158, 0.4));
}

/* Cancelled - Muted/Grey theme */
.cancel-box {
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02));
  border-color: rgba(255, 255, 255, 0.12);
}

.cancel-box:hover {
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.04));
  border-color: rgba(255, 255, 255, 0.18);
}

.cancel-box .column-count {
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(255, 255, 255, 0.28);
  color: rgba(255, 255, 255, 0.9);
  box-shadow: 0 0 12px rgba(255, 255, 255, 0.22);
}

.cancel-box .header-icon {
  color: rgba(255, 255, 255, 0.6);
  filter: drop-shadow(0 0 8px rgba(255, 255, 255, 0.2));
}

/*  Card content styles */
/* ============================================
   PURCHASE / ORDER CARD - Lane Card Variant
   ============================================ */
.purchase-card {
  background: rgba(255, 255, 255, 0.05) !important;
  border-radius: 12px !important;
  padding: 0 !important;
  margin-bottom: 4px !important;
  border: 1px solid rgba(255, 255, 255, 0.06) !important;
  box-shadow: 0 18px 35px rgba(0, 0, 0, 0.35);
  transition: all 0.2s ease !important;
  overflow: visible !important;
  display: block !important;
  position: relative;
  z-index: 0;
  height: auto !important;
  min-height: 160px;
  max-height: none !important;
  min-width: 0;
}

.purchase-card::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 12px;
  background: radial-gradient(circle at top left, rgba(255, 255, 255, 0.08), transparent 55%);
  opacity: 0.6;
  z-index: 0;
  pointer-events: none;
}

.purchase-card > * {
  position: relative;
  z-index: 1;
}

.purchase-card:hover {
  transform: translateY(-2px);
  background: rgba(255, 255, 255, 0.08) !important;
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.35);
  border-color: rgba(255, 255, 255, 0.1) !important;
}

.purchase-card > a {
  display: block !important;
  padding: 14px 16px !important;
  color: inherit !important;
  text-decoration: none !important;
}

.purchase-card__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.purchase-card__title {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
  margin: 0 0 4px;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.purchase-card__meta {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
  margin-bottom: 4px;
}

.purchase-card__status {
  flex-shrink: 0;
}

.purchase-card__body {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 12px;
}

.purchase-card__amount {
  font-size: 14px;
  font-weight: 700;
  color: #FF784F;
  text-shadow: 0 0 8px rgba(255, 120, 80, 0.28);
}

.purchase-card__amount.is-muted {
  color: rgba(255, 255, 255, 0.4);
  font-weight: 500;
  text-shadow: none;
}

.purchase-card__footer {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
  margin-top: 6px;
}

/* Source tag - Autroid / Manual badge on purchase cards */
.source-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border-radius: 99px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.02em;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.6);
  white-space: nowrap;
  margin-top: 4px;
}

.source-tag__icon {
  font-size: 12px !important;
  width: 12px !important;
  height: 12px !important;
}

.source-tag--autroid {
  background: rgba(255, 120, 80, 0.12);
  border-color: rgba(255, 120, 80, 0.3);
  color: rgba(255, 200, 170, 0.9);
}

/* Source badge - inline variant for sales */
.source-badge {
  display: inline-flex;
  align-items: center;
  padding: 1px 6px;
  border-radius: 4px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.6);
  white-space: nowrap;
  vertical-align: middle;
}

.source-badge--autroid {
  background: rgba(255, 120, 80, 0.15);
  border-color: rgba(255, 120, 80, 0.35);
  color: #ffb083;
}

.source-badge--manual {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.55);
}

/* Soft badge (PO, GRN, Log, Invoiced badges) */
.badge-soft {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 99px;
  font-size: 10px;
  font-weight: 600;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.6);
  white-space: nowrap;
}

.badge-soft.success {
  background: rgba(73, 211, 158, 0.12);
  border-color: rgba(73, 211, 158, 0.3);
  color: rgba(220, 255, 245, 0.9);
}

/* Status pills for lanes */
.status-pill--open {
  background: rgba(255, 120, 80, 0.15);
  border: 1px solid rgba(255, 120, 80, 0.35);
  color: #ffb083;
}

.status-pill--shipped {
  background: rgba(140, 174, 210, 0.15);
  border: 1px solid rgba(140, 174, 210, 0.35);
  color: rgba(200, 220, 245, 0.95);
}

.status-pill--received {
  background: rgba(73, 211, 158, 0.15);
  border: 1px solid rgba(73, 211, 158, 0.35);
  color: rgba(200, 255, 235, 0.95);
}

.status-pill--cancelled {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.55);
}

/* ============================================
   BOOKING CARD - Complete Styles
   ============================================ */
.booking-card {
  background: rgba(255, 255, 255, 0.05) !important;
  border-radius: 12px !important;
  padding: 0 !important;
  margin-bottom: 4px !important;
  border: 1px solid rgba(255, 255, 255, 0.06) !important;
  box-shadow: 0 18px 35px rgba(0, 0, 0, 0.35);
  transition: all 0.2s ease !important;
  overflow: visible !important;
  display: block !important;
  position: relative;
  z-index: 0;
  /* CRITICAL: Prevent height constraints from cropping content */
  height: auto !important;
  min-height: auto !important;
  max-height: none !important;
  min-width: 0;
}

.booking-card::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 12px;
  background: radial-gradient(circle at top left, rgba(255, 255, 255, 0.08), transparent 55%);
  opacity: 0.6;
  z-index: 0;
  pointer-events: none;
}

.booking-card > * {
  position: relative;
  z-index: 1;
}

.booking-card:hover {
  transform: translateY(-2px);
  background: rgba(255, 255, 255, 0.08) !important;
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.35);
  border-color: rgba(255, 255, 255, 0.1) !important;
}

.booking-card > a,
.booking-card > .booking-card-body {
  display: block !important;
  padding: 14px 16px !important;
  color: inherit !important;
  text-decoration: none !important;
}

/* Card Header Section */
.card-header-section {
  display: flex !important;
  justify-content: space-between !important;
  align-items: flex-start !important;
  gap: 12px !important;
  margin-bottom: 14px !important;
  padding-bottom: 14px !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
}

.card-vehicle-info {
  flex: 1;
  min-width: 0;
  max-width: 70%;
}

/* Vehicle Model */
.vehicle-model {
  display: flex;
  align-items: center;
  gap: 6px;
  width: 100%;
  min-width: 0;
  margin-bottom: 6px;
}

.vehicle-title-text {
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
}

/* Short Booking ID Badge - Card variant (from backup) */
.short-id-badge-card {
  display: inline-flex;
  align-items: center;
  padding: 2px 6px;
  background: rgba(255, 140, 80, 0.15);
  border: 1px solid rgba(255, 140, 80, 0.35);
  border-radius: 4px;
  color: #ffb083;
  font-family: var(--ui-font-mono);
  font-size: 8px;
  font-weight: 600;
  letter-spacing: 0.03em;
  white-space: nowrap;
  flex-shrink: 0;
  margin-left: 0;
  height: 16px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.short-id-badge-card:hover {
  background: rgba(255, 140, 80, 0.25);
  border-color: rgba(255, 140, 80, 0.5);
}

/* Claim Badge - Insurance claims (from backup) */
.claim-badge {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 1px 5px;
  background: rgba(46, 125, 50, 0.2);
  border: 1px solid rgba(76, 175, 80, 0.4);
  border-radius: 99px;
  color: #66bb6a;
  font-size: 7px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
  line-height: 1;
  height: 14px;
  flex-shrink: 0;
  margin-left: 2px;
}

.claim-badge mat-icon {
  font-size: 9px;
  width: 9px;
  height: 9px;
}

/* ── NPS Badge — compact round badge next to customer name ── */
.nps-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0;
  white-space: nowrap;
  line-height: 1;
  flex-shrink: 0;
  margin-left: 5px;
  cursor: default;
  /* Default: neutral/no category */
  background: rgba(255, 255, 255, 0.08);
  border: 1.5px solid rgba(255, 255, 255, 0.18);
  color: rgba(255, 255, 255, 0.6);
  vertical-align: middle;
}

/* Promoter — green (9-10) */
.nps-chip.promoter {
  background: rgba(73, 211, 158, 0.18);
  border-color: rgba(73, 211, 158, 0.45);
  color: #5debb5;
}

/* Passive — amber (7-8) */
.nps-chip.passive {
  background: rgba(255, 190, 50, 0.15);
  border-color: rgba(255, 190, 50, 0.4);
  color: #ffc55a;
}

/* Detractor — red (0-6) */
.nps-chip.detractor {
  background: rgba(239, 83, 80, 0.18);
  border-color: rgba(239, 83, 80, 0.45);
  color: #ff7b79;
}

/* Customer Info — single line with NPS badge */
.customer-info {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.65);
  display: flex;
  align-items: center;
  gap: 0;
  flex-wrap: nowrap;
  overflow: hidden;
}

.qc-failed-badge {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 2px 6px;
  background: var(--ui-danger-bg);
  border: 1px solid var(--ui-danger-border);
  border-radius: 99px;
  color: var(--ui-danger);
  font-size: 8px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
  line-height: 1;
  height: 16px;
  flex-shrink: 0;
  margin-left: 0;
}

.qc-failed-badge mat-icon {
  font-size: 10px;
  width: 10px;
  height: 10px;
}

.customer-info .bullet {
  color: rgba(255, 255, 255, 0.25);
  font-size: 4px;
  margin: 0 1px;
}

.customer-info .reg-no {
  color: rgba(255, 255, 255, 0.85);
  font-family: var(--ui-font-mono);
  font-size: 12px;
  font-weight: 600;
}

/* Estimate Info */
.estimate-info {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  flex-shrink: 0;
}

.estimate-amount {
  font-size: 14px;
  font-weight: 700;
  color: #FF784F;
  text-shadow: 0 0 8px rgba(255, 120, 80, 0.28);
}

.estimate-label {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* Team Info Row */
.card-team-row {
  display: flex !important;
  gap: 16px !important;
  margin-bottom: 12px !important;
}

/* Hide team names in compact (85% zoom) mode — partition line stays */
.board-compact .card-team-row {
  display: none !important;
}

/* Hide the partition line next to the hidden team row */
.board-compact .card-team-row + .partition-line {
  display: none !important;
}

/* Hide booking ID badges in compact mode */
.board-compact .short-id-badge-card {
  display: none !important;
}

.team-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.team-field .field-label {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-weight: 500;
}

.team-field .field-label.label-pickup {
  color: rgba(120, 140, 255, 0.9);
}

.team-field .field-label.label-drop {
  color: rgba(255, 160, 100, 0.9);
}

.team-field .field-label.label-tech {
  color: rgba(100, 220, 220, 0.9);
}

.team-field .field-value {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.85);
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Partition Line */
.partition-line {
  height: 1px;
  background: rgba(255, 255, 255, 0.06);
  margin: 0 0 12px 0;
}

/* Date Row */
.card-date-row {
  display: flex !important;
  gap: 12px !important;
}

.date-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
  min-width: 0;
}

.date-field .field-label {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-weight: 500;
}

.date-field .field-value {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.85);
  font-weight: 500;
}

/* Pickup Date - Reddish Highlighting */
.date-field--pickup {
  position: relative;
  padding-left: 10px;
}

.date-field--pickup::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  border-radius: 2px;
  background: linear-gradient(180deg, rgba(255, 95, 70, 0.9) 0%, rgba(255, 120, 80, 0.8) 50%, rgba(220, 80, 50, 0.7) 100%);
  box-shadow: 0 0 8px rgba(255, 95, 70, 0.4);
}

/* Service Date - ORANGE highlighting */
.date-field--service {
  position: relative;
  padding-left: 10px;
}

.date-field--service::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  border-radius: 2px;
  background: linear-gradient(180deg, rgba(255, 95, 70, 0.9) 0%, rgba(255, 120, 80, 0.8) 50%, rgba(220, 80, 50, 0.7) 100%);
  box-shadow: 0 0 8px rgba(255, 95, 70, 0.4);
}

/* Incomplete Jobcard - AMBER warning styling */
.date-field--incomplete {
  position: relative;
  padding-left: 10px;
  background: rgba(255, 180, 50, 0.08);
  border-radius: 8px;
  padding: 8px 10px 8px 12px;
}

.date-field--incomplete::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  border-radius: 2px;
  background: linear-gradient(180deg, rgba(255, 190, 50, 0.9) 0%, rgba(255, 160, 30, 0.8) 50%, rgba(220, 140, 20, 0.7) 100%);
  box-shadow: 0 0 8px rgba(255, 180, 50, 0.4);
}

.incomplete-icon {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
  color: rgba(255, 190, 70, 0.9) !important;
  flex-shrink: 0;
}

.incomplete-label {
  color: rgba(255, 200, 100, 0.95) !important;
  font-weight: 600 !important;
}

.incomplete-desc {
  color: rgba(255, 255, 255, 0.45) !important;
  font-size: 11px !important;
}

/* ============================================
   JOB STAGE NAV - Status slider (left-aligned)
   ============================================ */
.job-stage-nav {
  display: flex;
  justify-content: flex-start;
  margin: 0 0 18px;
  width: 100%;
  position: relative;
  z-index: 5;
  align-items: flex-start;
  min-height: 28px;
  gap: 16px;
  flex-wrap: wrap;
}

.job-stage-nav__glass {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 32px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  overflow: visible;
  height: auto;
}

.job-stage-nav__segment {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 6px;
  padding: 2px 12px;
  border: 1px solid transparent;
  border-radius: 24px;
  background: transparent;
  color: rgba(255, 255, 255, 0.6);
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  height: 28px;
  transition: all 0.25s ease;
  white-space: nowrap;
  font-family: inherit;
}

.job-stage-nav__segment:hover:not(.is-active) {
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.85);
}

.job-stage-nav__segment.is-active {
  background: linear-gradient(135deg, #ff784f, #e94424);
  color: #fff;
  font-weight: 600;
  box-shadow: 0 4px 20px rgba(255, 120, 70, 0.25);
}

/* ============================================
   DAY STATUS BADGES (Today/Tomorrow/Delayed)
   ============================================ */
.day-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  background: rgba(255, 120, 80, 0.15);
  border: 1px solid rgba(255, 120, 80, 0.3);
  color: rgba(255, 200, 180, 0.95);
  padding: 4px 10px;
  border-radius: 12px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.3px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-left: 8px;
  flex-shrink: 1;
  max-width: 130px;
}

.day-status-badge.status-manual {
  border-style: dashed;
}

.day-status-badge .chip-source-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
  color: inherit;
  line-height: 1;
}

/* Red variant for Missed/Delayed status */
.day-status-badge.badge-delayed,
.day-status-badge.badge-missed,
.booking-card.card-missed .day-status-badge {
  background: rgba(220, 38, 38, 0.2);
  border: 1px solid rgba(220, 38, 38, 0.4);
  color: rgba(254, 202, 202, 0.95);
}

/* Compact variant for tighter spaces */
.day-status-badge--compact {
  padding: 3px 8px;
  font-size: 9px;
  border-radius: 10px;
  max-width: none;
}

/* Invoice Number Badge - right-aligned on invoice cards */
.invoice-no-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  color: rgba(255, 255, 255, 0.7);
  font-family: var(--ui-font-mono);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.03em;
  white-space: nowrap;
  flex-shrink: 0;
}

/* Insurance (INS) invoice — distinctive teal/cyan accent */
.invoice-no-badge--ins {
  background: rgba(0, 188, 212, 0.12);
  border-color: rgba(0, 188, 212, 0.35);
  color: rgba(100, 230, 240, 0.95);
}

/* Card State Modifiers */
.card-pickup-highlight {
  border-color: rgba(59, 130, 246, 0.3) !important;
  background: rgba(59, 130, 246, 0.05) !important;
}

.card-missed {
  border-color: rgba(239, 68, 68, 0.3) !important;
  background: rgba(239, 68, 68, 0.05) !important;
}

/* Cancelled invoice card — disabled, non-interactive */
.card-cancelled {
  opacity: 0.45;
  pointer-events: none;
  filter: grayscale(0.6);
}

.card-cancelled:hover {
  transform: none !important;
  background: rgba(255, 255, 255, 0.05) !important;
  box-shadow: 0 18px 35px rgba(0, 0, 0, 0.35);
}

/* Large slanted CANCELLED watermark */
.cancelled-watermark {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(-25deg);
  font-size: 28px;
  font-weight: 900;
  letter-spacing: 4px;
  color: rgba(239, 68, 68, 0.55);
  text-transform: uppercase;
  pointer-events: none;
  z-index: 10;
  white-space: nowrap;
  text-shadow: 0 0 12px rgba(239, 68, 68, 0.3);
  border: 3px solid rgba(239, 68, 68, 0.35);
  padding: 4px 18px;
  border-radius: 6px;
}

/* ============================================
   SKELETON LOADERS - Pixel-Perfect Loading States
   ============================================ */
/* Shimmer animation */
@keyframes skeleton-shimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
/* Base skeleton line */
.skeleton-line {
  display: block;
  height: 14px;
  width: 100%;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.12) 50%, rgba(255, 255, 255, 0.06) 100%);
  background-size: 200% 100%;
  animation: skeleton-shimmer 1.5s infinite ease-in-out;
  border-radius: 4px;
}

/* Skeleton line dimension variants */
.skeleton-line--title {
  width: 140px;
  height: 14px;
}

.skeleton-line--subtitle {
  width: 100px;
  height: 13px;
  margin-top: 4px;
}

.skeleton-line--amount {
  width: 72px;
  height: 14px;
}

.skeleton-line--tag {
  width: 48px;
  height: 10px;
  margin-top: 2px;
}

.skeleton-line--label {
  width: 50px;
  height: 10px;
}

.skeleton-line--value {
  width: 65px;
  height: 13px;
}

.skeleton-line--value.long {
  width: 120px;
}

.skeleton-line--value.medium {
  width: 85px;
}

/* Skeleton size modifiers */
.skeleton-line.short {
  width: 60%;
}

.skeleton-line.medium {
  width: 75%;
}

.skeleton-line.long {
  width: 90%;
}

/* Skeleton card surface */
.skeleton-card-surface {
  background: rgba(255, 255, 255, 0.05) !important;
  border: 1px solid rgba(255, 255, 255, 0.06) !important;
  pointer-events: none;
}

.skeleton-card-surface:hover {
  transform: none !important;
  background: rgba(255, 255, 255, 0.05) !important;
}

/* Skeleton estimate section */
.skeleton-estimate {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}

/* Skeleton date field */
.skeleton-date-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* Skeleton pill (for badges) */
.skeleton-pill {
  display: inline-block;
  height: 26px;
  width: 60px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.12) 50%, rgba(255, 255, 255, 0.06) 100%);
  background-size: 200% 100%;
  animation: skeleton-shimmer 1.5s infinite ease-in-out;
  border-radius: 13px;
}

.skeleton-pill--count {
  width: 32px;
  height: 26px;
}

/* Skeleton icon placeholder */
.skeleton-icon {
  display: inline-block;
  width: 20px;
  height: 20px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 4px;
}

.skeleton-icon--refresh {
  width: 16px;
  height: 16px;
  border-radius: 50%;
}

.skeleton-icon--action {
  width: 20px;
  height: 20px;
  border-radius: 50%;
}

/* Skeleton column header */
.skeleton-column-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.skeleton-column-header__title {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
}

.skeleton-column-header__meta {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Skeleton stats value */
.skeleton-value {
  height: 32px;
  width: 48px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.12) 50%, rgba(255, 255, 255, 0.06) 100%);
  background-size: 200% 100%;
  animation: skeleton-shimmer 1.5s infinite ease-in-out;
  border-radius: 6px;
  margin-top: 6px;
}

/* Skeleton search field */
.skeleton-block {
  display: block;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.08) 50%, rgba(255, 255, 255, 0.04) 100%);
  background-size: 200% 100%;
  animation: skeleton-shimmer 1.5s infinite ease-in-out;
  border-radius: 8px;
}

.skeleton-search-field {
  width: 260px;
  height: 36px;
}

/* Skeleton action and stage pills */
.skeleton-action-pill {
  width: 100px;
  height: 32px;
  border-radius: 16px;
}

.skeleton-stage-pill {
  width: 80px;
  height: 28px;
  border-radius: 14px;
}

/* Column skeleton container */
.column-skeleton {
  opacity: 1;
}

/* Skeleton job board (full page skeleton) */
.skeleton-job-board {
  opacity: 1;
}

/* Animation stagger for multiple skeletons */
.skeleton-card-surface:nth-child(1) .skeleton-line {
  animation-delay: 0s;
}

.skeleton-card-surface:nth-child(2) .skeleton-line {
  animation-delay: 0.1s;
}

.skeleton-card-surface:nth-child(3) .skeleton-line {
  animation-delay: 0.2s;
}

.skeleton-card-surface:nth-child(4) .skeleton-line {
  animation-delay: 0.3s;
}

.skeleton-card-surface:nth-child(5) .skeleton-line {
  animation-delay: 0.4s;
}

/* ==========================================================================
   UI LAYOUT — Group Sidebar (Corporate Mode)
   ==========================================================================
   Sidebar layout for GROUP mode. Gold/Amber accent palette.
   ========================================================================== */
.group-sidebar {
  width: 260px;
  height: calc(100vh - 56px);
  position: sticky;
  top: 0;
  flex-shrink: 0;
  z-index: var(--z-sidebar);
  transition: width 280ms var(--ui-transition-spring);
}

.group-sidebar.collapsed {
  width: 72px;
}

.group-sidebar__surface {
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: var(--ui-space-3);
  background: radial-gradient(ellipse at 20% 0%, rgba(212, 175, 55, 0.04) 0%, transparent 60%), linear-gradient(180deg, rgba(20, 16, 12, 0.97) 0%, rgba(15, 12, 8, 0.99) 100%);
  border-right: 1px solid rgba(212, 175, 55, 0.08);
  overflow-y: auto;
  overflow-x: hidden;
}

/* ── Top row ── */
.group-sidebar__top {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  margin-bottom: var(--ui-space-4);
}

.group-sidebar__toggle {
  border: none;
  background: rgba(212, 175, 55, 0.08);
  width: 36px;
  height: 36px;
  border-radius: var(--ui-radius-md);
  color: rgba(212, 175, 55, 0.7);
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: all var(--ui-transition-base);
}

.group-sidebar__toggle:hover {
  background: rgba(212, 175, 55, 0.15);
  color: var(--ui-warning);
}

/* ── Brand ── */
.group-sidebar__brand {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-4) var(--ui-space-2);
  margin-bottom: var(--ui-space-6);
  border-bottom: 1px solid rgba(212, 175, 55, 0.1);
}

.group-sidebar__brand-icon {
  width: 42px;
  height: 42px;
  min-width: 42px;
  border-radius: var(--ui-radius-md);
  background: linear-gradient(135deg, rgba(212, 175, 55, 0.2), rgba(184, 134, 11, 0.12));
  border: 1px solid rgba(212, 175, 55, 0.3);
  display: grid;
  place-items: center;
  box-shadow: 0 4px 16px rgba(212, 175, 55, 0.15);
}

.group-sidebar__brand-icon mat-icon {
  font-size: 24px;
  width: 24px;
  height: 24px;
  color: var(--ui-warning);
  filter: drop-shadow(0 0 6px rgba(212, 175, 55, 0.35));
}

.group-sidebar__brand-text {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

.group-sidebar__brand-name {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
  letter-spacing: -0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.group-sidebar__brand-badge {
  display: inline-block;
  padding: 2px var(--ui-space-2);
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  letter-spacing: 0.08em;
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
  border: 1px solid var(--ui-warning-border);
  width: fit-content;
}

/* ── Navigation ── */
.group-sidebar__nav {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  flex: 1;
}

.group-sidebar__link {
  width: 100%;
  border: none;
  border-radius: var(--ui-radius-md);
  background: transparent;
  color: var(--ui-text-muted);
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: 10px var(--ui-space-3);
  cursor: pointer;
  transition: all 180ms ease, transform 120ms ease;
  font: inherit;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-normal);
  text-align: left;
}

/* Hover glow */
.group-sidebar__link:hover {
  background: rgba(212, 175, 55, 0.06);
  color: var(--ui-text-secondary);
  box-shadow: 0 0 12px rgba(212, 175, 55, 0.1);
}

/* Click animation — scale down on press */
.group-sidebar__link:active {
  transform: scale(0.97);
  transition: transform 60ms ease;
}

/* Active state — gradient + glow */
.group-sidebar__link.active {
  background: linear-gradient(135deg, rgba(212, 175, 55, 0.14), rgba(184, 134, 11, 0.08));
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-medium);
  box-shadow: 0 0 16px rgba(212, 175, 55, 0.12), inset 0 0 0 1px rgba(212, 175, 55, 0.1);
}

.group-sidebar__link-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: rgba(212, 175, 55, 0.45);
  transition: all 180ms ease;
}

.group-sidebar__link:hover .group-sidebar__link-icon {
  color: rgba(212, 175, 55, 0.8);
}

/* Active icon — bright gold with glow */
.group-sidebar__link.active .group-sidebar__link-icon {
  color: var(--ui-warning);
  filter: drop-shadow(0 0 8px rgba(212, 175, 55, 0.45));
}

.group-sidebar__link-label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ── Footer / Switch ── */
.group-sidebar__footer {
  margin-top: auto;
  padding-top: var(--ui-space-4);
  border-top: 1px solid rgba(212, 175, 55, 0.08);
}

.group-sidebar__switch-btn {
  width: 100%;
  border: 1px solid rgba(255, 127, 69, 0.25);
  background: rgba(255, 127, 69, 0.06);
  color: var(--ui-text-muted);
  border-radius: var(--ui-radius-md);
  padding: 10px var(--ui-space-3);
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  font: inherit;
  font-size: var(--ui-text-sm);
  transition: all var(--ui-transition-base);
}

.group-sidebar__switch-btn:hover {
  background: rgba(255, 127, 69, 0.12);
  border-color: rgba(255, 127, 69, 0.4);
  color: var(--ui-text-primary);
}

.group-sidebar__switch-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: var(--ui-brand);
}

/* Branch list dropdown */
.group-sidebar__branch-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: var(--ui-space-2);
  padding: var(--ui-space-2);
  background: var(--ui-surface-1);
  border-radius: var(--ui-radius-md);
  border: 1px solid var(--ui-border-light);
}

.group-sidebar__branch-item {
  width: 100%;
  border: none;
  background: transparent;
  color: var(--ui-text-muted);
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) 10px;
  border-radius: var(--ui-radius-sm);
  cursor: pointer;
  font: inherit;
  font-size: var(--ui-text-sm);
  transition: all 150ms ease;
  text-align: left;
}

.group-sidebar__branch-item:hover {
  background: rgba(255, 127, 69, 0.1);
  color: var(--ui-text-primary);
}

.group-sidebar__branch-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ui-brand);
  flex-shrink: 0;
}

/* ── Collapsed state ── */
.group-sidebar.collapsed .group-sidebar__brand-text,
.group-sidebar.collapsed .group-sidebar__link-label,
.group-sidebar.collapsed .group-sidebar__switch-btn span,
.group-sidebar.collapsed .group-sidebar__branch-list {
  display: none;
}

.group-sidebar.collapsed .group-sidebar__brand {
  justify-content: center;
  padding: var(--ui-space-3) 0;
}

.group-sidebar.collapsed .group-sidebar__link {
  justify-content: center;
  padding: 10px var(--ui-space-2);
}

.group-sidebar.collapsed .group-sidebar__switch-btn {
  justify-content: center;
  padding: 10px;
}

.group-sidebar.collapsed .group-sidebar__toggle {
  margin: 0 auto;
}

.group-sidebar.collapsed .group-sidebar__top {
  justify-content: center;
}

/* ── HR sub-group titles ── */
.group-sidebar__group-title {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: rgba(212, 175, 55, 0.3);
  font-weight: 500;
  padding: 10px 12px 2px 12px;
  margin: 0;
  -webkit-user-select: none;
          user-select: none;
  border-top: 1px solid rgba(212, 175, 55, 0.04);
}

.group-sidebar__group-title:first-child {
  border-top: none;
  padding-top: 2px;
}

.group-sidebar.collapsed .group-sidebar__group-title {
  display: none;
}

/* ── Section (expandable sidebar groups) ── */
.group-sidebar__section {
  margin-top: var(--ui-space-1);
}

.group-sidebar__section-header {
  width: 100%;
  border: none;
  border-radius: var(--ui-radius-md);
  background: transparent;
  color: var(--ui-text-muted);
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: 10px var(--ui-space-3);
  cursor: pointer;
  transition: all 180ms ease, transform 120ms ease;
  font: inherit;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  text-align: left;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.group-sidebar__section-header:hover {
  background: rgba(212, 175, 55, 0.06);
  color: var(--ui-text-secondary);
  box-shadow: 0 0 12px rgba(212, 175, 55, 0.08);
}

/* Click animation for section headers */
.group-sidebar__section-header:active {
  transform: scale(0.97);
  transition: transform 60ms ease;
}

/* Section header active highlight — when a child item is active */
.group-sidebar__section-header.section-active {
  color: var(--ui-text-secondary);
  background: rgba(212, 175, 55, 0.05);
  border-left: 3px solid var(--ui-warning);
  padding-left: calc(var(--ui-space-3) - 3px);
  box-shadow: 0 0 18px rgba(212, 175, 55, 0.08);
}

.group-sidebar__section-header.section-active .group-sidebar__section-icon {
  color: var(--ui-warning);
  filter: drop-shadow(0 0 6px rgba(212, 175, 55, 0.3));
}

.group-sidebar__section-header.section-active .group-sidebar__section-title {
  color: var(--ui-text-primary);
}

.group-sidebar__section-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: rgba(212, 175, 55, 0.45);
  transition: color 180ms ease, filter 180ms ease;
}

.group-sidebar__section-header:hover .group-sidebar__section-icon {
  color: rgba(212, 175, 55, 0.8);
}

.group-sidebar__section-title {
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Arrow rotation for accordion animation */
.group-sidebar__section-arrow {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(212, 175, 55, 0.3);
  margin-left: auto;
  transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1);
}

.group-sidebar__section-arrow.expanded {
  transform: rotate(180deg);
}

/* Accordion animation using max-height */
.group-sidebar__section-items {
  display: flex;
  flex-direction: column;
  gap: 1px;
  padding-left: var(--ui-space-1);
  overflow: hidden;
  transition: max-height 250ms cubic-bezier(0.4, 0, 0.2, 1), opacity 200ms ease;
}

.group-sidebar__section-items.section-open {
  max-height: 500px;
  opacity: 1;
}

.group-sidebar__section-items.section-closed {
  max-height: 0;
  opacity: 0;
}

/* Nested (indented) links inside sections */
.group-sidebar__link--nested {
  padding-left: calc(var(--ui-space-3) + 8px);
  font-size: var(--ui-text-sm);
}

/* ── Divider ── */
.group-sidebar__divider {
  height: 1px;
  margin: var(--ui-space-3) var(--ui-space-3);
  background: rgba(212, 175, 55, 0.08);
}

/* ── Collapsed state for sections ── */
.group-sidebar.collapsed .group-sidebar__section-title,
.group-sidebar.collapsed .group-sidebar__section-arrow,
.group-sidebar.collapsed .group-sidebar__section-items {
  display: none;
}

.group-sidebar.collapsed .group-sidebar__section-header {
  justify-content: center;
  padding: 10px var(--ui-space-2);
}

.group-sidebar.collapsed .group-sidebar__divider {
  margin: var(--ui-space-2) var(--ui-space-2);
}

/* ==========================================================================
   ONBOARDING STRIP — Global Layout Contract
   ==========================================================================
   A persistent, collapsible onboarding progress bar rendered globally
   via <app-global-onboarding>.  Uses ViewEncapsulation.None so all
   selectors here are global.

   Collapsed  → icon + "Setup Progress  N of M" + progress bar + arrow
   Expanded   → icon + "Setup Progress  N of M" + step buttons + arrow
   ========================================================================== */
/* ---------- Strip wrapper ---------- */
.onboarding-strip {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin-bottom: var(--ui-space-4);
  padding: var(--ui-space-2) var(--ui-space-3);
  min-height: 40px;
  border-radius: var(--ui-radius-xl);
  background: var(--ui-glass-light);
  backdrop-filter: var(--ui-blur-md);
  -webkit-backdrop-filter: var(--ui-blur-md);
  border: 1px solid var(--ui-border-light);
  box-shadow: var(--ui-shadow-sm), inset 0 1px 0 rgba(255, 255, 255, 0.03);
  transition: background var(--ui-transition-spring), border-color var(--ui-transition-spring), box-shadow var(--ui-transition-spring);
  outline: none;
}

.onboarding-strip.clickable {
  cursor: pointer;
}

.onboarding-strip.clickable:hover {
  background: linear-gradient(135deg, var(--ui-surface-2) 0%, var(--ui-surface-1) 100%);
  border-color: var(--ui-border-hover);
}

.onboarding-strip:focus-visible {
  border-color: var(--ui-border-focus);
  box-shadow: var(--ui-shadow-sm), 0 0 0 2px rgba(255, 122, 61, 0.15);
}

/* ---------- Navigation arrows ---------- */
.onboarding-strip .nav-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: none;
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface-1);
  color: var(--ui-text-muted);
  cursor: pointer;
  flex-shrink: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--ui-transition-base), background var(--ui-transition-base), color var(--ui-transition-base);
}

.onboarding-strip .nav-arrow.show {
  opacity: 1;
  pointer-events: auto;
}

.onboarding-strip .nav-arrow:hover {
  background: var(--ui-surface-3);
  color: var(--ui-text-secondary);
}

.onboarding-strip .nav-arrow mat-icon {
  font-size: var(--ui-text-xl) !important;
  width: 20px !important;
  height: 20px !important;
}

/* ---------- Icon + label block ---------- */
.onboarding-strip .strip-info {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-shrink: 0;
}

.onboarding-strip .strip-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ui-brand-light);
}

.onboarding-strip .strip-icon mat-icon {
  font-size: var(--ui-text-lg) !important;
  width: 18px !important;
  height: 18px !important;
}

.onboarding-strip .strip-text {
  display: flex;
  align-items: baseline;
  gap: var(--ui-space-2);
  white-space: nowrap;
}

.onboarding-strip .strip-label {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-muted);
  letter-spacing: 0.02em;
}

.onboarding-strip .strip-count {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
}

/* ---------- Content area (progress bar vs step buttons) ---------- */
.onboarding-strip .strip-content {
  flex: 1;
  min-width: 0;
  display: grid;
  align-items: center;
}

.onboarding-strip .strip-content > * {
  grid-area: 1/1;
}

/* ---------- Next Action label (collapsed state) ---------- */
.onboarding-strip .strip-next-action {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-brand-light);
  letter-spacing: 0.01em;
}

/* ---------- Completion dots (collapsed state) ---------- */
.onboarding-strip .completion-dots {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 var(--ui-space-2);
  cursor: pointer;
  transition: opacity 0.35s ease, transform 0.35s ease;
}

.onboarding-strip .completion-dots.hidden {
  opacity: 0;
  pointer-events: none;
}

.onboarding-strip .completion-dots .dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--ui-surface-3);
  border: 1px solid var(--ui-border-light);
  transition: all var(--ui-transition-base);
  flex-shrink: 0;
}

.onboarding-strip .completion-dots .dot--complete {
  background: var(--ui-success);
  border-color: var(--ui-success);
}

.onboarding-strip .completion-dots .dot--active {
  background: var(--ui-brand);
  border-color: var(--ui-brand);
  box-shadow: 0 0 6px rgba(255, 122, 61, 0.4);
  animation: dot-pulse 2s ease-in-out infinite;
}

@keyframes dot-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}
/* ---------- Step buttons (expanded state) ---------- */
.onboarding-strip .step-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
  transition: opacity 0.35s ease, transform 0.35s ease;
  transform-origin: left center;
}

.onboarding-strip .step-buttons.hidden {
  opacity: 0;
  transform: translateX(20px);
  pointer-events: none;
}

.onboarding-strip .step-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-1) var(--ui-space-3);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  cursor: pointer;
  transition: all var(--ui-transition-base);
  white-space: nowrap;
}

.onboarding-strip .step-btn:hover:not(:disabled) {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
  color: var(--ui-text-secondary);
  transform: translateY(-1px);
}

.onboarding-strip .step-btn .btn-icon {
  display: flex;
  align-items: center;
}

.onboarding-strip .step-btn .btn-icon mat-icon {
  font-size: var(--ui-text-md) !important;
  width: 16px !important;
  height: 16px !important;
}

.onboarding-strip .step-btn .btn-text {
  font-size: var(--ui-text-sm);
}

/* -- Complete state -- */
.onboarding-strip .step-btn.is-complete {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
  cursor: default;
}

/* -- Active (next-to-do) state -- */
.onboarding-strip .step-btn.is-active {
  background: rgba(255, 153, 102, 0.08);
  border-color: rgba(255, 153, 102, 0.25);
  color: var(--ui-brand-light);
  box-shadow: 0 0 12px rgba(255, 122, 61, 0.08);
}

.onboarding-strip .step-btn.is-active:hover {
  background: rgba(255, 153, 102, 0.14);
  border-color: rgba(255, 153, 102, 0.35);
}

/* -- Locked state -- */
.onboarding-strip .step-btn.is-locked {
  opacity: 0.45;
  cursor: not-allowed;
}

/* -- Warning state (missing capabilities) -- */
.onboarding-strip .step-btn.has-warning {
  border-color: rgba(255, 183, 77, 0.35);
  background: rgba(255, 183, 77, 0.06);
}

.onboarding-strip .step-btn .btn-warning {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  font-size: 11px;
  font-weight: var(--ui-font-semibold);
  color: var(--ui-warning, #ffb74d);
  margin-left: var(--ui-space-1);
}

.onboarding-strip .step-btn .btn-warning mat-icon {
  font-size: 13px !important;
  width: 13px !important;
  height: 13px !important;
}

/* -- Tour trigger button — distinctive accent to stand out from step buttons -- */
.onboarding-strip .tour-trigger-btn {
  background: rgba(100, 181, 246, 0.08) !important;
  border-color: rgba(100, 181, 246, 0.25) !important;
  color: var(--ui-accent, #64b5f6) !important;
}

.onboarding-strip .tour-trigger-btn:hover {
  background: rgba(100, 181, 246, 0.14) !important;
  border-color: rgba(100, 181, 246, 0.35) !important;
}

/* ==========================================================================
   GROUP MODE — Aggregate Branch Readiness Strip (Phase 22)
   ========================================================================== */
/* ---------- Group icon variant ---------- */
.onboarding-strip .group-icon {
  color: var(--ui-accent, #64b5f6);
}

/* ---------- Summary chips (collapsed) ---------- */
.onboarding-strip .group-summary-chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
  align-items: center;
  transition: opacity 0.35s ease, transform 0.35s ease;
}

.onboarding-strip .group-summary-chips.hidden {
  opacity: 0;
  transform: translateX(20px);
  pointer-events: none;
}

.onboarding-strip .group-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: var(--ui-space-1) var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  white-space: nowrap;
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
  color: var(--ui-text-secondary);
}

.onboarding-strip .group-chip mat-icon {
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
  color: var(--ui-success);
}

.onboarding-strip .group-chip.warn {
  border-color: rgba(255, 183, 77, 0.3);
  background: rgba(255, 183, 77, 0.06);
  color: var(--ui-warning, #ffb74d);
}

.onboarding-strip .group-chip.warn mat-icon {
  color: var(--ui-warning, #ffb74d);
}

.onboarding-strip .group-chip.alert {
  border-color: rgba(255, 122, 61, 0.25);
  background: rgba(255, 122, 61, 0.06);
  color: var(--ui-brand-light);
}

.onboarding-strip .group-chip.alert mat-icon {
  color: var(--ui-brand-light);
}

/* ---------- Branch detail cards (expanded) ---------- */
.onboarding-strip .group-branch-detail {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
  align-items: stretch;
  transition: opacity 0.35s ease, transform 0.35s ease;
}

.onboarding-strip .group-branch-detail.hidden {
  opacity: 0;
  transform: translateX(20px);
  pointer-events: none;
}

.onboarding-strip .branch-card {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  font-size: var(--ui-text-sm);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
  transition: all var(--ui-transition-base);
  min-width: 200px;
}

.onboarding-strip .branch-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-2);
}

.onboarding-strip .branch-card .branch-name {
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-secondary);
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
  font-size: 12px;
}

.onboarding-strip .branch-card .branch-readiness {
  font-weight: var(--ui-font-bold);
  font-size: var(--ui-text-sm);
}

/* Step indicators inside branch card */
.onboarding-strip .branch-steps {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.onboarding-strip .branch-step {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 2px 8px;
  border-radius: var(--ui-radius-sm);
  font-size: 11px;
  cursor: default;
  transition: all var(--ui-transition-base);
}

.onboarding-strip .branch-step mat-icon {
  font-size: 12px !important;
  width: 12px !important;
  height: 12px !important;
}

.onboarding-strip .branch-step .step-label {
  font-size: 10px;
  font-weight: var(--ui-font-medium);
  white-space: nowrap;
}

/* Done step */
.onboarding-strip .branch-step.step-done {
  background: var(--ui-success-bg, rgba(76, 175, 80, 0.08));
  color: var(--ui-success);
}

.onboarding-strip .branch-step.step-done mat-icon {
  color: var(--ui-success);
}

/* Pending step */
.onboarding-strip .branch-step.step-pending {
  background: rgba(255, 183, 77, 0.08);
  color: var(--ui-warning, #ffb74d);
}

.onboarding-strip .branch-step.step-pending mat-icon {
  color: var(--ui-warning, #ffb74d);
}

/* Badge for HQ */
.onboarding-strip .branch-type-badge {
  font-size: 9px;
  font-weight: var(--ui-font-bold);
  padding: 1px 5px;
  border-radius: var(--ui-radius-sm);
  background: rgba(255, 122, 61, 0.15);
  color: var(--ui-brand-light);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

/* Readiness color coding for branch cards */
.onboarding-strip .branch-card.readiness-complete {
  border-color: var(--ui-success-border);
}

.onboarding-strip .branch-card.readiness-complete .branch-readiness {
  color: var(--ui-success);
}

.onboarding-strip .branch-card.readiness-good .branch-readiness {
  color: var(--ui-success);
}

.onboarding-strip .branch-card.readiness-warn {
  border-color: rgba(255, 183, 77, 0.3);
}

.onboarding-strip .branch-card.readiness-warn .branch-readiness {
  color: var(--ui-warning, #ffb74d);
}

.onboarding-strip .branch-card.readiness-critical {
  border-color: rgba(255, 122, 61, 0.25);
}

.onboarding-strip .branch-card.readiness-critical .branch-readiness {
  color: var(--ui-brand-light);
}

/* ==========================================================================
   GROUP READINESS MODAL (grm-*) — Scoped styles
   ==========================================================================
   Imported in styles.scss alongside onboarding-strip.
   All classes prefixed 'grm-' to avoid collisions.
   Modal structure uses canonical glass-modal-* classes.
   ========================================================================== */
body .cdk-global-overlay-wrapper:has(.group-readiness-dialog-panel) {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: var(--ui-space-4);
  box-sizing: border-box;
}

body .cdk-overlay-pane.group-readiness-dialog-panel {
  width: min(1240px, 100vw - var(--ui-space-8)) !important;
  max-width: min(1240px, 100vw - var(--ui-space-8)) !important;
  margin: auto !important;
}

body .cdk-overlay-pane.group-readiness-dialog-panel .mat-mdc-dialog-container,
body .cdk-overlay-pane.group-readiness-dialog-panel .mdc-dialog__container,
body .cdk-overlay-pane.group-readiness-dialog-panel .mdc-dialog__surface,
body .cdk-overlay-pane.group-readiness-dialog-panel .mat-mdc-dialog-surface {
  width: 100% !important;
  max-width: 100% !important;
}

body .cdk-overlay-pane.group-readiness-dialog-panel .glass-modal-container {
  width: 100%;
  max-height: min(88vh, 100vh - var(--ui-space-8));
}

@supports (height: 100dvh) {
  body .cdk-overlay-pane.group-readiness-dialog-panel .glass-modal-container {
    max-height: min(88dvh, 100dvh - var(--ui-space-8));
  }
}
.group-readiness-modal .dialog-icon {
  color: var(--ui-accent, #64b5f6);
}

/* Readiness badge in header */
.grm-readiness-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 10px;
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border-light);
}

.grm-readiness-badge.r-complete {
  color: var(--ui-success);
  border-color: var(--ui-success-border);
}

.grm-readiness-badge.r-good {
  color: var(--ui-success);
}

.grm-readiness-badge.r-warn {
  color: var(--ui-warning, #ffb74d);
  border-color: rgba(255, 183, 77, 0.3);
}

.grm-readiness-badge.r-critical {
  color: var(--ui-brand-light);
  border-color: rgba(255, 122, 61, 0.25);
}

/* Stats row */
.grm-stats-row {
  display: flex;
  gap: 12px;
  margin-bottom: var(--ui-space-4);
}

.grm-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  flex: 1;
  padding: 10px 12px;
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
}

.grm-stat-value {
  font-size: 18px;
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
}

.grm-stat.success .grm-stat-value {
  color: var(--ui-success);
}

.grm-stat.warn .grm-stat-value {
  color: var(--ui-warning, #ffb74d);
}

.grm-stat-label {
  font-size: 10px;
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* Table wrapper */
.grm-table-wrap {
  border-radius: var(--ui-radius-md);
  border: 1px solid var(--ui-border-light);
  overflow-x: auto;
}

.grm-table {
  width: 100%;
  min-width: 900px;
  border-collapse: collapse;
  table-layout: fixed;
}

.grm-table thead th {
  font-size: 10px;
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ui-text-muted);
  padding: 8px 10px;
  border-bottom: 1px solid var(--ui-border-light);
  text-align: left;
  background: transparent;
}

.grm-table thead .col-step,
.grm-table thead .col-pct {
  text-align: center;
}

.grm-table tbody tr {
  transition: background 0.15s ease;
}

.grm-table tbody tr:hover {
  background: rgba(255, 255, 255, 0.02);
}

.grm-table td {
  padding: 8px 10px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.03);
  vertical-align: middle;
}

.grm-table .col-branch {
  white-space: nowrap;
  width: 42%;
}

.grm-branch-name {
  font-size: 12px;
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-secondary);
}

.grm-hq-badge {
  display: inline-block;
  font-size: 8px;
  font-weight: var(--ui-font-bold);
  padding: 1px 4px;
  margin-left: 5px;
  border-radius: 3px;
  background: rgba(255, 122, 61, 0.15);
  color: var(--ui-brand-light);
  letter-spacing: 0.05em;
  vertical-align: middle;
}

.grm-table .col-step {
  text-align: center;
  width: 12%;
}

.grm-check {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
  color: var(--ui-success) !important;
}

.grm-pending {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
  color: rgba(255, 255, 255, 0.12) !important;
}

.grm-table .col-pct {
  text-align: center;
  width: 10%;
}

.grm-pct {
  font-size: 12px;
  font-weight: var(--ui-font-bold);
}

.grm-pct.r-complete, .grm-pct.r-good {
  color: var(--ui-success);
}

.grm-pct.r-warn {
  color: var(--ui-warning, #ffb74d);
}

.grm-pct.r-critical {
  color: var(--ui-brand-light);
}

/* ==========================================================================
   INTEGRATION READINESS SECTION (inside Group Setup modal)
   ========================================================================== */
.grm-integrations-section {
  margin-top: var(--ui-space-4);
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-md);
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-1);
}

.grm-integrations-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--ui-space-2);
}

.grm-integrations-title {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-table-cell-font);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
}
.grm-integrations-title mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: var(--ui-text-muted);
}

.grm-integrations-stat {
  margin-bottom: var(--ui-space-2);
}

.grm-integrations-count {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.grm-integrations-list {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  margin-bottom: var(--ui-space-3);
}

.grm-integration-item {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: 6px 8px;
  border-radius: var(--ui-radius-sm);
  background: rgba(255, 255, 255, 0.02);
  transition: background 0.15s ease;
}
.grm-integration-item:hover {
  background: rgba(255, 255, 255, 0.04);
}

.grm-integration-name {
  flex: 1;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-secondary);
}

.grm-integration-status {
  font-size: 10px;
  font-weight: var(--ui-font-bold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 2px 8px;
  border-radius: var(--ui-radius-full);
}

.grm-integration-status.status-active {
  color: var(--ui-success);
  background: rgba(74, 222, 128, 0.1);
}

.grm-integration-status.status-not_configured {
  color: var(--ui-warning, #FFCC00);
  background: rgba(255, 204, 0, 0.1);
}

.grm-integration-status.status-inactive,
.grm-integration-status.status-error {
  color: var(--ui-brand-light);
  background: rgba(255, 122, 61, 0.1);
}

.grm-integrations-cta {
  width: 100%;
  padding: var(--ui-space-2) var(--ui-space-4);
  border-radius: var(--ui-radius-sm);
  border: 1px solid var(--ui-border-hover);
  background: transparent;
  color: var(--ui-text-secondary);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: all var(--ui-transition-base);
}
.grm-integrations-cta:hover {
  background: var(--ui-surface-2);
  border-color: var(--ui-border-hover);
}

/* ==========================================================================
   3. PAGE VARIANTS (scoped, business-specific)
   ========================================================================== */
/* Main pages */
/* ==========================================================================
   UI PAGE VARIANT - DASHBOARD (FINANCIAL DASHBOARD)
   ==========================================================================
   Complete pixel-perfect restoration from pre-migration backup.
   Source: business-overview.component.css (1587 lines)

   This file contains ALL page-level styling for the financial dashboard,
   including host container, ApexCharts customization, date filters,
   onboarding components, and skeleton loaders.

   Apply: .ui-page--dashboard to the page container
   ========================================================================== */
/* ==========================================================================
   HOST CONTAINER & PAGE FRAME
   ========================================================================== */
.ui-page--dashboard {
  display: block;
  position: relative;
  overflow: visible;
  color: #eef2ff;
  min-height: 100vh;
  padding: 24px 20px 24px;
  background: transparent;
}

.ui-page--dashboard::after {
  display: none;
}

/* ========================================================================== 
   CRM PAGE PARITY RESTORE
   Nullifies .ui-page--dashboard wrapper impact when wrapping CRM pages
   Detects: direct child .fd-shell (Reminders) or .psf-shell (NPS)
   ========================================================================== */
.ui-page--dashboard:has(> .fd-shell),
.ui-page--dashboard:has(> .psf-shell) {
  padding: 0 !important;
  margin: 0 !important;
  min-height: auto !important;
  /* Remove glows interference */
}
.ui-page--dashboard:has(> .fd-shell) .glow,
.ui-page--dashboard:has(> .fd-shell) .glow-1,
.ui-page--dashboard:has(> .fd-shell) .glow-2,
.ui-page--dashboard:has(> .fd-shell) .glow-3,
.ui-page--dashboard:has(> .psf-shell) .glow,
.ui-page--dashboard:has(> .psf-shell) .glow-1,
.ui-page--dashboard:has(> .psf-shell) .glow-2,
.ui-page--dashboard:has(> .psf-shell) .glow-3 {
  display: none !important;
}

/* ==========================================================================
   APEXCHARTS GLASSMORPHIC TOOLTIP SYSTEM
   ========================================================================== */
.ui-page--dashboard ::ng-deep .apexcharts-tooltip.glass-chart-tooltip {
  background: rgba(22, 22, 28, 0.4) !important;
  backdrop-filter: blur(60px) saturate(200%) brightness(1.1) !important;
  -webkit-backdrop-filter: blur(60px) saturate(200%) brightness(1.1) !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  border-radius: 12px !important;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.15) !important;
  padding: 0 !important;
  overflow: hidden !important;
  max-width: 200px !important;
}

.ui-page--dashboard ::ng-deep .glass-chart-tooltip .apexcharts-tooltip-title {
  background: rgba(255, 255, 255, 0.06) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
  color: #ffffff !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  padding: 8px 12px !important;
  margin: 0 !important;
  font-family: var(--ui-font-primary) !important;
}

.ui-page--dashboard ::ng-deep .glass-chart-tooltip .apexcharts-tooltip-series-group {
  padding: 4px 12px !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  background: transparent !important;
  line-height: 1 !important;
}

.ui-page--dashboard ::ng-deep .glass-chart-tooltip .apexcharts-tooltip-marker {
  width: 6px !important;
  height: 6px !important;
  border-radius: 50% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  box-shadow: none !important;
  flex-shrink: 0 !important;
}

.ui-page--dashboard ::ng-deep .glass-chart-tooltip .apexcharts-tooltip-text {
  display: flex !important;
  align-items: center !important;
  gap: 0 !important;
  line-height: 1 !important;
  flex: 1 !important;
}

.ui-page--dashboard ::ng-deep .glass-chart-tooltip .apexcharts-tooltip-text-y-label {
  color: rgba(255, 255, 255, 0.8) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.ui-page--dashboard ::ng-deep .glass-chart-tooltip .apexcharts-tooltip-text-y-value {
  color: rgba(255, 255, 255, 0.95) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.ui-page--dashboard ::ng-deep .glass-chart-tooltip .apexcharts-tooltip-y-group {
  display: inline !important;
  padding: 0 !important;
}

.ui-page--dashboard ::ng-deep .glass-chart-tooltip .apexcharts-tooltip-series-group.apexcharts-inactive {
  display: none !important;
}

/* ==========================================================================
   FINANCIAL DASHBOARD SHELL
   ========================================================================== */
.ui-page--dashboard .financial-dashboard {
  position: relative;
  max-width: 1280px;
  margin: 0 auto;
  z-index: 1;
  font-family: var(--ui-font-primary);
}

.ui-page--dashboard .glow {
  position: fixed;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.08;
  pointer-events: none;
  animation: none;
  z-index: -1;
}

.ui-page--dashboard .glow-1 {
  width: 120px;
  height: 120px;
  top: -40px;
  left: -60px;
  background: #ff7a3d;
}

.ui-page--dashboard .glow-2 {
  width: 120px;
  height: 120px;
  top: 60px;
  right: -80px;
  background: #6c5bff;
}

.ui-page--dashboard .glow-3 {
  width: 100px;
  height: 100px;
  bottom: 40px;
  left: 35%;
  background: #19d2c4;
}

.ui-page--dashboard .glass {
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid rgba(255, 255, 255, 0.06);
  box-shadow: 0 4px 32px rgba(0, 0, 0, 0.12);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-radius: 14px;
}

/* ==========================================================================
   DASHBOARD HEADER
   ========================================================================== */
.ui-page--dashboard .dashboard-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  margin-bottom: 16px;
  gap: 16px;
  border-radius: 14px;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  position: relative;
  z-index: 10;
  overflow: visible;
}

.ui-page--dashboard .dashboard-brand {
  min-width: 240px;
}

.ui-page--dashboard .brand-title {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: #f3f7ff;
}

.ui-page--dashboard .brand-subtitle {
  color: #cdd7f9;
  font-size: 14px;
}

.ui-page--dashboard .filter-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  position: relative;
  z-index: 11;
  overflow: visible;
}

/* ==========================================================================
   DATE FILTER PANEL & CALENDAR
   ========================================================================== */
.ui-page--dashboard .date-filter .mat-icon {
  font-size: 20px;
}

.ui-page--dashboard .date-filter-panel, .ui-page--dashboard .ui-date-filter__panel {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 20px;
  padding: 18px;
  border-radius: 28px;
  min-width: 540px;
  max-width: 580px;
  background: linear-gradient(145deg, rgba(60, 35, 30, 0.35), rgba(45, 25, 20, 0.3));
  backdrop-filter: blur(20px) saturate(125%);
  -webkit-backdrop-filter: blur(20px) saturate(125%);
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.35), 0 0 0 1px rgba(120, 60, 40, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.06);
  color: #e8e8e8;
}

.ui-page--dashboard .date-filter-list, .ui-page--dashboard .ui-date-filter__list {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-top: 4px;
}

.ui-page--dashboard .date-filter-option, .ui-page--dashboard .ui-date-filter__option {
  text-align: left;
  border: none;
  background: transparent;
  color: rgba(200, 190, 185, 0.85);
  font-size: 13px;
  font-weight: 500;
  padding: 10px 16px;
  border-radius: 999px;
  transition: all 0.2s ease;
  cursor: pointer;
  letter-spacing: 0.01em;
  -webkit-tap-highlight-color: transparent;
  outline: none;
}

.ui-page--dashboard .date-filter-option:hover, .ui-page--dashboard .ui-date-filter__option:hover {
  background: rgba(255, 255, 255, 0.05);
  color: rgba(255, 255, 255, 0.95);
}

.ui-page--dashboard .date-filter-option:active, .ui-page--dashboard .ui-date-filter__option:active {
  background: rgba(120, 70, 50, 0.4);
  color: #ffffff;
}

.ui-page--dashboard .date-filter-option.active, .ui-page--dashboard .active.ui-date-filter__option {
  background: rgba(120, 70, 50, 0.5);
  color: #ffffff;
  font-weight: 600;
  box-shadow: none;
  border: 1px solid rgba(255, 255, 255, 0.05);
}

.ui-page--dashboard .date-filter-body, .ui-page--dashboard .ui-date-filter__body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  position: relative;
  min-height: 320px;
  padding-bottom: 50px;
}

.ui-page--dashboard .date-filter-header, .ui-page--dashboard .ui-date-filter__header {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  padding-bottom: 6px;
}

.ui-page--dashboard .date-filter-header > div, .ui-page--dashboard .ui-date-filter__header > div {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ui-page--dashboard .muted.tiny {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(180, 170, 165, 0.75);
  margin: 0;
  font-weight: 500;
}

.ui-page--dashboard .date-summary-value, .ui-page--dashboard .ui-date-filter__summary {
  font-size: 20px;
  font-weight: 600;
  color: #ffffff;
  letter-spacing: -0.01em;
}

/* Calendar Styling */
.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar, .ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar {
  background: transparent;
  color: #e8e8e8;
  font-family: inherit;
  font-size: 13px;
}

.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-header, .ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-header {
  padding: 0 0 8px 0;
}

.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-controls, .ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0;
}

.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-period-button, .ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-period-button {
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.05em;
  color: #ffffff;
  text-transform: uppercase;
  pointer-events: none;
}

.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-arrow, .ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-arrow {
  display: none !important;
}

.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-previous-button, .ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-previous-button,
.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-next-button,
.ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-next-button {
  color: rgba(255, 255, 255, 0.7);
  width: 32px;
  height: 32px;
  transition: all 0.2s ease;
}

.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-previous-button:hover, .ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-previous-button:hover,
.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-next-button:hover,
.ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-next-button:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
}

.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-table, .ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-table {
  border-spacing: 0;
  border-collapse: collapse;
}

.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-table-header th, .ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-table-header th {
  font-size: 10px;
  font-weight: 500;
  color: rgba(180, 170, 165, 0.7);
  padding: 0 0 4px 0;
  text-align: center;
}

.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-body-label, .ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-body-label {
  display: none !important;
}

.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-body-cell-container, .ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-body-cell-container {
  height: 24px !important;
  padding: 0 !important;
  border: none !important;
}

.ui-page--dashboard .date-filter-panel ::ng-deep tr.mat-calendar-body-row, .ui-page--dashboard .ui-date-filter__panel ::ng-deep tr.mat-calendar-body-row {
  height: 24px !important;
}

.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-body, .ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-body {
  padding: 0 !important;
}

.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-content, .ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-content {
  padding: 0 !important;
}

.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-body-cell, .ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-body-cell {
  position: relative;
  padding: 0 !important;
  height: 24px !important;
  width: 24px !important;
}

.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-body-cell-content, .ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-body-cell-content {
  position: relative;
  z-index: 2;
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-size: 12px;
  font-weight: 400;
  color: rgba(220, 210, 205, 0.9);
  transition: all 0.2s ease;
  border: 1px solid transparent;
  margin: 0 auto !important;
  top: 50%;
  transform: translateY(-50%);
  line-height: 1;
}

.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-body-cell:not(.range-start):not(.range-end):not(.in-range):hover .mat-calendar-body-cell-content, .ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-body-cell:not(.range-start):not(.range-end):not(.in-range):hover .mat-calendar-body-cell-content {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
}

.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-body-cell::before, .ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-body-cell::before {
  content: "";
  position: absolute;
  top: 50%;
  height: 22px;
  transform: translateY(-50%);
  z-index: 0;
  background: transparent;
  transition: all 0.2s ease;
}

.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-body-cell.in-range::before, .ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-body-cell.in-range::before,
.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-body-cell.range-start::before,
.ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-body-cell.range-start::before,
.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-body-cell.range-end::before,
.ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-body-cell.range-end::before {
  background: linear-gradient(135deg, rgba(120, 70, 50, 0.45), rgba(100, 55, 40, 0.5));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-body-cell.in-range:not(.range-start):not(.range-end)::before, .ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-body-cell.in-range:not(.range-start):not(.range-end)::before {
  left: 0;
  right: 0;
}

.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-body-cell.range-start::before, .ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-body-cell.range-start::before {
  left: 50%;
  right: 0;
  border-top-left-radius: 18px;
  border-bottom-left-radius: 18px;
}

.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-body-cell.range-end::before, .ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-body-cell.range-end::before {
  left: 0;
  right: 50%;
  border-top-right-radius: 18px;
  border-bottom-right-radius: 18px;
}

.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-body-cell.range-single::before, .ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-body-cell.range-single::before {
  display: none;
}

.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-body-cell.range-start .mat-calendar-body-cell-content, .ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-body-cell.range-start .mat-calendar-body-cell-content,
.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-body-cell.range-end .mat-calendar-body-cell-content,
.ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-body-cell.range-end .mat-calendar-body-cell-content,
.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-body-cell.range-single .mat-calendar-body-cell-content,
.ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-body-cell.range-single .mat-calendar-body-cell-content {
  background: transparent;
  color: #ffffff;
  font-weight: 600;
}

.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-body-cell.in-range .mat-calendar-body-cell-content, .ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-body-cell.in-range .mat-calendar-body-cell-content {
  color: #ffffff;
  font-weight: 500;
}

.ui-page--dashboard .date-filter-panel ::ng-deep .mat-calendar-body-disabled, .ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-calendar-body-disabled {
  color: rgba(180, 170, 165, 0.3);
}

.ui-page--dashboard .date-filter-actions, .ui-page--dashboard .ui-date-filter__actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  padding-top: 10px;
  margin-top: auto;
  position: absolute;
  bottom: 0;
  right: 0;
}

.ui-page--dashboard .date-filter-actions .ghost, .ui-page--dashboard .ui-date-filter__actions .ghost,
.ui-page--dashboard .date-filter-actions .primary,
.ui-page--dashboard .ui-date-filter__actions .primary {
  border-radius: 999px;
  padding: 8px 18px;
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.01em;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  cursor: pointer;
  border: none;
  -webkit-tap-highlight-color: transparent;
  outline: none;
}

.ui-page--dashboard .date-filter-actions .ghost, .ui-page--dashboard .ui-date-filter__actions .ghost {
  background: rgba(255, 255, 255, 0.05);
  color: rgba(255, 255, 255, 0.7);
  box-shadow: none;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.ui-page--dashboard .date-filter-actions .ghost:hover:not(:disabled), .ui-page--dashboard .ui-date-filter__actions .ghost:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.1);
  color: #ffffff;
  transform: translateY(-1px);
  box-shadow: none;
  border-color: rgba(255, 255, 255, 0.2);
}

.ui-page--dashboard .date-filter-actions .ghost:active:not(:disabled), .ui-page--dashboard .ui-date-filter__actions .ghost:active:not(:disabled) {
  background: rgba(80, 50, 40, 0.6);
  color: #ffffff;
  transform: translateY(0);
}

.ui-page--dashboard .date-filter-actions .primary, .ui-page--dashboard .ui-date-filter__actions .primary {
  background: #e74630;
  color: #ffffff;
  box-shadow: none;
}

.ui-page--dashboard .date-filter-actions .primary:hover:not(:disabled), .ui-page--dashboard .ui-date-filter__actions .primary:hover:not(:disabled) {
  background: #ff5742;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(231, 70, 48, 0.3);
}

.ui-page--dashboard .date-filter-actions .primary:active:not(:disabled), .ui-page--dashboard .ui-date-filter__actions .primary:active:not(:disabled) {
  background: #d63925;
  transform: translateY(0);
  box-shadow: none;
}

.ui-page--dashboard .date-filter-actions .ghost:disabled, .ui-page--dashboard .ui-date-filter__actions .ghost:disabled,
.ui-page--dashboard .date-filter-actions .primary:disabled,
.ui-page--dashboard .ui-date-filter__actions .primary:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  transform: none;
}

.ui-page--dashboard .date-filter-panel ::ng-deep .mat-ripple-element, .ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-ripple-element {
  display: none !important;
}

.ui-page--dashboard .date-filter-panel ::ng-deep .mat-button-ripple, .ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-button-ripple,
.ui-page--dashboard .date-filter-panel ::ng-deep .mat-button-focus-overlay,
.ui-page--dashboard .ui-date-filter__panel ::ng-deep .mat-button-focus-overlay {
  display: none !important;
  opacity: 0 !important;
}

.ui-page--dashboard .date-filter-panel button, .ui-page--dashboard .ui-date-filter__panel button {
  -webkit-tap-highlight-color: transparent;
}

.ui-page--dashboard .date-filter-panel button:focus, .ui-page--dashboard .ui-date-filter__panel button:focus {
  outline: none;
}

/* ==========================================================================
   PANELS & SECTIONS
   ========================================================================== */
.ui-page--dashboard .panel {
  margin-top: 16px;
  padding: 12px 14px;
  animation: floatUp 0.6s ease forwards;
}

.ui-page--dashboard .muted,
.ui-page--dashboard .brand-subtitle {
  color: #cdd7f9;
  margin: 2px 0 0;
}

.ui-page--dashboard .hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  padding: 12px 14px;
  position: relative;
  overflow: hidden;
  background: transparent;
}

.ui-page--dashboard .hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: transparent;
  opacity: 0;
  pointer-events: none;
}

.ui-page--dashboard .hero-copy {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.ui-page--dashboard .eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 9px;
  color: #ffba85;
  margin: 0;
}

.ui-page--dashboard .hero-value {
  font-size: 20px;
  font-weight: 600;
  letter-spacing: -0.4px;
  line-height: 1.1;
}

.ui-page--dashboard .hero-value.small {
  font-size: 15px;
}

.ui-page--dashboard .hero-metric {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.ui-page--dashboard .hero-metric .muted {
  margin: 0;
}

.ui-page--dashboard .chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.ui-page--dashboard .pill {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 3px;
  padding: 2px 6px;
  font-size: 9px;
  color: #e8f0ff;
  display: inline-flex;
  gap: 3px;
}

.ui-page--dashboard .pill.secondary {
  background: rgba(83, 113, 173, 0.35);
  border-color: rgba(125, 226, 255, 0.6);
}

.ui-page--dashboard .chart-card {
  position: relative;
  z-index: 1;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 16px;
  padding: 12px 14px;
  height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ui-page--dashboard .chart-card.tall {
  height: 220px;
}

.ui-page--dashboard .chart-card apx-chart {
  width: 100%;
}

.ui-page--dashboard .financials-panel {
  padding: 6px 8px;
}

.ui-page--dashboard .section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  margin-bottom: 8px;
  max-height: 28px;
}

.ui-page--dashboard .section-header h2 {
  margin: 0;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.ui-page--dashboard .live-dot {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #3bfbb4;
  font-weight: 600;
  font-size: 9px;
}

.ui-page--dashboard .live-dot::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #3bfbb4;
  box-shadow: 0 0 8px #3bfbb4;
}

.ui-page--dashboard .stat-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
  margin: 0;
}

/* NOTE: All stat-card visual styles defined in stats-header-legacy.scss */
/* STAT CARD CONTRACT (DASHBOARD) */
.ui-page--dashboard .stat-grid .stat-card {
  min-height: 72px;
  max-height: 88px;
  padding: 12px 14px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid rgba(255, 255, 255, 0.06);
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ui-page--dashboard .stat-grid .stat-card .muted {
  font-size: 11px;
  opacity: 0.75;
  margin: 0;
}

.ui-page--dashboard .stat-grid .stat-value {
  font-size: 20px;
  font-weight: 600;
  margin: 0;
  line-height: 1.1;
}

.ui-page--dashboard .stat-grid .delta {
  font-size: 10px;
  margin-top: 4px;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 2px 8px;
  border-radius: 4px;
  border: none;
  background: rgba(255, 255, 255, 0.04);
  opacity: 0.65;
}

.ui-page--dashboard .stat-grid .delta.positive {
  color: #38e3b0;
  background: rgba(56, 227, 176, 0.12);
}

.ui-page--dashboard .stat-grid .delta.neutral {
  color: #fbc858;
  background: rgba(251, 200, 88, 0.1);
}

.ui-page--dashboard .donut-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 0;
}

.ui-page--dashboard .donut-card {
  padding: 10px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid rgba(255, 255, 255, 0.06);
  height: 180px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ui-page--dashboard .donut-card .card-title {
  font-weight: 600;
  font-size: 10px;
}

.ui-page--dashboard .donut-shell {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ui-page--dashboard .placeholder-ring {
  width: 128px;
  height: 128px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, rgba(255, 122, 61, 0.18), rgba(72, 39, 120, 0.15));
  border: 10px solid rgba(255, 255, 255, 0.04);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  color: #f7f8ff;
}

.ui-page--dashboard .ring-value {
  font-size: 14px;
  font-weight: 700;
}

.ui-page--dashboard .ring-label {
  color: #9da5bb;
  margin-top: 2px;
  font-size: 9px;
}

.ui-page--dashboard .mini-metric {
  justify-content: center;
  align-items: flex-start;
}

.ui-page--dashboard .empty-state {
  width: 100%;
  text-align: center;
  color: #f0f4ff;
  font-size: 11px;
  padding: 10px 8px;
  border: 1px dashed rgba(255, 255, 255, 0.28);
  border-radius: 16px;
  background: rgba(31, 40, 74, 0.45);
}

.ui-page--dashboard .empty-state.subtle {
  border-style: solid;
}

.ui-page--dashboard .donut-card {
  position: relative;
  overflow: visible;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.ui-page--dashboard .donut-card .card-title {
  font-weight: 600;
  font-size: 10px;
  color: #c5d1ec;
  margin-bottom: 6px;
  align-self: flex-start;
}

.ui-page--dashboard .donut-card apx-chart {
  width: 100% !important;
  max-width: var(--ui-dash-chart-max-width, 280px);
  margin: 0 auto;
}

.ui-page--dashboard ::ng-deep .donut-card .apexcharts-legend {
  justify-content: center !important;
  padding: 4px 8px !important;
}

.ui-page--dashboard ::ng-deep .donut-card .apexcharts-legend-series {
  margin: 3px 6px !important;
}

.ui-page--dashboard ::ng-deep .donut-card .apexcharts-legend-marker {
  width: 8px !important;
  height: 8px !important;
  border-radius: 50% !important;
  margin-right: 4px !important;
}

.ui-page--dashboard ::ng-deep .donut-card .apexcharts-legend-text {
  color: #c5d1ec !important;
  font-size: 10px !important;
  font-weight: 500 !important;
}

/* ==========================================================================
   SMART AUTO-COLLAPSE ONBOARDING BAR
   ========================================================================== */
.ui-page--dashboard .onboarding-strip {
  position: relative;
  margin-bottom: 16px;
  border-radius: 20px;
  cursor: pointer;
  transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.025) 0%, rgba(255, 255, 255, 0.015) 100%);
  backdrop-filter: blur(12px) saturate(120%);
  -webkit-backdrop-filter: blur(12px) saturate(120%);
  border: 1px solid rgba(255, 255, 255, 0.04);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.03);
  outline: none;
}

.ui-page--dashboard .onboarding-strip:focus-visible {
  border-color: rgba(255, 122, 61, 0.3);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08), 0 0 0 2px rgba(255, 122, 61, 0.15);
}

.ui-page--dashboard .onboarding-strip:hover:not(.is-expanded) {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.025) 100%);
  border-color: rgba(255, 255, 255, 0.08);
}

.ui-page--dashboard .onboarding-strip.is-expanded {
  cursor: default;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.045) 0%, rgba(255, 255, 255, 0.02) 100%);
  border-color: rgba(255, 255, 255, 0.06);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.ui-page--dashboard .onboarding-collapsed {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 16px;
  min-height: 40px;
}

.ui-page--dashboard .onboarding-progress-ring {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.ui-page--dashboard .progress-svg {
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}

.ui-page--dashboard .progress-track {
  fill: none;
  stroke: rgba(255, 255, 255, 0.08);
  stroke-width: 2.5;
}

.ui-page--dashboard .progress-fill {
  fill: none;
  stroke: rgba(255, 186, 133, 0.6);
  stroke-width: 2.5;
  stroke-linecap: round;
  transition: stroke-dashoffset 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.ui-page--dashboard .onboarding-summary {
  font-size: 13px;
  font-weight: 500;
  color: rgba(238, 242, 255, 0.6);
  letter-spacing: 0.01em;
  -webkit-user-select: none;
          user-select: none;
}

.ui-page--dashboard .onboarding-expand-hint {
  margin-left: auto;
  font-size: 18px !important;
  width: 18px !important;
  height: 18px !important;
  color: rgba(255, 255, 255, 0.25);
  transition: color 0.2s ease, transform 0.2s ease;
}

.ui-page--dashboard .onboarding-strip:hover .onboarding-expand-hint {
  color: rgba(255, 255, 255, 0.45);
  transform: translateY(1px);
}

.ui-page--dashboard .onboarding-expanded {
  padding: 16px 20px 20px;
  animation: onboardingFadeIn 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes onboardingFadeIn {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.ui-page--dashboard .onboarding-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 16px;
}

.ui-page--dashboard .onboarding-title-group {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.ui-page--dashboard .onboarding-eyebrow {
  font-size: 10px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255, 186, 133, 0.55);
}

.ui-page--dashboard .onboarding-title {
  font-size: 15px;
  font-weight: 600;
  color: rgba(238, 242, 255, 0.85);
  letter-spacing: -0.01em;
}

.ui-page--dashboard .onboarding-collapse-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: none;
  background: rgba(255, 255, 255, 0.04);
  border-radius: 8px;
  color: rgba(255, 255, 255, 0.5);
  cursor: pointer;
  transition: all 0.2s ease;
  flex-shrink: 0;
}

.ui-page--dashboard .onboarding-collapse-btn:hover {
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.8);
}

.ui-page--dashboard .onboarding-collapse-btn mat-icon {
  font-size: 20px !important;
  width: 20px !important;
  height: 20px !important;
}

.ui-page--dashboard .onboarding-steps {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.ui-page--dashboard .onboarding-step {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border: none;
  background: rgba(255, 255, 255, 0.025);
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}

.ui-page--dashboard .onboarding-step:hover {
  background: rgba(255, 255, 255, 0.05);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
  transform: translateY(-1px);
}

.ui-page--dashboard .step-indicator {
  position: relative;
  width: 18px;
  height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.ui-page--dashboard .step-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15);
  transition: all 0.3s ease;
}

.ui-page--dashboard .step-check {
  position: absolute;
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
  color: rgba(180, 230, 200, 0.8);
  opacity: 0;
  transform: scale(0.5);
  animation: checkAppear 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes checkAppear {
  to {
    opacity: 1;
    transform: scale(1);
  }
}
.ui-page--dashboard .step-content {
  display: flex;
  flex-direction: column;
  gap: 1px;
  text-align: left;
}

.ui-page--dashboard .step-number {
  font-size: 9px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.35);
}

.ui-page--dashboard .step-name {
  font-size: 13px;
  font-weight: 500;
  color: rgba(238, 242, 255, 0.65);
  letter-spacing: 0.01em;
}

.ui-page--dashboard .onboarding-step.is-complete {
  background: rgba(180, 230, 200, 0.04);
  box-shadow: inset 0 0 0 1px rgba(180, 230, 200, 0.08);
}

.ui-page--dashboard .onboarding-step.is-complete .step-dot {
  opacity: 0;
}

.ui-page--dashboard .onboarding-step.is-complete .step-name {
  color: rgba(180, 230, 200, 0.75);
}

.ui-page--dashboard .onboarding-step.is-complete .step-number {
  color: rgba(180, 230, 200, 0.45);
}

.ui-page--dashboard .onboarding-step.is-active {
  background: rgba(255, 186, 133, 0.06);
  box-shadow: inset 0 0 0 1px rgba(255, 186, 133, 0.12), 0 0 12px rgba(255, 122, 61, 0.08);
}

.ui-page--dashboard .onboarding-step.is-active .step-dot {
  background: rgba(255, 186, 133, 0.7);
  box-shadow: 0 0 8px rgba(255, 122, 61, 0.3);
}

.ui-page--dashboard .onboarding-step.is-active .step-name {
  color: rgba(255, 220, 190, 0.9);
}

.ui-page--dashboard .onboarding-step.is-active .step-number {
  color: rgba(255, 186, 133, 0.6);
}

.ui-page--dashboard .onboarding-step:not(.is-complete):not(.is-active) {
  opacity: 0.7;
}

.ui-page--dashboard .onboarding-step:not(.is-complete):not(.is-active):hover {
  opacity: 1;
}

.ui-page--dashboard .card-title {
  color: #eef2ff;
}

.ui-page--dashboard .card-subtitle {
  color: #9da5bb;
  font-size: 13px;
}

/* ==========================================================================
   MATERIAL FORM FIELD OVERRIDES (COMPACT CONTROLS)
   ========================================================================== */
.ui-page--dashboard ::ng-deep .compact-control .mat-mdc-text-field-wrapper {
  padding: 0 8px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.08);
  height: 44px;
}

.ui-page--dashboard ::ng-deep .compact-control .mdc-text-field--filled:not(.mdc-text-field--disabled) {
  background: transparent;
}

.ui-page--dashboard ::ng-deep .compact-control .mat-mdc-form-field-infix {
  padding: 6px 0;
}

.ui-page--dashboard ::ng-deep .compact-control .mat-mdc-select-value-text,
.ui-page--dashboard ::ng-deep .compact-control .mat-mdc-select-arrow {
  color: #f7f8ff;
  font-weight: 600;
}

.ui-page--dashboard ::ng-deep .compact-control .mat-mdc-select-arrow {
  opacity: 0.8;
}

.ui-page--dashboard ::ng-deep .mat-mdc-option {
  color: #f7f8ff;
}

.ui-page--dashboard ::ng-deep .mat-mdc-select-panel {
  background: linear-gradient(145deg, rgba(60, 50, 45, 0.25), rgba(40, 35, 30, 0.35)) !important;
  backdrop-filter: blur(60px) saturate(100%) brightness(1) !important;
  -webkit-backdrop-filter: blur(60px) saturate(100%) brightness(1) !important;
  color: #f7f8ff;
}

.ui-page--dashboard ::ng-deep .apexcharts-legend-text {
  color: #dfe7ff !important;
}

.ui-page--dashboard ::ng-deep .apexcharts-xaxis text,
.ui-page--dashboard ::ng-deep .apexcharts-yaxis text {
  fill: #9da5bb !important;
}

/* ==========================================================================
   SKELETON LOADERS
   ========================================================================== */
.ui-page--dashboard .skeleton-card {
  position: relative;
  overflow: hidden;
}

.ui-page--dashboard .skeleton-card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(120deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.04));
  background-size: 200% 100%;
  animation: shimmer 1.4s linear infinite;
  z-index: 0;
  pointer-events: none;
}

.ui-page--dashboard .skeleton-card::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.18), transparent 65%);
  opacity: 0.4;
  z-index: 0;
  pointer-events: none;
}

.ui-page--dashboard .skeleton-card > * {
  position: relative;
  z-index: 1;
}

.ui-page--dashboard .skeleton-card-lite {
  background: rgba(255, 255, 255, 0.02);
  border-radius: 18px;
  padding: 14px;
}

.ui-page--dashboard .skeleton-shell .dashboard-top {
  min-height: 96px;
  background: transparent;
  padding: 0 4px;
}

.ui-page--dashboard .skeleton-hero {
  min-height: 320px;
}

.ui-page--dashboard .skeleton-shell-panel {
  position: relative;
  min-height: 260px;
}

.ui-page--dashboard .skeleton-header {
  min-height: 48px;
  border-radius: 16px;
  margin-bottom: 18px;
}

.ui-page--dashboard .skeleton-shell .stat-grid {
  gap: 16px;
}

.ui-page--dashboard .skeleton-shell .stat-card {
  min-height: 150px;
  border-radius: 18px;
}

.ui-page--dashboard .chart-card.skeleton-card {
  min-height: 240px;
  border-radius: 22px;
}

.ui-page--dashboard .skeleton-shell .donut-card {
  min-height: 340px;
}

.ui-page--dashboard .skeleton-line,
.ui-page--dashboard .skeleton-pill,
.ui-page--dashboard .skeleton-chip,
.ui-page--dashboard .skeleton-legend span,
.ui-page--dashboard .skeleton-chart-line,
.ui-page--dashboard .skeleton-chart-bar {
  display: inline-block;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.05));
  animation: shimmer 1.4s ease-in-out infinite;
}

.ui-page--dashboard .skeleton-line {
  height: 14px;
  width: 60%;
  margin: 6px 0;
}

.ui-page--dashboard .skeleton-line.short {
  width: 40%;
}

.ui-page--dashboard .skeleton-line.medium {
  width: 70%;
}

.ui-page--dashboard .skeleton-line.large {
  width: 80%;
  height: 18px;
}

.ui-page--dashboard .skeleton-line.tiny {
  width: 30%;
  height: 10px;
}

.ui-page--dashboard .skeleton-line.xl {
  width: 90%;
  height: 32px;
  border-radius: 18px;
}

.ui-page--dashboard .skeleton-line.micro {
  width: 35%;
  height: 8px;
  opacity: 0.7;
}

.ui-page--dashboard .skeleton-pill,
.ui-page--dashboard .skeleton-chip {
  height: 16px;
  width: 120px;
  margin: 4px 0;
}

.ui-page--dashboard .skeleton-pill.small {
  width: 90px;
  height: 14px;
}

.ui-page--dashboard .skeleton-pill.tiny {
  width: 60px;
  height: 10px;
}

.ui-page--dashboard .skeleton-chip {
  width: 100px;
  height: 18px;
}

.ui-page--dashboard .skeleton-hero-copy {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.ui-page--dashboard .skeleton-chart {
  width: 100%;
  height: 180px;
  display: flex;
  align-items: flex-end;
  gap: 10px;
  padding: 18px 12px 6px;
}

.ui-page--dashboard .skeleton-chart-line,
.ui-page--dashboard .skeleton-chart-bar {
  flex: 1;
  height: 40%;
}

.ui-page--dashboard .skeleton-chart-line:nth-child(odd) {
  height: 60%;
}

.ui-page--dashboard .skeleton-chart.tall .skeleton-chart-bar {
  height: 80%;
  border-radius: 12px;
}

.ui-page--dashboard .skeleton-donut {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  border: 10px solid rgba(255, 255, 255, 0.05);
  margin: 0 auto;
  position: relative;
}

.ui-page--dashboard .skeleton-donut::after {
  content: "";
  position: absolute;
  inset: 16px;
  border-radius: 50%;
  border: 6px solid rgba(255, 255, 255, 0.08);
}

.ui-page--dashboard .skeleton-donut.large {
  width: 150px;
  height: 150px;
}

.ui-page--dashboard .skeleton-legend {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
}

@keyframes shimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
@keyframes glowPulse {
  0%, 100% {
    transform: scale(1);
    opacity: 0.45;
  }
  50% {
    transform: scale(1.08);
    opacity: 0.65;
  }
}
@keyframes floatUp {
  0% {
    opacity: 0;
    transform: translateY(10px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
.ui-page--dashboard .skeleton-loading {
  position: relative;
}

.ui-page--dashboard .skeleton-stat-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 120px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 14px;
  padding: 16px;
}

.ui-page--dashboard .skeleton-donut-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 20px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 18px;
  min-height: 300px;
}

.ui-page--dashboard .loading-indicator {
  color: #9da5bb;
  font-size: 12px;
  font-weight: 500;
  animation: pulse 1.5s ease-in-out infinite;
}

@keyframes pulse {
  0%, 100% {
    opacity: 0.5;
  }
  50% {
    opacity: 1;
  }
}
/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 900px) {
  .ui-page--dashboard .dashboard-header {
    flex-direction: column;
    align-items: flex-start;
  }
  .ui-page--dashboard .hero {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 640px) {
  .ui-page--dashboard .onboarding-expanded {
    padding: 14px 16px 16px;
  }
  .ui-page--dashboard .onboarding-steps {
    gap: 8px;
  }
  .ui-page--dashboard .onboarding-step {
    padding: 8px 12px;
  }
  .ui-page--dashboard .step-name {
    font-size: 12px;
  }
}
/* ==========================================================================
   CUSTOMER SUCCESS PAGE - CUSTOMER OVERVIEW COMPONENT
   ==========================================================================
   Pixel-perfect restoration from customer-overview.component.css backup.
   Apply: .ui-page--dashboard wrapper with .customer-overview-page shell.
   ========================================================================== */
/* --------------------------------------------------------------------------
   CUSTOMER SUCCESS - PAGE SHELL & AMBIENT LAYERS
   -------------------------------------------------------------------------- */
.ui-page--dashboard .customer-overview-page {
  position: relative;
  padding: 28px 24px 64px;
  min-height: 100vh;
  overflow: visible;
  background: transparent;
}

.ui-page--dashboard .ambient {
  position: fixed;
  border-radius: 50%;
  filter: blur(160px);
  opacity: 0.65;
  z-index: 0;
  animation: float 14s ease-in-out infinite;
}

.ui-page--dashboard .ambient-a {
  width: 540px;
  height: 540px;
  background: rgba(255, 176, 55, 0.24);
  top: -120px;
  left: -160px;
}

.ui-page--dashboard .ambient-b {
  width: 420px;
  height: 420px;
  background: rgba(122, 91, 255, 0.22);
  bottom: -160px;
  right: -140px;
  animation-delay: 1.6s;
}

.ui-page--dashboard .ambient-c {
  width: 360px;
  height: 360px;
  background: rgba(0, 174, 255, 0.18);
  top: 28%;
  right: 12%;
  animation-delay: 3.2s;
}

@keyframes float {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-12px);
  }
  100% {
    transform: translateY(0);
  }
}
/* --------------------------------------------------------------------------
   CUSTOMER SUCCESS - TOP BAR HEADER
   -------------------------------------------------------------------------- */
.ui-page--dashboard .top-bar.glass {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 20px;
  margin-bottom: 22px;
  gap: 20px;
}

.ui-page--dashboard .brand {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.01em;
}

.ui-page--dashboard .filter-chips {
  display: flex;
  gap: 12px;
  align-items: center;
}

/* --------------------------------------------------------------------------
   CUSTOMER SUCCESS - PANEL SYSTEM
   -------------------------------------------------------------------------- */
.ui-page--dashboard .customer-overview-page .panel {
  padding: 18px 18px 16px;
  margin-bottom: 18px;
}

.ui-page--dashboard .customer-overview-page .panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.ui-page--dashboard .customer-overview-page .panel-header h2 {
  margin: 0;
  font-size: 20px;
  letter-spacing: -0.01em;
}

.ui-page--dashboard .customer-overview-page .filter-inline {
  display: flex;
  gap: 10px;
}

.ui-page--dashboard .customer-overview-page .filter-inline.hero-inline {
  gap: 12px;
  align-items: center;
}

.ui-page--dashboard .customer-overview-page .filter-inline.hero-inline .pill-filter {
  min-width: auto;
  flex: 0 0 auto;
}

/* --------------------------------------------------------------------------
   CUSTOMER SUCCESS - SATISFACTION SECTION
   -------------------------------------------------------------------------- */
.ui-page--dashboard .satisfaction-layout {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 12px;
}

.ui-page--dashboard .satisfaction-chart {
  padding: 12px;
  position: relative;
  padding-top: 120px;
}

.ui-page--dashboard .satisfaction-chart .metrics-inline {
  position: absolute;
  top: 12px;
  left: 12px;
  right: 12px;
  z-index: 2;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.1));
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.ui-page--dashboard .satisfaction-buttons .metric,
.ui-page--dashboard .spending-buttons .metric {
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 10px;
  position: relative;
  padding-right: 18px;
}

.ui-page--dashboard .satisfaction-buttons .metric-dot,
.ui-page--dashboard .spending-buttons .metric-dot,
.ui-page--dashboard .retention-chart .metric .metric-dot {
  position: absolute;
  top: 8px;
  right: 10px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  display: inline-flex;
}

.ui-page--dashboard .retention-chart .metric {
  position: relative;
  padding-right: 18px;
}

.ui-page--dashboard .satisfaction-buttons .metric.disabled,
.ui-page--dashboard .spending-buttons .metric.disabled {
  opacity: 0.4;
}

.ui-page--dashboard .nps-card,
.ui-page--dashboard .pain-card {
  padding: 16px;
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 14px;
  align-items: center;
}

.ui-page--dashboard .pain-card {
  grid-template-columns: 1fr;
}

.ui-page--dashboard .card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.ui-page--dashboard .card-header h4 {
  margin: 0;
  font-size: 16px;
}

/* --------------------------------------------------------------------------
   CUSTOMER SUCCESS - NPS GAUGE
   -------------------------------------------------------------------------- */
.ui-page--dashboard .nps-ring {
  display: grid;
  place-items: center;
}

.ui-page--dashboard .nps-gauge {
  width: 160px;
  height: 160px;
  border-radius: 50%;
  position: relative;
  display: grid;
  place-items: center;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
}

.ui-page--dashboard .nps-core {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02));
  display: grid;
  place-items: center;
  text-align: center;
}

.ui-page--dashboard .nps-label {
  font-size: 13px;
  color: #9bb1d1;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.ui-page--dashboard .nps-value {
  font-size: 36px;
  font-weight: 700;
}

.ui-page--dashboard .nps-stats {
  display: grid;
  gap: 6px;
}

.ui-page--dashboard .stat-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.ui-page--dashboard .stat-label {
  font-size: 13px;
  color: #9bb1d1;
}

.ui-page--dashboard .stat-number {
  font-weight: 700;
}

.ui-page--dashboard .stat-number.accent,
.ui-page--dashboard .stat-label.accent {
  color: #ff6b6b;
}

/* --------------------------------------------------------------------------
   CUSTOMER SUCCESS - SUPPORT SECTION
   -------------------------------------------------------------------------- */
.ui-page--dashboard .support-panel {
  display: grid;
  gap: 12px;
}

.ui-page--dashboard .support-top {
  display: grid;
  gap: 12px;
}

.ui-page--dashboard .support-inline-filters {
  display: flex;
  gap: 12px;
  align-items: center;
}

.ui-page--dashboard .support-cards {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 12px;
}

.ui-page--dashboard .gradient-card {
  background: linear-gradient(135deg, rgba(255, 123, 79, 0.22), rgba(123, 91, 255, 0.18));
}

.ui-page--dashboard .csat-hero {
  padding: 16px;
}

.ui-page--dashboard .csat-hero-content {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 16px;
  align-items: center;
}

.ui-page--dashboard .csat-donut {
  position: relative;
  width: 200px;
  height: 200px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  z-index: 0;
}

.ui-page--dashboard .csat-donut::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: conic-gradient(#ffb037 180deg, #ff7f45 260deg, rgba(255, 255, 255, 0.08) 360deg);
  mask: radial-gradient(transparent 69px, black 70px);
  z-index: -1;
}

.ui-page--dashboard .csat-center {
  width: 140px;
  height: 140px;
  border-radius: 50%;
  background: transparent;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 4px;
}

.ui-page--dashboard .csat-trend {
  background: rgba(0, 0, 0, 0.25);
  border-radius: 12px;
  padding: 10px;
}

.ui-page--dashboard .csat-legend {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
  color: #f2f5ff;
  font-size: 12px;
  margin-top: 6px;
}

.ui-page--dashboard .legend-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  display: inline-block;
}

.ui-page--dashboard .legend-dot.happy {
  background: #37d9a1;
}

.ui-page--dashboard .legend-dot.neutral {
  background: #ffc14d;
}

.ui-page--dashboard .legend-dot.unhappy {
  background: #ff625d;
}

.ui-page--dashboard .legend-dot.unresponsive {
  background: #f2f5ff;
}

.ui-page--dashboard .ticket-card {
  padding: 14px;
}

.ui-page--dashboard .ticket-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.ui-page--dashboard .ticket-title {
  font-weight: 700;
}

/* --------------------------------------------------------------------------
   CUSTOMER SUCCESS - SUPPORT BOTTOM GRID
   -------------------------------------------------------------------------- */
.ui-page--dashboard .support-bottom-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 12px;
  align-items: stretch;
}

.ui-page--dashboard .support-metrics {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

.ui-page--dashboard .metric-block {
  background: rgba(255, 255, 255, 0.03);
  border-radius: 12px;
  padding: 12px;
  border: 1px solid rgba(255, 255, 255, 0.05);
  cursor: pointer;
  position: relative;
}

.ui-page--dashboard .metric-block.disabled {
  opacity: 0.4;
  cursor: pointer;
}

.ui-page--dashboard .metric-block:hover {
  border-color: rgba(125, 226, 255, 0.3);
}

.ui-page--dashboard .metric-big {
  font-size: 24px;
  font-weight: 700;
}

.ui-page--dashboard .metric-sub {
  color: #9bb1d1;
  font-size: 13px;
}

.ui-page--dashboard .customer-overview-page .metric-dot {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
}

.ui-page--dashboard .support-bottom-card,
.ui-page--dashboard .support-exec-card {
  padding: 12px;
  min-height: 320px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.ui-page--dashboard .support-bottom-card apx-chart {
  flex: 1;
}

.ui-page--dashboard .support-exec-card .exec-list {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ui-page--dashboard .exec-head {
  display: grid;
  grid-template-columns: 1.5fr 0.7fr 0.7fr;
  align-items: center;
  margin-bottom: 8px;
}

.ui-page--dashboard .exec-title {
  font-weight: 700;
}

.ui-page--dashboard .exec-meta {
  color: #9bb1d1;
  font-size: 12px;
  text-align: right;
}

.ui-page--dashboard .exec-list {
  display: grid;
  gap: 8px;
}

.ui-page--dashboard .exec-row {
  display: grid;
  grid-template-columns: 1.5fr 1fr auto auto;
  align-items: center;
  gap: 8px;
}

.ui-page--dashboard .exec-name {
  font-weight: 600;
}

.ui-page--dashboard .exec-bar {
  height: 6px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  overflow: hidden;
}

.ui-page--dashboard .exec-fill {
  height: 100%;
  background: linear-gradient(90deg, #ffb037, #ff7f45);
}

/* --------------------------------------------------------------------------
   CUSTOMER SUCCESS - SPENDING SECTION
   -------------------------------------------------------------------------- */
.ui-page--dashboard .spending-panel {
  padding: 16px;
  margin-top: 18px;
}

.ui-page--dashboard .spending-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.ui-page--dashboard .spending-filter {
  min-width: 220px;
}

.ui-page--dashboard .spending-chart {
  padding: 12px;
  position: relative;
  padding-top: 120px;
}

.ui-page--dashboard .spending-chart .metrics-inline {
  position: absolute;
  top: 12px;
  left: 12px;
  right: 12px;
  z-index: 2;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.1));
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

/* --------------------------------------------------------------------------
   CUSTOMER SUCCESS - RETENTION SECTION
   -------------------------------------------------------------------------- */
.ui-page--dashboard .retention-panel .retention-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 12px;
}

.ui-page--dashboard .retention-chart {
  padding: 12px;
}

.ui-page--dashboard .metrics-inline {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 8px;
  margin-bottom: 8px;
}

.ui-page--dashboard .customer-overview-page .metric {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 12px;
  padding: 10px;
  cursor: pointer;
}

.ui-page--dashboard .customer-overview-page .metric:hover {
  border-color: rgba(125, 226, 255, 0.3);
}

.ui-page--dashboard .customer-overview-page .metric.disabled {
  opacity: 0.4;
}

.ui-page--dashboard .metric-value {
  font-weight: 700;
  font-size: 18px;
}

.ui-page--dashboard .metric-label {
  color: #9bb1d1;
  font-size: 12px;
}

.ui-page--dashboard .top-customers {
  padding: 12px;
}

.ui-page--dashboard .list-stack {
  display: grid;
  gap: 8px;
}

.ui-page--dashboard .list-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.ui-page--dashboard .list-title {
  font-weight: 600;
}

.ui-page--dashboard .empty-state {
  padding: 10px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.04);
  color: #9bb1d1;
  text-align: center;
}

/* --------------------------------------------------------------------------
   CUSTOMER SUCCESS - SEGMENTATION SECTION
   -------------------------------------------------------------------------- */
.ui-page--dashboard .segmentation-header {
  align-items: flex-start;
  gap: 16px;
  flex-wrap: wrap;
}

.ui-page--dashboard .seg-heading {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ui-page--dashboard .segmentation-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  flex-wrap: wrap;
  margin-left: auto;
}

.ui-page--dashboard .segmentation-filters {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.ui-page--dashboard .seg-filter {
  min-width: 0;
}

.ui-page--dashboard .seg-filter .pill-trigger {
  width: 100%;
}

.ui-page--dashboard .segmentation-toggle {
  display: inline-flex;
  padding: 5px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.02));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 8px 22px rgba(0, 0, 0, 0.35);
  gap: 6px;
}

.ui-page--dashboard .seg-toggle-btn {
  border: none;
  background: transparent;
  color: #d2deff;
  font-weight: 600;
  font-size: 12px;
  padding: 7px 16px;
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
}

.ui-page--dashboard .seg-toggle-btn.active {
  background: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.35), rgba(125, 226, 255, 0.35));
  color: #09101f;
  box-shadow: inset 0 1px 4px rgba(255, 255, 255, 0.25), 0 6px 12px rgba(125, 226, 255, 0.35);
}

.ui-page--dashboard .seg-toggle-btn:not(.active):hover {
  color: #f4f8ff;
}

.ui-page--dashboard .segmentation-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(340px, 1fr));
  gap: 24px;
}

.ui-page--dashboard .vehicle-grid {
  grid-template-columns: repeat(2, minmax(340px, 1fr));
}

.ui-page--dashboard .seg-card {
  padding: 20px;
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 20px;
  align-items: center;
  min-height: 280px;
}

.ui-page--dashboard .seg-card.large {
  grid-template-columns: 70px 1fr;
}

.ui-page--dashboard .seg-circle {
  width: 200px;
  height: 200px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.28);
  position: relative;
  z-index: 0;
}

.ui-page--dashboard .seg-circle::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: conic-gradient(var(--seg-gradient));
  mask: radial-gradient(transparent 75px, black 76px);
  z-index: -1;
}

.ui-page--dashboard .seg-circle.small {
  width: 110px;
  height: 110px;
}

.ui-page--dashboard .seg-circle.small::before {
  mask: radial-gradient(transparent 40px, black 41px);
}

.ui-page--dashboard .seg-core {
  width: 150px;
  height: 150px;
  border-radius: 50%;
  background: transparent;
  display: grid;
  place-items: center;
  align-content: center;
  text-align: center;
  gap: 4px;
}

.ui-page--dashboard .seg-core-value {
  font-weight: 700;
  font-size: 32px;
  line-height: 1;
}

.ui-page--dashboard .seg-core-label {
  font-size: 11px;
  color: #9bb1d1;
  line-height: 1;
}

.ui-page--dashboard .seg-body {
  display: grid;
  gap: 4px;
}

.ui-page--dashboard .seg-title {
  font-weight: 600;
}

.ui-page--dashboard .muted {
  color: #9bb1d1;
  margin: 0;
}

.ui-page--dashboard .muted.small {
  font-size: 12px;
}

.ui-page--dashboard .seg-lines {
  list-style: none;
  padding: 0;
  margin: 4px 0 0 0;
  display: grid;
  gap: 2px;
  color: #c5d1ec;
  font-size: 12px;
}

.ui-page--dashboard .seg-lines li {
  display: flex;
  align-items: center;
  gap: 6px;
}

.ui-page--dashboard .seg-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
}

/* --------------------------------------------------------------------------
   CUSTOMER SUCCESS - PANELS GRID & CHARTS
   -------------------------------------------------------------------------- */
.ui-page--dashboard .panel-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 12px;
}

.ui-page--dashboard .chart-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 10px;
}

.ui-page--dashboard .customer-overview-page .chart-card {
  padding: 10px;
}

.ui-page--dashboard .chart-title {
  margin: 0 0 4px;
  font-weight: 600;
  color: #c5d1ec;
}

/* --------------------------------------------------------------------------
   CUSTOMER SUCCESS - PILLS & UI ELEMENTS
   -------------------------------------------------------------------------- */
.ui-page--dashboard .customer-overview-page .pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  color: #c9d5f1;
  font-weight: 600;
  font-size: 12px;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.ui-page--dashboard .customer-overview-page .pill.success {
  color: #4fd1c5;
  background: rgba(79, 209, 197, 0.14);
  border-color: rgba(79, 209, 197, 0.26);
}

.ui-page--dashboard .customer-overview-page .pill.soft {
  color: #c9d5f1;
}

.ui-page--dashboard .customer-overview-page .pill.warning {
  color: #ffcf6f;
  background: rgba(255, 207, 111, 0.12);
  border-color: rgba(255, 207, 111, 0.22);
}

.ui-page--dashboard .customer-overview-page .pill.neutral {
  color: #b6c3e0;
  background: rgba(182, 195, 224, 0.12);
  border-color: rgba(182, 195, 224, 0.18);
}

.ui-page--dashboard .legend-inline {
  display: flex;
  gap: 10px;
  align-items: center;
  color: #b6c3e0;
  font-size: 12px;
  flex-wrap: wrap;
}

.ui-page--dashboard .dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  display: inline-block;
}

.ui-page--dashboard .dot-gold {
  background: #ffb037;
}

.ui-page--dashboard .dot-amber {
  background: #ff7f45;
}

.ui-page--dashboard .dot-red {
  background: #ff6b6b;
}

.ui-page--dashboard .dot-blue {
  background: #7de2ff;
}

.ui-page--dashboard .dot-violet {
  background: #7a5bff;
}

/* --------------------------------------------------------------------------
   CUSTOMER SUCCESS - SKELETON LOADERS
   -------------------------------------------------------------------------- */
.ui-page--dashboard .skeleton-card-lite {
  position: relative;
  border-radius: 18px;
  padding: 12px;
  background: rgba(255, 255, 255, 0.02);
}

.ui-page--dashboard .skeleton-line,
.ui-page--dashboard .skeleton-pill,
.ui-page--dashboard .skeleton-chip,
.ui-page--dashboard .skeleton-legend span,
.ui-page--dashboard .skeleton-chart-line,
.ui-page--dashboard .skeleton-chart-bar {
  display: inline-block;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.05));
  background-size: 200% 100%;
  animation: shimmer 1.4s ease-in-out infinite;
}

.ui-page--dashboard .skeleton-line {
  height: 14px;
  width: 60%;
  margin: 6px 0;
}

.ui-page--dashboard .skeleton-line.short {
  width: 45%;
}

.ui-page--dashboard .skeleton-line.medium {
  width: 70%;
}

.ui-page--dashboard .skeleton-line.tiny {
  width: 30%;
  height: 10px;
}

.ui-page--dashboard .skeleton-line.wide {
  width: 90%;
  height: 16px;
}

.ui-page--dashboard .skeleton-line.micro {
  width: 35%;
  height: 8px;
  opacity: 0.7;
}

.ui-page--dashboard .skeleton-pill {
  height: 16px;
  width: 120px;
}

.ui-page--dashboard .skeleton-pill.small {
  width: 90px;
  height: 14px;
}

.ui-page--dashboard .skeleton-pill.tiny {
  width: 60px;
  height: 10px;
}

.ui-page--dashboard .skeleton-chip {
  width: 110px;
  height: 20px;
}

.ui-page--dashboard .skeleton-metrics-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 12px;
}

.ui-page--dashboard .skeleton-chart {
  width: 100%;
  height: 180px;
  display: flex;
  align-items: flex-end;
  gap: 10px;
  padding: 12px;
}

.ui-page--dashboard .skeleton-chart.slim {
  height: 120px;
}

.ui-page--dashboard .skeleton-chart.tall .skeleton-chart-bar {
  height: 90%;
}

.ui-page--dashboard .skeleton-chart-line,
.ui-page--dashboard .skeleton-chart-bar {
  flex: 1;
  height: 50%;
}

.ui-page--dashboard .skeleton-chart-line:nth-child(odd) {
  height: 70%;
}

.ui-page--dashboard .skeleton-chart-bar {
  border-radius: 10px;
}

.ui-page--dashboard .skeleton-donut {
  width: 110px;
  height: 110px;
  border-radius: 50%;
  border: 10px solid rgba(255, 255, 255, 0.05);
  margin: 12px auto;
  position: relative;
}

.ui-page--dashboard .skeleton-donut.small {
  width: 90px;
  height: 90px;
}

.ui-page--dashboard .skeleton-donut.large {
  width: 160px;
  height: 160px;
}

.ui-page--dashboard .skeleton-donut::after {
  content: "";
  position: absolute;
  inset: 14px;
  border-radius: 50%;
  border: 6px solid rgba(255, 255, 255, 0.08);
}

.ui-page--dashboard .skeleton-legend {
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: flex-start;
  margin-top: 6px;
}

.ui-page--dashboard .skeleton-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 12px;
}

.ui-page--dashboard .panel-header.inner {
  padding: 0;
  margin-bottom: 12px;
}

@keyframes shimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
/* --------------------------------------------------------------------------
   CUSTOMER SUCCESS - APEXCHARTS OVERRIDES
   -------------------------------------------------------------------------- */
.ui-page--dashboard .customer-overview-page ::ng-deep .apexcharts-tooltip {
  background: rgba(22, 22, 28, 0.4) !important;
  backdrop-filter: blur(60px) saturate(200%) brightness(1.1) !important;
  -webkit-backdrop-filter: blur(60px) saturate(200%) brightness(1.1) !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  border-radius: 12px !important;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.15) !important;
  padding: 0 !important;
  overflow: hidden !important;
  max-width: 200px !important;
}

.ui-page--dashboard .customer-overview-page ::ng-deep .apexcharts-tooltip.apexcharts-theme-light {
  background: rgba(22, 22, 28, 0.4) !important;
  backdrop-filter: blur(60px) saturate(200%) brightness(1.1) !important;
  -webkit-backdrop-filter: blur(60px) saturate(200%) brightness(1.1) !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  color: #ffffff !important;
}

.ui-page--dashboard .customer-overview-page ::ng-deep .apexcharts-tooltip .apexcharts-tooltip-title {
  background: rgba(255, 255, 255, 0.06) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
  color: #ffffff !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  padding: 8px 12px !important;
  margin: 0 !important;
  font-family: var(--ui-font-primary) !important;
}

.ui-page--dashboard .customer-overview-page ::ng-deep .apexcharts-tooltip .apexcharts-tooltip-series-group {
  padding: 4px 12px !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  background: transparent !important;
  line-height: 1 !important;
}

.ui-page--dashboard .customer-overview-page ::ng-deep .apexcharts-tooltip .apexcharts-tooltip-marker {
  width: 6px !important;
  height: 6px !important;
  border-radius: 50% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  box-shadow: none !important;
  flex-shrink: 0 !important;
}

.ui-page--dashboard .customer-overview-page ::ng-deep .apexcharts-tooltip .apexcharts-tooltip-text {
  display: flex !important;
  align-items: center !important;
  gap: 0 !important;
  line-height: 1 !important;
  flex: 1 !important;
}

.ui-page--dashboard .customer-overview-page ::ng-deep .apexcharts-tooltip .apexcharts-tooltip-text-y-label {
  color: rgba(255, 255, 255, 0.8) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.ui-page--dashboard .customer-overview-page ::ng-deep .apexcharts-tooltip .apexcharts-tooltip-text-y-value {
  color: rgba(255, 255, 255, 0.95) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.ui-page--dashboard .customer-overview-page ::ng-deep .apexcharts-tooltip .apexcharts-tooltip-y-group {
  display: inline !important;
  padding: 0 !important;
}

.ui-page--dashboard .customer-overview-page ::ng-deep .apexcharts-tooltip .apexcharts-tooltip-series-group.apexcharts-inactive {
  display: none !important;
}

/* --------------------------------------------------------------------------
   CUSTOMER SUCCESS - RESPONSIVE BREAKPOINTS
   -------------------------------------------------------------------------- */
@media (max-width: 1100px) {
  .ui-page--dashboard .top-bar {
    grid-template-columns: 1fr;
  }
  .ui-page--dashboard .satisfaction-layout,
  .ui-page--dashboard .support-panel .support-grid,
  .ui-page--dashboard .support-bottom,
  .ui-page--dashboard .support-bottom-grid,
  .ui-page--dashboard .support-cards,
  .ui-page--dashboard .csat-hero-content,
  .ui-page--dashboard .retention-panel .retention-grid {
    grid-template-columns: 1fr;
  }
  .ui-page--dashboard .seg-card {
    grid-template-columns: 1fr;
  }
  .ui-page--dashboard .segmentation-grid,
  .ui-page--dashboard .vehicle-grid {
    grid-template-columns: 1fr;
  }
  .ui-page--dashboard .panel-grid {
    grid-template-columns: 1fr;
  }
}
/* ==========================================================================
   UI PAGE VARIANT - GOALS
   ==========================================================================
   Goals domain contract.
   Covers: Dashboard, All Goals, My Goals, Achievements, Goal Detail panel.
   ========================================================================== */
/* ==========================================================================
   PAGE ROOT
   ========================================================================== */
.ui-page--goals {
  padding: 0;
  color: var(--ui-text-primary);
}

.ui-page--goals:has(> .fd-shell),
.ui-page--goals:has(> .glass-page-shell) {
  padding: 0;
}

.ui-page--goals .fd-shell,
.ui-page--goals .glass-page-shell {
  max-width: 1440px;
  margin: 0 auto;
}

.ui-page--goals .fd-glow,
.ui-page--goals .glass-page-glow {
  opacity: 0.2;
}

.ui-page--goals .muted {
  color: var(--ui-text-muted);
}

.ui-page--goals .mini {
  font-size: var(--ui-text-sm);
}

/* ==========================================================================
   HEADER CONTRACT
   ========================================================================== */
.ui-page--goals .fd-dashboard-top,
.ui-page--goals .glass-page-header {
  margin-bottom: var(--ui-space-4);
}

.ui-page--goals .fd-dashboard-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: var(--ui-space-5);
  padding: var(--ui-space-5);
}

.ui-page--goals .fd-dashboard-brand .fd-eyebrow,
.ui-page--goals .glass-page-header .eyebrow {
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: var(--ui-text-sm);
  color: var(--ui-brand-light);
}

.ui-page--goals .fd-dashboard-brand .fd-brand-title {
  margin: var(--ui-space-2) 0 var(--ui-space-1);
  font-size: clamp(1.8rem, 2.3vw, 2.6rem);
  font-weight: var(--ui-font-semibold);
  letter-spacing: -0.02em;
  color: var(--ui-text-primary);
}

.ui-page--goals .fd-dashboard-brand .fd-brand-subtitle {
  margin: 0;
  font-size: var(--ui-text-md);
  color: var(--ui-text-muted);
}

.ui-page--goals .glass-page-header h1 {
  margin: var(--ui-space-2) 0 var(--ui-space-1);
  font-size: clamp(1.7rem, 2.2vw, 2.4rem);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.ui-page--goals .glass-page-header .muted {
  margin: 0;
  max-width: 900px;
}

.ui-page--goals .header-actions {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  flex-wrap: wrap;
}

/* ==========================================================================
   SHARED CARD METRICS
   ========================================================================== */
.ui-page--goals .summary-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--ui-space-4);
}

.ui-page--goals .summary-cards .summary-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 124px;
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-xl);
  border: 1px solid var(--ui-border);
  background: rgba(255, 255, 255, 0.03);
}

.ui-page--goals .summary-cards .card-label {
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.ui-page--goals .summary-cards .card-value {
  margin: var(--ui-space-2) 0 var(--ui-space-1);
  font-size: clamp(1.7rem, 2vw, 2.2rem);
  font-weight: var(--ui-font-semibold);
  line-height: 1.1;
  color: var(--ui-text-primary);
}

.ui-page--goals .summary-cards .card-count {
  margin: 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

/* ==========================================================================
   SHARED STATUS / PROGRESS
   ========================================================================== */
.ui-page--goals .status-pill {
  padding: 6px 10px;
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  line-height: 1;
  color: var(--ui-surface-base);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}

.ui-page--goals .status-pill.status-on-track {
  background: var(--ui-success);
}

.ui-page--goals .status-pill.status-at-risk {
  background: var(--ui-warning);
}

.ui-page--goals .status-pill.status-off-track {
  background: var(--ui-danger);
}

.ui-page--goals .status-pill.status-completed {
  background: var(--ui-info);
}

.ui-page--goals .status-pill.status-not-started {
  background: var(--ui-surface-3);
  color: var(--ui-text-secondary);
  border: 1px solid var(--ui-border);
}

.ui-page--goals .status-pill.ghost {
  color: var(--ui-text-secondary);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
}

.ui-page--goals .progress-bar {
  height: 10px;
  width: 100%;
  border-radius: var(--ui-radius-full);
  overflow: hidden;
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-2);
}

.ui-page--goals .progress-bar.small {
  height: 8px;
}

.ui-page--goals .progress-bar.tiny {
  height: 6px;
}

.ui-page--goals .progress-fill {
  height: 100%;
  background: var(--ui-brand-gradient);
  transition: width var(--ui-transition-spring);
}

.ui-page--goals .confidence {
  padding: 6px 10px;
  border-radius: var(--ui-radius-md);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  text-align: center;
  cursor: help;
}

.ui-page--goals .confidence-high {
  background: var(--ui-success-bg);
  color: var(--ui-success);
}

.ui-page--goals .confidence-medium {
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
}

.ui-page--goals .confidence-low {
  background: var(--ui-danger-bg);
  color: var(--ui-danger);
}

.ui-page--goals .alignment-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.ui-page--goals .alignment-chip {
  padding: 5px 9px;
  border-radius: 14px;
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-1);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  line-height: 1.1;
}

.ui-page--goals .alignment-chip.primary {
  border-color: var(--ui-table-accent-border);
  background: var(--ui-table-accent-bg);
}

.ui-page--goals .alignment-chip.root,
.ui-page--goals .alignment-chip.none {
  color: var(--ui-text-muted);
}

.ui-page--goals .alignment-chip small {
  color: var(--ui-text-muted);
}

.ui-page--goals .visibility-chip {
  padding: 4px 8px;
  border-radius: var(--ui-radius-md);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-1);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
}

.ui-page--goals .visibility-company {
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.ui-page--goals .visibility-department {
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.ui-page--goals .visibility-self,
.ui-page--goals .visibility-private {
  color: var(--ui-text-muted);
}

/* ==========================================================================
   DASHBOARD (Goals Overview) — uses header-card + stat-card + fdash__panel
   contracts from stats-header.scss / stat-cards.scss / finance-pages.scss
   ========================================================================== */
.ui-page--goals .goals-overview-shell {
  max-width: 1400px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
}

/* Let stat-cards flex-wrap inside the header */
.ui-page--goals .goals-overview-shell .header-card__stats {
  flex: 1 1 auto;
  justify-content: flex-end;
}

.ui-page--goals .goals-overview-shell .header-card__stats .stat-card--compact {
  min-width: 140px;
  max-width: 170px;
}

/* Chart body padding inside fdash panels */
.ui-page--goals .goals-chart-body {
  padding: var(--ui-space-3) var(--ui-space-5) var(--ui-space-4);
}

.ui-page--goals .goals-chart-body apx-chart {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 250px;
}

.ui-page--goals .goals-chart-body .apexcharts-canvas {
  margin: 0 auto;
  max-width: 100%;
}

/* Drill link inside panel headers */
.ui-page--goals .goals-drill-link {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  cursor: pointer;
  white-space: nowrap;
  transition: color var(--ui-transition-fast);
}

.ui-page--goals .fdash__panel:hover .goals-drill-link {
  color: var(--ui-text-primary);
}

/* Clickable panels with hover lift */
.ui-page--goals .fdash__panel[class] {
  cursor: pointer;
  transition: border-color var(--ui-transition-fast), background var(--ui-transition-fast);
}

.ui-page--goals .fdash__panel:hover {
  border-color: rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.03);
}

/* Subtitle inside chart body */
.ui-page--goals .fdash__chart-subtitle {
  margin: 0 0 var(--ui-space-2);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* ==========================================================================
   ALL GOALS PAGE
   ========================================================================== */
.ui-page--goals .goals-shell .glass-page-content {
  gap: var(--ui-space-5);
}

.ui-page--goals .goals-shell .glass-page-header {
  align-items: flex-start;
}

.ui-page--goals .goals-shell .glass-page-header > div:first-child {
  flex: 1 1 760px;
}

.ui-page--goals .goals-shell .filter-row {
  margin-top: var(--ui-space-4);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--ui-space-3);
}

.ui-page--goals .goals-shell .pill-filter.search input {
  width: 100%;
  height: 34px;
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-1);
  color: var(--ui-text-secondary);
  padding: 0 14px;
}

.ui-page--goals .goals-shell .pill-filter.search input:focus {
  outline: none;
  border-color: var(--ui-border-focus);
  background: var(--ui-surface-2);
}

.ui-page--goals .goals-shell .pill-filter.search input::placeholder {
  color: var(--ui-text-muted);
}

.ui-page--goals .goals-shell .view-toggle {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: 4px;
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-1);
}

.ui-page--goals .goals-shell .view-toggle .pill-trigger {
  height: 30px;
  border-radius: var(--ui-radius-full);
  border: 1px solid transparent;
  background: transparent;
  color: var(--ui-text-muted);
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
}

.ui-page--goals .goals-shell .view-toggle .pill-trigger.active {
  color: var(--ui-text-primary);
  border-color: var(--ui-border-hover);
  background: var(--ui-surface-2);
}

.ui-page--goals .goals-shell .table-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--ui-space-4);
  padding: var(--ui-space-4) var(--ui-space-4) 0;
  margin-bottom: var(--ui-space-3);
}

.ui-page--goals .goals-shell .table-head h4 {
  margin: var(--ui-space-1) 0 0;
  font-size: var(--ui-text-lg);
  color: var(--ui-text-primary);
}

.ui-page--goals .goals-shell .quick-pills {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.ui-page--goals .goals-shell .quick-pills .pill-trigger {
  height: 30px;
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-1);
  color: var(--ui-text-secondary);
  padding: 0 12px;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
}

.ui-page--goals .goals-shell .quick-pills .pill-trigger.ghost {
  color: var(--ui-text-muted);
}

.ui-page--goals .goals-shell .glass-table-wrap {
  padding: 0 var(--ui-space-4) var(--ui-space-4);
}

.ui-page--goals .goals-shell .tree-title {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.ui-page--goals .goals-shell .tree-title .connector {
  position: absolute;
  left: -10px;
  top: 8px;
  width: 8px;
  height: 1px;
  background: var(--ui-border-hover);
}

.ui-page--goals .goals-shell .rollup-label {
  color: var(--ui-brand-light);
  margin-left: 4px;
}

.ui-page--goals .goals-shell .actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

/* ==========================================================================
   MY GOALS PAGE
   ========================================================================== */
.ui-page--goals .my-goals-shell {
  max-width: 1400px;
  margin: 0 auto;
}

.ui-page--goals .my-goals-shell .my-goals-list {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.ui-page--goals .my-goals-shell .goal-card {
  padding: var(--ui-space-5);
  border-radius: var(--ui-radius-xl);
  border: 1px solid var(--ui-border);
  background: rgba(255, 255, 255, 0.02);
  cursor: pointer;
  transition: border-color var(--ui-transition-fast), background var(--ui-transition-fast);
}

.ui-page--goals .my-goals-shell .goal-card:hover {
  border-color: rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.03);
}

.ui-page--goals .my-goals-shell .goal-card header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--ui-space-4);
}

.ui-page--goals .my-goals-shell .goal-card h3 {
  margin: var(--ui-space-1) 0;
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.ui-page--goals .my-goals-shell .goal-meta {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
  justify-content: flex-end;
}

.ui-page--goals .my-goals-shell .goal-meta .mat-mdc-select {
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-1);
  border-radius: var(--ui-radius-full);
  min-height: 32px;
  padding: 0 12px;
  color: var(--ui-text-secondary);
  display: inline-flex;
  align-items: center;
}

.ui-page--goals .my-goals-shell .goal-meta .mat-mdc-select-arrow {
  color: var(--ui-brand);
}

.ui-page--goals .my-goals-shell .goal-progress {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--ui-space-3);
  margin: var(--ui-space-4) 0;
}

.ui-page--goals .my-goals-shell .goal-progress > span {
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
}

.ui-page--goals .my-goals-shell .kr-table {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.ui-page--goals .my-goals-shell .kr-row {
  padding-top: var(--ui-space-3);
  border-top: 1px solid var(--ui-border-light);
}

.ui-page--goals .my-goals-shell .kr-row:first-child {
  border-top: 0;
  padding-top: 0;
}

.ui-page--goals .my-goals-shell .objective-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--ui-space-4);
  margin-bottom: var(--ui-space-2);
}

.ui-page--goals .my-goals-shell .objective-title {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.ui-page--goals .my-goals-shell .objective-progress {
  min-width: 180px;
}

.ui-page--goals .my-goals-shell .auto-calc-label {
  display: inline-block;
  margin-top: 4px;
}

.ui-page--goals .my-goals-shell .kr-list {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.ui-page--goals .my-goals-shell .kr-item {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  gap: var(--ui-space-4);
  align-items: center;
  padding: var(--ui-space-3);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
}

.ui-page--goals .my-goals-shell .kr-updated-flash {
  animation: goalsKrFlash 0.8s ease;
}

@keyframes goalsKrFlash {
  0% {
    border-color: var(--ui-info-border);
    background: var(--ui-info-bg);
  }
  100% {
    border-color: var(--ui-border-light);
    background: var(--ui-surface-1);
  }
}
.ui-page--goals .my-goals-shell .kr-info {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

.ui-page--goals .my-goals-shell .kr-last-updated {
  color: var(--ui-text-muted);
}

.ui-page--goals .my-goals-shell .kr-actions {
  display: grid;
  grid-template-columns: auto 88px minmax(0, 1fr) auto;
  gap: var(--ui-space-2);
  align-items: center;
}

.ui-page--goals .my-goals-shell .kr-actions input {
  height: 32px;
  border-radius: var(--ui-radius-md);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-1);
  color: var(--ui-text-secondary);
  padding: 0 10px;
  width: 88px;
}

.ui-page--goals .my-goals-shell .kr-actions input:focus {
  outline: none;
  border-color: var(--ui-border-focus);
}

.ui-page--goals .my-goals-shell .goal-actions {
  margin-top: var(--ui-space-4);
  display: flex;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.ui-page--goals .my-goals-shell .focus-mode {
  padding: var(--ui-space-5);
  border-radius: var(--ui-radius-xl);
  border: 1px solid var(--ui-border);
}

.ui-page--goals .my-goals-shell .focus-mode header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--ui-space-4);
  margin-bottom: var(--ui-space-3);
}

.ui-page--goals .my-goals-shell .focus-mode h3 {
  margin: var(--ui-space-1) 0 0;
  font-size: var(--ui-text-lg);
}

.ui-page--goals .my-goals-shell .focus-mode-hint {
  color: var(--ui-text-muted);
}

.ui-page--goals .my-goals-shell .focus-mode ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.ui-page--goals .my-goals-shell .focus-mode li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-1);
}

.ui-page--goals .my-goals-shell .focus-mode li.focus-risk {
  border-color: var(--ui-danger-border);
}

.ui-page--goals .my-goals-shell .focus-mode li.focus-stale {
  border-color: var(--ui-warning-border);
}

/* ==========================================================================
   ACHIEVEMENTS PAGE
   ========================================================================== */
.ui-page--goals .awards-shell .glass-page-content {
  gap: var(--ui-space-5);
}

.ui-page--goals .awards-shell .summary-cards {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ui-page--goals .awards-shell .table-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--ui-space-4);
  padding: var(--ui-space-4) var(--ui-space-4) 0;
  margin-bottom: var(--ui-space-3);
}

.ui-page--goals .awards-shell .table-head h4 {
  margin: var(--ui-space-1) 0 0;
  font-size: var(--ui-text-lg);
  color: var(--ui-text-primary);
}

.ui-page--goals .awards-shell .glass-table-wrap {
  padding: 0 var(--ui-space-4) var(--ui-space-4);
}

/* ==========================================================================
   GOALS MODALS (Achievements + Detail Panel)
   ========================================================================== */
.ui-page--goals .modal-backdrop {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--ui-space-4);
  background: var(--ui-glass-dark);
  backdrop-filter: blur(10px) saturate(140%);
  -webkit-backdrop-filter: blur(10px) saturate(140%);
  z-index: var(--z-modal-backdrop);
}

.ui-page--goals .modal-backdrop .glass-modal-container {
  width: min(920px, 94vw);
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.ui-page--goals .recognition-form {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.ui-page--goals .recognition-form .form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-3);
}

.ui-page--goals .recognition-form .form-field {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.ui-page--goals .recognition-form .form-field label {
  margin: 0;
  font-size: var(--ui-text-sm);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ui-text-muted);
}

.ui-page--goals .recognition-form .form-field input,
.ui-page--goals .recognition-form .form-field textarea {
  width: 100%;
  border-radius: var(--ui-radius-md);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-1);
  color: var(--ui-text-secondary);
  padding: 10px 12px;
}

.ui-page--goals .recognition-form .form-field input:focus,
.ui-page--goals .recognition-form .form-field textarea:focus {
  outline: none;
  border-color: var(--ui-border-focus);
  background: var(--ui-surface-2);
}

.ui-page--goals .recognition-form .form-field input::placeholder,
.ui-page--goals .recognition-form .form-field textarea::placeholder {
  color: var(--ui-text-muted);
}

.ui-page--goals .recognition-form .form-field mat-select {
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
  min-height: 40px;
  display: flex;
  align-items: center;
  padding: 0 12px;
}

.ui-page--goals .modal-backdrop .glass-modal-footer {
  justify-content: space-between;
}

.ui-page--goals .modal-backdrop .footer-note {
  color: var(--ui-text-muted);
}

.ui-page--goals .modal-backdrop .footer-actions {
  display: flex;
  gap: var(--ui-space-2);
}

/* Goal detail */
.ui-page--goals .goal-detail-backdrop .goal-detail-modal {
  width: min(1220px, 96vw);
  max-height: 92vh;
}

.ui-page--goals .goal-detail-modal .glass-modal-header {
  align-items: flex-start;
  gap: var(--ui-space-4);
  padding: var(--ui-space-4) var(--ui-space-5);
}

.ui-page--goals .goal-detail-modal .title-block {
  flex: 1;
  min-width: 0;
}

.ui-page--goals .goal-detail-modal .title-block .eyebrow {
  margin: 0;
  color: var(--ui-brand-light);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: var(--ui-text-xs);
}

.ui-page--goals .goal-detail-modal .title-block h2 {
  margin: var(--ui-space-2) 0 var(--ui-space-1);
  font-size: var(--ui-text-2xl);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.ui-page--goals .goal-detail-modal .title-block .muted {
  margin: 0;
}

.ui-page--goals .goal-detail-modal .chip-row {
  margin-top: var(--ui-space-3);
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
}

.ui-page--goals .goal-detail-modal .alignment-row {
  margin-top: var(--ui-space-3);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ui-space-2);
}

.ui-page--goals .goal-detail-modal .alignment-label {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}

.ui-page--goals .goal-detail-modal .header-actions {
  justify-content: flex-end;
}

.ui-page--goals .goal-detail-modal .progress-stack {
  min-width: 180px;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.ui-page--goals .goal-detail-modal .progress-stack span {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}

.ui-page--goals .goal-detail-modal .progress-stack strong {
  color: var(--ui-text-primary);
  font-size: var(--ui-text-lg);
}

.ui-page--goals .goal-detail-modal .goal-detail-body {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.ui-page--goals .goal-detail-modal .goal-meta-card {
  padding: var(--ui-space-4);
}

.ui-page--goals .goal-detail-modal .meta-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--ui-space-4);
}

.ui-page--goals .goal-detail-modal .meta-row .strong {
  margin: var(--ui-space-1) 0 0;
  font-size: var(--ui-text-md);
  color: var(--ui-text-primary);
}

.ui-page--goals .goal-detail-modal .meta-row small {
  color: var(--ui-text-muted);
}

.ui-page--goals .goal-detail-modal .status-control mat-select {
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
  min-height: 36px;
  display: flex;
  align-items: center;
  padding: 0 10px;
}

.ui-page--goals .goal-detail-modal .objectives-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ui-space-3);
}

.ui-page--goals .goal-detail-modal .objective-card {
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-lg);
  border: 1px solid var(--ui-border);
}

.ui-page--goals .goal-detail-modal .objective-header h4 {
  margin: var(--ui-space-1) 0;
  font-size: var(--ui-text-md);
  color: var(--ui-text-primary);
}

.ui-page--goals .goal-detail-modal .objective-header small {
  color: var(--ui-text-muted);
}

.ui-page--goals .goal-detail-modal .objective-progress {
  margin: var(--ui-space-3) 0 var(--ui-space-2);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--ui-space-2);
}

.ui-page--goals .goal-detail-modal .kr-table {
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-xl);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-1);
}

.ui-page--goals .goal-detail-modal .kr-table .table-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--ui-space-3);
  margin-bottom: var(--ui-space-3);
}

.ui-page--goals .goal-detail-modal .kr-table .table-head h4 {
  margin: var(--ui-space-1) 0 0;
  font-size: var(--ui-text-lg);
}

.ui-page--goals .goal-detail-modal .kr-table .glass-input-table-wrap {
  max-height: 320px;
  overflow: auto;
}

.ui-page--goals .goal-detail-modal .kr-table .objective-divider td {
  background: var(--ui-surface-2);
  color: var(--ui-text-secondary);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: var(--ui-text-xs);
}

.ui-page--goals .goal-detail-modal .kr-table .current-cell input {
  width: 100%;
  max-width: 100px;
  height: 32px;
  border-radius: var(--ui-radius-md);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-1);
  color: var(--ui-text-secondary);
  padding: 0 8px;
}

.ui-page--goals .goal-detail-modal .kr-table .current-cell input:focus {
  outline: none;
  border-color: var(--ui-border-focus);
}

.ui-page--goals .goal-detail-modal .activity-log {
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-xl);
  border: 1px solid var(--ui-border);
}

.ui-page--goals .goal-detail-modal .activity-log ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.ui-page--goals .goal-detail-modal .activity-log li {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--ui-space-4);
  padding-bottom: var(--ui-space-3);
  border-bottom: 1px solid var(--ui-border-light);
}

.ui-page--goals .goal-detail-modal .activity-log li:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.ui-page--goals .goal-detail-modal .update-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--ui-space-1);
}

.ui-page--goals .goal-detail-modal .glass-modal-footer {
  justify-content: space-between;
}

.ui-page--goals .goal-detail-modal .footer-actions {
  display: flex;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1200px) {
  .ui-page--goals .summary-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ui-page--goals .goals-overview-shell .charts-grid {
    grid-template-columns: 1fr;
  }
  .ui-page--goals .goals-overview-shell .charts-grid .chart-card:last-child {
    grid-column: auto;
  }
  .ui-page--goals .goals-shell .filter-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 1024px) {
  .ui-page--goals .fd-dashboard-top,
  .ui-page--goals .glass-page-header,
  .ui-page--goals .goals-shell .table-head,
  .ui-page--goals .awards-shell .table-head {
    flex-direction: column;
    align-items: flex-start;
  }
  .ui-page--goals .my-goals-shell .goal-card header {
    flex-direction: column;
    align-items: flex-start;
  }
  .ui-page--goals .my-goals-shell .goal-meta {
    justify-content: flex-start;
  }
  .ui-page--goals .my-goals-shell .kr-item {
    grid-template-columns: 1fr;
  }
  .ui-page--goals .goal-detail-modal .meta-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ui-page--goals .goal-detail-modal .objectives-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 768px) {
  .ui-page--goals .summary-cards,
  .ui-page--goals .awards-shell .summary-cards,
  .ui-page--goals .goals-shell .filter-row,
  .ui-page--goals .recognition-form .form-grid {
    grid-template-columns: 1fr;
  }
  .ui-page--goals .goals-shell .header-actions {
    width: 100%;
  }
  .ui-page--goals .goals-shell .view-toggle {
    width: 100%;
    justify-content: space-between;
  }
  .ui-page--goals .goals-overview-shell .chart-card {
    min-height: 320px;
    padding: var(--ui-space-4);
  }
  .ui-page--goals .goals-overview-shell .drill {
    display: none;
  }
  .ui-page--goals .my-goals-shell .kr-actions {
    grid-template-columns: 1fr;
    justify-items: stretch;
  }
  .ui-page--goals .my-goals-shell .kr-actions input {
    width: 100%;
    max-width: none;
  }
  .ui-page--goals .goal-detail-modal .glass-modal-header {
    flex-direction: column;
  }
  .ui-page--goals .goal-detail-modal .header-actions {
    width: 100%;
    justify-content: space-between;
  }
  .ui-page--goals .goal-detail-modal .meta-row {
    grid-template-columns: 1fr;
  }
  .ui-page--goals .goal-detail-modal .activity-log li {
    flex-direction: column;
    align-items: flex-start;
  }
  .ui-page--goals .goal-detail-modal .update-meta {
    align-items: flex-start;
  }
  .ui-page--goals .goal-detail-modal .glass-modal-footer,
  .ui-page--goals .modal-backdrop .glass-modal-footer {
    flex-direction: column;
    align-items: flex-start;
  }
}
/* ==========================================================================
   UI PAGE VARIANT - ESTIMATION
   ==========================================================================
   Page variant for the job estimation page.
   All styles scoped under .ui-page--estimation

   Usage: <div class="ui-page ui-page--estimation">
   ========================================================================== */
/* ==========================================================================
   PAGE SHELL & GLOW EFFECTS
   ========================================================================== */
.ui-page--estimation {
  position: relative;
  min-height: calc(100vh - 60px);
  padding: var(--ui-space-6) var(--ui-space-3) 80px;
  font-family: var(--ui-font-primary);
}

.ui-page--estimation .services-glow {
  position: fixed;
  border-radius: 50%;
  filter: blur(var(--ui-dash-glow-blur));
  opacity: 0.4;
  z-index: 0;
  pointer-events: none;
  animation: estimationGlowPulse 14s ease-in-out infinite;
}

.ui-page--estimation .services-glow.glow-1 {
  width: 320px;
  height: 320px;
  top: -40px;
  left: -60px;
  background: var(--ui-brand);
}

.ui-page--estimation .services-glow.glow-2 {
  width: 360px;
  height: 360px;
  top: 80px;
  right: -80px;
  background: #6c5bff;
  animation-delay: 1s;
}

.ui-page--estimation .services-glow.glow-3 {
  width: 280px;
  height: 280px;
  bottom: 40px;
  left: 25%;
  background: #19d2c4;
  animation-delay: 2s;
}

@keyframes estimationGlowPulse {
  0% {
    opacity: 0.3;
    transform: scale(0.9);
  }
  50% {
    opacity: 0.8;
    transform: scale(1.05);
  }
  100% {
    opacity: 0.3;
    transform: scale(0.9);
  }
}
/* ==========================================================================
   SERVICES SHELL & LAYOUT
   ========================================================================== */
.ui-page--estimation .services-shell {
  position: relative;
  z-index: var(--z-base);
  /* Removed max-width and auto margin to match fluid loaded page width */
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-6);
}

.ui-page--estimation .services-form {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-6);
}

.ui-page--estimation .glass-shell {
  background: var(--ui-glass-light);
  border: 1px solid var(--ui-border);
  box-shadow: var(--ui-shadow-xl);
  border-radius: var(--ui-radius-3xl);
  padding: var(--ui-space-6);
  backdrop-filter: var(--ui-blur-md);
  -webkit-backdrop-filter: var(--ui-blur-md);
}

/* Skeleton card sizing - match loaded heights */
.ui-page--estimation .glass-shell.customer-block {
  min-height: 280px;
}

.ui-page--estimation .glass-shell.vehicle-block {
  min-height: 340px;
}

.ui-page--estimation .glass-shell.job-details-block {
  min-height: 320px;
}

/* ==========================================================================
   ERP HEADER BLOCK (UI CONTRACT)
   ========================================================================== */
.ui-page--estimation .erp-header-block {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 20px;
  margin-bottom: 0;
  overflow: hidden;
}

.ui-page--estimation .erp-header-primary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 24px;
  border-bottom: none;
}

.ui-page--estimation .erp-header-primary .header-left {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.ui-page--estimation .erp-header-primary .header-right {
  display: flex;
  align-items: center;
  gap: 12px;
}

.ui-page--estimation .erp-header-primary .erp-category {
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.5);
}

.ui-page--estimation .erp-header-primary .erp-title {
  font-size: 28px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.95);
  margin: 0;
  line-height: 1.2;
}

.ui-page--estimation .erp-header-primary .title-line {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  flex-wrap: wrap;
}

/* ==========================================================================
   SERVICES TOP / HEADER
   ========================================================================== */
.ui-page--estimation .services-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--ui-space-5);
}

.ui-page--estimation .title-stack .eyebrow {
  font-size: var(--ui-text-sm);
  letter-spacing: 0.18em;
  color: var(--ui-text-muted);
  margin-bottom: var(--ui-space-1);
  text-transform: uppercase;
}

.ui-page--estimation .title-line {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.ui-page--estimation .title-line h2 {
  font-size: var(--ui-text-3xl);
  margin: 0;
  color: var(--ui-text-primary);
}

.ui-page--estimation .booking-chip {
  font-size: 11px;
  padding: 0 10px;
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border-hover);
  color: var(--ui-text-secondary);
  height: 24px;
  min-height: 24px;
  line-height: 24px;
  display: inline-flex;
  align-items: center;
}

.ui-page--estimation .return-link {
  margin-top: var(--ui-space-3);
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: 13px;
  color: var(--ui-text-secondary);
  cursor: pointer;
}

/* Align first filter-group to left */
.ui-page--estimation .filter-row .filter-group:first-child {
  justify-content: flex-start;
  margin-left: 0 !important; /* Override global margin-left: auto */
}

.ui-page--estimation .return-link i {
  color: var(--ui-brand);
}

/* ==========================================================================
   STATUS PILLS
   ========================================================================== */
.ui-page--estimation .status-pill {
  padding: 0 10px;
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  height: 24px;
  min-height: 24px;
  line-height: 24px;
  display: inline-flex;
  align-items: center;
  font-weight: var(--ui-font-semibold);
}

.ui-page--estimation .status-primary {
  background: var(--ui-success-bg);
  color: var(--ui-success);
  border: 1px solid var(--ui-success-border);
}

.ui-page--estimation .status-muted {
  border: 1px solid var(--ui-border-hover);
  color: var(--ui-text-muted);
}

.ui-page--estimation .status-claim {
  background: var(--ui-danger-bg);
  border: 1px solid var(--ui-danger-border);
  color: var(--ui-danger);
}

.ui-page--estimation .status-outline {
  border: 1px dashed rgba(255, 255, 255, 0.3);
  color: var(--ui-text-muted);
}

/* ==========================================================================
   TOOLBAR & HERO CONTROLS
   ========================================================================== */
.ui-page--estimation .toolbar-card {
  position: relative;
}

.ui-page--estimation .toolbar-grid {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-4);
  align-items: center;
  justify-content: space-between;
}

.ui-page--estimation .filter-group {
  min-width: 240px;
}

.ui-page--estimation .toolbar-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}

.ui-page--estimation .hero-controls {
  margin-top: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  align-items: center;
}

.ui-page--estimation .hero-package {
  flex: 1 1 280px;
}

.ui-page--estimation .hero-action-stack {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  position: relative;
}

.ui-page--estimation .hero-actions {
  width: 100%;
  justify-content: flex-end;
}

.ui-page--estimation .floating-menu {
  position: absolute;
  top: calc(100% + 12px);
  right: var(--ui-space-6);
  padding: var(--ui-space-3);
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  width: 220px;
  z-index: var(--z-dropdown);
  background: var(--ui-glass-light);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-xl);
  box-shadow: var(--ui-shadow-lg);
  backdrop-filter: var(--ui-blur-md);
  -webkit-backdrop-filter: var(--ui-blur-md);
}

.ui-page--estimation .floating-menu button {
  border: none;
  background: transparent;
  color: var(--ui-text-secondary);
  text-align: left;
  font-size: 13px;
  padding: var(--ui-space-2) var(--ui-space-1);
  border-radius: var(--ui-radius-md);
}

.ui-page--estimation .floating-menu button:hover {
  background: var(--ui-surface-hover);
}

/* ==========================================================================
   PILL BUTTON (PAGE-SPECIFIC VARIANTS)
   ========================================================================== */
.ui-page--estimation .pill-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border-light);
  padding: 0 var(--ui-space-4);
  height: 32px;
  font-size: 13px;
  letter-spacing: 0.01em;
  text-transform: none;
  color: var(--ui-text-primary);
  background: var(--ui-surface-1);
  cursor: pointer;
  font-weight: var(--ui-font-semibold);
  transition: transform var(--ui-transition-base), box-shadow var(--ui-transition-base), background var(--ui-transition-base), border-color var(--ui-transition-base);
  text-decoration: none;
  line-height: 1;
}

.ui-page--estimation .pill-button:hover {
  transform: translateY(-1px);
  border-color: rgba(255, 255, 255, 0.25);
  box-shadow: var(--ui-shadow-md);
}

.ui-page--estimation .pill-button.accent {
  background: var(--ui-brand-gradient);
  color: #fff;
  border: none;
  font-weight: var(--ui-font-semibold);
  box-shadow: 0 12px 24px rgba(233, 68, 36, 0.45);
}

.ui-page--estimation .pill-button.ghost {
  border: 1px solid var(--ui-border-hover);
  background: var(--ui-surface-1);
  color: var(--ui-text-secondary);
}

.ui-page--estimation .pill-button.outline {
  background: transparent;
  border: 1px solid rgba(255, 140, 100, 0.5);
  color: rgba(255, 140, 100, 0.9);
  font-weight: var(--ui-font-semibold);
  gap: 6px;
}

.ui-page--estimation .pill-button.outline:hover {
  background: rgba(255, 140, 100, 0.1);
  border-color: rgba(255, 140, 100, 0.8);
  color: var(--ui-brand-light);
}

.ui-page--estimation .pill-button .btn-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  line-height: 18px;
  color: inherit;
  opacity: 0.9;
  flex-shrink: 0;
}

/* ==========================================================================
   SUMMARY CARD GRID
   ========================================================================== */
.ui-page--estimation .summary-card {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ui-space-5);
  position: relative;
  align-items: stretch; /* Ensure all cards have equal height */
}

@media (max-width: 1200px) {
  .ui-page--estimation .summary-card {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 768px) {
  .ui-page--estimation .summary-card {
    grid-template-columns: 1fr;
  }
}
.ui-page--estimation .summary-column {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  padding: var(--ui-space-6);
  position: relative;
  background: var(--ui-glass-light);
  border-radius: var(--ui-radius-3xl);
  border: 1px solid var(--ui-border);
  box-shadow: var(--ui-shadow-xl);
  backdrop-filter: var(--ui-blur-md);
  -webkit-backdrop-filter: var(--ui-blur-md);
  transition: all var(--ui-transition-slow);
  min-width: 0;
  overflow: visible;
  height: 100%; /* Fill grid cell for equal heights */
}

.ui-page--estimation .summary-column:hover {
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.02));
  border-color: var(--ui-border-hover);
  transform: translateY(-2px);
  box-shadow: 0 28px 70px rgba(0, 0, 0, 0.5);
}

.ui-page--estimation .summary-label {
  font-size: var(--ui-text-xs);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ui-brand-light);
  margin: 0 0 10px 0;
  font-weight: var(--ui-font-bold);
  padding-bottom: var(--ui-space-2);
  border-bottom: 2px solid rgba(255, 153, 102, 0.2);
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}
.ui-page--estimation .summary-label mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  opacity: 0.8;
}

.ui-page--estimation .summary-column h3 {
  margin: 0 0 var(--ui-space-1) 0;
  font-size: var(--ui-text-xl);
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-semibold);
  line-height: 1.3;
  letter-spacing: -0.01em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ui-page--estimation .summary-sub {
  margin: 0;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  line-height: 1.5;
  font-weight: var(--ui-font-normal);
}

.ui-page--estimation .summary-actions {
  display: flex;
  gap: 10px;
  margin-top: var(--ui-space-2);
}

.ui-page--estimation .view-profile-btn {
  margin-top: var(--ui-space-3);
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: 0 var(--ui-space-4);
  height: 32px;
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-full);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: all var(--ui-transition-slow);
  backdrop-filter: var(--ui-blur-sm);
}

.ui-page--estimation .view-profile-btn:hover {
  background: var(--ui-surface-hover);
  border-color: rgba(255, 255, 255, 0.2);
  color: var(--ui-text-primary);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.ui-page--estimation .summary-column ul {
  list-style: none;
  margin: var(--ui-space-2) 0 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ui-page--estimation .summary-column li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--ui-space-4);
  font-size: 13px;
  color: var(--ui-text-secondary);
  padding: 6px 10px;
  transition: all var(--ui-transition-base);
  border-radius: var(--ui-radius-sm);
  background: rgba(255, 255, 255, 0.01);
  flex-wrap: nowrap;
  min-width: 0;
}

.ui-page--estimation .summary-column li:hover {
  color: var(--ui-text-primary);
  background: var(--ui-surface-1);
  padding-left: var(--ui-space-4);
}

.ui-page--estimation .summary-column li span {
  text-transform: uppercase;
  font-size: 9px;
  color: var(--ui-text-subtle);
  letter-spacing: 0.1em;
  font-weight: var(--ui-font-bold);
  min-width: 110px;
  flex-shrink: 0;
  white-space: nowrap;
}

.ui-page--estimation .summary-column li strong {
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-medium);
  text-align: right;
  transition: all var(--ui-transition-base);
  letter-spacing: -0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ui-page--estimation .highlight {
  color: #ffb86c;
}

/* ==========================================================================
   SERVICES TABLE
   ==========================================================================
   Visual styling is handled by the ui-table--glass-input contract.
   ========================================================================== */
/* ==========================================================================
   PACKAGE ROW — visual distinction for type="package" services
   ========================================================================== */
.ui-page--estimation .row--package {
  position: relative;
  background: linear-gradient(90deg, rgba(25, 210, 196, 0.06) 0%, rgba(25, 210, 196, 0.02) 30%, transparent 100%) !important;
  border-left: 3px solid rgba(25, 210, 196, 0.5) !important;
}

.ui-page--estimation .row--package:hover {
  background: linear-gradient(90deg, rgba(25, 210, 196, 0.1) 0%, rgba(25, 210, 196, 0.04) 30%, transparent 100%) !important;
  border-left-color: rgba(25, 210, 196, 0.8) !important;
}

.ui-page--estimation .service-name-cell {
  display: flex;
  align-items: center;
  gap: 8px;
}

.ui-page--estimation .pkg-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px 3px 6px;
  background: rgba(25, 210, 196, 0.12);
  border: 1px solid rgba(25, 210, 196, 0.25);
  border-radius: var(--ui-radius-full);
  color: #5de8d8;
  font-size: 9px;
  font-weight: var(--ui-font-bold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  width: fit-content;
  line-height: 1;
  white-space: nowrap;
  flex-shrink: 0;
}
.ui-page--estimation .pkg-badge mat-icon {
  font-size: 11px;
  width: 11px;
  height: 11px;
}

/* ==========================================================================
   PACKAGE SELECT
   ========================================================================== */
.ui-page--estimation .package-select {
  min-width: 240px;
}

.ui-page--estimation .package-select.pill-select-shell {
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-full);
  padding: 0 var(--ui-space-4);
  height: 32px;
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  position: relative;
}

.ui-page--estimation .remove-package-btn {
  width: 24px;
  height: 24px;
  min-width: 24px;
  padding: 0;
  border-radius: 50%;
  background: rgba(239, 68, 68, 0.15);
  color: var(--ui-danger);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}
.ui-page--estimation .remove-package-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}
.ui-page--estimation .remove-package-btn:hover {
  background: rgba(239, 68, 68, 0.25);
  transform: scale(1.1);
}

.ui-page--estimation .package-empty-state {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: 0 var(--ui-space-4);
  height: 32px;
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-full);
  color: var(--ui-text-muted);
  font-size: 13px;
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.02em;
  cursor: default;
  min-width: 200px;
}

.ui-page--estimation .package-empty-state .empty-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  opacity: 0.6;
}

/* ==========================================================================
   CLAIM PILL
   ========================================================================== */
.ui-page--estimation .claim-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 6px 12px;
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border-light);
  color: var(--ui-text-muted);
  border-radius: 50px;
  font-size: 11px;
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  cursor: pointer;
  transition: all var(--ui-transition-base);
  -webkit-user-select: none;
          user-select: none;
  min-width: 110px;
  white-space: nowrap;
}

.ui-page--estimation .claim-pill.active {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.ui-page--estimation .claim-pill.active:hover {
  background: rgba(81, 203, 90, 0.25);
  border-color: rgba(81, 203, 90, 0.5);
}

.ui-page--estimation .claim-pill:hover {
  background: var(--ui-surface-hover);
  border-color: rgba(255, 255, 255, 0.2);
  color: var(--ui-text-secondary);
}

/* ==========================================================================
   ICON BUTTON
   ========================================================================== */
.ui-page--estimation .icon-btn {
  width: 36px;
  height: 36px;
  border-radius: var(--ui-radius-md);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-2);
  color: var(--ui-text-secondary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all var(--ui-transition-base);
}

.ui-page--estimation .icon-btn:hover {
  background: var(--ui-surface-hover);
  border-color: rgba(255, 255, 255, 0.25);
  color: var(--ui-text-primary);
}

.ui-page--estimation .icon-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.ui-page--estimation .icon-btn:disabled,
.ui-page--estimation .icon-btn.disabled {
  opacity: 0.35;
  cursor: not-allowed;
  pointer-events: auto;
}

.ui-page--estimation .icon-btn.ghost {
  background: transparent;
  border: 1px solid var(--ui-border);
}

.ui-page--estimation .action-buttons {
  display: flex;
  gap: var(--ui-space-2);
  justify-content: flex-end;
}

/* ==========================================================================
   TABLE EMPTY STATE
   ========================================================================== */
.ui-page--estimation .table-empty {
  padding: 80px var(--ui-space-6);
  text-align: center;
  color: var(--ui-text-subtle);
}

.ui-page--estimation .empty-row td {
  padding: 40px var(--ui-space-5);
  text-align: center;
}

.ui-page--estimation .empty-message {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-base);
  font-style: italic;
}

/* ==========================================================================
   FOOTER STATS BAR
   ========================================================================== */
.ui-page--estimation .footer-stats-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--ui-space-4) 32px;
  background: rgba(33, 33, 33, 0.6);
  border-top: 1px solid var(--ui-border);
  margin-top: 0;
  border-radius: var(--ui-radius-lg);
  backdrop-filter: var(--ui-blur-md);
}

.ui-page--estimation .footer-action {
  flex: 0 0 auto;
}

.ui-page--estimation .footer-costs {
  display: flex;
  gap: var(--ui-space-6);
  justify-content: flex-start;
  flex: 1;
  border-right: 1px solid var(--ui-border-light);
  margin: 0 32px;
  padding-left: var(--ui-space-6);
}

.ui-page--estimation .footer-cost-item {
  display: flex;
  align-items: baseline;
  gap: var(--ui-space-2);
}

.ui-page--estimation .footer-cost-item:last-child {
  border-left: 1px solid var(--ui-border-light);
  margin-left: 32px;
  padding-left: var(--ui-space-6);
}

.ui-page--estimation .footer-cost-label {
  font-size: var(--ui-text-sm);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--ui-text-muted);
}

.ui-page--estimation .footer-cost-value {
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-primary);
}

.ui-page--estimation .footer-total {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

.ui-page--estimation .footer-total span {
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--ui-text-muted);
  text-transform: uppercase;
  margin-bottom: 2px;
}

.ui-page--estimation .footer-total strong {
  font-size: var(--ui-text-2xl);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  line-height: 1;
}

/* ==========================================================================
   SKELETON LOADER
   ========================================================================== */
.ui-page--estimation .estimation-skeleton .skeleton-line,
.ui-page--estimation .estimation-skeleton .skeleton-pill {
  display: block;
  border-radius: var(--ui-radius-full);
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.05));
  background-size: 220% 100%;
  animation: estimationSkeletonShimmer 1.4s ease-in-out infinite;
}

/* Keep loading layout aligned to page-level gutters without extra centered inset. */
.ui-page--estimation .estimation-skeleton .ui-page__content {
  max-width: none;
  margin: 0;
  width: 100%;
}

.ui-page--estimation .estimation-skeleton .skeleton-line {
  height: 14px;
  margin: 6px 0;
  border-radius: var(--ui-radius-md);
}

.ui-page--estimation .estimation-skeleton .skeleton-pill {
  height: 32px;
  width: 140px;
  margin: var(--ui-space-1) 0;
}

.ui-page--estimation .estimation-skeleton .skeleton-pill.sm {
  width: 110px;
  height: 26px;
}

.ui-page--estimation .estimation-skeleton .skeleton-pill.md {
  width: 150px;
}

.ui-page--estimation .estimation-skeleton .skeleton-pill.lg {
  width: 170px;
}

.ui-page--estimation .estimation-skeleton .skeleton-pill.xs {
  width: 80px;
  height: 20px;
}

.ui-page--estimation .estimation-skeleton .skeleton-pill.checkbox {
  width: 32px;
  height: 32px;
  border-radius: var(--ui-radius-md);
}

.ui-page--estimation .estimation-skeleton .skeleton-line.skeleton-title {
  width: 240px;
  height: 34px;
}

.ui-page--estimation .estimation-skeleton .skeleton-line.skeleton-subtitle {
  width: 180px;
}

.ui-page--estimation .estimation-skeleton .skeleton-line.skeleton-label {
  width: 130px;
  height: 12px;
}

.ui-page--estimation .estimation-skeleton .skeleton-line.skeleton-heading {
  width: 180px;
  height: 22px;
}

.ui-page--estimation .estimation-skeleton .skeleton-line.skeleton-heading.short {
  width: 140px;
}

.ui-page--estimation .estimation-skeleton .skeleton-line.skeleton-text {
  width: 70%;
}

.ui-page--estimation .estimation-skeleton .skeleton-line.skeleton-micro {
  width: 40%;
  height: 10px;
  opacity: 0.8;
}

.ui-page--estimation .estimation-skeleton .skeleton-line.flex {
  flex: 1;
  min-width: 160px;
}

.ui-page--estimation .estimation-skeleton .skeleton-line.short {
  width: 120px;
}

.ui-page--estimation .estimation-skeleton .skeleton-line.long {
  width: 240px;
}

.ui-page--estimation .estimation-skeleton .skeleton-chip-row {
  display: flex;
  gap: var(--ui-space-2);
  margin: var(--ui-space-3) 0;
}

.ui-page--estimation .estimation-skeleton .skeleton-card-block ul {
  list-style: none;
  margin: var(--ui-space-3) 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.ui-page--estimation .estimation-skeleton .skeleton-table {
  margin-top: var(--ui-space-3);
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.ui-page--estimation .estimation-skeleton .skeleton-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) 0;
  border-bottom: 1px solid var(--ui-border);
}

.ui-page--estimation .estimation-skeleton .skeleton-row:last-child {
  border-bottom: none;
}

.ui-page--estimation .estimation-skeleton .skeleton-footer-card {
  display: flex;
  justify-content: space-between;
  gap: var(--ui-space-6);
  align-items: flex-start;
}

.ui-page--estimation .estimation-skeleton .skeleton-summary-rows,
.ui-page--estimation .estimation-skeleton .skeleton-totals {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  width: 100%;
}

@keyframes estimationSkeletonShimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
/* ==========================================================================
   JOB VALUE OVERVIEW
   ========================================================================== */
.ui-page--estimation .jvo-split-row {
  display: flex;
  gap: var(--ui-space-5);
  align-items: stretch;
}

.ui-page--estimation .jvo-card {
  flex: 0 0 320px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-6);
  padding: 28px var(--ui-space-6);
  text-align: center;
}

.ui-page--estimation .jvo-payment-card {
  flex: 1;
  min-width: 0;
}

.ui-page--estimation .jvo-hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  animation: jvoFadeUp 500ms ease-out both;
}

.ui-page--estimation .jvo-label {
  font-size: 11px;
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--ui-brand-light);
}

.ui-page--estimation .jvo-amount {
  font-size: 42px;
  font-weight: 800;
  color: var(--ui-text-primary);
  letter-spacing: -0.02em;
  position: relative;
}

.ui-page--estimation .jvo-amount::after {
  content: "";
  position: absolute;
  bottom: -6px;
  left: 50%;
  transform: translateX(-50%);
  width: 60%;
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--ui-brand-light), transparent);
  border-radius: 2px;
}

.ui-page--estimation .jvo-ring-wrap {
  position: relative;
  width: 160px;
  height: 160px;
  animation: jvoFadeUp 500ms 150ms ease-out both;
}

.ui-page--estimation .jvo-ring {
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}

.ui-page--estimation .jvo-ring circle {
  fill: none;
  stroke-width: 8;
  stroke-linecap: round;
}

.ui-page--estimation .jvo-ring-track {
  stroke: var(--ui-border);
}

.ui-page--estimation .jvo-ring-fill {
  stroke: var(--ui-brand-light);
  animation: jvoRingDraw 600ms 300ms ease-out both;
}

.ui-page--estimation .jvo-ring-labour {
  stroke: var(--ui-brand-light);
  filter: drop-shadow(0 0 8px var(--ui-brand-glow));
}

.ui-page--estimation .jvo-ring-parts {
  stroke: rgba(255, 255, 255, 0.25);
}

.ui-page--estimation .jvo-ring-others {
  stroke: rgba(110, 198, 255, 0.5);
}

@keyframes jvoRingDraw {
  from {
    stroke-dasharray: 0 264;
  }
}
.ui-page--estimation .jvo-ring-inner {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}

.ui-page--estimation .jvo-ring-pct {
  font-size: var(--ui-text-3xl);
  font-weight: 800;
  color: var(--ui-text-primary);
  line-height: 1;
}

.ui-page--estimation .jvo-ring-txt {
  font-size: 11px;
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ui-text-muted);
}

.ui-page--estimation .jvo-bifurcation {
  display: flex;
  justify-content: center;
  gap: var(--ui-space-6);
  margin-top: var(--ui-space-4);
  animation: jvoFadeUp 400ms 200ms ease-out both;
}

.ui-page--estimation .jvo-bifurcation-item {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.ui-page--estimation .jvo-bif-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
}

.ui-page--estimation .jvo-bifurcation-item.labour .jvo-bif-dot {
  background: var(--ui-brand-light);
}

.ui-page--estimation .jvo-bifurcation-item.parts .jvo-bif-dot {
  background: rgba(255, 255, 255, 0.25);
}

.ui-page--estimation .jvo-bifurcation-item.others .jvo-bif-dot {
  background: #6ec6ff;
}

.ui-page--estimation .jvo-bif-label {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.ui-page--estimation .jvo-bif-value {
  font-size: 13px;
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.ui-page--estimation .jvo-perday {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ui-space-1);
  animation: jvoFadeUp 500ms 300ms ease-out both;
}

.ui-page--estimation .jvo-perday-label {
  font-size: 11px;
  font-weight: var(--ui-font-semibold);
  color: var(--ui-brand-light);
  text-transform: uppercase;
  letter-spacing: 1px;
}

.ui-page--estimation .jvo-perday-row {
  display: flex;
  align-items: baseline;
  gap: var(--ui-space-2);
}

.ui-page--estimation .jvo-perday-value {
  font-size: 28px;
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
}

.ui-page--estimation .jvo-perday-unit {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-muted);
}

.ui-page--estimation .jvo-badge {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  padding: var(--ui-space-1) 10px;
  border-radius: 20px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-left: var(--ui-space-1);
}

.ui-page--estimation .jvo-badge.health-excellent {
  background: rgba(76, 217, 100, 0.2);
  color: #4cd964;
}

.ui-page--estimation .jvo-badge.health-healthy {
  background: rgba(90, 200, 250, 0.2);
  color: #5ac8fa;
}

.ui-page--estimation .jvo-badge.health-average {
  background: rgba(255, 204, 0, 0.2);
  color: #ffcc00;
}

.ui-page--estimation .jvo-badge.health-low {
  background: rgba(255, 107, 107, 0.2);
  color: #ff6b6b;
}

@keyframes jvoFadeUp {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* ==========================================================================
   PAYMENT CARD
   ========================================================================== */
.ui-page--estimation .jvo-payment-content {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  padding: var(--ui-space-5);
}

.ui-page--estimation .payment-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--ui-space-4);
}

.ui-page--estimation .payment-label {
  flex: 1;
  text-align: right;
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-base);
}

.ui-page--estimation .payment-value {
  flex: 0 0 180px;
  text-align: right;
  font-size: var(--ui-text-base);
  color: var(--ui-text-primary);
}

.ui-page--estimation .payment-divider {
  height: 1px;
  background: var(--ui-border-light);
  margin: var(--ui-space-2) 0;
}

.ui-page--estimation .payment-total .payment-label,
.ui-page--estimation .payment-total .payment-value {
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-semibold);
}

.ui-page--estimation .payment-total {
  background-color: rgba(255, 153, 102, 0.08);
  border: 1px solid rgba(255, 153, 102, 0.2);
  border-radius: var(--ui-radius-md);
  padding: 10px var(--ui-space-4);
}

/* ==========================================================================
   PART ISSUE PAGE - SPECIFIC STYLES
   ==========================================================================
   Additional styles for /console/part/issue pages that share the estimation
   page visual design but have unique table and cell structures.
   ========================================================================== */
/* Issue Table - Flex layout with scrollable body */
.ui-page--estimation .issue-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid var(--ui-border-hover);
  border-radius: var(--ui-radius-md);
  overflow: hidden;
  color: var(--ui-text-secondary);
  display: flex;
  flex-direction: column;
}

.ui-page--estimation .issue-table thead {
  display: table;
  width: 100%;
  table-layout: fixed;
  flex-shrink: 0;
}

.ui-page--estimation .issue-table tbody {
  display: block;
  width: 100%;
  max-height: calc(100vh - 500px);
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.15) rgba(255, 255, 255, 0.03);
}

.ui-page--estimation .issue-table tbody::-webkit-scrollbar {
  width: 6px;
}

.ui-page--estimation .issue-table tbody::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.03);
  border-radius: 3px;
}

.ui-page--estimation .issue-table tbody::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.15);
  border-radius: 3px;
}

.ui-page--estimation .issue-table tbody::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.28);
}

.ui-page--estimation .issue-table thead tr,
.ui-page--estimation .issue-table tbody tr {
  display: table;
  width: 100%;
  table-layout: fixed;
}

.ui-page--estimation .issue-table thead tr:first-child th:first-child {
  border-top-left-radius: var(--ui-radius-md);
}

.ui-page--estimation .issue-table thead tr:first-child th:last-child {
  border-top-right-radius: var(--ui-radius-md);
}

.ui-page--estimation .issue-table tbody tr:last-child td:first-child {
  border-bottom-left-radius: var(--ui-radius-md);
}

.ui-page--estimation .issue-table tbody tr:last-child td:last-child {
  border-bottom-right-radius: var(--ui-radius-md);
}

.ui-page--estimation .issue-table th,
.ui-page--estimation .issue-table td {
  padding: 14px var(--ui-space-4);
  text-align: left;
  border-bottom: 1px solid var(--ui-border-light);
}

.ui-page--estimation .issue-table th {
  font-size: var(--ui-text-sm);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ui-text-muted);
  background: var(--ui-surface-hover);
  font-weight: var(--ui-font-semibold);
}

.ui-page--estimation .issue-table th:first-child,
.ui-page--estimation .issue-table td:first-child {
  min-width: 280px;
  width: 35%;
}

.ui-page--estimation .issue-table tbody tr:hover {
  background: var(--ui-surface-1);
}

.ui-page--estimation .clickable-row {
  cursor: pointer;
  transition: background-color var(--ui-transition-base);
}

.ui-page--estimation .clickable-row:hover {
  background: var(--ui-surface-hover);
}

/* Cell patterns for issue table */
.ui-page--estimation .cell-strong {
  display: block;
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-medium);
  font-size: 15px;
}

.ui-page--estimation .cell-muted {
  display: block;
  margin-top: var(--ui-space-1);
  font-size: 13px;
  color: var(--ui-text-muted);
}

/* Frosted input (read-only display) */
.ui-page--estimation .frosted-input {
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  color: var(--ui-text-primary);
  padding: var(--ui-space-2) var(--ui-space-3);
  font-size: 13px;
  font-weight: var(--ui-font-medium);
  width: 100%;
  backdrop-filter: var(--ui-blur-sm);
  -webkit-backdrop-filter: var(--ui-blur-sm);
  transition: all var(--ui-transition-base);
  outline: none;
  pointer-events: none;
}

/* Table meta text */
.ui-page--estimation .table-meta {
  font-size: 13px;
  color: var(--ui-text-muted);
}

/* Status chips */
.ui-page--estimation .status-chip {
  display: inline-flex;
  align-items: center;
  padding: var(--ui-space-1) 14px;
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-sm);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  border: 1px solid var(--ui-border);
  margin-bottom: 6px;
}

.ui-page--estimation .status-chip.claim {
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
  background: var(--ui-danger-bg);
}

.ui-page--estimation .status-chip.no-claim {
  border-color: var(--ui-success-border);
  color: var(--ui-success);
  background: var(--ui-success-bg);
}

/* Approval pill */
.ui-page--estimation .approval-pill {
  display: inline-flex;
  padding: var(--ui-space-1) var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-sm);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border: 1px dashed rgba(255, 255, 255, 0.3);
  margin-bottom: 6px;
}

.ui-page--estimation .approval-pill.approved {
  color: var(--ui-success);
  border-color: var(--ui-success-border);
  background: var(--ui-success-bg);
}

.ui-page--estimation .approval-pill.pending {
  color: var(--ui-text-muted);
  border-color: var(--ui-border);
  background: var(--ui-surface-1);
}

/* Issue totals section */
.ui-page--estimation .issue-totals-card {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-6);
}

.ui-page--estimation .issue-totals-grid {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  width: 100%;
  max-width: 360px;
  margin-left: auto;
}

.ui-page--estimation .totals-item {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  background: transparent;
  border: none;
  padding: 2px 0;
}

.ui-page--estimation .totals-item span {
  font-size: 13px;
  letter-spacing: 0.02em;
  text-transform: none;
  color: var(--ui-text-secondary);
  margin-bottom: 0;
  text-align: left;
}

.ui-page--estimation .totals-item strong {
  font-size: 18px;
  color: var(--ui-text-primary);
  text-align: right;
  font-weight: var(--ui-font-medium);
}

.ui-page--estimation .totals-item.highlight strong {
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.ui-page--estimation .total-item {
  border-top: 2px solid var(--ui-brand);
  padding-top: 10px;
  margin-top: 2px;
}

.ui-page--estimation .totals-item span::after {
  content: ":";
  margin-left: var(--ui-space-1);
  color: var(--ui-text-muted);
}

/* Skeleton specific to issue page */
.ui-page--estimation .issue-skeleton .ui-page__content {
  max-width: none;
  margin: 0;
  width: 100%;
}

.ui-page--estimation .issue-skeleton .skeleton-line,
.ui-page--estimation .issue-skeleton .skeleton-pill {
  display: block;
  border-radius: var(--ui-radius-full);
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.05));
  background-size: 220% 100%;
  animation: estimationSkeletonShimmer 1.4s ease-in-out infinite;
}

.ui-page--estimation .issue-skeleton .skeleton-line {
  height: 14px;
  margin: 6px 0;
  border-radius: var(--ui-radius-md);
}

.ui-page--estimation .issue-skeleton .skeleton-pill {
  height: 32px;
  width: 140px;
  margin: var(--ui-space-1) 0;
}

.ui-page--estimation .issue-skeleton .skeleton-pill.xs {
  width: 80px;
  height: 20px;
}

.ui-page--estimation .issue-skeleton .skeleton-line.skeleton-title {
  width: 240px;
  height: 34px;
}

.ui-page--estimation .issue-skeleton .skeleton-line.skeleton-label {
  width: 130px;
  height: 12px;
}

.ui-page--estimation .issue-skeleton .skeleton-line.skeleton-heading {
  width: 180px;
  height: 22px;
}

.ui-page--estimation .issue-skeleton .skeleton-line.skeleton-heading.short {
  width: 140px;
}

.ui-page--estimation .issue-skeleton .skeleton-line.skeleton-text {
  width: 70%;
}

.ui-page--estimation .issue-skeleton .skeleton-line.skeleton-micro {
  width: 40%;
  height: 10px;
  opacity: 0.8;
}

.ui-page--estimation .issue-skeleton .skeleton-line.flex {
  flex: 1;
  min-width: 160px;
}

.ui-page--estimation .issue-skeleton .skeleton-line.short {
  width: 120px;
}

.ui-page--estimation .issue-skeleton .skeleton-line.long {
  width: 240px;
}

.ui-page--estimation .issue-skeleton .skeleton-chip-row {
  display: flex;
  gap: var(--ui-space-2);
  margin: var(--ui-space-3) 0;
}

.ui-page--estimation .issue-skeleton .skeleton-table {
  margin-top: var(--ui-space-3);
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  padding: 0 32px 32px;
}

.ui-page--estimation .issue-skeleton .skeleton-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) 0;
  border-bottom: 1px solid var(--ui-border);
}

.ui-page--estimation .issue-skeleton .skeleton-row:last-child {
  border-bottom: none;
}

.ui-page--estimation .issue-skeleton .skeleton-footer {
  display: flex;
  justify-content: space-between;
  gap: var(--ui-space-6);
  padding: var(--ui-space-4) 32px;
}

/* ==========================================================================
   PAYMENT INPUTS & FORM ELEMENTS
   ========================================================================== */
/* Convenience input styling */
.ui-page--estimation .careager_convenience_input {
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  color: var(--ui-text-primary);
  padding: var(--ui-space-2) var(--ui-space-3);
  font-size: 13px;
  font-weight: var(--ui-font-medium);
  width: 160px;
  max-width: 100%;
  backdrop-filter: var(--ui-blur-sm);
  -webkit-backdrop-filter: var(--ui-blur-sm);
  transition: all var(--ui-transition-base);
  outline: none;
}

.ui-page--estimation .careager_convenience_input:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
}

.ui-page--estimation .careager_convenience_input:focus {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-focus);
  box-shadow: 0 0 0 3px rgba(255, 126, 64, 0.1);
}

.ui-page--estimation .careager_convenience_input::placeholder {
  color: var(--ui-text-subtle);
}

/* JVO input group */
.ui-page--estimation .jvo-input-group {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.ui-page--estimation .jvo-input-group .input-box {
  display: flex;
  align-items: center;
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  overflow: hidden;
}

.ui-page--estimation .jvo-input-group .input-box .first {
  padding: var(--ui-space-2) var(--ui-space-2);
  background: var(--ui-surface-hover);
  color: var(--ui-text-muted);
  font-size: 13px;
  border-right: 1px solid var(--ui-border);
}

.ui-page--estimation .jvo-input-group .input-box input {
  background: transparent;
  border: none;
  padding: var(--ui-space-2) var(--ui-space-3);
  color: var(--ui-text-primary);
  font-size: 13px;
  font-weight: var(--ui-font-medium);
  width: 100px;
  outline: none;
}

.ui-page--estimation .jvo-save-btn {
  width: 32px;
  height: 32px;
  min-width: 32px;
  border-radius: 50%;
  border: none;
  background: var(--ui-brand-gradient);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all var(--ui-transition-base);
}

.ui-page--estimation .jvo-save-btn:hover {
  transform: scale(1.05);
  box-shadow: 0 2px 8px rgba(255, 126, 64, 0.3);
}

.ui-page--estimation .jvo-save-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

/* Careager cash styling */
.ui-page--estimation .careager-cash {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.ui-page--estimation .careager-cash--spaced {
  justify-content: flex-end;
}

/* Select dropdown in payment section */
.ui-page--estimation .payment-row select,
.ui-page--estimation .legacy-summary-card select {
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  color: var(--ui-text-primary);
  padding: var(--ui-space-2) var(--ui-space-3);
  font-size: 13px;
  font-weight: var(--ui-font-medium);
  cursor: pointer;
  backdrop-filter: var(--ui-blur-sm);
  transition: all var(--ui-transition-base);
  min-width: auto;
}

.ui-page--estimation .payment-row select:hover,
.ui-page--estimation .legacy-summary-card select:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
}

.ui-page--estimation .payment-row select:focus,
.ui-page--estimation .legacy-summary-card select:focus {
  outline: none;
  border-color: var(--ui-border-focus);
}

.ui-page--estimation .payment-row select option {
  background: var(--ui-surface-base);
  color: var(--ui-text-primary);
}

/* Coupon button */
.ui-page--estimation .couponbtn {
  background: transparent;
  color: var(--ui-text-secondary);
  font-size: 13px;
  font-weight: var(--ui-font-medium);
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
  padding: var(--ui-space-1) 0;
  transition: all var(--ui-transition-base);
}

.ui-page--estimation .couponbtn:hover {
  color: var(--ui-text-primary);
}

.ui-page--estimation .couponbtn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  transition: transform var(--ui-transition-base);
}

/* Coupon dropdown card */
.ui-page--estimation .selected-coupon {
  position: absolute;
  top: 100%;
  right: 0;
  margin-top: var(--ui-space-2);
  background: var(--ui-glass-light);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-lg);
  backdrop-filter: var(--ui-blur-lg);
  -webkit-backdrop-filter: var(--ui-blur-lg);
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.4);
  z-index: 100;
  min-width: 320px;
  max-height: 400px;
  overflow: hidden;
}

.ui-page--estimation .coupon-search {
  padding: var(--ui-space-3);
  border-bottom: 1px solid var(--ui-border-light);
}

.ui-page--estimation .coupon-search input {
  width: 100%;
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  color: var(--ui-text-primary);
  padding: var(--ui-space-2) var(--ui-space-3);
  font-size: 13px;
  outline: none;
}

.ui-page--estimation .coupon-search input:focus {
  border-color: var(--ui-border-focus);
}

.ui-page--estimation .coupon-list-items {
  max-height: 300px;
  overflow-y: auto;
  padding: var(--ui-space-2);
}

.ui-page--estimation .coupon-item-card {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
  margin-bottom: var(--ui-space-2);
  transition: all var(--ui-transition-base);
}

.ui-page--estimation .coupon-item-card:hover {
  background: var(--ui-surface-hover);
}

.ui-page--estimation .summary-column {
  flex: 1;
  min-width: 260px;
  min-height: 240px; /* Base height for all summary columns */
}

.ui-page--estimation .coupon-item-left {
  flex: 1;
  min-width: 0;
}

.ui-page--estimation .coupon-code {
  font-size: 14px;
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  margin-bottom: 2px;
}

.ui-page--estimation .coupon-desc {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  margin-bottom: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ui-page--estimation .coupon-discount {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-success);
}

.ui-page--estimation .coupon-item-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--ui-space-1);
}

/* Clearfix (X button for input) */
.ui-page--estimation .clearfix {
  position: absolute;
  right: var(--ui-space-2);
  top: 50%;
  transform: translateY(-50%);
  cursor: pointer;
  color: var(--ui-text-muted);
  display: flex;
  align-items: center;
  justify-content: center;
}

.ui-page--estimation .clearfix:hover {
  color: var(--ui-text-primary);
}

.ui-page--estimation .clearfix mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

/* Available balance text */
.ui-page--estimation .available_balance {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

/* ==========================================================================
   LEGACY SUMMARY CARD (Fallback when JVO not shown)
   ========================================================================== */
.ui-page--estimation .legacy-summary-card {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.01) 100%);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 24px;
  padding: 28px 32px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
  margin-top: var(--ui-space-5);
}

/* Custom row layout (flex grid) */
.ui-page--estimation .custom-row {
  display: flex;
  flex-wrap: wrap;
  margin-left: -12px;
  margin-right: -12px;
}

/* Column classes */
.ui-page--estimation .col-md-1,
.ui-page--estimation .col-md-2,
.ui-page--estimation .col-md-3,
.ui-page--estimation .col-md-4,
.ui-page--estimation .col-md-5,
.ui-page--estimation .col-md-6,
.ui-page--estimation .col-md-7,
.ui-page--estimation .col-md-8,
.ui-page--estimation .col-md-9,
.ui-page--estimation .col-md-10,
.ui-page--estimation .col-md-11,
.ui-page--estimation .col-md-12 {
  padding-left: 12px;
  padding-right: 12px;
  box-sizing: border-box;
}

.ui-page--estimation .col-md-1 {
  flex: 0 0 8.333%;
  max-width: 8.333%;
}

.ui-page--estimation .col-md-2 {
  flex: 0 0 16.666%;
  max-width: 16.666%;
}

.ui-page--estimation .col-md-3 {
  flex: 0 0 25%;
  max-width: 25%;
}

.ui-page--estimation .col-md-4 {
  flex: 0 0 33.333%;
  max-width: 33.333%;
}

.ui-page--estimation .col-md-5 {
  flex: 0 0 41.666%;
  max-width: 41.666%;
}

.ui-page--estimation .col-md-6 {
  flex: 0 0 50%;
  max-width: 50%;
}

.ui-page--estimation .col-md-7 {
  flex: 0 0 58.333%;
  max-width: 58.333%;
}

.ui-page--estimation .col-md-8 {
  flex: 0 0 66.666%;
  max-width: 66.666%;
}

.ui-page--estimation .col-md-9 {
  flex: 0 0 75%;
  max-width: 75%;
}

.ui-page--estimation .col-md-10 {
  flex: 0 0 83.333%;
  max-width: 83.333%;
}

.ui-page--estimation .col-md-11 {
  flex: 0 0 91.666%;
  max-width: 91.666%;
}

.ui-page--estimation .col-md-12 {
  flex: 0 0 100%;
  max-width: 100%;
}

/* Summary breakdown area */
.ui-page--estimation .summary-breakdown {
  min-height: auto;
  background: transparent;
  border-radius: 0;
  padding: 0;
}

.ui-page--estimation .summary-breakdown-card {
  border: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
  color: var(--ui-text-secondary);
  font-size: 13px;
}

.ui-page--estimation .summary-breakdown-card > div {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Summary breakdown values column */
.ui-page--estimation .summary-breakdown-values {
  border: none;
  padding: 0;
  margin: 0;
  text-align: end;
  display: flex;
  flex-direction: column;
  gap: 12px;
  color: #6fe3ff;
}

.ui-page--estimation .summary-breakdown-values > div {
  padding: 8px 14px;
  background: transparent;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
  border: none;
}

/* Summary total values column */
.ui-page--estimation .summary-total-values {
  text-align: end;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.ui-page--estimation .summary-total-values > div {
  padding: 8px 14px;
  background: transparent;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
  border: none;
  color: rgba(255, 255, 255, 0.9);
}

/* Legacy total title */
.ui-page--estimation .legacy-total-title {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #ffffff !important;
}

/* Input styling in legacy card */
.ui-page--estimation .legacy-summary-card input {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 12px;
  color: rgba(255, 255, 255, 0.9);
  padding: 8px 12px;
  font-size: 13px;
  font-weight: 500;
  width: 100%;
  max-width: 280px;
  outline: none;
  backdrop-filter: blur(8px);
  transition: all 0.3s ease;
}

.ui-page--estimation .legacy-summary-card input::placeholder {
  color: rgba(255, 255, 255, 0.4);
}

.ui-page--estimation .legacy-summary-card input:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.2);
}

.ui-page--estimation .legacy-summary-card input:focus {
  border-color: #ff9966;
  background: rgba(255, 255, 255, 0.06);
  box-shadow: 0 0 0 3px rgba(255, 153, 102, 0.1);
}

/* Select dropdown in legacy card */
.ui-page--estimation .legacy-summary-card select {
  width: 100%;
  padding: 8px 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 12px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.3s ease;
  backdrop-filter: blur(8px);
}

.ui-page--estimation .legacy-summary-card select:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.2);
}

.ui-page--estimation .legacy-summary-card select:focus {
  outline: none;
  border-color: #ff9966;
  box-shadow: 0 0 0 3px rgba(255, 153, 102, 0.1);
}

/* Input box in legacy card */
.ui-page--estimation .legacy-summary-card .input-box {
  display: flex;
  align-items: center;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 16px;
  overflow: hidden;
  transition: all 0.3s ease;
  max-width: 280px;
}

.ui-page--estimation .legacy-summary-card .input-box:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.2);
}

.ui-page--estimation .legacy-summary-card .input-box:focus-within {
  border-color: #ff9966;
  box-shadow: 0 0 0 3px rgba(255, 153, 102, 0.1);
}

.ui-page--estimation .legacy-summary-card .input-box .first {
  width: 32px;
  padding: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.7);
  font-weight: 600;
  font-size: 13px;
  background: rgba(255, 255, 255, 0.03);
  border-right: 1px solid rgba(255, 255, 255, 0.08);
}

.ui-page--estimation .legacy-summary-card .input-box input {
  flex: 1;
  padding: 8px 12px;
  background: transparent !important;
  border: none !important;
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  font-weight: 500;
  max-width: none;
}

.ui-page--estimation .legacy-summary-card .input-box input:focus {
  outline: none;
  box-shadow: none;
}

/* Text utilities */
.ui-page--estimation .text-right {
  text-align: right !important;
}

.ui-page--estimation .text-end {
  text-align: right !important;
}

/* Bootstrap utility equivalents */
.ui-page--estimation .mb-1 {
  margin-bottom: 4px;
}

.ui-page--estimation .mb-2 {
  margin-bottom: 8px;
}

.ui-page--estimation .mt-1 {
  margin-top: 4px;
}

.ui-page--estimation .mt-2 {
  margin-top: 8px;
}

.ui-page--estimation .my-2 {
  margin-top: 8px;
  margin-bottom: 8px;
}

.ui-page--estimation .pt-1 {
  padding-top: 4px;
}

.ui-page--estimation .py-1 {
  padding-top: 4px;
  padding-bottom: 4px;
}

.ui-page--estimation .d-flex {
  display: flex !important;
}

.ui-page--estimation .justify-content-end {
  justify-content: flex-end !important;
}

.ui-page--estimation .position-relative {
  position: relative;
}

.ui-page--estimation .w-100 {
  width: 100%;
}

.ui-page--estimation .border-0 {
  border: 0 !important;
}

/* Text color utilities */
.ui-page--estimation .text-success {
  color: var(--ui-success) !important;
}

.ui-page--estimation .text-danger {
  color: var(--ui-danger) !important;
}

.ui-page--estimation .text-white {
  color: var(--ui-text-primary) !important;
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 992px) {
  .ui-page--estimation .jvo-split-row {
    flex-direction: column;
  }
  .ui-page--estimation .jvo-card {
    flex: none;
    width: 100%;
  }
}
@media (max-width: 991px) {
  .ui-page--estimation .services-shell {
    padding: 0 var(--ui-space-1);
  }
  .ui-page--estimation .services-top,
  .ui-page--estimation .toolbar-grid {
    flex-direction: column;
    align-items: flex-start;
  }
  .ui-page--estimation .toolbar-actions {
    width: 100%;
    justify-content: flex-start;
  }
  .ui-page--estimation .floating-menu {
    position: static;
    width: 100%;
    margin-top: var(--ui-space-3);
  }
  .ui-page--estimation .table-wrap {
    padding: 0 var(--ui-space-3) var(--ui-space-3);
  }
}
@media (max-width: 768px) {
  .ui-page--estimation .jvo-amount {
    font-size: var(--ui-text-3xl);
  }
  .ui-page--estimation .jvo-ring-wrap {
    width: 130px;
    height: 130px;
  }
  .ui-page--estimation .jvo-ring-pct {
    font-size: 26px;
  }
  .ui-page--estimation .jvo-perday-value {
    font-size: 22px;
  }
}
/* ==========================================================================
   MARKETING TOOLS PAGE HELPERS
   ========================================================================== */
.marketing-shell .stat-indicator--customers {
  background: var(--ui-brand-light);
}

.marketing-shell .stat-indicator--revenue {
  background: var(--ui-info);
}

.marketing-shell .stat-indicator--avg-order {
  background: var(--ui-brand);
}

.marketing-shell .stat-indicator--redeemed {
  background: var(--ui-success);
}

.marketing-shell .summary-skeleton-block {
  height: 100px;
}

/* ==========================================================================
   CAMPAIGNS PAGE — Restored Campaign Card Hierarchy
   ========================================================================== */
.marketing-campaigns-page .ui-section-title {
  margin: 0 0 var(--ui-space-3);
  padding-bottom: var(--ui-space-2);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.marketing-campaigns-page .campaign-list-card {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
  overflow: hidden;
  border-radius: var(--ui-radius-xl);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  transition: transform var(--ui-transition-fast), border-color var(--ui-transition-fast), box-shadow var(--ui-transition-fast);
}

.marketing-campaigns-page .campaign-list-card:hover {
  transform: translateY(-1px);
  border-color: rgba(255, 255, 255, 0.14);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.36);
}

.marketing-campaigns-page .campaign-list-card--inactive {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.018));
}

.marketing-campaigns-page .campaign-list-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 16px 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.02);
}

.marketing-campaigns-page .campaign-list-card__title-group {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.marketing-campaigns-page .campaign-list-card__title {
  margin: 0;
  max-width: min(320px, 36vw);
  font-size: 18px;
  line-height: 1.1;
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  letter-spacing: -0.02em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.marketing-campaigns-page .campaign-platform-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: var(--ui-radius-full);
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.9);
  font-size: 11px;
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

.marketing-campaigns-page .campaign-platform-badge.platform-website {
  background: rgba(255, 152, 0, 0.15);
  border-color: rgba(255, 152, 0, 0.3);
  color: #ffb74d;
}

.marketing-campaigns-page .campaign-platform-badge.platform-justdial {
  background: rgba(76, 175, 80, 0.15);
  border-color: rgba(76, 175, 80, 0.3);
  color: #81c784;
}

.marketing-campaigns-page .campaign-platform-badge.platform-social {
  background: rgba(33, 150, 243, 0.15);
  border-color: rgba(33, 150, 243, 0.3);
  color: #64b5f6;
}

.marketing-campaigns-page .campaign-platform-badge.platform-call {
  background: rgba(0, 188, 212, 0.15);
  border-color: rgba(0, 188, 212, 0.3);
  color: #4dd0e1;
}

.marketing-campaigns-page .campaign-platform-badge.platform-meta {
  background: rgba(255, 87, 34, 0.15);
  border-color: rgba(255, 87, 34, 0.3);
  color: #ff7043;
}

.marketing-campaigns-page .campaign-platform-badge.platform-knowlarity {
  background: rgba(156, 39, 176, 0.15);
  border-color: rgba(156, 39, 176, 0.3);
  color: #ba68c8;
}

.marketing-campaigns-page .campaign-platform-badge.platform-walkin {
  background: rgba(255, 193, 7, 0.15);
  border-color: rgba(255, 193, 7, 0.3);
  color: #f6c860;
}

.marketing-campaigns-page .campaign-list-card__meta {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
  min-width: 0;
  margin-left: auto;
  color: rgba(255, 255, 255, 0.72);
}

.marketing-campaigns-page .campaign-meta-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  white-space: nowrap;
  color: rgba(255, 255, 255, 0.72);
  font-size: 12px;
  font-weight: var(--ui-font-medium);
}

.marketing-campaigns-page .campaign-meta-item mat-icon {
  width: 14px;
  height: 14px;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.45);
}

.marketing-campaigns-page .campaign-meta-divider {
  color: rgba(255, 255, 255, 0.28);
  font-size: 12px;
  line-height: 1;
}

.marketing-campaigns-page .campaign-list-card__edit {
  margin-left: 8px;
  border-color: rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.05);
}

.marketing-campaigns-page .campaign-list-card__toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.marketing-campaigns-page .campaign-list-card__toggle:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.45);
  outline-offset: 2px;
}

.marketing-campaigns-page .campaign-list-card__toggle-track {
  width: 44px;
  height: 24px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.2);
  display: inline-flex;
  align-items: center;
  padding: 2px;
  transition: var(--ui-transition-base);
}

.marketing-campaigns-page .campaign-list-card__toggle-thumb {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.9);
  transform: translateX(0);
  transition: transform var(--ui-transition-base), background var(--ui-transition-base);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.marketing-campaigns-page .campaign-list-card__toggle.is-active .campaign-list-card__toggle-track {
  background: linear-gradient(135deg, #ff5722, #e14125);
  border-color: rgba(255, 87, 34, 0.45);
  box-shadow: 0 0 10px rgba(255, 87, 34, 0.24);
}

.marketing-campaigns-page .campaign-list-card__toggle.is-active .campaign-list-card__toggle-thumb {
  transform: translateX(20px);
  background: #fff;
}

.marketing-campaigns-page .campaign-list-card__metrics {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0;
}

.marketing-campaigns-page .campaign-metric-card {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  padding: 18px 20px;
  text-align: left;
  border: 0;
  border-right: 1px solid rgba(255, 255, 255, 0.06);
  background: transparent;
  color: inherit;
  font: inherit;
  transition: background var(--ui-transition-fast);
}

.marketing-campaigns-page .campaign-metric-card:last-child {
  border-right: none;
}

.marketing-campaigns-page .campaign-metric-card--interactive {
  cursor: pointer;
}

.marketing-campaigns-page .campaign-metric-card:hover {
  background: rgba(255, 255, 255, 0.03);
}

.marketing-campaigns-page .campaign-metric-card--interactive:hover {
  background: rgba(255, 255, 255, 0.05);
}

.marketing-campaigns-page .campaign-metric-card__label {
  font-size: 11px;
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
}

.marketing-campaigns-page .campaign-metric-card__value {
  font-size: 20px;
  line-height: 1;
  font-weight: var(--ui-font-bold);
  letter-spacing: -0.02em;
  color: var(--ui-text-primary);
}

.marketing-campaigns-page .campaign-metric-card__value--roas {
  color: var(--ui-success);
}

@media (max-width: 1280px) {
  .marketing-campaigns-page .campaign-list-card__metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .marketing-campaigns-page .campaign-metric-card {
    border-right: 1px solid rgba(255, 255, 255, 0.06);
  }
  .marketing-campaigns-page .campaign-metric-card:nth-child(3n) {
    border-right: none;
  }
  .marketing-campaigns-page .campaign-metric-card:nth-child(n+4) {
    border-top: 1px solid rgba(255, 255, 255, 0.06);
  }
}
@media (max-width: 920px) {
  .marketing-campaigns-page .campaign-list-card__header {
    flex-wrap: wrap;
    align-items: flex-start;
  }
  .marketing-campaigns-page .campaign-list-card__title {
    max-width: none;
  }
  .marketing-campaigns-page .campaign-list-card__meta {
    justify-content: flex-start;
    margin-left: 0;
  }
  .marketing-campaigns-page .campaign-list-card__metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .marketing-campaigns-page .campaign-metric-card {
    border-right: 1px solid rgba(255, 255, 255, 0.06);
  }
  .marketing-campaigns-page .campaign-metric-card:nth-child(2n) {
    border-right: none;
  }
  .marketing-campaigns-page .campaign-metric-card:nth-child(n+3) {
    border-top: 1px solid rgba(255, 255, 255, 0.06);
  }
}
@media (max-width: 640px) {
  .marketing-campaigns-page .campaign-list-card__title {
    font-size: 16px;
  }
  .marketing-campaigns-page .campaign-list-card__header {
    padding: 14px 16px;
  }
  .marketing-campaigns-page .campaign-list-card__meta {
    gap: 6px;
  }
  .marketing-campaigns-page .campaign-meta-divider {
    display: none;
  }
  .marketing-campaigns-page .campaign-list-card__metrics {
    grid-template-columns: 1fr;
  }
  .marketing-campaigns-page .campaign-metric-card {
    padding: 16px;
    border-right: none;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
  }
  .marketing-campaigns-page .campaign-metric-card:first-child {
    border-top: none;
  }
}
/* ==========================================================================
   COUPONS PAGE — Restored Coupon Card Hierarchy
   ========================================================================== */
.marketing-coupons-page .ui-section-title {
  margin: 0 0 var(--ui-space-3);
  padding-bottom: var(--ui-space-2);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.marketing-coupons-page .coupon-list-card {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
  overflow: hidden;
  border-radius: var(--ui-radius-xl);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  transition: transform var(--ui-transition-fast), border-color var(--ui-transition-fast), box-shadow var(--ui-transition-fast);
}

.marketing-coupons-page .coupon-list-card:hover {
  transform: translateY(-1px);
  border-color: rgba(255, 255, 255, 0.14);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.36);
}

.marketing-coupons-page .coupon-list-card--inactive {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.018));
}

.marketing-coupons-page .coupon-list-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 14px 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.02);
}

.marketing-coupons-page .coupon-list-card__title-group {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.marketing-coupons-page .coupon-list-card__title {
  margin: 0;
  max-width: min(220px, 26vw);
  font-size: 16px;
  line-height: 1.1;
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  letter-spacing: -0.02em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.marketing-coupons-page .coupon-type-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 10px;
  border-radius: var(--ui-radius-full);
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.9);
  font-size: 11px;
  font-weight: var(--ui-font-bold);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

.marketing-coupons-page .coupon-type-badge.badge-percent {
  background: rgba(76, 175, 80, 0.15);
  border-color: rgba(76, 175, 80, 0.3);
  color: #81c784;
}

.marketing-coupons-page .coupon-type-badge.badge-fixed {
  background: rgba(33, 150, 243, 0.15);
  border-color: rgba(33, 150, 243, 0.3);
  color: #64b5f6;
}

.marketing-coupons-page .coupon-list-card__meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  min-width: 0;
  margin-left: auto;
  color: rgba(255, 255, 255, 0.72);
}

.marketing-coupons-page .coupon-meta-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  white-space: nowrap;
  color: rgba(255, 255, 255, 0.72);
  font-size: 12px;
  font-weight: var(--ui-font-medium);
}

.marketing-coupons-page .coupon-meta-item mat-icon {
  width: 14px;
  height: 14px;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.45);
}

.marketing-coupons-page .coupon-meta-divider {
  color: rgba(255, 255, 255, 0.28);
  font-size: 12px;
  line-height: 1;
}

.marketing-coupons-page .coupon-list-card__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}

.marketing-coupons-page .coupon-list-card__edit {
  border-color: rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.05);
}

.marketing-coupons-page .coupon-list-card__toggle-action {
  min-width: 112px;
}

.marketing-coupons-page .coupon-list-card__metrics {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0;
}

.marketing-coupons-page .coupon-metric-card {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  padding: 16px 18px;
  text-align: left;
  border-right: 1px solid rgba(255, 255, 255, 0.06);
  background: transparent;
  color: inherit;
}

.marketing-coupons-page .coupon-metric-card:last-child {
  border-right: none;
}

.marketing-coupons-page .coupon-metric-card:hover {
  background: rgba(255, 255, 255, 0.03);
}

.marketing-coupons-page .coupon-metric-card__value {
  font-size: 18px;
  line-height: 1;
  font-weight: var(--ui-font-bold);
  letter-spacing: -0.02em;
  color: var(--ui-text-primary);
}

.marketing-coupons-page .coupon-metric-card__label {
  font-size: 10px;
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
}

@media (max-width: 1280px) {
  .marketing-coupons-page .coupon-list-card__metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .marketing-coupons-page .coupon-metric-card {
    border-right: 1px solid rgba(255, 255, 255, 0.06);
  }
  .marketing-coupons-page .coupon-metric-card:nth-child(3n) {
    border-right: none;
  }
  .marketing-coupons-page .coupon-metric-card:nth-child(n+4) {
    border-top: 1px solid rgba(255, 255, 255, 0.06);
  }
}
@media (max-width: 980px) {
  .marketing-coupons-page .coupon-list-card__header {
    flex-wrap: wrap;
    align-items: flex-start;
  }
  .marketing-coupons-page .coupon-list-card__title {
    max-width: none;
  }
  .marketing-coupons-page .coupon-list-card__meta {
    margin-left: 0;
  }
  .marketing-coupons-page .coupon-list-card__actions {
    width: 100%;
    justify-content: flex-start;
  }
  .marketing-coupons-page .coupon-list-card__metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .marketing-coupons-page .coupon-metric-card {
    border-right: 1px solid rgba(255, 255, 255, 0.06);
  }
  .marketing-coupons-page .coupon-metric-card:nth-child(2n) {
    border-right: none;
  }
  .marketing-coupons-page .coupon-metric-card:nth-child(n+3) {
    border-top: 1px solid rgba(255, 255, 255, 0.06);
  }
}
@media (max-width: 640px) {
  .marketing-coupons-page .coupon-list-card__header {
    padding: 14px 16px;
  }
  .marketing-coupons-page .coupon-list-card__title {
    font-size: 15px;
  }
  .marketing-coupons-page .coupon-meta-divider {
    display: none;
  }
  .marketing-coupons-page .coupon-list-card__toggle-action {
    min-width: 96px;
  }
  .marketing-coupons-page .coupon-list-card__metrics {
    grid-template-columns: 1fr;
  }
  .marketing-coupons-page .coupon-metric-card {
    padding: 16px;
    border-right: none;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
  }
  .marketing-coupons-page .coupon-metric-card:first-child {
    border-top: none;
  }
}
/* ==========================================================================
   CONVERSIONS PAGE — Attribution Console
   ========================================================================== */
/* ── Attribution Coverage Inline ──────────────────────────────────── */
/* ── Stat card sub-label (below value) ────────────────────────────── */
.stat-card__sub {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.35);
  margin-top: -2px;
}

/* ── Table Layout (8 columns) ─────────────────────────────────────── */
.marketing-conversions-page .premium-table.premium-table--marketing-conversions {
  width: 100%;
  min-width: 1200px;
  table-layout: fixed;
}

/* Col 1: Invoice Date */
.marketing-conversions-page .premium-table--marketing-conversions th:nth-child(1),
.marketing-conversions-page .premium-table--marketing-conversions td:nth-child(1) {
  width: 120px;
}

/* Col 2: Customer */
.marketing-conversions-page .premium-table--marketing-conversions th:nth-child(2),
.marketing-conversions-page .premium-table--marketing-conversions td:nth-child(2) {
  width: 170px;
}

/* Col 3: Attribution */
.marketing-conversions-page .premium-table--marketing-conversions th:nth-child(3),
.marketing-conversions-page .premium-table--marketing-conversions td:nth-child(3) {
  width: 200px;
}

/* Col 4: Revenue */
.marketing-conversions-page .premium-table--marketing-conversions th:nth-child(4),
.marketing-conversions-page .premium-table--marketing-conversions td:nth-child(4) {
  width: 110px;
}

/* Col 5: Confidence */
.marketing-conversions-page .premium-table--marketing-conversions th:nth-child(5),
.marketing-conversions-page .premium-table--marketing-conversions td:nth-child(5) {
  width: 90px;
}

/* Col 6: Source */
.marketing-conversions-page .premium-table--marketing-conversions th:nth-child(6),
.marketing-conversions-page .premium-table--marketing-conversions td:nth-child(6) {
  width: 110px;
}

/* Col 7: CRE */
.marketing-conversions-page .premium-table--marketing-conversions th:nth-child(7),
.marketing-conversions-page .premium-table--marketing-conversions td:nth-child(7) {
  width: 120px;
}

/* Col 8: Car */
.marketing-conversions-page .premium-table--marketing-conversions th:nth-child(8),
.marketing-conversions-page .premium-table--marketing-conversions td:nth-child(8) {
  width: 160px;
}

.marketing-conversions-page .premium-table--marketing-conversions .cell-name,
.marketing-conversions-page .premium-table--marketing-conversions .cell-car,
.marketing-conversions-page .premium-table--marketing-conversions .cell-attribution {
  white-space: normal;
}

.marketing-conversions-page .premium-table--marketing-conversions .cell-primary {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1, 4px);
}

.marketing-conversions-page .premium-table--marketing-conversions .cell-primary-name {
  white-space: normal;
  word-break: break-word;
}

.marketing-conversions-page .premium-table--marketing-conversions .cell-source .glass-status-chip {
  width: fit-content;
}

.marketing-conversions-page .premium-table--marketing-conversions .cell-revenue {
  white-space: nowrap;
}

.marketing-conversions-page .premium-table--marketing-conversions .revenue-amount {
  font-size: var(--ui-text-lg, 16px);
  font-weight: var(--ui-font-semibold, 600);
  color: var(--ui-success, #00b894);
}

/* ── Revenue Zero State ───────────────────────────────────────────── */
.revenue-zero {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.3);
  display: block;
}

.revenue-zero-hint {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.18);
  display: block;
  margin-top: 1px;
}

/* ── Attribution Cell (Enriched) ──────────────────────────────────── */
.attr-cell-content {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.attr-campaign-name {
  font-size: 13px;
  color: #e0e0e0;
  white-space: normal;
  word-break: break-word;
}

.attr-hint {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.25);
}

.attr-fix-cta {
  font-size: 11px;
  color: #d4a24e;
  cursor: pointer;
  font-weight: 500;
  transition: color 0.2s;
}

.attr-fix-cta:hover {
  color: #e8b85e;
  text-decoration: underline;
}

.attr-warn-icon {
  font-size: 13px !important;
  width: 13px !important;
  height: 13px !important;
  margin-right: 2px;
  vertical-align: middle;
}

/* ── Attribution Badges ───────────────────────────────────────────── */
.attr-badge {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 10px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 4px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  width: fit-content;
}

.attr-badge-attributed {
  background: rgba(0, 184, 148, 0.1);
  color: #00b894;
  border: 1px solid rgba(0, 184, 148, 0.18);
}

.attr-badge-unattributed {
  background: rgba(214, 48, 49, 0.1);
  color: #e17055;
  border: 1px solid rgba(214, 48, 49, 0.18);
}

/* ── Confidence Badge ─────────────────────────────────────────────── */
.conf-badge {
  display: inline-flex;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 4px;
  width: fit-content;
}

.conf-high {
  color: #00b894;
  background: rgba(0, 184, 148, 0.08);
}

.conf-medium {
  color: #fdcb6e;
  background: rgba(253, 203, 110, 0.08);
}

.conf-low {
  color: #e17055;
  background: rgba(225, 112, 85, 0.08);
}

.conf-none {
  color: rgba(255, 255, 255, 0.2);
  background: none;
}

/* ── Row States ───────────────────────────────────────────────────── */
.premium-table--marketing-conversions tr.row-unattributed {
  border-left: 3px solid rgba(214, 48, 49, 0.25);
}

.premium-table--marketing-conversions tr.row-unattributed:hover {
  border-left-color: rgba(214, 48, 49, 0.5);
}

.premium-table--marketing-conversions tr.row-attributed {
  border-left: 3px solid transparent;
}

.premium-table--marketing-conversions tr.row-high-value {
  background: rgba(212, 162, 78, 0.02);
}

.premium-table--marketing-conversions tr.row-high-value .revenue-amount {
  color: #d4a24e;
  text-shadow: 0 0 8px rgba(212, 162, 78, 0.15);
}

/* ── Hover Lift ───────────────────────────────────────────────────── */
.premium-table--marketing-conversions tr.row-clickable {
  transition: transform 0.15s ease, background 0.2s, border-left-color 0.2s;
}

.premium-table--marketing-conversions tr.row-clickable:hover {
  transform: translateY(-1px);
}

/* ── Responsive ───────────────────────────────────────────────────── */
@media (max-width: 1180px) {
  .marketing-conversions-page .premium-table--marketing-conversions th:nth-child(8),
  .marketing-conversions-page .premium-table--marketing-conversions td:nth-child(8) {
    display: none;
  }
}
@media (max-width: 980px) {
  .marketing-conversions-page .premium-table--marketing-conversions th:nth-child(5),
  .marketing-conversions-page .premium-table--marketing-conversions td:nth-child(5),
  .marketing-conversions-page .premium-table--marketing-conversions th:nth-child(7),
  .marketing-conversions-page .premium-table--marketing-conversions td:nth-child(7) {
    display: none;
  }
  .attr-summary-bar {
    padding: 10px 14px;
    gap: 12px;
  }
}
/* ==========================================================================
   AD CONNECT BANNER
   ========================================================================== */
.ad-connect-banner {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
  margin: 0 var(--ui-space-4) var(--ui-space-4);
  background: var(--ui-glass-light);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-md);
  backdrop-filter: var(--ui-blur-sm);
  flex-wrap: wrap;
}

.ad-connect-banner__prompt {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  color: var(--ui-text-subtle);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
}
.ad-connect-banner__prompt mat-icon {
  font-size: var(--ui-text-lg);
  width: 18px;
  height: 18px;
  color: var(--ui-brand-light);
}

.ad-connect-banner__actions {
  display: flex;
  gap: var(--ui-space-2);
}

.ad-connect-banner__status {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.pill-btn-connect {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  border-radius: var(--ui-radius-full);
  border: 1px solid;
  cursor: pointer;
  transition: all var(--ui-transition-base);
  backdrop-filter: var(--ui-blur-sm);
}
.pill-btn-connect i {
  font-size: 14px;
}
.pill-btn-connect:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.pill-btn-connect--meta {
  background: rgba(24, 119, 242, 0.12);
  color: #4599ff;
  border-color: rgba(24, 119, 242, 0.3);
}
.pill-btn-connect--meta:hover {
  background: rgba(24, 119, 242, 0.2);
}

.pill-btn-connect--google {
  background: rgba(66, 133, 244, 0.12);
  color: #74b0ff;
  border-color: rgba(66, 133, 244, 0.3);
}
.pill-btn-connect--google:hover {
  background: rgba(66, 133, 244, 0.2);
}

.ad-status-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-1) var(--ui-space-3);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  border-radius: var(--ui-radius-full);
  background: rgba(34, 197, 94, 0.1);
  color: var(--ui-success);
  border: 1px solid rgba(34, 197, 94, 0.3);
}
.ad-status-badge i {
  font-size: 13px;
}

.ad-status-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--ui-success);
  animation: overduePulse 2s ease-in-out infinite;
}

.btn-glass--sm {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 1px solid var(--ui-border-hover);
  border-radius: 50%;
  background: var(--ui-surface-1);
  color: var(--ui-text-muted);
  cursor: pointer;
  transition: all var(--ui-transition-base);
}
.btn-glass--sm mat-icon {
  font-size: 15px;
  width: 15px;
  height: 15px;
}
.btn-glass--sm:hover {
  background: var(--ui-danger-bg);
  color: var(--ui-danger);
  border-color: var(--ui-danger-border);
}

.ui-page--whatsapp {
  position: relative;
  /* Title line: name + badges grouped, timestamp pinned right */
  /* ── Entity Role Badges ─────────────────────────────────────────
   * Badges display the resolved identity type for WhatsApp contacts:
   * Employee, Customer, Vendor, Insurance, Corporate, Dealer, etc.
   * Rendered in conversation list rows and the chat header.
   * ────────────────────────────────────────────────────────────── */
  /* Conversation list: compact inline badges */
  /* Chat header: allow slightly larger badges */
  /* Overflow indicator: "+N" when badges exceed max visible (3) */
  /* Date-group separator — shared by both legacy and marketing WhatsApp views */
  /* ── Template-only mode (24h window closed) ──────────────── */
  /* ─── WhatsApp Context Drawer — fixed overlay (matches stock-drawer-overlay) ─── */
}
.ui-page--whatsapp .erp-header-block {
  position: relative;
  z-index: 2;
}
.ui-page--whatsapp .erp-header-primary {
  align-items: center;
}
.ui-page--whatsapp .erp-subtitle {
  margin-top: var(--ui-space-1);
  max-width: 620px;
}
.ui-page--whatsapp .whatsapp-shell {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  min-width: 0;
}
.ui-page--whatsapp .whatsapp-stats-header {
  width: min(100%, 1480px);
  margin: 0 auto;
}
.ui-page--whatsapp .whatsapp-stats-header .stats-summary-row.is-loading {
  opacity: 0.6;
}
.ui-page--whatsapp .whatsapp-stats-header .stats-header__actions {
  margin-left: auto;
}
.ui-page--whatsapp .whatsapp-stats-header .stat-card--compact {
  min-width: 168px;
}
.ui-page--whatsapp .tab-panel {
  min-width: 0;
}
.ui-page--whatsapp .whatsapp-content-rail {
  width: min(100%, 1480px);
  margin: 0 auto;
}
.ui-page--whatsapp .dashboard-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
}
.ui-page--whatsapp .dashboard-toolbar__copy {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  min-width: 0;
}
.ui-page--whatsapp .dashboard-toolbar__copy strong {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}
.ui-page--whatsapp .eyebrow {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ui-text-muted);
}
.ui-page--whatsapp .dashboard-toolbar__actions {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
  justify-content: flex-end;
}
.ui-page--whatsapp .dashboard-container {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}
.ui-page--whatsapp .campaigns-container {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}
.ui-page--whatsapp .dashboard-section,
.ui-page--whatsapp .campaign-table--refined,
.ui-page--whatsapp .pane {
  min-width: 0;
}
.ui-page--whatsapp .dashboard-section {
  gap: var(--ui-space-3);
}
.ui-page--whatsapp .dashboard-section--compact {
  padding: var(--ui-space-4);
}
.ui-page--whatsapp .kpi-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: var(--ui-space-2);
}
.ui-page--whatsapp .kpi-card,
.ui-page--whatsapp .health-card {
  width: 100%;
  min-width: 0;
  align-items: flex-start;
  justify-content: space-between;
  text-align: left;
  appearance: none;
  cursor: pointer;
  transition: var(--ui-transition-base);
}
.ui-page--whatsapp .kpi-card {
  min-height: 76px;
  padding: var(--ui-space-3);
}
.ui-page--whatsapp .kpi-card:hover:not(.is-disabled),
.ui-page--whatsapp .health-card:hover {
  border-color: var(--ui-border-hover);
  transform: translateY(-1px);
}
.ui-page--whatsapp .kpi-card.is-disabled {
  opacity: 0.55;
  cursor: default;
  pointer-events: none;
}
.ui-page--whatsapp .kpi-label,
.ui-page--whatsapp .health-card .label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ui-text-muted);
}
.ui-page--whatsapp .kpi-value,
.ui-page--whatsapp .health-card .value {
  font-size: clamp(1.15rem, 1.7vw, 1.55rem);
  font-weight: var(--ui-font-bold);
  line-height: 1.1;
  color: var(--ui-text-primary);
  font-variant-numeric: tabular-nums;
}
.ui-page--whatsapp .kpi-trend {
  display: inline-flex;
  align-items: center;
  padding: calc(var(--ui-space-1) / 2) var(--ui-space-2);
  border-radius: var(--ui-radius-full);
  background: var(--ui-success-bg);
  color: var(--ui-success);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
}
.ui-page--whatsapp .kpi-trend.negative {
  background: var(--ui-danger-bg);
  color: var(--ui-danger);
}
.ui-page--whatsapp .section-header--compact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  padding-bottom: var(--ui-space-3);
  margin-bottom: var(--ui-space-2);
  border-bottom: 1px solid var(--ui-border);
}
.ui-page--whatsapp .section-header--compact h3 {
  margin: 0;
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}
.ui-page--whatsapp .section-desc {
  margin: var(--ui-space-1) 0 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}
.ui-page--whatsapp .dashboard-main-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(420px, 0.75fr);
  gap: var(--ui-space-3);
  align-items: stretch;
}
.ui-page--whatsapp .dashboard-empty-card {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 152px;
  border: 1px dashed var(--ui-border);
  border-radius: var(--ui-radius-lg);
  background: rgba(255, 255, 255, 0.025);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}
.ui-page--whatsapp .message-flow {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  min-height: 176px;
}
.ui-page--whatsapp .flow-chart {
  width: 100%;
  height: 152px;
  overflow: visible;
}
.ui-page--whatsapp .line-sent,
.ui-page--whatsapp .line-delivered,
.ui-page--whatsapp .line-read {
  fill: none;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.ui-page--whatsapp .line-sent {
  stroke: var(--ui-accent);
}
.ui-page--whatsapp .line-delivered {
  stroke: var(--ui-warning);
}
.ui-page--whatsapp .line-read {
  stroke: var(--ui-success);
}
.ui-page--whatsapp .chart-legend {
  display: flex;
  align-items: center;
  gap: var(--ui-space-4);
  flex-wrap: wrap;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}
.ui-page--whatsapp .chart-legend span {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
}
.ui-page--whatsapp .chart-legend .dot,
.ui-page--whatsapp .typing-indicator .dot,
.ui-page--whatsapp .badge--dot {
  display: inline-flex;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex: 0 0 auto;
}
.ui-page--whatsapp .chart-legend .dot.sent {
  background: var(--ui-accent);
}
.ui-page--whatsapp .chart-legend .dot.delivered {
  background: var(--ui-warning);
}
.ui-page--whatsapp .chart-legend .dot.read {
  background: var(--ui-success);
}
.ui-page--whatsapp .chart-skeleton,
.ui-page--whatsapp .campaign-skeleton {
  border: 1px dashed var(--ui-border);
  border-radius: var(--ui-radius-xl);
  background: linear-gradient(180deg, var(--ui-surface-1), var(--ui-surface-2));
}
.ui-page--whatsapp .chart-skeleton {
  min-height: 152px;
}
.ui-page--whatsapp .campaign-skeleton {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  padding: var(--ui-space-5);
}
.ui-page--whatsapp .conversation-health {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--ui-space-3);
}
.ui-page--whatsapp .health-card {
  min-height: 96px;
  padding: var(--ui-space-4);
}
.ui-page--whatsapp .activity-table,
.ui-page--whatsapp .logs-table {
  min-width: 0;
  overflow: hidden;
}
.ui-page--whatsapp .dashboard-section--activity .activity-table {
  overflow: auto;
}
.ui-page--whatsapp .dashboard-section--activity .glass-table th,
.ui-page--whatsapp .dashboard-section--activity .glass-table td {
  padding-top: var(--ui-space-2);
  padding-bottom: var(--ui-space-2);
}
.ui-page--whatsapp .dashboard-section--activity .glass-table th {
  white-space: nowrap;
}
.ui-page--whatsapp .activity-table .glass-table,
.ui-page--whatsapp .campaigns-grid,
.ui-page--whatsapp .logs-table .glass-table {
  font-variant-numeric: tabular-nums;
}
.ui-page--whatsapp .activity-table .glass-table,
.ui-page--whatsapp .logs-table .glass-table,
.ui-page--whatsapp .variables-table {
  min-width: 0;
  width: 100%;
}
.ui-page--whatsapp .activity-table .glass-table tbody,
.ui-page--whatsapp .logs-table .glass-table tbody,
.ui-page--whatsapp .variables-table tbody {
  max-height: none;
}
.ui-page--whatsapp .activity-grid th:nth-child(1),
.ui-page--whatsapp .activity-grid td:nth-child(1) {
  width: 22%;
}
.ui-page--whatsapp .activity-grid th:nth-child(2),
.ui-page--whatsapp .activity-grid td:nth-child(2) {
  width: 42%;
}
.ui-page--whatsapp .activity-grid th:nth-child(3),
.ui-page--whatsapp .activity-grid td:nth-child(3) {
  width: 20%;
}
.ui-page--whatsapp .activity-grid th:nth-child(4),
.ui-page--whatsapp .activity-grid td:nth-child(4) {
  width: 16%;
}
.ui-page--whatsapp .activity-grid .cell-timestamp,
.ui-page--whatsapp .activity-grid .cell-status,
.ui-page--whatsapp .campaigns-grid .cell-meta,
.ui-page--whatsapp .campaigns-grid .cell-metric,
.ui-page--whatsapp .logs-table .cell-time,
.ui-page--whatsapp .logs-table .cell-stat {
  color: var(--ui-text-muted);
}
.ui-page--whatsapp .search-field--compact {
  min-width: 0;
  width: 100%;
}
.ui-page--whatsapp .date-filter--compact,
.ui-page--whatsapp .filter-select--compact,
.ui-page--whatsapp .template-select,
.ui-page--whatsapp .campaign-form mat-form-field {
  width: 100%;
}
.ui-page--whatsapp .date-filter--compact {
  width: 220px;
  flex: 0 0 220px;
}
.ui-page--whatsapp .date-filter--compact .mat-mdc-text-field-wrapper,
.ui-page--whatsapp .filter-select--compact .mat-mdc-text-field-wrapper,
.ui-page--whatsapp .campaign-form .mat-mdc-text-field-wrapper {
  border-radius: var(--ui-radius-lg);
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border);
  box-shadow: none;
}
.ui-page--whatsapp .date-filter--compact .mat-mdc-form-field-infix,
.ui-page--whatsapp .filter-select--compact .mat-mdc-form-field-infix,
.ui-page--whatsapp .campaign-form .mat-mdc-form-field-infix {
  min-height: 44px;
  padding: var(--ui-space-3) 0;
}
.ui-page--whatsapp .campaign-form .mat-mdc-form-field {
  --mat-form-field-container-height: 44px;
  margin-bottom: 0;
}
.ui-page--whatsapp .campaign-form .mat-mdc-form-field-subscript-wrapper {
  display: none;
}
.ui-page--whatsapp .campaign-form .mat-mdc-select-value,
.ui-page--whatsapp .campaign-form input.mat-mdc-input-element {
  font-size: var(--ui-text-sm);
}
.ui-page--whatsapp .campaign-table--refined {
  padding: 0;
  overflow: hidden;
}
.ui-page--whatsapp .campaign-table--refined .glass-table-scroll,
.ui-page--whatsapp .logs-table .glass-table-scroll {
  overflow-x: auto;
}
.ui-page--whatsapp .campaigns-grid {
  min-width: 1080px;
  width: 100%;
}
.ui-page--whatsapp .campaigns-grid tbody {
  max-height: none;
}
.ui-page--whatsapp .campaigns-grid th:nth-child(1),
.ui-page--whatsapp .campaigns-grid td:nth-child(1) {
  width: 18%;
}
.ui-page--whatsapp .campaigns-grid th:nth-child(2),
.ui-page--whatsapp .campaigns-grid td:nth-child(2) {
  width: 10%;
}
.ui-page--whatsapp .campaigns-grid th:nth-child(3),
.ui-page--whatsapp .campaigns-grid td:nth-child(3) {
  width: 14%;
}
.ui-page--whatsapp .campaigns-grid th:nth-child(4),
.ui-page--whatsapp .campaigns-grid td:nth-child(4) {
  width: 10%;
}
.ui-page--whatsapp .campaigns-grid th:nth-child(5),
.ui-page--whatsapp .campaigns-grid td:nth-child(5),
.ui-page--whatsapp .campaigns-grid th:nth-child(6),
.ui-page--whatsapp .campaigns-grid td:nth-child(6),
.ui-page--whatsapp .campaigns-grid th:nth-child(7),
.ui-page--whatsapp .campaigns-grid td:nth-child(7) {
  width: 8%;
}
.ui-page--whatsapp .campaigns-grid th:nth-child(8),
.ui-page--whatsapp .campaigns-grid td:nth-child(8),
.ui-page--whatsapp .campaigns-grid th:nth-child(9),
.ui-page--whatsapp .campaigns-grid td:nth-child(9) {
  width: 7%;
}
.ui-page--whatsapp .campaigns-grid th:nth-child(10),
.ui-page--whatsapp .campaigns-grid td:nth-child(10) {
  width: 6%;
}
.ui-page--whatsapp .campaigns-grid th:nth-child(11),
.ui-page--whatsapp .campaigns-grid td:nth-child(11) {
  width: 6%;
}
.ui-page--whatsapp .campaigns-grid th.col-metric,
.ui-page--whatsapp .campaigns-grid td.cell-metric,
.ui-page--whatsapp .campaigns-grid th.col-failed,
.ui-page--whatsapp .logs-table .cell-stat,
.ui-page--whatsapp .logs-table .col-stat {
  text-align: right;
}
.ui-page--whatsapp .campaigns-grid .cell-name,
.ui-page--whatsapp .campaigns-grid .cell-meta,
.ui-page--whatsapp .activity-grid .cell-event,
.ui-page--whatsapp .activity-grid .cell-entity,
.ui-page--whatsapp .logs-table .cell-cust,
.ui-page--whatsapp .logs-table .cell-phone,
.ui-page--whatsapp .logs-table .cell-camp {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ui-page--whatsapp .campaign-row--dense td {
  padding-top: var(--ui-space-3);
  padding-bottom: var(--ui-space-3);
}
.ui-page--whatsapp .cell-name {
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}
.ui-page--whatsapp .cell-meta {
  white-space: nowrap;
}
.ui-page--whatsapp .cell-failed .has-failures {
  color: var(--ui-danger);
  font-weight: var(--ui-font-semibold);
}
.ui-page--whatsapp .status-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 0 var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-2);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
}
.ui-page--whatsapp .status-tag.chip-muted {
  background: var(--ui-surface-2);
  color: var(--ui-text-muted);
}
.ui-page--whatsapp .status-tag.chip-amber,
.ui-page--whatsapp .status-pill.pill-sent {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}
.ui-page--whatsapp .status-tag.chip-warm,
.ui-page--whatsapp .status-pill.pill-delivered {
  background: var(--ui-accent-bg);
  border-color: var(--ui-accent-border);
  color: var(--ui-accent);
}
.ui-page--whatsapp .status-tag.chip-teal,
.ui-page--whatsapp .status-pill.pill-read {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}
.ui-page--whatsapp .status-tag.chip-danger,
.ui-page--whatsapp .status-pill.pill-failed {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
}
.ui-page--whatsapp .action-group {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-1);
}
.ui-page--whatsapp .campaigns-grid .ui-icon-btn {
  width: 30px;
  min-width: 30px;
  height: 30px;
}
.ui-page--whatsapp .empty-state--subtle,
.ui-page--whatsapp .empty-state--minimal,
.ui-page--whatsapp .empty-chat--minimal {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 180px;
  padding: var(--ui-space-6);
  border: 1px dashed var(--ui-border);
  border-radius: var(--ui-radius-xl);
  background: var(--ui-surface-1);
  color: var(--ui-text-muted);
  text-align: center;
}
.ui-page--whatsapp .chat-layout {
  position: relative;
  display: grid;
  grid-template-columns: minmax(340px, 420px) minmax(0, 1fr);
  gap: var(--ui-space-2);
  align-items: stretch;
  height: clamp(620px, 100dvh - 190px, 860px);
  min-height: 0;
  overflow: hidden;
  scroll-margin-top: var(--ui-space-4);
}
.ui-page--whatsapp .pane {
  display: flex;
  flex-direction: column;
  padding: 0;
  height: 100%;
  min-height: 0;
  overflow: hidden;
}
.ui-page--whatsapp .pane-header {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2);
  border-bottom: 1px solid var(--ui-border);
  flex: 0 0 auto;
}
.ui-page--whatsapp .conversation-header {
  border-bottom-color: color-mix(in srgb, var(--ui-border) 70%, transparent);
}
.ui-page--whatsapp .chat-list-titlebar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-2);
  min-width: 0;
}
.ui-page--whatsapp .chat-list-titlebar h2 {
  margin: 0;
  color: var(--ui-text-primary);
  font-family: var(--ui-font-display);
  font-size: var(--ui-text-2xl);
  font-weight: var(--ui-font-bold);
  line-height: 1.1;
}
.ui-page--whatsapp .conversations-pane--wa .search-field {
  min-height: 36px;
  border-radius: var(--ui-radius-md);
}
.ui-page--whatsapp .chat-filter-chips {
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
  overflow-x: auto;
  scrollbar-width: none;
}
.ui-page--whatsapp .chat-filter-chips::-webkit-scrollbar {
  display: none;
}
.ui-page--whatsapp .chat-filter-chip {
  flex: 0 0 auto;
  min-height: 28px;
  padding: 0 var(--ui-space-2);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: var(--ui-transition-base);
}
.ui-page--whatsapp .chat-filter-chip:hover,
.ui-page--whatsapp .chat-filter-chip.active {
  color: var(--ui-success);
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
}
.ui-page--whatsapp .conversation-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  padding: var(--ui-space-1);
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior-y: auto;
  overscroll-behavior-x: contain;
  scrollbar-gutter: stable;
}
.ui-page--whatsapp .conversation-row {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: var(--ui-space-2);
  align-items: center;
  width: 100%;
  min-height: 64px;
  padding: var(--ui-space-1) var(--ui-space-2);
  border: 1px solid transparent;
  border-radius: var(--ui-radius-lg);
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
  transition: var(--ui-transition-base);
}
.ui-page--whatsapp .conversation-row:hover {
  background: color-mix(in srgb, var(--ui-surface-hover) 82%, transparent);
  border-color: transparent;
}
.ui-page--whatsapp .conversation-row.active {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border);
  box-shadow: none;
}
.ui-page--whatsapp .conversation-avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  overflow: hidden;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-full);
  background: linear-gradient(135deg, var(--ui-accent-bg), var(--ui-surface-3));
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  letter-spacing: 0;
}
.ui-page--whatsapp .conversation-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ui-page--whatsapp .conversation-content {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.ui-page--whatsapp .conversation-title-line,
.ui-page--whatsapp .conversation-message-line,
.ui-page--whatsapp .conversation-meta-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-2);
  min-width: 0;
}
.ui-page--whatsapp .conversation-title-line {
  justify-content: flex-start;
  gap: 4px;
}
.ui-page--whatsapp .conversation-row .name {
  flex: 0 1 auto;
  min-width: 0;
  max-width: 55%;
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ui-page--whatsapp .conversation-row .timestamp {
  margin-left: auto;
  flex: 0 0 auto;
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}
.ui-page--whatsapp .conversation-row .timestamp.has-unread {
  color: var(--ui-success);
  font-weight: var(--ui-font-semibold);
}
.ui-page--whatsapp .conversation-row .preview {
  min-width: 0;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ui-page--whatsapp .conversation-row .phone {
  min-width: 0;
  color: var(--ui-text-subtle);
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-xs);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ui-page--whatsapp .unread-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-width: 22px;
  height: 22px;
  padding: 0 var(--ui-space-1);
  border-radius: var(--ui-radius-full);
  background: var(--ui-success);
  color: var(--ui-surface-base);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  line-height: 1;
}
.ui-page--whatsapp .mini-flag {
  flex: 0 0 auto;
  padding: 1px var(--ui-space-2);
  border-radius: var(--ui-radius-full);
  font-size: 10px;
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
}
.ui-page--whatsapp .mini-flag.sla {
  color: var(--ui-danger);
  background: var(--ui-danger-bg);
}
.ui-page--whatsapp .mini-flag.closed {
  color: var(--ui-text-muted);
  background: var(--ui-surface-2);
}
.ui-page--whatsapp .entity-badges {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  flex: 0 0 auto;
  min-width: 0;
}
.ui-page--whatsapp .entity-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-height: 16px;
  padding: 1px 5px;
  border-radius: var(--ui-radius-full);
  font-size: 9px;
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.03em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
  border: 1px solid transparent;
  transition: var(--ui-transition-base);
}
.ui-page--whatsapp .badge-employee {
  color: #fbbf24;
  background: rgba(251, 191, 36, 0.15);
  border-color: rgba(251, 191, 36, 0.25);
}
.ui-page--whatsapp .badge-customer {
  color: #2dd4bf;
  background: rgba(20, 184, 166, 0.15);
  border-color: rgba(20, 184, 166, 0.25);
}
.ui-page--whatsapp .badge-vendor,
.ui-page--whatsapp .badge-supplier {
  color: #a78bfa;
  background: rgba(139, 92, 246, 0.15);
  border-color: rgba(139, 92, 246, 0.25);
}
.ui-page--whatsapp .badge-insurance {
  color: #fb923c;
  background: rgba(251, 146, 60, 0.15);
  border-color: rgba(251, 146, 60, 0.25);
}
.ui-page--whatsapp .badge-corporate {
  color: #60a5fa;
  background: rgba(96, 165, 250, 0.15);
  border-color: rgba(96, 165, 250, 0.25);
}
.ui-page--whatsapp .badge-dealer {
  color: #f472b6;
  background: rgba(244, 114, 182, 0.15);
  border-color: rgba(244, 114, 182, 0.25);
}
.ui-page--whatsapp .badge-internal {
  color: #94a3b8;
  background: rgba(148, 163, 184, 0.1);
  border-color: rgba(148, 163, 184, 0.2);
}
.ui-page--whatsapp .badge-lead {
  color: #94a3b8;
  background: rgba(148, 163, 184, 0.1);
  border-color: rgba(148, 163, 184, 0.18);
}
.ui-page--whatsapp .badge-default {
  color: var(--ui-text-muted);
  background: var(--ui-surface-2);
  border-color: var(--ui-border);
}
.ui-page--whatsapp .conversation-row .entity-badges {
  flex: 0 1 auto;
  max-width: none;
  overflow: hidden;
  flex-wrap: nowrap;
}
.ui-page--whatsapp .chat-header .entity-badge {
  min-height: 20px;
  padding: 0 8px;
  font-size: 11px;
}
.ui-page--whatsapp .badge-overflow {
  color: var(--ui-text-subtle);
  background: var(--ui-surface-2);
  border-color: var(--ui-border);
  cursor: default;
}
.ui-page--whatsapp .conversation-list--loading {
  gap: var(--ui-space-1);
}
.ui-page--whatsapp .skeleton-conversation {
  pointer-events: none;
}
.ui-page--whatsapp .skeleton-avatar {
  background: var(--ui-surface-3);
}
.ui-page--whatsapp .conversation-loading-more {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-3);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
}
.ui-page--whatsapp .spinner-small {
  width: 16px;
  height: 16px;
  border: 2px solid var(--ui-border);
  border-top-color: var(--ui-accent);
  border-radius: 50%;
  animation: spin 0.6s linear infinite;
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
.ui-page--whatsapp .chat-pane {
  display: flex;
  flex-direction: column;
}
.ui-page--whatsapp .chat-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  padding: var(--ui-space-2) var(--ui-space-3);
  border-bottom: 1px solid var(--ui-border);
  flex: 0 0 auto;
}
.ui-page--whatsapp .customer-block,
.ui-page--whatsapp .chat-controls {
  min-width: 0;
}
.ui-page--whatsapp .title-line {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
  line-height: 1.1;
}
.ui-page--whatsapp .title-line h2 {
  margin: 0;
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}
.ui-page--whatsapp .meta-line {
  margin: 2px 0 0;
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}
.ui-page--whatsapp .chat-controls {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  flex-wrap: wrap;
}
.ui-page--whatsapp .chat-controls--compact .channel-trigger {
  height: 34px;
  padding-inline: var(--ui-space-3);
}
.ui-page--whatsapp .chat-controls--compact .ui-icon-btn {
  width: 34px;
  height: 34px;
}
.ui-page--whatsapp .status-pill--small,
.ui-page--whatsapp .status-pill--tiny,
.ui-page--whatsapp .status-pill--subtle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-2);
  color: var(--ui-text-secondary);
  font-weight: var(--ui-font-semibold);
}
.ui-page--whatsapp .status-pill--small {
  min-height: 24px;
  padding: 0 var(--ui-space-2);
  font-size: var(--ui-text-xs);
}
.ui-page--whatsapp .status-pill--tiny {
  min-height: 24px;
  padding: 0 var(--ui-space-2);
  font-size: 11px;
}
.ui-page--whatsapp .status-pill.closed {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
}
.ui-page--whatsapp .status-banner {
  margin: var(--ui-space-2) var(--ui-space-3) 0;
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-lg);
  border: 1px solid var(--ui-border);
  font-size: var(--ui-text-sm);
  flex: 0 0 auto;
}
.ui-page--whatsapp .status-banner.closed {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
}
.ui-page--whatsapp .status-banner.caution {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}
.ui-page--whatsapp .chat-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior-y: auto;
  overscroll-behavior-x: contain;
  scrollbar-gutter: stable;
  padding: var(--ui-space-3);
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.02), transparent 24%);
}
.ui-page--whatsapp .message-label {
  align-self: center;
  padding: calc(var(--ui-space-1) / 2) var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
}
.ui-page--whatsapp .date-separator {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: var(--ui-space-3) 0 var(--ui-space-2);
  pointer-events: none;
  -webkit-user-select: none;
          user-select: none;
}
.ui-page--whatsapp .date-separator__label {
  padding: 3px var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  letter-spacing: 0.02em;
}
.ui-page--whatsapp .message {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  width: fit-content;
  max-width: min(68%, 520px);
  padding: var(--ui-space-3) var(--ui-space-4);
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.045);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.16);
}
.ui-page--whatsapp .message.outgoing {
  margin-left: auto;
  background: rgba(255, 130, 90, 0.12);
  border-color: rgba(255, 130, 90, 0.26);
}
.ui-page--whatsapp .message.incoming {
  margin-right: auto;
  background: rgba(255, 255, 255, 0.055);
}
.ui-page--whatsapp .message-type,
.ui-page--whatsapp .message-meta {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}
.ui-page--whatsapp .message-body {
  color: var(--ui-text-primary);
  line-height: 1.5;
  word-break: break-word;
}
.ui-page--whatsapp .message-body.document {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
}
.ui-page--whatsapp .message-body.document a {
  color: var(--ui-text-primary);
  text-decoration: underline;
}
.ui-page--whatsapp .image-caption {
  margin-top: var(--ui-space-2);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
}
.ui-page--whatsapp .typing-indicator {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: 0 var(--ui-space-2);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
}
.ui-page--whatsapp .typing-indicator .dot {
  background: var(--ui-text-muted);
  opacity: 0.7;
}
.ui-page--whatsapp .chat-composer {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  padding: var(--ui-space-2) var(--ui-space-3) var(--ui-space-3);
  border-top: 0;
  background: transparent;
  flex: 0 0 auto;
}
.ui-page--whatsapp .composer-surface {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  padding: var(--ui-space-2);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
}
.ui-page--whatsapp .composer-input-row {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto auto;
  align-items: center;
  gap: var(--ui-space-2);
  min-width: 0;
}
.ui-page--whatsapp .composer-surface.disabled {
  opacity: 0.7;
}
.ui-page--whatsapp .composer-surface textarea,
.ui-page--whatsapp .note-input textarea {
  width: 100%;
  resize: vertical;
  border: none;
  outline: none;
  background: transparent;
  color: var(--ui-text-primary);
  font: inherit;
  min-height: 30px;
  max-height: 72px;
  resize: none;
  line-height: 1.4;
  padding: 0 var(--ui-space-2);
}
.ui-page--whatsapp .composer-surface textarea::placeholder,
.ui-page--whatsapp .note-input textarea::placeholder {
  color: var(--ui-text-subtle);
}
.ui-page--whatsapp .composer-actions,
.ui-page--whatsapp .composer-meta {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}
.ui-page--whatsapp .composer-meta {
  justify-content: space-between;
  min-height: 20px;
  padding: 0 var(--ui-space-2);
}
.ui-page--whatsapp .template-selected {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
}
.ui-page--whatsapp .composer-surface--template-only {
  border-radius: var(--ui-radius-lg);
}
.ui-page--whatsapp .template-only-bar {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  min-height: 44px;
  padding: 0 var(--ui-space-2);
}
.ui-page--whatsapp .template-only-icon {
  color: var(--ui-warning);
  font-size: 18px;
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
}
.ui-page--whatsapp .template-only-label {
  flex: 1 1 auto;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ui-page--whatsapp .template-only-pick {
  flex: 0 0 auto;
}
.ui-page--whatsapp .template-only-bar--selected {
  gap: var(--ui-space-3);
}
.ui-page--whatsapp .template-preview-col {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.ui-page--whatsapp .template-preview-name {
  display: flex;
  align-items: center;
  gap: 2px;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}
.ui-page--whatsapp .template-preview-body {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  line-height: 1.4;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ui-page--whatsapp .clear-template-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  margin-left: 4px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  color: var(--ui-text-muted);
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
  transition: var(--ui-transition-base);
}
.ui-page--whatsapp .clear-template-btn:hover {
  background: rgba(255, 255, 255, 0.2);
  color: var(--ui-text-primary);
}
.ui-page--whatsapp .send {
  min-height: 38px;
  margin-left: 0;
  color: var(--ui-accent);
}
.ui-page--whatsapp .empty-chat__text {
  font-size: var(--ui-text-base);
  color: var(--ui-text-muted);
}
.ui-page--whatsapp .empty-chat {
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
}
.ui-page--whatsapp .wa-drawer-overlay.mat-drawer-container {
  position: fixed !important;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1000;
  pointer-events: none;
  background: transparent !important;
}
.ui-page--whatsapp .wa-drawer-overlay .mat-drawer-backdrop {
  pointer-events: auto;
}
.ui-page--whatsapp .wa-drawer-overlay .mat-drawer {
  pointer-events: auto;
}
.ui-page--whatsapp .wa-drawer-overlay.mat-drawer-container-has-open {
  pointer-events: auto;
}
.ui-page--whatsapp .context-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
}
.ui-page--whatsapp .context-header h4 {
  margin: 0;
  color: var(--ui-text-primary);
}
.ui-page--whatsapp .context-card {
  gap: var(--ui-space-3);
  margin-bottom: var(--ui-space-3);
}
.ui-page--whatsapp .context-card:last-child {
  margin-bottom: 0;
}
.ui-page--whatsapp .profile-row,
.ui-page--whatsapp .note-meta {
  display: grid;
  grid-template-columns: minmax(80px, 96px) minmax(0, 1fr);
  gap: var(--ui-space-3);
  align-items: start;
}
.ui-page--whatsapp .profile-row .label,
.ui-page--whatsapp .chip-panel .label,
.ui-page--whatsapp .template-preview .label,
.ui-page--whatsapp .modal-indicators .label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ui-text-muted);
}
.ui-page--whatsapp .profile-row .value,
.ui-page--whatsapp .entity-title,
.ui-page--whatsapp .note-author {
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-medium);
}
.ui-page--whatsapp .profile-row .value.warn {
  color: var(--ui-warning);
}
.ui-page--whatsapp .tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
}
.ui-page--whatsapp .tag--small {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 var(--ui-space-2);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-secondary);
}
.ui-page--whatsapp .section-toggle,
.ui-page--whatsapp .entity-row {
  border: none;
  background: transparent;
}
.ui-page--whatsapp .entity-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  width: 100%;
  padding: var(--ui-space-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-lg);
  background: var(--ui-surface-2);
  text-align: left;
  cursor: pointer;
  transition: var(--ui-transition-base);
}
.ui-page--whatsapp .entity-row--clickable:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: var(--ui-border-light);
}
.ui-page--whatsapp .entity-arrow {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: var(--ui-text-muted);
  opacity: 0.5;
  transition: var(--ui-transition-base);
}
.ui-page--whatsapp .entity-row--clickable:hover .entity-arrow {
  opacity: 1;
  color: var(--ui-text-primary);
}
.ui-page--whatsapp .entity-meta,
.ui-page--whatsapp .note-time,
.ui-page--whatsapp .pagination-meta,
.ui-page--whatsapp .count-info,
.ui-page--whatsapp .channel-info,
.ui-page--whatsapp .muted {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
}
.ui-page--whatsapp .note-input {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}
.ui-page--whatsapp .note-list {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}
.ui-page--whatsapp .note-row {
  padding-top: var(--ui-space-3);
  border-top: 1px solid var(--ui-border);
}
.ui-page--whatsapp .note-text {
  margin: var(--ui-space-2) 0 0;
  color: var(--ui-text-secondary);
}
.ui-page--whatsapp .modal-layer {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--ui-space-6);
  z-index: 10000;
  isolation: isolate;
}
.ui-page--whatsapp .modal-layer .modal-backdrop {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.ui-page--whatsapp .logs-modal,
.ui-page--whatsapp .campaign-modal {
  position: relative;
  z-index: 1;
  width: min(1180px, 100vw - var(--ui-space-8));
  max-height: calc(100vh - var(--ui-space-10));
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.ui-page--whatsapp .logs-modal {
  width: min(1120px, 100vw - var(--ui-space-8));
}
.ui-page--whatsapp .campaign-modal--refined {
  width: min(1080px, 100vw - var(--ui-space-8));
}
.ui-page--whatsapp .modal-header--refined .meta-row {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}
.ui-page--whatsapp .logs-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--ui-space-3);
  padding: 0 var(--ui-space-5) var(--ui-space-4);
}
.ui-page--whatsapp .summary-card {
  align-items: flex-start;
}
.ui-page--whatsapp .summary-card .label {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.ui-page--whatsapp .summary-card .value {
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  font-variant-numeric: tabular-nums;
}
.ui-page--whatsapp .value--error.has-error {
  color: var(--ui-danger);
}
.ui-page--whatsapp .logs-table {
  flex: 1 1 auto;
  overflow: auto;
}
.ui-page--whatsapp .logs-table .glass-table {
  min-width: 940px;
}
.ui-page--whatsapp .logs-table .glass-table th:nth-child(1),
.ui-page--whatsapp .logs-table .glass-table td:nth-child(1) {
  width: 18%;
}
.ui-page--whatsapp .logs-table .glass-table th:nth-child(2),
.ui-page--whatsapp .logs-table .glass-table td:nth-child(2) {
  width: 22%;
}
.ui-page--whatsapp .logs-table .glass-table th:nth-child(3),
.ui-page--whatsapp .logs-table .glass-table td:nth-child(3) {
  width: 18%;
}
.ui-page--whatsapp .logs-table .glass-table th:nth-child(4),
.ui-page--whatsapp .logs-table .glass-table td:nth-child(4) {
  width: 24%;
}
.ui-page--whatsapp .logs-table .glass-table th:nth-child(5),
.ui-page--whatsapp .logs-table .glass-table td:nth-child(5) {
  width: 12%;
}
.ui-page--whatsapp .logs-table .glass-table th:nth-child(6),
.ui-page--whatsapp .logs-table .glass-table td:nth-child(6) {
  width: 6%;
}
.ui-page--whatsapp .logs-footer,
.ui-page--whatsapp .modal-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  padding: var(--ui-space-4) var(--ui-space-5);
  border-top: 1px solid var(--ui-border);
  background: var(--ui-surface-1);
}
.ui-page--whatsapp .pagination-controls,
.ui-page--whatsapp .modal-indicators {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  flex-wrap: wrap;
}
.ui-page--whatsapp .modal-indicators > div {
  display: flex;
  flex-direction: column;
  gap: calc(var(--ui-space-1) / 2);
  min-width: 110px;
}
.ui-page--whatsapp .limit-warning {
  margin: 0 var(--ui-space-5);
  padding: var(--ui-space-3) var(--ui-space-4);
  border-radius: var(--ui-radius-lg);
  background: var(--ui-warning-bg);
  border: 1px solid var(--ui-warning-border);
  color: var(--ui-warning);
}
.ui-page--whatsapp .campaign-form {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  padding: var(--ui-space-4);
  overflow: auto;
}
.ui-page--whatsapp .campaign-form--compact {
  background: radial-gradient(circle at 14% 0%, rgba(255, 120, 79, 0.08), transparent 28%), linear-gradient(180deg, rgba(255, 255, 255, 0.018), transparent 40%);
}
.ui-page--whatsapp .campaign-form-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 0.72fr);
  gap: var(--ui-space-3);
}
.ui-page--whatsapp .form-section {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-lg);
  background: rgba(255, 255, 255, 0.035);
}
.ui-page--whatsapp .form-section--compact {
  gap: var(--ui-space-3);
}
.ui-page--whatsapp .campaign-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  min-width: 0;
}
.ui-page--whatsapp .form-section h3 {
  margin: 0;
  font-size: var(--ui-text-base);
  line-height: 1.2;
  color: var(--ui-text-primary);
}
.ui-page--whatsapp .form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-3);
}
.ui-page--whatsapp .audience-summary {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
}
.ui-page--whatsapp .audience-summary span {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 0 var(--ui-space-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
}
.ui-page--whatsapp .audience-picker-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ui-space-3);
}
.ui-page--whatsapp .chip-panel {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-lg);
  border: 1px solid var(--ui-border);
  background: rgba(255, 255, 255, 0.025);
}
.ui-page--whatsapp .chip-panel--compact {
  min-height: 112px;
  max-height: 176px;
  overflow: auto;
}
.ui-page--whatsapp .chip-panel__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-2);
}
.ui-page--whatsapp .chip-panel__header .label {
  margin: 0;
}
.ui-page--whatsapp .chip-panel__header span {
  color: var(--ui-text-subtle);
  font-size: var(--ui-text-xs);
  font-variant-numeric: tabular-nums;
}
.ui-page--whatsapp .muted--empty {
  min-height: 32px;
  display: inline-flex;
  align-items: center;
}
.ui-page--whatsapp .audience-chip {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-2);
  width: 100%;
  min-height: 30px;
  padding: 0 var(--ui-space-2);
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-2);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  cursor: pointer;
  transition: var(--ui-transition-base);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ui-page--whatsapp .audience-chip.active {
  background: var(--ui-accent-bg);
  border-color: var(--ui-accent-border);
  color: var(--ui-accent);
}
.ui-page--whatsapp .chip-count {
  font-size: 11px;
  opacity: 0.7;
  margin-left: 2px;
}
.ui-page--whatsapp .direct-recipient-panel {
  display: grid;
  grid-template-columns: minmax(180px, 0.32fr) minmax(0, 1fr);
  gap: var(--ui-space-3);
  align-items: center;
  padding: var(--ui-space-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-lg);
  background: rgba(255, 255, 255, 0.025);
}
.ui-page--whatsapp .direct-recipient-copy {
  display: flex;
  flex-direction: column;
  gap: calc(var(--ui-space-1) / 2);
  min-width: 0;
}
.ui-page--whatsapp .direct-recipient-copy .label {
  margin: 0;
}
.ui-page--whatsapp .manual-phone-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  min-width: 0;
}
.ui-page--whatsapp .phone-input-field {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex: 1;
  min-width: 0;
  min-height: 40px;
  padding: 0 var(--ui-space-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
}
.ui-page--whatsapp .phone-prefix {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  font-variant-numeric: tabular-nums;
}
.ui-page--whatsapp .phone-input-field input {
  width: 100%;
  min-width: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--ui-text-primary);
  font: inherit;
  font-variant-numeric: tabular-nums;
}
.ui-page--whatsapp .phone-input-field input::placeholder {
  color: var(--ui-text-subtle);
}
.ui-page--whatsapp .manual-recipients-list {
  grid-column: 2;
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
  margin-top: calc(var(--ui-space-1) * -1);
}
.ui-page--whatsapp .recipient-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  min-height: 32px;
  padding: 0 var(--ui-space-2) 0 var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  background: var(--ui-accent-bg);
  border: 1px solid var(--ui-accent-border);
  color: var(--ui-accent);
  font-size: var(--ui-text-sm);
}
.ui-page--whatsapp .recipient-phone {
  font-variant-numeric: tabular-nums;
  font-weight: var(--ui-font-medium);
}
.ui-page--whatsapp .recipient-chip .remove-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: transparent;
  color: var(--ui-accent);
  cursor: pointer;
  transition: var(--ui-transition-base);
}
.ui-page--whatsapp .recipient-chip .remove-btn:hover {
  background: var(--ui-danger-bg);
  color: var(--ui-danger);
}
.ui-page--whatsapp .recipient-chip .remove-btn .mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}
.ui-page--whatsapp .option-line,
.ui-page--whatsapp .option-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
  color: var(--ui-text-secondary);
}
.ui-page--whatsapp .option-line--compact {
  min-height: 40px;
  padding: 0 var(--ui-space-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-lg);
  background: rgba(255, 255, 255, 0.025);
}
.ui-page--whatsapp .schedule-option {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  min-height: 38px;
  padding: 0 var(--ui-space-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
  color: var(--ui-text-secondary);
  cursor: pointer;
  transition: var(--ui-transition-base);
}
.ui-page--whatsapp .schedule-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.ui-page--whatsapp .schedule-option mat-icon {
  width: 18px;
  height: 18px;
  font-size: 18px;
}
.ui-page--whatsapp .schedule-option.active {
  color: var(--ui-accent);
  background: var(--ui-accent-bg);
  border-color: var(--ui-accent-border);
}
.ui-page--whatsapp .option-line input[type=number],
.ui-page--whatsapp .option-row input[type=datetime-local] {
  min-height: 36px;
  padding: 0 var(--ui-space-3);
  border-radius: var(--ui-radius-lg);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-2);
  color: var(--ui-text-primary);
}
.ui-page--whatsapp .option-line input[type=number] {
  width: 86px;
  font-variant-numeric: tabular-nums;
}
.ui-page--whatsapp .schedule-input {
  flex: 1 1 190px;
  min-width: 180px;
}
.ui-page--whatsapp .form-section--template .campaign-section-header {
  align-items: flex-start;
}
.ui-page--whatsapp .form-section--template .template-select {
  width: min(420px, 55%);
}
.ui-page--whatsapp .template-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.75fr);
  gap: var(--ui-space-3);
  align-items: start;
}
.ui-page--whatsapp .variables-table {
  min-width: 640px;
}
.ui-page--whatsapp .variables-table th:nth-child(1),
.ui-page--whatsapp .variables-table td:nth-child(1) {
  width: 24%;
}
.ui-page--whatsapp .variables-table th:nth-child(2),
.ui-page--whatsapp .variables-table td:nth-child(2),
.ui-page--whatsapp .variables-table th:nth-child(3),
.ui-page--whatsapp .variables-table td:nth-child(3) {
  width: 38%;
}
.ui-page--whatsapp .template-preview {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}
.ui-page--whatsapp .preview-card {
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-lg);
  border: 1px solid var(--ui-border);
  background: rgba(255, 255, 255, 0.025);
  color: var(--ui-text-secondary);
  line-height: 1.6;
}
@media (max-width: 1200px) {
  .ui-page--whatsapp .kpi-grid,
  .ui-page--whatsapp .conversation-health,
  .ui-page--whatsapp .logs-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ui-page--whatsapp .dashboard-main-grid {
    grid-template-columns: 1fr;
  }
  .ui-page--whatsapp .chat-layout {
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .ui-page--whatsapp .pane {
    min-height: 560px;
  }
  .ui-page--whatsapp .context-drawer {
    top: auto;
    right: var(--ui-space-4);
    bottom: var(--ui-space-4);
    left: var(--ui-space-4);
    width: auto;
    max-height: 70vh;
  }
  .ui-page--whatsapp .campaign-form-grid,
  .ui-page--whatsapp .audience-picker-grid,
  .ui-page--whatsapp .template-grid {
    grid-template-columns: 1fr;
  }
  .ui-page--whatsapp .direct-recipient-panel {
    grid-template-columns: 1fr;
  }
  .ui-page--whatsapp .manual-recipients-list {
    grid-column: 1;
  }
}
@media (max-width: 768px) {
  .ui-page--whatsapp .kpi-grid,
  .ui-page--whatsapp .conversation-health,
  .ui-page--whatsapp .form-grid,
  .ui-page--whatsapp .logs-summary {
    grid-template-columns: 1fr;
  }
  .ui-page--whatsapp .section-header--compact,
  .ui-page--whatsapp .dashboard-toolbar,
  .ui-page--whatsapp .chat-header,
  .ui-page--whatsapp .logs-footer,
  .ui-page--whatsapp .modal-footer {
    flex-direction: column;
    align-items: stretch;
  }
  .ui-page--whatsapp .dashboard-toolbar__copy,
  .ui-page--whatsapp .dashboard-toolbar__actions {
    justify-content: flex-start;
  }
  .ui-page--whatsapp .date-filter--compact {
    max-width: none;
    width: 100%;
    flex: 1 1 auto;
  }
  .ui-page--whatsapp .message {
    max-width: 100%;
  }
  .ui-page--whatsapp .campaign-section-header,
  .ui-page--whatsapp .direct-recipient-panel,
  .ui-page--whatsapp .manual-phone-row,
  .ui-page--whatsapp .option-line--compact,
  .ui-page--whatsapp .option-row--schedule {
    align-items: stretch;
    flex-direction: column;
  }
  .ui-page--whatsapp .form-section--template .template-select {
    width: 100%;
  }
  .ui-page--whatsapp .chat-body,
  .ui-page--whatsapp .chat-composer,
  .ui-page--whatsapp .campaign-form {
    padding-left: var(--ui-space-4);
    padding-right: var(--ui-space-4);
  }
  .ui-page--whatsapp .modal-layer {
    padding: var(--ui-space-3);
  }
  .ui-page--whatsapp .logs-modal,
  .ui-page--whatsapp .campaign-modal {
    width: 100%;
    max-height: calc(100vh - var(--ui-space-6));
  }
}

/* ==========================================================================
   UI PAGE VARIANT - MANAGEMENT SUB-PAGES
   ==========================================================================

   Covers: Traffic Details, Lifecycle Conversions, Performance Stats, 
           Branch Comparison

   REUSES from existing contracts:
   - fd-* classes from financial-dashboard.scss
   - period-chip, live-pill from customer-lifecycle.scss
   - glass-table from data/table.scss
   - ApexCharts tooltips from vendors/apexcharts.scss

   ========================================================================== */
/* ==========================================================================
   SHARED SHELLS & LAYOUTS
   ========================================================================== */
.traffic-shell,
.conversions-shell {
  position: relative;
  /* Page padding now handled by .ui-page contract */
  min-height: calc(100vh - 60px);
}

.back-link {
  color: rgba(255, 255, 255, 0.72);
  text-decoration: none;
  font-size: 13px;
}

.back-link:hover {
  text-decoration: underline;
}

.panel-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 18px;
}

.panel-header .fd-eyebrow {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: -0.01em;
  text-transform: none;
  color: #f5f8ff;
  margin: 0;
}

.panel-header h2,
.panel-header h3 {
  margin: 2px 0 4px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #ffb37a;
}

.panel-split {
  display: grid;
  grid-template-columns: minmax(220px, 280px) 1fr;
  gap: 18px;
  align-items: stretch;
}

/* ==========================================================================
   STAT ITEMS & OVERVIEW CARDS
   ========================================================================== */
.stat-stack {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.stat-item {
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  padding: 14px 16px;
  background: rgba(255, 255, 255, 0.03);
}

.stat-item .label {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.62);
}

.stat-item .value {
  font-size: 32px;
  font-weight: 700;
  margin: 6px 0 4px;
}

.stat-item .helper {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.6);
}

.overview-card {
  border-radius: 18px;
  padding: 14px 16px;
  background: rgba(0, 0, 0, 0.28);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.overview-card .label {
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.62);
}

.overview-card .value {
  font-size: 28px;
  font-weight: 700;
  margin: 4px 0;
}

.overview-card .helper {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.58);
}

/* ==========================================================================
   TRAFFIC DETAILS SPECIFIC
   ========================================================================== */
.traffic-overview .overview-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.performance-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
}

.performance-body {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 16px;
  margin-top: 20px;
}

.chart-card {
  padding: 10px;
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.04);
}

.chart-card.expanded {
  min-height: 260px;
}

.team-performance .table-card,
.traffic-shell .table-card,
.conversions-shell .table-card,
.branch-comparison-shell .table-card {
  padding: 12px;
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.04);
}

.table-head {
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
}

.glass-table-wrap.compact {
  max-height: 260px;
  overflow: auto;
}

/* App Panel (Traffic Details) */
.app-panel .app-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 16px;
}

.app-card {
  padding: 14px;
  border-radius: 22px;
  background: rgba(0, 0, 0, 0.4);
  border: 1px solid rgba(255, 255, 255, 0.06);
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.app-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.traffic-shell .chip {
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.traffic-shell .chip.ios {
  background: rgba(122, 91, 255, 0.2);
  border-color: rgba(122, 91, 255, 0.4);
}

.traffic-shell .chip.android {
  background: rgba(255, 122, 61, 0.2);
  border-color: rgba(255, 122, 61, 0.4);
}

.app-metrics {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 10px;
}

.app-metrics .metric {
  padding: 10px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.04);
}

.app-metrics .metric-label {
  margin: 0;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.6);
}

.app-metrics .metric-value {
  margin: 4px 0 0;
  font-size: 17px;
  font-weight: 600;
}

/* ==========================================================================
   CONVERSIONS SPECIFIC
   ========================================================================== */
.conversions-overview .overview-grid,
.conversions-analysis .analysis-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}

.donut-card {
  border-radius: 22px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(0, 0, 0, 0.35);
  padding: 16px;
}

.conversions-bottom .bottom-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 16px;
}

/* ==========================================================================
   PERFORMANCE STATS SPECIFIC
   ========================================================================== */
.team-performance {
  position: relative;
  max-width: 1280px;
  margin: 0 auto;
  z-index: 1;
}

.glow {
  position: fixed;
  border-radius: 50%;
  filter: blur(90px);
  opacity: 0.45;
  pointer-events: none;
  animation: glowPulse 8s ease-in-out infinite;
  z-index: 0;
}

.glow-1 {
  width: 300px;
  height: 300px;
  top: -30px;
  left: -60px;
  background: rgba(255, 122, 61, 0.7);
}

.glow-2 {
  width: 320px;
  height: 320px;
  top: 40px;
  right: -70px;
  background: rgba(108, 91, 255, 0.6);
  animation-delay: 1.2s;
}

.glow-3 {
  width: 240px;
  height: 240px;
  bottom: 20px;
  left: 30%;
  background: rgba(25, 210, 196, 0.5);
  animation-delay: 2s;
}

@keyframes glowPulse {
  0%, 100% {
    transform: translate3d(0, 0, 0) scale(0.95);
    opacity: 0.4;
  }
  50% {
    transform: translate3d(10px, -20px, 0) scale(1.05);
    opacity: 0.6;
  }
}
.team-performance .glass {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 22px 60px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-radius: 22px;
}

.dashboard-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 20px 24px;
  background: transparent;
  border: none;
  box-shadow: none;
}

.dashboard-brand {
  min-width: 260px;
}

.brand-title {
  font-size: 30px;
  font-weight: 700;
  letter-spacing: -0.01em;
  margin-bottom: 4px;
}

.brand-subtitle {
  color: #cdd7f9;
  margin: 0 0 14px;
}

.filter-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  justify-content: flex-end;
}

.pill-filter {
  min-width: 220px;
}

.branch-filter {
  min-width: 180px;
}

.team-performance .pill,
.team-performance button.pill,
.customer-overview-page .pill,
.customer-overview-page button.pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.08);
  color: #f7f8ff;
  font-size: 13px;
  font-weight: 500;
  cursor: default;
}

.team-performance .pill.secondary,
.customer-overview-page .pill.secondary {
  background: rgba(83, 113, 173, 0.35);
  border-color: rgba(125, 226, 255, 0.6);
}

.team-performance .pill.soft,
.customer-overview-page .pill.soft {
  background: rgba(255, 255, 255, 0.08);
}

.team-performance .pill.light,
.customer-overview-page .pill.light {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
}

.team-performance .pill.ghost,
.customer-overview-page .pill.ghost {
  cursor: pointer;
  border-color: rgba(255, 255, 255, 0.16);
  background: rgba(15, 18, 32, 0.5);
  transition: transform 0.2s ease, background 0.2s ease;
}

.team-performance .pill.ghost:hover,
.customer-overview-page .pill.ghost:hover {
  transform: translateY(-1px);
  background: rgba(255, 255, 255, 0.16);
}

.team-performance button.pill,
.customer-overview-page button.pill {
  border: none;
  outline: none;
}

.chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.panel {
  margin-top: 22px;
  padding: 22px;
  position: relative;
  overflow: hidden;
}

.performance-hero {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 24px;
  align-items: stretch;
}

.hero-copy {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.team-performance .section-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.team-performance .section-header h2,
.team-performance .section-header h3 {
  margin: 0;
  letter-spacing: -0.2px;
}

.eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 11px;
  color: #ffba85;
  margin: 0 0 6px;
}

.team-performance .muted {
  color: #cdd7f9;
  margin: 4px 0 0;
}

.metrics-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 16px;
}

.team-performance .metric,
.traffic-shell .metric,
.customer-overview-page .metric {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  padding: 14px 16px;
}

.stat-value {
  font-size: 28px;
  font-weight: 600;
  margin: 0;
}

.duo-panel {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 18px;
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
}

/* .glass-card visuals → Single owner: ui/layout/card.scss */
/* Removed: background, border, radius, shadow, blur. Use .ui-card */
.breakdown-body {
  display: flex;
  align-items: center;
  gap: 28px;
  margin-top: 18px;
}

.donut {
  width: 160px;
  height: 160px;
  border-radius: 50%;
  position: relative;
  box-shadow: inset 0 0 30px rgba(0, 0, 0, 0.45);
}

.donut-center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: rgba(7, 10, 18, 0.85);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: 13px;
}

.breakdown-list {
  list-style: none;
  padding: 0;
  margin: 0;
  width: 100%;
}

.breakdown-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 0;
  font-size: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.breakdown-list li:last-of-type {
  border-bottom: none;
}

.breakdown-list .dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  margin-right: 10px;
}

.breakdown-list .label {
  flex: 1;
  color: rgba(255, 255, 255, 0.7);
}

.leaders-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.top-employee {
  padding: 12px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.top-employee:last-of-type {
  border-bottom: none;
}

.top-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.rank {
  font-size: 20px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.4);
}

.top-info .name {
  margin: 0;
  font-weight: 600;
}

.top-info .role {
  margin: 0;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.6);
}

.top-metrics {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.6);
  margin-top: 6px;
}

.progress {
  height: 4px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 999px;
  overflow: hidden;
  margin-top: 8px;
}

.progress-bar {
  height: 100%;
  background: linear-gradient(90deg, #ffb774, #ff4780);
  transition: width 0.4s ease;
}

.spotlight-panel .spotlight-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 16px;
  margin-top: 12px;
}

.micro-chart {
  margin-top: 18px;
  min-height: 120px;
}

.role-section {
  padding: 26px;
}

/* ── SAP-style branch divider (GROUP mode) ── */
.branch-divider {
  display: flex;
  align-items: center;
  gap: 0;
  margin: 28px 0 6px;
}
.branch-divider:first-of-type {
  margin-top: 18px;
}

.branch-divider__line {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 183, 116, 0.35) 20%, rgba(255, 183, 116, 0.35) 80%, transparent);
}

.branch-divider__label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 18px;
  border-radius: 999px;
  background: linear-gradient(145deg, rgba(255, 183, 116, 0.12), rgba(255, 183, 116, 0.04));
  border: 1px solid rgba(255, 183, 116, 0.22);
  backdrop-filter: blur(8px);
  white-space: nowrap;
}

.branch-divider__icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: rgba(255, 183, 116, 0.85);
}

.branch-divider__name {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.92);
}

.branch-divider__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: 999px;
  background: rgba(255, 183, 116, 0.2);
  color: #ffb774;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.role-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 18px;
  margin-top: 18px;
}

.member-card {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.member-top {
  display: flex;
  align-items: center;
  gap: 18px;
}

.avatar {
  position: relative;
  width: 64px;
  height: 64px;
}

.avatar img {
  width: 100%;
  height: 100%;
  border-radius: 18px;
  object-fit: cover;
}

.avatar-glow {
  position: absolute;
  inset: -6px;
  border-radius: 24px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  animation: avatarPulse 4s ease-in-out infinite;
}

@keyframes avatarPulse {
  0% {
    opacity: 0.25;
  }
  50% {
    opacity: 0.85;
  }
  100% {
    opacity: 0.25;
  }
}
.member-title h3 {
  margin: 0;
  font-size: 18px;
}

.member-title p {
  margin: 0;
  color: rgba(255, 255, 255, 0.6);
}

.member-meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.member-meta .label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.55);
  margin: 0 0 4px;
}

.member-meta .value {
  margin: 0;
  font-weight: 600;
}

.member-metrics {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.metric-pill {
  flex: 1 1 30%;
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.metric-pill .label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  display: block;
  margin-bottom: 4px;
  color: rgba(255, 255, 255, 0.55);
}

.metric-pill .value {
  font-size: 16px;
  font-weight: 600;
}

.table-section {
  overflow: hidden;
}

.table-actions {
  display: flex;
  gap: 12px;
}

.table-wrapper {
  overflow-x: auto;
  margin-top: 16px;
}

.table-section table {
  width: 100%;
  border-collapse: collapse;
  color: inherit;
}

.table-section th,
.table-section td {
  padding: 14px 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 14px;
}

.table-section th {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: rgba(255, 255, 255, 0.6);
}

.table-section tbody tr:hover {
  background: rgba(255, 255, 255, 0.02);
}

/* ==========================================================================
   BRANCH COMPARISON SPECIFIC
   ========================================================================== */
.branch-comparison-shell {
  position: relative;
  isolation: isolate;
  background: transparent;
}

.branch-comparison-shell .fd-glow {
  opacity: 0.22;
  filter: blur(40px);
}

.aurora-band,
.aurora-two {
  display: none;
}

.branch-header {
  position: relative;
  z-index: 1;
  background: transparent;
  backdrop-filter: none;
  padding: 8px 8px 4px;
}

.branch-header .fd-brand-title {
  font-size: 26px;
  margin-bottom: 4px;
}

.branch-header .fd-muted {
  color: rgba(236, 242, 255, 0.72);
  margin-top: 2px;
}

.branch-filters {
  flex-wrap: wrap;
  justify-content: flex-end;
}

.branch-hero {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
  padding: 16px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 22px 60px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-radius: 22px;
}

.branch-hero-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

.hero-highlights {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}

.highlight-chip {
  display: grid;
  gap: 2px;
  padding: 10px 12px;
  border-radius: 14px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03));
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  min-width: 160px;
}

.highlight-label {
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
}

.highlight-value {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: #fff;
}

.highlight-branch {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.75);
}

.top-compare-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 0.9fr);
  gap: 16px;
  align-items: start;
}

.top-compare-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.rank-column {
  display: grid;
  gap: 10px;
  padding: 12px;
  border-radius: 16px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  /* Scoped metric-card for branch comparison - does NOT override global stat-cards.css */
}
.rank-column.is-first {
  border-color: rgba(255, 183, 94, 0.4);
  box-shadow: inset 0 0 0 1px rgba(255, 183, 94, 0.12);
}
.rank-column .metric-card {
  display: grid;
  gap: 4px;
  padding: 10px;
  border-radius: 12px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
  position: relative;
}
.rank-column .metric-card.is-revenue {
  border-left: 2px solid rgba(255, 122, 61, 0.7);
}
.rank-column .metric-card.is-nps {
  border-left: 2px solid rgba(34, 211, 164, 0.7);
}
.rank-column .metric-label {
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
}
.rank-column .metric-value {
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: #fff;
}
.rank-column .metric-branch {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.75);
}
.rank-column .metric-rank {
  position: absolute;
  top: 8px;
  right: 8px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
}

.rank-label {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}

.rank-number {
  font-size: 20px;
  font-weight: 800;
  color: #ffd48a;
}

.rank-caption {
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}

.nps-overview-card {
  display: grid;
  gap: 10px;
  padding: 14px;
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  align-content: start;
}

.nps-overview-card .section-title {
  font-size: 16px;
  margin-top: 2px;
}

.nps-donut {
  position: relative;
  width: 180px;
  height: 180px;
  margin: 4px 0 6px;
  display: grid;
  place-items: center;
  z-index: 1;
}

.donut-svg {
  width: 180px;
  height: 180px;
  transform: rotate(-90deg);
  filter: drop-shadow(0 12px 24px rgba(0, 0, 0, 0.3));
}

.donut-track {
  fill: none;
  stroke: rgba(255, 255, 255, 0.08);
  stroke-width: 12;
}

.donut-segment {
  fill: none;
  stroke-width: 12;
  stroke-linecap: round;
  transition: stroke-dasharray 0.3s ease, stroke-dashoffset 0.3s ease;
}

.nps-donut .donut-center {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  text-align: center;
  color: #fff;
  gap: 2px;
  transform: none;
  width: auto;
  height: auto;
  background: none;
}

.donut-value {
  font-size: 32px;
  font-weight: 800;
  letter-spacing: -0.02em;
}

.donut-label {
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.7);
}

.nps-meta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  justify-content: flex-start;
  margin-top: 4px;
}

.legend-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: #f5f7ff;
  font-size: 12px;
}

.legend-swatch {
  width: 12px;
  height: 12px;
  border-radius: 50%;
}

.legend-name {
  font-weight: 600;
}

.legend-value {
  font-weight: 700;
  color: #fff;
}

.nps-chip {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.06);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
  color: #fff;
}

.nps-chip .chip-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #ffae6f;
  box-shadow: 0 0 12px rgba(255, 174, 111, 0.8);
}

.nps-chip.accent-indigo .chip-dot {
  background: #6bb6ff;
  box-shadow: 0 0 12px rgba(107, 182, 255, 0.8);
}

.chip-label {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.82);
}

.chip-value {
  font-size: 16px;
  font-weight: 700;
}

.branch-chart-panel {
  position: relative;
  z-index: 1;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 22px 60px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-radius: 22px;
}

.branch-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}

.section-title {
  font-size: 17px;
  font-weight: 700;
  color: #f5f7ff;
  margin-top: 4px;
}

.chart-shell {
  position: relative;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.01));
  border-radius: 20px;
  padding: 14px 14px 6px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
  overflow: hidden;
}

.chart-overlay {
  position: absolute;
  inset: 0;
  background: none;
  opacity: 0.2;
  pointer-events: none;
  z-index: 0;
}

.chart-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  z-index: 1;
  margin-bottom: 4px;
}

.branch-table {
  position: relative;
  z-index: 1;
  margin-top: 14px;
}

.branch-table-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 16px 6px;
}

.branch-table .glass-table th {
  background: rgba(255, 255, 255, 0.05);
  backdrop-filter: blur(12px);
}

.branch-table .glass-table th,
.branch-table .glass-table td {
  padding: 10px 12px;
  font-size: 13px;
}

.branch-table .glass-table th.is-numeric,
.branch-table .glass-table td.is-numeric {
  text-align: right;
}

.glass-table tbody tr.is-primary td {
  background: linear-gradient(90deg, rgba(255, 122, 61, 0.08), rgba(255, 122, 61, 0.02));
}

.glass-table tbody tr.is-secondary td {
  background: linear-gradient(90deg, rgba(76, 63, 255, 0.08), rgba(76, 63, 255, 0.02));
}

.glass-table tbody tr.is-watch td {
  background: rgba(255, 174, 111, 0.06);
}

.glass-table tbody tr.is-risk td {
  background: rgba(255, 99, 71, 0.08);
}

.glass-table tbody tr.is-watch td:first-child,
.glass-table tbody tr.is-risk td:first-child {
  position: relative;
}

.glass-table tbody tr.is-watch td:first-child::before,
.glass-table tbody tr.is-risk td:first-child::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  bottom: 8px;
  width: 2px;
  border-radius: 2px;
}

.glass-table tbody tr.is-watch td:first-child::before {
  background: rgba(255, 174, 111, 0.6);
}

.glass-table tbody tr.is-risk td:first-child::before {
  background: rgba(255, 99, 71, 0.7);
}

.glass-table tbody tr:hover td {
  background: rgba(255, 255, 255, 0.04);
}

.branch-cell {
  display: flex;
  align-items: center;
  gap: 12px;
}

.row-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: linear-gradient(135deg, #ff7a3d, #ff4da0);
  flex-shrink: 0;
}

.complaints {
  color: rgba(255, 255, 255, 0.72);
}

.nps-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  padding: 4px 8px;
  border-radius: 10px;
  font-weight: 700;
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.nps-pill.positive {
  background: rgba(59, 251, 180, 0.12);
  color: #3bfbb4;
  border-color: rgba(59, 251, 180, 0.42);
}

.nps-pill.caution {
  background: rgba(255, 174, 111, 0.12);
  color: #ffae6f;
  border-color: rgba(255, 174, 111, 0.32);
}

.nps-pill.warning {
  background: rgba(255, 99, 71, 0.12);
  color: #ff6347;
  border-color: rgba(255, 99, 71, 0.32);
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1024px) {
  .performance-body,
  .panel-split {
    grid-template-columns: 1fr;
  }
  .dashboard-top {
    flex-direction: column;
  }
  .filter-pills {
    justify-content: flex-start;
  }
  .member-meta {
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  }
  .top-compare-layout,
  .top-compare-grid {
    grid-template-columns: 1fr;
  }
  .branch-section-header,
  .branch-table-header {
    flex-direction: column;
    align-items: flex-start;
  }
  .branch-filters,
  .hero-highlights {
    justify-content: flex-start;
  }
  .branch-hero-header {
    flex-direction: column;
    align-items: flex-start;
  }
}
@media (max-width: 768px) {
  .traffic-shell,
  .conversions-shell {
    padding: 20px 10px 80px;
  }
  .panel,
  .glass-card {
    padding: 18px;
  }
  button.pill,
  .pill-filter {
    width: 100%;
  }
  .filter-pills {
    flex-direction: column;
  }
}
/* ==========================================================================
   UI PAGE VARIANT - CUSTOMER LIFECYCLE
   ==========================================================================
   Scoped page contract for /console/management/customer-lifecycle.
   ========================================================================== */
.customer-lifecycle-page {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
}

.customer-lifecycle-page .header-card__top {
  align-items: flex-start;
}

.customer-lifecycle-page .header-card__title-block {
  flex: 1 1 auto;
  min-width: 0;
}

.customer-lifecycle-page .header-card__stats {
  align-self: flex-start;
}

.customer-lifecycle-page .header-card__bottom {
  flex-wrap: wrap;
}

.customer-lifecycle-page__filters {
  margin-left: 0;
  flex-wrap: wrap;
}

.customer-lifecycle-page__date-filter {
  min-width: 0;
}

.customer-lifecycle-page__header-stat .stat-card__subtitle {
  display: block;
  max-width: 16ch;
  line-height: 1.45;
  white-space: normal;
}

.customer-lifecycle-page__section {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
  min-width: 0;
  padding: var(--ui-space-6);
}

.customer-lifecycle-page .card-head,
.customer-lifecycle-page .campaign-header,
.customer-lifecycle-page .stage-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-3);
  flex-wrap: wrap;
}

.customer-lifecycle-page .eyebrow,
.customer-lifecycle-page .fd-eyebrow {
  margin: 0;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 176, 131, 0.88);
}

.customer-lifecycle-page .fd-muted {
  margin: var(--ui-space-1) 0 0;
  font-size: var(--ui-text-sm);
  line-height: 1.6;
  color: var(--ui-text-muted);
}

.customer-lifecycle-page .stage-title,
.customer-lifecycle-page .card-head h3,
.customer-lifecycle-page .campaign-header h3 {
  margin: var(--ui-space-1) 0 0;
  font-size: var(--ui-text-2xl);
  font-weight: var(--ui-font-semibold);
  line-height: 1.2;
  color: var(--ui-text-primary);
}

.customer-lifecycle-page .card-head h3,
.customer-lifecycle-page .campaign-header h3 {
  font-size: var(--ui-text-lg);
}

.customer-lifecycle-page .stats-copy {
  display: flex;
}

.customer-lifecycle-page .fd-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
}

.customer-lifecycle-page .fd-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--ui-border-light);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  line-height: 1.3;
}

.customer-lifecycle-page .fd-chip strong {
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-semibold);
}

.customer-lifecycle-page .journey-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--ui-space-3);
}

.customer-lifecycle-page .journey-node {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  min-height: 132px;
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-xl);
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.018));
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: var(--ui-shadow-sm);
  overflow: hidden;
}

.customer-lifecycle-page .journey-node::before {
  content: "";
  position: absolute;
  inset: 0 auto auto 0;
  width: 100%;
  height: 2px;
  background: linear-gradient(90deg, var(--node-accent), transparent 78%);
  opacity: 0.8;
}

.customer-lifecycle-page .journey-node.has-connector::after {
  content: "";
  position: absolute;
  top: 50%;
  right: calc(var(--ui-space-3) * -1);
  width: calc(var(--ui-space-3) * 1.5);
  height: 1px;
  background: linear-gradient(90deg, var(--node-accent), rgba(255, 255, 255, 0.14));
  transform: translateY(-50%);
}

.customer-lifecycle-page .node-pulse {
  width: 12px;
  height: 12px;
  border-radius: var(--ui-radius-full);
  background: var(--node-accent);
  box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.05);
}

.customer-lifecycle-page .node-label {
  margin-top: var(--ui-space-2);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ui-text-muted);
}

.customer-lifecycle-page .node-value {
  font-size: clamp(22px, 2vw, 30px);
  font-weight: var(--ui-font-bold);
  line-height: 1.05;
  color: var(--ui-text-primary);
}

.customer-lifecycle-page .node-helper {
  margin-top: auto;
  font-size: var(--ui-text-sm);
  line-height: 1.5;
  color: var(--ui-text-muted);
}

.customer-lifecycle-page .journey-sankey {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  min-width: 0;
}

.customer-lifecycle-page .sankey-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 130, 90, 0.32), transparent);
}

.customer-lifecycle-page .sankey-panel {
  min-width: 0;
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-2xl);
}

.customer-lifecycle-page .sankey-diagram {
  display: block;
  width: 100%;
  min-height: 420px;
}

.customer-lifecycle-page .sankey-node-label {
  fill: var(--ui-text-secondary);
  font-family: var(--ui-font-primary);
  font-size: 14px;
  font-weight: var(--ui-font-medium);
}

.customer-lifecycle-page .sankey-node-value {
  fill: var(--ui-text-muted);
  font-family: var(--ui-font-primary);
  font-size: 12px;
  font-weight: var(--ui-font-semibold);
}

.customer-lifecycle-page .stage-actions {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.customer-lifecycle-page .ghost-link {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  height: 32px;
  padding: 0 var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--ui-border);
  color: var(--ui-text-secondary);
  text-decoration: none;
  font-family: inherit;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  transition: background var(--ui-transition-base), border-color var(--ui-transition-base), color var(--ui-transition-base);
}

.customer-lifecycle-page button.ghost-link {
  cursor: pointer;
}

.customer-lifecycle-page .ghost-link:hover {
  background: var(--ui-surface-2);
  border-color: var(--ui-border-hover);
  color: var(--ui-text-primary);
}

.customer-lifecycle-page .ghost-link mat-icon {
  width: 16px;
  height: 16px;
  font-size: 16px;
}

.customer-lifecycle-page .period-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  min-height: 32px;
  padding: 0 var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  white-space: nowrap;
}

.customer-lifecycle-page .period-chip.subtle {
  color: var(--ui-text-muted);
}

.customer-lifecycle-page .stage-body {
  display: grid;
  grid-template-columns: minmax(280px, 0.95fr) minmax(0, 1.45fr);
  gap: var(--ui-space-4);
  align-items: stretch;
}

.customer-lifecycle-page .stage-body.dual {
  grid-template-columns: minmax(0, 1.45fr) minmax(320px, 0.92fr);
}

.customer-lifecycle-page .stage-metrics,
.customer-lifecycle-page .retention-kpi-row,
.customer-lifecycle-page .retention-kpis {
  display: grid;
  gap: var(--ui-space-3);
}

.customer-lifecycle-page .stage-metrics,
.customer-lifecycle-page .retention-kpi-row {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.customer-lifecycle-page .stage-metrics.inline {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: var(--ui-space-4);
}

.customer-lifecycle-page .retention-kpis {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding: var(--ui-space-4);
}

.customer-lifecycle-page .stage-metric,
.customer-lifecycle-page .retention-kpi,
.customer-lifecycle-page .retention-mini {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  min-width: 0;
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-xl);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--ui-border-light);
}

.customer-lifecycle-page .stage-metric.accent-teal,
.customer-lifecycle-page .retention-kpi.accent-teal,
.customer-lifecycle-page .retention-mini.accent-teal {
  border-color: rgba(74, 222, 128, 0.18);
  background: linear-gradient(160deg, rgba(74, 222, 128, 0.08), rgba(255, 255, 255, 0.02));
}

.customer-lifecycle-page .stage-metric.accent-orange,
.customer-lifecycle-page .retention-kpi.accent-orange,
.customer-lifecycle-page .retention-mini.accent-orange {
  border-color: rgba(251, 191, 36, 0.2);
  background: linear-gradient(160deg, rgba(251, 191, 36, 0.08), rgba(255, 255, 255, 0.02));
}

.customer-lifecycle-page .stage-metric.accent-pink,
.customer-lifecycle-page .retention-kpi.accent-pink,
.customer-lifecycle-page .retention-mini.accent-pink {
  border-color: rgba(248, 113, 113, 0.2);
  background: linear-gradient(160deg, rgba(248, 113, 113, 0.08), rgba(255, 255, 255, 0.02));
}

.customer-lifecycle-page .stage-metric.accent-violet,
.customer-lifecycle-page .retention-kpi.accent-violet,
.customer-lifecycle-page .retention-mini.accent-violet {
  border-color: rgba(169, 123, 255, 0.22);
  background: linear-gradient(160deg, rgba(169, 123, 255, 0.1), rgba(255, 255, 255, 0.02));
}

.customer-lifecycle-page .metric-label {
  margin: 0;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ui-text-muted);
}

.customer-lifecycle-page .metric-value {
  margin: 0;
  font-size: clamp(22px, 2vw, 30px);
  font-weight: var(--ui-font-bold);
  line-height: 1.05;
  color: var(--ui-text-primary);
}

.customer-lifecycle-page .retention-mini .metric-value {
  font-size: var(--ui-text-xl);
}

.customer-lifecycle-page .metric-helper {
  margin: 0;
  font-size: var(--ui-text-sm);
  line-height: 1.55;
  color: var(--ui-text-muted);
}

.customer-lifecycle-page .stage-chart,
.customer-lifecycle-page .lead-loss-card {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  min-width: 0;
  min-height: 100%;
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-2xl);
}

.customer-lifecycle-page .stage-chart {
  min-height: 360px;
}

.customer-lifecycle-page .stage-chart apx-chart,
.customer-lifecycle-page .lead-loss-chart apx-chart {
  display: block;
  width: 100%;
}

.customer-lifecycle-page .chart-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.customer-lifecycle-page .live-pill {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: calc(var(--ui-space-1) * 1.5) var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  background: rgba(74, 222, 128, 0.08);
  border: 1px solid rgba(74, 222, 128, 0.22);
  color: rgba(192, 255, 216, 0.95);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.customer-lifecycle-page .live-pill .dot {
  width: 8px;
  height: 8px;
  border-radius: var(--ui-radius-full);
  background: var(--ui-success);
}

.customer-lifecycle-page .chart-legend {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
}

.customer-lifecycle-page .legend-pill {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: calc(var(--ui-space-1) * 1.5) var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}

.customer-lifecycle-page .legend-pill::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: var(--ui-radius-full);
  background: var(--legend-color);
  box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.04);
}

.customer-lifecycle-page .lead-loss-chart {
  min-height: 260px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.customer-lifecycle-page .loss-list {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-2);
  margin: 0;
  padding: 0;
}

.customer-lifecycle-page .loss-list li {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-lg);
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--ui-border-light);
}

.customer-lifecycle-page .loss-dot {
  width: 10px;
  height: 10px;
  border-radius: var(--ui-radius-full);
  flex-shrink: 0;
}

.customer-lifecycle-page .loss-copy {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--ui-space-3);
  width: 100%;
}

.customer-lifecycle-page .loss-label,
.customer-lifecycle-page .loss-value {
  margin: 0;
  font-size: var(--ui-text-sm);
}

.customer-lifecycle-page .loss-label {
  color: var(--ui-text-secondary);
}

.customer-lifecycle-page .loss-value {
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-semibold);
}

.customer-lifecycle-page .campaign-table {
  display: flex;
  flex-direction: column;
  padding: 0;
}

.customer-lifecycle-page .campaign-header {
  padding: var(--ui-space-4) var(--ui-space-4) 0;
}

.customer-lifecycle-page .campaign-table .glass-table-wrap {
  padding: var(--ui-space-2) var(--ui-space-4) var(--ui-space-4);
}

.customer-lifecycle-page .campaign-table .cell-muted {
  display: block;
  margin-top: var(--ui-space-1);
}

.customer-lifecycle-page .trend {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
}

.customer-lifecycle-page .trend.positive {
  color: var(--ui-success);
}

.customer-lifecycle-page .retention-body {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(320px, 0.95fr);
  gap: var(--ui-space-4);
  align-items: stretch;
}

.customer-lifecycle-page .lifecycle-goals {
  display: flex;
  flex-direction: column;
  padding: 0;
}

.customer-lifecycle-page .lifecycle-goals .card-head {
  padding: var(--ui-space-4) var(--ui-space-4) 0;
}

.customer-lifecycle-page .lifecycle-goals .glass-input-table-wrap {
  padding: var(--ui-space-2) var(--ui-space-4) 0;
}

.customer-lifecycle-page .lifecycle-goals .status-col {
  white-space: nowrap;
}

@media (max-width: 1440px) {
  .customer-lifecycle-page .journey-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .customer-lifecycle-page .stage-metrics.inline {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 1200px) {
  .customer-lifecycle-page .stage-body,
  .customer-lifecycle-page .stage-body.dual,
  .customer-lifecycle-page .retention-body {
    grid-template-columns: 1fr;
  }
  .customer-lifecycle-page .loss-list {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 960px) {
  .customer-lifecycle-page .header-card__actions {
    width: 100%;
    margin-left: 0;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  .customer-lifecycle-page .journey-grid,
  .customer-lifecycle-page .stage-metrics,
  .customer-lifecycle-page .retention-kpi-row,
  .customer-lifecycle-page .retention-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .customer-lifecycle-page .customer-lifecycle-page__filters {
    width: 100%;
  }
}
@media (max-width: 640px) {
  .customer-lifecycle-page {
    gap: var(--ui-space-4);
  }
  .customer-lifecycle-page__section {
    padding: var(--ui-space-4);
  }
  .customer-lifecycle-page .header-card__count {
    border-right: none;
    padding-right: 0;
  }
  .customer-lifecycle-page .journey-grid,
  .customer-lifecycle-page .stage-metrics,
  .customer-lifecycle-page .stage-metrics.inline,
  .customer-lifecycle-page .retention-kpi-row,
  .customer-lifecycle-page .retention-kpis {
    grid-template-columns: 1fr;
  }
  .customer-lifecycle-page .loss-copy,
  .customer-lifecycle-page .stage-head {
    flex-direction: column;
    align-items: flex-start;
  }
  .customer-lifecycle-page .sankey-panel {
    padding: var(--ui-space-3);
  }
  .customer-lifecycle-page .sankey-diagram {
    min-height: 320px;
  }
}
/**
 * Communications Page Contract
 * Layout-only styles for the Communications page.
 * All visual styling comes from UI contracts.
 */
.communications-page .tab-content-container {
  margin-top: var(--ui-space-4);
}

.communications-tab-content {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.communications-loading-state {
  padding: var(--ui-space-8);
}

.communications-page .communications-logs-table {
  overflow: hidden;
}

.communications-page .communications-logs-table .glass-table-scroll {
  overflow-x: hidden;
}

.communications-page .communications-logs-table .glass-table {
  table-layout: fixed;
  min-width: 0;
  width: 100%;
}

.communications-page .communications-logs-table .glass-table th,
.communications-page .communications-logs-table .glass-table td {
  padding-inline: 10px;
}

.communications-page .communications-logs-table .glass-table th:first-child,
.communications-page .communications-logs-table .glass-table td:first-child {
  padding-left: 16px;
}

.communications-page .communications-logs-table .glass-table th:last-child,
.communications-page .communications-logs-table .glass-table td:last-child {
  padding-right: 12px;
}

.communications-page .communications-logs-table .comm-log-col {
  min-width: 0;
}

.communications-page .communications-logs-table .comm-log-col--time {
  width: 8%;
}

.communications-page .communications-logs-table .comm-log-col--event {
  width: 17%;
}

.communications-page .communications-logs-table .comm-log-col--channel {
  width: 10%;
}

.communications-page .communications-logs-table .comm-log-col--recipient {
  width: 16%;
}

.communications-page .communications-logs-table .comm-log-col--source {
  width: 15%;
}

.communications-page .communications-logs-table .comm-log-col--latency {
  width: 8%;
}

.communications-page .communications-logs-table .comm-log-col--status {
  width: 12%;
}

.communications-page .communications-logs-table .comm-log-col--error {
  width: 10%;
}

.communications-page .communications-logs-table .comm-log-col--actions {
  width: 4%;
}

.communications-page .communications-logs-table .cell-primary-name,
.communications-page .communications-logs-table .cell-meta-text,
.communications-page .communications-logs-table .cell-chip-text {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.communications-page .communications-logs-table .cell-chip {
  max-width: 100%;
}

.communications-page .communications-logs-table .cell-stacked {
  min-width: 0;
}

.communications-page .communications-logs-table .comm-log-col--status {
  text-align: center;
}

.communications-page .communications-logs-table td.comm-log-col--status {
  display: table-cell;
}

.communications-page .communications-logs-table td.comm-log-col--status .type-pill {
  width: fit-content;
  max-width: 100%;
  margin: 0 auto 4px !important;
  white-space: nowrap;
}

.communications-page .communications-logs-table td.comm-log-col--status .type-pill:last-child {
  margin-bottom: 0 !important;
}

.communications-page .communications-logs-table .comm-status-pill--read {
  background: rgba(59, 130, 246, 0.2);
  color: #60a5fa;
}

.communications-page .communications-logs-table .comm-status-pill--sent {
  background: rgba(234, 179, 8, 0.2);
  color: #eab308;
}

.communications-page .communications-logs-table .comm-log-pill--live {
  background: rgba(34, 197, 94, 0.2);
}

.communications-page .communications-logs-table .comm-log-pill--shadow {
  background: rgba(139, 92, 246, 0.2);
  color: #a78bfa;
}

.communications-page .communications-logs-table .comm-log-col--actions .ui-btn {
  width: 40px;
  min-width: 40px;
  height: 40px;
  padding: 0;
  justify-content: center;
}

.communications-page .communications-logs-table .detail-row td {
  white-space: normal;
}

.communications-page .communications-logs-table .comm-log-detail {
  padding: 12px 16px;
  margin: 4px 0;
  background: rgba(255, 255, 255, 0.02);
}

.communications-page .communications-logs-table .comm-log-detail-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.communications-page .communications-logs-table .comm-log-muted {
  opacity: 0.6;
}

.communications-page .communications-logs-table .comm-log-code,
.communications-page .communications-logs-table .comm-log-metadata {
  background: rgba(0, 0, 0, 0.2);
}

.communications-page .communications-logs-table .comm-log-code {
  padding: 1px 6px;
}

.communications-page .communications-logs-table .comm-log-metadata {
  margin: 4px 0 0;
}

.communications-page .communications-logs-table .comm-log-shadow-panel {
  background: rgba(139, 92, 246, 0.08);
  border: 1px solid rgba(139, 92, 246, 0.2);
}

.communications-page .communications-logs-table .comm-log-shadow-title {
  color: #a78bfa;
}

@media (max-width: 1100px) {
  .communications-page .communications-logs-table .glass-table-scroll {
    overflow-x: auto;
  }
  .communications-page .communications-logs-table .glass-table {
    min-width: 1060px;
  }
}
.event-module-group {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}
.event-module-group .event-count {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: 400;
}

.communications-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: var(--ui-space-4);
}
.communications-cards-grid--2col {
  grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
}

.template-variables {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  margin-top: var(--ui-space-2);
}

.template-variables-label {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.template-variables-chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-1);
}

.variant-panel {
  background: rgba(30, 25, 20, 0.95);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--ui-radius-lg, 12px);
  backdrop-filter: blur(20px);
  overflow: hidden;
  animation: variantPanelSlide 0.2s ease;
}

@keyframes variantPanelSlide {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.variant-panel__loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 40px;
  color: rgba(255, 255, 255, 0.5);
  font-size: 13px;
}
.variant-panel__loading mat-icon {
  animation: spin 1s linear infinite;
}

@keyframes spin {
  100% {
    transform: rotate(360deg);
  }
}
.variant-panel__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.variant-panel__title {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.variant-panel__title > mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: rgba(255, 180, 130, 0.8);
  margin-top: 2px;
}
.variant-panel__title h3 {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}

.variant-panel__subtitle {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.4);
  font-family: var(--ui-font-mono);
}

.variant-panel__current {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  background: rgba(74, 222, 128, 0.06);
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  font-size: 12px;
  color: rgba(255, 255, 255, 0.6);
}
.variant-panel__current mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: rgba(74, 222, 128, 0.7);
}
.variant-panel__current strong {
  color: rgba(255, 255, 255, 0.9);
  font-family: var(--ui-font-mono);
}

.variant-source-pill {
  display: inline-flex;
  padding: 1px 6px;
  border-radius: 3px;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: rgba(139, 92, 246, 0.2);
  color: rgba(167, 139, 250, 0.9);
  margin-left: 6px;
}
.variant-source-pill--override {
  background: rgba(59, 130, 246, 0.2);
  color: rgba(96, 165, 250, 0.9);
}

.variant-panel__options {
  padding: 12px 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 400px;
  overflow-y: auto;
}

.variant-option {
  display: flex;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.02);
  cursor: pointer;
  transition: all 0.15s ease;
}
.variant-option:hover {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.12);
}
.variant-option--selected {
  background: rgba(233, 68, 36, 0.08) !important;
  border-color: rgba(233, 68, 36, 0.35) !important;
  box-shadow: 0 0 0 1px rgba(233, 68, 36, 0.15);
}

.variant-option__radio {
  flex-shrink: 0;
  padding-top: 2px;
}

.variant-radio {
  display: block;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.2);
  background: transparent;
  transition: all 0.15s ease;
  position: relative;
}
.variant-radio--active {
  border-color: rgba(233, 68, 36, 0.8);
}
.variant-radio--active::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #e94424;
}

.variant-option__content {
  flex: 1;
  min-width: 0;
}

.variant-option__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
}

.variant-option__name {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}

.variant-tone-icon {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
  color: rgba(255, 180, 130, 0.7);
}

.variant-lang-badge {
  display: inline-flex;
  padding: 1px 4px;
  border-radius: 3px;
  font-size: 8px;
  font-weight: 700;
  background: rgba(59, 130, 246, 0.2);
  color: rgba(96, 165, 250, 0.9);
}

.variant-option__badges {
  display: flex;
  gap: 4px;
}

.variant-default-badge {
  display: inline-flex;
  padding: 1px 6px;
  border-radius: 3px;
  font-size: 8px;
  font-weight: 700;
  text-transform: uppercase;
  background: rgba(74, 222, 128, 0.15);
  color: rgba(74, 222, 128, 0.8);
  border: 1px solid rgba(74, 222, 128, 0.2);
}

.variant-selected-badge {
  display: inline-flex;
  padding: 1px 6px;
  border-radius: 3px;
  font-size: 8px;
  font-weight: 700;
  text-transform: uppercase;
  background: rgba(59, 130, 246, 0.15);
  color: rgba(96, 165, 250, 0.9);
  border: 1px solid rgba(59, 130, 246, 0.2);
}

.variant-deprecated-badge {
  display: inline-flex;
  padding: 1px 6px;
  border-radius: 3px;
  font-size: 8px;
  font-weight: 700;
  text-transform: uppercase;
  background: rgba(239, 68, 68, 0.15);
  color: rgba(248, 113, 113, 0.9);
  border: 1px solid rgba(239, 68, 68, 0.2);
}

.variant-tone-badge {
  display: inline-flex;
  padding: 1px 6px;
  border-radius: 3px;
  font-size: 8px;
  font-weight: 700;
  text-transform: uppercase;
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.4);
}

.variant-option__template-id {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.4);
  font-family: var(--ui-font-mono);
  margin-bottom: 6px;
}
.variant-option__template-id mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

.variant-option__preview {
  margin: 0;
  padding: 8px 10px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 6px;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.65);
  line-height: 1.5;
  font-style: italic;
}

.variant-option__description {
  margin: 6px 0 0;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.35);
  line-height: 1.4;
}

.variant-panel__footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.variant-panel__hint {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.35);
}

.ui-card--selected {
  border-color: rgba(233, 68, 36, 0.5) !important;
  box-shadow: 0 0 0 1px rgba(233, 68, 36, 0.3), 0 4px 16px rgba(233, 68, 36, 0.15) !important;
}

.channel-header-info {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.channel-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: var(--ui-text-muted);
}

.channel-disabled-notice {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}
.channel-disabled-notice mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.channel-metrics {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-4);
}

.channel-metric {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
}

.channel-metric-label {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.channel-metric-value {
  font-size: var(--ui-text-lg);
  font-weight: 600;
  color: var(--ui-text-primary);
}

.communications-info-card {
  flex-direction: row;
  align-items: flex-start;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3);
}
.communications-info-card mat-icon {
  color: var(--ui-text-muted);
  flex-shrink: 0;
}
.communications-info-card p {
  margin: 0;
  font-size: var(--ui-text-sm);
}
.communications-info-card p:first-of-type {
  margin-bottom: var(--ui-space-1);
}

.channels-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-4);
  flex-wrap: wrap;
}

.channels-header__info {
  flex: 1;
  min-width: 200px;
}
.channels-header__info .section-helper {
  margin: 0;
}

.channels-header__actions {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-shrink: 0;
}

.registry-empty {
  text-align: center;
  padding: var(--ui-space-8) var(--ui-space-4);
}

.registry-empty__icon {
  font-size: 48px;
  width: 48px;
  height: 48px;
  color: rgba(255, 255, 255, 0.2);
  margin-bottom: var(--ui-space-4);
}

.registry-empty__title {
  font-size: 16px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
  margin: 0 0 var(--ui-space-2) 0;
}

.registry-empty__steps {
  text-align: left;
  display: inline-block;
  margin: 0 auto var(--ui-space-4);
  padding-left: 20px;
  color: rgba(255, 255, 255, 0.55);
  font-size: var(--ui-text-sm);
  line-height: 2;
}

.registry-empty__actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-3);
}

.registry-row--disabled {
  opacity: 0.5;
}

.registry-row--removed {
  opacity: 0.4;
}
.registry-row--removed td:first-child::after {
  content: "Removed in Provider";
  display: block;
  font-size: 10px;
  color: var(--ui-danger);
  margin-top: 2px;
}

.registry-channel-cell {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.registry-channel-cell__name {
  font-weight: 500;
  color: rgba(255, 255, 255, 0.92);
}

.registry-channel-cell__id {
  font-size: 11px;
  font-family: var(--ui-font-mono);
  color: rgba(255, 255, 255, 0.35);
}

.registry-channel-cell__meta {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.4);
}

.registry-default-star {
  color: #fbbf24;
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.registry-notice {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  font-size: var(--ui-text-xs);
  color: rgba(255, 255, 255, 0.45);
}
.registry-notice mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.integration-content {
  max-width: 640px;
}

.integration-connect {
  padding: var(--ui-space-5);
}

.integration-connect__header {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-3);
  margin-bottom: var(--ui-space-4);
}

.integration-connect__icon {
  width: 40px;
  height: 40px;
  border-radius: var(--ui-radius-md);
  background: rgba(255, 255, 255, 0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.integration-connect__icon mat-icon {
  color: var(--ui-text-muted);
}

.integration-connect__title {
  margin: 0 0 var(--ui-space-1);
  font-size: var(--ui-text-md);
  font-weight: 600;
}

.integration-connect__subtitle {
  margin: 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.integration-connect__steps {
  margin-bottom: var(--ui-space-4);
  padding: var(--ui-space-3);
  background: rgba(255, 255, 255, 0.03);
  border-radius: var(--ui-radius-md);
}
.integration-connect__steps ol {
  margin: 0;
  padding-left: var(--ui-space-4);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}
.integration-connect__steps li {
  margin-bottom: var(--ui-space-1);
}
.integration-connect__steps a {
  color: var(--ui-accent);
  text-decoration: none;
}
.integration-connect__steps a:hover {
  text-decoration: underline;
}

.integration-connect__form {
  margin-bottom: var(--ui-space-3);
}

.integration-connect__input-row {
  display: flex;
  gap: var(--ui-space-2);
}
.integration-connect__input-row .ui-input {
  flex: 1;
  padding: var(--ui-space-2) var(--ui-space-3);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--ui-radius-md);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
}
.integration-connect__input-row .ui-input::placeholder {
  color: var(--ui-text-muted);
}
.integration-connect__input-row .ui-input:focus {
  outline: 1px solid var(--ui-accent);
}
.integration-connect__input-row .ui-input:disabled {
  opacity: 0.5;
}

.integration-connect__error {
  margin-top: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  background: rgba(239, 68, 68, 0.1);
  border-radius: var(--ui-radius-sm);
  color: #ef4444;
  font-size: var(--ui-text-sm);
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
}
.integration-connect__error mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.integration-connect__note,
.integration-connected__note {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-2);
  margin-top: var(--ui-space-3);
  padding: var(--ui-space-2) var(--ui-space-3);
  background: rgba(255, 255, 255, 0.03);
  border-radius: var(--ui-radius-sm);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}
.integration-connect__note mat-icon,
.integration-connected__note mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  margin-top: 2px;
}

.integration-connected {
  padding: var(--ui-space-5);
}

.integration-connected__header {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-3);
  margin-bottom: var(--ui-space-4);
}

.integration-connected__icon--active {
  width: 40px;
  height: 40px;
  border-radius: var(--ui-radius-md);
  background: rgba(34, 197, 94, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.integration-connected__icon--active mat-icon {
  color: #22c55e;
}

.integration-connected__title {
  margin: 0 0 var(--ui-space-1);
  font-size: var(--ui-text-md);
  font-weight: 600;
}

.integration-connected__subtitle {
  margin: 0;
}

.integration-connected__details {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--ui-space-2);
  margin-bottom: var(--ui-space-4);
  padding: var(--ui-space-3);
  background: rgba(255, 255, 255, 0.03);
  border-radius: var(--ui-radius-md);
}

.integration-connected__detail {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.integration-connected__label {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.integration-connected__value {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-primary);
}

.integration-connected__actions {
  display: flex;
  gap: var(--ui-space-2);
}

.integration-section-divider {
  margin-top: var(--ui-space-5);
  padding-top: var(--ui-space-5);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.settings-loading {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-4);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}
.settings-loading mat-icon {
  animation: spin 1s linear infinite;
}

@keyframes spin {
  100% {
    transform: rotate(360deg);
  }
}
.system-summary-strip {
  display: flex;
  gap: var(--ui-space-3);
  flex-wrap: wrap;
}

.system-summary-card {
  flex: 1;
  min-width: 120px;
  padding: var(--ui-space-3) var(--ui-space-4);
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: var(--ui-radius-md);
  text-align: center;
}
.system-summary-card--danger {
  background: rgba(239, 68, 68, 0.08);
  border-color: rgba(239, 68, 68, 0.2);
}
.system-summary-card--warning {
  background: rgba(245, 158, 11, 0.06);
  border-color: rgba(245, 158, 11, 0.15);
}
.system-summary-card--success {
  background: rgba(34, 197, 94, 0.06);
  border-color: rgba(34, 197, 94, 0.15);
}
.system-summary-card__value {
  font-size: 22px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.92);
  line-height: 1.2;
}
.system-summary-card__label {
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.45);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-top: 4px;
}
.system-summary-card--danger .system-summary-card__value {
  color: #f87171;
}
.system-summary-card--warning .system-summary-card__value {
  color: #fbbf24;
}
.system-summary-card--success .system-summary-card__value {
  color: #4ade80;
}

.system-warnings {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.system-warning {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  font-size: var(--ui-text-sm);
  animation: warningFadeIn 0.3s ease;
}
.system-warning mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}
.system-warning--danger {
  background: rgba(239, 68, 68, 0.08);
  border: 1px solid rgba(239, 68, 68, 0.2);
  color: #fca5a5;
}
.system-warning--danger mat-icon {
  color: #f87171;
}
.system-warning--warning {
  background: rgba(245, 158, 11, 0.06);
  border: 1px solid rgba(245, 158, 11, 0.15);
  color: #fde68a;
}
.system-warning--warning mat-icon {
  color: #fbbf24;
}

@keyframes warningFadeIn {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.system-all-clear {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-3) var(--ui-space-4);
  background: rgba(34, 197, 94, 0.06);
  border: 1px solid rgba(34, 197, 94, 0.15);
  border-radius: var(--ui-radius-md);
  color: #86efac;
  font-size: var(--ui-text-sm);
}
.system-all-clear mat-icon {
  color: #4ade80;
  font-size: 20px;
  width: 20px;
  height: 20px;
}

.system-section {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}
.system-section .section-helper {
  margin: 0;
  color: rgba(255, 255, 255, 0.45);
  font-size: var(--ui-text-sm);
}

.system-section__header {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}
.system-section__header h3 {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}

.source-tabs {
  display: flex;
  gap: 4px;
  margin-bottom: var(--ui-space-4);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  padding-bottom: 0;
}

.source-tab {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.45);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: all 0.2s ease;
  font-family: inherit;
}
.source-tab mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}
.source-tab__count {
  background: rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  padding: 1px 7px;
  font-size: 11px;
  font-weight: 600;
}
.source-tab:hover {
  color: rgba(255, 255, 255, 0.7);
  background: rgba(255, 255, 255, 0.03);
}
.source-tab--active {
  color: #f59e0b;
  border-bottom-color: #f59e0b;
}
.source-tab--active .source-tab__count {
  background: rgba(245, 158, 11, 0.15);
  color: #f59e0b;
}

.section-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
}
.section-icon--danger {
  color: #f87171;
}
.section-icon--warning {
  color: #fbbf24;
}
.section-icon--success {
  color: #4ade80;
}

.section-badge {
  display: inline-flex;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-left: var(--ui-space-2);
}
.section-badge--danger {
  background: rgba(239, 68, 68, 0.15);
  color: #f87171;
  border: 1px solid rgba(239, 68, 68, 0.25);
}
.section-badge--warning {
  background: rgba(245, 158, 11, 0.12);
  color: #fbbf24;
  border: 1px solid rgba(245, 158, 11, 0.2);
}
.section-badge--success {
  background: rgba(34, 197, 94, 0.12);
  color: #4ade80;
  border: 1px solid rgba(34, 197, 94, 0.2);
}

.source-name {
  display: block;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
}

.source-desc {
  display: block;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.35);
  line-height: 1.4;
  margin-top: 2px;
}

.file-badge {
  display: inline-block;
  padding: 1px 6px;
  background: rgba(255, 255, 255, 0.06);
  border-radius: 3px;
  font-size: 11px;
  font-family: var(--ui-font-mono);
  color: rgba(255, 255, 255, 0.55);
}

.volume-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 600;
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.45);
}
.volume-badge--active {
  background: rgba(59, 130, 246, 0.15);
  color: #60a5fa;
}

.row--inactive {
  opacity: 0.5;
}

.row--disabled {
  opacity: 0.45;
}
.row--disabled td {
  color: rgba(255, 255, 255, 0.4);
}

.retry-link {
  color: var(--ui-accent);
  cursor: pointer;
  text-decoration: underline;
}

.legacy-card {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: var(--ui-radius-lg, 12px);
  padding: var(--ui-space-4);
}

.legacy-card__top {
  display: flex;
  gap: var(--ui-space-6);
  margin-bottom: var(--ui-space-4);
}

.legacy-stat {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.legacy-stat--success .legacy-stat__value {
  color: #4ade80;
}
.legacy-stat__value {
  font-size: 28px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.9);
  line-height: 1;
}
.legacy-stat__label {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.45);
}

.migration-bar {
  margin-bottom: var(--ui-space-4);
}
.migration-bar__label {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.55);
  margin-bottom: 6px;
}
.migration-bar__track {
  height: 8px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 4px;
  overflow: hidden;
}
.migration-bar__fill {
  height: 100%;
  background: linear-gradient(90deg, #f59e0b, #4ade80);
  border-radius: 4px;
  transition: width 0.6s ease;
  min-width: 4px;
}

.legacy-modules h4 {
  margin: 0 0 var(--ui-space-2);
  font-size: 12px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.6);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.legacy-module-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: var(--ui-space-2);
}

.legacy-module-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--ui-space-2) var(--ui-space-3);
  background: rgba(255, 255, 255, 0.03);
  border-radius: var(--ui-radius-sm);
  font-size: 13px;
}
.legacy-module-item__name {
  color: rgba(255, 255, 255, 0.7);
}
.legacy-module-item__count {
  font-weight: 600;
  color: rgba(255, 255, 255, 0.5);
  background: rgba(255, 255, 255, 0.06);
  padding: 1px 8px;
  border-radius: 10px;
  font-size: 11px;
}

.feature-flag-card {
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-lg, 12px);
  border: 1px solid rgba(255, 255, 255, 0.06);
}
.feature-flag-card--enabled {
  background: rgba(34, 197, 94, 0.06);
  border-color: rgba(34, 197, 94, 0.2);
}
.feature-flag-card--disabled {
  background: rgba(239, 68, 68, 0.06);
  border-color: rgba(239, 68, 68, 0.2);
}
.feature-flag-card__header {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin-bottom: var(--ui-space-2);
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
}
.feature-flag-card__header mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
}
.feature-flag-card--enabled .feature-flag-card__header mat-icon {
  color: #4ade80;
}
.feature-flag-card--disabled .feature-flag-card__header mat-icon {
  color: #f87171;
}
.feature-flag-card__value {
  margin-bottom: var(--ui-space-2);
}
.feature-flag-card__value code {
  padding: 4px 10px;
  background: rgba(0, 0, 0, 0.3);
  border-radius: 4px;
  font-size: 13px;
  font-family: var(--ui-font-mono);
  color: rgba(255, 255, 255, 0.7);
}
.feature-flag-card__desc {
  margin: 0;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.5);
  line-height: 1.5;
}

.system-footer {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-3) 0;
  font-size: var(--ui-text-xs);
  color: rgba(255, 255, 255, 0.35);
  border-top: 1px solid rgba(255, 255, 255, 0.04);
  margin-top: var(--ui-space-2);
}
.system-footer mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}
.system-footer a {
  color: var(--ui-accent);
  cursor: pointer;
  text-decoration: underline;
}

.system-tab .toggle-switch {
  position: relative;
  display: inline-flex;
  align-items: center;
  width: 44px;
  height: 24px;
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
}
.system-tab .toggle-switch .toggle-track {
  position: relative;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.15);
  border-radius: 12px;
  transition: background 0.2s;
}
.system-tab .toggle-switch .toggle-thumb {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 20px;
  height: 20px;
  background: rgba(255, 255, 255, 0.6);
  border-radius: 50%;
  transition: all 0.2s;
}
.system-tab .toggle-switch.active .toggle-track {
  background: rgba(245, 158, 11, 0.35);
}
.system-tab .toggle-switch.active .toggle-thumb {
  left: 22px;
  background: #f59e0b;
}

.source-group {
  margin-bottom: 20px;
}
.source-group__header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  background: rgba(255, 255, 255, 0.03);
  border-radius: 8px 8px 0 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.8);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.source-group__header mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: var(--ui-accent, #e8a838);
}
.source-group__count {
  margin-left: auto;
  background: rgba(255, 255, 255, 0.08);
  padding: 2px 8px;
  border-radius: 10px;
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.5);
}

.glass-table--compact th, .glass-table--compact td {
  padding: 8px 12px;
  font-size: 12px;
}

.section-icon--info {
  color: #60a5fa !important;
}

.section-badge--info {
  background: rgba(96, 165, 250, 0.12);
  color: #60a5fa;
}

.kill-switch-banner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  margin-bottom: 20px;
  background: rgba(239, 68, 68, 0.12);
  border: 1px solid rgba(239, 68, 68, 0.3);
  border-radius: 10px;
  animation: kill-pulse 2s ease-in-out infinite;
}
.kill-switch-banner mat-icon {
  font-size: 28px;
  width: 28px;
  height: 28px;
  color: #ef4444;
}
.kill-switch-banner__content {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.kill-switch-banner__content strong {
  font-size: 14px;
  color: #ef4444;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.kill-switch-banner__content span {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.6);
}

@keyframes kill-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.7;
  }
}
.toggle-confirm-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  backdrop-filter: blur(4px);
}

.toggle-confirm-card {
  background: #1e1e1e;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  padding: 24px 28px;
  min-width: 380px;
  max-width: 440px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}
.toggle-confirm-card__header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}
.toggle-confirm-card__header mat-icon {
  font-size: 24px;
  width: 24px;
  height: 24px;
  color: #f59e0b;
}
.toggle-confirm-card__header span {
  font-size: 16px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}
.toggle-confirm-card__impact {
  font-size: 13px;
  color: var(--ui-accent, #e8a838);
  margin: 0 0 8px;
  padding: 8px 12px;
  background: rgba(232, 168, 56, 0.08);
  border-radius: 6px;
  border-left: 3px solid var(--ui-accent, #e8a838);
}
.toggle-confirm-card__warning {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
  margin: 0 0 20px;
}
.toggle-confirm-card__actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

.btn-toggle-cancel {
  padding: 8px 20px;
  border-radius: 6px;
  border: 1px solid rgba(255, 255, 255, 0.15);
  background: transparent;
  color: rgba(255, 255, 255, 0.7);
  font-size: 13px;
  cursor: pointer;
  transition: all 0.2s;
}
.btn-toggle-cancel:hover {
  background: rgba(255, 255, 255, 0.05);
  color: white;
}

.btn-toggle-disable {
  padding: 8px 20px;
  border-radius: 6px;
  border: none;
  background: #ef4444;
  color: white;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}
.btn-toggle-disable:hover {
  background: #dc2626;
}

.whatsapp-channels-panel {
  margin-top: var(--ui-space-4);
}
.whatsapp-channels-panel__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-3);
  margin-bottom: var(--ui-space-4);
  flex-wrap: wrap;
}
.whatsapp-channels-panel__title-row {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-2);
}
.whatsapp-channels-panel__icon {
  font-size: 22px;
  width: 22px;
  height: 22px;
  color: #25d366;
  margin-top: 2px;
  flex-shrink: 0;
}
.whatsapp-channels-panel__title {
  margin: 0 0 4px;
  font-size: var(--ui-text-md);
  font-weight: 600;
  color: var(--ui-text-primary);
}
.whatsapp-channels-panel__subtitle {
  margin: 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  line-height: 1.5;
}
.whatsapp-channels-panel__actions {
  display: flex;
  gap: var(--ui-space-2);
  flex-shrink: 0;
}
.whatsapp-channels-panel__error {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-3);
  margin-bottom: var(--ui-space-3);
  background: rgba(239, 68, 68, 0.08);
  border: 1px solid rgba(239, 68, 68, 0.2);
  border-radius: var(--ui-radius-md);
  color: #fca5a5;
  font-size: var(--ui-text-sm);
}
.whatsapp-channels-panel__error mat-icon {
  color: #f87171;
  font-size: 18px;
  width: 18px;
  height: 18px;
}
.whatsapp-channels-panel__loading {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-4);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}
.whatsapp-channels-panel__loading mat-icon {
  animation: spin 1s linear infinite;
}
.whatsapp-channels-panel__empty {
  text-align: center;
  padding: var(--ui-space-6) var(--ui-space-4);
  color: var(--ui-text-muted);
}
.whatsapp-channels-panel__empty mat-icon {
  font-size: 40px;
  width: 40px;
  height: 40px;
  opacity: 0.3;
  display: block;
  margin: 0 auto var(--ui-space-2);
}
.whatsapp-channels-panel__empty p {
  margin: 0 0 4px;
  font-size: var(--ui-text-sm);
}
.whatsapp-channels-panel__empty-hint {
  font-size: var(--ui-text-xs);
  opacity: 0.6;
  line-height: 1.5;
  max-width: 420px;
  margin: var(--ui-space-2) auto 0 !important;
}
.whatsapp-channels-panel__footer {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin-top: var(--ui-space-3);
  padding-top: var(--ui-space-3);
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}
.whatsapp-channels-panel__footer mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.whatsapp-channels-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.whatsapp-channel-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: 12px var(--ui-space-3);
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: var(--ui-radius-md);
  transition: background 0.15s;
}
.whatsapp-channel-row:hover {
  background: rgba(255, 255, 255, 0.04);
}
.whatsapp-channel-row--inactive {
  opacity: 0.55;
}
.whatsapp-channel-row__indicator {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
  background: rgba(255, 255, 255, 0.15);
}
.whatsapp-channel-row__indicator--active {
  background: #25d366;
  box-shadow: 0 0 6px rgba(37, 211, 102, 0.5);
}
.whatsapp-channel-row__info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.whatsapp-channel-row__phone {
  font-size: 14px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.88);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.whatsapp-channel-row__meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.whatsapp-channel-row__sync-time {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.35);
}
.whatsapp-channel-row__actions {
  display: flex;
  gap: 4px;
  flex-shrink: 0;
}

.spin {
  animation: spin 1s linear infinite;
}

.ui-badge--sm {
  font-size: 10px;
  padding: 1px 6px;
}

.badge--success {
  background: rgba(34, 197, 94, 0.15);
  color: #4ade80;
  border-radius: 4px;
  padding: 2px 8px;
  font-size: 12px;
}

.badge--warning {
  background: rgba(245, 158, 11, 0.15);
  color: #fbbf24;
  border-radius: 4px;
  padding: 2px 8px;
  font-size: 12px;
}

.badge--danger {
  background: rgba(239, 68, 68, 0.15);
  color: #f87171;
  border-radius: 4px;
  padding: 2px 8px;
  font-size: 12px;
}

.badge--muted {
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.4);
  border-radius: 4px;
  padding: 2px 8px;
  font-size: 12px;
}

.badge--primary {
  background: rgba(var(--ui-accent-rgb, 232, 168, 56), 0.15);
  color: var(--ui-accent, #e8a838);
  border-radius: 4px;
  padding: 2px 8px;
  font-size: 12px;
}

.ui-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: var(--ui-radius-sm, 6px);
  border: none;
  background: transparent;
  color: rgba(255, 255, 255, 0.5);
  cursor: pointer;
  transition: all 0.15s;
}
.ui-icon-btn mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
}
.ui-icon-btn:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.07);
  color: rgba(255, 255, 255, 0.85);
}
.ui-icon-btn:disabled {
  opacity: 0.35;
  cursor: default;
}

.ui-btn--ghost {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.6);
}
.ui-btn--ghost:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.85);
}

.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.65);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1200;
  backdrop-filter: blur(4px);
  animation: fadeIn 0.15s ease;
}

.modal-card {
  background: var(--ui-surface, #1a1a1a);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--ui-radius-lg, 12px);
  width: 480px;
  max-width: calc(100vw - 32px);
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.6);
  overflow: hidden;
}
.modal-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}
.modal-card__title {
  margin: 0;
  font-size: 16px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}
.modal-card__body {
  padding: 20px 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.modal-card__hint {
  margin: 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  line-height: 1.5;
}
.modal-card__hint a {
  color: var(--ui-accent, #e8a838);
  text-decoration: none;
}
.modal-card__hint a:hover {
  text-decoration: underline;
}
.modal-card__field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.modal-card__error {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  background: rgba(239, 68, 68, 0.08);
  border: 1px solid rgba(239, 68, 68, 0.2);
  border-radius: var(--ui-radius-sm);
  color: #fca5a5;
  font-size: var(--ui-text-sm);
}
.modal-card__error mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: #f87171;
}
.modal-card__footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  padding: 16px 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
  background: rgba(255, 255, 255, 0.01);
}

.ui-label, .ui-filter-label {
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.55);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.required {
  color: #f87171;
  margin-left: 2px;
}

.ui-hint {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.3);
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/* Integration Intelligence styles moved to src/ui/pages/integrations.scss */
/* ═══════════════════════════════════════════════════════════════════════
   INTEGRATIONS HUB — Liquid Glass Design System (Phase 2)
   ═══════════════════════════════════════════════════════════════════════ */
/* ── Design Tokens ────────────────────────────────────────────────── */
/* ── Overview Container ───────────────────────────────────────────── */
.intg-overview {
  max-width: 860px;
  margin: 0 auto;
  padding: 0 16px;
}

.intg-overview__header {
  margin-bottom: 20px;
}

.intg-overview__count {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: rgba(52, 199, 89, 0.12);
  color: #34C759;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 10px;
  border-radius: 12px;
  margin-left: 8px;
  vertical-align: middle;
}

/* ═══════════════════════════════════════════════════════════════════════
   DIAGNOSTICS ALERT PANEL (Glass Banner)
   ═══════════════════════════════════════════════════════════════════════ */
.intg-diagnostics {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 24px;
}

.intg-alert {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 18px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.04);
  backdrop-filter: blur(20px);
  animation: slideDown 0.3s ease;
}

.intg-alert--high {
  background: rgba(255, 59, 48, 0.1);
  border-color: rgba(255, 59, 48, 0.18);
}
.intg-alert--high .intg-alert__icon {
  color: #FF3B30;
}

.intg-alert--medium {
  background: rgba(255, 204, 0, 0.1);
  border-color: rgba(255, 204, 0, 0.18);
}
.intg-alert--medium .intg-alert__icon {
  color: #FFCC00;
}

.intg-alert--low {
  background: rgba(59, 130, 246, 0.08);
  border-color: rgba(59, 130, 246, 0.18);
}
.intg-alert--low .intg-alert__icon {
  color: #60a5fa;
}

.intg-alert__icon {
  flex-shrink: 0;
  margin-top: 1px;
  font-size: 20px !important;
  width: 20px !important;
  height: 20px !important;
}

.intg-alert__content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.intg-alert__message {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.88);
}

.intg-alert__suggestion {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.45);
}

/* ═══════════════════════════════════════════════════════════════════════
   CATEGORY GROUPS
   ═══════════════════════════════════════════════════════════════════════ */
.intg-category {
  margin-bottom: 28px;
}

.intg-category__label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.35);
  margin-bottom: 10px;
}

.intg-grid {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* ═══════════════════════════════════════════════════════════════════════
   GLASS INTEGRATION CARDS
   ═══════════════════════════════════════════════════════════════════════ */
.intg-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  backdrop-filter: blur(20px);
  cursor: pointer;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  -webkit-user-select: none;
          user-select: none;
}
.intg-card:hover {
  background: rgba(255, 255, 255, 0.07);
  border-color: rgba(255, 255, 255, 0.14);
  transform: translateY(-2px);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
}
.intg-card:active {
  transform: translateY(0);
  box-shadow: none;
}

.intg-card--connected {
  border-color: rgba(52, 199, 89, 0.18);
}
.intg-card--connected:hover {
  border-color: rgba(52, 199, 89, 0.3);
  box-shadow: 0 8px 32px rgba(52, 199, 89, 0.06);
}

.intg-card--degraded {
  border-color: rgba(255, 204, 0, 0.18);
}
.intg-card--degraded:hover {
  border-color: rgba(255, 204, 0, 0.3);
  box-shadow: 0 8px 32px rgba(255, 204, 0, 0.06);
}

.intg-card--error {
  border-color: rgba(255, 59, 48, 0.18);
}
.intg-card--error:hover {
  border-color: rgba(255, 59, 48, 0.3);
  box-shadow: 0 8px 32px rgba(255, 59, 48, 0.06);
}

.intg-card--loading {
  opacity: 0.6;
  pointer-events: none;
}

/* ── Card Icon ────────────────────────────────────────────────────── */
.intg-card__icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.05);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.2s, box-shadow 0.2s;
}
.intg-card__icon .mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: rgba(255, 255, 255, 0.5);
  transition: color 0.2s;
}

.intg-card__icon--active {
  background: rgba(52, 199, 89, 0.12);
  box-shadow: 0 0 12px rgba(52, 199, 89, 0.08);
}
.intg-card__icon--active .mat-icon {
  color: #34C759;
}

.intg-card__icon--degraded {
  background: rgba(255, 204, 0, 0.1);
  box-shadow: 0 0 12px rgba(255, 204, 0, 0.08);
}
.intg-card__icon--degraded .mat-icon {
  color: #FFCC00;
}

.intg-card__icon--error {
  background: rgba(255, 59, 48, 0.1);
  box-shadow: 0 0 12px rgba(255, 59, 48, 0.08);
}
.intg-card__icon--error .mat-icon {
  color: #FF3B30;
}

/* ── Card Info ────────────────────────────────────────────────────── */
.intg-card__info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.intg-card__label {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}

.intg-card__desc {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.4);
}

.intg-card__meta {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.3);
  font-family: "SF Mono", "Fira Code", monospace;
}

/* ── Card Right (Health + Status) ─────────────────────────────────── */
.intg-card__right {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.intg-card__health {
  display: flex;
  align-items: center;
}

.intg-card__arrow {
  color: rgba(255, 255, 255, 0.15);
  font-size: 18px !important;
  width: 18px !important;
  height: 18px !important;
  transition: color 0.2s, transform 0.2s;
}

.intg-card:hover .intg-card__arrow {
  color: rgba(255, 255, 255, 0.45);
  transform: translateX(2px);
}

/* ═══════════════════════════════════════════════════════════════════════
   HEALTH BADGES (Score Indicators)
   ═══════════════════════════════════════════════════════════════════════ */
.intg-health-badge {
  font-size: 11px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 8px;
  letter-spacing: 0.02em;
  font-variant-numeric: tabular-nums;
}

.intg-health--good {
  background: rgba(52, 199, 89, 0.12);
  color: #34C759;
}

.intg-health--warn {
  background: rgba(255, 204, 0, 0.1);
  color: #FFCC00;
}

.intg-health--critical {
  background: rgba(255, 59, 48, 0.1);
  color: #FF3B30;
}

/* ═══════════════════════════════════════════════════════════════════════
   STATUS BADGES
   ═══════════════════════════════════════════════════════════════════════ */
.intg-status {
  font-size: 11px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 10px;
  white-space: nowrap;
}

.intg-status--connected {
  background: rgba(52, 199, 89, 0.12);
  color: #34C759;
}

.intg-status--degraded {
  background: rgba(255, 204, 0, 0.1);
  color: #FFCC00;
}

.intg-status--error {
  background: rgba(255, 59, 48, 0.1);
  color: #FF3B30;
}

.intg-status--disconnected {
  background: rgba(245, 158, 11, 0.12);
  color: #fbbf24;
}

.intg-status--idle {
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.35);
}

/* ═══════════════════════════════════════════════════════════════════════
   INLINE BADGE VARIANTS (Channel rows, sub-components)
   ═══════════════════════════════════════════════════════════════════════ */
.intg-badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 2px 7px;
  border-radius: 4px;
  line-height: 1.4;
}

.intg-badge--connected {
  background: rgba(52, 199, 89, 0.12);
  color: #34C759;
}

.intg-badge--warning {
  background: rgba(255, 204, 0, 0.1);
  color: #FFCC00;
}

.intg-badge--danger {
  background: rgba(255, 59, 48, 0.1);
  color: #FF3B30;
}

.intg-badge--muted {
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.35);
}

.intg-badge--primary {
  background: rgba(59, 130, 246, 0.15);
  color: #60a5fa;
}

/* ═══════════════════════════════════════════════════════════════════════
   PROVIDER PAGE SHELL
   ═══════════════════════════════════════════════════════════════════════ */
.intg-page {
  max-width: 860px;
  margin: 0 auto;
  padding: 0 16px;
}

.intg-back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.45);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  padding: 4px 0;
  margin-bottom: 16px;
  transition: color 0.15s ease;
}
.intg-back:hover {
  color: rgba(255, 255, 255, 0.8);
}
.intg-back .mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.intg-page__header {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 24px;
}

.intg-page__icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.05);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.intg-page__icon .mat-icon {
  font-size: 22px;
  width: 22px;
  height: 22px;
  color: rgba(255, 255, 255, 0.5);
}

.intg-page__icon--active {
  background: rgba(52, 199, 89, 0.12);
}
.intg-page__icon--active .mat-icon {
  color: #34C759;
}

/* ═══════════════════════════════════════════════════════════════════════
   ANIMATIONS
   ═══════════════════════════════════════════════════════════════════════ */
@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* ═══════════════════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════════════════ */
@media (max-width: 640px) {
  .intg-card {
    padding: 12px 14px;
    gap: 10px;
    border-radius: 12px;
  }
  .intg-card__icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
  }
  .intg-card__label {
    font-size: 13px;
  }
  .intg-status {
    font-size: 10px;
    padding: 2px 8px;
  }
  .intg-health-badge {
    font-size: 10px;
    padding: 2px 6px;
  }
  .intg-page, .intg-overview {
    padding: 0 10px;
  }
  .intg-alert {
    padding: 12px 14px;
    gap: 10px;
  }
}
/* ==========================================================================
   INTEGRATIONS PAGE — Page Contract
   ==========================================================================
   Scoped page styles for the Integration Intelligence dashboard.
   All values use design tokens from src/ui/tokens.scss.
   Drawer/modal overlays reuse existing layout contracts where possible.
   ========================================================================== */
/* ── Container ────────────────────────────────────────────────────── */
.intg-intelligence {
  max-width: 860px;
  margin: 0 auto;
  padding: 0 var(--ui-space-4);
}

.intg-section {
  margin-top: var(--ui-space-2);
}

.intg-section-title {
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ui-text-subtle);
  margin: 0 0 var(--ui-space-3);
}

/* ==========================================================================
   1. SMART BANNER
   ========================================================================== */
.intg-smart-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-4);
  padding: var(--ui-space-3) var(--ui-space-5);
  border-radius: var(--ui-radius-lg);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-1);
  backdrop-filter: var(--ui-blur-lg);
  margin-bottom: var(--ui-space-6);
  animation: intg-banner-in 0.35s var(--ui-transition-spring);
}

.intg-smart-banner--critical {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
}

.intg-smart-banner--recommended {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
}

.intg-smart-banner__body {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  flex: 1;
  min-width: 0;
}

.intg-smart-banner__icon {
  font-size: var(--ui-text-xl);
  width: 22px;
  height: 22px;
  flex-shrink: 0;
}
.intg-smart-banner--critical .intg-smart-banner__icon {
  color: var(--ui-danger);
}
.intg-smart-banner--recommended .intg-smart-banner__icon {
  color: var(--ui-success);
}

.intg-smart-banner__text {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.intg-smart-banner__title {
  font-family: var(--ui-font-primary);
  font-size: var(--ui-table-cell-font);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.intg-smart-banner__desc {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-subtle);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.intg-smart-banner__cta {
  flex-shrink: 0;
  padding: 7px var(--ui-space-4);
  border-radius: var(--ui-radius-sm);
  border: none;
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: all var(--ui-transition-base);
  white-space: nowrap;
}
.intg-smart-banner--critical .intg-smart-banner__cta {
  background: var(--ui-danger);
  color: var(--ui-text-primary);
}
.intg-smart-banner--critical .intg-smart-banner__cta:hover {
  opacity: 0.9;
  transform: translateY(-1px);
}
.intg-smart-banner--recommended .intg-smart-banner__cta {
  background: var(--ui-success-bg);
  color: var(--ui-success);
}
.intg-smart-banner--recommended .intg-smart-banner__cta:hover {
  background: rgba(74, 222, 128, 0.25);
}

@keyframes intg-banner-in {
  from {
    opacity: 0;
    transform: translateY(-12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* ==========================================================================
   2. BUSINESS READINESS CARD
   ========================================================================== */
.intg-readiness {
  padding: var(--ui-space-5);
  border-radius: var(--ui-radius-lg);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-1);
  backdrop-filter: var(--ui-blur-md);
  margin-bottom: var(--ui-space-6);
}

.intg-readiness__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: var(--ui-space-3);
}

.intg-readiness__info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.intg-readiness__title {
  font-family: var(--ui-font-primary);
  font-size: 15px;
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
  margin: 0;
}

.intg-readiness__label {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
}

.intg-readiness__score {
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-3xl);
  font-weight: var(--ui-font-bold);
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.intg-readiness__bar {
  height: 6px;
  border-radius: 3px;
  background: var(--ui-surface-2);
  overflow: hidden;
  margin-bottom: var(--ui-space-3);
}

.intg-readiness__fill {
  height: 100%;
  border-radius: 3px;
  transition: width 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.intg-readiness__issues {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.intg-readiness__issue {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.intg-readiness__issue-icon {
  font-size: var(--ui-text-md);
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

/* ==========================================================================
   3. RECOMMENDED ACTIONS
   ========================================================================== */
.intg-actions {
  margin-bottom: var(--ui-space-8);
}

.intg-actions__list {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.intg-action-card {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
  border-radius: var(--ui-radius-md);
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-1);
  backdrop-filter: var(--ui-blur-md);
  transition: all var(--ui-transition-base);
}
.intg-action-card:hover {
  background: var(--ui-surface-2);
}

.intg-action-card--critical {
  border-color: var(--ui-danger-border);
}
.intg-action-card--critical .intg-action-card__icon {
  color: var(--ui-danger);
}

.intg-action-card--warning {
  border-color: var(--ui-warning-border);
}
.intg-action-card--warning .intg-action-card__icon {
  color: var(--ui-warning);
}

.intg-action-card--info {
  border-color: var(--ui-info-border);
}
.intg-action-card--info .intg-action-card__icon {
  color: var(--ui-info);
}

.intg-action-card__icon {
  font-size: var(--ui-text-xl);
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.intg-action-card__content {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.intg-action-card__title {
  font-family: var(--ui-font-primary);
  font-size: var(--ui-table-cell-font);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
}

.intg-action-card__desc {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-subtle);
}

.intg-action-card__cta {
  flex-shrink: 0;
  padding: 6px var(--ui-space-3);
  border-radius: var(--ui-radius-sm);
  border: 1px solid var(--ui-border-hover);
  background: transparent;
  color: var(--ui-text-muted);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: all var(--ui-transition-base);
  white-space: nowrap;
}
.intg-action-card__cta:hover {
  background: var(--ui-surface-2);
  color: var(--ui-text-primary);
  border-color: var(--ui-border-hover);
}

/* ==========================================================================
   4. DETAIL DRAWER — extends ui-drawer contract
   ========================================================================== */
.intg-drawer-overlay {
  position: fixed;
  inset: 0;
  background: rgba(8, 8, 8, 0.18);
  backdrop-filter: var(--ui-blur-md);
  -webkit-backdrop-filter: var(--ui-blur-md);
  z-index: var(--z-drawer-backdrop);
  animation: intg-fade-in 0.15s ease;
}

body:has(.intg-drawer-overlay) .ui-app-shell {
  isolation: auto !important;
}

body:has(.intg-drawer-overlay) app-console-sidebar,
body:has(.intg-drawer-overlay) app-console-header,
body:has(.intg-drawer-overlay) .careager-topbar,
body:has(.intg-drawer-overlay) .navbar-custom.careager-topbar,
body:has(.intg-drawer-overlay) .left-side-menu,
body:has(.intg-drawer-overlay) .left-side-menu.glass-sidebar {
  z-index: var(--z-base) !important;
}

.intg-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 420px;
  max-width: 92vw;
  background: var(--ui-surface-1);
  backdrop-filter: var(--ui-blur-lg) saturate(120%);
  -webkit-backdrop-filter: var(--ui-blur-lg) saturate(120%);
  border-left: 1px solid var(--ui-border);
  box-shadow: var(--ui-shadow-xl), inset 1px 0 0 var(--ui-border-light);
  z-index: var(--z-drawer-panel);
  animation: intg-drawer-in 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
}

.intg-drawer__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: var(--ui-space-6) var(--ui-space-5) var(--ui-space-4);
  border-bottom: 1px solid var(--ui-border-light);
}

.intg-drawer__title-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
}

.intg-drawer__title {
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
  margin: 0 0 var(--ui-space-1);
}

.intg-drawer__close {
  background: none;
  border: none;
  color: var(--ui-text-subtle);
  cursor: pointer;
  padding: var(--ui-space-1);
  border-radius: var(--ui-radius-sm);
  transition: all var(--ui-transition-fast);
}
.intg-drawer__close:hover {
  color: var(--ui-text-secondary);
  background: var(--ui-surface-2);
}
.intg-drawer__close mat-icon {
  font-size: var(--ui-text-xl);
  width: 20px;
  height: 20px;
}

.intg-drawer__body {
  padding: var(--ui-space-5);
  flex: 1;
}

.intg-drawer__stat-row {
  display: flex;
  gap: var(--ui-space-4);
  margin-bottom: var(--ui-space-6);
}

.intg-drawer__stat {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
}

.intg-drawer__stat-label {
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--ui-text-disabled);
}

.intg-drawer__stat-value {
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-bold);
  font-variant-numeric: tabular-nums;
}

.intg-drawer__section-title {
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--ui-text-disabled);
  margin: 0 0 var(--ui-space-3);
}

.intg-drawer__actions {
  margin-bottom: var(--ui-space-6);
}

.intg-drawer__action-item {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) 0;
  font-size: var(--ui-table-cell-font);
  color: var(--ui-text-muted);
}
.intg-drawer__action-item mat-icon {
  font-size: var(--ui-text-lg);
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  margin-top: 1px;
}

.intg-drawer__primary-btn {
  width: 100%;
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  border: none;
  background: var(--ui-surface-3);
  color: var(--ui-text-secondary);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: all var(--ui-transition-base);
  margin-top: var(--ui-space-2);
}
.intg-drawer__primary-btn:hover {
  background: var(--ui-surface-active);
  color: var(--ui-text-primary);
}

@keyframes intg-drawer-in {
  from {
    transform: translateX(100%);
  }
  to {
    transform: translateX(0);
  }
}
/* ==========================================================================
   5. BLOCKING MODAL
   ========================================================================== */
.intg-blocking-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.65);
  backdrop-filter: var(--ui-blur-sm);
  z-index: var(--z-modal-backdrop);
  display: flex;
  align-items: center;
  justify-content: center;
  animation: intg-fade-in 0.15s ease;
}

.intg-blocking-modal {
  width: 400px;
  max-width: 90vw;
  padding: var(--ui-space-8);
  border-radius: var(--ui-radius-xl);
  border: 1px solid var(--ui-border);
  background: var(--ui-glass-dark);
  box-shadow: var(--ui-shadow-xl);
  text-align: center;
  animation: intg-modal-in 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.intg-blocking-modal__icon {
  font-size: 40px;
  width: 40px;
  height: 40px;
  color: var(--ui-text-disabled);
  margin-bottom: var(--ui-space-4);
}

.intg-blocking-modal__title {
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
  margin: 0 0 var(--ui-space-2);
}

.intg-blocking-modal__message {
  font-size: var(--ui-text-base);
  color: var(--ui-text-subtle);
  margin: 0 0 var(--ui-space-6);
  line-height: 1.5;
}

.intg-blocking-modal__actions {
  display: flex;
  gap: var(--ui-space-3);
  justify-content: center;
}

.intg-blocking-modal__secondary {
  padding: var(--ui-space-3) var(--ui-space-5);
  border-radius: var(--ui-radius-sm);
  border: 1px solid var(--ui-border-hover);
  background: transparent;
  color: var(--ui-text-muted);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-table-cell-font);
  font-weight: var(--ui-font-medium);
  cursor: pointer;
  transition: all var(--ui-transition-base);
}
.intg-blocking-modal__secondary:hover {
  background: var(--ui-surface-1);
  color: var(--ui-text-primary);
}

.intg-blocking-modal__cta {
  padding: var(--ui-space-3) var(--ui-space-6);
  border-radius: var(--ui-radius-sm);
  border: none;
  background: var(--ui-danger);
  color: var(--ui-text-primary);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-table-cell-font);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: all var(--ui-transition-base);
}
.intg-blocking-modal__cta:hover {
  opacity: 0.9;
  transform: translateY(-1px);
}

@keyframes intg-modal-in {
  from {
    opacity: 0;
    transform: scale(0.95);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
/* ==========================================================================
   6. RECOVERY TOAST
   ========================================================================== */
.intg-toast {
  position: fixed;
  bottom: var(--ui-space-6);
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-5);
  border-radius: var(--ui-radius-md);
  background: var(--ui-success-bg);
  border: 1px solid var(--ui-success-border);
  backdrop-filter: var(--ui-blur-md);
  z-index: var(--z-toast);
  animation: intg-toast-in 0.3s ease, intg-toast-out 0.3s ease 3.5s forwards;
}

.intg-toast__icon {
  font-size: var(--ui-text-xl);
  width: 20px;
  height: 20px;
  color: var(--ui-success);
}

.intg-toast span {
  font-family: var(--ui-font-primary);
  font-size: var(--ui-table-cell-font);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
}

@keyframes intg-toast-in {
  from {
    opacity: 0;
    transform: translateX(-50%) translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
}
@keyframes intg-toast-out {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    transform: translateX(-50%) translateY(8px);
  }
}
/* ==========================================================================
   7. LOADING STATE
   ========================================================================== */
.intg-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-3);
  padding: 60px var(--ui-space-5);
  color: var(--ui-text-disabled);
  font-size: var(--ui-text-base);
}

.intg-loading__spinner {
  animation: spin 1s linear infinite;
  font-size: var(--ui-text-xl);
  width: 20px;
  height: 20px;
}

/* ==========================================================================
   SHARED ANIMATIONS
   ========================================================================== */
@keyframes intg-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/* ==========================================================================
   SMARTFLO PROVIDER PAGE
   ========================================================================== */
.smartflo-integration-page .intg-page {
  width: 100%;
  max-width: none;
  padding: 0;
}

.smartflo-integration-page .intg-back {
  margin-bottom: var(--ui-space-5);
}

.smartflo-integration-page .intg-page__header {
  align-items: center;
  gap: var(--ui-space-4);
  margin-bottom: var(--ui-space-6);
}

.smartflo-integration-page .intg-page__copy {
  flex: 1 1 auto;
  min-width: 0;
}

.smartflo-integration-page .intg-page__eyebrow {
  margin-bottom: var(--ui-space-1);
  color: var(--ui-text-subtle);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.smartflo-integration-page .page-heading {
  margin: 0;
  color: var(--ui-text-primary);
  font-family: var(--ui-font-display);
  font-size: var(--ui-text-3xl);
  font-weight: var(--ui-font-bold);
  line-height: 1.1;
}

.smartflo-integration-page .section-helper {
  margin: var(--ui-space-2) 0 0;
  color: var(--ui-text-muted);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-base);
}

.smartflo-integration-page .intg-page__icon,
.smartflo-integration-page .integration-connect__icon,
.smartflo-integration-page .integration-connected__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  border-radius: var(--ui-radius-lg);
  background: var(--ui-success-bg);
  border: 1px solid var(--ui-success-border);
}

.smartflo-integration-page .intg-page__icon {
  width: 52px;
  height: 52px;
}

.smartflo-integration-page .intg-page__icon .mat-icon,
.smartflo-integration-page .integration-connect__icon .mat-icon,
.smartflo-integration-page .integration-connected__icon .mat-icon {
  color: var(--ui-success);
}

.smartflo-integration-page .smartflo-status-chips {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.smartflo-integration-page .integration-content {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  width: 100%;
  max-width: none;
}

.smartflo-integration-page .smartflo-loading {
  justify-content: flex-start;
  min-height: 120px;
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-lg);
  background: var(--ui-surface-1);
}

.smartflo-integration-page .smartflo-connect,
.smartflo-integration-page .smartflo-connected {
  width: 100%;
  gap: var(--ui-space-4);
  padding: var(--ui-space-6);
  background: var(--ui-surface-1);
  border-color: var(--ui-border);
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.smartflo-integration-page .integration-connect__header,
.smartflo-integration-page .integration-connected__header {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-3);
  margin: 0;
}

.smartflo-integration-page .integration-connect__icon,
.smartflo-integration-page .integration-connected__icon {
  width: 44px;
  height: 44px;
}

.smartflo-integration-page .integration-connect__copy,
.smartflo-integration-page .integration-connected__copy {
  min-width: 0;
}

.smartflo-integration-page .integration-connect__title,
.smartflo-integration-page .integration-connected__title {
  margin: 0;
  color: var(--ui-text-primary);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  line-height: 1.25;
}

.smartflo-integration-page .integration-connect__subtitle,
.smartflo-integration-page .integration-connected__subtitle {
  margin: var(--ui-space-1) 0 0;
  color: var(--ui-text-muted);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-base);
  line-height: 1.45;
}

.smartflo-integration-page .smartflo-connected__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: var(--ui-space-4);
  align-items: start;
}

.smartflo-integration-page .smartflo-connected__primary,
.smartflo-integration-page .smartflo-connected__sidebar {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  min-width: 0;
}

.smartflo-integration-page .integration-connect__body {
  display: grid;
  grid-template-columns: minmax(240px, 0.9fr) minmax(300px, 1.1fr);
  gap: var(--ui-space-5);
  align-items: stretch;
}

.smartflo-integration-page .integration-connect__steps {
  margin: 0;
  padding: var(--ui-space-4);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
}

.smartflo-integration-page .integration-connect__steps ol {
  margin: 0;
  padding-left: var(--ui-space-5);
  color: var(--ui-text-muted);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
  line-height: 1.65;
}

.smartflo-integration-page .integration-connect__steps a {
  color: var(--ui-info);
  text-decoration: none;
}

.smartflo-integration-page .integration-connect__steps a:hover {
  text-decoration: underline;
}

.smartflo-integration-page .integration-connect__form {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--ui-space-2);
  margin: 0;
  min-width: 0;
}

.smartflo-integration-page .smartflo-field-label,
.smartflo-integration-page .integration-connected__label {
  color: var(--ui-text-subtle);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.smartflo-integration-page .integration-connect__input-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--ui-space-2);
}

.smartflo-integration-page .integration-connect__input-row .ui-input {
  width: 100%;
  min-width: 0;
  height: 40px;
  padding: 0 var(--ui-space-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
  color: var(--ui-text-primary);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
}

.smartflo-integration-page .integration-connect__input-row .ui-input::placeholder {
  color: var(--ui-text-subtle);
}

.smartflo-integration-page .integration-connect__input-row .ui-input:focus {
  border-color: var(--ui-border-focus);
  outline: none;
}

.smartflo-integration-page .integration-connect__error,
.smartflo-integration-page .integration-validation-warning {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-2);
  padding: var(--ui-space-3);
  border: 1px solid var(--ui-danger-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-danger-bg);
  color: var(--ui-danger);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
  line-height: 1.45;
}

.smartflo-integration-page .integration-connect__error .mat-icon,
.smartflo-integration-page .integration-validation-warning .mat-icon {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  font-size: 18px;
}

.smartflo-integration-page .integration-connect__note,
.smartflo-integration-page .integration-connected__note {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-2);
  margin: 0;
  padding: var(--ui-space-3);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
  color: var(--ui-text-muted);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
  line-height: 1.45;
}

.smartflo-integration-page .integration-connect__note .mat-icon,
.smartflo-integration-page .integration-connected__note .mat-icon {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  font-size: 18px;
  color: var(--ui-text-subtle);
}

.smartflo-integration-page .smartflo-webhook-panel,
.smartflo-integration-page .smartflo-did-section {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  padding: var(--ui-space-4);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
}

.smartflo-integration-page .smartflo-section-heading,
.smartflo-integration-page .smartflo-did-section__header {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-3);
}

.smartflo-integration-page .smartflo-section-heading {
  min-width: 0;
}

.smartflo-integration-page .smartflo-section-heading .mat-icon {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  color: var(--ui-text-muted);
  font-size: 20px;
}

.smartflo-integration-page .smartflo-section-title {
  display: block;
  color: var(--ui-text-secondary);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  line-height: 1.3;
}

.smartflo-integration-page .smartflo-section-subtitle {
  display: block;
  margin-top: 2px;
  color: var(--ui-text-subtle);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
  line-height: 1.35;
}

.smartflo-integration-page .smartflo-webhook-url {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--ui-space-2);
  align-items: center;
}

.smartflo-integration-page .webhook-code {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: var(--ui-space-3);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-2);
  color: var(--ui-info);
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-sm);
  line-height: 1.35;
}

.smartflo-integration-page .smartflo-webhook-hint {
  margin: 0;
  color: var(--ui-text-muted);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
}

.smartflo-integration-page .integration-connected__details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-3);
  margin: 0;
  padding: 0;
  background: transparent;
}

.smartflo-integration-page .smartflo-connected__sidebar .integration-connected__details {
  grid-template-columns: 1fr;
}

.smartflo-integration-page .integration-connected__detail {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  min-width: 0;
  padding: var(--ui-space-4);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
}

.smartflo-integration-page .integration-connected__value {
  color: var(--ui-text-primary);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-medium);
  line-height: 1.35;
}

.smartflo-integration-page .smartflo-did-section__header {
  justify-content: space-between;
}

.smartflo-integration-page .smartflo-did-section__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ui-space-2);
  flex: 0 0 auto;
}

.smartflo-integration-page .smartflo-did-syncing,
.smartflo-integration-page .smartflo-did-empty {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-3);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
  color: var(--ui-text-muted);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
}

.smartflo-integration-page .smartflo-did-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-2);
}

.smartflo-integration-page .smartflo-did-card {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  min-width: 0;
  min-height: 56px;
  padding: var(--ui-space-3);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
  cursor: pointer;
  transition: border-color var(--ui-transition-base), background var(--ui-transition-base);
}

.smartflo-integration-page .smartflo-did-card:hover,
.smartflo-integration-page .smartflo-did-card--selected {
  border-color: var(--ui-success-border);
  background: var(--ui-success-bg);
}

.smartflo-integration-page .smartflo-did-card__radio {
  flex: 0 0 auto;
  accent-color: var(--ui-success);
}

.smartflo-integration-page .smartflo-did-card__content {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1 1 auto;
}

.smartflo-integration-page .did-number {
  overflow: hidden;
  color: var(--ui-text-primary);
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.smartflo-integration-page .did-label {
  overflow: hidden;
  color: var(--ui-text-muted);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.smartflo-integration-page .integration-connected__actions {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: var(--ui-space-2);
  margin: 0;
  padding-top: var(--ui-space-1);
  flex-wrap: wrap;
}

@media (max-width: 1120px) {
  .smartflo-integration-page .smartflo-connected__grid {
    grid-template-columns: 1fr;
  }
  .smartflo-integration-page .smartflo-connected__sidebar .integration-connected__details {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 760px) {
  .smartflo-integration-page .intg-page__header,
  .smartflo-integration-page .smartflo-connected__grid,
  .smartflo-integration-page .integration-connect__body,
  .smartflo-integration-page .smartflo-webhook-url,
  .smartflo-integration-page .integration-connected__details,
  .smartflo-integration-page .smartflo-connected__sidebar .integration-connected__details,
  .smartflo-integration-page .smartflo-did-list {
    grid-template-columns: 1fr;
  }
  .smartflo-integration-page .intg-page__header {
    display: grid;
  }
  .smartflo-integration-page .smartflo-status-chips,
  .smartflo-integration-page .smartflo-did-section__actions,
  .smartflo-integration-page .integration-connected__actions {
    justify-content: flex-start;
  }
  .smartflo-integration-page .smartflo-did-section__header {
    flex-direction: column;
  }
  .smartflo-integration-page .integration-connect__input-row {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 520px) {
  .smartflo-integration-page .page-heading {
    font-size: var(--ui-text-2xl);
  }
  .smartflo-integration-page .smartflo-connect,
  .smartflo-integration-page .smartflo-connected {
    padding: var(--ui-space-4);
  }
  .smartflo-integration-page .smartflo-did-section__actions,
  .smartflo-integration-page .integration-connected__actions {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
  }
}
.insurance-claims-page .header-card__bottom .filter-row {
  width: 100%;
}
.insurance-claims-page .header-card__bottom .filter-group {
  margin-left: auto;
  justify-content: flex-end;
}
.insurance-claims-page .ui-table td, .insurance-claims-page .premium-table td, .insurance-claims-page .glass-table td {
  padding-top: 16px;
  padding-bottom: 16px;
}
.insurance-claims-page .insurance-claims-table__stack {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.insurance-claims-page .insurance-claims-table__stack .cell-chip {
  width: fit-content;
  max-width: 100%;
}
.insurance-claims-page .insurance-claims-table__stack .cell-primary-name,
.insurance-claims-page .insurance-claims-table__stack .cell-primary-sub,
.insurance-claims-page .insurance-claims-table__stack .cell-muted {
  margin: 0;
}
.insurance-claims-page .insurance-claims-table__stack--vehicle .cell-primary-name {
  line-height: 1.45;
  color: var(--ui-text-secondary);
}
.insurance-claims-page .insurance-claims-table__invoice-chip {
  background: rgba(255, 140, 90, 0.12);
  border-color: rgba(255, 140, 90, 0.28);
}
.insurance-claims-page .insurance-claims-table__owner-name {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--ui-text-secondary);
}
.insurance-claims-page .insurance-claims-table__owner-icon {
  width: 16px;
  height: 16px;
  font-size: 16px;
  color: rgba(147, 197, 253, 0.92);
}
.insurance-claims-page .cell-status .glass-status-chip {
  justify-content: center;
  min-width: 122px;
}
.insurance-claims-page .insurance-claims-table__revenue {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
}
.insurance-claims-page .insurance-claims-table__revenue .cell-muted {
  text-align: right;
}
.insurance-claims-page .ui-table tbody tr:hover .insurance-claims-table__invoice-chip, .insurance-claims-page .premium-table tbody tr:hover .insurance-claims-table__invoice-chip, .insurance-claims-page .glass-table tbody tr:hover .insurance-claims-table__invoice-chip {
  background: rgba(255, 140, 90, 0.18);
  border-color: rgba(255, 140, 90, 0.34);
}

@media (max-width: 1024px) {
  .insurance-claims-page .header-card__bottom .filter-group {
    justify-content: flex-start;
  }
}
/* ==========================================================================
   UI PAGES - MY PAYROLL (EMPLOYEE VIEW)
   ==========================================================================
   Scoped UI contract for employee payroll viewing.
   All selectors MUST be inside .my-payroll-page scope.
   ========================================================================== */
.my-payroll-page {
  padding: 0 20px;
  /* ==========================================================================
     HEADER BLOCK - Profile section
     ========================================================================== */
  /* Avatar styling uses .avatar-wrap from role-management contract */
  /* ==========================================================================
     SUMMARY CARDS - 3-column grid layout
     ========================================================================== */
  /* Stat list rows inside summary columns */
  /* ==========================================================================
     STATUTORY LIST - Compliance items with status icons
     ========================================================================== */
  /* ==========================================================================
     EMPTY STATE - Centered placeholder for empty cards
     ========================================================================== */
  /* ==========================================================================
     PAYROLL HISTORY TABLE - Uses glass-table contract
     ========================================================================== */
  /* Table uses .glass-table contract - only page-specific overrides here */
  /* Uses .type-pill contract from data-table.scss */
  /* View button uses pill button contract */
  /* ==========================================================================
     LOADING, ERROR, EMPTY STATES
     ========================================================================== */
}
.my-payroll-page .erp-header-block {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 20px;
  margin-bottom: 16px;
  overflow: hidden;
}
.my-payroll-page .erp-header-primary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 24px;
}
.my-payroll-page .row-identity {
  display: flex;
  align-items: center;
  gap: 16px;
}
.my-payroll-page .identity-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.my-payroll-page .emp-name-row {
  display: flex;
  align-items: center;
  gap: 12px;
}
.my-payroll-page .emp-name {
  font-size: 18px;
  font-weight: 600;
  color: var(--ui-text-primary, rgba(255, 255, 255, 0.95));
}
.my-payroll-page .emp-code-pill {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  font-size: 10px;
  font-weight: 600;
  font-family: var(--ui-font-mono);
  letter-spacing: 0.3px;
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.6));
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 12px;
}
.my-payroll-page .emp-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--ui-text-secondary, rgba(255, 255, 255, 0.6));
}
.my-payroll-page .meta-sep {
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.4));
}
.my-payroll-page .summary-card {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ui-space-4, 16px);
  margin-bottom: 16px;
}
@media (max-width: 900px) {
  .my-payroll-page .summary-card {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 600px) {
  .my-payroll-page .summary-card {
    grid-template-columns: 1fr;
  }
}
.my-payroll-page .summary-column {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2, 8px);
  padding: var(--ui-space-6, 24px);
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.01));
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  transition: all 0.2s ease;
}
.my-payroll-page .summary-column:hover {
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.02));
  border-color: var(--ui-border-hover, rgba(255, 255, 255, 0.15));
  transform: translateY(-2px);
  box-shadow: 0 28px 70px rgba(0, 0, 0, 0.5);
}
.my-payroll-page .summary-column--highlight {
  border-color: rgba(74, 222, 128, 0.25);
  background: linear-gradient(150deg, rgba(74, 222, 128, 0.08), rgba(255, 255, 255, 0.02));
}
.my-payroll-page .summary-column--highlight:hover {
  border-color: rgba(74, 222, 128, 0.4);
}
.my-payroll-page .summary-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gdt-accent, #ff9868);
  padding-bottom: var(--ui-space-2, 8px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  margin: 0;
}
.my-payroll-page .summary-label mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  opacity: 0.8;
}
.my-payroll-page .salary-amount {
  font-size: 28px;
  font-weight: 700;
  color: var(--ui-success, #4ade80);
  letter-spacing: -0.5px;
  line-height: 1.2;
  margin: var(--ui-space-2, 8px) 0 0;
}
.my-payroll-page .summary-sub {
  font-size: 12px;
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.5));
  margin: 0;
}
.my-payroll-page .summary-column ul {
  list-style: none;
  margin: var(--ui-space-2, 8px) 0 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.my-payroll-page .summary-column li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 12px;
  padding: 8px 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}
.my-payroll-page .summary-column li:last-child {
  border-bottom: none;
}
.my-payroll-page .summary-column li span {
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.5));
  text-transform: uppercase;
  font-size: 10px;
  letter-spacing: 0.05em;
  font-weight: 600;
}
.my-payroll-page .summary-column li strong {
  color: var(--ui-text-primary, rgba(255, 255, 255, 0.9));
  font-weight: 500;
}
.my-payroll-page .summary-column li strong.mono {
  font-family: var(--ui-font-mono);
  letter-spacing: 0.02em;
}
.my-payroll-page .statutory-list {
  list-style: none;
  margin: var(--ui-space-2, 8px) 0 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.my-payroll-page .statutory-list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}
.my-payroll-page .statutory-list li:last-child {
  border-bottom: none;
}
.my-payroll-page .statutory-list .stat-label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.5));
}
.my-payroll-page .statutory-list .stat-value {
  font-size: 13px;
  font-weight: 500;
  color: var(--ui-text-primary, rgba(255, 255, 255, 0.9));
}
.my-payroll-page .statutory-list .stat-value.active {
  color: var(--ui-success, #4ade80);
}
.my-payroll-page .statutory-list .stat-value.muted {
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.4));
}
.my-payroll-page .summary-column .empty-state-compact {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  width: 100%;
  flex: 1;
  padding: 24px 16px;
  gap: 8px;
  min-height: 100px;
}
.my-payroll-page .summary-column .empty-state-compact mat-icon,
.my-payroll-page .summary-column .empty-state-compact .empty-icon {
  font-size: 32px;
  width: 32px;
  height: 32px;
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.25));
}
.my-payroll-page .summary-column .empty-state-compact .empty-text {
  font-size: 12px;
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.4));
  margin: 0;
}
.my-payroll-page .payroll-history-section {
  padding: 0 20px;
}
.my-payroll-page .section-header {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: var(--ui-space-4, 16px);
}
.my-payroll-page .section-header h2 {
  font-size: 18px;
  font-weight: 600;
  color: var(--ui-text-primary, rgba(255, 255, 255, 0.95));
  margin: 0;
}
.my-payroll-page .section-header .record-count {
  font-size: 13px;
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.5));
}
.my-payroll-page .month-cell {
  font-weight: 500;
  color: var(--ui-text-primary, rgba(255, 255, 255, 0.9));
}
.my-payroll-page .payment-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.my-payroll-page .payment-date {
  font-size: 11px;
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.45));
}
.my-payroll-page .payslip-pending {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.35));
  font-size: 12px;
  font-weight: 500;
}
.my-payroll-page .payslip-pending mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  opacity: 0.7;
}
.my-payroll-page .pill-btn-view {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 16px;
  font-size: 12px;
  font-weight: 500;
  color: var(--ui-text-secondary, rgba(255, 255, 255, 0.75));
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 100px;
  cursor: pointer;
  transition: all 0.15s ease;
}
.my-payroll-page .pill-btn-view mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}
.my-payroll-page .pill-btn-view:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.2);
  color: var(--ui-text-primary, rgba(255, 255, 255, 0.95));
}
.my-payroll-page-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 80px 24px;
  gap: 20px;
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.6));
}
.my-payroll-page-error {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 80px 24px;
  gap: 16px;
  text-align: center;
}
.my-payroll-page-error mat-icon {
  font-size: 64px;
  width: 64px;
  height: 64px;
  color: var(--ui-error, #ef4444);
  opacity: 0.6;
}
.my-payroll-page-error h3 {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  color: var(--ui-text-primary, rgba(255, 255, 255, 0.9));
}
.my-payroll-page-error p {
  margin: 0;
  font-size: 14px;
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.5));
  max-width: 400px;
}
.my-payroll-page-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 100px 24px;
  gap: 20px;
  text-align: center;
}
.my-payroll-page-empty mat-icon {
  font-size: 72px;
  width: 72px;
  height: 72px;
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.2));
}
.my-payroll-page-empty h3 {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: var(--ui-text-primary, rgba(255, 255, 255, 0.9));
}
.my-payroll-page-empty p {
  margin: 0;
  font-size: 14px;
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.5));
  max-width: 400px;
}

/* ==========================================================================
   MY PROFILE PAGE - LAYOUT ONLY
   ==========================================================================
   Page-level layout (grids, spacing). All card visuals from UI contracts.
   ========================================================================== */
.my-profile-page {
  padding: var(--ui-space-5);
  max-width: 1400px;
  margin: 0 auto;
}

/* Loading & Error States */
.my-profile-loading,
.my-profile-error {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-4);
  min-height: 400px;
  text-align: center;
}

.my-profile-error mat-icon {
  font-size: 48px;
  width: 48px;
  height: 48px;
  color: var(--ui-danger);
}

.my-profile-error h3 {
  margin: 0;
  color: var(--ui-text-primary);
}

.my-profile-error p {
  margin: 0;
  color: var(--ui-text-muted);
}

/* Hero Card Layout */
.profile-hero-card {
  margin-bottom: var(--ui-space-5);
}

.profile-hero-layout {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-5);
}

.avatar-wrap--hero {
  flex-shrink: 0;
  width: 80px;
  height: 80px;
  border-radius: var(--ui-radius-full);
  overflow: hidden;
  background: var(--ui-surface-2);
  border: 2px solid var(--ui-border-light);
  display: flex;
  align-items: center;
  justify-content: center;
}

.avatar-wrap--hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.avatar-wrap--hero .initials {
  font-size: var(--ui-text-2xl);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  text-transform: uppercase;
}

/* Grid Spacing & Alignment */
.glass-summary-grid,
.glass-summary-grid.cols-2 {
  margin-bottom: var(--ui-space-5);
  align-items: start;
}

/* Empty state (uses existing contract pattern) */
.empty-state-compact {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-4) 0;
  color: var(--ui-text-muted);
}

.empty-state-compact mat-icon {
  font-size: var(--ui-text-2xl);
  width: var(--ui-text-2xl);
  height: var(--ui-text-2xl);
  color: var(--ui-text-muted);
  opacity: 0.7;
}

.empty-state-compact .empty-message {
  font-size: var(--ui-text-sm);
  margin: 0;
}

/* Responsive */
@media (max-width: 768px) {
  .my-profile-page {
    padding: var(--ui-space-3);
  }
  .profile-hero-layout {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .avatar-wrap--hero {
    width: 96px;
    height: 96px;
  }
}
/* ==========================================================================
   USER PROFILE PAGE CONTRACT
   ==========================================================================
   Page-level styles for /console/user/profile/:id
   All selectors scoped via SCSS nesting under .user-profile-shell
   Migrated from component CSS (originally 2706 lines, ViewEncapsulation scoped)

   Per Autroid UI Rulebook v1.0:
   - Location: src/ui/pages/ (page-level contract)
   - Scoping: .user-profile-shell wraps all selectors
   ========================================================================== */
.user-profile-shell {
  /* ==========================================================================
     Profile Shell Container
     ========================================================================== */
  /* Modal mode adjustments */
  /* ==========================================================================
     Ambient Glow Effects
     ========================================================================== */
  /* ==========================================================================
     Glass Surface Base
     ========================================================================== */
  /* ==========================================================================
     Modal Close Button
     ========================================================================== */
  /* ==========================================================================
     Profile Hero Section
     ========================================================================== */
  /* Contact Person — shown for business parties when person ≠ company name */
  /* Reward Points Wallet Card */
  /* Convert to Business Floating Panel */
  /* Status Chips */
  /* Account Type Badges — Business / Individual */
  /* Hero Meta */
  /* Stat cards — use contract from headers/stat-cards.scss */
  /* ==========================================================================
     Category Select (Pill Dropdown)
     ========================================================================== */
  /* ==========================================================================
     Business Overview Grid & Section Headers
     ========================================================================== */
  /* ==========================================================================
     Business Overview — Two-Panel Summary Layout
     ========================================================================== */
  /* Operational Summary — 3-column compact grid */
  /* Financial Health — Stacked rows */
  /* Overdue warning strip */
  /* "This Branch" label in Financial Health header (non-transferred customers) */
  /* "Group" badge on LTV meta item */
  /* ─────────────────────────────────────────────────────────────────────────
     CRM Insight Layer — Cross-Branch History Panel
     Shown only when financialSummary.hasGroupData is true (transferred customers).
     Visually distinct from the accounting layer — purple tones = informational.
  ───────────────────────────────────────────────────────────────────────── */
  /* ==========================================================================
     Profile Tabs Section - Pill Tab Style
     ========================================================================== */
  /* ==========================================================================
     Card Collections (Vehicles, Packages)
     ========================================================================== */
  /* ==========================================================================
     Booking Grid
     ========================================================================== */
  /* Column grid template — shared by header + rows */
  /* Header row */
  /* Data row */
  /* Columns */
  /* Booking ID */
  /* Date icon */
  /* Car name + reg */
  /* Amount */
  /* Status Colors — scoped overrides */
  /* Branch Badge — shared by bookings, invoices, sales tables */
  /* Branch pills in hero meta row — teal/sky to signal identity-level grouping */
  /* Layout for multi-branch pill list in meta row */
  /* ==========================================================================
     Lead Timeline
     ========================================================================== */
  /* ==========================================================================
     Wallet Transactions Table
     ========================================================================== */
  /* Transaction type colors */
  /* ==========================================================================
     Premium Transactions Table (Party Statement)
     ========================================================================== */
  /* Date Cell */
  /* Details Cell */
  /* Transaction Badge */
  /* Amount Values */
  /* Balance Chip */
  /* Empty table state */
  /* ==========================================================================
     Empty States
     ========================================================================== */
  /* ==========================================================================
     Skeleton Loading States - Enhanced Independent Loaders
     ========================================================================== */
  /* Base shimmer animation - Fast for immediate feedback */
  /* Core skeleton elements with class-based shimmer */
  /* === Independent Tab Skeleton Grids === */
  /* Cars Tab Skeleton */
  /* Bookings Tab Skeleton */
  /* Leads Tab Skeleton */
  /* === Hero Skeleton === */
  /* Add shimmer animation to media */
  /* === Load More Container === */
  /* === Responsive Skeleton Adjustments === */
  /* ==========================================================================
     Responsive Adjustments
     ========================================================================== */
  /* ==========================================================================
     Glass Date Panel (Dropdown)
     ========================================================================== */
  /* ==========================================================================
     Transactions Tab (Party Statement) - Premium Design
     ========================================================================== */
  /* Gradient Backgrounds */
  /* Info Cards Grid */
  /* Metrics Row */
  /* Statement Actions */
  /* Statement Skeleton Loading */
  /* ==========================================================================
     Statement Summary Card - Horizontal Layout
     ========================================================================== */
  /* Stats Row - Left side */
  /* Transaction Stat Icons */
  /* Color-coded values */
  /* Dividers */
  /* Balance Section - Right side with highlight */
  /* Payable state */
  /* View Ledger Button */
  /* Stats Row Spacer and Button */
  /* Responsive */
  /* ==========================================================================
     Statement Transaction Table
     ========================================================================== */
  /* Simple wrapper for horizontal scroll */
  /* Transaction Type Badges */
  /* Balance Value */
  /* Wallet Transactions - Transaction Details Badge */
  /* CC Transaction Value */
  /* Empty Table State */
  /* Load More Button */
  /* ==========================================================================
     Statement Skeleton Loading - Updated
     ========================================================================== */
  /* ==========================================================================
     Responsive Adjustments for Statement Tab
     ========================================================================== */
  /* ==========================================================================
     Premium Package Cards - Modern Design
     ========================================================================== */
  /* Package Header */
  /* Services Usage Grid */
  /* Package Summary (compact) */
  /* Phase 3: Overall Usage Progress */
  /* Phase 3: Expiry Urgency */
  /* Responsive Adjustments */
  /* ==========================================================================
     CRM Activity Timeline (Stage 10)
     ========================================================================== */
  /* Vertical timeline line */
  /* Event type color accents on icon */
  /* ── New event type accents (Stage 11) ───────────────────────────── */
  /* ── Day-group headers ───────────────────────────────────────────── */
  /* Refund/cancelled amounts — show as red */
  /* Timeline skeleton loading */
  /* Responsive timeline */
  /* ==========================================================================
     Employee Financial Console — Payroll & Ledger Styles
     ========================================================================== */
  /* Profile Type Badge */
  /* Payroll History Timeline */
  /* Status Pills */
  /* Accounting Status Pills */
  /* Deductions Breakdown */
  /* Ledger Filter Tabs */
  /* Outstanding balance meta-item — clickable, coloured value, subtle hover */
  position: relative;
  width: 100%;
  max-width: 100%;
  padding: 24px; /* Added padding for general view */
  overflow: hidden;
  box-sizing: border-box /* Ensure padding doesn't overflow width */
}
.user-profile-shell.modal-mode {
  padding: 32px; /* Increased padding for modal */
  max-height: 85vh;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: rgba(225, 90, 45, 0.4) transparent;
}
.user-profile-shell.modal-mode::-webkit-scrollbar {
  width: 6px;
}
.user-profile-shell.modal-mode::-webkit-scrollbar-track {
  background: transparent;
}
.user-profile-shell.modal-mode::-webkit-scrollbar-thumb {
  background: rgba(225, 90, 45, 0.4);
  border-radius: 10px;
}
.user-profile-shell.modal-mode::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 122, 61, 0.7);
}
.user-profile-shell .glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(100px);
  opacity: 0.35;
  pointer-events: none;
  z-index: 0;
}
.user-profile-shell .glow-1 {
  width: 280px;
  height: 280px;
  top: -80px;
  left: -80px;
  background: var(--glass-primary, #FF5722);
}
.user-profile-shell .glow-2 {
  width: 240px;
  height: 240px;
  top: 50%;
  right: -60px;
  background: #6c5bff;
}
.user-profile-shell .glow-3 {
  width: 200px;
  height: 200px;
  bottom: -40px;
  left: 40%;
  background: #19d2c4;
}
.user-profile-shell .glass {
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-radius: 24px;
}
.user-profile-shell .modal-close-btn {
  position: absolute;
  top: 56px;
  right: 32px;
  z-index: 100;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(0, 0, 0, 0.3);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: rgba(255, 255, 255, 0.8);
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: all 0.2s ease;
}
.user-profile-shell .modal-close-btn:hover {
  background: rgba(255, 59, 48, 0.25);
  border-color: rgba(255, 59, 48, 0.5);
  color: #fff;
}
.user-profile-shell .modal-close-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}
.user-profile-shell .profile-hero {
  position: relative;
  z-index: 1;
  padding: 28px 32px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.user-profile-shell .hero-actions {
  position: absolute;
  top: 24px;
  right: 32px;
  display: flex;
  align-items: center;
  gap: 8px;
  z-index: 2;
}
.user-profile-shell.modal-mode .hero-actions {
  right: 68px;
}
.user-profile-shell .hero-edit {
  width: 36px;
  height: 36px;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.8);
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: all 0.2s ease;
}
.user-profile-shell .hero-edit:hover {
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
}
.user-profile-shell .hero-edit mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}
.user-profile-shell .hero-content-row {
  display: flex;
  align-items: flex-start;
  gap: 24px;
}
.user-profile-shell .hero-main {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  flex: 1;
}
.user-profile-shell .hero-avatar {
  flex-shrink: 0;
  width: 72px;
  height: 72px;
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(255, 87, 34, 0.4), rgba(225, 65, 37, 0.25));
  display: grid;
  place-items: center;
  font-size: 28px;
  font-weight: 700;
  color: #fff;
  box-shadow: 0 12px 28px rgba(255, 87, 34, 0.3);
}
.user-profile-shell .eyebrow {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--glass-text-muted, rgba(255, 255, 255, 0.5));
  margin: 0 0 6px;
}
.user-profile-shell .hero-title {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  font-size: 24px;
  font-weight: 700;
  color: var(--glass-text-primary, #f8f8ff);
  letter-spacing: -0.02em;
  line-height: 1.2;
}
.user-profile-shell .hero-sub {
  font-size: 14px;
  color: var(--glass-text-secondary, rgba(255, 255, 255, 0.72));
  margin-bottom: 8px;
}
.user-profile-shell .hero-contact-person {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-bottom: 8px;
  padding: 3px 10px 3px 6px;
  border-radius: 8px;
  background: rgba(139, 92, 246, 0.1);
  border: 1px solid rgba(139, 92, 246, 0.22);
  font-size: 12px;
  font-weight: 500;
  color: #c4b5fd;
  letter-spacing: 0.01em;
}
.user-profile-shell .hero-contact-person mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: rgba(196, 181, 253, 0.7);
}
.user-profile-shell .reward-points-card {
  flex-shrink: 0;
  padding: 14px 20px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  min-width: 280px;
  margin-top: 48px;
}
.user-profile-shell .rp-header {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 12px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
}
.user-profile-shell .rp-header mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}
.user-profile-shell .rp-stats {
  display: flex;
  gap: 24px;
}
.user-profile-shell .rp-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.user-profile-shell .rp-stat__value {
  font-size: 18px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.9);
  letter-spacing: -0.02em;
}
.user-profile-shell .rp-stat__label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.35);
}
.user-profile-shell .rp-stat--balance .rp-stat__value {
  color: rgba(255, 200, 150, 0.95);
}
.user-profile-shell .convert-business-panel {
  position: absolute;
  top: 24px;
  right: 24px;
  width: 280px;
  padding: 16px;
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  z-index: 10;
  animation: convertPanelSlide 0.2s ease-out;
}
@keyframes convertPanelSlide {
  from {
    opacity: 0;
    transform: translateX(12px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.user-profile-shell .convert-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 13px;
  font-weight: 600;
  color: #fbbf24;
  letter-spacing: 0.02em;
}
.user-profile-shell .convert-panel-close {
  width: 24px;
  height: 24px;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.5);
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: all 0.15s ease;
  padding: 0;
}
.user-profile-shell .convert-panel-close mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}
.user-profile-shell .convert-panel-close:hover {
  background: rgba(255, 69, 58, 0.2);
  color: #ff8a82;
}
.user-profile-shell .convert-panel-input {
  width: 100%;
  height: 40px;
  padding: 0 14px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--ui-radius-lg, 12px);
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  font-family: inherit;
  outline: none;
  box-sizing: border-box;
  transition: all 0.2s ease;
}
.user-profile-shell .convert-panel-input::placeholder {
  color: rgba(255, 255, 255, 0.35);
}
.user-profile-shell .convert-panel-input:focus {
  border-color: rgba(255, 122, 61, 0.5);
  background: rgba(255, 255, 255, 0.06);
}
.user-profile-shell .convert-panel-submit {
  width: 100%;
}
.user-profile-shell .status-chip {
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  border: 1px solid rgba(255, 255, 255, 0.15);
  background: rgba(255, 255, 255, 0.06);
}
.user-profile-shell .status-active {
  border-color: rgba(52, 199, 89, 0.5);
  background: rgba(52, 199, 89, 0.12);
  color: #5eff9e;
}
.user-profile-shell .status-inactive {
  border-color: rgba(255, 69, 58, 0.5);
  background: rgba(255, 69, 58, 0.12);
  color: #ff8a82;
}
.user-profile-shell .status-verified {
  border: none;
  background: transparent;
  padding: 0 4px;
  font-size: 14px;
}
.user-profile-shell .hero-title .ui-chip, .user-profile-shell .hero-title .ui-table .risk-badge, .user-profile-shell .hero-title .premium-table .risk-badge, .user-profile-shell .hero-title .glass-table .risk-badge, .ui-table .user-profile-shell .hero-title .risk-badge, .premium-table .user-profile-shell .hero-title .risk-badge, .glass-table .user-profile-shell .hero-title .risk-badge {
  min-height: 24px;
  border-radius: var(--ui-radius-md);
  font-size: 10px;
  font-weight: var(--ui-font-bold);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.user-profile-shell .profile-chip {
  line-height: 1;
}
.user-profile-shell .profile-chip--icon mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}
.user-profile-shell .profile-chip--code {
  font-family: var(--ui-font-mono);
  color: var(--ui-info);
}
.user-profile-shell .meta-item--balance {
  cursor: pointer;
}
.user-profile-shell .meta-item--disabled {
  cursor: default;
}
.user-profile-shell .meta-value--warning {
  color: var(--ui-warning);
}
.user-profile-shell .meta-value--success {
  color: var(--ui-success);
}
.user-profile-shell .meta-value--settled {
  color: var(--ui-text-muted);
}
.user-profile-shell .meta-value--inline {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
}
.user-profile-shell .nps-category {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}
.user-profile-shell .profile-icon--info {
  color: var(--ui-info);
}
.user-profile-shell .profile-icon--accent {
  color: var(--ui-brand-light);
}
.user-profile-shell .profile-icon--warning {
  color: var(--ui-warning);
}
.user-profile-shell .profile-icon--orange {
  color: var(--ui-brand);
}
.user-profile-shell .profile-icon--pink {
  color: #f472b6;
}
.user-profile-shell .profile-icon--success {
  color: var(--ui-success);
}
.user-profile-shell .profile-icon--danger {
  color: var(--ui-danger);
}
.user-profile-shell .finance-rows--divided {
  margin-top: var(--ui-space-3);
  padding-top: var(--ui-space-3);
  border-top: 1px solid var(--ui-border-light);
}
.user-profile-shell .finance-row__value--warning {
  color: var(--ui-warning);
}
.user-profile-shell .finance-row__value--success {
  color: var(--ui-success);
}
.user-profile-shell .finance-row__value--danger {
  color: var(--ui-danger);
}
.user-profile-shell .finance-row__value--strong {
  font-weight: var(--ui-font-bold);
}
.user-profile-shell .finance-row__note {
  margin-left: var(--ui-space-1);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  opacity: 0.7;
}
.user-profile-shell .badge-business {
  border-color: rgba(245, 158, 11, 0.55);
  background: rgba(245, 158, 11, 0.14);
  color: #fbbf24;
}
.user-profile-shell .badge-individual {
  border-color: rgba(139, 92, 246, 0.5);
  background: rgba(139, 92, 246, 0.12);
  color: #c4b5fd;
}
.user-profile-shell .hero-meta {
  margin-top: 16px;
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}
.user-profile-shell .meta-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 100px;
}
.user-profile-shell .meta-item label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--glass-text-muted, rgba(255, 255, 255, 0.5));
}
.user-profile-shell .meta-value {
  font-size: 16px;
  font-weight: 600;
  color: var(--glass-text-primary, #f8f8ff);
}
.user-profile-shell .meta-divider {
  padding-left: 20px;
  border-left: 1px solid rgba(255, 255, 255, 0.1);
}
.user-profile-shell .stat-cards-row--compact {
  margin-top: 16px;
  padding-top: 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.user-profile-shell .hero-category-floating {
  display: flex;
  align-items: center;
}
.user-profile-shell .category-select {
  width: auto;
  min-width: 220px;
}
.user-profile-shell .category-select .mat-mdc-text-field-wrapper {
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  border-radius: 999px !important;
  padding: 6px 16px !important;
  min-height: auto !important;
  height: auto !important;
  transition: all 0.2s ease !important;
}
.user-profile-shell .category-select .mat-mdc-text-field-wrapper:hover {
  background: rgba(255, 255, 255, 0.12) !important;
  border-color: rgba(255, 255, 255, 0.2) !important;
}
.user-profile-shell .category-select .mat-mdc-form-field-flex {
  min-height: auto !important;
  height: auto !important;
  align-items: center !important;
  padding: 0 !important;
}
.user-profile-shell .category-select .mat-mdc-form-field-infix {
  padding: 4px 0 !important;
  min-height: auto !important;
  border-top: 0 !important;
  width: auto !important;
}
.user-profile-shell .category-select .mdc-text-field {
  background: transparent !important;
}
.user-profile-shell .category-select .mdc-notched-outline,
.user-profile-shell .category-select .mdc-line-ripple {
  display: none !important;
}
.user-profile-shell .category-select .mat-mdc-select-value {
  color: #fff;
  font-weight: 600;
  font-size: 13px;
  text-align: center;
}
.user-profile-shell .category-select .mat-mdc-select-arrow {
  color: rgba(255, 255, 255, 0.7);
}
.user-profile-shell .category-select .mat-mdc-form-field-subscript-wrapper {
  display: none !important;
}
.user-profile-shell .overview-grid {
  display: flex;
  flex-direction: column;
  gap: 28px;
  width: 100%;
  min-width: 0;
}
.user-profile-shell .overview-counts {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
.user-profile-shell .overview-section {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.user-profile-shell .overview-section__title {
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--glass-text-muted, rgba(255, 255, 255, 0.5));
  margin: 0;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.user-profile-shell .overview-panels {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 20px;
  width: 100%;
  min-width: 0;
}
@media (max-width: 768px) {
  .user-profile-shell .overview-panels {
    grid-template-columns: 1fr;
  }
}
.user-profile-shell .summary-panel {
  min-width: 0;
  box-sizing: border-box;
  padding: 24px 28px;
  border-radius: var(--ui-radius-xl, 16px);
}
.user-profile-shell .summary-panel--operational {
  display: flex;
  flex-direction: column;
}
.user-profile-shell .summary-panel__title {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--glass-text-muted, rgba(255, 255, 255, 0.5));
  margin: 0;
}
.user-profile-shell .summary-panel__title mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  opacity: 0.6;
}
.user-profile-shell .summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  min-width: 0;
}
.user-profile-shell .summary-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 172px;
  padding: 24px 16px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.04);
  transition: all 0.2s ease;
}
.user-profile-shell .summary-cell:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.08);
}
.user-profile-shell .summary-cell mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
}
.user-profile-shell .summary-cell__label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
}
.user-profile-shell .summary-cell__value {
  font-size: 22px;
  font-weight: 700;
  color: var(--glass-text-primary, #f8f8ff);
  letter-spacing: -0.02em;
}
.user-profile-shell .summary-empty {
  display: flex;
  flex: 1;
  min-height: 220px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 24px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px dashed rgba(255, 255, 255, 0.1);
  text-align: center;
  color: var(--glass-text-muted, rgba(255, 255, 255, 0.5));
}
.user-profile-shell .summary-empty mat-icon {
  flex: 0 0 auto;
  font-size: 24px;
  width: 24px;
  height: 24px;
  color: rgba(255, 255, 255, 0.45);
}
.user-profile-shell .summary-empty p {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  color: inherit;
}
.user-profile-shell .finance-rows {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.user-profile-shell .finance-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-width: 0;
  padding: 12px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}
.user-profile-shell .finance-row:last-child {
  border-bottom: none;
}
.user-profile-shell .finance-row--net {
  margin-top: 4px;
  padding-top: 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: none;
}
.user-profile-shell .finance-row__label {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 8px;
  font-size: 14px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.7);
}
.user-profile-shell .finance-row__label mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}
.user-profile-shell .finance-row__value {
  flex: 0 1 auto;
  min-width: 0;
  overflow-wrap: anywhere;
  text-align: right;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--glass-text-primary, #f8f8ff);
}
.user-profile-shell .finance-row__value.receivable {
  color: #4ade80;
}
.user-profile-shell .finance-row__value.payable {
  color: #f87171;
}
.user-profile-shell .overdue-warning {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  margin-top: 4px;
  border-radius: 12px;
  background: rgba(251, 191, 36, 0.08);
  border: 1px solid rgba(251, 191, 36, 0.2);
  font-size: 12px;
  font-weight: 600;
  color: #fbbf24;
}
.user-profile-shell .overdue-warning mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: #fbbf24;
}
.user-profile-shell .overdue-clear {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  margin-top: 4px;
  border-radius: 12px;
  background: rgba(74, 222, 128, 0.06);
  border: 1px solid rgba(74, 222, 128, 0.15);
  font-size: 12px;
  font-weight: 600;
  color: rgba(74, 222, 128, 0.8);
}
.user-profile-shell .overdue-clear mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: #4ade80;
}
.user-profile-shell .finance-scope-label {
  margin-left: auto;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.3);
  padding: 2px 8px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
}
.user-profile-shell .ltv-scope-badge {
  display: inline-flex;
  align-items: center;
  margin-left: 6px;
  padding: 2px 8px;
  border-radius: 6px;
  background: rgba(139, 92, 246, 0.15);
  border: 1px solid rgba(139, 92, 246, 0.3);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #c4b5fd;
  vertical-align: middle;
}
.user-profile-shell .finance-group-panel {
  margin-top: 16px;
  padding: 14px;
  border-radius: 14px;
  background: rgba(139, 92, 246, 0.05);
  border: 1px solid rgba(139, 92, 246, 0.18);
  animation: fadeInSlide 0.25s ease-out;
}
@keyframes fadeInSlide {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.user-profile-shell .finance-group-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(196, 181, 253, 0.85);
}
.user-profile-shell .finance-group-header mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: #a78bfa;
}
.user-profile-shell .crm-badge {
  margin-left: auto;
  padding: 2px 9px;
  border-radius: 6px;
  background: rgba(139, 92, 246, 0.12);
  border: 1px solid rgba(139, 92, 246, 0.25);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(167, 139, 250, 0.8);
  white-space: nowrap;
}
.user-profile-shell .finance-split-row {
  margin-bottom: 10px;
}
.user-profile-shell .finance-split-row:last-of-type {
  margin-bottom: 0;
}
.user-profile-shell .finance-split-label {
  display: block;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.35);
  margin-bottom: 6px;
}
.user-profile-shell .finance-split-cols {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 6px;
}
.user-profile-shell .finance-split-col {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 8px 10px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.04);
}
.user-profile-shell .finance-split-col .col-title {
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.35);
}
.user-profile-shell .finance-split-col .col-val {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: rgba(255, 255, 255, 0.85);
  /* amber = informational, not yours to collect */
}
.user-profile-shell .finance-split-col .col-val.receivable {
  color: #4ade80;
}
.user-profile-shell .finance-split-col .col-val.col-val--other {
  color: #fbbf24;
}
.user-profile-shell .finance-split-col--total {
  background: rgba(139, 92, 246, 0.06);
  border-color: rgba(139, 92, 246, 0.15);
}
.user-profile-shell .finance-split-col--total .col-val {
  color: #c4b5fd;
}
.user-profile-shell .finance-group-note {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin: 10px 0 0;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.35);
  line-height: 1.5;
}
.user-profile-shell .finance-group-note mat-icon {
  font-size: 13px;
  width: 13px;
  height: 13px;
  flex-shrink: 0;
  margin-top: 1px;
  color: rgba(167, 139, 250, 0.5);
}
.user-profile-shell .profile-tabs {
  margin-top: 24px;
  padding: 24px 28px 32px;
}
.user-profile-shell .card-collection {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 20px;
  padding: 8px 0;
}
.user-profile-shell .collection-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 0;
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
  text-decoration: none;
  color: inherit;
  overflow: hidden;
  transition: all 0.2s ease;
}
.user-profile-shell .collection-card:hover {
  transform: translateY(-4px);
  border-color: rgba(255, 255, 255, 0.15);
  background: rgba(255, 255, 255, 0.06);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.25);
}
.user-profile-shell .vehicle-card .vehicle-media {
  width: 100%;
  height: 110px;
  background: rgba(255, 255, 255, 0.04);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.user-profile-shell .vehicle-card .vehicle-media img {
  max-width: 90%;
  max-height: 85px;
  object-fit: contain;
}
.user-profile-shell .vehicle-card .vehicle-info {
  padding: 14px 16px 18px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.user-profile-shell .collection-card .card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}
.user-profile-shell .collection-card .card-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--glass-text-primary, #f8f8ff);
  margin-bottom: 0;
  line-height: 1.3;
  min-height: 36px;
}
.user-profile-shell .collection-card .card-meta {
  font-size: 12px;
  color: var(--glass-text-muted, rgba(255, 255, 255, 0.5));
  margin-top: auto;
  padding-top: 10px;
  font-family: var(--ui-font-mono);
  letter-spacing: 0.05em;
}
.user-profile-shell .eyebrow.tiny {
  font-size: 9px;
  margin-bottom: 4px;
}
.user-profile-shell .booking-list {
  display: flex;
  flex-direction: column;
  border-radius: var(--ui-radius-lg);
  overflow: hidden;
}
.user-profile-shell .booking-list__header,
.user-profile-shell .booking-list__row {
  display: grid;
  grid-template-columns: 120px 110px 1fr 130px 100px 80px 120px;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
}
.user-profile-shell .booking-list__header {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ui-text-muted);
  border-bottom: 1px solid var(--ui-border-light);
  background: var(--ui-surface-1);
}
.user-profile-shell .booking-list__row {
  width: 100%;
  border: none;
  background: transparent;
  font: inherit;
  color: inherit;
  text-align: left;
  cursor: pointer;
  border-bottom: 1px solid var(--ui-border-light);
  transition: background 0.15s ease;
}
.user-profile-shell .booking-list__row:last-child {
  border-bottom: none;
}
.user-profile-shell .booking-list__row:hover {
  background: var(--ui-surface-hover);
}
.user-profile-shell .booking-list__col {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  min-width: 0;
}
.user-profile-shell .booking-list__col--car {
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
}
.user-profile-shell .booking-list__col--amount {
  gap: var(--ui-space-2);
  justify-content: flex-end;
  text-align: right;
}
.user-profile-shell .booking-list__col--payment {
  justify-content: center;
}
.user-profile-shell .booking-list__col--status {
  justify-content: center;
}
.user-profile-shell .booking-list__id {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-secondary);
  letter-spacing: 0.02em;
}
.user-profile-shell .booking-list__date-icon {
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
  color: var(--ui-brand-light);
}
.user-profile-shell .booking-list__car-name {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
.user-profile-shell .booking-list__car-reg {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  font-family: var(--ui-font-mono);
  letter-spacing: 0.04em;
}
.user-profile-shell .booking-list__amount {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
}
.user-profile-shell .booking-list .status-completed {
  border-color: rgba(52, 199, 89, 0.4);
  background: rgba(52, 199, 89, 0.1);
  color: #5eff9e;
}
.user-profile-shell .booking-list .status-job-open {
  border-color: rgba(100, 149, 237, 0.4);
  background: rgba(100, 149, 237, 0.1);
  color: #a6c8ff;
}
.user-profile-shell .booking-list .status-confirmed {
  border-color: rgba(255, 159, 10, 0.4);
  background: rgba(255, 159, 10, 0.1);
  color: #ffc870;
}
.user-profile-shell .booking-list .status-closed {
  border-color: rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.05);
  color: rgba(255, 255, 255, 0.7);
}
.user-profile-shell .branch-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.75);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 120px;
  letter-spacing: 0.01em;
}
.user-profile-shell .branch-badge--profile {
  background: rgba(56, 189, 248, 0.1);
  border-color: rgba(56, 189, 248, 0.2);
  color: rgba(125, 211, 252, 0.9);
  max-width: none;
  gap: 4px;
}
.user-profile-shell .branch-badge--profile mat-icon, .user-profile-shell .branch-badge--profile .branch-badge-icon {
  font-size: 13px !important;
  width: 13px !important;
  height: 13px !important;
  color: rgba(56, 189, 248, 0.7);
}
.user-profile-shell .meta-item--branches {
  align-items: flex-start;
}
.user-profile-shell .meta-item--branches label {
  margin-top: 3px;
}
.user-profile-shell .meta-value--branches {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  max-width: 340px;
}
.user-profile-shell .lead-timeline {
  padding: 8px 0;
}
.user-profile-shell .timeline-title {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--glass-text-muted, rgba(255, 255, 255, 0.5));
  margin-bottom: 20px;
}
.user-profile-shell .timeline-track {
  position: relative;
  padding-left: 32px;
}
.user-profile-shell .timeline-track::before {
  content: "";
  position: absolute;
  left: 11px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: linear-gradient(180deg, rgba(255, 87, 34, 0.5), rgba(255, 87, 34, 0.1));
}
.user-profile-shell .timeline-entry {
  position: relative;
  margin-bottom: 24px;
  cursor: pointer;
}
.user-profile-shell .timeline-point {
  position: absolute;
  left: -32px;
  top: 4px;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.user-profile-shell .timeline-point span {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--glass-primary, #FF5722);
  box-shadow: 0 0 12px rgba(255, 87, 34, 0.5);
}
.user-profile-shell .timeline-card {
  padding: 16px;
  border-radius: 14px;
}
.user-profile-shell .timeline-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}
.user-profile-shell .timeline-card-header small {
  font-size: 12px;
  color: var(--glass-text-muted, rgba(255, 255, 255, 0.5));
}
.user-profile-shell .timeline-card-body {
  font-size: 14px;
  color: var(--glass-text-secondary, rgba(255, 255, 255, 0.72));
}
.user-profile-shell .timeline-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--glass-text-muted, rgba(255, 255, 255, 0.5));
  margin-bottom: 8px;
}
.user-profile-shell .timeline-meta mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}
.user-profile-shell .timeline-text {
  margin: 0;
  line-height: 1.5;
}
.user-profile-shell .table-wrapper {
  overflow-x: auto;
}
.user-profile-shell .table-grid {
  width: 100%;
  border-collapse: collapse;
}
.user-profile-shell .table-grid thead {
  background: rgba(255, 255, 255, 0.06);
}
.user-profile-shell .table-grid th {
  padding: 14px 16px;
  text-align: left;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--glass-text-secondary, rgba(255, 255, 255, 0.72));
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.user-profile-shell .table-grid td {
  padding: 14px 16px;
  font-size: 14px;
  color: var(--glass-text-secondary, rgba(255, 255, 255, 0.72));
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}
.user-profile-shell .table-grid tbody tr:hover {
  background: rgba(255, 255, 255, 0.03);
}
.user-profile-shell .table-grid tbody tr:last-child td {
  border-bottom: none;
}
.user-profile-shell .job-cl {
  color: #6ea8fe;
}
.user-profile-shell .sale-cl {
  color: #7ee094;
}
.user-profile-shell .cash-cl {
  color: #ffc870;
}
.user-profile-shell .txn-table-wrapper {
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(0, 0, 0, 0.15);
}
.user-profile-shell .txn-table {
  width: 100%;
  border-collapse: collapse;
}
.user-profile-shell .txn-table thead {
  background: rgba(255, 255, 255, 0.04);
}
.user-profile-shell .txn-table th {
  padding: 10px 14px;
  text-align: left;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.4);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.user-profile-shell .txn-table th.text-right {
  text-align: right;
}
.user-profile-shell .txn-table .col-date {
  width: 70px;
}
.user-profile-shell .txn-table .col-details {
  width: auto;
  min-width: 180px;
}
.user-profile-shell .txn-table .col-type {
  width: 130px;
}
.user-profile-shell .txn-table .col-amount {
  width: 120px;
}
.user-profile-shell .txn-table .col-balance {
  width: 120px;
}
.user-profile-shell .txn-row {
  transition: background 0.15s ease;
}
.user-profile-shell .txn-row:hover {
  background: rgba(255, 255, 255, 0.03);
}
.user-profile-shell .txn-table td {
  padding: 10px 14px;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.7);
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  vertical-align: middle;
}
.user-profile-shell .txn-table td.text-right {
  text-align: right;
}
.user-profile-shell .txn-row:last-child td {
  border-bottom: none;
}
.user-profile-shell .date-cell {
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.user-profile-shell .date-day {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}
.user-profile-shell .date-year {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.4);
}
.user-profile-shell .details-cell {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.user-profile-shell .bill-id {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.9);
}
.user-profile-shell .payment-mode {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
}
.user-profile-shell .txn-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  white-space: nowrap;
}
.user-profile-shell .txn-badge.txn-sale {
  background: rgba(52, 199, 89, 0.12);
  color: #4ade80;
}
.user-profile-shell .txn-badge.txn-payment-in {
  background: rgba(52, 199, 89, 0.12);
  color: #4ade80;
}
.user-profile-shell .txn-badge.txn-purchase {
  background: rgba(59, 130, 246, 0.12);
  color: #93c5fd;
}
.user-profile-shell .txn-badge.txn-payment-out {
  background: rgba(251, 146, 60, 0.12);
  color: #fdba74;
}
.user-profile-shell .txn-badge.txn-cancelled {
  background: rgba(239, 68, 68, 0.12);
  color: #fca5a5;
}
.user-profile-shell .amount-value {
  font-size: 12px;
  font-weight: 500;
}
.user-profile-shell .amount-credit {
  color: #4ade80;
}
.user-profile-shell .amount-debit {
  color: #f87171;
}
.user-profile-shell .balance-chip {
  display: inline-block;
  padding: 3px 8px;
  background: rgba(255, 255, 255, 0.04);
  border-radius: 4px;
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.8);
}
.user-profile-shell .empty-table-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 24px;
  text-align: center;
}
.user-profile-shell .empty-table-state mat-icon {
  font-size: 32px;
  width: 32px;
  height: 32px;
  color: rgba(255, 255, 255, 0.15);
  margin-bottom: 10px;
}
.user-profile-shell .empty-table-state p {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.35);
  margin: 0;
}
.user-profile-shell .empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 48px 24px;
  text-align: center;
}
.user-profile-shell .empty-state mat-icon {
  font-size: 48px;
  width: 48px;
  height: 48px;
  color: rgba(255, 255, 255, 0.2);
  margin-bottom: 16px;
}
.user-profile-shell .empty-state p {
  font-size: 14px;
  color: var(--glass-text-muted, rgba(255, 255, 255, 0.5));
  margin: 0;
}
@keyframes shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}
@keyframes pulse {
  0%, 100% {
    opacity: 0.4;
  }
  50% {
    opacity: 0.8;
  }
}
.user-profile-shell .skeleton-line,
.user-profile-shell .skeleton-pill {
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.12) 50%, rgba(255, 255, 255, 0.04) 100%);
  background-size: 200% 100%;
  border-radius: 6px;
  height: 14px;
}
.user-profile-shell .skeleton-line.shimmer,
.user-profile-shell .skeleton-pill.shimmer,
.user-profile-shell .shimmer {
  animation: shimmer 1.2s ease-in-out infinite;
}
.user-profile-shell .skeleton-pill {
  border-radius: 999px;
  height: 28px;
}
.user-profile-shell .skeleton-line.w-small {
  width: 60px;
}
.user-profile-shell .skeleton-line.w-medium {
  width: 120px;
}
.user-profile-shell .skeleton-line.w-large {
  width: 200px;
}
.user-profile-shell .skeleton-pill.w-small {
  width: 80px;
}
.user-profile-shell .skeleton-pill.w-medium {
  width: 120px;
}
.user-profile-shell .skeleton-grid {
  display: grid;
  gap: 20px;
  padding: 8px 0;
}
.user-profile-shell .card-collection.skeleton-grid {
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}
.user-profile-shell .collection-card.skeleton-card {
  min-height: 170px;
  cursor: default;
}
.user-profile-shell .collection-card.skeleton-card:hover {
  transform: none;
  box-shadow: none;
}
.user-profile-shell .skeleton-card .skeleton-media {
  height: 110px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.04) 100%);
  background-size: 200% 100%;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.user-profile-shell .skeleton-card .skeleton-info {
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.user-profile-shell .booking-grid.skeleton-grid {
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}
.user-profile-shell .booking-card.skeleton-card {
  min-height: 140px;
  gap: 16px;
  cursor: default;
}
.user-profile-shell .booking-card.skeleton-card:hover {
  transform: none;
  background: rgba(255, 255, 255, 0.03);
}
.user-profile-shell .skeleton-timeline {
  padding: 8px 0;
  padding-left: 32px;
}
.user-profile-shell .skeleton-timeline .skeleton-entry {
  margin-bottom: 24px;
  padding: 16px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 14px;
}
.user-profile-shell .skeleton-avatar {
  width: 72px;
  height: 72px;
  border-radius: 20px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.04) 100%);
  background-size: 200% 100%;
  animation: shimmer 1.2s ease-in-out infinite;
}
.user-profile-shell .skeleton-edit {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.04) 100%);
  background-size: 200% 100%;
  animation: shimmer 1.2s ease-in-out infinite;
}
.user-profile-shell .skeleton-hero-actions {
  display: flex;
  gap: 12px;
}
.user-profile-shell .skeleton-hero-copy {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.user-profile-shell .skeleton-meta-row {
  display: flex;
  gap: 16px;
  margin-top: 12px;
}
.user-profile-shell .skeleton-meta-grid {
  display: flex;
  gap: 24px;
  margin-top: 16px;
}
.user-profile-shell .skeleton-meta-card {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.user-profile-shell .skeleton-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.user-profile-shell .skeleton-card {
  padding: 16px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.user-profile-shell .skeleton-tabs-shell {
  margin-top: 24px;
  padding: 24px 28px;
}
.user-profile-shell .skeleton-tab-row {
  display: flex;
  gap: 8px;
  margin-bottom: 24px;
}
.user-profile-shell .skeleton-panel {
  padding: 16px 0;
}
.user-profile-shell .skeleton-panel-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.user-profile-shell .skeleton-panel-card {
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.03);
  overflow: hidden;
}
.user-profile-shell .skeleton-media {
  height: 100px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.04) 100%);
  background-size: 200% 100%;
}
.user-profile-shell .skeleton-media.shimmer {
  animation: shimmer 1.2s ease-in-out infinite;
}
.user-profile-shell .skeleton-info {
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.user-profile-shell .skeleton-table td {
  padding: 16px;
}
.user-profile-shell .load-more-container {
  display: flex;
  justify-content: center;
  padding: 24px 0;
}
.user-profile-shell .loading-more {
  display: flex;
  justify-content: center;
  padding: 20px 0;
}
.user-profile-shell .loading-more .skeleton-line {
  animation: shimmer 1s ease-in-out infinite;
}
@media (max-width: 768px) {
  .user-profile-shell .skeleton-stat-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .user-profile-shell .skeleton-panel-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .user-profile-shell .profile-hero {
    padding: 20px;
  }
  .user-profile-shell .hero-main {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .user-profile-shell .hero-meta {
    justify-content: center;
  }
  .user-profile-shell .hero-stats {
    grid-template-columns: repeat(2, 1fr);
  }
  .user-profile-shell .hero-actions {
    position: static;
    justify-content: center;
    margin-bottom: 16px;
  }
  .user-profile-shell.modal-mode .hero-actions {
    right: auto;
  }
  .user-profile-shell .card-collection,
  .user-profile-shell .booking-grid {
    grid-template-columns: 1fr;
  }
  .user-profile-shell .skeleton-stat-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .user-profile-shell .skeleton-panel-grid {
    grid-template-columns: 1fr;
  }
}
.user-profile-shell .glass-date-panel.mat-mdc-select-panel {
  background: linear-gradient(145deg, rgba(40, 30, 35, 0.95), rgba(30, 22, 28, 0.98)) !important;
  backdrop-filter: blur(24px) saturate(140%) !important;
  -webkit-backdrop-filter: blur(24px) saturate(140%) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.4) !important;
  border-radius: 20px !important;
  padding: 10px !important;
}
.user-profile-shell .glass-date-panel .mat-mdc-option {
  background: transparent !important;
  color: rgba(255, 255, 255, 0.8) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  padding: 10px 16px !important;
  border-radius: 999px !important;
  margin-bottom: 4px !important;
  min-height: 40px !important;
  transition: all 0.15s ease !important;
}
.user-profile-shell .glass-date-panel .mat-mdc-option:hover {
  background: rgba(255, 255, 255, 0.08) !important;
  color: #fff !important;
}
.user-profile-shell .glass-date-panel .mat-mdc-option.mdc-list-item--selected {
  background: rgba(255, 87, 34, 0.2) !important;
  color: #fff !important;
  font-weight: 600 !important;
}
.user-profile-shell .glass-date-panel .mat-pseudo-checkbox {
  display: none !important;
}
.user-profile-shell .statement-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 16px;
  margin-bottom: 24px;
}
.user-profile-shell .summary-card {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px;
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
  position: relative;
  overflow: hidden;
  transition: all 0.3s ease;
}
.user-profile-shell .summary-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  opacity: 0.12;
  z-index: 0;
  transition: opacity 0.3s ease;
}
.user-profile-shell .summary-card:hover {
  transform: translateY(-2px);
  border-color: rgba(255, 255, 255, 0.15);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.25);
}
.user-profile-shell .summary-card:hover::before {
  opacity: 0.2;
}
.user-profile-shell .gradient-green::before {
  background: linear-gradient(135deg, #34c759, #30d158);
}
.user-profile-shell .gradient-blue::before {
  background: linear-gradient(135deg, #007aff, #5ac8fa);
}
.user-profile-shell .gradient-orange::before {
  background: linear-gradient(135deg, #ff9500, #ff6b00);
}
.user-profile-shell .gradient-purple::before {
  background: linear-gradient(135deg, #af52de, #bf5af2);
}
.user-profile-shell .summary-icon {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
  flex-shrink: 0;
}
.user-profile-shell .gradient-green .summary-icon {
  background: linear-gradient(135deg, rgba(52, 199, 89, 0.25), rgba(48, 209, 88, 0.15));
  border: 1px solid rgba(52, 199, 89, 0.35);
}
.user-profile-shell .gradient-green .summary-icon mat-icon {
  color: #5eff9e;
}
.user-profile-shell .gradient-blue .summary-icon {
  background: linear-gradient(135deg, rgba(0, 122, 255, 0.25), rgba(90, 200, 250, 0.15));
  border: 1px solid rgba(0, 122, 255, 0.35);
}
.user-profile-shell .gradient-blue .summary-icon mat-icon {
  color: #6eb5ff;
}
.user-profile-shell .gradient-orange .summary-icon {
  background: linear-gradient(135deg, rgba(255, 149, 0, 0.25), rgba(255, 107, 0, 0.15));
  border: 1px solid rgba(255, 149, 0, 0.35);
}
.user-profile-shell .gradient-orange .summary-icon mat-icon {
  color: #ffc870;
}
.user-profile-shell .gradient-purple .summary-icon {
  background: linear-gradient(135deg, rgba(175, 82, 222, 0.25), rgba(191, 90, 242, 0.15));
  border: 1px solid rgba(175, 82, 222, 0.35);
}
.user-profile-shell .gradient-purple .summary-icon mat-icon {
  color: #d8a6ff;
}
.user-profile-shell .summary-icon mat-icon {
  font-size: 24px;
  width: 24px;
  height: 24px;
}
.user-profile-shell .summary-content {
  display: flex;
  flex-direction: column;
  gap: 4px;
  z-index: 1;
}
.user-profile-shell .summary-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--glass-text-muted, rgba(255, 255, 255, 0.5));
}
.user-profile-shell .summary-value {
  font-size: 22px;
  font-weight: 700;
  color: var(--glass-text-primary, #f8f8ff);
  letter-spacing: -0.02em;
}
.user-profile-shell .balance-highlight {
  background: linear-gradient(135deg, #ff9966, #ff6b8a);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.user-profile-shell .statement-info-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
  margin-bottom: 24px;
}
.user-profile-shell .info-card {
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
  overflow: hidden;
  transition: all 0.2s ease;
}
.user-profile-shell .info-card:hover {
  border-color: rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.05);
}
.user-profile-shell .info-card-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px 20px;
  background: rgba(255, 255, 255, 0.04);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.user-profile-shell .info-card-header mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: #ff9966;
}
.user-profile-shell .info-card-header span {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--glass-text-secondary, rgba(255, 255, 255, 0.72));
}
.user-profile-shell .info-card-body {
  padding: 16px 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.user-profile-shell .info-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
}
.user-profile-shell .info-label {
  font-size: 12px;
  font-weight: 500;
  color: var(--glass-text-muted, rgba(255, 255, 255, 0.5));
  flex-shrink: 0;
}
.user-profile-shell .info-value {
  font-size: 13px;
  font-weight: 500;
  color: var(--glass-text-primary, #f8f8ff);
  text-align: right;
  word-break: break-word;
}
.user-profile-shell .info-value.mono {
  font-family: var(--ui-font-mono);
  font-size: 12px;
  letter-spacing: 0.03em;
  color: #a8d8ea;
}
.user-profile-shell .metrics-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 24px;
}
.user-profile-shell .metric-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.04);
  font-size: 13px;
  font-weight: 500;
  color: var(--glass-text-secondary, rgba(255, 255, 255, 0.72));
  transition: all 0.2s ease;
}
.user-profile-shell .metric-chip:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.15);
}
.user-profile-shell .metric-chip mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: rgba(255, 255, 255, 0.5);
}
.user-profile-shell .statement-actions {
  display: flex;
  gap: 12px;
  padding-top: 8px;
}
.user-profile-shell .action-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.06);
  color: var(--glass-text-primary, #f8f8ff);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.2s ease;
}
.user-profile-shell .action-btn:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.2);
  transform: translateY(-1px);
}
.user-profile-shell .action-btn.primary {
  background: linear-gradient(135deg, rgba(255, 87, 34, 0.2), rgba(255, 120, 70, 0.12));
  border-color: rgba(255, 87, 34, 0.4);
}
.user-profile-shell .action-btn.primary:hover {
  background: linear-gradient(135deg, rgba(255, 87, 34, 0.3), rgba(255, 120, 70, 0.2));
  border-color: rgba(255, 87, 34, 0.6);
  box-shadow: 0 8px 24px rgba(255, 87, 34, 0.2);
}
.user-profile-shell .action-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}
.user-profile-shell .statement-skeleton {
  padding: 8px 0;
}
.user-profile-shell .summary-cards-skeleton {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 16px;
  margin-bottom: 24px;
}
.user-profile-shell .skeleton-summary-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 24px;
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.03);
}
.user-profile-shell .skeleton-divider {
  height: 1px;
  background: rgba(255, 255, 255, 0.06);
  margin: 16px 0;
}
.user-profile-shell .info-skeleton {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 16px;
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.03);
}
.user-profile-shell .statement-summary-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 20px 24px;
  margin-bottom: 16px;
  border-radius: 12px !important;
  box-shadow: none !important;
}
.user-profile-shell .stats-row {
  display: flex;
  align-items: center;
  gap: 0;
  flex: 1;
}
.user-profile-shell .inline-stat {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: 0 20px;
}
.user-profile-shell .inline-stat .stat-icon-label {
  display: flex;
  align-items: center;
  gap: 6px;
}
.user-profile-shell .inline-stat:first-child {
  padding-left: 0;
}
.user-profile-shell .inline-stat:last-child {
  padding-right: 0;
}
.user-profile-shell .txn-stat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  opacity: 0.9;
}
.user-profile-shell .txn-stat-icon.sale {
  color: #4ade80;
}
.user-profile-shell .txn-stat-icon.purchase {
  color: #f87171;
}
.user-profile-shell .txn-stat-icon.payment-in {
  color: #60a5fa;
}
.user-profile-shell .txn-stat-icon.payment-out {
  color: #fb923c;
}
.user-profile-shell .inline-stat-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
}
.user-profile-shell .inline-stat-value {
  font-size: 15px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.user-profile-shell .inline-stat-value.sale {
  color: #4ade80;
}
.user-profile-shell .inline-stat-value.purchase {
  color: #f87171;
}
.user-profile-shell .inline-stat-value.payment-in {
  color: #60a5fa;
}
.user-profile-shell .inline-stat-value.payment-out {
  color: #fb923c;
}
.user-profile-shell .stat-divider {
  width: 1px;
  height: 24px;
  background: rgba(255, 255, 255, 0.1);
}
.user-profile-shell .balance-section {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  padding: 16px 24px;
  margin-left: 20px;
  flex-shrink: 0;
  background: linear-gradient(135deg, rgba(74, 222, 128, 0.08) 0%, rgba(74, 222, 128, 0.02) 100%);
  border-left: 2px solid rgba(74, 222, 128, 0.3);
  border-radius: 0 8px 8px 0;
}
.user-profile-shell .balance-section.payable {
  background: linear-gradient(135deg, rgba(248, 113, 113, 0.08) 0%, rgba(248, 113, 113, 0.02) 100%);
  border-left-color: rgba(248, 113, 113, 0.3);
}
.user-profile-shell .balance-label-row {
  display: flex;
  align-items: center;
  gap: 6px;
}
.user-profile-shell .balance-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: rgba(74, 222, 128, 0.9);
}
.user-profile-shell .balance-section.payable .balance-icon {
  color: rgba(248, 113, 113, 0.9);
}
.user-profile-shell .balance-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(74, 222, 128, 0.9);
}
.user-profile-shell .balance-amount {
  font-size: 26px;
  font-weight: 800;
  color: #4ade80;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.user-profile-shell .balance-section.payable .balance-label {
  color: rgba(248, 113, 113, 0.8);
}
.user-profile-shell .balance-section.payable .balance-amount {
  color: #f87171;
}
.user-profile-shell .view-ledger-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  padding: 6px 14px;
  border: 1px solid rgba(74, 222, 128, 0.3);
  border-radius: 20px;
  background: rgba(74, 222, 128, 0.1);
  color: #4ade80;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}
.user-profile-shell .view-ledger-btn mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}
.user-profile-shell .view-ledger-btn:hover {
  background: rgba(74, 222, 128, 0.2);
  border-color: rgba(74, 222, 128, 0.5);
  transform: translateY(-1px);
}
.user-profile-shell .balance-section.payable .view-ledger-btn {
  border-color: rgba(248, 113, 113, 0.3);
  background: rgba(248, 113, 113, 0.1);
  color: #f87171;
}
.user-profile-shell .balance-section.payable .view-ledger-btn:hover {
  background: rgba(248, 113, 113, 0.2);
  border-color: rgba(248, 113, 113, 0.5);
}
.user-profile-shell .stats-row-spacer {
  flex: 1;
}
.user-profile-shell .view-ledger-btn.stats-row-btn {
  margin-left: auto;
  border-color: rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.8);
}
.user-profile-shell .view-ledger-btn.stats-row-btn:hover {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.3);
  color: #fff;
}
@media (max-width: 900px) {
  .user-profile-shell .statement-summary-card {
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
  }
  .user-profile-shell .stats-row {
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
  }
  .user-profile-shell .stat-divider {
    display: none;
  }
  .user-profile-shell .inline-stat {
    padding: 8px 12px;
  }
  .user-profile-shell .balance-section {
    padding-left: 0;
    padding-top: 16px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    align-items: center;
  }
}
@media (max-width: 480px) {
  .user-profile-shell .statement-summary-card {
    padding: 16px;
  }
  .user-profile-shell .balance-amount {
    font-size: 24px;
  }
  .user-profile-shell .inline-stat-value {
    font-size: 14px;
  }
}
.user-profile-shell .table-wrapper {
  overflow-x: auto;
  margin-bottom: 16px;
}
.user-profile-shell .txn-type-badge {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  white-space: nowrap;
}
.user-profile-shell .txn-sale {
  color: #4ade80;
  background: rgba(74, 222, 128, 0.12);
}
.user-profile-shell .txn-payment-in {
  color: #22d3ee;
  background: rgba(34, 211, 238, 0.12);
}
.user-profile-shell .txn-cancelled {
  color: #f87171;
  background: rgba(248, 113, 113, 0.12);
}
.user-profile-shell .txn-purchase {
  color: #facc15;
  background: rgba(250, 204, 21, 0.12);
}
.user-profile-shell .txn-payment-out {
  color: #fb923c;
  background: rgba(251, 146, 60, 0.12);
}
.user-profile-shell .balance-value {
  font-weight: 600;
  color: var(--glass-text-primary, #f8f8ff);
}
.user-profile-shell .txn-details-badge {
  font-weight: 500;
}
.user-profile-shell .cc-txn-value {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.user-profile-shell .cc-txn-value.credit {
  color: #60a5fa;
}
.user-profile-shell .cc-txn-value.debit {
  color: rgba(255, 255, 255, 0.9);
}
.user-profile-shell .empty-row td {
  padding: 48px 24px;
}
.user-profile-shell .empty-table-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  color: var(--glass-text-muted, rgba(255, 255, 255, 0.4));
}
.user-profile-shell .empty-table-state mat-icon {
  font-size: 40px;
  width: 40px;
  height: 40px;
  opacity: 0.5;
}
.user-profile-shell .empty-table-state p {
  margin: 0;
  font-size: 14px;
}
.user-profile-shell .load-more-container {
  display: flex;
  justify-content: center;
  padding: 20px 32px 24px;
}
.user-profile-shell .loading-more {
  display: flex;
  justify-content: center;
  padding: 16px;
}
.user-profile-shell .statement-header-skeleton {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 32px;
  padding: 24px 28px;
  margin-bottom: 20px;
  border-radius: 24px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
}
.user-profile-shell .skeleton-party-name {
  width: 200px;
  height: 32px;
  border-radius: 8px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.06));
  background-size: 200% 100%;
  animation: shimmer 1.5s ease-in-out infinite;
}
.user-profile-shell .skeleton-stats-grid {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.user-profile-shell .skeleton-balance {
  width: 180px;
  height: 48px;
  border-radius: 8px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.06));
  background-size: 200% 100%;
  animation: shimmer 1.5s ease-in-out infinite;
}
.user-profile-shell .skeleton-table-header {
  height: 48px;
  border-radius: 8px 8px 0 0;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.04));
  background-size: 200% 100%;
  animation: shimmer 1.5s ease-in-out infinite;
  margin-bottom: 2px;
}
.user-profile-shell .skeleton-table-rows {
  border-radius: 0 0 16px 16px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(0, 0, 0, 0.15);
}
.user-profile-shell .skeleton-table-row {
  display: grid;
  grid-template-columns: 60px 140px 120px 100px 130px 110px 100px 100px 120px;
  gap: 12px;
  padding: 14px 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}
.user-profile-shell .skeleton-table-row:last-child {
  border-bottom: none;
}
@media (max-width: 1024px) {
  .user-profile-shell .statement-header {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .user-profile-shell .statement-header-right {
    border-left: none;
    padding-left: 0;
    padding-top: 16px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    align-items: flex-start;
  }
  .user-profile-shell .statement-table-wrapper {
    margin: 0 -16px;
    border-radius: 0;
    border-left: none;
    border-right: none;
  }
}
@media (max-width: 768px) {
  .user-profile-shell .statement-header {
    padding: 20px;
  }
  .user-profile-shell .party-name {
    font-size: 1.4rem;
  }
  .user-profile-shell .receivable-value {
    font-size: 1.6rem;
  }
  .user-profile-shell .statement-table {
    font-size: 12px;
  }
  .user-profile-shell .statement-table th,
  .user-profile-shell .statement-table td {
    padding: 10px 8px;
  }
  .user-profile-shell .col-mode,
  .user-profile-shell .col-txn {
    display: none;
  }
  .user-profile-shell .skeleton-table-row {
    grid-template-columns: 40px 100px 80px 80px 80px 80px;
  }
}
@media (max-width: 480px) {
  .user-profile-shell .statement-header-center {
    gap: 4px;
  }
  .user-profile-shell .stat-row {
    flex-direction: column;
    gap: 2px;
  }
  .user-profile-shell .stat-label {
    min-width: auto;
    font-size: 11px;
  }
}
.user-profile-shell .package-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 20px;
  padding: 8px 0;
}
.user-profile-shell .package-card {
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 18px;
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  color: inherit;
  text-align: left;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  overflow: hidden;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.user-profile-shell .package-card:hover {
  transform: translateY(-4px);
  border-color: rgba(255, 255, 255, 0.2);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.25);
  background: rgba(255, 255, 255, 0.1);
}
.user-profile-shell .pkg-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
}
.user-profile-shell .pkg-title-group {
  flex: 1;
  min-width: 0;
}
.user-profile-shell .pkg-name {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  color: var(--glass-text-primary, #f8f8ff);
  line-height: 1.3;
}
.user-profile-shell .pkg-short-id {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 7px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.06em;
  border-radius: 5px;
  vertical-align: middle;
  color: #ffab70;
  background: rgba(255, 152, 0, 0.12);
  border: 1px solid rgba(255, 152, 0, 0.25);
}
.user-profile-shell .pkg-vehicle {
  margin: 6px 0 0;
  font-size: 14px;
  color: var(--glass-text-secondary, rgba(255, 255, 255, 0.72));
}
.user-profile-shell .pkg-vehicle span {
  color: var(--glass-text-muted, rgba(255, 255, 255, 0.5));
}
.user-profile-shell .pkg-amount-badge {
  font-size: 16px;
  font-weight: 700;
  color: var(--glass-text-primary, #f8f8ff);
  flex-shrink: 0;
}
.user-profile-shell .pkg-status-badge {
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
  flex-shrink: 0;
  border: 1px solid rgba(255, 255, 255, 0.15);
  background: rgba(255, 255, 255, 0.06);
}
.user-profile-shell .pkg-status-badge.small {
  padding: 3px 10px;
  font-size: 9px;
}
.user-profile-shell .pkg-status-badge.status-active {
  border-color: rgba(52, 199, 89, 0.5);
  background: rgba(52, 199, 89, 0.12);
  color: #5eff9e;
}
.user-profile-shell .pkg-status-badge.status-expired {
  border-color: rgba(255, 69, 58, 0.5);
  background: rgba(255, 69, 58, 0.12);
  color: #ff8a82;
}
.user-profile-shell .pkg-services-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.user-profile-shell .pkg-service-item {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.user-profile-shell .service-header {
  display: flex;
  align-items: center;
  gap: 8px;
}
.user-profile-shell .service-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: #ff5722;
}
.user-profile-shell .service-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--glass-text-primary, #f8f8ff);
}
.user-profile-shell .service-usage {
  font-size: 12px;
  color: var(--glass-text-secondary, rgba(255, 255, 255, 0.72));
}
.user-profile-shell .service-progress {
  height: 4px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 2px;
  overflow: hidden;
}
.user-profile-shell .service-progress .progress-bar {
  height: 100%;
  background: linear-gradient(90deg, #ff5722, #ff7a3d);
  border-radius: 2px;
  transition: width 0.5s ease;
}
.user-profile-shell .pkg-summary {
  padding: 12px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
}
.user-profile-shell .pkg-amount {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.user-profile-shell .amount-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--glass-text-muted, rgba(255, 255, 255, 0.5));
}
.user-profile-shell .amount-value {
  font-size: 18px;
  font-weight: 700;
  color: var(--glass-text-primary, #f8f8ff);
}
.user-profile-shell .pkg-footer {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.user-profile-shell .validity-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.user-profile-shell .validity-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--glass-text-muted, rgba(255, 255, 255, 0.5));
}
.user-profile-shell .validity-date {
  font-size: 14px;
  font-weight: 600;
  color: var(--glass-text-primary, #f8f8ff);
}
.user-profile-shell .days-left {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.6);
}
.user-profile-shell .days-left mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}
.user-profile-shell .days-left.urgent {
  color: #ffd639;
}
.user-profile-shell .pkg-overall-progress {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 2px;
}
.user-profile-shell .overall-bar {
  flex: 1;
  height: 4px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 2px;
  overflow: hidden;
}
.user-profile-shell .overall-fill {
  height: 100%;
  background: linear-gradient(90deg, #4ade80, #22c55e);
  border-radius: 2px;
  transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}
.user-profile-shell .overall-label {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
  white-space: nowrap;
  font-weight: 500;
}
.user-profile-shell .validity-label.expiry-urgent {
  color: #f87171 !important;
  font-weight: 700;
  animation: expiryPulse 2s ease-in-out infinite;
}
@keyframes expiryPulse {
  0%, 100% {
    opacity: 0.8;
  }
  50% {
    opacity: 1;
  }
}
@media (max-width: 768px) {
  .user-profile-shell .package-grid {
    grid-template-columns: 1fr;
  }
  .user-profile-shell .pkg-services-grid {
    grid-template-columns: 1fr;
  }
  .user-profile-shell .package-card {
    padding: 20px;
  }
}
.user-profile-shell .crm-timeline {
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
  padding: 8px 0;
}
.user-profile-shell .crm-timeline::before {
  content: "";
  position: absolute;
  left: 22px;
  top: 32px;
  bottom: 32px;
  width: 2px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.04));
  border-radius: 1px;
}
.user-profile-shell .timeline-event {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 12px 8px;
  border-radius: 12px;
  transition: background 0.2s ease;
  position: relative;
}
.user-profile-shell .timeline-event:hover {
  background: rgba(255, 255, 255, 0.04);
}
.user-profile-shell .timeline-event__icon {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  z-index: 1;
  position: relative;
}
.user-profile-shell .event-emoji {
  font-size: 17px;
  line-height: 1;
}
.user-profile-shell .timeline-event__body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-top: 2px;
}
.user-profile-shell .timeline-event__header {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.user-profile-shell .timeline-event__title {
  font-size: 14px;
  font-weight: 600;
  color: var(--glass-text-primary, #f8f8ff);
  line-height: 1.3;
}
.user-profile-shell .timeline-event__desc {
  margin: 0;
  font-size: 13px;
  color: var(--glass-text-secondary, rgba(255, 255, 255, 0.65));
  line-height: 1.4;
}
.user-profile-shell .timeline-event__footer {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 2px;
}
.user-profile-shell .timeline-event__amount {
  font-size: 14px;
  font-weight: 700;
  color: #4ade80;
  font-variant-numeric: tabular-nums;
}
.user-profile-shell .timeline-event__date {
  font-size: 12px;
  color: var(--glass-text-muted, rgba(255, 255, 255, 0.4));
}
.user-profile-shell .event-booking .timeline-event__icon {
  border-color: rgba(96, 165, 250, 0.35);
  background: rgba(96, 165, 250, 0.1);
}
.user-profile-shell .event-success .timeline-event__icon {
  border-color: rgba(74, 222, 128, 0.35);
  background: rgba(74, 222, 128, 0.1);
}
.user-profile-shell .event-invoice .timeline-event__icon {
  border-color: rgba(251, 146, 60, 0.35);
  background: rgba(251, 146, 60, 0.1);
}
.user-profile-shell .event-danger .timeline-event__icon {
  border-color: rgba(248, 113, 113, 0.35);
  background: rgba(248, 113, 113, 0.1);
}
.user-profile-shell .event-payment .timeline-event__icon {
  border-color: rgba(52, 211, 153, 0.35);
  background: rgba(52, 211, 153, 0.1);
}
.user-profile-shell .event-payment .timeline-event__amount {
  color: #34d399;
}
.user-profile-shell .event-lead .timeline-event__icon {
  border-color: rgba(167, 139, 250, 0.35);
  background: rgba(167, 139, 250, 0.1);
}
.user-profile-shell .event-vehicle .timeline-event__icon {
  border-color: rgba(96, 165, 250, 0.35);
  background: rgba(96, 165, 250, 0.1);
}
.user-profile-shell .event-nps .timeline-event__icon {
  border-color: rgba(250, 204, 21, 0.4);
  background: rgba(250, 204, 21, 0.1);
}
.user-profile-shell .event-sale .timeline-event__icon {
  border-color: rgba(74, 222, 128, 0.3);
  background: rgba(74, 222, 128, 0.08);
}
.user-profile-shell .event-estimate .timeline-event__icon {
  border-color: rgba(34, 211, 238, 0.3);
  background: rgba(34, 211, 238, 0.08);
}
.user-profile-shell .event-package .timeline-event__icon {
  border-color: rgba(167, 139, 250, 0.35);
  background: rgba(167, 139, 250, 0.1);
}
.user-profile-shell .event-claim .timeline-event__icon {
  border-color: rgba(251, 191, 36, 0.35);
  background: rgba(251, 191, 36, 0.08);
}
.user-profile-shell .event-reward .timeline-event__icon {
  border-color: rgba(250, 204, 21, 0.3);
  background: rgba(250, 204, 21, 0.08);
}
.user-profile-shell .event-purchase .timeline-event__icon {
  border-color: rgba(148, 163, 184, 0.35);
  background: rgba(148, 163, 184, 0.08);
}
.user-profile-shell .timeline-date-group {
  padding: 12px 8px 4px;
  margin-left: 52px;
  position: relative;
  z-index: 2;
}
.user-profile-shell .timeline-date-group__label {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--glass-text-muted, rgba(255, 255, 255, 0.45));
  padding: 3px 10px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
}
.user-profile-shell .event-danger .timeline-event__amount {
  color: #f87171;
}
.user-profile-shell .timeline-skeleton {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 8px 0;
}
.user-profile-shell .timeline-skeleton-item {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 12px 8px;
}
.user-profile-shell .skeleton-circle {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  flex-shrink: 0;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.06));
  background-size: 200% 100%;
  animation: shimmer 1.5s ease-in-out infinite;
}
.user-profile-shell .skeleton-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 4px;
}
@media (max-width: 768px) {
  .user-profile-shell .crm-timeline::before {
    left: 18px;
  }
  .user-profile-shell .timeline-event {
    gap: 12px;
    padding: 10px 4px;
  }
  .user-profile-shell .timeline-event__icon {
    width: 32px;
    height: 32px;
  }
  .user-profile-shell .event-emoji {
    font-size: 15px;
  }
  .user-profile-shell .timeline-event__title {
    font-size: 13px;
  }
  .user-profile-shell .timeline-event__desc {
    font-size: 12px;
  }
}
.user-profile-shell .badge-employee {
  background: linear-gradient(135deg, rgba(167, 139, 250, 0.2), rgba(139, 92, 246, 0.12)) !important;
  border-color: rgba(167, 139, 250, 0.4) !important;
  color: #c4b5fd !important;
}
.user-profile-shell .payroll-history-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.user-profile-shell .payroll-history-row {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 10px 14px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.04);
  transition: background 0.2s ease;
}
.user-profile-shell .payroll-history-row:hover {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.08);
}
.user-profile-shell .payroll-history-row__period {
  min-width: 64px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
}
.user-profile-shell .payroll-history-row__period .period-month {
  font-size: 14px;
  font-weight: 700;
  color: var(--glass-text-primary, #f8f8ff);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.user-profile-shell .payroll-history-row__period .period-year {
  font-size: 11px;
  color: var(--glass-text-muted, rgba(255, 255, 255, 0.4));
}
.user-profile-shell .payroll-history-row__status {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 6px;
}
.user-profile-shell .payroll-history-row__amount {
  font-size: 14px;
  font-weight: 700;
  color: var(--glass-text-primary, #f8f8ff);
  font-variant-numeric: tabular-nums;
  text-align: right;
  min-width: 80px;
}
.user-profile-shell .status-paid {
  background: rgba(74, 222, 128, 0.12) !important;
  color: #4ade80 !important;
  border: 1px solid rgba(74, 222, 128, 0.25);
}
.user-profile-shell .status-finalized {
  background: rgba(96, 165, 250, 0.12) !important;
  color: #60a5fa !important;
  border: 1px solid rgba(96, 165, 250, 0.25);
}
.user-profile-shell .status-draft {
  background: rgba(251, 191, 36, 0.12) !important;
  color: #fbbf24 !important;
  border: 1px solid rgba(251, 191, 36, 0.25);
}
.user-profile-shell .acct-posted {
  background: rgba(74, 222, 128, 0.1) !important;
  color: #4ade80 !important;
  border: 1px solid rgba(74, 222, 128, 0.2);
}
.user-profile-shell .acct-failed {
  background: rgba(248, 113, 113, 0.12) !important;
  color: #f87171 !important;
  border: 1px solid rgba(248, 113, 113, 0.3);
}
.user-profile-shell .acct-partial {
  background: rgba(251, 191, 36, 0.1) !important;
  color: #fbbf24 !important;
  border: 1px solid rgba(251, 191, 36, 0.2);
}
.user-profile-shell .deductions-breakdown .finance-row {
  padding: 3px 0;
}
.user-profile-shell .deductions-breakdown .finance-row__label {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.55);
}
.user-profile-shell .deductions-breakdown .finance-row__value {
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}
.user-profile-shell .ledger-filter-tabs .ui-btn--primary {
  background: rgba(96, 165, 250, 0.15);
  border-color: rgba(96, 165, 250, 0.4);
  color: #93c5fd;
}
.user-profile-shell .meta-item--balance .meta-value {
  transition: opacity 120ms ease;
  text-decoration-line: underline;
  text-decoration-style: dotted;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  text-decoration-color: currentColor;
}
.user-profile-shell .meta-item--balance:hover .meta-value {
  opacity: 0.8;
}

/* ==========================================================================
   UI PAGES - SETTINGS PAGE LAYOUT CONTRACT
   ==========================================================================
   SCOPED LAYOUT-ONLY contract for /console/account-settings

   ALLOWED: display, grid, flex, gap, padding, margin, position, width
   FORBIDDEN: background, color, border, shadow, radius (use UI contracts)

   Root selector: .settings-page
   ========================================================================== */
/* ==========================================================================
   PAGE CONTAINER
   ========================================================================== */
.settings-page {
  display: block;
  position: relative;
  min-height: 100vh;
  padding: 0 0 88px;
}

.settings-page > .container-fluid {
  max-width: 1560px;
  padding: 28px 32px 0;
}

/* Row wrapper for 2-column layout */
.settings-page .settings-layout {
  display: flex;
  flex-wrap: nowrap;
  gap: 24px;
  align-items: start;
  margin-left: 0;
  margin-right: 0;
}

/* ==========================================================================
   SIDEBAR COLUMN (Fixed)
   ========================================================================== */
.settings-page .settings-layout__sidebar {
  position: sticky;
  top: 12px;
  z-index: 10;
  align-self: flex-start;
  flex: 0 0 286px;
  width: 286px;
  max-width: 286px;
  min-width: 0;
  padding-left: 0;
  padding-right: 0;
}

/* ==========================================================================
   CONTENT COLUMN
   ========================================================================== */
.settings-page .settings-layout__content {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 320px;
  width: min(100%, 100% - 310px);
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}

/* Remove Bootstrap tab-content padding and borders */
.settings-page .tab-content {
  padding: 0;
  margin: 0;
  border: none;
}

/* ==========================================================================
   SIDEBAR NAVIGATION LAYOUT
   ========================================================================== */
.settings-page .settings-sidebar {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 12px;
  position: sticky;
  top: 12px;
  max-height: calc(100vh - 24px);
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 20px 52px rgba(0, 0, 0, 0.3);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-radius: 24px;
}

.settings-page .settings-sidebar::-webkit-scrollbar {
  width: 6px;
}

.settings-page .settings-sidebar::-webkit-scrollbar-track {
  background: transparent;
}

.settings-page .settings-sidebar::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.12);
  border-radius: 999px;
}

.settings-page .settings-sidebar__header {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 2px 4px 10px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.settings-page .settings-sidebar__eyebrow,
.settings-page .settings-page-header__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 190, 145, 0.82);
}

.settings-page .settings-sidebar__title {
  margin: 0;
  max-width: 100%;
  font-size: 18px;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: rgba(255, 255, 255, 0.96);
  overflow-wrap: normal;
  word-break: normal;
}

.settings-page .settings-sidebar__hint {
  margin: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 11px;
  line-height: 1.25;
  color: rgba(255, 255, 255, 0.58);
}

.settings-page .sidebar-nav {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.settings-page .settings-nav-group {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.settings-page .settings-nav-group + .settings-nav-group {
  padding-top: 8px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.settings-page .settings-nav-group__label {
  padding: 0 8px 3px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.38);
}

.settings-page .sidebar-nav-item {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 40px;
  padding: 7px 11px;
  border-radius: 15px;
  background: transparent;
  border: 1px solid transparent;
  color: rgba(255, 255, 255, 0.72);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.01em;
  cursor: pointer;
  transition: all 0.2s ease;
  text-decoration: none;
}

.settings-page .sidebar-nav-item:hover {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.95);
}

.settings-page .sidebar-nav-item.active {
  background: linear-gradient(135deg, rgba(255, 120, 80, 0.14), rgba(255, 120, 80, 0.06));
  border-color: rgba(255, 140, 96, 0.32);
  color: #ffc39f;
  position: relative;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.settings-page .sidebar-nav-item mat-icon {
  font-size: 17px;
  width: 17px;
  height: 17px;
  min-width: 17px;
  color: inherit;
  flex-shrink: 0;
}

.settings-page .sidebar-nav-item span {
  flex: 1;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Warning badge on sidebar tabs (e.g. Integrations not configured) */
.settings-page .sidebar-nav-item .sidebar-tab-warning {
  flex: 0 0 auto;
  font-size: 14px;
  width: 14px;
  height: 14px;
  min-width: 14px;
  color: var(--ui-warning, #FFCC00);
  animation: sidebar-warn-pulse 2s ease-in-out infinite;
}

@keyframes sidebar-warn-pulse {
  0%, 100% {
    opacity: 0.7;
  }
  50% {
    opacity: 1;
  }
}
/* ==========================================================================
   TAB CONTENT LAYOUT
   ========================================================================== */
.settings-page .settings-tab-content {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* Settings content wrapper */
.settings-page .settings-content {
  display: flex;
  flex-direction: column;
  gap: 28px;
  min-width: 0;
}

.settings-page .settings-content .ui-card.ui-card--solid, .settings-page .settings-content .glass-modal-container .ui-card--solid.glass-card, .glass-modal-container .settings-page .settings-content .ui-card--solid.glass-card,
.settings-page .settings-content .glass-modal-container .ui-card--solid.glass-panel,
.glass-modal-container .settings-page .settings-content .ui-card--solid.glass-panel,
.settings-page .settings-content .glass-modal-container .ui-card--solid.fd-glass,
.glass-modal-container .settings-page .settings-content .ui-card--solid.fd-glass,
.settings-page .settings-content .glass-modal-container .ui-card--solid.section-card,
.glass-modal-container .settings-page .settings-content .ui-card--solid.section-card,
.settings-page .settings-content .glass-modal-container .ui-card--solid.content-section,
.glass-modal-container .settings-page .settings-content .ui-card--solid.content-section,
.settings-page .settings-content .glass-modal-container .ui-card--solid.timeline-card,
.glass-modal-container .settings-page .settings-content .ui-card--solid.timeline-card,
.settings-page .settings-content .glass-modal-container .ui-card--solid.entry-section,
.glass-modal-container .settings-page .settings-content .ui-card--solid.entry-section,
.settings-page .settings-content .glass-modal-container .ui-card--solid.attachments,
.glass-modal-container .settings-page .settings-content .ui-card--solid.attachments,
.settings-page .settings-content .glass-modal-container .ui-card--solid.summary-card,
.glass-modal-container .settings-page .settings-content .ui-card--solid.summary-card,
.settings-page .settings-content .glass-modal-container .ui-card--solid.metric-card,
.glass-modal-container .settings-page .settings-content .ui-card--solid.metric-card,
.settings-page .settings-content .glass-modal-container .ui-card--solid.review-card,
.glass-modal-container .settings-page .settings-content .ui-card--solid.review-card,
.settings-page .settings-content .glass-modal-container .ui-card--solid.config-section,
.glass-modal-container .settings-page .settings-content .ui-card--solid.config-section,
.settings-page .settings-content .glass-modal-container .ui-card--solid.panel-card,
.glass-modal-container .settings-page .settings-content .ui-card--solid.panel-card {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding: 24px 26px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.018));
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 28px;
  box-shadow: 0 24px 56px rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

/* ==========================================================================
   SETTINGS HEADER
   ========================================================================== */
.settings-page .settings-header,
.settings-page .settings-page-header {
  margin-bottom: 0;
}

.settings-page .settings-page-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: flex-end;
  justify-content: flex-start;
  gap: 14px;
}

.settings-page .settings-page-header__title-row {
  display: flex;
  align-items: flex-start;
  gap: 16px;
}

.settings-page .settings-page-header__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255, 140, 90, 0.18), rgba(255, 140, 90, 0.08));
  border: 1px solid rgba(255, 170, 130, 0.2);
  color: #ffb48c;
  flex-shrink: 0;
}

.settings-page .settings-page-header__icon mat-icon {
  font-size: 26px;
  width: 26px;
  height: 26px;
}

.settings-page .settings-page-header__copy {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}

.settings-page .settings-page-header__meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 10px;
  padding-left: 70px;
}

.settings-page .settings-meta-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 0 14px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.78);
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
}

.settings-page .settings-meta-pill mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: inherit;
}

.settings-page .settings-meta-pill--subtle {
  background: rgba(255, 255, 255, 0.03);
  color: rgba(255, 255, 255, 0.62);
}

.settings-page .settings-header {
  padding: 6px 2px 2px;
}

.settings-page .settings-page-header .settings-title,
.settings-page .settings-header > .settings-title {
  margin: 0;
  font-size: clamp(32px, 4vw, 44px);
  line-height: 0.98;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.97);
  letter-spacing: -0.045em;
}

.settings-page .settings-page-header .settings-subtitle,
.settings-page .settings-header > .settings-subtitle {
  margin: 0;
  max-width: 100%;
  font-size: 15px;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.6);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.settings-page .section-helper {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.6;
  margin: 0 0 16px 0;
}

/* ==========================================================================
   SECTION TITLE LAYOUT
   ========================================================================== */
.settings-page .glass-section-title {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-bottom: 0;
  padding-bottom: 14px;
  display: flex;
  align-items: center;
  gap: 12px;
  background: linear-gradient(90deg, rgba(255, 200, 150, 0.85), rgba(255, 180, 140, 0.6));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.settings-page .glass-section-title mat-icon {
  font-size: 17px;
  width: 17px;
  height: 17px;
  color: rgba(255, 180, 130, 0.8);
  -webkit-text-fill-color: initial;
}

/* ==========================================================================
   FORM LAYOUT
   ========================================================================== */
.settings-page .glass-form {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.settings-page .glass-form-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}

.settings-page .glass-form-grid.three-col {
  grid-template-columns: repeat(3, 1fr);
}

.settings-page .glass-form-grid.four-col {
  grid-template-columns: repeat(4, 1fr);
}

.settings-page .glass-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.settings-page .glass-field.full-width {
  grid-column: 1/-1;
}

.settings-page .field-hint {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.45);
  margin-top: 4px;
  font-style: italic;
}

.settings-page .form-actions {
  display: flex;
  justify-content: flex-start;
  margin-top: 4px;
  padding-top: 6px;
}

/* ==========================================================================
   FORM ROW LEGACY SUPPORT
   ========================================================================== */
.settings-page .form-group.row {
  display: flex;
  align-items: center;
  margin-bottom: 16px;
}

.settings-page .form-group.row .col-sm-6 {
  flex: 0 0 50%;
  max-width: 50%;
}

.settings-page .form-group.row .col-form-label {
  color: rgba(255, 255, 255, 0.7);
  font-size: 14px;
}

/* ==========================================================================
   MATERIAL FORM FIELD OVERRIDES
   ========================================================================== */
.settings-page .mat-mdc-form-field,
.settings-page .glass-form .mat-mdc-form-field {
  width: 100%;
}

.settings-page .mat-mdc-text-field-wrapper {
  background: rgba(255, 255, 255, 0.035);
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 16px;
  padding: 0 16px;
  min-height: 56px;
  height: 56px;
  transition: all 0.2s ease;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.settings-page .mat-mdc-form-field-flex {
  min-height: 56px;
  height: 56px;
  align-items: center;
}

.settings-page .mat-mdc-form-field-infix {
  padding-top: 24px;
  padding-bottom: 8px;
  min-height: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  border-top: 0;
}

.settings-page .mat-mdc-floating-label {
  top: 30px;
  color: rgba(255, 255, 255, 0.5);
  font-size: 14px;
  font-weight: 400;
}

.settings-page .mat-mdc-floating-label--float-above {
  transform: translateY(-120%) scale(0.75);
  color: rgba(255, 255, 255, 0.6);
}

.settings-page .mat-mdc-text-field-wrapper:hover {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.12);
}

.settings-page .mat-mdc-form-field.mat-focused .mat-mdc-text-field-wrapper {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 140, 80, 0.45);
  box-shadow: 0 0 0 3px rgba(255, 140, 80, 0.12);
}

.settings-page .mat-mdc-input-element {
  color: rgba(255, 255, 255, 0.92);
  font-size: 14px;
  font-weight: 500;
  caret-color: #ff8c50;
}

.settings-page .mat-mdc-input-element::placeholder {
  color: rgba(255, 255, 255, 0.35);
}

/* Textarea */
.settings-page textarea.mat-mdc-input-element {
  min-height: 92px;
  resize: vertical;
}

.settings-page .mat-mdc-form-field:has(textarea) .mat-mdc-text-field-wrapper {
  height: auto;
  min-height: 124px;
  padding: 14px 18px;
}

.settings-page .mat-mdc-form-field:has(textarea) .mat-mdc-form-field-flex {
  height: auto;
  min-height: auto;
  align-items: flex-start;
}

.settings-page .mat-mdc-form-field:has(textarea) .mat-mdc-form-field-infix {
  height: auto;
  min-height: auto;
  padding-top: 18px;
}

/* Remove Material underline/ripple */
.settings-page .mdc-line-ripple,
.settings-page .mdc-line-ripple::before,
.settings-page .mdc-line-ripple::after {
  display: none;
  opacity: 0;
  height: 0;
  border: none;
  background-color: transparent;
}

.settings-page .mdc-text-field--filled::after,
.settings-page .mdc-text-field--filled:not(.mdc-text-field--disabled)::before {
  display: none;
  border-bottom: none;
}

.settings-page .mdc-notched-outline {
  display: none;
}

/* Select styling */
.settings-page .mat-mdc-select-value {
  color: rgba(255, 255, 255, 0.92);
  font-size: 14px;
  font-weight: 500;
}

.settings-page .mat-mdc-select-arrow {
  color: rgba(255, 255, 255, 0.5);
}

/* Radio button styling */
.settings-page .mat-mdc-radio-button {
  --mdc-radio-unselected-icon-color: rgba(255, 255, 255, 0.5);
  --mdc-radio-selected-icon-color: #ff8c50;
  --mdc-radio-unselected-hover-icon-color: rgba(255, 255, 255, 0.7);
}

.settings-page .mat-mdc-radio-button .mdc-label {
  color: rgba(255, 255, 255, 0.85);
  font-size: 14px;
}

/* Checkbox styling */
.settings-page .mat-mdc-checkbox {
  --mdc-checkbox-unselected-icon-color: rgba(255, 255, 255, 0.4);
  --mdc-checkbox-selected-icon-color: #ff8c50;
  --mdc-checkbox-selected-checkmark-color: white;
}

/* ==========================================================================
   TABLE LAYOUT (Manage Branches)
   ========================================================================== */
.settings-page .table-responsive {
  background: rgba(255, 255, 255, 0.02);
  border-radius: 12px;
  padding: 0;
  border: none;
  overflow-x: auto;
  overflow-y: auto;
}

.settings-page .ui-card.ui-card--solid, .settings-page .glass-modal-container .ui-card--solid.glass-card, .glass-modal-container .settings-page .ui-card--solid.glass-card,
.settings-page .glass-modal-container .ui-card--solid.glass-panel,
.glass-modal-container .settings-page .ui-card--solid.glass-panel,
.settings-page .glass-modal-container .ui-card--solid.fd-glass,
.glass-modal-container .settings-page .ui-card--solid.fd-glass,
.settings-page .glass-modal-container .ui-card--solid.section-card,
.glass-modal-container .settings-page .ui-card--solid.section-card,
.settings-page .glass-modal-container .ui-card--solid.content-section,
.glass-modal-container .settings-page .ui-card--solid.content-section,
.settings-page .glass-modal-container .ui-card--solid.timeline-card,
.glass-modal-container .settings-page .ui-card--solid.timeline-card,
.settings-page .glass-modal-container .ui-card--solid.entry-section,
.glass-modal-container .settings-page .ui-card--solid.entry-section,
.settings-page .glass-modal-container .ui-card--solid.attachments,
.glass-modal-container .settings-page .ui-card--solid.attachments,
.settings-page .glass-modal-container .ui-card--solid.summary-card,
.glass-modal-container .settings-page .ui-card--solid.summary-card,
.settings-page .glass-modal-container .ui-card--solid.metric-card,
.glass-modal-container .settings-page .ui-card--solid.metric-card,
.settings-page .glass-modal-container .ui-card--solid.review-card,
.glass-modal-container .settings-page .ui-card--solid.review-card,
.settings-page .glass-modal-container .ui-card--solid.config-section,
.glass-modal-container .settings-page .ui-card--solid.config-section,
.settings-page .glass-modal-container .ui-card--solid.panel-card,
.glass-modal-container .settings-page .ui-card--solid.panel-card {
  border: none;
}

.settings-page .table {
  width: 100%;
  border-collapse: collapse;
  color: rgba(255, 255, 255, 0.85);
  background: transparent;
  margin: 0;
  table-layout: fixed;
}

.settings-page .table thead {
  background: rgba(255, 255, 255, 0.04);
  position: sticky;
  top: 0;
  z-index: 1;
}

.settings-page .table thead th {
  padding: 10px 8px;
  text-align: left;
  border: none;
  color: rgba(255, 255, 255, 0.65);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: 10px;
  font-weight: 700;
  white-space: nowrap;
}

/* Column widths for branches table */
.settings-page .table thead th:nth-child(1) {
  width: 22%;
}

.settings-page .table thead th:nth-child(2) {
  width: 12%;
}

.settings-page .table thead th:nth-child(3) {
  width: 16%;
}

.settings-page .table thead th:nth-child(4) {
  width: 11%;
}

.settings-page .table thead th:nth-child(5) {
  width: 7%;
}

.settings-page .table thead th:nth-child(6) {
  width: 12%;
}

.settings-page .table thead th:nth-child(7) {
  width: 12%;
}

.settings-page .table thead th:nth-child(8) {
  width: 8%;
}

.settings-page .table tbody tr {
  background: transparent;
  transition: background 0.15s ease;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.settings-page .table tbody tr:last-child {
  border-bottom: none;
}

.settings-page .table tbody tr:hover {
  background: rgba(255, 255, 255, 0.03);
}

.settings-page .table tbody td {
  padding: 10px 8px;
  border: none;
  vertical-align: middle;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.85);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: normal;
}

/* ==========================================================================
   FRANCHISOR CARD
   ========================================================================== */
.settings-page .franchisor-card {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 18px;
  margin-bottom: 16px;
  background: linear-gradient(135deg, rgba(251, 191, 36, 0.1) 0%, rgba(251, 191, 36, 0.03) 100%);
  border: 1px solid rgba(251, 191, 36, 0.2);
  border-radius: 12px;
}

.settings-page .franchisor-badge {
  display: flex;
  align-items: center;
  gap: 10px;
}

.settings-page .franchisor-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #fbbf24;
}

.settings-page .franchisor-info {
  flex: 1;
}

.settings-page .franchisor-name {
  font-size: 15px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
  margin-bottom: 2px;
}

.settings-page .franchisor-details {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
}

.settings-page .franchisor-details .divider {
  margin: 0 8px;
  color: rgba(255, 255, 255, 0.25);
}

.settings-page .franchisor-status .status-active {
  font-size: 11px;
  font-weight: 700;
  color: #4ade80;
  letter-spacing: 0.03em;
}

.settings-page .hq-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%);
  color: #1a1a1a;
  font-size: 10px;
  font-weight: 800;
  border-radius: 6px;
  letter-spacing: 0.02em;
}

/* ==========================================================================
   BRANDING ASSETS LAYOUT
   ========================================================================== */
.settings-page .branding-assets-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

.settings-page .branding-asset-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 16px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 12px;
}

.settings-page .asset-header {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: rgba(255, 180, 130, 0.85);
}

.settings-page .asset-header mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.settings-page .asset-content {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 140px;
  width: 100%;
}

.settings-page .asset-preview {
  position: relative;
  width: 140px;
  height: 140px;
  background: white;
  border-radius: 8px;
  padding: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.settings-page .asset-preview.logo-preview {
  background: rgba(255, 255, 255, 0.05);
  width: 160px;
  height: 100px;
}

.settings-page .asset-preview img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.settings-page .asset-delete-btn {
  position: absolute;
  top: -8px;
  right: -8px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: rgba(255, 80, 80, 0.9);
  border: none;
  color: white;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}

.settings-page .asset-delete-btn:hover {
  background: rgb(255, 60, 60);
  transform: scale(1.1);
}

.settings-page .asset-delete-btn mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.settings-page .asset-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  color: rgba(255, 255, 255, 0.4);
}

.settings-page .asset-empty mat-icon {
  font-size: 40px;
  width: 40px;
  height: 40px;
  opacity: 0.5;
}

.settings-page .asset-empty span {
  font-size: 13px;
}

/* ==========================================================================
   GALLERY LAYOUT
   ========================================================================== */
.settings-page .gal {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: 16px;
  padding: 8px 0;
}

.settings-page .img-wrap {
  position: relative;
  aspect-ratio: 1;
  border-radius: 12px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.05);
  margin: 0;
}

.settings-page .img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.settings-page .img-wrap .fa-trash {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(239, 68, 68, 0.9);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 12px;
  opacity: 0;
  transition: opacity 0.2s;
}

.settings-page .img-wrap:hover .fa-trash {
  opacity: 1;
}

/* ==========================================================================
   TOGGLE SWITCH
   ========================================================================== */
.settings-page .toggle-switch {
  position: relative;
  display: inline-flex;
  align-items: center;
  width: 44px;
  height: 24px;
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
}

.settings-page .toggle-switch .toggle-track {
  position: relative;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.15);
  border-radius: 12px;
  transition: background 0.2s;
}

.settings-page .toggle-switch.active .toggle-track {
  background: rgba(74, 222, 128, 0.3);
}

.settings-page .toggle-switch .toggle-thumb {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 20px;
  height: 20px;
  background: rgba(255, 255, 255, 0.6);
  border-radius: 50%;
  transition: all 0.2s;
}

.settings-page .toggle-switch.active .toggle-thumb {
  left: 22px;
  background: #4ade80;
}

/* ==========================================================================
   GLASS PANEL (for nested sections)
   ========================================================================== */
.settings-page .glass-panel {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 12px;
}

/* ==========================================================================
   EMPTY STATE
   ========================================================================== */
.settings-page .fd-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 32px 16px;
  color: rgba(255, 255, 255, 0.5);
  text-align: center;
}

.settings-page .fd-empty-state p {
  margin: 0;
  font-size: 14px;
}

/* ==========================================================================
   EXPENSE SETTINGS TAB
   ========================================================================== */
.settings-page .policy-summary-panel {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  padding: 12px 14px;
}

.settings-page .summary-header {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  -webkit-user-select: none;
          user-select: none;
}

.settings-page .summary-header .summary-title {
  font-size: 16px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.92);
}

.settings-page .summary-header .expand-icon {
  margin-left: auto;
  color: rgba(255, 255, 255, 0.75);
}

.settings-page .summary-content {
  margin-top: 12px;
  display: grid;
  grid-template-columns: repeat(2, minmax(220px, 1fr));
  gap: 8px 16px;
}

.settings-page .summary-item {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.settings-page .summary-item .summary-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255, 170, 120, 0.95);
}

.settings-page .summary-item .summary-value {
  font-size: 14px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.85);
}

.settings-page .summary-item .summary-value.enabled {
  color: rgba(130, 245, 180, 0.95);
}

.settings-page .audit-hint {
  grid-column: 1/-1;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.78);
  margin-top: 6px;
}

.settings-page .test-flow-section {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: -2px 0 2px;
}

.settings-page .test-flow-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border-radius: 999px;
  border: 1px solid rgba(255, 165, 110, 0.38);
  background: rgba(255, 165, 110, 0.12);
  color: #ffb789;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

.settings-page .test-flow-btn:hover {
  background: rgba(255, 165, 110, 0.2);
  border-color: rgba(255, 165, 110, 0.55);
  color: #ffd5b9;
}

.settings-page .test-flow-hint {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.72);
}

.settings-page .section-description {
  margin: 0 0 14px;
  color: rgba(255, 255, 255, 0.74);
  font-size: 14px;
  line-height: 1.45;
}

.settings-page .compact-info-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 14px;
}

.settings-page .compact-info-bar {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 12px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.9);
}

.settings-page .compact-info-bar.admin {
  border-color: rgba(120, 205, 255, 0.28);
  background: rgba(120, 205, 255, 0.09);
}

.settings-page .compact-info-bar.warning {
  border-color: rgba(255, 182, 84, 0.32);
  background: rgba(255, 182, 84, 0.11);
  color: rgba(255, 222, 182, 0.94);
}

.settings-page .compact-info-bar .info-icon-sm {
  font-size: 16px;
  width: 16px;
  height: 16px;
  opacity: 0.9;
}

.settings-page .workflow-container {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.settings-page .workflow-steps {
  display: flex;
  align-items: stretch;
  gap: 12px;
  flex-wrap: wrap;
}

.settings-page .workflow-step {
  flex: 1 1 290px;
  min-width: 280px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  padding: 10px 12px;
  transition: all 0.2s ease;
}

.settings-page .workflow-step.submitter {
  border-color: rgba(255, 173, 117, 0.28);
  background: linear-gradient(145deg, rgba(255, 173, 117, 0.12), rgba(255, 173, 117, 0.05));
}

.settings-page .workflow-step.disabled {
  opacity: 0.58;
}

.settings-page .step-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.settings-page .step-number {
  width: 22px;
  height: 22px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.06);
  flex-shrink: 0;
}

.settings-page .step-role {
  font-size: 17px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.92);
}

.settings-page .role-badge,
.settings-page .inactive-badge {
  margin-left: auto;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.01em;
  white-space: nowrap;
}

.settings-page .role-badge.submitter-badge {
  border: 1px solid rgba(255, 173, 117, 0.38);
  color: rgba(255, 208, 178, 0.96);
  background: rgba(255, 173, 117, 0.14);
}

.settings-page .role-badge.approver-badge {
  border: 1px solid rgba(255, 166, 102, 0.38);
  color: rgba(255, 185, 130, 0.98);
  background: rgba(255, 166, 102, 0.14);
}

.settings-page .inactive-badge {
  border: 1px solid rgba(255, 255, 255, 0.16);
  color: rgba(255, 255, 255, 0.62);
  background: rgba(255, 255, 255, 0.05);
}

.settings-page .locked-indicator mat-icon {
  font-size: 17px;
  width: 17px;
  height: 17px;
  color: rgba(255, 255, 255, 0.65);
}

.settings-page .step-header .toggle-switch.small {
  margin-left: 8px;
  width: 40px;
  height: 22px;
}

.settings-page .step-header .toggle-switch.small .toggle-thumb {
  width: 18px;
  height: 18px;
}

.settings-page .step-header .toggle-switch.small.active .toggle-thumb {
  left: 20px;
}

.settings-page .step-details {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.8);
}

.settings-page .submitter-note {
  color: rgba(255, 255, 255, 0.8);
  font-weight: 500;
}

.settings-page .step-option {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: rgba(255, 255, 255, 0.88);
  font-size: 14px;
}

.settings-page .step-option input[type=checkbox] {
  width: 15px;
  height: 15px;
  margin: 0;
  accent-color: #3b82f6;
}

.settings-page .step-escalation {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  color: rgba(255, 255, 255, 0.77);
}

.settings-page .step-escalation input[type=number] {
  width: 56px;
  height: 30px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.15);
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.92);
  text-align: center;
  font-weight: 600;
  padding: 0 6px;
}

.settings-page .step-escalation input[type=number]:focus {
  outline: none;
  border-color: rgba(255, 166, 102, 0.6);
  box-shadow: 0 0 0 2px rgba(255, 166, 102, 0.18);
}

.settings-page .escalation-hint {
  color: rgba(255, 210, 180, 0.9);
  font-size: 13px;
  font-weight: 500;
}

.settings-page .workflow-connector {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  width: 24px;
  color: rgba(255, 255, 255, 0.6);
}

.settings-page .workflow-connector mat-icon {
  font-size: 22px;
  width: 22px;
  height: 22px;
}

.settings-page .workflow-preview {
  border: 1px dashed rgba(255, 255, 255, 0.17);
  background: rgba(255, 255, 255, 0.03);
  border-radius: 12px;
  padding: 10px 12px;
}

.settings-page .workflow-preview .preview-label {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 180, 130, 0.88);
  margin-bottom: 7px;
}

.settings-page .preview-chain {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.settings-page .preview-step {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border-radius: 999px;
  padding: 5px 10px;
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.88);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.settings-page .preview-step.submitter {
  border-color: rgba(255, 173, 117, 0.34);
  background: rgba(255, 173, 117, 0.12);
}

.settings-page .preview-step .preview-action {
  color: rgba(255, 255, 255, 0.6);
  font-weight: 500;
  font-size: 12px;
}

.settings-page .preview-step mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  opacity: 0.7;
}

.settings-page .no-approvers {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: rgba(255, 165, 110, 0.9);
  font-weight: 600;
}

.settings-page .role-legend {
  margin-top: 2px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: 10px;
}

.settings-page .role-legend .legend-title {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 180, 130, 0.86);
  margin-bottom: 8px;
}

.settings-page .legend-items {
  display: grid;
  grid-template-columns: repeat(2, minmax(240px, 1fr));
  gap: 8px 14px;
}

.settings-page .legend-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px 10px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.03);
}

.settings-page .legend-item .legend-role {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}

.settings-page .legend-item .legend-desc {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.66);
}

.settings-page .legend-item.admin {
  border-color: rgba(120, 205, 255, 0.24);
  background: rgba(120, 205, 255, 0.08);
}

.settings-page .expense-settings-tab {
  gap: 22px;
}

.settings-page .expense-settings-tab .ui-card.ui-card--solid, .settings-page .expense-settings-tab .glass-modal-container .ui-card--solid.glass-card, .glass-modal-container .settings-page .expense-settings-tab .ui-card--solid.glass-card,
.settings-page .expense-settings-tab .glass-modal-container .ui-card--solid.glass-panel,
.glass-modal-container .settings-page .expense-settings-tab .ui-card--solid.glass-panel,
.settings-page .expense-settings-tab .glass-modal-container .ui-card--solid.fd-glass,
.glass-modal-container .settings-page .expense-settings-tab .ui-card--solid.fd-glass,
.settings-page .expense-settings-tab .glass-modal-container .ui-card--solid.section-card,
.glass-modal-container .settings-page .expense-settings-tab .ui-card--solid.section-card,
.settings-page .expense-settings-tab .glass-modal-container .ui-card--solid.content-section,
.glass-modal-container .settings-page .expense-settings-tab .ui-card--solid.content-section,
.settings-page .expense-settings-tab .glass-modal-container .ui-card--solid.timeline-card,
.glass-modal-container .settings-page .expense-settings-tab .ui-card--solid.timeline-card,
.settings-page .expense-settings-tab .glass-modal-container .ui-card--solid.entry-section,
.glass-modal-container .settings-page .expense-settings-tab .ui-card--solid.entry-section,
.settings-page .expense-settings-tab .glass-modal-container .ui-card--solid.attachments,
.glass-modal-container .settings-page .expense-settings-tab .ui-card--solid.attachments,
.settings-page .expense-settings-tab .glass-modal-container .ui-card--solid.summary-card,
.glass-modal-container .settings-page .expense-settings-tab .ui-card--solid.summary-card,
.settings-page .expense-settings-tab .glass-modal-container .ui-card--solid.metric-card,
.glass-modal-container .settings-page .expense-settings-tab .ui-card--solid.metric-card,
.settings-page .expense-settings-tab .glass-modal-container .ui-card--solid.review-card,
.glass-modal-container .settings-page .expense-settings-tab .ui-card--solid.review-card,
.settings-page .expense-settings-tab .glass-modal-container .ui-card--solid.config-section,
.glass-modal-container .settings-page .expense-settings-tab .ui-card--solid.config-section,
.settings-page .expense-settings-tab .glass-modal-container .ui-card--solid.panel-card,
.glass-modal-container .settings-page .expense-settings-tab .ui-card--solid.panel-card {
  gap: 20px;
}

.settings-page .expense-settings-tab .settings-grid {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.settings-page .expense-settings-tab .setting-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 18px 20px;
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.02)), rgba(12, 12, 18, 0.18);
}

.settings-page .expense-settings-tab .setting-row.full-width {
  align-items: flex-start;
}

.settings-page .expense-settings-tab .setting-row.setting-row-highlight {
  border-color: rgba(255, 160, 108, 0.18);
  background: radial-gradient(circle at top right, rgba(255, 160, 108, 0.12), transparent 42%), linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02)), rgba(12, 12, 18, 0.2);
}

.settings-page .expense-settings-tab .setting-info {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.settings-page .expense-settings-tab .setting-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  line-height: 1.35;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.94);
}

.settings-page .expense-settings-tab .setting-desc {
  font-size: 13px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.62);
}

.settings-page .expense-settings-tab .info-icon {
  font-size: 17px;
  width: 17px;
  height: 17px;
  color: rgba(255, 196, 150, 0.78);
  flex-shrink: 0;
}

.settings-page .expense-settings-tab .limit-input {
  display: grid;
  grid-template-columns: auto minmax(110px, 1fr);
  align-items: center;
  gap: 10px;
  min-width: 184px;
  height: 52px;
  padding: 0 16px;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.025)), rgba(18, 18, 24, 0.34);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.settings-page .expense-settings-tab .limit-input .currency {
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
  color: rgba(255, 196, 150, 0.94);
}

.settings-page .expense-settings-tab .limit-input input {
  width: 100%;
  min-width: 0;
  border: none;
  outline: none;
  background: transparent;
  color: rgba(255, 255, 255, 0.96);
  font-size: 15px;
  font-weight: 600;
  line-height: 1;
  padding: 0;
  box-shadow: none;
  appearance: textfield;
  -moz-appearance: textfield;
}

.settings-page .expense-settings-tab .limit-input input::-webkit-outer-spin-button,
.settings-page .expense-settings-tab .limit-input input::-webkit-inner-spin-button {
  margin: 0;
  appearance: none;
  -webkit-appearance: none;
}

.settings-page .expense-settings-tab .limit-input input::placeholder {
  color: rgba(255, 255, 255, 0.34);
}

.settings-page .expense-settings-tab .category-exception-note,
.settings-page .expense-settings-tab .compliance-hint,
.settings-page .expense-settings-tab .hierarchy-hint,
.settings-page .expense-settings-tab .budget-reset-info {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 14px 16px;
  border-radius: 16px;
  border: 1px solid rgba(255, 188, 120, 0.16);
  background: rgba(255, 188, 120, 0.07);
  font-size: 13px;
  line-height: 1.55;
  color: rgba(255, 227, 197, 0.88);
}

.settings-page .expense-settings-tab .category-exception-note mat-icon,
.settings-page .expense-settings-tab .compliance-hint mat-icon,
.settings-page .expense-settings-tab .hierarchy-hint mat-icon,
.settings-page .expense-settings-tab .budget-reset-info mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 190, 126, 0.96);
  flex-shrink: 0;
}

.settings-page .expense-settings-tab .approval-limits-table,
.settings-page .expense-settings-tab .budget-controls-table,
.settings-page .expense-settings-tab .categories-container {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.settings-page .expense-settings-tab .limits-header,
.settings-page .expense-settings-tab .limit-row {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(140px, 0.7fr) 104px;
  align-items: center;
  gap: 14px;
}

.settings-page .expense-settings-tab .limits-header {
  padding: 0 16px;
}

.settings-page .expense-settings-tab .limits-header .header-col,
.settings-page .expense-settings-tab .budget-header .header-col {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 190, 150, 0.74);
}

.settings-page .expense-settings-tab .limit-row {
  padding: 16px;
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.018)), rgba(10, 10, 16, 0.14);
}

.settings-page .expense-settings-tab .role-name,
.settings-page .expense-settings-tab .category-name {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.94);
}

.settings-page .expense-settings-tab .limit-value,
.settings-page .expense-settings-tab .budget-amount {
  font-size: 14px;
  font-weight: 700;
  color: rgba(255, 222, 186, 0.96);
}

.settings-page .expense-settings-tab .unlimited-badge,
.settings-page .expense-settings-tab .overspend-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.05);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.88);
}

.settings-page .expense-settings-tab .overspend-action.warning {
  border-color: rgba(255, 194, 92, 0.26);
  background: rgba(255, 194, 92, 0.1);
  color: rgba(255, 220, 172, 0.95);
}

.settings-page .expense-settings-tab .overspend-action.hard-stop {
  border-color: rgba(255, 120, 100, 0.24);
  background: rgba(255, 120, 100, 0.1);
  color: rgba(255, 194, 184, 0.95);
}

.settings-page .expense-settings-tab .limit-actions,
.settings-page .expense-settings-tab .budget-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.settings-page .expense-settings-tab .limit-actions.readonly {
  justify-content: flex-start;
}

.settings-page .expense-settings-tab .action-btn,
.settings-page .expense-settings-tab .chip-edit,
.settings-page .expense-settings-tab .chip-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.78);
  cursor: pointer;
  transition: all 0.2s ease;
}

.settings-page .expense-settings-tab .action-btn:hover,
.settings-page .expense-settings-tab .chip-edit:hover,
.settings-page .expense-settings-tab .chip-remove:hover {
  border-color: rgba(255, 168, 120, 0.26);
  background: rgba(255, 168, 120, 0.1);
  color: rgba(255, 222, 196, 0.96);
}

.settings-page .expense-settings-tab .action-btn.delete:hover,
.settings-page .expense-settings-tab .chip-remove:hover {
  border-color: rgba(255, 120, 120, 0.28);
  background: rgba(255, 120, 120, 0.12);
  color: rgba(255, 210, 210, 0.96);
}

.settings-page .expense-settings-tab .action-btn mat-icon,
.settings-page .expense-settings-tab .chip-edit mat-icon,
.settings-page .expense-settings-tab .chip-remove mat-icon,
.settings-page .expense-settings-tab .locked-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.settings-page .expense-settings-tab .add-limit-row,
.settings-page .expense-settings-tab .add-category-row {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(180px, 0.75fr) auto;
  align-items: center;
  gap: 12px;
  padding: 16px;
  border-radius: 18px;
  border: 1px dashed rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.025);
}

.settings-page .expense-settings-tab .add-category-row {
  grid-template-columns: minmax(0, 1fr) auto;
}

.settings-page .expense-settings-tab .compact-input {
  width: 100%;
}

.settings-page .expense-settings-tab .compact-input .mat-mdc-form-field-subscript-wrapper {
  display: none;
}

.settings-page .expense-settings-tab .add-btn,
.settings-page .expense-settings-tab .add-budget-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  padding: 0 16px;
  border: 1px solid rgba(255, 160, 108, 0.24);
  border-radius: 14px;
  background: rgba(255, 160, 108, 0.12);
  color: rgba(255, 221, 196, 0.96);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s ease;
}

.settings-page .expense-settings-tab .add-btn:disabled,
.settings-page .expense-settings-tab .add-budget-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.settings-page .expense-settings-tab .add-btn:not(:disabled):hover,
.settings-page .expense-settings-tab .add-budget-btn:not(:disabled):hover {
  background: rgba(255, 160, 108, 0.18);
  border-color: rgba(255, 160, 108, 0.38);
}

.settings-page .expense-settings-tab .category-chips {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 12px;
}

.settings-page .expense-settings-tab .category-chip {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto auto;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.018)), rgba(8, 8, 14, 0.16);
}

.settings-page .expense-settings-tab .chip-content {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.settings-page .expense-settings-tab .chip-name {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.94);
}

.settings-page .expense-settings-tab .chip-meta {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.56);
}

.settings-page .expense-settings-tab .chip-badges,
.settings-page .expense-settings-tab .suggested-chips {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.settings-page .expense-settings-tab .chip-badge,
.settings-page .expense-settings-tab .suggested-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.04);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.82);
}

.settings-page .expense-settings-tab .chip-badge.gst {
  border-color: rgba(117, 218, 182, 0.22);
  background: rgba(117, 218, 182, 0.1);
  color: rgba(182, 246, 226, 0.94);
}

.settings-page .expense-settings-tab .chip-badge.reimburse {
  border-color: rgba(120, 190, 255, 0.22);
  background: rgba(120, 190, 255, 0.1);
  color: rgba(190, 225, 255, 0.95);
}

.settings-page .expense-settings-tab .suggested-categories {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

.settings-page .expense-settings-tab .suggested-label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 190, 150, 0.76);
}

.settings-page .expense-settings-tab .suggested-chip {
  cursor: pointer;
  text-transform: none;
  letter-spacing: 0.01em;
  font-size: 12px;
  color: rgba(255, 221, 196, 0.94);
}

.settings-page .expense-settings-tab .suggested-chip mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.settings-page .expense-settings-tab .payment-modes-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 4px;
}

.settings-page .expense-settings-tab .mode-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 0 14px;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.04);
  cursor: pointer;
  color: rgba(255, 255, 255, 0.88);
  font-size: 13px;
  font-weight: 600;
}

.settings-page .expense-settings-tab .mode-checkbox input[type=checkbox] {
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: #ff8c50;
}

.settings-page .expense-settings-tab .mode-checkbox.disabled {
  color: rgba(255, 255, 255, 0.5);
  background: rgba(255, 255, 255, 0.025);
}

.settings-page .expense-settings-tab .budget-header,
.settings-page .expense-settings-tab .budget-row {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(130px, 0.7fr) minmax(150px, 0.8fr) 92px 96px;
  align-items: center;
  gap: 14px;
}

.settings-page .expense-settings-tab .budget-header {
  padding: 0 16px;
}

.settings-page .expense-settings-tab .budget-row {
  padding: 16px;
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.018)), rgba(10, 10, 16, 0.14);
}

.settings-page .expense-settings-tab .branch-wise {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.settings-page .expense-settings-tab .branch-wise mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: rgba(255, 255, 255, 0.64);
}

.settings-page .expense-settings-tab .branch-wise mat-icon:first-child {
  color: rgba(124, 230, 168, 0.95);
}

.settings-page .expense-settings-tab .budget-empty {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 18px 16px;
  border-radius: 18px;
  border: 1px dashed rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.03);
  font-size: 13px;
  color: rgba(255, 255, 255, 0.66);
}

.settings-page .expense-settings-tab .budget-empty mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 196, 150, 0.78);
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 992px) {
  .settings-page > .container-fluid {
    padding: 24px 20px 0;
  }
  .settings-page .settings-layout {
    flex-direction: column;
    gap: 24px;
  }
  .settings-page .settings-layout__sidebar {
    position: relative;
    top: 0;
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
  }
  .settings-page .settings-layout__content {
    width: 100%;
  }
  .settings-page .settings-page-header {
    align-items: flex-start;
  }
  .settings-page .settings-page-header__meta {
    justify-content: flex-start;
    padding-left: 70px;
  }
  .settings-page .glass-form-grid.three-col,
  .settings-page .glass-form-grid.four-col {
    grid-template-columns: repeat(2, 1fr);
  }
  .settings-page .branding-assets-grid {
    grid-template-columns: 1fr;
  }
  .settings-page .summary-content {
    grid-template-columns: 1fr;
  }
  .settings-page .workflow-steps {
    flex-direction: column;
  }
  .settings-page .workflow-step {
    min-width: 100%;
  }
  .settings-page .workflow-connector {
    width: 100%;
    justify-content: flex-start;
    padding-left: 8px;
  }
  .settings-page .legend-items {
    grid-template-columns: 1fr;
  }
  .settings-page .expense-settings-tab .limits-header,
  .settings-page .expense-settings-tab .budget-header {
    display: none;
  }
  .settings-page .expense-settings-tab .limit-row,
  .settings-page .expense-settings-tab .budget-row,
  .settings-page .expense-settings-tab .add-limit-row,
  .settings-page .expense-settings-tab .category-chip {
    grid-template-columns: minmax(0, 1fr);
    align-items: flex-start;
  }
  .settings-page .expense-settings-tab .limit-actions,
  .settings-page .expense-settings-tab .budget-actions {
    justify-content: flex-start;
  }
}
@media (max-width: 768px) {
  .settings-page > .container-fluid {
    padding: 20px 16px 0;
  }
  .settings-page .settings-sidebar {
    padding: 12px;
    border-radius: 22px;
  }
  .settings-page .settings-sidebar__header {
    padding: 4px 4px 10px;
  }
  .settings-page .settings-sidebar__hint {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
  }
  .settings-page .settings-page-header__title-row {
    flex-direction: column;
    gap: 12px;
  }
  .settings-page .settings-page-header__meta {
    padding-left: 0;
  }
  .settings-page .settings-page-header__icon {
    width: 48px;
    height: 48px;
    border-radius: 16px;
  }
  .settings-page .settings-page-header__icon mat-icon {
    font-size: 24px;
    width: 24px;
    height: 24px;
  }
  .settings-page .settings-page-header .settings-title,
  .settings-page .settings-header > .settings-title {
    font-size: 30px;
  }
  .settings-page .settings-page-header .settings-subtitle,
  .settings-page .settings-header > .settings-subtitle {
    font-size: 14px;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
  }
  .settings-page .settings-content {
    gap: 22px;
  }
  .settings-page .settings-content .ui-card.ui-card--solid, .settings-page .settings-content .glass-modal-container .ui-card--solid.glass-card, .glass-modal-container .settings-page .settings-content .ui-card--solid.glass-card,
  .settings-page .settings-content .glass-modal-container .ui-card--solid.glass-panel,
  .glass-modal-container .settings-page .settings-content .ui-card--solid.glass-panel,
  .settings-page .settings-content .glass-modal-container .ui-card--solid.fd-glass,
  .glass-modal-container .settings-page .settings-content .ui-card--solid.fd-glass,
  .settings-page .settings-content .glass-modal-container .ui-card--solid.section-card,
  .glass-modal-container .settings-page .settings-content .ui-card--solid.section-card,
  .settings-page .settings-content .glass-modal-container .ui-card--solid.content-section,
  .glass-modal-container .settings-page .settings-content .ui-card--solid.content-section,
  .settings-page .settings-content .glass-modal-container .ui-card--solid.timeline-card,
  .glass-modal-container .settings-page .settings-content .ui-card--solid.timeline-card,
  .settings-page .settings-content .glass-modal-container .ui-card--solid.entry-section,
  .glass-modal-container .settings-page .settings-content .ui-card--solid.entry-section,
  .settings-page .settings-content .glass-modal-container .ui-card--solid.attachments,
  .glass-modal-container .settings-page .settings-content .ui-card--solid.attachments,
  .settings-page .settings-content .glass-modal-container .ui-card--solid.summary-card,
  .glass-modal-container .settings-page .settings-content .ui-card--solid.summary-card,
  .settings-page .settings-content .glass-modal-container .ui-card--solid.metric-card,
  .glass-modal-container .settings-page .settings-content .ui-card--solid.metric-card,
  .settings-page .settings-content .glass-modal-container .ui-card--solid.review-card,
  .glass-modal-container .settings-page .settings-content .ui-card--solid.review-card,
  .settings-page .settings-content .glass-modal-container .ui-card--solid.config-section,
  .glass-modal-container .settings-page .settings-content .ui-card--solid.config-section,
  .settings-page .settings-content .glass-modal-container .ui-card--solid.panel-card,
  .glass-modal-container .settings-page .settings-content .ui-card--solid.panel-card {
    padding: 20px 18px;
    border-radius: 22px;
  }
  .settings-page .sidebar-nav-item {
    min-height: 42px;
    padding: 8px 10px;
    border-radius: 14px;
  }
  .settings-page .glass-form-grid,
  .settings-page .glass-form-grid.three-col,
  .settings-page .glass-form-grid.four-col {
    grid-template-columns: 1fr;
  }
  .settings-page .form-group.row {
    flex-direction: column;
    align-items: flex-start;
  }
  .settings-page .form-group.row .col-sm-6 {
    flex: 0 0 100%;
    max-width: 100%;
    width: 100%;
  }
  .settings-page .test-flow-section {
    flex-direction: column;
    align-items: flex-start;
  }
  .settings-page .step-header {
    flex-wrap: wrap;
  }
  .settings-page .role-badge,
  .settings-page .inactive-badge {
    margin-left: 0;
  }
  .settings-page .step-header .toggle-switch.small {
    margin-left: auto;
  }
  .settings-page .expense-settings-tab .setting-row {
    grid-template-columns: minmax(0, 1fr);
    align-items: flex-start;
  }
  .settings-page .expense-settings-tab .setting-row .toggle-switch,
  .settings-page .expense-settings-tab .setting-row .limit-input {
    width: 100%;
    max-width: 100%;
  }
  .settings-page .expense-settings-tab .add-category-row {
    grid-template-columns: minmax(0, 1fr);
  }
  .settings-page .expense-settings-tab .category-chips {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* ==========================================================================
   COMMUNICATION SETTINGS — Channel Infrastructure & Routing
   ==========================================================================
   Scoped visuals for /console/settings/communication page.
   ========================================================================== */
/* Health Dot — green/amber/red/grey */
.settings-page .comm-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
  background: rgba(255, 255, 255, 0.25);
}

.settings-page .comm-dot--healthy {
  background: #4ade80;
  box-shadow: 0 0 6px rgba(74, 222, 128, 0.4);
}

.settings-page .comm-dot--degraded {
  background: #fbbf24;
  box-shadow: 0 0 6px rgba(251, 191, 36, 0.4);
}

.settings-page .comm-dot--down {
  background: #f87171;
  box-shadow: 0 0 6px rgba(248, 113, 113, 0.4);
}

.settings-page .comm-dot--unknown {
  background: rgba(255, 255, 255, 0.3);
}

/* Channel List */
.settings-page .comm-channel-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 16px;
}

.settings-page .comm-channel-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.05);
  transition: background 0.15s ease;
}

.settings-page .comm-channel-row:hover {
  background: rgba(255, 255, 255, 0.05);
}

.settings-page .comm-channel-row__info {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.settings-page .comm-channel-row__name {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.9);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.settings-page .comm-channel-row__meta {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.4);
  flex-shrink: 0;
}

/* Health Badge */
.settings-page .comm-health-badge {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.03em;
  padding: 3px 10px;
  border-radius: 6px;
  flex-shrink: 0;
}

.settings-page .comm-health-badge--healthy {
  color: #4ade80;
  background: rgba(74, 222, 128, 0.1);
  border: 1px solid rgba(74, 222, 128, 0.2);
}

.settings-page .comm-health-badge--degraded {
  color: #fbbf24;
  background: rgba(251, 191, 36, 0.1);
  border: 1px solid rgba(251, 191, 36, 0.2);
}

.settings-page .comm-health-badge--down {
  color: #f87171;
  background: rgba(248, 113, 113, 0.1);
  border: 1px solid rgba(248, 113, 113, 0.2);
}

.settings-page .comm-health-badge--unknown {
  color: rgba(255, 255, 255, 0.5);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

/* Empty State */
.settings-page .comm-empty {
  text-align: center;
  padding: 32px 16px;
}

.settings-page .comm-empty__icon {
  font-size: 48px;
  width: 48px;
  height: 48px;
  color: rgba(255, 255, 255, 0.2);
  margin-bottom: 16px;
}

.settings-page .comm-empty__title {
  font-size: 16px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
  margin: 0 0 8px 0;
}

.settings-page .comm-empty__steps {
  text-align: left;
  display: inline-block;
  margin: 0 auto 20px;
  padding-left: 20px;
  color: rgba(255, 255, 255, 0.55);
  font-size: 13px;
  line-height: 2;
}

/* Auto-Config (single channel state) */
.settings-page .comm-auto-config {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 12px;
}

.settings-page .comm-route-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.05);
}

.settings-page .comm-route-row__label {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.6);
  min-width: 130px;
}

.settings-page .comm-route-row__value {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.9);
}

.settings-page .comm-route-row__badge {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #4ade80;
  background: rgba(74, 222, 128, 0.1);
  border: 1px solid rgba(74, 222, 128, 0.2);
  padding: 2px 8px;
  border-radius: 4px;
}

/* Auto-config note */
.settings-page .comm-auto-note {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  padding: 10px 14px;
  border-radius: 8px;
  background: rgba(74, 222, 128, 0.06);
  border: 1px solid rgba(74, 222, 128, 0.15);
  font-size: 12px;
  color: rgba(74, 222, 128, 0.8);
}

.settings-page .comm-auto-note mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: #4ade80;
}

/* Warning Banner (no active channels) */
.settings-page .comm-warning-banner {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-radius: 10px;
  background: rgba(251, 191, 36, 0.08);
  border: 1px solid rgba(251, 191, 36, 0.2);
  font-size: 13px;
  color: rgba(251, 191, 36, 0.9);
}

.settings-page .comm-warning-banner mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: #fbbf24;
  flex-shrink: 0;
}

/* Dropdown Option Dot (inside mat-option) */
.settings-page .comm-option-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  margin-right: 6px;
  vertical-align: middle;
  background: rgba(255, 255, 255, 0.25);
}

/* Field Warning */
.settings-page .field-warning {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
  font-size: 11px;
  color: #fbbf24;
}

.settings-page .field-warning mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: #fbbf24;
}

/* Communication grid — 2 columns with third spanning full width */
.settings-page .communication-grid {
  grid-template-columns: repeat(2, 1fr);
}

/* ==========================================================================
   STOCK STATUS RULES TAB
   ========================================================================== */
.settings-page .stock-rules-description {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.6;
  margin: 0 0 20px 0;
}

/* Rule Section — each rule category block */
.settings-page .rule-section {
  padding: 16px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.settings-page .rule-section:last-of-type {
  border-bottom: none;
}

/* Rule Header — title + tooltip row */
.settings-page .rule-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.settings-page .rule-header .settings-subtitle {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.92);
  margin: 0;
}

/* Status indicator dots */
.settings-page .status-indicator {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.settings-page .status-indicator.critical {
  background: #ef4444;
  box-shadow: 0 0 6px rgba(239, 68, 68, 0.5);
}

.settings-page .status-indicator.adequate {
  background: #fbbf24;
  box-shadow: 0 0 6px rgba(251, 191, 36, 0.5);
}

.settings-page .status-indicator.dead {
  background: rgba(255, 255, 255, 0.35);
  box-shadow: 0 0 6px rgba(255, 255, 255, 0.15);
}

.settings-page .status-indicator.out-of-stock {
  background: #f97316;
  box-shadow: 0 0 6px rgba(249, 115, 22, 0.5);
}

/* Rule Tooltip — info icon beside header */
.settings-page .rule-tooltip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: help;
  color: rgba(255, 255, 255, 0.35);
  transition: color 0.2s;
  flex-shrink: 0;
}

.settings-page .rule-tooltip:hover {
  color: rgba(255, 180, 130, 0.8);
}

.settings-page .rule-tooltip mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

/* Inline tooltip — appears next to a field */
.settings-page .inline-tooltip {
  margin-top: 4px;
}

/* Rule Helper — description text below header */
.settings-page .rule-helper {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.45);
  line-height: 1.5;
  margin: 0 0 12px 0;
}

/* Example value — hint below input fields */
.settings-page .example-value {
  display: block;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.35);
  margin-top: 4px;
  font-style: italic;
}

/* Toggle field within stock rules */
.settings-page .toggle-field {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.settings-page .toggle-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 10px;
}

.settings-page .toggle-label {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.settings-page .toggle-title {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.85);
}

.settings-page .toggle-hint {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.4);
}

/* Mat-hint spacing fix inside stock rules */
.settings-page .rule-section .mat-mdc-form-field-subscript-wrapper {
  padding: 0;
}

.settings-page .rule-section .mat-mdc-form-field-hint-wrapper {
  padding: 0;
}

.settings-page .rule-section .mat-mdc-form-field-bottom-align::before {
  height: 4px;
}

/* ==========================================================================
   WALLET ENGINE v2 — Programs, Policies, Modals
   ========================================================================== */
/* Read-only notice (Branch mode) */
.settings-page .wallet-readonly-notice {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 20px;
  border-radius: 12px;
  background: rgba(59, 130, 246, 0.06);
  border: 1px solid rgba(59, 130, 246, 0.18);
}

.settings-page .wallet-readonly-notice .notice-icon {
  font-size: 28px;
  width: 28px;
  height: 28px;
  color: rgba(96, 165, 250, 0.8);
  flex-shrink: 0;
  margin-top: 2px;
}

.settings-page .wallet-readonly-notice .notice-content h4 {
  font-size: 15px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.92);
  margin: 0;
}

/* Status badge */
.settings-page .status-badge {
  display: inline-flex;
  padding: 3px 10px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.settings-page .status-badge.active {
  color: #4ade80;
  background: rgba(74, 222, 128, 0.1);
  border-color: rgba(74, 222, 128, 0.2);
}

/* Event type badge */
.settings-page .event-badge {
  display: inline-flex;
  padding: 3px 8px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 180, 130, 0.9);
  background: rgba(255, 173, 117, 0.1);
  border: 1px solid rgba(255, 173, 117, 0.2);
}

/* Modal Overlay */
.settings-page .wallet-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(6px);
  animation: fadeIn 0.18s ease;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/* Modal Card */
.settings-page .wallet-modal {
  width: min(520px, 92vw);
  max-height: 85vh;
  overflow-y: auto;
  border-radius: 16px;
  background: linear-gradient(145deg, rgba(30, 30, 38, 0.98), rgba(22, 22, 30, 0.98));
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 25px 50px rgba(0, 0, 0, 0.5);
  padding: 24px;
  animation: slideUp 0.22s ease;
}

@keyframes slideUp {
  from {
    transform: translateY(12px);
    opacity: 0.6;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
.settings-page .wallet-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}

.settings-page .wallet-modal-header h3 {
  font-size: 17px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.92);
  margin: 0;
}

/* Responsive modal */
@media (max-width: 768px) {
  .settings-page .wallet-modal {
    width: 96vw;
    padding: 16px;
  }
}
/* Wallet Policy Status Badge — green dot = active, grey dot = disabled */
.settings-page .wallet-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.5);
  transition: all 0.2s ease;
}

.settings-page .wallet-status-badge:hover {
  border-color: rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.07);
}

.settings-page .wallet-status-badge .wallet-status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.3);
  transition: all 0.2s ease;
}

.settings-page .wallet-status-badge.active {
  color: #4ade80;
  border-color: rgba(74, 222, 128, 0.25);
  background: rgba(74, 222, 128, 0.08);
}

.settings-page .wallet-status-badge.active .wallet-status-dot {
  background: #4ade80;
  box-shadow: 0 0 6px rgba(74, 222, 128, 0.5);
}

/* ==========================================================================
   PEOPLE POLICIES HUB — Attendance, Shift, Payroll Impact
   Enterprise-grade collapsible policy section cards
   ========================================================================== */
/* Each collapsible policy card — overrides ui-card padding for custom header */
.settings-page .policy-section-card.ui-card.ui-card--solid, .settings-page .glass-modal-container .policy-section-card.ui-card--solid.glass-card, .glass-modal-container .settings-page .policy-section-card.ui-card--solid.glass-card,
.settings-page .glass-modal-container .policy-section-card.ui-card--solid.glass-panel,
.glass-modal-container .settings-page .policy-section-card.ui-card--solid.glass-panel,
.settings-page .glass-modal-container .policy-section-card.ui-card--solid.fd-glass,
.glass-modal-container .settings-page .policy-section-card.ui-card--solid.fd-glass,
.settings-page .glass-modal-container .policy-section-card.ui-card--solid.section-card,
.glass-modal-container .settings-page .policy-section-card.ui-card--solid.section-card,
.settings-page .glass-modal-container .policy-section-card.ui-card--solid.content-section,
.glass-modal-container .settings-page .policy-section-card.ui-card--solid.content-section,
.settings-page .glass-modal-container .policy-section-card.ui-card--solid.timeline-card,
.glass-modal-container .settings-page .policy-section-card.ui-card--solid.timeline-card,
.settings-page .glass-modal-container .policy-section-card.ui-card--solid.entry-section,
.glass-modal-container .settings-page .policy-section-card.ui-card--solid.entry-section,
.settings-page .glass-modal-container .policy-section-card.ui-card--solid.attachments,
.glass-modal-container .settings-page .policy-section-card.ui-card--solid.attachments,
.settings-page .glass-modal-container .policy-section-card.ui-card--solid.summary-card,
.glass-modal-container .settings-page .policy-section-card.ui-card--solid.summary-card,
.settings-page .glass-modal-container .policy-section-card.ui-card--solid.metric-card,
.glass-modal-container .settings-page .policy-section-card.ui-card--solid.metric-card,
.settings-page .glass-modal-container .policy-section-card.ui-card--solid.review-card,
.glass-modal-container .settings-page .policy-section-card.ui-card--solid.review-card,
.settings-page .glass-modal-container .policy-section-card.ui-card--solid.config-section,
.glass-modal-container .settings-page .policy-section-card.ui-card--solid.config-section,
.settings-page .glass-modal-container .policy-section-card.ui-card--solid.panel-card,
.glass-modal-container .settings-page .policy-section-card.ui-card--solid.panel-card {
  padding: 0;
  overflow: hidden;
}

/* Clickable section header */
.settings-page .policy-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 24px;
  cursor: pointer;
  border-radius: 16px;
  transition: background 0.18s ease;
  -webkit-user-select: none;
          user-select: none;
}

.settings-page .policy-section-header:hover {
  background: rgba(255, 255, 255, 0.03);
}

.settings-page .policy-section-header__left {
  display: flex;
  align-items: center;
  gap: 16px;
  flex: 1;
  min-width: 0;
}

/* Section icon circle */
.settings-page .policy-section-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: rgba(255, 173, 117, 0.1);
  border: 1px solid rgba(255, 173, 117, 0.15);
  flex-shrink: 0;
}

.settings-page .policy-section-icon mat-icon {
  font-size: 22px;
  width: 22px;
  height: 22px;
  color: rgba(255, 173, 117, 0.85);
}

/* OT icon — changes color when active */
.settings-page .policy-section-icon--ot {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.08);
}

.settings-page .policy-section-icon--ot mat-icon {
  color: rgba(255, 255, 255, 0.35);
}

.settings-page .policy-section-icon--ot.active {
  background: rgba(255, 173, 117, 0.12);
  border-color: rgba(255, 173, 117, 0.2);
}

.settings-page .policy-section-icon--ot.active mat-icon {
  color: rgba(255, 173, 117, 0.9);
}

/* Title + meta text */
.settings-page .policy-section-title {
  display: block;
  font-size: 15px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.92);
  line-height: 1.2;
}

.settings-page .policy-section-meta {
  display: block;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.4);
  margin-top: 3px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Active/Disabled status chip inside the section header */
.settings-page .policy-status-chip {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.35);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  flex-shrink: 0;
  margin-left: 12px;
  transition: all 0.25s ease;
}

.settings-page .policy-status-chip.active {
  color: #4ade80;
  background: rgba(74, 222, 128, 0.1);
  border-color: rgba(74, 222, 128, 0.22);
}

/* Animated chevron */
.settings-page .policy-chevron {
  font-size: 22px;
  width: 22px;
  height: 22px;
  color: rgba(255, 255, 255, 0.35);
  flex-shrink: 0;
  transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.settings-page .policy-chevron.rotated {
  transform: rotate(-90deg);
}

/* Collapsible content body */
.settings-page .policy-section-body {
  padding: 0 24px 22px;
  overflow: hidden;
  max-height: 2000px;
  opacity: 1;
  transition: max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.25s ease, padding 0.25s ease;
}

.settings-page .policy-section-body.collapsed {
  max-height: 0;
  opacity: 0;
  padding-bottom: 0;
}

/* Separator line between header and body */
.settings-page .policy-section-card .policy-section-body:not(.collapsed) {
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  padding-top: 20px;
}

/* Muted setting rows — for Coming Soon items */
.settings-page .setting-row--muted {
  opacity: 0.45;
  pointer-events: none;
}

/* "Coming Soon" pill badge */
.settings-page .coming-soon-chip {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.4);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  white-space: nowrap;
  flex-shrink: 0;
}

/* ==========================================================================
   PAYROLL POLICIES — Coming Soon Page
   ========================================================================== */
.settings-page .policy-coming-soon-page {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 48px 24px 40px;
}

.settings-page .policy-coming-soon__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 24px;
  background: rgba(255, 173, 117, 0.08);
  border: 1px solid rgba(255, 173, 117, 0.18);
  margin-bottom: 24px;
}

.settings-page .policy-coming-soon__icon mat-icon {
  font-size: 36px;
  width: 36px;
  height: 36px;
  color: rgba(255, 173, 117, 0.75);
}

.settings-page .policy-coming-soon__title {
  font-size: 26px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.9);
  margin: 0 0 12px 0;
}

.settings-page .policy-coming-soon__subtitle {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.45);
  line-height: 1.7;
  max-width: 520px;
  margin: 0 0 40px 0;
}

.settings-page .policy-coming-soon__modules {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  width: 100%;
  max-width: 700px;
}

/* Individual future module card */
.settings-page .policy-module-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  padding: 20px;
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 14px;
  text-align: left;
  transition: background 0.2s ease;
}

.settings-page .policy-module-card:hover {
  background: rgba(255, 255, 255, 0.04);
}

.settings-page .policy-module-card mat-icon {
  font-size: 28px;
  width: 28px;
  height: 28px;
  color: rgba(255, 173, 117, 0.5);
  margin-bottom: 4px;
}

.settings-page .policy-module-card__title {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.75);
}

.settings-page .policy-module-card__desc {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.35);
  line-height: 1.5;
}

@media (max-width: 768px) {
  .settings-page .policy-coming-soon__modules {
    grid-template-columns: 1fr;
  }
  .settings-page .policy-section-meta {
    display: none;
  }
  .settings-page .policy-section-header {
    padding: 16px 18px;
  }
  .settings-page .policy-section-body {
    padding: 0 18px 18px;
  }
  .settings-page .policy-section-body:not(.collapsed) {
    padding-top: 16px;
  }
}
/* ==========================================================================
   GSTIN VERIFICATION & AUTOFILL (P4)
   ========================================================================== */
/* Verify button in the mat-form-field suffix */
.settings-page .gstin-verify-btn {
  color: #ff8c50 !important;
  transition: color 0.2s ease;
}

.settings-page .gstin-verify-btn:hover {
  color: #ffb48c !important;
}

/* Verified check icon suffix */
.settings-page .gstin-verified-icon {
  color: #4ade80 !important;
  font-size: 20px;
  width: 20px;
  height: 20px;
}

/* Hint colors */
.settings-page .gstin-verified-hint {
  color: #4ade80 !important;
}

.settings-page .gstin-error-hint {
  color: #f87171 !important;
}

/* Confirmation Modal Overlay */
.gstin-confirm-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1200;
  animation: gstin-overlay-in 0.2s ease;
}

@keyframes gstin-overlay-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/* Modal Card */
.gstin-confirm-modal {
  background: linear-gradient(180deg, #1e1e2e, #181825);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 24px;
  padding: 28px;
  width: 520px;
  max-width: 92vw;
  max-height: 80vh;
  overflow-y: auto;
  box-shadow: 0 32px 64px rgba(0, 0, 0, 0.5);
  animation: gstin-modal-in 0.25s ease;
}

@keyframes gstin-modal-in {
  from {
    opacity: 0;
    transform: translateY(16px) scale(0.97);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
/* Modal Header */
.gstin-confirm-header {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 22px;
}

.gstin-confirm-header h3 {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.95);
}

.gstin-confirm-icon {
  font-size: 36px !important;
  width: 36px !important;
  height: 36px !important;
}

.gstin-confirm-icon.gstin-status--active {
  color: #4ade80;
}

.gstin-confirm-icon.gstin-status--inactive {
  color: #fbbf24;
}

/* Status Badge */
.gstin-status-badge {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 6px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.gstin-status-badge.active {
  background: rgba(74, 222, 128, 0.15);
  color: #4ade80;
}

.gstin-status-badge.inactive {
  background: rgba(251, 191, 36, 0.15);
  color: #fbbf24;
}

/* Modal Body — Field Rows */
.gstin-confirm-body {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-bottom: 18px;
}

.gstin-field-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.gstin-field-row:last-child {
  border-bottom: none;
}

.gstin-label {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.5);
  flex-shrink: 0;
  width: 110px;
}

.gstin-value {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.9);
  text-align: right;
  flex: 1;
  word-break: break-word;
}

.gstin-value.mono {
  font-family: "SF Mono", "Fira Code", monospace;
  letter-spacing: 0.04em;
}

/* Warning callout */
.gstin-confirm-warning {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  background: rgba(251, 191, 36, 0.1);
  border: 1px solid rgba(251, 191, 36, 0.2);
  border-radius: 12px;
  margin-bottom: 16px;
}

.gstin-confirm-warning mat-icon {
  color: #fbbf24;
  font-size: 20px;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.gstin-confirm-warning span {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.75);
}

/* Prompt text */
.gstin-confirm-prompt {
  font-weight: 600;
  font-size: 15px;
  color: rgba(255, 255, 255, 0.9);
  margin: 8px 0 4px;
}

.gstin-confirm-hint {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.45);
  margin: 0 0 18px;
}

/* Action buttons */
.gstin-confirm-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

/* ── Inner layout container ────────────────────────────────────────
   Replaces the former .settings-page .settings-content scope.
   Provides the standard flex-column layout for stacking cards.
─────────────────────────────────────────────────────────────────── */
.finance-setup-page > .settings-content {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-7);
  min-width: 0;
  padding-bottom: 88px;
}

.finance-setup-page .header-card__top {
  align-items: flex-start;
}

.finance-setup-page .header-card__title-block {
  flex: 1 1 auto;
  min-width: 0;
}

.finance-setup-page .header-card__stats {
  align-self: flex-start;
}

.finance-setup-page .header-card__bottom {
  justify-content: flex-end;
}

.finance-setup-page .header-card__actions {
  width: 100%;
  justify-content: flex-end;
}

.finance-setup-page__loading-panel {
  min-height: 260px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.finance-setup-page__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.finance-setup-page__panel {
  display: flex;
  flex-direction: column;
  gap: 18px;
  min-height: 100%;
}

.finance-setup-page__panel--wide {
  grid-column: 1/-1;
}

.finance-setup-page__panel--wide-2 {
  grid-column: span 2;
}

.finance-setup-page__panel-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.finance-setup-page__panel-top .glass-section-title {
  flex: 1 1 auto;
}

.finance-setup-page__panel-summary {
  margin: 0;
  font-size: 14px;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.68);
}

.finance-setup-page__facts {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.finance-setup-page__panel-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: auto;
}

.finance-setup-page__panel-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.finance-setup-page__panel-chip mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.finance-setup-page__status-layout {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.finance-setup-page__checklist {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.finance-setup-page__checklist-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 18px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.035);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.finance-setup-page__checklist-item.is-complete {
  background: linear-gradient(155deg, rgba(96, 187, 132, 0.08), rgba(255, 255, 255, 0.025));
  border-color: rgba(96, 187, 132, 0.22);
}

.finance-setup-page__checklist-item mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: rgba(255, 255, 255, 0.42);
  flex-shrink: 0;
}

.finance-setup-page__checklist-item.is-complete mat-icon {
  color: rgba(120, 235, 160, 0.92);
}

.finance-setup-page__checklist-copy {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.finance-setup-page__checklist-title {
  font-size: 14px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.92);
}

.finance-setup-page__checklist-detail {
  font-size: 12.5px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.62);
}

.finance-setup-page__modal-layer {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.finance-setup-page__modal {
  width: min(560px, 100vw - 32px);
}

.finance-setup-page__modal-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

@media (max-width: 1280px) {
  .finance-setup-page__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .finance-setup-page__panel--wide-2 {
    grid-column: 1/-1;
  }
  .finance-setup-page__checklist {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 900px) {
  .finance-setup-page .header-card__actions {
    justify-content: flex-start;
    flex-wrap: wrap;
  }
  .finance-setup-page__grid {
    grid-template-columns: 1fr;
  }
  .finance-setup-page__facts {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 640px) {
  .finance-setup-page__panel-top {
    flex-direction: column;
    align-items: flex-start;
  }
  .finance-setup-page__modal-layer {
    padding: 16px;
  }
}
.procurement-settings__stat-chip {
  margin-top: 8px;
  align-self: flex-start;
}

.procurement-settings__policy-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 12px;
  margin-top: 16px;
}

.procurement-settings__policy-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 16px;
  border: 1.5px solid var(--ui-border, rgba(255, 255, 255, 0.08));
  border-radius: 10px;
  background: var(--glass-surface-2, rgba(255, 255, 255, 0.04));
  cursor: pointer;
  text-align: left;
  transition: border-color 0.15s, background 0.15s;
}
.procurement-settings__policy-card:hover {
  border-color: var(--ui-accent, rgba(255, 255, 255, 0.2));
  background: var(--glass-surface-3, rgba(255, 255, 255, 0.07));
}
.procurement-settings__policy-card.is-selected {
  border-color: var(--color-success, #4caf50);
  background: rgba(76, 175, 80, 0.08);
}

.procurement-settings__policy-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.procurement-settings__policy-icon {
  font-size: 22px;
  width: 22px;
  height: 22px;
  color: var(--ui-text-secondary, rgba(255, 255, 255, 0.5));
}
.is-selected .procurement-settings__policy-icon {
  color: var(--color-success, #4caf50);
}

.procurement-settings__policy-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--ui-text-primary, rgba(255, 255, 255, 0.9));
}

.procurement-settings__policy-desc {
  font-size: 12px;
  line-height: 1.5;
  color: var(--ui-text-secondary, rgba(255, 255, 255, 0.5));
}

/* ==========================================================================
   UI PAGE VARIANT - ORGANIZATION PAGE (Hybrid Model)
   ==========================================================================

   Covers: Departments & Roles tab + Permissions tab
   Prefix: org-*

   REUSES from existing contracts:
   - ui-tabs, ui-tab from controls/tabs.scss
   - ui-drawer from layout/drawer.scss
   - ui-chip from controls/chips.scss
   - ui-card from layout/card.scss

   ========================================================================== */
/* ==========================================================================
   PAGE SHELL
   ========================================================================== */
.org-shell {
  position: relative;
  min-height: calc(100vh - 60px);
}

/* Allow role search autocomplete dropdown to overflow the header */
.org-shell .stats-header {
  overflow: visible;
  position: relative;
  z-index: 10;
}

.org-shell .stats-header__filters {
  overflow: visible;
}

/* Strip outer page shell when DepartmentsRoles is embedded */
.org-embedded.ui-page {
  padding: 0;
  min-height: auto;
}

.org-embedded .glass-page-shell {
  padding: 0;
  min-height: auto;
}

.org-embedded .glass-page-glow {
  display: none;
}

.org-tab-shell {
  min-height: auto;
  padding-top: var(--ui-space-6);
}

.org-tab-content {
  max-width: 1280px;
  gap: 0;
}

.department-skeleton-host {
  display: contents;
}

.department-card-horizontal--skeleton {
  cursor: default;
  pointer-events: none;
}

.department-card-horizontal--skeleton::before,
.department-card-horizontal--skeleton:hover::before {
  opacity: 0;
}

.department-card-horizontal--skeleton:hover {
  transform: none;
  border-color: rgba(255, 255, 255, 0.08);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.department-title--skeleton {
  margin-bottom: 4px;
}

.roles-count--skeleton {
  min-width: 82px;
}

.role-chip--skeleton {
  cursor: default;
}

.org-skeleton-title {
  width: 152px;
  height: 20px;
  border-radius: 10px;
}

.org-skeleton-lock {
  width: 18px;
  height: 18px;
  border-radius: 6px;
}

.org-skeleton-subtitle {
  width: 112px;
  height: 12px;
  border-radius: 999px;
}

.org-skeleton-pill {
  width: 100%;
  height: 10px;
  border-radius: 999px;
}

.org-skeleton-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.org-skeleton-count {
  width: 56px;
  height: 24px;
  border-radius: 12px;
}

.org-skeleton-count-label {
  width: 84px;
  height: 10px;
  border-radius: 999px;
  margin-left: auto;
}

.org-skeleton-role {
  width: 64px;
  height: 10px;
  border-radius: 999px;
}

.org-skeleton-chevron {
  width: 24px;
  height: 24px;
  border-radius: 10px;
}

/* ==========================================================================
   ROLE CHIP PERMISSION INDICATORS
   ========================================================================== */
.org-role-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: var(--ui-radius-full);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  cursor: pointer;
  transition: var(--ui-transition-base);
  white-space: nowrap;
}

.org-role-chip:hover {
  background: rgba(255, 255, 255, 0.09);
  border-color: rgba(255, 255, 255, 0.18);
  color: var(--ui-text-primary);
  transform: translateY(-1px);
}

.org-role-chip--active {
  background: rgba(255, 122, 61, 0.12);
  border-color: rgba(255, 122, 61, 0.3);
  color: #ff9966;
}

.org-perm-indicator {
  display: inline-flex;
  align-items: center;
  font-size: 14px;
  line-height: 1;
}

.org-perm-indicator--custom {
  color: #64b5f6;
}

.org-perm-indicator--highrisk {
  color: var(--ui-danger);
}

/* ==========================================================================
   ROLE INFO DRAWER (extends ui-drawer contract)
   ========================================================================== */
.org-drawer__backdrop {
  position: fixed;
  inset: 0;
  z-index: var(--z-drawer-backdrop);
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: var(--ui-blur-sm);
  -webkit-backdrop-filter: var(--ui-blur-sm);
  animation: ui-drawer-backdrop-in 0.2s ease-out;
}

.org-drawer__panel {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: var(--z-drawer-panel);
  width: 460px;
  max-width: 95vw;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: linear-gradient(145deg, rgba(30, 28, 26, 0.96), rgba(22, 20, 18, 0.98));
  backdrop-filter: blur(40px);
  -webkit-backdrop-filter: blur(40px);
  border-left: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: -8px 0 60px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.06);
  animation: org-drawer-in 0.32s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes org-drawer-in {
  from {
    opacity: 0;
    transform: translateX(100%);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.org-drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--ui-space-5) var(--ui-space-6);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  flex-shrink: 0;
}

.org-drawer__header-left {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.org-drawer__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 600;
  color: #ffb37a;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.org-drawer__eyebrow mat-icon,
.org-drawer__eyebrow .mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.org-drawer__title {
  margin: 0;
  font-size: 22px;
  font-weight: 700;
  color: var(--ui-text-primary);
  letter-spacing: -0.01em;
}

.org-drawer__close {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.org-drawer__close:hover {
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
}

.org-drawer__body {
  flex: 1;
  padding: var(--ui-space-6);
  overflow-y: auto;
}

.org-drawer__footer {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-5) var(--ui-space-6);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

/* Drawer summary sections */
.org-drawer-section {
  margin-bottom: var(--ui-space-6);
}

.org-drawer-section__title {
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.45);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin: 0 0 var(--ui-space-3);
}

.org-drawer-stat {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  font-size: var(--ui-text-sm);
}

.org-drawer-stat:last-child {
  border-bottom: none;
}

.org-drawer-stat__label {
  color: rgba(255, 255, 255, 0.6);
  display: flex;
  align-items: center;
  gap: 8px;
}

.org-drawer-stat__label mat-icon,
.org-drawer-stat__label .mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 255, 255, 0.35);
}

.org-drawer-stat__value {
  font-weight: 600;
  color: var(--ui-text-primary);
}

.org-drawer-stat__value--danger {
  color: var(--ui-danger);
}

.org-drawer-stat__value--warning {
  color: var(--ui-warning);
}

/* Domain pill list */
.org-domain-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: var(--ui-space-2);
}

.org-domain-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: var(--ui-radius-full);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.65);
}

.org-domain-pill mat-icon,
.org-domain-pill .mat-icon {
  font-size: 13px;
  width: 13px;
  height: 13px;
}

/* Manage permissions CTA */
.org-drawer__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 14px 24px;
  border-radius: var(--ui-radius-full);
  background: linear-gradient(130deg, #ff7043, #e94424);
  border: none;
  color: #fff;
  font-size: var(--ui-text-sm);
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 8px 24px rgba(233, 68, 36, 0.35);
}

.org-drawer__cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(233, 68, 36, 0.45);
}

.org-drawer__cta mat-icon,
.org-drawer__cta .mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
}

/* ==========================================================================
   PERMISSIONS TAB
   ========================================================================== */
.org-perm-tab {
  display: flex;
  flex-direction: column;
  gap: 0;
  height: calc(100vh - 220px);
  min-height: 500px;
  width: 100%;
  overflow: hidden;
}

/* Full-width mode (no sidebar) */
.org-perm-tab--full {
  flex-direction: column;
}

/* Compact selectors row (inline in header filters bar) */
.org-perm-selectors {
  display: flex;
  align-items: center;
  gap: var(--ui-space-4);
  flex-shrink: 0;
}

.org-perm-selector {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.org-perm-selector__label {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.45);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

.org-perm-selector__label mat-icon,
.org-perm-selector__label .mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.org-perm-selector__select {
  min-width: 180px;
  max-width: 260px;
  padding: 7px 12px;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.8);
  font-size: 12px;
  font-weight: 500;
  outline: none;
  appearance: auto;
  cursor: pointer;
  transition: all 0.2s ease;
}

.org-perm-selector__select:hover {
  border-color: rgba(255, 255, 255, 0.2);
}

.org-perm-selector__select:focus {
  border-color: #ff7a3d;
  color: #fff;
}

.org-perm-selector__select option {
  background: #1a1a2e;
  color: #fff;
}

/* Department group heading inside role dropdown menu */
.org-dropdown-dept-heading {
  padding: 8px 16px 4px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.35);
  pointer-events: none;
  margin-top: 4px;
}

.org-dropdown-dept-heading:first-child {
  margin-top: 0;
}

/* Editor fills remaining space */
.org-perm-editor {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.org-perm-editor > app-role-permissions-drawer {
  display: block;
  height: 100%;
}

/* Summary bar */
.org-perm-summary {
  display: flex;
  align-items: center;
  gap: var(--ui-space-6);
  padding: var(--ui-space-4) var(--ui-space-6);
  margin-bottom: var(--ui-space-4);
  border-radius: var(--ui-radius-xl);
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

/* Group wrapper to keep stats items clustered together in filter bar */
.org-perm-stats-group {
  display: flex;
  align-items: center;
  gap: 16px;
}

.org-perm-summary__item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: var(--ui-text-sm);
  color: rgba(255, 255, 255, 0.6);
}

.org-perm-summary__item strong {
  font-size: 18px;
  font-weight: 700;
  color: var(--ui-text-primary);
}

.org-perm-summary__item--danger strong {
  color: var(--ui-danger);
}

.org-perm-summary__divider {
  width: 1px;
  height: 28px;
  background: rgba(255, 255, 255, 0.08);
}

/* Left panel - role list */
.org-perm-left {
  width: 300px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  border-right: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.01);
}

.org-perm-left__header {
  padding: var(--ui-space-4) var(--ui-space-4);
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  flex-shrink: 0;
}

.org-perm-left__search {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  transition: border-color 0.2s ease;
}

.org-perm-left__search:focus-within {
  border-color: rgba(255, 122, 61, 0.35);
}

.org-perm-left__search mat-icon,
.org-perm-left__search .mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 255, 255, 0.35);
}

.org-perm-left__search input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
}

.org-perm-left__search input::placeholder {
  color: rgba(255, 255, 255, 0.3);
}

.org-perm-left__filter {
  margin-top: var(--ui-space-2);
}

.org-perm-left__filter select {
  width: 100%;
  padding: 8px 12px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  outline: none;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}

.org-perm-left__filter select option {
  background: #1a1a1a;
  color: #fff;
}

.org-perm-left__list {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  /* Allow wheel/touch scroll to bubble to page when the list hits top/bottom */
  overscroll-behavior: auto;
  -webkit-overflow-scrolling: touch;
  padding: var(--ui-space-2) 0;
}

.org-perm-left__dept-label {
  padding: var(--ui-space-2) var(--ui-space-4);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(255, 255, 255, 0.35);
  margin-top: var(--ui-space-2);
}

.org-perm-left__dept-label:first-child {
  margin-top: 0;
}

.org-perm-left__role {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) max-content max-content;
  align-items: center;
  column-gap: 10px;
  width: 100%;
  padding: 10px var(--ui-space-4);
  border: none;
  background: transparent;
  color: rgba(255, 255, 255, 0.7);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.15s ease;
  text-align: left;
}

.org-perm-left__role:hover {
  background: rgba(255, 255, 255, 0.04);
  color: var(--ui-text-primary);
}

.org-perm-left__role--active {
  background: rgba(255, 122, 61, 0.1);
  color: #ff9966;
  border-right: 3px solid #ff7a3d;
}

.org-perm-left__role mat-icon,
.org-perm-left__role .mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 255, 255, 0.3);
}

.org-perm-left__role--active mat-icon,
.org-perm-left__role--active .mat-icon {
  color: #ff9966;
}

.org-perm-left__perm-count {
  min-width: 34px;
  height: 24px;
  margin-left: 0;
  padding: 0 8px;
  border-radius: var(--ui-radius-full);
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  color: rgba(255, 255, 255, 0.58);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  justify-self: end;
}

.org-perm-left__role--active .org-perm-left__perm-count {
  border-color: rgba(255, 122, 61, 0.22);
  background: rgba(255, 122, 61, 0.12);
  color: #ff9966;
}

.org-perm-left__role-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.org-perm-left__risk-chip {
  justify-self: end;
  width: auto;
  text-align: right;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Right panel - editor */
.org-perm-right {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.org-perm-right__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1;
  gap: var(--ui-space-4);
  color: rgba(255, 255, 255, 0.45);
  text-align: center;
  padding: var(--ui-space-8);
}

.org-perm-right__empty mat-icon,
.org-perm-right__empty .mat-icon {
  font-size: 72px;
  width: 72px;
  height: 72px;
  opacity: 0.4;
}

.org-perm-right__empty p {
  margin: 0;
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-medium);
}

/* Override drawer styling when used inline */
.org-perm-right app-role-permissions-drawer {
  display: block;
  height: 100%;
}

.org-perm-right app-role-permissions-drawer .permissions-drawer {
  margin: 0;
  border: none;
  border-radius: 0;
  box-shadow: none;
}

/* Summary aside removed — replaced by floating stats card in permission-workspace.scss */
.org-perm-right app-role-summary .summary-panel {
  min-width: 0;
}

.org-perm-right app-role-summary .stats-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-3);
  align-items: stretch;
}

.org-perm-right app-role-summary .stat-card {
  min-width: 0 !important;
  width: 100%;
  max-width: 100%;
  flex: 1 1 auto !important;
  margin: 0;
  box-sizing: border-box;
}

.org-perm-right app-role-summary .stat-label {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  line-height: 1.2;
}

/* Hide the back-btn when embedded inside the Permissions tab split panel */
.org-perm-right app-role-permissions-drawer .perm-ws__back-btn,
.org-perm-editor app-role-permissions-drawer .perm-ws__back-btn {
  display: none !important;
}

/* Permission cards: keep risk badge in a fixed right-side slot */
.org-perm-right app-permission-row .permission-info {
  padding-right: 40px;
}

.org-perm-right app-permission-row .permission-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  align-items: center;
  column-gap: var(--ui-space-3);
}

.org-perm-right app-permission-row .permission-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.org-perm-right app-permission-row .risk-badge {
  width: auto;
  justify-content: center;
  justify-self: end;
}

@media (max-width: 1200px) {
  /* summary-aside removed — no width override needed */
}
@media (max-width: 760px) {
  .org-tab-shell {
    padding-top: var(--ui-space-4);
  }
}
/* ==========================================================================
   ROLE SEARCH AUTOCOMPLETE — follows glass-menu contract tokens
   ========================================================================== */
.role-search-autocomplete {
  position: relative;
  flex-shrink: 0;
}

.role-search-input-wrapper {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  min-width: 180px;
  max-width: 220px;
  border-radius: var(--ui-radius-full, 999px);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  transition: all 0.2s ease;
}

.role-search-input-wrapper:focus-within {
  border-color: rgba(255, 140, 80, 0.4);
  background: rgba(255, 255, 255, 0.08);
  box-shadow: 0 0 0 3px rgba(255, 140, 80, 0.08);
}

.role-search-icon {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
  color: rgba(255, 255, 255, 0.35);
  flex-shrink: 0;
}

.role-search-input {
  flex: 1;
  min-width: 0;
  background: transparent;
  border: none;
  outline: none;
  color: var(--ui-text-primary, rgba(255, 255, 255, 0.95));
  font-size: 12px;
  font-weight: 500;
  font-family: inherit;
}

.role-search-input::placeholder {
  color: rgba(255, 255, 255, 0.35);
}

.role-search-clear {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.5);
  cursor: pointer;
  transition: all 0.15s;
  flex-shrink: 0;
}

.role-search-clear:hover {
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
}

.role-search-clear mat-icon,
.role-search-clear .mat-icon {
  font-size: 12px !important;
  width: 12px !important;
  height: 12px !important;
}

/* Mat-option content layout for role search autocomplete */
.role-search-autocomplete .mat-mdc-option .mdc-list-item__primary-text {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
}

.role-search-item__name {
  font-weight: 600;
}

.role-search-item__dept {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.4);
}

/* ==========================================================================
   3-DOT MENU TRIGGERS (Department Cards + Role Chips)
   ========================================================================== */
.card-menu-trigger,
.role-chip-menu-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: none;
  border-radius: var(--ui-radius-sm);
  background: transparent;
  color: rgba(255, 255, 255, 0.35);
  cursor: pointer;
  transition: var(--ui-transition-base);
  flex-shrink: 0;
}

.card-menu-trigger {
  width: 32px;
  height: 32px;
}

.card-menu-trigger:hover {
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.8);
}

.card-menu-trigger mat-icon,
.card-menu-trigger .mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
}

.role-chip-menu-trigger {
  width: 20px;
  height: 20px;
  opacity: 0;
  transition: opacity 0.15s ease, background 0.15s ease;
}

.role-chip-wrapper:hover .role-chip-menu-trigger {
  opacity: 1;
}

.role-chip-menu-trigger:hover {
  background: rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.8);
}

.role-chip-menu-trigger mat-icon,
.role-chip-menu-trigger .mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

/* Role chip + menu trigger wrapper */
.role-chip-wrapper {
  display: inline-flex;
  align-items: center;
  gap: 2px;
}

/* Danger menu items (Archive / Delete) */
.menu-item-danger {
  color: var(--ui-danger) !important;
}

.menu-item-danger mat-icon,
.menu-item-danger .mat-icon {
  color: var(--ui-danger) !important;
}

/* ==========================================================================
   STATUS TOGGLE (Active / Archived)
   ========================================================================== */
.org-status-toggle {
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 2px;
  border-radius: var(--ui-radius-full);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.ui-pill-tab {
  padding: 6px 16px;
  border: none;
  border-radius: var(--ui-radius-full);
  background: transparent;
  color: rgba(255, 255, 255, 0.5);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  cursor: pointer;
  transition: var(--ui-transition-base);
  white-space: nowrap;
}

.ui-pill-tab:hover {
  color: rgba(255, 255, 255, 0.8);
}

.ui-pill-tab--active {
  background: rgba(255, 122, 61, 0.15);
  color: #ff9966;
  font-weight: var(--ui-font-semibold);
}

/* ==========================================================================
   CORPORATE GROUP MODE EMPTY STATE
   ========================================================================== */
.corporate-empty-state {
  padding: 60px 40px !important;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.01)) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 24px !important;
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.1) !important;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  max-width: 800px;
  margin: 40px auto !important;
}
.corporate-empty-state .empty-visual.corporate-glow {
  background: radial-gradient(circle, rgba(255, 122, 61, 0.25) 0%, rgba(255, 122, 61, 0) 70%) !important;
  border-radius: 50%;
  padding: 24px;
  margin-bottom: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.corporate-empty-state .empty-visual.corporate-glow mat-icon {
  font-size: 64px;
  width: 64px;
  height: 64px;
  color: #ff9966 !important;
  filter: drop-shadow(0 0 12px rgba(255, 122, 61, 0.6));
}
.corporate-empty-state h3 {
  font-size: 22px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 12px;
  letter-spacing: -0.02em;
}
.corporate-empty-state .empty-desc {
  font-size: 14px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.6);
  max-width: 580px;
  margin: 0 auto 30px;
}
.corporate-empty-state .branch-selector-shortcut {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: 24px;
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
}
.corporate-empty-state .branch-selector-shortcut .shortcut-label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.45);
  margin-bottom: 16px;
}
.corporate-empty-state .branch-selector-shortcut .branch-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}
.corporate-empty-state .branch-selector-shortcut .branch-shortcut-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  color: rgba(255, 255, 255, 0.85);
  font-size: var(--ui-text-sm);
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.corporate-empty-state .branch-selector-shortcut .branch-shortcut-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: #ff9966;
  margin-right: 4px;
}
.corporate-empty-state .branch-selector-shortcut .branch-shortcut-btn .branch-name {
  font-weight: 600;
}
.corporate-empty-state .branch-selector-shortcut .branch-shortcut-btn .branch-city {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.45);
  margin-left: 4px;
}
.corporate-empty-state .branch-selector-shortcut .branch-shortcut-btn:hover:not(:disabled) {
  background: rgba(255, 122, 61, 0.12);
  border-color: rgba(255, 122, 61, 0.35);
  color: #ff9966;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(255, 122, 61, 0.15);
}
.corporate-empty-state .branch-selector-shortcut .branch-shortcut-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.corporate-empty-state .switching-loader {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 20px;
  font-size: var(--ui-text-sm);
  color: rgba(255, 255, 255, 0.5);
}
.corporate-empty-state .switching-loader mat-spinner {
  margin: 0;
}

/* ==========================================================================
   UI PAGE VARIANT — PERMISSION WORKSPACE (Full-Width Layout)
   ==========================================================================

   Covers: Role permission editor (drawer component, domain sections, rows)
   Prefix: perm-ws-*

   REUSES from existing contracts:
   - tokens.scss for --ui-* design tokens
   - layout/drawer.scss for glass-drawer baseline

   FEATURES:
   - Full-width permission grid (no sidebar summary)
   - Compact single-row toolbar (~64px)
   - Floating stats card (sticky top-right)
   - Dense mode toggle (.perm-ws--dense)

   ========================================================================== */
/* ==========================================================================
   WORKSPACE SHELL
   ========================================================================== */
.perm-ws {
  display: flex;
  flex-direction: column;
  height: 100%;
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
  border-radius: 28px;
  overflow: hidden;
  margin: 24px;
  position: relative;
}

.perm-ws::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.01));
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-radius: inherit;
  z-index: 0;
  pointer-events: none;
}

.perm-ws > * {
  position: relative;
  z-index: 1;
}

/* Inline embed: strip chrome when inside org-perm-right or org-perm-editor */
.org-perm-right .perm-ws,
.org-perm-editor .perm-ws {
  margin: 0;
  border: none;
  border-radius: 0;
  box-shadow: none;
}

.org-perm-editor .perm-ws::before {
  display: none;
}

/* Hide back button when embedded */
.org-perm-right .perm-ws__back-btn {
  display: none;
}

/* ==========================================================================
   COMPACT TOOLBAR (~64px single row)
   ==========================================================================*/
.perm-ws__toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 64px;
  padding: 10px 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.01));
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  flex-shrink: 0;
  flex-wrap: wrap;
  overflow: visible;
  position: relative;
  z-index: 10;
  border-radius: var(--ui-radius-xl);
  margin: 4px 8px 0;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

/* Back button */
.perm-ws__back-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.7);
  cursor: pointer;
  transition: all 0.2s ease;
  flex-shrink: 0;
}

.perm-ws__back-btn:hover {
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
}

.perm-ws__back-btn mat-icon,
.perm-ws__back-btn .mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
}

/* Role identity cluster */
.perm-ws__role-info {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  margin-right: 4px;
}

.perm-ws__role-name {
  font-size: 16px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.95);
  letter-spacing: -0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 200px;
}

.perm-ws__dept-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  background: rgba(255, 153, 102, 0.12);
  border: 1px solid rgba(255, 153, 102, 0.2);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  color: #ff9966;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

.perm-ws__dept-badge mat-icon,
.perm-ws__dept-badge .mat-icon {
  font-size: 13px;
  width: 13px;
  height: 13px;
}

/* Toolbar divider */
.perm-ws__divider {
  width: 1px;
  height: 28px;
  background: rgba(255, 255, 255, 0.08);
  flex-shrink: 0;
}

/* Inline stats (toolbar) */
.perm-ws__inline-stats {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}

.perm-ws__inline-stat {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 999px;
  white-space: nowrap;
  cursor: default;
}

.perm-ws__inline-stat-val {
  font-size: 13px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.9);
  line-height: 1;
}

.perm-ws__inline-stat-lbl {
  font-size: 10px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.4);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height: 1;
}

.perm-ws__inline-stat--danger {
  background: rgba(239, 83, 80, 0.08);
  border-color: rgba(239, 83, 80, 0.15);
}

.perm-ws__inline-stat--danger .perm-ws__inline-stat-val {
  color: #ef5350;
}

.perm-ws__inline-stat--danger .perm-ws__inline-stat-lbl {
  color: rgba(239, 83, 80, 0.6);
}

.perm-ws__inline-stat--warning {
  background: rgba(255, 193, 7, 0.08);
  border-color: rgba(255, 193, 7, 0.15);
}

.perm-ws__inline-stat--warning .perm-ws__inline-stat-val {
  color: #ffc107;
}

.perm-ws__inline-stat--warning .perm-ws__inline-stat-lbl {
  color: rgba(255, 193, 7, 0.6);
}

.perm-ws__inline-stat--dirty {
  background: rgba(255, 193, 7, 0.08);
  border-color: rgba(255, 193, 7, 0.2);
  padding: 4px 6px;
}

.perm-ws__inline-stat--dirty mat-icon,
.perm-ws__inline-stat--dirty .mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: #ffc107;
}

/* Search box */
.perm-ws__search {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  max-width: 320px;
  margin-left: auto;
  padding: 8px 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 999px;
  transition: all 0.2s ease;
}

.perm-ws__search:focus-within {
  border-color: rgba(220, 130, 80, 0.4);
  background: rgba(255, 255, 255, 0.06);
}

.perm-ws__search mat-icon,
.perm-ws__search .mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 255, 255, 0.4);
  flex-shrink: 0;
}

.perm-ws__search input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  min-width: 0;
}

.perm-ws__search input::placeholder {
  color: rgba(255, 255, 255, 0.3);
}

.perm-ws__search-clear {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 5px;
  background: rgba(255, 255, 255, 0.08);
  border: none;
  color: rgba(255, 255, 255, 0.6);
  cursor: pointer;
  transition: all 0.15s ease;
}

.perm-ws__search-clear:hover {
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
}

.perm-ws__search-clear mat-icon,
.perm-ws__search-clear .mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

/* Roles grid cards on /console/role/permissions
   Remove legacy left-edge color stripe to keep neutral glass cards. */
.org-shell .role-card-v2::before {
  content: none !important;
  display: none !important;
}

/* ==========================================================================
   PERMISSIONS PAGE — TEMPLATES TAB CATALOG CARDS
   ========================================================================== */
.org-shell.templates-page .perm-template-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
  gap: var(--ui-space-4);
  padding: var(--ui-space-5) var(--ui-space-6);
}

.org-shell.templates-page .perm-template-card {
  position: relative;
  min-height: 290px;
  padding: var(--ui-space-5);
  gap: var(--ui-space-4);
  border-radius: var(--ui-radius-xl);
  border-color: var(--ui-border-light);
  background: var(--ui-glass-light);
  box-shadow: var(--ui-shadow-sm);
  backdrop-filter: var(--ui-blur-sm);
  -webkit-backdrop-filter: var(--ui-blur-sm);
  text-align: left;
  overflow: hidden;
  isolation: isolate;
}

.org-shell.templates-page .perm-template-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02));
  opacity: 0.9;
  pointer-events: none;
  z-index: 0;
}

.org-shell.templates-page .perm-template-card > * {
  position: relative;
  z-index: 1;
}

.org-shell.templates-page .perm-template-card:hover {
  transform: translateY(-2px);
  border-color: rgba(255, 153, 102, 0.2);
  box-shadow: var(--ui-shadow-md);
}

.org-shell.templates-page .perm-template-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-4);
}

.org-shell.templates-page .perm-template-card__identity {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  min-width: 0;
}

.org-shell.templates-page .perm-template-card__eyebrow {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
}

.org-shell.templates-page .perm-template-card__name-group {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.org-shell.templates-page .perm-template-card .ui-card__heading {
  font-size: clamp(1.3rem, 1vw + 1rem, 1.7rem);
  line-height: 1.2;
}

.org-shell.templates-page .perm-template-card .ui-card__badge {
  padding-inline: var(--ui-space-3);
}

.org-shell.templates-page .perm-template-card .perm-template-card__badge--core {
  background: rgba(255, 193, 7, 0.12);
  border-color: rgba(255, 193, 7, 0.22);
  color: var(--ui-warning);
}

.org-shell.templates-page .perm-template-card .perm-template-card__badge--preset {
  background: rgba(88, 214, 141, 0.12);
  border-color: rgba(88, 214, 141, 0.22);
  color: var(--ui-success);
}

.org-shell.templates-page .perm-template-card__counter {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 2px;
  min-width: 84px;
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-lg);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  flex-shrink: 0;
}

.org-shell.templates-page .perm-template-card__counter-value {
  font-size: clamp(1.35rem, 1vw + 1rem, 1.8rem);
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--ui-text-primary);
}

.org-shell.templates-page .perm-template-card__counter-label {
  font-size: var(--ui-text-2xs, 0.7rem);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ui-text-muted);
}

.org-shell.templates-page .perm-template-card .ui-card__description {
  min-height: 3.5em;
  color: var(--ui-text-secondary);
}

.org-shell.templates-page .perm-template-card__metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ui-space-3);
}

.org-shell.templates-page .perm-template-card__metric {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  min-height: 108px;
  min-width: 0;
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-lg);
  background: rgba(255, 255, 255, 0.045);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.org-shell.templates-page .perm-template-card__metric-label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.48);
}

.org-shell.templates-page .perm-template-card__metric-value {
  display: block;
  max-width: 100%;
  font-size: clamp(1.05rem, 0.4vw + 1rem, 1.35rem);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.org-shell.templates-page .perm-template-card__metric-sub {
  font-size: var(--ui-text-xs);
  line-height: 1.45;
  color: var(--ui-text-muted);
}

.org-shell.templates-page .perm-template-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  padding-top: var(--ui-space-4);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.org-shell.templates-page .perm-template-card__signals {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
  min-width: 0;
}

.org-shell.templates-page .perm-template-card__signal {
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  border-radius: var(--ui-radius-full);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.04em;
  color: var(--ui-text-secondary);
  white-space: nowrap;
}

.org-shell.templates-page .perm-template-card__signal--core {
  background: rgba(255, 193, 7, 0.12);
  border-color: rgba(255, 193, 7, 0.18);
  color: var(--ui-warning);
}

.org-shell.templates-page .perm-template-card__signal--preset {
  background: rgba(88, 214, 141, 0.12);
  border-color: rgba(88, 214, 141, 0.18);
  color: var(--ui-success);
}

.org-shell.templates-page .perm-template-card__cta {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: rgba(255, 153, 102, 0.92);
  white-space: nowrap;
  flex-shrink: 0;
}

.org-shell.templates-page .perm-template-card__cta mat-icon,
.org-shell.templates-page .perm-template-card__cta .mat-icon {
  width: 16px;
  height: 16px;
  font-size: 16px;
  transition: transform 0.2s ease;
}

.org-shell.templates-page .perm-template-card:hover .perm-template-card__cta mat-icon,
.org-shell.templates-page .perm-template-card:hover .perm-template-card__cta .mat-icon {
  transform: translate(2px, -2px);
}

@media (max-width: 1180px) {
  .org-shell.templates-page .perm-template-card__metrics {
    grid-template-columns: 1fr;
  }
  .org-shell.templates-page .perm-template-card__metric {
    min-height: 0;
  }
}
@media (max-width: 760px) {
  .org-shell.templates-page .perm-template-grid {
    grid-template-columns: 1fr;
    padding-inline: var(--ui-space-4);
  }
  .org-shell.templates-page .perm-template-card__header,
  .org-shell.templates-page .perm-template-card__footer {
    flex-direction: column;
    align-items: flex-start;
  }
  .org-shell.templates-page .perm-template-card__counter {
    align-items: flex-start;
  }
}
/* Preset button + dropdown */
.perm-ws__presets {
  position: relative;
  z-index: 200;
}

.perm-ws__preset-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 36px;
  padding: 0 16px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 999px;
  color: rgba(255, 255, 255, 0.8);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.perm-ws__preset-btn:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.15);
}

.perm-ws__preset-btn--active {
  background: rgba(220, 130, 80, 0.1);
  border-color: rgba(220, 130, 80, 0.25);
  color: #dc8250;
}

.perm-ws__preset-btn mat-icon,
.perm-ws__preset-btn .mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.perm-ws__preset-arrow {
  transition: transform 0.2s ease;
}

.perm-ws__preset-btn--active .perm-ws__preset-arrow {
  transform: rotate(180deg);
}

/* Dense toggle */
.perm-ws__dense-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 999px;
  color: rgba(255, 255, 255, 0.6);
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.perm-ws__dense-toggle:hover {
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.85);
}

.perm-ws__dense-toggle--active {
  background: rgba(100, 181, 246, 0.1);
  border-color: rgba(100, 181, 246, 0.25);
  color: #64b5f6;
}

.perm-ws__dense-toggle mat-icon,
.perm-ws__dense-toggle .mat-icon {
  font-size: 15px;
  width: 15px;
  height: 15px;
}

/* Save button */
.perm-ws__save-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 36px;
  padding: 0 20px;
  border-radius: 999px;
  background: linear-gradient(130deg, #ff7043, #e94424);
  border: none;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 8px 20px rgba(233, 68, 36, 0.35);
  white-space: nowrap;
  flex-shrink: 0;
}

.perm-ws__save-btn:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 12px 28px rgba(233, 68, 36, 0.45);
}

.perm-ws__save-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
}

.perm-ws__save-btn mat-icon,
.perm-ws__save-btn .mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

/* ==========================================================================
   MAIN CONTENT AREA — FULL WIDTH
   ========================================================================== */
.perm-ws__body {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  position: relative;
}

/* ==========================================================================
   FLOATING STATS CARD
   ========================================================================== */
.perm-ws__floating-stats {
  float: right;
  width: 260px;
  max-width: 280px;
  margin: 16px 20px 16px 24px;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 16px;
  overflow: hidden;
  isolation: isolate;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
  transition: all 0.25s ease;
  position: sticky;
  top: 16px;
  z-index: 20;
  shape-outside: margin-box;
}

.perm-ws__floating-stats::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(145deg, rgba(40, 36, 33, 0.85), rgba(28, 25, 22, 0.92));
  backdrop-filter: blur(40px);
  -webkit-backdrop-filter: blur(40px);
  border-radius: inherit;
  z-index: 0;
}

.perm-ws__floating-stats > * {
  position: relative;
  z-index: 1;
}

.perm-ws__stats-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.perm-ws__stats-title {
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.perm-ws__stats-collapse {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.4);
  cursor: pointer;
  border-radius: 4px;
  transition: all 0.15s ease;
}

.perm-ws__stats-collapse:hover {
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.7);
}

.perm-ws__stats-collapse mat-icon,
.perm-ws__stats-collapse .mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.perm-ws__stats-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: rgba(255, 255, 255, 0.04);
}

.perm-ws__stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 10px 8px;
  background: rgba(0, 0, 0, 0.15);
  text-align: center;
}

.perm-ws__stat-value {
  font-size: 18px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.92);
  line-height: 1.1;
}

.perm-ws__stat-label {
  font-size: 10px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.45);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-top: 2px;
}

.perm-ws__stat--danger .perm-ws__stat-value {
  color: #ef5350;
}

.perm-ws__stat--warning .perm-ws__stat-value {
  color: #ffc107;
}

/* Collapsed state */
.perm-ws__floating-stats--collapsed .perm-ws__stats-grid {
  display: none;
}

/* Unsaved indicator */
.perm-ws__stats-unsaved {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 6px 14px;
  font-size: 11px;
  font-weight: 600;
  color: #ffc107;
  border-top: 1px solid rgba(255, 193, 7, 0.12);
  background: rgba(255, 193, 7, 0.05);
}

.perm-ws__stats-unsaved mat-icon,
.perm-ws__stats-unsaved .mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

/* ==========================================================================
   PERMISSION GRID — FULL WIDTH
   ========================================================================== */
.perm-ws__grid {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 20px 24px 32px;
  display: block;
  height: 100%;
}

.perm-ws__grid > app-permission-domain {
  display: block;
  margin-bottom: 14px;
}

.perm-ws__grid > app-permission-domain:last-child {
  margin-bottom: 0;
}

/* ==========================================================================
   SEARCH RESULTS
   ========================================================================== */
.perm-ws__search-results {
  flex: 1;
  overflow-y: auto;
  padding: 20px 24px;
  height: 100%;
}

.perm-ws__search-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.5);
}

.perm-ws__search-clear-link {
  background: transparent;
  border: none;
  color: #dc8250;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}

.perm-ws__search-clear-link:hover {
  text-decoration: underline;
}

.perm-ws__search-group-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.perm-ws__search-domain {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 16px;
  padding: 16px;
}

.perm-ws__search-domain-label {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 12px;
  font-size: 14px;
  font-weight: 600;
  color: #dc8250;
}

.perm-ws__search-domain-label mat-icon,
.perm-ws__search-domain-label .mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.perm-ws__no-results {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 48px 24px;
  text-align: center;
}

.perm-ws__no-results mat-icon,
.perm-ws__no-results .mat-icon {
  font-size: 48px;
  width: 48px;
  height: 48px;
  color: rgba(255, 255, 255, 0.15);
  margin-bottom: 12px;
}

.perm-ws__no-results p {
  margin: 0;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.4);
}

/* Search result row (inline perms in search view) */
.perm-ws__search-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.15s ease;
}

.perm-ws__search-row:hover {
  background: rgba(255, 255, 255, 0.05);
}

.perm-ws__search-row--selected {
  background: rgba(220, 130, 80, 0.08);
  border-color: rgba(220, 130, 80, 0.2);
}

.perm-ws__search-row input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.perm-ws__search-checkbox {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 5px;
  border: 2px solid rgba(255, 255, 255, 0.25);
  background: transparent;
  flex-shrink: 0;
  transition: all 0.15s ease;
}

.perm-ws__search-row--selected .perm-ws__search-checkbox {
  background: linear-gradient(135deg, #dc8250, #c75a30);
  border-color: transparent;
}

.perm-ws__search-checkbox mat-icon,
.perm-ws__search-checkbox .mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: #fff;
}

.perm-ws__search-perm-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.perm-ws__search-perm-label {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}

.perm-ws__search-perm-desc {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
}

.perm-ws__search-risk {
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  flex-shrink: 0;
}

.perm-ws__search-risk--low {
  background: rgba(76, 175, 80, 0.15);
  color: #66bb6a;
}

.perm-ws__search-risk--medium {
  background: rgba(255, 193, 7, 0.15);
  color: #ffc107;
}

.perm-ws__search-risk--high {
  background: rgba(244, 67, 54, 0.15);
  color: #ef5350;
}

.perm-ws__search-perms {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* ==========================================================================
   DOMAIN SECTION (app-permission-domain)
   ========================================================================== */
app-permission-domain {
  display: block;
}

.perm-ws .domain-section {
  border-radius: 20px;
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.01));
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  overflow: hidden;
  transition: all 0.25s ease;
}

.perm-ws .domain-section:hover {
  border-color: rgba(255, 255, 255, 0.1);
}

.perm-ws .domain-section.expanded {
  border-color: rgba(255, 255, 255, 0.12);
}

.perm-ws .domain-section.has-selected {
  border-color: rgba(255, 122, 61, 0.25);
  box-shadow: 0 8px 30px rgba(255, 122, 61, 0.12);
}

.perm-ws .domain-section.has-selected.expanded {
  border-color: rgba(255, 122, 61, 0.35);
}

.perm-ws .domain-section:not(.has-selected):not(.expanded) {
  opacity: 0.5;
}

.perm-ws .domain-section:not(.has-selected):not(.expanded):hover {
  opacity: 0.8;
}

/* Domain header */
.perm-ws .domain-header {
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  padding: 18px 22px;
  background: transparent;
  border: none;
  cursor: pointer;
  text-align: left;
  transition: background 0.2s ease;
}

.perm-ws .domain-header:hover {
  background: rgba(255, 255, 255, 0.02);
}

.perm-ws .domain-section.expanded .domain-header {
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.perm-ws .domain-icon-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: linear-gradient(145deg, rgba(255, 122, 61, 0.18), rgba(255, 122, 61, 0.06));
  border: 1px solid rgba(255, 122, 61, 0.25);
  flex-shrink: 0;
}

.perm-ws .domain-icon {
  font-size: 24px;
  width: 24px;
  height: 24px;
  color: #ff7a3d;
}

.perm-ws .domain-info {
  flex: 1;
  min-width: 0;
}

.perm-ws .domain-title {
  margin: 0 0 4px;
  font-size: 16px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
}

.perm-ws .domain-description {
  margin: 0;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.5);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.perm-ws .domain-stats {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  flex-shrink: 0;
}

.perm-ws .selected-count {
  font-size: 13px;
  font-weight: 600;
  color: #ff7a3d;
}

.perm-ws .total-count {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.55);
}

.perm-ws .expand-indicator {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.04);
  flex-shrink: 0;
}

.perm-ws .expand-indicator mat-icon,
.perm-ws .expand-indicator .mat-icon {
  font-size: 22px;
  width: 22px;
  height: 22px;
  color: rgba(255, 255, 255, 0.5);
}

/* Domain header actions (inline in header row) */
.perm-ws .domain-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.perm-ws .select-all-btn,
.perm-ws .clear-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  background: transparent;
}

.perm-ws .select-all-btn {
  background: rgba(255, 122, 61, 0.12);
  border: 1px solid rgba(255, 122, 61, 0.28);
  color: #ff7a3d;
}

.perm-ws .select-all-btn:hover:not(:disabled) {
  background: rgba(255, 122, 61, 0.22);
  border-color: rgba(255, 122, 61, 0.45);
}

.perm-ws .select-all-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.perm-ws .select-all-btn mat-icon,
.perm-ws .select-all-btn .mat-icon,
.perm-ws .clear-btn mat-icon,
.perm-ws .clear-btn .mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.perm-ws .clear-btn {
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.7);
}

.perm-ws .clear-btn:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
}

/* Permissions list inside domain */
.perm-ws .permissions-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px 16px;
  padding: 14px 18px 18px;
}

/* ==========================================================================
   SUBGROUPS — uiGroup-based sections within a domain
   ========================================================================== */
.perm-ws .subgroup {
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.perm-ws .subgroup:first-child {
  border-top: none;
}

.perm-ws .subgroup__header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px 2px;
}

.perm-ws .subgroup__icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: rgba(255, 255, 255, 0.4);
  flex-shrink: 0;
}

.perm-ws .subgroup__label {
  font-size: 11px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.perm-ws .subgroup__count {
  font-size: 10px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.3);
  margin-right: auto;
}

.perm-ws .subgroup__select-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.55);
  white-space: nowrap;
}

.perm-ws .subgroup__select-btn:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.8);
}

.perm-ws .subgroup__select-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.perm-ws .subgroup__select-btn mat-icon,
.perm-ws .subgroup__select-btn .mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

/* Self-Service accent variant */
.perm-ws .subgroup--self-service {
  background: linear-gradient(150deg, rgba(100, 181, 246, 0.04), rgba(100, 181, 246, 0.01));
  border-top: 1px solid rgba(100, 181, 246, 0.12);
}

.perm-ws .subgroup--self-service:first-child {
  border-top: none;
}

.perm-ws .subgroup--self-service .subgroup__icon {
  color: #64b5f6;
}

.perm-ws .subgroup--self-service .subgroup__label {
  color: #64b5f6;
}

.perm-ws .subgroup--self-service .subgroup__select-btn {
  background: rgba(100, 181, 246, 0.08);
  border-color: rgba(100, 181, 246, 0.2);
  color: #64b5f6;
}

.perm-ws .subgroup--self-service .subgroup__select-btn:hover:not(:disabled) {
  background: rgba(100, 181, 246, 0.15);
  border-color: rgba(100, 181, 246, 0.35);
}

/* ==========================================================================
   PERMISSION ROW (app-permission-row)
   ========================================================================== */
app-permission-row {
  display: block;
  min-width: 0;
  overflow: hidden;
}

.perm-ws .permission-row {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 14px 18px;
  border-radius: var(--ui-radius-lg);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  cursor: pointer;
  transition: all 0.2s ease;
  position: relative;
}

.perm-ws .permission-row:hover {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
}

.perm-ws .permission-row.selected {
  background: rgba(255, 122, 61, 0.1);
  border-color: rgba(255, 122, 61, 0.28);
}

.perm-ws .permission-row.selected:hover {
  background: rgba(255, 122, 61, 0.15);
  border-color: rgba(255, 122, 61, 0.4);
}

.perm-ws .permission-row.high-risk.selected {
  background: rgba(255, 95, 109, 0.08);
  border-color: rgba(255, 95, 109, 0.25);
}

/* Checkbox within permission-row */
.perm-ws .checkbox-wrapper {
  position: relative;
  flex-shrink: 0;
  margin-top: 2px;
}

.perm-ws .checkbox-wrapper input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.perm-ws .checkbox-custom {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 6px;
  border: 2px solid rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.04);
  transition: all 0.2s ease;
}

.perm-ws .checkbox-custom mat-icon,
.perm-ws .checkbox-custom .mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: transparent;
  transition: color 0.15s ease;
}

.perm-ws .permission-row.selected .checkbox-custom {
  background: linear-gradient(130deg, #ff7043, #e94424);
  border-color: transparent;
  box-shadow: 0 4px 12px rgba(233, 68, 36, 0.4);
}

.perm-ws .permission-row.selected .checkbox-custom mat-icon,
.perm-ws .permission-row.selected .checkbox-custom .mat-icon {
  color: #fff;
}

.perm-ws .permission-row.high-risk.selected .checkbox-custom {
  background: linear-gradient(135deg, #ff5f6d, #c62828);
  box-shadow: 0 4px 12px rgba(255, 95, 109, 0.35);
}

.perm-ws .permission-info {
  flex: 1;
  min-width: 0;
}

.perm-ws .permission-header {
  display: flex;
  align-items: center;
  gap: 10px;
  justify-content: space-between;
  margin-bottom: 4px;
  min-width: 0;
  overflow: hidden;
}

.perm-ws .permission-label {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.92);
  letter-spacing: 0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}

.perm-ws .permission-description {
  margin: 0;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.5;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* High-risk indicator */
.perm-ws .high-risk-indicator {
  position: absolute;
  top: 50%;
  right: 16px;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(244, 67, 54, 0.15);
  animation: perm-ws-pulse 2s ease-in-out infinite;
}

.perm-ws .high-risk-indicator mat-icon,
.perm-ws .high-risk-indicator .mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: #ef5350;
}

@keyframes perm-ws-pulse {
  0%, 100% {
    opacity: 1;
    transform: translateY(-50%) scale(1);
  }
  50% {
    opacity: 0.7;
    transform: translateY(-50%) scale(1.05);
  }
}
/* Focus state */
.perm-ws .checkbox-wrapper input:focus + .checkbox-custom {
  box-shadow: 0 0 0 3px rgba(220, 130, 80, 0.25);
}

/* ==========================================================================
   DENSE MODE — .perm-ws--dense
   ========================================================================== */
/* Domain header: compact */
.perm-ws--dense .domain-header {
  padding: 8px 14px;
  gap: 8px;
}

.perm-ws--dense .domain-icon-wrapper {
  width: 32px;
  height: 32px;
  border-radius: 8px;
}

.perm-ws--dense .domain-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.perm-ws--dense .domain-title {
  font-size: 13px;
  margin-bottom: 0;
}

.perm-ws--dense .domain-description {
  display: none;
}

.perm-ws--dense .domain-stats {
  flex-direction: row;
  gap: 6px;
}

.perm-ws--dense .total-count,
.perm-ws--dense .selected-count {
  font-size: 11px;
}

.perm-ws--dense .expand-indicator {
  width: 24px;
  height: 24px;
  border-radius: 6px;
}

.perm-ws--dense .expand-indicator mat-icon,
.perm-ws--dense .expand-indicator .mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.perm-ws--dense .domain-header-actions {
  gap: 4px;
}

.perm-ws--dense .select-all-btn,
.perm-ws--dense .clear-btn {
  padding: 4px 8px;
  font-size: 10px;
  gap: 4px;
}

.perm-ws--dense .select-all-btn mat-icon,
.perm-ws--dense .select-all-btn .mat-icon,
.perm-ws--dense .clear-btn mat-icon,
.perm-ws--dense .clear-btn .mat-icon {
  font-size: 13px;
  width: 13px;
  height: 13px;
}

/* Permission row: compact */
.perm-ws--dense .permissions-list {
  grid-template-columns: repeat(4, 1fr);
  gap: 4px 12px;
  padding: 8px 12px 10px;
}

/* Subgroup: compact */
.perm-ws--dense .subgroup__header {
  padding: 6px 12px 1px;
  gap: 6px;
}

.perm-ws--dense .subgroup__icon {
  font-size: 13px;
  width: 13px;
  height: 13px;
}

.perm-ws--dense .subgroup__label {
  font-size: 10px;
}

.perm-ws--dense .subgroup__count {
  font-size: 9px;
}

.perm-ws--dense .subgroup__select-btn {
  padding: 2px 6px;
  font-size: 9px;
  gap: 3px;
}

.perm-ws--dense .subgroup__select-btn mat-icon,
.perm-ws--dense .subgroup__select-btn .mat-icon {
  font-size: 10px;
  width: 10px;
  height: 10px;
}

.perm-ws--dense .permission-row {
  padding: 6px 10px;
  gap: 8px;
  border-radius: 6px;
}

.perm-ws--dense .permission-label {
  font-size: 12px;
}

.perm-ws--dense .permission-description {
  display: none;
}

.perm-ws--dense .permission-header {
  margin-bottom: 0;
  gap: 6px;
}

.perm-ws--dense .risk-badge {
  font-size: 9px;
  padding: 1px 5px;
}

.perm-ws--dense .risk-badge .risk-icon {
  font-size: 10px;
  width: 10px;
  height: 10px;
}

.perm-ws--dense .risk-badge .risk-text {
  display: none;
}

.perm-ws--dense .checkbox-custom {
  width: 16px;
  height: 16px;
  border-radius: 3px;
  border-width: 1.5px;
}

.perm-ws--dense .checkbox-custom mat-icon,
.perm-ws--dense .checkbox-custom .mat-icon {
  font-size: 11px;
  width: 11px;
  height: 11px;
}

.perm-ws--dense .high-risk-indicator {
  width: 18px;
  height: 18px;
  right: 10px;
}

.perm-ws--dense .high-risk-indicator mat-icon,
.perm-ws--dense .high-risk-indicator .mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

/* Grid spacing in dense mode */
.perm-ws--dense .perm-ws__grid {
  padding: 10px 14px 16px;
}

.perm-ws--dense .perm-ws__grid > app-permission-domain {
  margin-bottom: 6px;
}

/* Domain section: less shadow, tighter in dense */
.perm-ws--dense .domain-section {
  border-radius: 10px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

/* Search results dense */
.perm-ws--dense .perm-ws__search-row {
  padding: 8px 10px;
}

.perm-ws--dense .perm-ws__search-perm-desc {
  display: none;
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1200px) {
  .perm-ws__floating-stats {
    width: 220px;
  }
  .perm-ws__role-name {
    max-width: 140px;
  }
}
@media (max-width: 1024px) {
  .perm-ws__floating-stats {
    position: relative;
    top: auto;
    right: auto;
    width: 100%;
    max-width: 100%;
    border-radius: 0;
    border-left: none;
    border-right: none;
  }
  .perm-ws__stats-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
@media (max-width: 768px) {
  .perm-ws {
    margin: 12px;
    border-radius: 20px;
  }
  .perm-ws__toolbar {
    flex-wrap: wrap;
    height: auto;
    padding: 12px 16px;
    gap: 8px;
  }
  .perm-ws__role-info {
    width: 100%;
  }
  .perm-ws__search {
    flex: 1;
    max-width: 100%;
  }
  .perm-ws__divider {
    display: none;
  }
  .perm-ws__grid {
    padding: 12px 14px 24px;
  }
  .perm-ws .domain-header {
    padding: 14px 16px;
    gap: 12px;
  }
  .perm-ws .domain-icon-wrapper {
    width: 40px;
    height: 40px;
    border-radius: 10px;
  }
  .perm-ws .domain-icon {
    font-size: 20px;
    width: 20px;
    height: 20px;
  }
  .perm-ws .domain-description {
    display: none;
  }
  .perm-ws .domain-stats {
    flex-direction: row;
    gap: 8px;
  }
  .perm-ws .permissions-list {
    padding: 10px 12px 14px;
    gap: 6px;
  }
  .perm-ws__stats-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .perm-ws__preset-dropdown {
    position: fixed;
    left: 16px;
    right: 16px;
    width: auto;
  }
}
/* ==========================================================================
   BILL EDIT PAGE — Scoped Contract
   ==========================================================================
   Scope: /console/bill/edit/:id
   Purpose: align bill edit cards + input table to active ui-* contracts
   ========================================================================== */
.ui-page--bill-edit {
  padding: var(--ui-space-6) var(--ui-space-4) calc(var(--ui-space-12) + var(--ui-space-4));
  overflow-x: clip;
  /* ==========================================================================
     OCR DRAFT STYLES
     ========================================================================== */
  /* Info banner shown for OCR draft bills */
  /* Unresolved item row highlight */
  /* Unresolved item warning badge */
  /* Chip icon sizing for OCR Draft status chip */
  /* OCR Bill Image Preview */
  /* ==========================================================================
     BILL LOCK SYSTEM
     ========================================================================== */
  /* Lock banner — red-tinted glassmorphic bar */
}
.ui-page--bill-edit .bill-edit-dashboard {
  position: relative;
  overflow-x: clip;
}
.ui-page--bill-edit .services-shell,
.ui-page--bill-edit .services-form {
  gap: var(--ui-space-6);
}
.ui-page--bill-edit .bill-edit-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-5);
  margin: var(--ui-space-3) 0 var(--ui-space-2);
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}
.ui-page--bill-edit .bill-edit-summary-card {
  min-height: 248px;
  width: 100%;
  padding: var(--ui-space-5);
  gap: var(--ui-space-4);
}
.ui-page--bill-edit .bill-edit-summary-card .ui-card__section-title,
.ui-page--bill-edit .bill-edit-summary-card .glass-modal-container .glass-section-title,
.glass-modal-container .ui-page--bill-edit .bill-edit-summary-card .glass-section-title,
.ui-page--bill-edit .bill-edit-summary-card .glass-modal-container .section-title,
.glass-modal-container .ui-page--bill-edit .bill-edit-summary-card .section-title,
.ui-page--bill-edit .bill-edit-summary-card .glass-modal-container .card-title,
.glass-modal-container .ui-page--bill-edit .bill-edit-summary-card .card-title {
  margin: 0;
}
.ui-page--bill-edit .bill-edit-summary-title {
  margin: 0;
  font-size: var(--ui-text-3xl);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  line-height: 1.2;
}
.ui-page--bill-edit .bill-edit-summary-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-4);
}
.ui-page--bill-edit .bill-edit-balance {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--ui-space-1);
  margin-left: auto;
  text-align: right;
}
.ui-page--bill-edit .bill-edit-balance span {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.12em;
}
.ui-page--bill-edit .bill-edit-balance strong {
  font-size: var(--ui-text-2xl);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  line-height: 1.1;
}
.ui-page--bill-edit .bill-edit-summary-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.ui-page--bill-edit .bill-edit-summary-list li {
  display: grid;
  grid-template-columns: minmax(110px, max-content) minmax(0, 1fr);
  gap: var(--ui-space-4);
  align-items: start;
  padding: var(--ui-space-3) 0;
  border-bottom: 1px solid var(--ui-border-light);
}
.ui-page--bill-edit .bill-edit-summary-list li:last-child {
  border-bottom: 0;
}
.ui-page--bill-edit .bill-edit-summary-list li span {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-subtle);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: var(--ui-font-semibold);
  white-space: nowrap;
}
.ui-page--bill-edit .bill-edit-summary-list li strong {
  font-size: var(--ui-text-md);
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-medium);
  white-space: normal;
  overflow-wrap: anywhere;
}
.ui-page--bill-edit .summary-actions {
  margin-top: auto;
}
.ui-page--bill-edit .erp-header-primary .erp-title {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}
.ui-page--bill-edit .erp-filter-bar .filter-group:last-child {
  max-width: 100%;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
  justify-content: flex-end;
}
.ui-page--bill-edit .return-link {
  margin-top: 0;
}
@media (max-width: 1320px) {
  .ui-page--bill-edit .bill-edit-summary-grid {
    grid-template-columns: 1fr;
  }
}
.ui-page--bill-edit .ui-page__content {
  max-width: 1440px;
  width: 100%;
}
.ui-page--bill-edit .bill-edit-items-table {
  margin-top: var(--ui-space-1);
}
.ui-page--bill-edit .bill-edit-items-table.ui-table--input::before, .ui-page--bill-edit .bill-edit-items-table.glass-input-table-card::before {
  opacity: 0;
  background: none;
}
.ui-page--bill-edit .bill-edit-items-table .ui-table-wrap {
  background: var(--ui-glass-light);
  border: 1px solid var(--ui-border);
  box-shadow: var(--ui-shadow-xl);
}
.ui-page--bill-edit .bill-edit-items-table .ui-table, .ui-page--bill-edit .bill-edit-items-table .premium-table, .ui-page--bill-edit .bill-edit-items-table .glass-table {
  --ui-table-min-width: 1120px;
}
.ui-page--bill-edit .bill-edit-items-table .ui-table th, .ui-page--bill-edit .bill-edit-items-table .premium-table th, .ui-page--bill-edit .bill-edit-items-table .glass-table th,
.ui-page--bill-edit .bill-edit-items-table .ui-table td,
.ui-page--bill-edit .bill-edit-items-table .premium-table td,
.ui-page--bill-edit .bill-edit-items-table .glass-table td {
  white-space: nowrap;
}
.ui-page--bill-edit .bill-edit-items-table .ui-table th:nth-child(2), .ui-page--bill-edit .bill-edit-items-table .premium-table th:nth-child(2), .ui-page--bill-edit .bill-edit-items-table .glass-table th:nth-child(2),
.ui-page--bill-edit .bill-edit-items-table .ui-table td:nth-child(2),
.ui-page--bill-edit .bill-edit-items-table .premium-table td:nth-child(2),
.ui-page--bill-edit .bill-edit-items-table .glass-table td:nth-child(2) {
  white-space: normal;
}
.ui-page--bill-edit .bill-edit-items-table .item-field {
  min-width: 240px;
}
.ui-page--bill-edit .bill-edit-items-table .ui-action-btns {
  justify-content: center;
}
.ui-page--bill-edit .bill-edit-items-table col.bill-col-index {
  width: 3%;
}
.ui-page--bill-edit .bill-edit-items-table col.bill-col-item {
  width: 22%;
}
.ui-page--bill-edit .bill-edit-items-table col.bill-col-part {
  width: 9%;
}
.ui-page--bill-edit .bill-edit-items-table col.bill-col-hsn {
  width: 7%;
}
.ui-page--bill-edit .bill-edit-items-table col.bill-col-qty {
  width: 5%;
}
.ui-page--bill-edit .bill-edit-items-table col.bill-col-unit-base {
  width: 9%;
}
.ui-page--bill-edit .bill-edit-items-table col.bill-col-tax {
  width: 8%;
}
.ui-page--bill-edit .bill-edit-items-table col.bill-col-discount {
  width: 9%;
}
.ui-page--bill-edit .bill-edit-items-table col.bill-col-margin {
  width: 6%;
}
.ui-page--bill-edit .bill-edit-items-table col.bill-col-unit-price {
  width: 7%;
}
.ui-page--bill-edit .bill-edit-items-table col.bill-col-total {
  width: 7%;
}
.ui-page--bill-edit .bill-edit-items-table col.bill-col-actions {
  width: 5%;
}
.ui-page--bill-edit .ocr-info-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  margin-bottom: 16px;
  background: rgba(251, 191, 36, 0.08);
  border: 1px solid rgba(251, 191, 36, 0.2);
  border-radius: 12px;
  color: rgba(255, 255, 255, 0.85);
  font-size: 13px;
  line-height: 1.5;
}
.ui-page--bill-edit .ocr-info-bar mat-icon {
  color: #fbbf24;
  font-size: 20px;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}
.ui-page--bill-edit .ocr-unresolved-count {
  margin-left: auto;
  padding: 3px 10px;
  border-radius: 12px;
  background: rgba(251, 191, 36, 0.15);
  color: #fbbf24;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
}
.ui-page--bill-edit tr.ocr-unresolved {
  border-left: 3px solid #fbbf24 !important;
  background: rgba(251, 191, 36, 0.04) !important;
}
.ui-page--bill-edit tr.ocr-unresolved:hover {
  background: rgba(251, 191, 36, 0.08) !important;
}
.ui-page--bill-edit .ocr-unresolved-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 4px;
  padding: 2px 8px;
  border-radius: 8px;
  background: rgba(251, 191, 36, 0.12);
  color: #fbbf24;
  font-size: 10px;
  font-weight: 600;
}
.ui-page--bill-edit .ocr-unresolved-badge mat-icon {
  font-size: 13px;
  width: 13px;
  height: 13px;
}
.ui-page--bill-edit .ocr-unresolved-badge .ocr-resolve-link {
  margin-left: 4px;
  padding: 0 4px;
  color: #fbbf24;
  font-size: 10px;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  opacity: 0.7;
  transition: opacity 0.2s ease;
}
.ui-page--bill-edit .ocr-unresolved-badge .ocr-resolve-link:hover {
  opacity: 1;
  text-decoration: underline;
}
.ui-page--bill-edit .chip-icon {
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
  margin-right: 2px;
}
.ui-page--bill-edit .ocr-bill-preview {
  margin-top: 8px;
}
.ui-page--bill-edit .ocr-preview-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: rgba(255, 200, 160, 0.9);
  font-size: 12px;
  font-weight: 500;
  text-decoration: none;
  transition: all 0.2s ease;
}
.ui-page--bill-edit .ocr-preview-link mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: rgba(255, 130, 90, 0.8);
}
.ui-page--bill-edit .ocr-preview-link:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 130, 90, 0.3);
  color: rgb(255, 200, 160);
}
.ui-page--bill-edit .status-pill.status-warning {
  background: rgba(251, 191, 36, 0.15);
  color: #fbbf24;
  border-color: rgba(251, 191, 36, 0.3);
}
.ui-page--bill-edit .bill-lock-banner {
  margin-bottom: 16px;
  padding: 14px 20px;
  background: rgba(239, 68, 68, 0.08);
  border: 1px solid rgba(239, 68, 68, 0.2);
  border-radius: 12px;
  backdrop-filter: blur(12px);
}
.ui-page--bill-edit .lock-banner-content {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.ui-page--bill-edit .lock-icon {
  color: #ef4444;
  font-size: 22px !important;
  width: 22px !important;
  height: 22px !important;
  flex-shrink: 0;
}
.ui-page--bill-edit .lock-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 200px;
}
.ui-page--bill-edit .lock-text strong {
  font-size: 14px;
  font-weight: 600;
  color: #ef4444;
}
.ui-page--bill-edit .lock-text span {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.4;
}
.ui-page--bill-edit .lock-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-left: auto;
}
.ui-page--bill-edit .lock-link {
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 160, 120, 0.9);
  cursor: pointer;
  transition: color 0.2s ease;
  white-space: nowrap;
}
.ui-page--bill-edit .lock-link:hover {
  color: rgb(255, 200, 160);
  text-decoration: underline;
}

/* ==========================================================================
   PAGE: TEMPLATES PAGE — Role permission templates showcase
   ==========================================================================
   Scoped page styles for /console/role/templates.
   Uses contract classes from card.scss + stats-header.scss as base.
   This file adds page-specific layout and visual identity only.
   ========================================================================== */
/* ── Grid Layout ────────────────────────────────────────────────────────── */
.templates-page .tpl-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: var(--ui-space-4);
  padding: var(--ui-space-5) var(--ui-space-6);
}

/* ── Template Card Overrides ────────────────────────────────────────────── */
.templates-page .tpl-card {
  position: relative;
  overflow: hidden;
  cursor: pointer;
}

/* Left accent stripe by tier */
.templates-page .tpl-card::after {
  content: "";
  position: absolute;
  top: var(--ui-space-2);
  bottom: var(--ui-space-2);
  left: 0;
  width: 3px;
  border-radius: 0 3px 3px 0;
  background: var(--ui-success);
  opacity: 0.6;
  transition: opacity 0.25s ease;
}

.templates-page .tpl-card--core::after {
  background: var(--ui-warning);
}

.templates-page .tpl-card:hover::after {
  opacity: 1;
}

/* ── Name group ─────────────────────────────────────────────────────────── */
.templates-page .tpl-card__name-group {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

/* ── Badge Tier Variants ────────────────────────────────────────────────── */
.templates-page .tpl-badge--core {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.templates-page .tpl-badge--preset {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

/* ── SVG Ring Gauge ─────────────────────────────────────────────────────── */
.templates-page .tpl-ring {
  position: relative;
  width: 42px;
  height: 42px;
  flex-shrink: 0;
}

.templates-page .tpl-ring__svg {
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}

.templates-page .tpl-ring__bg {
  fill: none;
  stroke: var(--ui-surface-2);
  stroke-width: 3;
}

.templates-page .tpl-ring__fill {
  fill: none;
  stroke-width: 3;
  stroke-linecap: round;
  transition: stroke-dasharray 0.5s ease;
}

.templates-page .tpl-ring__fill--core {
  stroke: var(--ui-warning);
}

.templates-page .tpl-ring__fill--preset {
  stroke: var(--ui-success);
}

.templates-page .tpl-ring__label {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
}

/* ── Rings container — side-by-side permission + role count ─────────────── */
.templates-page .tpl-rings {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-shrink: 0;
}

.templates-page .tpl-ring--sm {
  width: 32px;
  height: 32px;
}

.templates-page .tpl-ring--sm .tpl-ring__label {
  font-size: 10px;
}

.templates-page .tpl-ring__fill--roles {
  stroke: rgba(100, 181, 246, 0.7);
}

.templates-page .tpl-ring__fill--employees {
  stroke: rgba(129, 199, 132, 0.7);
}

/* ── Arrow icon in footer ───────────────────────────────────────────────── */
.templates-page .tpl-card__arrow {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: var(--ui-text-subtle);
  margin-left: auto;
  transition: all 0.25s ease;
}

.templates-page .tpl-card:hover .tpl-card__arrow {
  color: var(--ui-brand-light);
  transform: translateX(3px);
}

/* ── Meta Row — breathable layout for multi-stat cards ──────────────────── */
.templates-page .ui-card__meta-row {
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: var(--ui-space-2) var(--ui-space-4);
  row-gap: var(--ui-space-2);
}

.templates-page .tpl-card__arrow {
  margin-left: auto;
}

/* ── Back Button ────────────────────────────────────────────────────────── */
.templates-page .tpl-back-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-4);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border-light);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.templates-page .tpl-back-btn:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
}

.templates-page .tpl-back-btn mat-icon {
  font-size: var(--ui-text-base);
  width: var(--ui-text-base);
  height: var(--ui-text-base);
}

/* ── Empty / Loading States ─────────────────────────────────────────────── */
.templates-page .tpl-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-8) var(--ui-space-6);
  color: var(--ui-text-muted);
}

.templates-page .tpl-empty-state mat-icon {
  font-size: 40px;
  width: 40px;
  height: 40px;
}

.templates-page .tpl-empty-state--error mat-icon {
  color: var(--ui-danger);
}

.templates-page .tpl-spinner {
  animation: tpl-spin 1s linear infinite;
  color: var(--ui-brand-light);
}

@keyframes tpl-spin {
  to {
    transform: rotate(360deg);
  }
}
/* ==========================================================================
   PARTIES PAGE — /console/user/list
   Uses:
   - ui/tables/glass-table.scss for full-page list table chrome
   - ui/tables/data-table.scss for shared cell semantics
   - ui/headers/stat-cards.scss for KPI stat cards (canonical contract)
   - ui/controls/buttons.scss for button contract
   Scoped to .parties-page
   ========================================================================== */
.parties-page {
  /* ══════════════════════════════════════════════════════════════════════════
     COCKPIT: KPI STAT CARDS — Inside erp-header-block (avoids dock overlap)
     Uses canonical stat-cards-row--compact from ui/headers/stat-cards.scss
     Only page-specific overrides here.
     ══════════════════════════════════════════════════════════════════════════ */
  /* ══════════════════════════════════════════════════════════════════════════
     COCKPIT: FINANCIAL STATE FILTER CHIPS
     ══════════════════════════════════════════════════════════════════════════ */
  /* ══════════════════════════════════════════════════════════════════════════
     COCKPIT: ACTIVITY / QUALITY DROPDOWN FILTERS
     ══════════════════════════════════════════════════════════════════════════ */
  /* ══════════════════════════════════════════════════════════════════════════
     COCKPIT: LEDGER HEALTH BADGES
     Badge visibility: ONLY non-SYNCED states show badges.
     Healthy = silent. Unhealthy = visible.
     ══════════════════════════════════════════════════════════════════════════ */
  /* ══════════════════════════════════════════════════════════════════════════
     TABLE LAYOUT
     ══════════════════════════════════════════════════════════════════════════ */
  /* Non-current branches use a distinct purple/teal tone for visual differentiation */
  /* ══════════════════════════════════════════════════════════════════════════
     EMPLOYEE LIFECYCLE: "Include Exited" Toggle (Zoho/SAP/Oracle pattern)
     Compact inline toggle — appears in glass-table-header for Employees tab.
     ══════════════════════════════════════════════════════════════════════════ */
  /* ══════════════════════════════════════════════════════════════════════════
     EMPLOYEE LIFECYCLE: Exited Row Dimming
     Rows for RESIGNED/TERMINATED/INACTIVE employees are visually muted.
     Still interactive for audit/settlement purposes.
     ══════════════════════════════════════════════════════════════════════════ */
  /* ══════════════════════════════════════════════════════════════════════════
     EMPLOYEE LIFECYCLE: Status Badge (inline with name)
     Color-coded by status: RESIGNED=amber, TERMINATED=red, INACTIVE=gray
     ══════════════════════════════════════════════════════════════════════════ */
  /* ══════════════════════════════════════════════════════════════════════════
     RESPONSIVE
     ══════════════════════════════════════════════════════════════════════════ */
}
.parties-page .erp-header-block .stat-cards-row--financial {
  display: flex;
  overflow-x: auto;
  padding: 4px 24px 12px;
}
.parties-page .cockpit-filter-chips {
  display: flex;
  gap: 8px;
  padding: 8px 16px 12px;
  overflow-x: auto;
  scrollbar-width: none;
  flex-shrink: 0;
}
.parties-page .cockpit-filter-chips::-webkit-scrollbar {
  display: none;
}
.parties-page .filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.6);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  transition: all 0.2s ease;
}
.parties-page .filter-chip:hover {
  border-color: rgba(255, 170, 126, 0.3);
  color: rgba(255, 255, 255, 0.85);
  background: rgba(255, 255, 255, 0.06);
}
.parties-page .filter-chip--active {
  background: rgba(255, 156, 102, 0.14);
  border-color: rgba(255, 170, 126, 0.4);
  color: rgba(255, 210, 180, 0.95);
}
.parties-page .filter-chip--active:hover {
  background: rgba(255, 156, 102, 0.18);
}
.parties-page .filter-chip-icon {
  width: 16px;
  height: 16px;
  font-size: 16px;
  opacity: 0.7;
}
.parties-page .filter-chip--active .filter-chip-icon {
  opacity: 1;
  color: rgba(255, 180, 140, 0.9);
}
.parties-page .filter-chip-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  font-size: 10px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.5);
  font-variant-numeric: tabular-nums;
}
.parties-page .filter-chip--active .filter-chip-count {
  background: rgba(255, 180, 140, 0.18);
  color: rgba(255, 210, 180, 0.9);
}
.parties-page .cockpit-filter {
  min-width: 150px;
}
.parties-page .cockpit-filter .mat-mdc-select {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.7);
}
.parties-page .cockpit-filter .mat-mdc-select-trigger {
  padding: 0 4px;
}
.parties-page .ledger-health-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border-radius: 6px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
  line-height: 1.4;
}
.parties-page .ledger-health-badge[data-health=AUTO_CORRECTED] {
  background: rgba(59, 130, 246, 0.12);
  border: 1px solid rgba(59, 130, 246, 0.2);
  color: #93c5fd;
}
.parties-page .ledger-health-badge[data-health=PENDING_RETRY] {
  background: rgba(245, 158, 11, 0.12);
  border: 1px solid rgba(245, 158, 11, 0.2);
  color: #fcd34d;
}
.parties-page .ledger-health-badge[data-health=DRIFT_DETECTED] {
  background: rgba(239, 68, 68, 0.12);
  border: 1px solid rgba(239, 68, 68, 0.2);
  color: #fca5a5;
}
.parties-page .parties-page__table-card {
  margin-top: 4px;
}
.parties-page .parties-page__table-header {
  align-items: flex-end;
  padding-top: 16px;
  padding-bottom: 12px;
  margin-bottom: 0;
}
.parties-page .parties-page__table-header .glass-table-header__right {
  margin-left: auto;
}
.parties-page .parties-page__table-header .glass-table-title {
  font-size: 1.1rem;
  letter-spacing: 0.01em;
}
.parties-page .parties-page__table-header .glass-table-meta {
  margin: 0;
}
.parties-page .parties-page__table {
  --parties-col-party: 31.5%;
  --parties-col-contact: 14%;
  --parties-col-context: 17%;
  --parties-col-activity: 14%;
  --parties-col-balance: 14%;
  --parties-col-action: 9.5%;
  width: 100%;
  min-width: 1180px;
  table-layout: fixed;
}
.parties-page .parties-page__table col.col-party {
  width: var(--parties-col-party);
}
.parties-page .parties-page__table col.col-contact {
  width: var(--parties-col-contact);
}
.parties-page .parties-page__table col.col-context {
  width: var(--parties-col-context);
}
.parties-page .parties-page__table col.col-activity {
  width: var(--parties-col-activity);
}
.parties-page .parties-page__table col.col-balance {
  width: var(--parties-col-balance);
}
.parties-page .parties-page__table col.col-action {
  width: var(--parties-col-action);
}
.parties-page .parties-page__table th:nth-child(1),
.parties-page .parties-page__table td:nth-child(1) {
  width: var(--parties-col-party);
}
.parties-page .parties-page__table th:nth-child(2),
.parties-page .parties-page__table td:nth-child(2) {
  width: var(--parties-col-contact);
}
.parties-page .parties-page__table th:nth-child(3),
.parties-page .parties-page__table td:nth-child(3) {
  width: var(--parties-col-context);
}
.parties-page .parties-page__table th:nth-child(4),
.parties-page .parties-page__table td:nth-child(4) {
  width: var(--parties-col-activity);
}
.parties-page .parties-page__table th:nth-child(5),
.parties-page .parties-page__table td:nth-child(5) {
  width: var(--parties-col-balance);
}
.parties-page .parties-page__table th:nth-child(6),
.parties-page .parties-page__table td:nth-child(6) {
  width: var(--parties-col-action);
}
.parties-page .parties-page__table th,
.parties-page .parties-page__table td {
  vertical-align: middle;
}
.parties-page .parties-page__table .th-content {
  gap: var(--ui-space-2);
}
.parties-page .parties-page__table .th-icon {
  color: rgba(255, 130, 90, 0.72);
}
.parties-page .parties-page__table .cell-primary-name,
.parties-page .parties-page__table .cell-primary-sub,
.parties-page .parties-page__table .cell-muted {
  overflow: hidden;
  text-overflow: ellipsis;
}
.parties-page .parties-page__table .cell-primary-name {
  font-size: 15px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.96);
  white-space: normal;
  line-height: 1.3;
}
.parties-page .parties-page__table .cell-primary-sub {
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 210, 184, 0.62);
}
.parties-page .parties-page__table .cell-muted {
  font-size: 12px;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.58);
  white-space: normal;
}
.parties-page .party-identity {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  min-width: 0;
}
.parties-page .party-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 42px;
  height: 42px;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(255, 156, 102, 0.3), rgba(255, 112, 67, 0.14)), rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 170, 126, 0.32);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
  color: rgba(255, 238, 228, 0.96);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition: border-color 0.18s ease, transform 0.18s ease;
}
.parties-page .party-avatar--employee {
  background: linear-gradient(135deg, rgba(103, 232, 249, 0.22), rgba(59, 130, 246, 0.14)), rgba(255, 255, 255, 0.04);
  border-color: rgba(125, 211, 252, 0.28);
}
.parties-page .party-avatar--vendor {
  background: linear-gradient(135deg, rgba(251, 191, 36, 0.24), rgba(249, 115, 22, 0.12)), rgba(255, 255, 255, 0.04);
  border-color: rgba(253, 186, 116, 0.28);
}
.parties-page .party-identity__content {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.parties-page .party-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.parties-page .branch-badge,
.parties-page .transfer-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-width: 100%;
  padding: 5px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.parties-page .branch-badge {
  background: rgba(96, 165, 250, 0.12);
  border: 1px solid rgba(96, 165, 250, 0.24);
  color: #bfdbfe;
}
.parties-page .branch-badge--other {
  background: rgba(167, 139, 250, 0.12);
  border: 1px solid rgba(167, 139, 250, 0.28);
  color: #c4b5fd;
}
.parties-page .transfer-badge {
  background: rgba(251, 191, 36, 0.12);
  border: 1px solid rgba(251, 191, 36, 0.22);
  color: #fcd34d;
}
.parties-page .branch-badge-icon,
.parties-page .branch-badge mat-icon,
.parties-page .transfer-badge mat-icon {
  width: 14px;
  height: 14px;
  font-size: 14px;
  flex-shrink: 0;
}
.parties-page .party-contact,
.parties-page .party-activity {
  gap: 6px;
}
.parties-page .party-classification-row {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.parties-page .parties-page__table .type-pill {
  min-width: 62px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 8px;
  line-height: 1.25;
  justify-content: center;
  flex-shrink: 0;
}
.parties-page .party-classification-row__meta {
  min-width: 0;
  overflow: hidden;
  color: rgba(255, 210, 184, 0.62);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.3;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}
.parties-page .parties-page__table .type-pill.muted {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.7);
}
.parties-page .party-contact .cell-stacked-primary {
  font-size: 14px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.9);
  font-variant-numeric: tabular-nums;
}
.parties-page .parties-page__table .cell-meta {
  padding-right: 8px;
}
.parties-page .parties-page__table .meta-wrapper {
  gap: 6px;
}
.parties-page .parties-page__table .meta-label {
  color: rgba(255, 180, 140, 0.8);
}
.parties-page .parties-page__table .meta-text {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.86);
  white-space: normal;
  line-height: 1.35;
}
.parties-page .party-activity__label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 196, 167, 0.56);
}
.parties-page .party-activity .cell-stacked-primary {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.84);
}
.parties-page .party-activity__empty {
  color: rgba(255, 255, 255, 0.5);
}
.parties-page .cell-balance {
  white-space: nowrap;
}
.parties-page .party-balance {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
}
.parties-page .parties-page__table .revenue-amount {
  font-size: 18px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.parties-page .parties-page__table .revenue-amount.zero {
  color: rgba(255, 255, 255, 0.42);
}
.parties-page .party-balance__state {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
}
.parties-page .party-balance__state--danger {
  color: rgba(255, 184, 150, 0.92);
}
.parties-page .party-balance__state--success {
  color: rgba(134, 239, 172, 0.9);
}
.parties-page .party-avatar--has-image {
  padding: 0;
  overflow: hidden;
  background: none;
  border-color: rgba(255, 255, 255, 0.15);
}
.parties-page .party-avatar__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
}
.parties-page .parties-page__table .empty-state {
  text-align: center;
}
.parties-page .parties-page__table .data-row:hover .party-avatar {
  border-color: rgba(255, 190, 154, 0.44);
  transform: translateY(-1px);
}
.parties-page .glass-table-meta__hint {
  color: rgba(251, 191, 36, 0.7);
  font-style: italic;
}
.parties-page .exited-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
  padding: 4px 12px 4px 6px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
  color: rgba(255, 255, 255, 0.5);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}
.parties-page .exited-toggle:hover {
  border-color: rgba(255, 255, 255, 0.16);
  color: rgba(255, 255, 255, 0.7);
  background: rgba(255, 255, 255, 0.05);
}
.parties-page .exited-toggle--active {
  border-color: rgba(251, 191, 36, 0.28);
  background: rgba(251, 191, 36, 0.08);
  color: rgba(253, 224, 71, 0.9);
}
.parties-page .exited-toggle--active:hover {
  border-color: rgba(251, 191, 36, 0.4);
  background: rgba(251, 191, 36, 0.12);
}
.parties-page .exited-toggle__icon {
  width: 20px;
  height: 20px;
  font-size: 20px;
  line-height: 20px;
  transition: color 0.2s ease;
}
.parties-page .exited-toggle--active .exited-toggle__icon {
  color: rgba(251, 191, 36, 0.9);
}
.parties-page .exited-toggle__label {
  line-height: 1;
}
.parties-page .parties-page__table .data-row--exited {
  opacity: 0.55;
  transition: opacity 0.2s ease;
}
.parties-page .parties-page__table .data-row--exited:hover {
  opacity: 0.82;
}
.parties-page .parties-page__table .data-row--exited .party-avatar {
  filter: grayscale(0.5);
}
.parties-page .parties-page__table .data-row--exited:hover .party-avatar {
  filter: grayscale(0.15);
}
.parties-page .employee-status-badge {
  display: inline-flex;
  align-items: center;
  margin-left: 8px;
  padding: 2px 8px;
  border-radius: 6px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
  vertical-align: middle;
  line-height: 1.4;
}
.parties-page .employee-status-badge[data-status=RESIGNED] {
  background: rgba(251, 191, 36, 0.12);
  border: 1px solid rgba(251, 191, 36, 0.24);
  color: #fcd34d;
}
.parties-page .employee-status-badge[data-status=TERMINATED] {
  background: rgba(239, 68, 68, 0.12);
  border: 1px solid rgba(239, 68, 68, 0.24);
  color: #fca5a5;
}
.parties-page .employee-status-badge[data-status=INACTIVE] {
  background: rgba(148, 163, 184, 0.12);
  border: 1px solid rgba(148, 163, 184, 0.22);
  color: #94a3b8;
}
@media (max-width: 1280px) {
  .parties-page .parties-page__table {
    --parties-col-party: 33%;
    --parties-col-contact: 14%;
    --parties-col-context: 15%;
    --parties-col-activity: 12%;
    --parties-col-balance: 15%;
    --parties-col-action: 11%;
    min-width: 1080px;
  }
}
@media (max-width: 1024px) {
  .parties-page .parties-page__table {
    --parties-col-party: 32.5%;
    --parties-col-contact: 20%;
    --parties-col-context: 20%;
    --parties-col-balance: 16.5%;
    --parties-col-action: 11%;
    min-width: 940px;
  }
  .parties-page .parties-page__table col.col-activity {
    display: none;
  }
  .parties-page .parties-page__table th:nth-child(4),
  .parties-page .parties-page__table td:nth-child(4) {
    display: none;
  }
}
@media (max-width: 768px) {
  .parties-page .parties-page__table-card {
    margin-top: 8px;
  }
  .parties-page .parties-page__table-header {
    align-items: stretch;
  }
  .parties-page .parties-page__table-header .glass-table-header__right {
    width: 100%;
    margin-left: 0;
  }
  .parties-page .parties-page__table {
    --parties-col-party: 42.5%;
    --parties-col-contact: 25%;
    --parties-col-balance: 21.5%;
    --parties-col-action: 11%;
    min-width: 820px;
  }
  .parties-page .parties-page__table col.col-context {
    display: none;
  }
  .parties-page .parties-page__table th:nth-child(3),
  .parties-page .parties-page__table td:nth-child(3) {
    display: none;
  }
}

/* ══════════════════════════════════════════════════════════════════════════
   COCKPIT: Dropdown panel width fix (global overlay — must be outside .parties-page)
   Prevents truncated "Unl... Par..." text in Activity/Quality dropdowns.
   ══════════════════════════════════════════════════════════════════════════ */
.cockpit-select-panel {
  min-width: 220px;
}

/* Prevent mat-select inside cockpit pill-filters from expanding beyond content width */
.cockpit-filter .mat-mdc-select {
  width: auto !important;
}

/* Force mat-select trigger to shrink to fit-content — prevents 180px default min-width */
.cockpit-filter mat-select,
.cockpit-filter .mat-mdc-select,
.cockpit-filter .mat-mdc-select-trigger {
  width: fit-content !important;
  min-width: 0 !important;
}

/* Scoped page contracts */
/* ==========================================================================
   CRM LEADS PAGE — Scoped Page-Level Contract
   ==========================================================================
   This contract provides page-specific styling for /console/lead/list.

   SCOPE: All styles scoped under .crm-leads-page root class.

   USES:
   - ui/tables/glass-table.scss for table base
   - ui/tables/data-table.scss for cell semantics
   - ui/headers/stat-cards.scss for stat cards

   PROVIDES:
   - Pipeline stats widget
   - Lead table card container
   - Lead-specific column layouts
   - Source pill color variants
   - Timeline cell styling
   ========================================================================== */
.crm-leads-page {
  /* ==========================================================================
     PIPELINE STATS - Horizontal bar with hot/warm/cold pills
     ========================================================================== */
  /* ==========================================================================
     LEAD TABLE CARD - Glass morphism container
     ========================================================================== */
  /* ==========================================================================
     TABLE COLUMN WIDTHS
     ========================================================================== */
  /* ==========================================================================
     LEAD INFO CELL - Name + ID badge + contact
     ========================================================================== */
  /* ==========================================================================
     CAR CELL
     ========================================================================== */
  /* ==========================================================================
     SOURCE CELL & PILLS - Color-coded source indicators
     ========================================================================== */
  /* ==========================================================================
     TIMELINE CELL - Created/Follow-up with dots
     ========================================================================== */
  /* ==========================================================================
     PHASE 25: SCORE BADGE
     ========================================================================== */
  /* ==========================================================================
     PHASE 25: TOUCHPOINT CHAIN
     ========================================================================== */
  /* ==========================================================================
     PHASE 25: ACTIVITY COLUMN
     ========================================================================== */
  /* ==========================================================================
     BRANCH CELL
     ========================================================================== */
  /* ==========================================================================
     ACTION BUTTONS
     ========================================================================== */
  /* ==========================================================================
     SKELETON LOADERS
     ========================================================================== */
  /* Progress bar styling */
}
.crm-leads-page .pipeline-stats {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 5px 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 999px;
  backdrop-filter: blur(12px);
}
.crm-leads-page .pipeline-label {
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.6);
  white-space: nowrap;
}
.crm-leads-page .pipeline-total {
  font-size: 14px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.95);
  min-width: 18px;
  text-align: center;
}
.crm-leads-page .pipeline-divider {
  width: 1px;
  height: 14px;
  background: rgba(255, 255, 255, 0.15);
  margin: 0 2px;
}
.crm-leads-page .pipeline-pills {
  display: flex;
  align-items: center;
  gap: 4px;
}
.crm-leads-page .pipeline-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
  transition: all 0.2s ease;
  cursor: default;
  background: transparent;
  border: none;
}
.crm-leads-page .pipeline-pill img {
  width: 16px;
  height: 16px;
  filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.3));
}
.crm-leads-page .pipeline-pill.hot {
  color: #FF8A65;
}
.crm-leads-page .pipeline-pill.warm {
  color: #FFB74D;
}
.crm-leads-page .pipeline-pill.cold {
  color: #64B5F6;
}
.crm-leads-page .pipeline-pill:hover {
  transform: scale(1.05);
}
.crm-leads-page .lead-table-card {
  --gdt-radius: 28px;
  --gdt-surface: linear-gradient(150deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.01));
  --gdt-border: rgba(255, 255, 255, 0.06);
  --gdt-border-light: rgba(255, 255, 255, 0.08);
  --gdt-border-subtle: rgba(255, 255, 255, 0.05);
  --gdt-accent-light: rgba(255, 130, 90, 0.7);
  margin-top: 12px;
  max-height: none;
}
.crm-leads-page .lead-table-scroll {
  max-height: calc(100vh - 310px);
  overflow-y: auto;
}
.crm-leads-page .lead-list-table {
  min-width: 1728px;
}
.crm-leads-page .lead-list-table tbody {
  max-height: none;
  overflow-y: visible;
}
.crm-leads-page .lead-list-table .th-content {
  gap: var(--ui-space-2);
}
.crm-leads-page .lead-list-table .th-icon {
  color: rgba(255, 130, 90, 0.7);
}
.crm-leads-page .lead-list-table .empty td {
  text-align: center;
  padding: 64px 16px;
  color: rgba(255, 255, 255, 0.5);
  font-size: 15px;
  font-weight: 400;
}
.crm-leads-page .lead-list-table col.lead-col {
  width: 720px;
}
.crm-leads-page .lead-list-table col.car-col {
  width: 200px;
}
.crm-leads-page .lead-list-table col.source-col {
  width: 150px;
}
.crm-leads-page .lead-list-table col.score-col {
  width: 70px;
}
.crm-leads-page .lead-list-table col.timeline-col {
  width: 180px;
}
.crm-leads-page .lead-list-table col.activity-col {
  width: 120px;
}
.crm-leads-page .lead-list-table col.response-col {
  width: 100px;
}
.crm-leads-page .lead-list-table col.manager-col {
  width: 150px;
}
.crm-leads-page .lead-list-table col.branch-col {
  width: 180px;
}
.crm-leads-page .lead-list-table col.actions-col {
  width: 88px;
}
.crm-leads-page .lead-info-cell {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  width: 100%;
}
.crm-leads-page .potential-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.crm-leads-page .potential-icon img {
  width: 20px;
  height: 20px;
}
.crm-leads-page .lead-info-content {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1 1 auto;
}
.crm-leads-page .lead-name-row {
  display: flex;
  align-items: center;
  margin-bottom: 2px;
  width: 100%;
}
.crm-leads-page .lead-name {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
  max-width: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.crm-leads-page .lead-id-badge-sm {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  padding: 1px 7px;
  background: rgba(255, 140, 80, 0.15);
  border: 1px solid rgba(255, 140, 80, 0.35);
  border-radius: 999px;
  color: #ffb083;
  font-family: var(--ui-font-mono);
  font-size: 8px;
  font-weight: 600;
  letter-spacing: 0.03em;
  line-height: 14px;
  white-space: nowrap;
  flex-shrink: 0;
  cursor: pointer;
  transition: all 0.2s ease;
}
.crm-leads-page .lead-id-badge-sm:hover {
  background: rgba(255, 140, 80, 0.25);
  border-color: rgba(255, 140, 80, 0.5);
}
.crm-leads-page .lead-secondary {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.crm-leads-page .lead-contact {
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.6);
  letter-spacing: 0.02em;
}
.crm-leads-page .lead-type-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1px 6px;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.02em;
  border-radius: 999px;
  white-space: nowrap;
  transition: all 0.2s ease;
}
.crm-leads-page .lead-type-pill--new {
  background: rgba(34, 197, 94, 0.15);
  color: #22c55e;
  border: 1px solid rgba(34, 197, 94, 0.3);
}
.crm-leads-page .lead-type-pill--old {
  background: rgba(245, 158, 11, 0.15);
  color: #f59e0b;
  border: 1px solid rgba(245, 158, 11, 0.3);
}
.crm-leads-page .car-cell {
  padding-top: 8px !important;
  padding-bottom: 8px !important;
  vertical-align: middle;
  text-align: left;
}
.crm-leads-page .car-model {
  display: block;
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.85);
  max-width: 130px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  margin-bottom: 4px;
}
.crm-leads-page .car-reg {
  display: block;
  font-size: 10px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.5);
  letter-spacing: 0.02em;
  margin-bottom: 2px;
}
.crm-leads-page .segment-pill {
  display: inline-block;
  padding: 2px 8px;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.03em;
  border-radius: 999px;
  background: rgba(139, 92, 246, 0.15);
  color: #a78bfa;
  border: 1px solid rgba(139, 92, 246, 0.3);
}
.crm-leads-page .source-cell {
  text-align: center;
  vertical-align: middle;
}
.crm-leads-page .source-pill {
  display: inline-block;
  padding: 4px 12px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  border-radius: 999px;
  white-space: nowrap;
  text-transform: capitalize;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.8);
  border: 1px solid rgba(255, 255, 255, 0.15);
}
.crm-leads-page .source-pill--website {
  background: rgba(255, 152, 0, 0.15);
  color: #ffb74d;
  border-color: rgba(255, 152, 0, 0.3);
}
.crm-leads-page .source-pill--instagram {
  background: linear-gradient(135deg, rgba(225, 48, 108, 0.2), rgba(193, 53, 132, 0.2));
  color: #f06292;
  border-color: rgba(225, 48, 108, 0.4);
}
.crm-leads-page .source-pill--knowlarity {
  background: rgba(0, 188, 212, 0.12);
  color: #4dd0e1;
  border-color: rgba(0, 188, 212, 0.3);
}
.crm-leads-page .source-pill--facebook {
  background: rgba(66, 103, 178, 0.15);
  color: #8b9dc3;
  border-color: rgba(66, 103, 178, 0.3);
}
.crm-leads-page .source-pill--whatsapp {
  background: rgba(37, 211, 102, 0.12);
  color: #69f0ae;
  border-color: rgba(37, 211, 102, 0.3);
}
.crm-leads-page .source-pill--justdial {
  background: rgba(255, 235, 59, 0.12);
  color: #fff176;
  border-color: rgba(255, 235, 59, 0.3);
}
.crm-leads-page .source-pill--chat {
  background: rgba(156, 39, 176, 0.12);
  color: #ce93d8;
  border-color: rgba(156, 39, 176, 0.3);
}
.crm-leads-page .source-pill--call {
  background: rgba(33, 150, 243, 0.12);
  color: #64b5f6;
  border-color: rgba(33, 150, 243, 0.3);
}
.crm-leads-page .source-pill--android {
  background: rgba(76, 175, 80, 0.12);
  color: #81c784;
  border-color: rgba(76, 175, 80, 0.3);
}
.crm-leads-page .source-pill--psf {
  background: rgba(244, 67, 54, 0.12);
  color: #ef9a9a;
  border-color: rgba(244, 67, 54, 0.3);
}
.crm-leads-page .source-pill--voice-ai {
  background: linear-gradient(135deg, rgba(124, 58, 237, 0.18), rgba(139, 92, 246, 0.12));
  color: #c4b5fd;
  border-color: rgba(139, 92, 246, 0.4);
  font-weight: 700;
}
.crm-leads-page .source-pill--intelligence {
  background: rgba(99, 102, 241, 0.12);
  color: #a5b4fc;
  border-color: rgba(99, 102, 241, 0.3);
}
.crm-leads-page .timeline-cell {
  text-align: left;
}
.crm-leads-page .timeline-dates {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  position: relative;
  padding-left: 0;
}
.crm-leads-page .timeline-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  position: relative;
}
.crm-leads-page .timeline-dot {
  width: 8px;
  height: 8px;
  min-width: 8px;
  border-radius: 50%;
  margin-top: 3px;
  position: relative;
  z-index: 1;
}
.crm-leads-page .timeline-item.created .timeline-dot {
  background: linear-gradient(135deg, #ff6a3a, #ff8a5c);
  box-shadow: 0 0 6px rgba(255, 106, 58, 0.5);
}
.crm-leads-page .timeline-item.followup .timeline-dot {
  background: linear-gradient(135deg, #fbbf24, #f59e0b);
  box-shadow: 0 0 6px rgba(251, 191, 36, 0.5);
}
.crm-leads-page .timeline-content {
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.crm-leads-page .timeline-label {
  font-size: 9px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: rgba(255, 255, 255, 0.45);
}
.crm-leads-page .timeline-value {
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.85);
}
.crm-leads-page .timeline-item.followup .timeline-value {
  color: #fbbf24;
}
.crm-leads-page .response-cell {
  text-align: center;
  white-space: nowrap;
}
.crm-leads-page .score-cell {
  text-align: center;
  vertical-align: middle;
}
.crm-leads-page .score-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: -0.02em;
}
.crm-leads-page .score--high {
  background: rgba(34, 197, 94, 0.15);
  color: #22c55e;
  border: 1.5px solid rgba(34, 197, 94, 0.4);
}
.crm-leads-page .score--mid {
  background: rgba(245, 158, 11, 0.15);
  color: #f59e0b;
  border: 1.5px solid rgba(245, 158, 11, 0.4);
}
.crm-leads-page .score--low {
  background: rgba(239, 68, 68, 0.12);
  color: #ef4444;
  border: 1.5px solid rgba(239, 68, 68, 0.3);
}
.crm-leads-page .score-label {
  display: block;
  font-size: 8px;
  font-weight: 700;
  margin-top: 3px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  white-space: nowrap;
}
.crm-leads-page .score-label--hot {
  color: #22c55e;
}
.crm-leads-page .score-label--warm {
  color: #f59e0b;
}
.crm-leads-page .score-label--cold {
  color: #94a3b8;
}
.crm-leads-page .tp-chain-cell {
  display: flex;
  flex-wrap: wrap;
  gap: 2px;
  max-width: 150px;
}
.crm-leads-page .tp-chain-pill {
  font-size: 10px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.7);
  white-space: nowrap;
}
.crm-leads-page .tp-chain-arrow {
  color: rgba(255, 255, 255, 0.3);
  font-size: 10px;
}
.crm-leads-page .activity-cell {
  vertical-align: middle;
  text-align: center;
}
.crm-leads-page .activity-signals {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
}
.crm-leads-page .activity-last {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.6);
  font-weight: 500;
}
.crm-leads-page .overdue-badge {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  font-size: 9px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 999px;
  background: rgba(239, 68, 68, 0.15);
  color: #ef4444;
  border: 1px solid rgba(239, 68, 68, 0.3);
  animation: overduePulse 2s ease-in-out infinite;
}
@keyframes overduePulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.6;
  }
}
.crm-leads-page .next-action {
  font-size: 9px;
  color: rgba(255, 255, 255, 0.45);
  font-weight: 500;
}
.crm-leads-page .branch-cell {
  vertical-align: middle;
}
.crm-leads-page .branch-cell .cell-strong {
  max-width: 140px;
}
.crm-leads-page .branch-cell .city-subtle {
  display: block;
  margin-top: 2px;
  font-size: 10px;
  color: rgba(255, 255, 255, 0.35);
  font-weight: 400;
}
.crm-leads-page .branch-name {
  display: block;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
  margin-top: 2px;
}
.crm-leads-page .action-buttons {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
}
.crm-leads-page .action-icon {
  width: 20px;
  height: 20px;
  opacity: 0.8;
  cursor: pointer;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.crm-leads-page .action-icon:hover {
  opacity: 1;
  transform: scale(1.05);
}
.crm-leads-page .skeleton-row td {
  border-bottom-color: rgba(255, 255, 255, 0.02);
}
.crm-leads-page .skeleton-box {
  display: block;
  width: 100%;
  height: 14px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.06));
  background-size: 200% 100%;
  animation: skeletonShimmer 1.3s ease-in-out infinite;
}
.crm-leads-page .skeleton-line {
  margin-bottom: 8px;
}
.crm-leads-page .skeleton-line.short {
  width: 40%;
}
.crm-leads-page .skeleton-line.medium {
  width: 65%;
}
.crm-leads-page .skeleton-pill {
  width: 72px;
  height: 18px;
  margin-left: auto;
  border-radius: 999px;
}
@keyframes skeletonShimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}
.crm-leads-page .mat-mdc-progress-bar .mdc-linear-progress__buffer-bar {
  background-color: rgba(255, 255, 255, 0.08);
}
.crm-leads-page .mat-mdc-progress-bar .mdc-linear-progress__bar-inner {
  border-color: #E94526;
}

.ui-page--contacts .contacts-page {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
}

.ui-page--contacts .erp-header-primary {
  gap: var(--ui-space-5);
  align-items: flex-start;
}

.ui-page--contacts .erp-header-primary .header-right {
  margin-left: auto;
}

.ui-page--contacts .contacts-page__header-tabs {
  margin: 0;
}

.ui-page--contacts .contacts-page__header-tabs .pill-tab-btn {
  min-width: 132px;
  justify-content: center;
}

.ui-page--contacts .contacts-page__stats-row {
  padding-top: 0;
}

.ui-page--contacts .contacts-page__stats-row .stat-card {
  min-width: 170px;
}

.ui-page--contacts .contacts-page__active-filters-bar {
  padding-top: 4px;
}

.ui-page--contacts .contacts-page__clear-filters {
  margin-left: auto;
}

.ui-page--contacts .contacts-page__filter-row {
  align-items: center;
  justify-content: flex-start;
}

.ui-page--contacts .contacts-page__filter-row .filter-group {
  margin-left: 0;
}

.ui-page--contacts .contacts-page__branch-filter {
  margin-inline-end: 12px;
}

.ui-page--contacts .contacts-page__search {
  flex: 1 1 320px;
  max-width: 360px;
  margin-right: auto;
}

.ui-page--contacts .contacts-page__filter-summary {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.ui-page--contacts .contacts-page__summary-pill {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.72);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.ui-page--contacts .contacts-page__summary-pill--accent {
  color: rgba(255, 192, 150, 0.96);
  border-color: rgba(255, 150, 110, 0.22);
  background: rgba(255, 140, 90, 0.1);
}

.ui-page--contacts .contacts-page__filter-pills,
.ui-page--contacts .contacts-page__filter-actions {
  gap: 8px;
  flex-wrap: wrap;
}

.ui-page--contacts .contacts-page__filter-actions {
  margin-left: auto;
  justify-content: flex-end;
}

.ui-page--contacts .contacts-page__view-toggle {
  margin: 0;
}

.ui-page--contacts .contacts-page__view-toggle .pill-tab-btn {
  min-width: 76px;
  justify-content: center;
}

.ui-page--contacts .contacts-page__tab-panel {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.ui-page--contacts .contacts-list-tab {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.ui-page--contacts .selection-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.ui-page--contacts .selection-info {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-right: auto;
  color: rgba(255, 255, 255, 0.88);
  font-size: 13px;
  font-weight: 600;
}

.ui-page--contacts .select-all-link,
.ui-page--contacts .clear-selection-link {
  color: rgba(255, 176, 131, 0.92);
  cursor: pointer;
  text-decoration: none;
}

.ui-page--contacts .select-all-link:hover,
.ui-page--contacts .clear-selection-link:hover {
  color: rgba(255, 205, 180, 0.98);
}

.ui-page--contacts .contacts-page__table-card {
  max-height: min(72vh, 920px);
}

.ui-page--contacts .contacts-page__table {
  min-width: 1320px;
}

.ui-page--contacts .contacts-page__table th:nth-child(1),
.ui-page--contacts .contacts-page__table td:nth-child(1) {
  width: 56px;
}

.ui-page--contacts .contacts-page__table th:nth-child(2),
.ui-page--contacts .contacts-page__table td:nth-child(2) {
  width: 18%;
}

.ui-page--contacts .contacts-page__table th:nth-child(3),
.ui-page--contacts .contacts-page__table td:nth-child(3) {
  width: 11%;
}

.ui-page--contacts .contacts-page__table th:nth-child(4),
.ui-page--contacts .contacts-page__table td:nth-child(4),
.ui-page--contacts .contacts-page__table th:nth-child(5),
.ui-page--contacts .contacts-page__table td:nth-child(5) {
  width: 11%;
}

.ui-page--contacts .contacts-page__table th:nth-child(6),
.ui-page--contacts .contacts-page__table td:nth-child(6) {
  width: 11%;
}

.ui-page--contacts .contacts-page__table th:nth-child(7),
.ui-page--contacts .contacts-page__table td:nth-child(7),
.ui-page--contacts .contacts-page__table th:nth-child(8),
.ui-page--contacts .contacts-page__table td:nth-child(8) {
  width: 12%;
}

.ui-page--contacts .contacts-page__table th:nth-child(9),
.ui-page--contacts .contacts-page__table td:nth-child(9),
.ui-page--contacts .contacts-page__table th:nth-child(10),
.ui-page--contacts .contacts-page__table td:nth-child(10) {
  width: 10%;
}

.ui-page--contacts .contacts-page__table th:nth-child(11),
.ui-page--contacts .contacts-page__table td:nth-child(11) {
  width: 92px;
}

.ui-page--contacts .contacts-page__table .cell-primary-name,
.ui-page--contacts .contacts-page__table .cell-primary-sub,
.ui-page--contacts .contacts-page__table .cell-muted {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ui-page--contacts .contacts-page__contact-type {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.74);
}

.ui-page--contacts .contacts-page__contact-type.type-customer {
  background: rgba(255, 188, 126, 0.1);
  border-color: rgba(255, 176, 131, 0.2);
  color: rgba(255, 216, 194, 0.94);
}

.ui-page--contacts .contacts-page__contact-type.type-lead {
  background: rgba(121, 162, 255, 0.12);
  border-color: rgba(121, 162, 255, 0.2);
  color: rgba(180, 210, 255, 0.95);
}

.ui-page--contacts .contacts-page__table .action-buttons {
  justify-content: flex-end;
}

.ui-page--contacts .ui-table-pagination, .ui-page--contacts .glass-pagination {
  margin-top: 0;
}

body:has(.ui-page--contacts) .mat-mdc-select-panel.contacts-branch-panel {
  width: min(360px, 100vw - 32px) !important;
  max-width: min(360px, 100vw - 32px) !important;
}

body:has(.ui-page--contacts) .cdk-overlay-pane:has(.contacts-branch-panel) {
  margin-inline-start: -12px;
  max-width: calc(100vw - 32px) !important;
}

.ui-page--contacts app-contacts-map-view,
.ui-page--contacts app-lists-tags-tab {
  display: block;
}

body.map-fullscreen-active {
  overflow: hidden !important;
}

body.map-fullscreen-active .careager-topbar,
body.map-fullscreen-active .navbar-custom.careager-topbar,
body.map-fullscreen-active app-console-header,
body.map-fullscreen-active app-console-sidebar,
body.map-fullscreen-active .left-side-menu,
body.map-fullscreen-active .left-side-menu.glass-sidebar {
  opacity: 0;
  pointer-events: none;
}

app-contacts-map-view .contacts-map {
  position: relative;
}

app-contacts-map-view .contacts-map__backdrop {
  position: fixed;
  inset: 0;
  background: rgba(6, 6, 8, 0.5);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  z-index: 1190;
}

app-contacts-map-view .contacts-map__surface {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

app-contacts-map-view .contacts-map__surface--fullscreen {
  position: fixed;
  inset: 18px;
  z-index: 1200;
  padding: var(--ui-space-4);
  border-radius: 28px;
  background: radial-gradient(circle at top right, rgba(255, 135, 71, 0.12), transparent 42%), rgba(11, 9, 12, 0.84);
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.45);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
}

app-contacts-map-view .contacts-map__surface--fullscreen .contacts-map__frame {
  flex: 1 1 auto;
  min-height: 0;
  height: auto;
}

app-contacts-map-view .contacts-map__toolbar {
  position: relative;
  z-index: 4;
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 0;
  padding: 18px;
}

app-contacts-map-view .contacts-map__toolbar-row {
  display: flex;
  align-items: flex-end;
  gap: 12px;
  flex-wrap: wrap;
}

app-contacts-map-view .contacts-map__toolbar-row--secondary {
  align-items: center;
}

app-contacts-map-view .contacts-map__search-stack {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 220px;
  flex: 1 1 260px;
}

app-contacts-map-view .contacts-map__search-stack--wide {
  flex-basis: 280px;
}

app-contacts-map-view .contacts-map__field-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
}

app-contacts-map-view .contacts-map__search {
  min-height: 46px;
}

app-contacts-map-view .contacts-map__results-panel {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 8px);
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 8px;
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(17, 14, 19, 0.94);
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  z-index: 12;
}

app-contacts-map-view .contacts-map__result-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  width: 100%;
  padding: 10px 12px;
  border: none;
  border-radius: 14px;
  background: transparent;
  color: rgba(255, 255, 255, 0.84);
  text-align: left;
  cursor: pointer;
  transition: 0.18s ease;
}

app-contacts-map-view .contacts-map__result-item:hover {
  background: rgba(255, 255, 255, 0.06);
}

app-contacts-map-view .contacts-map__result-item mat-icon {
  width: 18px;
  height: 18px;
  font-size: 18px;
  margin-top: 1px;
  color: rgba(255, 180, 133, 0.92);
}

app-contacts-map-view .contacts-map__result-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

app-contacts-map-view .contacts-map__result-name {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.92);
}

app-contacts-map-view .contacts-map__result-meta {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.54);
  text-transform: capitalize;
}

app-contacts-map-view .contacts-map__toolbar-actions {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  margin-left: auto;
  flex-wrap: wrap;
}

app-contacts-map-view .contacts-map__toolbar-icon {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.1);
}

app-contacts-map-view .contacts-map__summary-pills,
app-contacts-map-view .contacts-map__control-groups {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

app-contacts-map-view .contacts-map__control-groups {
  margin-left: auto;
}

app-contacts-map-view .contacts-map__toggle-group {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
}

app-contacts-map-view .contacts-map__toggle-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 36px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid transparent;
  background: transparent;
  color: rgba(255, 255, 255, 0.62);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: 0.18s ease;
}

app-contacts-map-view .contacts-map__toggle-btn mat-icon {
  width: 16px;
  height: 16px;
  font-size: 16px;
}

app-contacts-map-view .contacts-map__toggle-btn:hover {
  color: rgba(255, 255, 255, 0.88);
  background: rgba(255, 255, 255, 0.06);
}

app-contacts-map-view .contacts-map__toggle-btn.active {
  color: rgba(255, 222, 206, 0.98);
  background: rgba(255, 145, 91, 0.16);
  border-color: rgba(255, 145, 91, 0.24);
}

app-contacts-map-view .contacts-map__toggle-group--muted .contacts-map__toggle-btn.active {
  color: rgba(196, 218, 255, 0.98);
  background: rgba(99, 146, 255, 0.16);
  border-color: rgba(99, 146, 255, 0.22);
}

app-contacts-map-view .contacts-map__frame {
  position: relative;
  height: clamp(540px, 72vh, 820px);
  min-height: 540px;
  overflow: hidden;
  margin-bottom: 0;
}

app-contacts-map-view .contacts-map__container {
  width: 100%;
  height: 100%;
  background: rgba(16, 12, 18, 0.82);
}

app-contacts-map-view .contacts-map__loading,
app-contacts-map-view .contacts-map__skeleton,
app-contacts-map-view .contacts-map__error {
  position: absolute;
  z-index: 10;
}

app-contacts-map-view .contacts-map__loading {
  top: 16px;
  right: 16px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 999px;
  background: rgba(15, 12, 17, 0.88);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.76);
  font-size: 13px;
  font-weight: 600;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

app-contacts-map-view .contacts-map__loading-spinner {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.18);
  border-top-color: rgba(255, 164, 121, 0.95);
  animation: contacts-map-spin 0.75s linear infinite;
}

app-contacts-map-view .contacts-map__skeleton,
app-contacts-map-view .contacts-map__error {
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

app-contacts-map-view .contacts-map__skeleton {
  overflow: hidden;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.01)), rgba(14, 11, 16, 0.94);
}

app-contacts-map-view .contacts-map__skeleton-grid {
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
  background-size: 84px 84px;
  opacity: 0.4;
}

app-contacts-map-view .contacts-map__skeleton-pulse {
  width: min(520px, 80%);
  height: min(320px, 44%);
  border-radius: 28px;
  background: radial-gradient(circle at center, rgba(255, 143, 88, 0.16), transparent 70%);
  filter: blur(20px);
  animation: contacts-map-pulse 1.8s ease-in-out infinite;
}

app-contacts-map-view .contacts-map__error {
  flex-direction: column;
  gap: 12px;
  padding: 24px;
  text-align: center;
  color: rgba(255, 255, 255, 0.8);
  background: rgba(11, 9, 12, 0.84);
}

app-contacts-map-view .contacts-map__error mat-icon {
  width: 32px;
  height: 32px;
  font-size: 32px;
  color: rgba(255, 132, 102, 0.96);
}

app-contacts-map-view .contacts-map__error h3 {
  margin: 0;
  font-size: 20px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.96);
}

app-contacts-map-view .contacts-map__error p {
  margin: 0;
  max-width: 420px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.66);
}

app-contacts-map-view .contacts-map__notice-stack {
  position: absolute;
  left: 16px;
  bottom: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-width: min(420px, 100% - 32px);
  z-index: 14;
  pointer-events: none;
}

app-contacts-map-view .contacts-map__notice {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(15, 12, 17, 0.92);
  color: rgba(255, 255, 255, 0.76);
  font-size: 13px;
  font-weight: 500;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

app-contacts-map-view .contacts-map__notice mat-icon {
  width: 16px;
  height: 16px;
  font-size: 16px;
  color: rgba(255, 176, 131, 0.94);
}

app-contacts-map-view .contacts-map__drawer {
  position: absolute;
  top: 16px;
  right: 16px;
  bottom: 16px;
  width: min(360px, 100% - 32px);
  z-index: 18;
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 18px;
  overflow: auto;
}

app-contacts-map-view .contacts-map__drawer-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

app-contacts-map-view .contacts-map__drawer-title {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}

app-contacts-map-view .contacts-map__drawer-title h3 {
  margin: 0;
  font-size: 20px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.94);
}

app-contacts-map-view .contacts-map__entity-badge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 28px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.04);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.72);
}

app-contacts-map-view .contacts-map__entity-badge--customer {
  color: rgba(255, 224, 208, 0.96);
  background: rgba(255, 144, 87, 0.14);
  border-color: rgba(255, 144, 87, 0.22);
}

app-contacts-map-view .contacts-map__entity-badge--lead {
  color: rgba(191, 215, 255, 0.96);
  background: rgba(103, 150, 255, 0.14);
  border-color: rgba(103, 150, 255, 0.2);
}

app-contacts-map-view .contacts-map__entity-badge--lost {
  color: rgba(255, 202, 196, 0.96);
  background: rgba(240, 102, 81, 0.14);
  border-color: rgba(240, 102, 81, 0.22);
}

app-contacts-map-view .contacts-map__drawer-body {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

app-contacts-map-view .contacts-map__detail-list,
app-contacts-map-view .contacts-map__stats-grid,
app-contacts-map-view .contacts-map__drawer-actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

app-contacts-map-view .contacts-map__detail-row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

app-contacts-map-view .contacts-map__detail-row mat-icon {
  width: 18px;
  height: 18px;
  font-size: 18px;
  margin-top: 1px;
  color: rgba(255, 176, 131, 0.92);
}

app-contacts-map-view .contacts-map__detail-row > div {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

app-contacts-map-view .contacts-map__detail-label,
app-contacts-map-view .contacts-map__stat-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.46);
}

app-contacts-map-view .contacts-map__detail-value,
app-contacts-map-view .contacts-map__stat-card strong {
  color: rgba(255, 255, 255, 0.92);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
}

app-contacts-map-view .contacts-map__stats-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

app-contacts-map-view .contacts-map__stat-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 14px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

app-contacts-map-view .contacts-map__zoom-controls {
  position: absolute;
  right: 16px;
  bottom: 16px;
  z-index: 16;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px;
}

app-contacts-map-view .contacts-map__zoom-controls .ui-icon-btn {
  width: 36px;
  height: 36px;
}

app-contacts-map-view .contacts-map__fullscreen-hint {
  position: absolute;
  right: 16px;
  bottom: 84px;
  z-index: 16;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  padding: 10px 14px;
  border-radius: 999px;
  background: rgba(15, 12, 17, 0.88);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.62);
  font-size: 12px;
  font-weight: 600;
}

app-lists-tags-tab .contacts-lists-tags {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-4);
}

app-lists-tags-tab .contacts-lists-tags__panel {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-height: 360px;
  margin-bottom: 0;
}

app-lists-tags-tab .contacts-lists-tags__panel-header {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

app-lists-tags-tab .contacts-lists-tags__eyebrow-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

app-lists-tags-tab .contacts-lists-tags__panel-copy {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  max-width: 34ch;
}

app-lists-tags-tab .contacts-lists-tags__panel-title {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.96);
  letter-spacing: -0.02em;
  line-height: 1.15;
}

app-lists-tags-tab .contacts-lists-tags__panel-subtitle {
  margin: 0;
  color: rgba(255, 255, 255, 0.62);
  font-size: 13px;
  line-height: 1.4;
}

app-lists-tags-tab .contacts-lists-tags__toolbar {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  align-items: center;
}

app-lists-tags-tab .contacts-lists-tags__input-group {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

app-lists-tags-tab .contacts-lists-tags__search,
app-lists-tags-tab .contacts-lists-tags__create-input {
  min-width: 0;
  flex: 1 1 auto;
}

app-lists-tags-tab .contacts-lists-tags__input-group .pill-btn-add,
app-lists-tags-tab .contacts-lists-tags__input-group .pill-btn-secondary {
  flex: 0 0 auto;
}

app-lists-tags-tab .contacts-lists-tags__content {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
}

app-lists-tags-tab .contacts-lists-tags__items {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 10px;
}

app-lists-tags-tab .contacts-lists-tags__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 14px;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.07);
  background: rgba(255, 255, 255, 0.03);
  transition: 0.18s ease;
}

app-lists-tags-tab .contacts-lists-tags__item:hover {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 176, 131, 0.12);
}

app-lists-tags-tab .contacts-lists-tags__item-main {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

app-lists-tags-tab .contacts-lists-tags__item-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 12px;
  background: rgba(255, 145, 91, 0.12);
  border: 1px solid rgba(255, 145, 91, 0.18);
  color: rgba(255, 190, 150, 0.96);
}

app-lists-tags-tab .contacts-lists-tags__item-icon--list {
  background: rgba(115, 151, 255, 0.12);
  border-color: rgba(115, 151, 255, 0.18);
  color: rgba(194, 214, 255, 0.96);
}

app-lists-tags-tab .contacts-lists-tags__item-copy {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

app-lists-tags-tab .contacts-lists-tags__item-title {
  color: rgba(255, 255, 255, 0.92);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

app-lists-tags-tab .contacts-lists-tags__item-meta {
  color: rgba(255, 255, 255, 0.5);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

app-lists-tags-tab .contacts-lists-tags__empty {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 168px;
  border: 1px dashed rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  color: rgba(255, 255, 255, 0.58);
  text-align: center;
}

app-lists-tags-tab .contacts-lists-tags__empty mat-icon {
  width: 22px;
  height: 22px;
  font-size: 22px;
  color: rgba(255, 176, 131, 0.88);
}

@keyframes contacts-map-spin {
  to {
    transform: rotate(360deg);
  }
}
@keyframes contacts-map-pulse {
  0%, 100% {
    opacity: 0.45;
    transform: scale(1);
  }
  50% {
    opacity: 0.9;
    transform: scale(1.04);
  }
}
@media (max-width: 1200px) {
  .ui-page--contacts .contacts-page__filter-summary {
    order: 3;
    width: 100%;
  }
  .ui-page--contacts .contacts-page__filter-actions {
    width: 100%;
    margin-left: 0;
    justify-content: flex-start;
  }
  app-contacts-map-view .contacts-map__toolbar-actions,
  app-contacts-map-view .contacts-map__control-groups {
    margin-left: 0;
  }
  app-contacts-map-view .contacts-map__drawer {
    width: min(340px, 100% - 32px);
  }
  app-lists-tags-tab .contacts-lists-tags {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 900px) {
  .ui-page--contacts .erp-header-primary {
    flex-direction: column;
    align-items: stretch;
  }
  .ui-page--contacts .erp-header-primary .header-right {
    margin-left: 0;
  }
  .ui-page--contacts .contacts-page__header-tabs {
    width: 100%;
  }
  .ui-page--contacts .selection-bar {
    flex-direction: column;
    align-items: stretch;
  }
  app-contacts-map-view .contacts-map__toolbar {
    padding: 14px;
  }
  app-contacts-map-view .contacts-map__frame {
    min-height: 500px;
    height: min(68vh, 680px);
  }
  app-contacts-map-view .contacts-map__drawer {
    top: auto;
    left: 16px;
    right: 16px;
    bottom: 16px;
    width: auto;
    max-height: min(58%, 420px);
  }
  app-contacts-map-view .contacts-map__stats-grid {
    grid-template-columns: 1fr;
  }
  app-contacts-map-view .contacts-map__zoom-controls {
    right: 12px;
    bottom: 12px;
  }
  app-lists-tags-tab .contacts-lists-tags__toolbar {
    grid-template-columns: 1fr;
  }
  app-lists-tags-tab .contacts-lists-tags__input-group,
  app-lists-tags-tab .contacts-lists-tags__item {
    flex-direction: column;
    align-items: stretch;
  }
  app-lists-tags-tab .contacts-lists-tags__panel-copy {
    max-width: none;
  }
  app-lists-tags-tab .contacts-lists-tags__item-actions {
    justify-content: flex-end;
  }
}
@media (max-width: 640px) {
  app-contacts-map-view .contacts-map__surface--fullscreen {
    inset: 8px;
    padding: 8px;
    border-radius: 20px;
  }
  app-contacts-map-view .contacts-map__toolbar-row {
    flex-direction: column;
    align-items: stretch;
  }
  app-contacts-map-view .contacts-map__toolbar-actions,
  app-contacts-map-view .contacts-map__control-groups {
    width: 100%;
    justify-content: flex-start;
  }
  app-contacts-map-view .contacts-map__toggle-group {
    width: 100%;
    overflow: auto;
  }
  app-contacts-map-view .contacts-map__fullscreen-hint {
    left: 12px;
    right: 12px;
    bottom: 12px;
  }
}
.ui-page--recovery-center .recovery-center-page {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-6);
}

.ui-page--recovery-center .erp-header-primary {
  align-items: flex-start;
  gap: var(--ui-space-4);
}

.ui-page--recovery-center .header-right {
  margin-left: auto;
}

.ui-page--recovery-center .recovery-center-page__filter-row {
  justify-content: space-between;
  gap: var(--ui-space-3);
  flex-wrap: wrap;
}

.ui-page--recovery-center .recovery-center-page__filter-group {
  flex-wrap: wrap;
  gap: var(--ui-space-2);
}

.ui-page--recovery-center .recovery-center-page__stats {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.ui-page--recovery-center .dashboard-snapshot-header {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.ui-page--recovery-center .dashboard-snapshot-title {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 183, 140, 0.92);
}

.ui-page--recovery-center .dashboard-snapshot-meta {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.ui-page--recovery-center .stats-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--ui-space-3);
}

.ui-page--recovery-center .stat-card {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  min-height: 164px;
  padding: var(--ui-space-5);
  border-radius: var(--ui-radius-2xl);
  border: 1px solid var(--ui-border);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02));
  text-align: left;
  cursor: pointer;
  transition: transform var(--ui-transition-base), border-color var(--ui-transition-base), background var(--ui-transition-base);
}

.ui-page--recovery-center .stat-card:hover,
.ui-page--recovery-center .stat-card.active {
  transform: translateY(-1px);
  border-color: rgba(255, 160, 118, 0.32);
  background: linear-gradient(155deg, rgba(255, 150, 100, 0.12), rgba(255, 255, 255, 0.04));
}

.ui-page--recovery-center .stat-header,
.ui-page--recovery-center .stat-value-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-3);
}

.ui-page--recovery-center .stat-label {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
}

.ui-page--recovery-center .stat-tooltip {
  width: 28px;
  height: 28px;
}

.ui-page--recovery-center .stat-value {
  font-size: clamp(28px, 3vw, 38px);
  font-weight: var(--ui-font-bold);
  line-height: 1;
  color: var(--ui-text-primary);
}

.ui-page--recovery-center .stat-trend {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 4px;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
}

.ui-page--recovery-center .stat-trend.trend-up {
  color: rgba(126, 229, 175, 0.96);
}

.ui-page--recovery-center .stat-trend.trend-down {
  color: rgba(255, 136, 112, 0.96);
}

.ui-page--recovery-center .stat-trend.trend-flat {
  color: rgba(255, 205, 134, 0.92);
}

.ui-page--recovery-center .stat-meta {
  margin-top: auto;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.ui-page--recovery-center .tab-content-container,
.ui-page--recovery-center .dashboard-shell {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
}

.ui-page--recovery-center .dashboard-section {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.ui-page--recovery-center .dashboard-section-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--ui-space-3);
  flex-wrap: wrap;
}

.ui-page--recovery-center .dashboard-section-title {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.ui-page--recovery-center .dashboard-section-subtitle {
  margin-top: 4px;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.ui-page--recovery-center .dashboard-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ui-space-4);
}

.ui-page--recovery-center .chart-card {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  min-height: 228px;
  padding: var(--ui-space-5);
}

.ui-page--recovery-center .chart-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-3);
}

.ui-page--recovery-center .chart-title {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.ui-page--recovery-center .chart-subtitle {
  margin-top: 4px;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.ui-page--recovery-center .chart-body {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--ui-space-3);
  flex: 1;
}

.ui-page--recovery-center .chart-body svg {
  width: 100%;
  min-height: 144px;
}

.ui-page--recovery-center .chart-axis {
  display: flex;
  justify-content: space-between;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.ui-page--recovery-center .chart-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 144px;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  text-align: center;
}

.ui-page--recovery-center .trend-line {
  fill: none;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ui-page--recovery-center .trend-line--primary {
  stroke: rgba(255, 146, 106, 0.96);
}

.ui-page--recovery-center .trend-line--secondary {
  stroke: rgba(255, 206, 126, 0.94);
}

.ui-page--recovery-center .trend-line--warning {
  stroke: rgba(255, 116, 104, 0.96);
}

.ui-page--recovery-center .trend-line--muted {
  stroke: rgba(255, 255, 255, 0.34);
  stroke-dasharray: 4 3;
}

.ui-page--recovery-center .trend-line--success {
  stroke: rgba(126, 229, 175, 0.96);
}

.ui-page--recovery-center .bar-list,
.ui-page--recovery-center .impact-bars,
.ui-page--recovery-center .recovery-metrics {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.ui-page--recovery-center .bar-row,
.ui-page--recovery-center .impact-bar {
  display: grid;
  grid-template-columns: minmax(0, 160px) minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--ui-space-3);
}

.ui-page--recovery-center .bar-label,
.ui-page--recovery-center .impact-label {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

.ui-page--recovery-center .bar-track,
.ui-page--recovery-center .impact-track {
  position: relative;
  height: 10px;
  border-radius: var(--ui-radius-full);
  background: rgba(255, 255, 255, 0.06);
  overflow: hidden;
}

.ui-page--recovery-center .bar-fill,
.ui-page--recovery-center .impact-segment {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, rgba(255, 140, 92, 0.98), rgba(255, 188, 126, 0.92));
}

.ui-page--recovery-center .segment-lost {
  background: linear-gradient(90deg, rgba(255, 116, 104, 0.95), rgba(255, 154, 118, 0.88));
}

.ui-page--recovery-center .segment-atRisk {
  background: linear-gradient(90deg, rgba(255, 196, 112, 0.95), rgba(255, 216, 158, 0.92));
}

.ui-page--recovery-center .segment-recovered {
  background: linear-gradient(90deg, rgba(111, 220, 169, 0.96), rgba(156, 237, 201, 0.92));
}

.ui-page--recovery-center .bar-value,
.ui-page--recovery-center .impact-value,
.ui-page--recovery-center .legend-value {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.ui-page--recovery-center .impact-panel {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  padding: var(--ui-space-5);
}

.ui-page--recovery-center .impact-legend {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-3);
}

.ui-page--recovery-center .legend-item {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: 8px 12px;
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border-light);
  background: rgba(255, 255, 255, 0.04);
}

.ui-page--recovery-center .legend-swatch {
  width: 10px;
  height: 10px;
  border-radius: 999px;
}

.ui-page--recovery-center .legend-label {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

.ui-page--recovery-center .recovery-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(320px, 1.05fr);
  gap: var(--ui-space-4);
}

.ui-page--recovery-center .recovery-card {
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-xl);
}

.ui-page--recovery-center .recovery-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

.ui-page--recovery-center .recovery-value {
  margin-top: var(--ui-space-3);
  font-size: clamp(24px, 2.4vw, 32px);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
}

.ui-page--recovery-center .recovery-meta,
.ui-page--recovery-center .warning-meta {
  margin-top: var(--ui-space-2);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.ui-page--recovery-center .warning-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ui-page--recovery-center .warning-card {
  min-height: 144px;
  padding: var(--ui-space-4);
}

.ui-page--recovery-center .warning-label {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

.ui-page--recovery-center .warning-value {
  margin-top: var(--ui-space-3);
  font-size: var(--ui-text-2xl);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
}

.ui-page--recovery-center .main-content-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(300px, 0.85fr);
  gap: var(--ui-space-4);
  align-items: start;
}

.ui-page--recovery-center .recovery-center-page__table-card {
  --gdt-radius: 24px;
  max-height: none;
}

.ui-page--recovery-center .recovery-center-page__table-header {
  padding: var(--ui-space-5) var(--ui-space-6) var(--ui-space-4);
  margin-bottom: 0;
}

.ui-page--recovery-center .recovery-center-page__table-actions {
  flex-wrap: wrap;
  justify-content: flex-end;
}

.ui-page--recovery-center .recovery-center-page__table-search {
  min-width: 240px;
  flex: 1 1 280px;
}

.ui-page--recovery-center .recovery-center-page__toolbar-actions {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.ui-page--recovery-center .recovery-center-page__table-scroll {
  padding: 0 var(--ui-space-6) var(--ui-space-6);
}

.ui-page--recovery-center .recovery-center-page__table {
  min-width: 980px;
}

.ui-page--recovery-center .recovery-center-page__table--customers th:nth-child(1),
.ui-page--recovery-center .recovery-center-page__table--customers td:nth-child(1),
.ui-page--recovery-center .recovery-center-page__table--dissatisfied th:nth-child(1),
.ui-page--recovery-center .recovery-center-page__table--dissatisfied td:nth-child(1) {
  width: 56px;
}

.ui-page--recovery-center .recovery-center-page__table--customers th:nth-child(8),
.ui-page--recovery-center .recovery-center-page__table--customers td:nth-child(8) {
  width: 120px;
}

.ui-page--recovery-center .recovery-center-page__table--customers th:nth-child(9),
.ui-page--recovery-center .recovery-center-page__table--customers td:nth-child(9),
.ui-page--recovery-center .recovery-center-page__table--dissatisfied th:nth-child(7),
.ui-page--recovery-center .recovery-center-page__table--dissatisfied td:nth-child(7) {
  width: 92px;
}

.ui-page--recovery-center .recovery-center-page__table--dissatisfied th:nth-child(5),
.ui-page--recovery-center .recovery-center-page__table--dissatisfied td:nth-child(5) {
  width: 260px;
}

.ui-page--recovery-center .recovery-center-page__table--branch th:nth-child(1),
.ui-page--recovery-center .recovery-center-page__table--branch td:nth-child(1) {
  width: 220px;
}

.ui-page--recovery-center .recovery-center-page__table .table-icon-btn {
  margin-inline: auto;
}

.ui-page--recovery-center .recovery-center-page__cell-filter {
  min-width: 0;
  width: 100%;
  max-width: 220px;
}

.ui-page--recovery-center .recovery-center-page__inline-meta {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.ui-page--recovery-center .recovery-center-page__sidebar {
  min-height: 100%;
  padding: var(--ui-space-5);
}

.ui-page--recovery-center .sidebar-header {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-bottom: var(--ui-space-4);
  border-bottom: 1px solid var(--ui-border-light);
}

.ui-page--recovery-center .sidebar-title {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.ui-page--recovery-center .sidebar-tag {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.ui-page--recovery-center .sidebar-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ui-space-2);
  padding: var(--ui-space-4) 0;
  border-bottom: 1px solid var(--ui-border-light);
}

.ui-page--recovery-center .sidebar-cta-btn {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 68px;
  padding: var(--ui-space-3) var(--ui-space-2);
  border-radius: var(--ui-radius-xl);
  border: 1px solid var(--ui-border-light);
  background: rgba(255, 255, 255, 0.04);
  cursor: pointer;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
  text-decoration: none;
  text-align: center;
  transition: background var(--ui-transition-base), border-color var(--ui-transition-base), transform var(--ui-transition-base);
}

.ui-page--recovery-center .sidebar-cta-btn mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
}

.ui-page--recovery-center .sidebar-cta-btn:hover {
  transform: translateY(-1px);
  background: rgba(255, 255, 255, 0.07);
}

.ui-page--recovery-center .sidebar-cta-btn--primary {
  background: rgba(255, 146, 100, 0.1);
  border-color: rgba(255, 146, 100, 0.24);
  color: rgba(255, 214, 191, 0.96);
}

.ui-page--recovery-center .sidebar-cta-btn--primary:hover {
  background: rgba(255, 146, 100, 0.18);
  border-color: rgba(255, 146, 100, 0.38);
}

.ui-page--recovery-center .sidebar-cta-btn--whatsapp {
  background: rgba(37, 211, 102, 0.08);
  border-color: rgba(37, 211, 102, 0.22);
  color: rgba(150, 240, 180, 0.96);
}

.ui-page--recovery-center .sidebar-cta-btn--whatsapp:hover {
  background: rgba(37, 211, 102, 0.14);
  border-color: rgba(37, 211, 102, 0.34);
}

.ui-page--recovery-center .sidebar-cta-btn--secondary {
  background: rgba(255, 255, 255, 0.05);
  border-color: var(--ui-border);
  color: var(--ui-text-secondary);
}

.ui-page--recovery-center .sidebar-cta-btn--secondary:hover {
  background: rgba(255, 255, 255, 0.09);
}

.ui-page--recovery-center .sidebar-content {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  padding-top: var(--ui-space-4);
}

.ui-page--recovery-center .sidebar-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-3);
}

.ui-page--recovery-center .sidebar-section,
.ui-page--recovery-center .sidebar-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ui-page--recovery-center .field-label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 183, 140, 0.84);
}

.ui-page--recovery-center .field-value,
.ui-page--recovery-center .field-text {
  font-size: var(--ui-text-sm);
  line-height: 1.6;
  color: var(--ui-text-secondary);
}

.ui-page--recovery-center .field-muted {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.ui-page--recovery-center .interaction-list,
.ui-page--recovery-center .timeline-compact,
.ui-page--recovery-center .details-content {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.ui-page--recovery-center .interaction-item,
.ui-page--recovery-center .timeline-item,
.ui-page--recovery-center .mini-note,
.ui-page--recovery-center .mini-audit {
  padding: 10px 12px;
  border-radius: var(--ui-radius-lg);
  border: 1px solid var(--ui-border-light);
  background: rgba(255, 255, 255, 0.03);
}

.ui-page--recovery-center .interaction-channel,
.ui-page--recovery-center .timeline-stage,
.ui-page--recovery-center .audit-time,
.ui-page--recovery-center .note-meta {
  display: block;
  font-size: var(--ui-text-xs);
  color: rgba(255, 183, 140, 0.84);
  margin-bottom: 4px;
}

.ui-page--recovery-center .interaction-text,
.ui-page--recovery-center .timeline-note,
.ui-page--recovery-center .audit-action,
.ui-page--recovery-center .note-text {
  font-size: var(--ui-text-sm);
  line-height: 1.5;
  color: var(--ui-text-secondary);
}

.ui-page--recovery-center .tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
}

.ui-page--recovery-center .mini-tag {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  border: 1px solid rgba(255, 176, 131, 0.18);
  background: rgba(255, 176, 131, 0.08);
  font-size: var(--ui-text-xs);
  color: rgba(255, 220, 201, 0.94);
}

.ui-page--recovery-center .sidebar-details {
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-xl);
  background: rgba(255, 255, 255, 0.02);
}

.ui-page--recovery-center .sidebar-details summary {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-3) var(--ui-space-4);
  cursor: pointer;
  list-style: none;
  color: var(--ui-text-secondary);
}

.ui-page--recovery-center .sidebar-details summary::-webkit-details-marker {
  display: none;
}

.ui-page--recovery-center .sidebar-details .details-content {
  padding: 0 var(--ui-space-4) var(--ui-space-4);
}

.ui-page--recovery-center .note-input-compact {
  display: flex;
  align-items: flex-end;
  gap: var(--ui-space-2);
}

.ui-page--recovery-center .note-input-compact textarea {
  flex: 1;
  min-height: 72px;
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-lg);
  border: 1px solid var(--ui-border-light);
  background: rgba(255, 255, 255, 0.04);
  color: var(--ui-text-primary);
  resize: vertical;
}

.ui-page--recovery-center .note-input-compact textarea:focus {
  outline: none;
  border-color: var(--ui-border-focus);
  box-shadow: 0 0 0 3px var(--ui-brand-glow);
}

.ui-page--recovery-center .add-note-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 999px;
  border: 1px solid rgba(255, 160, 118, 0.24);
  background: rgba(255, 160, 118, 0.12);
  color: rgba(255, 214, 191, 0.96);
  cursor: pointer;
  transition: background var(--ui-transition-base), border-color var(--ui-transition-base), transform var(--ui-transition-base);
}

.ui-page--recovery-center .add-note-btn:hover {
  background: rgba(255, 160, 118, 0.18);
  border-color: rgba(255, 160, 118, 0.34);
  transform: translateY(-1px);
}

.ui-page--recovery-center .sidebar-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-3);
  min-height: 240px;
  text-align: center;
  color: var(--ui-text-muted);
}

.ui-page--recovery-center .sidebar-empty mat-icon {
  width: 40px;
  height: 40px;
  font-size: 40px;
  color: rgba(255, 176, 131, 0.68);
}

/* Empty state with action buttons */
.ui-page--recovery-center .empty-state--action {
  gap: var(--ui-space-4);
}

.ui-page--recovery-center .empty-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-3);
  flex-wrap: wrap;
  margin-top: var(--ui-space-2);
}

.ui-page--recovery-center .btn-glass--sm {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  min-height: 36px;
  padding: 0 var(--ui-space-4);
  border-radius: var(--ui-radius-full);
  border: 1px solid rgba(255, 146, 100, 0.24);
  background: rgba(255, 146, 100, 0.1);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: rgba(255, 214, 191, 0.96);
  cursor: pointer;
  transition: background var(--ui-transition-base), border-color var(--ui-transition-base), transform var(--ui-transition-base);
}

.ui-page--recovery-center .btn-glass--sm mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.ui-page--recovery-center .btn-glass--sm:hover {
  background: rgba(255, 146, 100, 0.16);
  border-color: rgba(255, 146, 100, 0.36);
  transform: translateY(-1px);
}

.ui-page--recovery-center .btn-glass--outline {
  background: rgba(255, 255, 255, 0.04);
  border-color: var(--ui-border);
  color: var(--ui-text-secondary);
}

.ui-page--recovery-center .btn-glass--outline:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: var(--ui-border-focus);
}

.ui-page--recovery-center .recovery-center-page__trend-indicator {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.ui-page--recovery-center .recovery-center-page__trend-indicator.trend-up {
  color: rgba(126, 229, 175, 0.96);
}

.ui-page--recovery-center .recovery-center-page__trend-indicator.trend-down {
  color: rgba(255, 136, 112, 0.96);
}

.ui-page--recovery-center .recovery-center-page__trend-indicator.trend-flat {
  color: rgba(255, 205, 134, 0.92);
}

.recovery-center-smart-filter-menu .filter-menu-header {
  padding: var(--ui-space-2) var(--ui-space-3) var(--ui-space-1);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 183, 140, 0.84);
}

.recovery-center-smart-filter-menu .mat-mdc-menu-item,
.recovery-center-smart-filter-menu .mat-menu-item {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

@media (max-width: 1280px) {
  .ui-page--recovery-center .stats-grid,
  .ui-page--recovery-center .warning-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ui-page--recovery-center .dashboard-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ui-page--recovery-center .recovery-layout,
  .ui-page--recovery-center .main-content-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width: 900px) {
  .ui-page--recovery-center .erp-header-primary {
    flex-direction: column;
  }
  .ui-page--recovery-center .header-right {
    width: 100%;
    margin-left: 0;
  }
  .ui-page--recovery-center .header-tab-navigation,
  .ui-page--recovery-center .pill-tabs-container {
    width: 100%;
  }
  .ui-page--recovery-center .pill-tabs-container {
    justify-content: flex-start;
    overflow-x: auto;
  }
  .ui-page--recovery-center .stats-grid,
  .ui-page--recovery-center .dashboard-grid,
  .ui-page--recovery-center .warning-grid,
  .ui-page--recovery-center .sidebar-row {
    grid-template-columns: minmax(0, 1fr);
  }
  .ui-page--recovery-center .bar-row,
  .ui-page--recovery-center .impact-bar {
    grid-template-columns: minmax(0, 1fr);
  }
  .ui-page--recovery-center .recovery-center-page__table-header {
    padding-inline: var(--ui-space-5);
  }
  .ui-page--recovery-center .recovery-center-page__table-scroll {
    padding-inline: var(--ui-space-5);
  }
}
.ui-page--psf .psf-page__filter-row {
  width: 100%;
  justify-content: space-between;
  gap: var(--ui-space-3);
}

.ui-page--psf .psf-page__search {
  flex: 1 1 320px;
  max-width: 420px;
}

.ui-page--psf .psf-page__filter-group {
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--ui-space-2);
}

.ui-page--psf .psf-page__showing-chip {
  white-space: nowrap;
}

.ui-page--psf .psf-page__table-card {
  --gdt-radius: 24px;
  max-height: none;
}

.ui-page--psf .psf-page__table-header {
  margin-bottom: 0;
  padding: var(--ui-space-5) var(--ui-space-6) var(--ui-space-3);
  gap: var(--ui-space-3);
}

.ui-page--psf .psf-page__table-header .glass-table-header__right {
  flex-wrap: wrap;
  justify-content: flex-end;
}

.ui-page--psf .psf-page__table-header .glass-table-header__titles {
  gap: 2px;
}

.ui-page--psf .psf-page__table-header .glass-table-title {
  font-size: var(--ui-text-xl);
}

.ui-page--psf .psf-page__table-header .glass-table-meta {
  font-size: var(--ui-text-xs);
  line-height: 1.45;
}

.ui-page--psf .glass-table-wrap {
  padding-top: var(--ui-space-2);
}

.ui-page--psf .psf-table {
  min-width: 1120px;
}

.ui-page--psf .psf-table tbody {
  max-height: calc(100vh - 390px);
}

.ui-page--psf .psf-table th:nth-child(1),
.ui-page--psf .psf-table td:nth-child(1) {
  width: 64px;
}

.ui-page--psf .psf-table th:nth-child(4),
.ui-page--psf .psf-table td:nth-child(4) {
  width: 160px;
}

.ui-page--psf .psf-table th:nth-child(6),
.ui-page--psf .psf-table td:nth-child(6) {
  width: 140px;
}

.ui-page--psf .psf-table th:nth-child(7),
.ui-page--psf .psf-table td:nth-child(7) {
  width: 172px;
}

.ui-page--psf .psf-table th:nth-child(9),
.ui-page--psf .psf-table td:nth-child(9) {
  width: 132px;
}

.ui-page--psf .psf-table td {
  padding-top: 14px;
  padding-bottom: 14px;
}

.ui-page--psf .psf-table__row-index {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 var(--ui-space-2);
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.04);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.04em;
}

.ui-page--psf .psf-table__stack {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.ui-page--psf .psf-table__stack .cell-primary-name,
.ui-page--psf .psf-table__stack .cell-strong,
.ui-page--psf .psf-table__stack .cell-muted {
  margin: 0;
}

.ui-page--psf .psf-table__vehicle-title {
  line-height: 1.45;
  color: var(--ui-text-secondary);
}

.ui-page--psf .psf-table__channel-pill {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: 6px 10px;
  border-radius: var(--ui-radius-full);
  border: 1px solid rgba(37, 211, 102, 0.22);
  background: rgba(37, 211, 102, 0.08);
  color: rgba(181, 255, 207, 0.96);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  white-space: nowrap;
}

.ui-page--psf .psf-table__channel-pill img {
  width: 16px;
  height: 16px;
  object-fit: contain;
}

@media (max-width: 1024px) {
  .ui-page--psf .psf-page__filter-row {
    align-items: stretch;
  }
  .ui-page--psf .psf-page__filter-group {
    justify-content: flex-start;
    margin-left: 0;
  }
}
@media (max-width: 640px) {
  .ui-page--psf .psf-page__search {
    max-width: none;
  }
  .ui-page--psf .psf-page__showing-chip {
    width: 100%;
    justify-content: center;
  }
}
.reminders-page .glass-table-card {
  --gdt-radius: 24px;
}
.reminders-page .reminders-table__header {
  margin-bottom: 0;
  padding-bottom: var(--ui-space-4);
}
.reminders-page .reminders-table__header .glass-table-meta {
  max-width: 42rem;
}
.reminders-page .reminders-table__header .glass-table-header__right {
  flex-wrap: wrap;
  justify-content: flex-end;
}
.reminders-page .glass-table-wrap {
  padding-top: var(--ui-space-2);
}
.reminders-page .glass-table th:nth-child(1),
.reminders-page .glass-table td:nth-child(1) {
  width: 64px;
}
.reminders-page .glass-table th:nth-child(11),
.reminders-page .glass-table td:nth-child(11) {
  width: 168px;
}
.reminders-page .glass-table td {
  padding-top: 14px;
  padding-bottom: 14px;
}
.reminders-page .reminders-table__row-index {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 var(--ui-space-2);
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.04);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.04em;
}
.reminders-page .reminders-table__stack {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.reminders-page .reminders-table__stack .cell-primary-name,
.reminders-page .reminders-table__stack .cell-muted,
.reminders-page .reminders-table__stack .cell-primary-sub {
  margin: 0;
}
.reminders-page .reminders-table__stack .cell-chip {
  width: fit-content;
  max-width: 100%;
}
.reminders-page .reminders-table__stack--vehicle .cell-chip {
  margin-bottom: 2px;
}
.reminders-page .reminders-table__vehicle-title {
  line-height: 1.45;
  color: var(--ui-text-secondary);
}
.reminders-page .reminders-table__type-chip--service {
  background: rgba(96, 165, 250, 0.12);
  border-color: rgba(96, 165, 250, 0.28);
}
.reminders-page .reminders-table__type-chip--service .cell-chip-icon {
  color: rgba(96, 165, 250, 0.95);
}
.reminders-page .reminders-table__type-chip--service .cell-chip-text {
  color: rgba(191, 219, 254, 0.96);
}
.reminders-page .glass-table .glass-status-chip {
  max-width: 100%;
  justify-content: center;
}
.reminders-page .actions-cell {
  text-align: right;
}
.reminders-page .reminders-table__actions {
  justify-content: flex-end;
}
.reminders-page .glass-pagination .pagination-size {
  color: var(--ui-text-muted);
}
.reminders-page .glass-pagination .pagination-size span {
  white-space: nowrap;
}

@media (max-width: 1280px) {
  .reminders-page .reminders-table__header {
    align-items: flex-start;
  }
  .reminders-page .reminders-table__header .glass-table-header__right {
    justify-content: flex-start;
  }
  .reminders-page .glass-table th:nth-child(11),
  .reminders-page .glass-table td:nth-child(11) {
    width: 152px;
  }
}
/* ==========================================================================
   ACTION DASHBOARD — Decision-Driven Execution Engine
   ==========================================================================
   Scoped under .crm-leads-page (page contract)
   All values reference tokens from tokens.scss
   ========================================================================== */
.crm-leads-page {
  /* ==========================================================================
     DASHBOARD CONTAINER
     ========================================================================== */
  /* ==========================================================================
     BODY: 2-column layout (sections + pipeline)
     ========================================================================== */
  /* ==========================================================================
     ACTION SECTIONS (Call Now / Overdue / Cold)
     ========================================================================== */
  /* Inline Pipeline Strip */
  /* Empty Tab Placeholder */
  /* Insight Bar */
  /* ==========================================================================
     ACTION ROW — Individual lead card inside a section
     ========================================================================== */
  /* Score Circle */
  /* Lead Info */
  /* Metrics */
  /* Time */
  /* Assignee */
  /* CTA Buttons */
  /* ==========================================================================
     EMPTY STATE
     ========================================================================== */
  /* ==========================================================================
     PIPELINE SNAPSHOT — Right panel
     ========================================================================== */
  /* ==========================================================================
     VIEW TOGGLE (when in table mode)
     ========================================================================== */
  /* Score badge variants */
  /* Pulsing animation for overdue indicators */
}
.crm-leads-page .action-dashboard {
  margin-bottom: var(--ui-space-5);
}
.crm-leads-page .crm-action-drawer-overlay .mat-drawer.glass-sidenav.crm-action-queue-sidenav {
  width: 760px;
  max-width: 94vw;
}
.crm-leads-page .crm-action-queue-drawer .glass-drawer-header {
  align-items: flex-start;
  gap: var(--ui-space-4);
}
.crm-leads-page .crm-action-queue-drawer .drawer-item-name {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}
.crm-leads-page .crm-action-queue-drawer .drawer-item-name .header-icon {
  color: var(--ui-brand-light);
  filter: drop-shadow(0 0 8px rgba(255, 122, 61, 0.45));
}
.crm-leads-page .action-dashboard--drawer {
  margin-bottom: 0;
}
.crm-leads-page .action-dashboard--drawer .action-section {
  border-radius: var(--ui-radius-lg);
}
.crm-leads-page .action-dashboard--drawer .action-section__list {
  max-height: none;
  overflow: visible;
}
.crm-leads-page .action-dashboard--drawer .pill-tabs-container {
  max-width: 100%;
}
.crm-leads-page .action-dashboard__loading-line {
  width: 100%;
  height: 40px;
  border-radius: var(--ui-radius-sm);
  margin-bottom: var(--ui-space-1);
}
.crm-leads-page .action-queue-trigger {
  gap: var(--ui-space-2);
}
.crm-leads-page .action-queue-trigger__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 var(--ui-space-2);
  border-radius: var(--ui-radius-full);
  background: rgba(255, 122, 61, 0.16);
  border: 1px solid rgba(255, 122, 61, 0.28);
  color: var(--ui-brand-light);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
}
.crm-leads-page .action-dashboard__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--ui-space-4);
  padding: 0 var(--ui-space-1);
}
.crm-leads-page .action-dashboard__title {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
}
.crm-leads-page .action-dashboard__title mat-icon {
  font-size: var(--ui-text-2xl);
  width: 24px;
  height: 24px;
  color: var(--ui-brand-light);
}
.crm-leads-page .action-dashboard__title h2 {
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  margin: 0;
  letter-spacing: -0.02em;
}
.crm-leads-page .action-dashboard__subtitle {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-subtle);
  font-weight: var(--ui-font-normal);
}
.crm-leads-page .action-dashboard__controls {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}
.crm-leads-page .btn-glass--sm {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-full);
  cursor: pointer;
  transition: all var(--ui-transition-base);
  backdrop-filter: var(--ui-blur-sm);
}
.crm-leads-page .btn-glass--sm mat-icon {
  font-size: var(--ui-text-md);
  width: 16px;
  height: 16px;
}
.crm-leads-page .btn-glass--sm:hover {
  background: var(--ui-surface-active);
  color: var(--ui-text-primary);
  border-color: var(--ui-border-hover);
}
.crm-leads-page .action-dashboard__body {
  display: flex;
  flex-direction: column;
}
.crm-leads-page .action-dashboard__sections {
  display: flex;
  flex-direction: column;
}
.crm-leads-page .action-section {
  background: var(--ui-glass-light);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-md);
  padding: var(--ui-space-3);
  backdrop-filter: var(--ui-blur-md);
  transition: all var(--ui-transition-slow);
}
.crm-leads-page .action-section--hot {
  border-color: rgba(255, 153, 102, 0.2);
  box-shadow: inset 0 1px 0 rgba(255, 153, 102, 0.1);
}
.crm-leads-page .action-section--overdue {
  border-color: var(--ui-danger-border);
  box-shadow: inset 0 1px 0 var(--ui-danger-bg);
}
.crm-leads-page .action-section--cold {
  border-color: var(--ui-info-border);
  box-shadow: inset 0 1px 0 var(--ui-info-bg);
}
.crm-leads-page .action-section__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-2);
  margin-bottom: var(--ui-space-2);
}
.crm-leads-page .action-pipeline-strip {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin-left: auto;
}
.crm-leads-page .pipeline-pill {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  padding: 2px var(--ui-space-2);
  background: var(--ui-surface-2);
  border-radius: var(--ui-radius-full);
  white-space: nowrap;
}
.crm-leads-page .pipeline-pill--muted {
  color: var(--ui-text-muted);
  font-weight: var(--ui-font-semibold);
}
.crm-leads-page .confidence-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.crm-leads-page .confidence-dot.confidence--high {
  background: var(--ui-success);
}
.crm-leads-page .confidence-dot.confidence--medium {
  background: var(--ui-warning);
}
.crm-leads-page .confidence-dot.confidence--low {
  background: var(--ui-danger);
}
.crm-leads-page .action-empty-tab {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--ui-space-6) var(--ui-space-4);
  color: var(--ui-text-subtle);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
}
.crm-leads-page .action-insight-bar {
  padding: var(--ui-space-2) var(--ui-space-3);
  margin-top: var(--ui-space-2);
  background: rgba(255, 153, 102, 0.06);
  border-top: 1px solid rgba(255, 153, 102, 0.1);
  border-radius: 0 0 var(--ui-radius-md) var(--ui-radius-md);
}
.crm-leads-page .action-insight-bar span {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-secondary);
}
.crm-leads-page .action-section__badge {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  padding: var(--ui-space-1) var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  letter-spacing: 0.02em;
}
.crm-leads-page .action-section__badge--hot {
  background: rgba(255, 153, 102, 0.15);
  color: var(--ui-brand-light);
  border: 1px solid rgba(255, 153, 102, 0.3);
}
.crm-leads-page .action-section__badge--overdue {
  background: var(--ui-danger-bg);
  color: var(--ui-danger);
  border: 1px solid var(--ui-danger-border);
  animation: overduePulse 2s ease-in-out infinite;
}
.crm-leads-page .action-section__badge--cold {
  background: var(--ui-info-bg);
  color: var(--ui-info);
  border: 1px solid var(--ui-info-border);
}
.crm-leads-page .action-section__count {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-subtle);
}
.crm-leads-page .action-section__list {
  display: flex;
  flex-direction: column;
  gap: 2px;
  max-height: 180px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.1) transparent;
}
.crm-leads-page .action-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-sm);
  cursor: pointer;
  transition: all var(--ui-transition-spring);
  position: relative;
}
.crm-leads-page .action-row:hover {
  background: var(--ui-surface-hover);
  transform: translateX(2px);
}
.crm-leads-page .action-row:active {
  transform: scale(0.995);
}
.crm-leads-page .action-row--hot:hover {
  background: rgba(255, 153, 102, 0.08);
}
.crm-leads-page .action-row--overdue:hover {
  background: var(--ui-danger-bg);
}
.crm-leads-page .action-row--cold:hover {
  background: var(--ui-info-bg);
}
.crm-leads-page .action-row__score {
  flex-shrink: 0;
}
.crm-leads-page .action-row__score .score-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  letter-spacing: -0.02em;
}
.crm-leads-page .action-row__score .overdue-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--ui-danger-bg);
  color: var(--ui-danger);
  border: 1.5px solid var(--ui-danger-border);
  animation: overduePulse 2s ease-in-out infinite;
}
.crm-leads-page .action-row__score .overdue-badge mat-icon {
  font-size: var(--ui-text-lg);
  width: 18px;
  height: 18px;
}
.crm-leads-page .action-row__info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.crm-leads-page .action-row__name {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.crm-leads-page .action-row__reason {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  color: var(--ui-brand-light);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.crm-leads-page .action-row__reason--overdue {
  color: var(--ui-danger);
}
.crm-leads-page .action-row__reason--cold {
  color: var(--ui-info);
}
.crm-leads-page .action-row__metrics {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  flex-shrink: 0;
}
.crm-leads-page .action-row__revenue {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  color: var(--ui-success);
}
.crm-leads-page .action-row__probability {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
}
.crm-leads-page .action-row__time {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-subtle);
  font-weight: var(--ui-font-medium);
  white-space: nowrap;
  flex-shrink: 0;
  min-width: 55px;
  text-align: right;
}
.crm-leads-page .action-row__assignee {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  font-weight: var(--ui-font-medium);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 80px;
  flex-shrink: 0;
}
.crm-leads-page .action-row__call-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  padding: var(--ui-space-2) var(--ui-space-4);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  color: #fff;
  background: var(--ui-brand-gradient);
  border: none;
  border-radius: var(--ui-radius-full);
  cursor: pointer;
  transition: all var(--ui-transition-base);
  flex-shrink: 0;
  box-shadow: var(--ui-shadow-glow);
}
.crm-leads-page .action-row__call-btn mat-icon {
  font-size: 15px;
  width: 15px;
  height: 15px;
}
.crm-leads-page .action-row__call-btn:hover {
  transform: scale(1.05);
  box-shadow: 0 4px 16px rgba(255, 120, 79, 0.5);
}
.crm-leads-page .action-row__call-btn:active {
  transform: scale(0.97);
}
.crm-leads-page .action-row__secondary-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 1px solid var(--ui-border-hover);
  border-radius: 50%;
  background: var(--ui-surface-1);
  color: var(--ui-text-muted);
  cursor: pointer;
  transition: all var(--ui-transition-base);
  flex-shrink: 0;
}
.crm-leads-page .action-row__secondary-btn mat-icon {
  font-size: var(--ui-text-md);
  width: 16px;
  height: 16px;
}
.crm-leads-page .action-row__secondary-btn:hover {
  background: var(--ui-surface-active);
  color: var(--ui-text-primary);
  border-color: rgba(255, 255, 255, 0.25);
}
.crm-leads-page .action-dashboard__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--ui-space-12) var(--ui-space-6);
  text-align: center;
}
.crm-leads-page .action-dashboard__empty mat-icon {
  font-size: 48px;
  width: 48px;
  height: 48px;
  color: var(--ui-success);
  opacity: 0.5;
  margin-bottom: var(--ui-space-3);
}
.crm-leads-page .action-dashboard__empty h3 {
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-secondary);
  margin: 0 0 var(--ui-space-2) 0;
}
.crm-leads-page .action-dashboard__empty p {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-subtle);
  margin: 0;
}
.crm-leads-page .action-dashboard__pipeline {
  position: sticky;
  top: var(--ui-space-5);
}
.crm-leads-page .pipeline-card {
  background: var(--ui-glass-light);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-xl);
  padding: var(--ui-space-5);
  backdrop-filter: var(--ui-blur-md);
}
.crm-leads-page .pipeline-card__header {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin-bottom: var(--ui-space-4);
  padding-bottom: var(--ui-space-3);
  border-bottom: 1px solid var(--ui-border-light);
}
.crm-leads-page .pipeline-card__header mat-icon {
  font-size: var(--ui-text-lg);
  width: 18px;
  height: 18px;
  color: var(--ui-brand-light);
}
.crm-leads-page .pipeline-card__header span {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-secondary);
}
.crm-leads-page .pipeline-card__metrics {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}
.crm-leads-page .pipeline-metric {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}
.crm-leads-page .pipeline-metric__label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.crm-leads-page .pipeline-metric__value {
  font-size: 15px;
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
}
.crm-leads-page .pipeline-card__confidence {
  margin-top: var(--ui-space-3);
  padding-top: var(--ui-space-3);
  border-top: 1px solid var(--ui-border-light);
  text-align: center;
}
.crm-leads-page .confidence-badge {
  display: inline-block;
  padding: var(--ui-space-1) var(--ui-space-3);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  border-radius: var(--ui-radius-full);
}
.crm-leads-page .confidence--high {
  background: var(--ui-success-bg);
  color: var(--ui-success);
  border: 1px solid var(--ui-success-border);
}
.crm-leads-page .confidence--medium {
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
  border: 1px solid var(--ui-warning-border);
}
.crm-leads-page .confidence--low {
  background: var(--ui-danger-bg);
  color: var(--ui-danger);
  border: 1px solid var(--ui-danger-border);
}
.crm-leads-page .pipeline-card__insight {
  margin-top: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-3);
  background: rgba(255, 153, 102, 0.08);
  border: 1px solid rgba(255, 153, 102, 0.15);
  border-radius: var(--ui-radius-md);
}
.crm-leads-page .pipeline-card__insight span {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-secondary);
  line-height: 1.5;
}
.crm-leads-page .view-toggle {
  display: flex;
  justify-content: flex-end;
  margin-bottom: var(--ui-space-3);
}
.crm-leads-page .action-row .score--high {
  background: var(--ui-success-bg);
  color: var(--ui-success);
  border: 1.5px solid var(--ui-success-border);
}
.crm-leads-page .action-row .score--mid {
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
  border: 1.5px solid var(--ui-warning-border);
}
.crm-leads-page .action-row .score--low {
  background: var(--ui-danger-bg);
  color: var(--ui-danger);
  border: 1.5px solid var(--ui-danger-border);
}
@keyframes overduePulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.6;
  }
}

/* ==========================================================================
   EXECUTION ENGINE — Phase 3 UI
   ========================================================================== */
/* 🔥 Start Calling Button */
.btn-start-calling {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-4);
  background: linear-gradient(135deg, #f97316, #ea580c);
  color: #fff;
  border: none;
  border-radius: var(--ui-radius-md);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  cursor: pointer;
  transition: all var(--ui-transition-base);
  box-shadow: 0 2px 10px rgba(249, 115, 22, 0.3);
}
.btn-start-calling mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}
.btn-start-calling:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(249, 115, 22, 0.4);
  background: linear-gradient(135deg, #fb923c, #f97316);
}
.btn-start-calling:active {
  transform: translateY(0);
}

/* Daily Execution Tracker Strip */
.exec-tracker {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-2) var(--ui-space-4);
  margin-bottom: var(--ui-space-3);
  background: var(--ui-glass-light);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-md);
  backdrop-filter: var(--ui-blur-sm);
}

.exec-tracker__title {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  white-space: nowrap;
}

.exec-tracker__stats {
  display: flex;
  gap: var(--ui-space-3);
  flex-wrap: wrap;
}

.exec-stat {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-subtle);
}
.exec-stat strong {
  font-weight: 800;
  color: var(--ui-text-primary);
  margin-right: 2px;
}

.exec-stat--success strong {
  color: var(--ui-success);
}

.exec-stat--danger strong {
  color: var(--ui-danger);
}

/* Overdue Pressure Banner */
.overdue-pressure-banner {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-4);
  margin-bottom: var(--ui-space-3);
  background: rgba(239, 68, 68, 0.08);
  border: 1px solid rgba(239, 68, 68, 0.2);
  border-radius: var(--ui-radius-md);
  cursor: pointer;
  transition: all var(--ui-transition-base);
  color: var(--ui-text-subtle);
  font-size: var(--ui-text-sm);
}
.overdue-pressure-banner mat-icon:first-child {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: var(--ui-danger);
  animation: overduePulse 2s ease-in-out infinite;
}
.overdue-pressure-banner strong {
  color: var(--ui-danger);
}
.overdue-pressure-banner:hover {
  background: rgba(239, 68, 68, 0.12);
  border-color: rgba(239, 68, 68, 0.3);
}

.overdue-pressure-banner__arrow {
  margin-left: auto;
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
  color: var(--ui-danger) !important;
}

/* ==========================================================================
   SMARTFLO INTEGRATION STYLES
   ========================================================================== */
/* Amber info banner — shown when Smartflo is not connected */
.smartflo-required-banner {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-4);
  margin-bottom: var(--ui-space-3);
  background: rgba(245, 158, 11, 0.08);
  border: 1px solid rgba(245, 158, 11, 0.25);
  border-radius: var(--ui-radius-md);
  color: var(--ui-text-subtle);
  font-size: var(--ui-text-sm);
}
.smartflo-required-banner mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: #d97706;
  flex-shrink: 0;
}
.smartflo-required-banner span {
  line-height: 1.5;
}
.smartflo-required-banner strong {
  color: #d97706;
  font-weight: 700;
}
.smartflo-required-banner a {
  color: var(--ui-brand-light);
  text-decoration: underline;
  margin-left: 4px;
}
.smartflo-required-banner a:hover {
  opacity: 0.8;
}

/* Collapsed pipeline insight strip — when no data */
.action-insight-bar--empty {
  background: transparent;
  border-color: transparent;
}
.action-insight-bar--empty span {
  color: var(--ui-text-subtle);
  font-style: italic;
  opacity: 0.7;
}

/* Pass-through wrapper for <app-click-to-call> in queue rows */
.crm-leads-page .action-row app-click-to-call {
  flex-shrink: 0;
}
.crm-leads-page .action-row app-click-to-call .ctc-wrapper {
  margin: 0;
}

/* ==========================================================================
   PAYABLES PAGE — Scoped Page-Level Contract
   ==========================================================================
   This contract provides page-specific styling for /console/payables.

   SCOPE: All styles scoped under .payables-page root class.

   USES:
   - ui/tables/glass-table.scss for table base
   - ui/tables/data-table.scss for cell semantics  
   - ui/headers/stat-cards.scss for stat cards

   PROVIDES:
   - Dashboard KPI row
   - Action zone (urgent/upcoming cards)
   - Payables table structure
   - Status pill variants
   - Timeline cell styling
   ========================================================================== */
/* mat-sidenav-container must fill the full page height */
.payables-drawer-container {
  width: 100%;
  height: 100%;
  display: block;
  /* Payables statement drawer extends the shared glass sidenav contract */
  /* The mat-sidenav inner content div needs flex column too */
  /* Header */
  /* Body — scrollable */
}
.payables-drawer-container .mat-drawer.glass-sidenav.payables-statement-drawer {
  width: 480px;
  display: flex;
  flex-direction: column;
  background: radial-gradient(circle at top left, rgba(255, 133, 74, 0.09) 0%, transparent 42%), linear-gradient(180deg, rgba(255, 255, 255, 0.02) 0%, rgba(255, 255, 255, 0.01) 100%);
}
.payables-drawer-container .mat-drawer-inner-container {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  background: transparent;
}
.payables-drawer-container .ui-drawer__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 22px 22px 18px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  flex-shrink: 0;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.022), rgba(255, 255, 255, 0.008));
}
.payables-drawer-container .ui-drawer__title {
  font-size: 19px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.95);
  margin: 0 0 4px;
  letter-spacing: -0.02em;
}
.payables-drawer-container .ui-drawer__close {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.52);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 180ms ease;
  flex-shrink: 0;
}
.payables-drawer-container .ui-drawer__close mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}
.payables-drawer-container .ui-drawer__close:hover {
  background: rgba(255, 133, 74, 0.12);
  border-color: rgba(255, 133, 74, 0.22);
  color: rgba(255, 214, 194, 0.95);
}
.payables-drawer-container .ui-drawer__body {
  flex: 1;
  overflow-y: auto;
  padding: 18px 20px 22px;
  scrollbar-width: none;
  background: radial-gradient(circle at top right, rgba(255, 133, 74, 0.05), transparent 38%), linear-gradient(180deg, rgba(255, 255, 255, 0.008), rgba(255, 255, 255, 0));
}
.payables-drawer-container .ui-drawer__body::-webkit-scrollbar {
  display: none;
}

.payables-page {
  /* ==========================================================================
     DASHBOARD KPI ROW
     ========================================================================== */
  /* Date Range Indicator */
  /* ==========================================================================
     DASHBOARD KPI CARDS
     ========================================================================== */
  /* KPI Variants */
  /* ==========================================================================
     ACTION ZONE
     ========================================================================== */
  /* ==========================================================================
     ACTION CARDS
     ========================================================================== */
  /* ==========================================================================
     COLLAPSIBLE INSIGHTS PANEL
     ========================================================================== */
  /* ==========================================================================
     DASHBOARD LOADING & ERROR STATES
     ========================================================================== */
  /* ==========================================================================
     PAYABLES SHELL & TABLE OVERRIDES
     ========================================================================== */
  /* Cell: Payable */
  /* Cell: Expense */
  /* ==========================================================================
     EXPENSE TYPE BADGE — Color Variants
     ========================================================================== */
  /* Cell: Vendor */
  /* Cell: Amount */
  /* ==========================================================================
     TIMELINE STATUS
     ========================================================================== */
  /* ==========================================================================
     STATUS TEXT STYLES
     ========================================================================== */
  /* Payment Status Colors */
  /* Approval Status Colors */
  /* ==========================================================================
     STATE & PAYMENT BADGE STYLES
     ========================================================================== */
  /* ==========================================================================
     REIMBURSEMENT FILTERS & SMART FILTER PILLS
     ========================================================================== */
  /* ==========================================================================
     ACTION BUTTONS - COMPACT ICON STYLE
     ========================================================================== */
  /* ==========================================================================
     BULK SETTLE PANEL
     ========================================================================== */
  /* Horizontal Slider Container */
  /* Hide scrollbar but keep functionality */
  /* Bulk Settle Inline Form */
  /* Settlement Preview — FIFO / Manual checkbox list */
  /* ==========================================================================
     EMPLOYEE STATEMENT DRAWER comment preserved — styles moved to
     .payables-drawer-container scope (mat-sidenav lives outside .payables-page)
     ========================================================================== */
}
.payables-page .dashboard-kpi-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-top: 24px;
  margin-bottom: 32px;
}
@media (max-width: 1024px) {
  .payables-page .dashboard-kpi-row {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 600px) {
  .payables-page .dashboard-kpi-row {
    grid-template-columns: 1fr;
  }
}
.payables-page .date-range-indicator {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 20px;
  padding: 8px 16px;
  border-radius: 999px;
  background: rgba(255, 130, 90, 0.08);
  border: 1px solid rgba(255, 130, 90, 0.2);
  color: rgba(255, 255, 255, 0.75);
  font-size: 13px;
}
.payables-page .date-range-indicator mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: #ff8a50;
}
.payables-page .date-range-indicator strong {
  color: #ffab91;
  font-weight: 600;
}
.payables-page .dashboard-kpi {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 28px 20px;
  border-radius: 24px;
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  cursor: pointer;
  transition: all 0.25s ease;
  outline: none;
}
.payables-page .dashboard-kpi:hover {
  transform: translateY(-4px);
  border-color: rgba(255, 255, 255, 0.2);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.04));
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.4);
}
.payables-page .dashboard-kpi:focus-visible {
  box-shadow: 0 0 0 2px rgba(255, 176, 131, 0.5);
}
.payables-page .dashboard-kpi__label {
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.6);
  margin-bottom: 8px;
}
.payables-page .dashboard-kpi__value {
  font-size: 36px;
  font-weight: 700;
  color: #fff;
  line-height: 1.1;
  margin-bottom: 6px;
}
.payables-page .dashboard-kpi__meta {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.5);
}
.payables-page .dashboard-kpi--danger {
  border-color: rgba(255, 99, 132, 0.3);
  background: linear-gradient(155deg, rgba(255, 99, 132, 0.12), rgba(255, 99, 132, 0.02));
}
.payables-page .dashboard-kpi--danger .dashboard-kpi__value {
  color: #ff8a9a;
}
.payables-page .dashboard-kpi--warning {
  border-color: rgba(255, 179, 71, 0.3);
  background: linear-gradient(155deg, rgba(255, 179, 71, 0.12), rgba(255, 179, 71, 0.02));
}
.payables-page .dashboard-kpi--warning .dashboard-kpi__value {
  color: #ffc570;
}
.payables-page .dashboard-kpi--info {
  border-color: rgba(77, 208, 225, 0.3);
  background: linear-gradient(155deg, rgba(77, 208, 225, 0.1), rgba(77, 208, 225, 0.02));
}
.payables-page .dashboard-kpi--info .dashboard-kpi__value {
  color: #60d5e8;
}
.payables-page .action-zone {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-bottom: 32px;
}
@media (max-width: 900px) {
  .payables-page .action-zone {
    grid-template-columns: 1fr;
  }
}
.payables-page .action-card {
  padding: 24px;
  border-radius: 24px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  flex-direction: column;
  min-height: 320px;
}
.payables-page .action-card--urgent {
  border-color: rgba(255, 99, 132, 0.25);
}
.payables-page .action-card--upcoming {
  border-color: rgba(77, 208, 225, 0.2);
}
.payables-page .action-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}
.payables-page .action-card__title {
  display: flex;
  align-items: center;
  gap: 10px;
}
.payables-page .action-card__title h3 {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  color: #fff;
}
.payables-page .action-card__icon {
  font-size: 22px;
  width: 22px;
  height: 22px;
}
.payables-page .action-card__icon.danger {
  color: #ff6384;
}
.payables-page .action-card__icon.primary {
  color: #4dd0e1;
}
.payables-page .action-card__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(255, 99, 132, 0.2);
  color: #ff8a9a;
  font-weight: 700;
  font-size: 14px;
}
.payables-page .action-card__badge.secondary {
  background: rgba(77, 208, 225, 0.15);
  color: #4dd0e1;
}
.payables-page .action-card__list {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.payables-page .action-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px 14px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
  cursor: pointer;
  transition: all 0.2s ease;
}
.payables-page .action-item:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.12);
}
.payables-page .action-item__info {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.payables-page .action-item__vendor {
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
  font-size: 14px;
}
.payables-page .action-item__amount {
  font-weight: 600;
  color: #fff;
  font-size: 14px;
}
.payables-page .action-item__meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.payables-page .action-item__date {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
}
.payables-page .action-item__reason,
.payables-page .action-item__readiness {
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 6px;
}
.payables-page .action-item__reason {
  background: rgba(255, 99, 132, 0.15);
  color: #ff8a9a;
}
.payables-page .readiness-ready {
  background: rgba(105, 240, 174, 0.15);
  color: #69f0ae;
}
.payables-page .readiness-pending {
  background: rgba(255, 179, 71, 0.15);
  color: #ffb347;
}
.payables-page .action-card__empty {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: rgba(255, 255, 255, 0.4);
  font-size: 14px;
}
.payables-page .action-card__empty mat-icon {
  font-size: 32px;
  width: 32px;
  height: 32px;
  opacity: 0.5;
}
.payables-page .action-card__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: 16px;
  padding: 12px 20px;
  border: none;
  border-radius: 999px;
  background: linear-gradient(120deg, #ff7043, #ff3d00);
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
}
.payables-page .action-card__cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(255, 61, 0, 0.35);
}
.payables-page .action-card__cta.secondary {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
}
.payables-page .action-card__cta.secondary:hover {
  background: rgba(255, 255, 255, 0.15);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}
.payables-page .action-card__cta mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}
.payables-page .insights-collapse-section {
  margin-bottom: 32px;
}
.payables-page .insights-toggle {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 16px 20px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.8);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
}
.payables-page .insights-toggle:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.15);
}
.payables-page .insights-toggle.expanded {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  border-bottom-color: transparent;
}
.payables-page .insights-toggle mat-icon {
  font-size: 22px;
  width: 22px;
  height: 22px;
  color: rgba(255, 176, 131, 0.8);
}
.payables-page .insights-toggle__hint {
  margin-left: auto;
  font-size: 12px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.4);
}
.payables-page .insights-panel {
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-top: none;
  border-radius: 0 0 16px 16px;
  background: rgba(255, 255, 255, 0.02);
  padding: 20px;
  animation: slideDown 0.25s ease-out;
}
@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.payables-page .dashboard-loading {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  width: 100%;
  padding: 12px 0 0;
  color: rgba(255, 255, 255, 0.7);
  gap: 24px;
}
.payables-page .dashboard-loading mat-icon {
  font-size: 36px;
  width: 36px;
  height: 36px;
  opacity: 0.6;
}
.payables-page .dashboard-loading mat-icon.spin {
  animation: spin 1.2s linear infinite;
}
@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.payables-page .dashboard-error {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 18px 24px;
  margin-bottom: 20px;
  border-radius: 14px;
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.25);
  color: #f87171;
}
.payables-page .dashboard-error mat-icon {
  color: #f87171;
}
.payables-page .dashboard-error button {
  margin-left: auto;
}
.payables-page .payables-shell {
  position: relative;
  padding-bottom: 80px;
}
.payables-page .payables-card {
  max-height: 72vh;
}
.payables-page .payable-row {
  transition: all 0.18s ease;
}
.payables-page .payable-row:hover {
  background: rgba(255, 130, 90, 0.06);
  box-shadow: inset 4px 0 0 0 #ff784f;
}
.payables-page .cell-payable {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.payables-page .payable-code {
  font-family: var(--ui-font-mono);
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
  display: block;
}
.payables-page .expense-code {
  font-family: var(--ui-font-mono);
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 180, 140, 0.9);
  display: block;
}
.payables-page .expense-category {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
  display: block;
}
.payables-page .expense-type-badge.type-purchase {
  background: rgba(245, 158, 11, 0.18) !important;
  border: 1px solid rgba(245, 158, 11, 0.4) !important;
  color: #fbbf24 !important;
}
.payables-page .expense-type-badge.type-reimbursement {
  background: rgba(20, 184, 166, 0.18) !important;
  border: 1px solid rgba(20, 184, 166, 0.4) !important;
  color: #2dd4bf !important;
}
.payables-page .expense-type-badge.type-vendor {
  background: rgba(59, 130, 246, 0.18) !important;
  border: 1px solid rgba(59, 130, 246, 0.4) !important;
  color: #60a5fa !important;
}
.payables-page .expense-type-badge.type-manual {
  background: rgba(148, 163, 184, 0.15) !important;
  border: 1px solid rgba(148, 163, 184, 0.3) !important;
  color: #94a3b8 !important;
}
.payables-page .vendor-wrapper {
  display: flex;
  align-items: center;
  gap: 10px;
}
.payables-page .vendor-avatar {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(59, 130, 246, 0.3), rgba(37, 99, 235, 0.3));
  border: 1px solid rgba(59, 130, 246, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 700;
  color: #93c5fd;
  flex-shrink: 0;
}
.payables-page .vendor-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.payables-page .vendor-date {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.45);
}
.payables-page .vendor-code {
  font-family: var(--ui-font-mono);
  font-size: 11px;
  color: rgba(255, 180, 140, 0.75);
  letter-spacing: 0.02em;
}
.payables-page .cell-amount .due-indicator {
  display: block;
  font-size: 10px;
  color: #ffb347;
  margin-top: 2px;
}
.payables-page .cell-amount .due-indicator.overdue {
  color: #ff6384;
}
.payables-page .cell-timeline {
  padding-top: 8px;
  padding-bottom: 8px;
}
.payables-page .timeline-wrapper {
  display: flex;
  flex-direction: column;
  gap: 6px;
  position: relative;
  padding-left: 12px;
}
.payables-page .timeline-wrapper::before {
  content: "";
  position: absolute;
  left: 3px;
  top: 6px;
  bottom: 6px;
  width: 2px;
  background: linear-gradient(to bottom, rgba(251, 146, 60, 0.5), rgba(34, 197, 94, 0.5));
  border-radius: 1px;
}
.payables-page .timeline-item {
  display: flex;
  align-items: center;
  gap: 6px;
  position: relative;
  padding-left: 10px;
}
.payables-page .timeline-item:first-child .status-text {
  font-size: 13px;
  font-weight: 600;
}
.payables-page .timeline-item:last-child .status-text {
  font-size: 10px;
  font-weight: 500;
  opacity: 0.85;
}
.payables-page .timeline-item::before {
  content: "";
  position: absolute;
  left: 0;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.25);
}
.payables-page .timeline-label {
  font-size: 8px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.3);
  min-width: 44px;
}
.payables-page .timeline-value {
  font-size: 12px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 999px;
}
.payables-page .status-text {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 11px;
  font-weight: 500;
  white-space: nowrap;
}
.payables-page .status-icon {
  font-size: 9px;
  line-height: 1;
  opacity: 0.8;
}
.payables-page .status-text.status-pending {
  color: #fb923c;
}
.payables-page .status-text.status-ready {
  color: #38bdf8;
}
.payables-page .status-text.status-paid {
  color: #4ade80;
}
.payables-page .status-text.status-partial,
.payables-page .status-text.status-partially_paid {
  color: #4dd0e1;
}
.payables-page .status-text.status-on_hold,
.payables-page .status-text.status-on-hold {
  color: #fbbf24;
}
.payables-page .status-text.status-failed {
  color: #f87171;
}
.payables-page .status-text.status-cancelled {
  color: #94a3b8;
}
.payables-page .status-text.approval-approved,
.payables-page .status-text.approval-finance-approved,
.payables-page .status-text.approval-manager-approved {
  color: #4ade80;
}
.payables-page .status-text.approval-pending,
.payables-page .status-text.approval-submitted {
  color: #fb923c;
}
.payables-page .status-text.approval-draft {
  color: #94a3b8;
}
.payables-page .status-text.approval-rejected {
  color: #f87171;
}
.payables-page .state-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  font-weight: 600;
}
.payables-page .state-icon {
  font-size: 12px;
}
.payables-page .state-active {
  color: rgba(255, 255, 255, 0.7);
}
.payables-page .state-active .state-icon {
  color: rgba(255, 255, 255, 0.5);
}
.payables-page .state-on-hold {
  color: #fbbf24;
}
.payables-page .state-on-hold .state-icon {
  color: #fbbf24;
}
.payables-page .state-cancelled {
  color: #f87171;
}
.payables-page .state-cancelled .state-icon {
  color: #f87171;
}
.payables-page .state-closed {
  color: #4ade80;
}
.payables-page .state-closed .state-icon {
  color: #4ade80;
}
.payables-page .payment-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  font-weight: 500;
}
.payables-page .payment-icon {
  font-size: 12px;
}
.payables-page .payment-paid {
  color: #4ade80;
}
.payables-page .payment-paid .payment-icon {
  color: #4ade80;
}
.payables-page .payment-partial {
  color: #4dd0e1;
}
.payables-page .payment-partial .payment-icon {
  color: #4dd0e1;
}
.payables-page .payment-pending {
  color: #fb923c;
}
.payables-page .payment-pending .payment-icon {
  color: #fb923c;
}
.payables-page .reimbursement-filters {
  margin-top: 20px;
  padding: 16px 20px;
  border-radius: 20px;
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: center;
  justify-content: space-between;
}
.payables-page .smart-filter-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.payables-page .filter-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.8);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
}
.payables-page .filter-pill:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.15);
}
.payables-page .filter-pill.active {
  background: rgba(255, 130, 90, 0.15);
  border-color: rgba(255, 130, 90, 0.3);
  color: #ffb083;
}
.payables-page .filter-pill__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  font-size: 11px;
  font-weight: 700;
}
.payables-page .filter-pill.active .filter-pill__count {
  background: rgba(255, 130, 90, 0.25);
}
.payables-page .actions-cell {
  padding: 8px !important;
}
.payables-page .action-buttons {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
  flex-wrap: nowrap;
}
.payables-page .action-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.7);
  cursor: pointer;
  transition: all 0.18s ease;
  flex-shrink: 0;
}
.payables-page .action-icon-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}
.payables-page .action-icon-btn:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff;
  transform: translateY(-1px);
}
.payables-page .action-icon-btn--danger {
  color: rgba(239, 68, 68, 0.8);
}
.payables-page .action-icon-btn--danger:hover {
  background: rgba(239, 68, 68, 0.15);
  color: #f87171;
}
.payables-page .bulk-settle-panel {
  margin-bottom: 16px;
  padding: 14px 16px 12px;
  border-radius: 18px;
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(12px);
}
.payables-page .bulk-settle-header {
  margin-bottom: 6px;
}
.payables-page .bulk-settle-title {
  margin: 0 0 4px;
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 8px;
}
.payables-page .bulk-settle-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: #ffc889;
}
.payables-page .bulk-settle-subtitle {
  display: block;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
  line-height: 1.3;
}
.payables-page .bulk-settle-slider {
  display: flex;
  align-items: center;
  gap: 6px;
  position: relative;
  min-height: 0;
}
.payables-page .slider-arrow {
  width: 30px;
  height: 30px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.6);
  flex-shrink: 0;
}
.payables-page .slider-arrow mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}
.payables-page .slider-arrow:hover {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.2);
  color: #fff;
}
.payables-page .bulk-settle-chips {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  flex: 1;
  padding: 0;
  min-height: 0;
}
.payables-page .bulk-settle-chips::-webkit-scrollbar {
  display: none;
}
.payables-page .bulk-settle-chips {
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.payables-page .bulk-settle-chip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 7px 10px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  transition: all 0.2s ease;
  min-width: 0;
  width: clamp(228px, 24vw, 288px);
  flex-shrink: 0;
  scroll-snap-align: start;
}
.payables-page .bulk-settle-chip:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.15);
}
.payables-page .bulk-settle-chip.active {
  background: rgba(255, 171, 118, 0.08);
  border-color: rgba(255, 171, 118, 0.24);
  box-shadow: inset 0 0 0 1px rgba(255, 171, 118, 0.1);
}
.payables-page .chip-info {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  flex: 1;
}
.payables-page .chip-avatar {
  width: 32px;
  height: 32px;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(255, 171, 118, 0.22), rgba(255, 127, 80, 0.16));
  border: 1px solid rgba(255, 171, 118, 0.24);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
  color: #ffc889;
  flex-shrink: 0;
}
.payables-page .chip-details {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1;
}
.payables-page .chip-name {
  font-size: 12px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.payables-page .chip-meta {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.5);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.payables-page .chip-actions {
  display: flex;
  align-items: center;
  gap: 3px;
  flex-shrink: 0;
}
.payables-page .chip-action-btn {
  width: 26px;
  height: 26px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.64);
}
.payables-page .chip-action-btn mat-icon {
  font-size: 15px;
  width: 15px;
  height: 15px;
}
.payables-page .chip-action-btn:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}
.payables-page .chip-action-btn--settle {
  background: rgba(255, 171, 118, 0.14);
  border-color: rgba(255, 171, 118, 0.18);
  color: #ffc889;
}
.payables-page .chip-action-btn--settle:hover {
  background: rgba(255, 171, 118, 0.22);
  border-color: rgba(255, 171, 118, 0.28);
  color: #ffe0b8;
  transform: translateY(-1px);
}
.payables-page .bulk-settle-form {
  margin-top: 12px;
  padding: 14px 16px 16px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 171, 118, 0.14);
  animation: slideDown 0.2s ease-out;
}
.payables-page .bulk-settle-form-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}
.payables-page .bulk-settle-form-header h5 {
  margin: 0;
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}
.payables-page .bulk-settle-form-header strong {
  color: #ffc889;
}
.payables-page .bulk-settle-close {
  border-color: rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.04);
}
.payables-page .bulk-settle-form-body {
  display: grid;
  grid-template-columns: minmax(170px, 0.95fr) minmax(170px, 0.9fr) minmax(210px, 1fr) minmax(210px, 1fr);
  gap: 10px 12px;
  align-items: end;
}
.payables-page .bulk-settle-form-body .form-row {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.payables-page .bulk-settle-form-body label {
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.payables-page .bulk-settle-form-body .form-select,
.payables-page .bulk-settle-form-body .form-input {
  min-height: 42px;
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
  font-size: 13px;
  font-family: inherit;
  outline: none;
  transition: border-color 0.2s;
}
.payables-page .bulk-settle-form-body .form-select:focus,
.payables-page .bulk-settle-form-body .form-input:focus {
  border-color: rgba(255, 171, 118, 0.34);
}
.payables-page .bulk-settle-form-body .form-select option {
  background: #1a1a2e;
  color: #fff;
}
.payables-page .amount-input-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0;
}
.payables-page .amount-input-wrapper .currency-symbol {
  position: absolute;
  left: 12px;
  font-size: 13px;
  font-weight: 700;
  color: #ffc889;
  pointer-events: none;
  z-index: 1;
}
.payables-page .amount-input-wrapper .amount-input {
  padding-left: 28px !important;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.02em;
  font-family: var(--ui-font-mono);
  width: 100%;
}
.payables-page .amount-input-wrapper .amount-input::-webkit-inner-spin-button,
.payables-page .amount-input-wrapper .amount-input::-webkit-outer-spin-button {
  opacity: 0.3;
}
.payables-page .amount-hint {
  position: absolute;
  right: 10px;
  font-size: 10px;
  color: rgba(255, 255, 255, 0.35);
  white-space: nowrap;
  pointer-events: none;
}
.payables-page .settle-preview {
  margin-bottom: 10px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.payables-page .settle-preview-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
  flex-wrap: wrap;
}
.payables-page .settle-preview-label {
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.6);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  display: flex;
  align-items: center;
  gap: 8px;
}
.payables-page .settle-mode-badge {
  font-size: 9px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 4px;
  background: rgba(255, 171, 118, 0.12);
  color: #ffc889;
  letter-spacing: 0.08em;
}
.payables-page .settle-preview-summary {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
}
.payables-page .settle-items-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-height: 132px;
  overflow: auto;
  padding-right: 2px;
}
.payables-page .settle-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 9px;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.15s ease;
  background: transparent;
  border: 1px solid transparent;
}
.payables-page .settle-item:hover {
  background: rgba(255, 255, 255, 0.06);
}
.payables-page .settle-item--selected {
  background: rgba(255, 171, 118, 0.06);
  border-color: rgba(255, 171, 118, 0.12);
}
.payables-page .settle-item--skipped {
  opacity: 0.5;
}
.payables-page .settle-item--skipped:hover {
  opacity: 0.85;
}
.payables-page .settle-item-check {
  flex-shrink: 0;
}
.payables-page .check-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}
.payables-page .check-icon--on {
  color: #ffc889;
}
.payables-page .check-icon--off {
  color: rgba(255, 255, 255, 0.25);
}
.payables-page .settle-item-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.payables-page .settle-item-ref {
  font-family: var(--ui-font-mono);
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
}
.payables-page .settle-item-cat {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.4);
}
.payables-page .settle-item-amount {
  font-family: var(--ui-font-mono);
  font-size: 13px;
  font-weight: 700;
  flex-shrink: 0;
}
.payables-page .settle-item-amount--on {
  color: #ffc889;
}
.payables-page .settle-item-amount--off {
  color: rgba(255, 255, 255, 0.3);
  text-decoration: line-through;
}
.payables-page .settle-unallocated {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  padding: 8px 12px;
  border-radius: 10px;
  background: rgba(251, 191, 36, 0.08);
  border: 1px solid rgba(251, 191, 36, 0.2);
  font-size: 12px;
  color: #fbbf24;
}
.payables-page .settle-unallocated mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}
.payables-page .settle-unallocated--error {
  background: rgba(248, 113, 113, 0.08);
  border-color: rgba(248, 113, 113, 0.2);
  color: #f87171;
}
.payables-page .settle-apply-full {
  margin-left: auto;
  padding: 4px 10px;
  border-radius: 6px;
  border: 1px solid rgba(255, 171, 118, 0.24);
  background: rgba(255, 171, 118, 0.1);
  color: #ffc889;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.15s;
}
.payables-page .settle-apply-full:hover {
  background: rgba(255, 171, 118, 0.18);
  border-color: rgba(255, 171, 118, 0.36);
}
.payables-page .form-actions {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 8px !important;
  justify-content: flex-end;
  grid-column: 1/-1;
  flex-wrap: wrap;
  min-width: 0;
  padding-top: 2px;
}
.payables-page .pill-btn--settle {
  background: linear-gradient(120deg, #ff9b61, #ff7a45) !important;
  color: #fff !important;
  border: none !important;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}
@media (max-width: 1240px) {
  .payables-page .bulk-settle-form-body {
    grid-template-columns: repeat(2, minmax(200px, 1fr));
  }
  .payables-page .form-actions {
    grid-column: 1/-1;
    justify-content: flex-end;
    min-width: 0;
    flex-wrap: wrap;
  }
}
@media (max-width: 900px) {
  .payables-page .bulk-settle-panel {
    padding: 12px 14px 10px;
  }
  .payables-page .bulk-settle-chip {
    width: clamp(176px, 72vw, 214px);
  }
  .payables-page .bulk-settle-form-body {
    grid-template-columns: 1fr;
  }
  .payables-page .form-actions {
    width: 100%;
    justify-content: stretch;
  }
  .payables-page .form-actions .pill-btn {
    flex: 1 1 0;
    justify-content: center;
  }
}
.payables-page .pill-btn--settle:hover:not(:disabled) {
  box-shadow: 0 8px 24px rgba(255, 122, 69, 0.28);
  transform: translateY(-1px);
}
.payables-page .pill-btn--settle:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.payables-page .spin {
  animation: spin 1.2s linear infinite;
}

/* end .payables-page */
/* ==========================================================================
   EMPLOYEE STATEMENT — scoped to payables-drawer-container
   mat-sidenav renders outside .payables-page, so styles must be here
   ========================================================================== */
.payables-drawer-container {
  /* Summary Cards */
  /* Entries List */
}
.payables-drawer-container .statement-employee-name {
  font-size: 13px;
  color: rgba(255, 175, 133, 0.92);
  font-weight: 600;
  letter-spacing: 0.01em;
}
.payables-drawer-container .statement-loading {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  color: rgba(255, 255, 255, 0.4);
  font-size: 14px;
}
.payables-drawer-container .statement-loading mat-icon {
  font-size: 32px;
  width: 32px;
  height: 32px;
  color: rgba(255, 155, 97, 0.92);
}
.payables-drawer-container .statement-summary {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 20px;
}
.payables-drawer-container .summary-card {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 14px 14px 13px;
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.025));
  border: 1px solid rgba(255, 255, 255, 0.09);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
}
.payables-drawer-container .summary-label {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.44);
}
.payables-drawer-container .summary-value {
  font-size: 17px;
  font-weight: 700;
  color: #fff;
  line-height: 1.2;
}
.payables-drawer-container .summary-count {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.46);
}
.payables-drawer-container .summary-card--owed {
  border-color: rgba(251, 146, 60, 0.24);
  background: linear-gradient(180deg, rgba(251, 146, 60, 0.08), rgba(255, 255, 255, 0.025));
}
.payables-drawer-container .summary-card--owed .summary-value {
  color: #ffae68;
}
.payables-drawer-container .summary-card--paid {
  border-color: rgba(74, 222, 128, 0.24);
  background: linear-gradient(180deg, rgba(74, 222, 128, 0.08), rgba(255, 255, 255, 0.025));
}
.payables-drawer-container .summary-card--paid .summary-value {
  color: #78e7a1;
}
.payables-drawer-container .summary-card--balance {
  border-color: rgba(248, 113, 113, 0.24);
  background: linear-gradient(180deg, rgba(248, 113, 113, 0.08), rgba(255, 255, 255, 0.025));
}
.payables-drawer-container .summary-card--balance .summary-value {
  color: #ff918f;
}
.payables-drawer-container .summary-card--balance.summary-card--zero {
  border-color: rgba(74, 222, 128, 0.2);
}
.payables-drawer-container .summary-card--balance.summary-card--zero .summary-value {
  color: #4ade80;
}
.payables-drawer-container .statement-entries {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.payables-drawer-container .statement-entry {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 15px;
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
  transition: background 0.15s, border-color 0.15s, transform 0.15s;
}
.payables-drawer-container .statement-entry:hover {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.028));
  transform: translateY(-1px);
}
.payables-drawer-container .statement-entry--paid {
  border-left: 3px solid rgba(74, 222, 128, 0.55);
}
.payables-drawer-container .statement-entry--owed {
  border-left: 3px solid rgba(251, 146, 60, 0.55);
}
.payables-drawer-container .entry-left {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  flex: 1;
}
.payables-drawer-container .entry-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 255, 255, 0.42);
  margin-top: 3px;
  flex-shrink: 0;
}
.payables-drawer-container .entry-icon.paid {
  color: #78e7a1;
}
.payables-drawer-container .entry-details {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.payables-drawer-container .entry-ref {
  font-family: var(--ui-font-mono);
  font-size: 12px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.88);
}
.payables-drawer-container .entry-desc {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.56);
}
.payables-drawer-container .entry-date {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.38);
}
.payables-drawer-container .entry-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  flex-shrink: 0;
}
.payables-drawer-container .entry-amount {
  font-size: 14px;
  font-weight: 700;
  color: #ffae68;
}
.payables-drawer-container .entry-amount.paid {
  color: #78e7a1;
}
.payables-drawer-container .entry-balance {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.4);
  font-family: var(--ui-font-mono);
}
.payables-drawer-container .entry-batch {
  font-size: 9px;
  font-weight: 600;
  padding: 2px 6px;
  border-radius: 4px;
  background: rgba(255, 175, 133, 0.12);
  color: rgba(255, 193, 164, 0.95);
  font-family: var(--ui-font-mono);
}
.payables-drawer-container .statement-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 40px 0;
  color: rgba(255, 255, 255, 0.35);
  font-size: 14px;
}
.payables-drawer-container .statement-empty mat-icon {
  font-size: 40px;
  width: 40px;
  height: 40px;
  opacity: 0.4;
}
@media (max-width: 560px) {
  .payables-drawer-container .mat-drawer.glass-sidenav.payables-statement-drawer {
    width: min(100vw, 420px);
  }
  .payables-drawer-container .statement-summary {
    grid-template-columns: 1fr;
  }
  .payables-drawer-container .statement-entry {
    flex-direction: column;
    align-items: stretch;
  }
  .payables-drawer-container .entry-right {
    align-items: flex-start;
  }
}
.payables-drawer-container .spin {
  animation: spin 1.2s linear infinite;
}

/* ==========================================================================
   PAGE CONTRACT: RECEIVABLES
   ==========================================================================
   Scoped page-level ownership for /console/receivables.
   ========================================================================== */
.receivables-page .receivables-shell {
  position: relative;
  padding-bottom: 80px;
}

/* ==========================================================================
   UI PAGE VARIANT - CAR SALES
   ==========================================================================
   Scoped contract for /console/sales/car/view/:car.
   ========================================================================== */
.ui-page--car-sales {
  color: var(--ui-text-primary);
}

.ui-page--car-sales .sales-car-shell {
  gap: var(--ui-space-6);
}

.ui-page--car-sales .sales-car-loading,
.ui-page--car-sales .sales-car-empty-state--page {
  min-height: calc(100vh - 180px);
}

.ui-page--car-sales .sales-car-hero {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr) minmax(340px, 380px);
  gap: var(--ui-space-5);
  align-items: start;
}

.ui-page--car-sales .sales-car-hero.sales-car-hero--without-media {
  grid-template-columns: minmax(0, 1fr) minmax(340px, 380px);
}

.ui-page--car-sales .sales-car-hero__media {
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ui-page--car-sales .sales-car-hero__image {
  width: 100%;
  max-height: 140px;
  display: block;
  object-fit: contain;
}

.ui-page--car-sales .sales-car-hero__main {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--ui-space-2);
  min-width: 0;
}

.ui-page--car-sales .sales-car-hero__eyebrow {
  margin: 0;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ui-brand-light);
}

.ui-page--car-sales .sales-car-hero__title {
  margin: 0;
  font-size: clamp(2rem, 3vw, 3rem);
  font-weight: var(--ui-font-bold);
  letter-spacing: -0.04em;
  line-height: 1;
  color: var(--ui-text-primary);
}

.ui-page--car-sales .sales-car-hero__subtitle {
  margin: 0;
  font-size: clamp(var(--ui-text-lg), 1.8vw, 1.6rem);
  color: var(--ui-text-secondary);
}

.ui-page--car-sales .sales-car-hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.ui-page--car-sales .sales-car-hero__meta span::after {
  content: "•";
  margin-left: var(--ui-space-2);
  color: var(--ui-text-subtle);
}

.ui-page--car-sales .sales-car-hero__meta span:last-child::after {
  display: none;
}

.ui-page--car-sales .sales-car-hero__chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
}

.ui-page--car-sales .sales-car-hero__owner-inline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

.ui-page--car-sales .sales-car-hero__owner-label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ui-text-subtle);
}

.ui-page--car-sales .sales-car-hero__owner-link,
.ui-page--car-sales .sales-car-hero__owner-value {
  border: 0;
  padding: 0;
  background: transparent;
  color: var(--ui-text-primary);
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-semibold);
  text-align: left;
  text-decoration: none;
}

.ui-page--car-sales .sales-car-hero__owner-link {
  cursor: pointer;
}

.ui-page--car-sales .sales-car-hero__owner-link:hover {
  color: var(--ui-brand-light);
}

.ui-page--car-sales .sales-car-hero__owner-phone {
  color: var(--ui-text-muted);
}

.ui-page--car-sales .sales-car-hero__owner-phone::before {
  content: "•";
  margin-right: 8px;
  color: var(--ui-text-subtle);
}

.ui-page--car-sales .sales-car-hero__aside {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-end;
  gap: var(--ui-space-3);
  min-width: 0;
  width: 100%;
}

.ui-page--car-sales .sales-car-hero__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--ui-space-2);
}

.ui-page--car-sales .sales-car-hero__stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-3);
  width: 100%;
  margin-top: auto;
}

.ui-page--car-sales .sales-car-hero-stat {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  min-width: 0;
  min-height: 120px;
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-lg);
  border: 1px solid var(--ui-border);
  background: rgba(255, 255, 255, 0.025);
}

.ui-page--car-sales .sales-car-hero-stat__label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  font-size: var(--ui-text-2xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ui-text-subtle);
}

.ui-page--car-sales .sales-car-hero-stat__label mat-icon {
  width: 16px;
  height: 16px;
  font-size: 16px;
}

.ui-page--car-sales .sales-car-hero-stat__value {
  margin-top: auto;
  font-size: clamp(1.15rem, 1.5vw, 1.7rem);
  font-weight: var(--ui-font-bold);
  line-height: 1.1;
  color: var(--ui-text-primary);
  overflow-wrap: anywhere;
}

.ui-page--car-sales .sales-car-hero-stat__meta {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  line-height: 1.35;
}

.ui-page--car-sales .sales-car-hero-stat--success .sales-car-hero-stat__label,
.ui-page--car-sales .sales-car-hero-stat--success .sales-car-hero-stat__value {
  color: var(--ui-success);
}

.ui-page--car-sales .sales-car-hero-stat--info .sales-car-hero-stat__label,
.ui-page--car-sales .sales-car-hero-stat--info .sales-car-hero-stat__value {
  color: var(--ui-info);
}

.ui-page--car-sales .sales-car-hero-stat--warning .sales-car-hero-stat__label,
.ui-page--car-sales .sales-car-hero-stat--warning .sales-car-hero-stat__value {
  color: var(--ui-warning);
}

.ui-page--car-sales .sales-car-hero-stat--financial .sales-car-hero-stat__label {
  color: var(--ui-brand-light);
}

.ui-page--car-sales .sales-car-hero-stat--financial .sales-car-hero-stat__value {
  color: var(--ui-text-primary);
}

.ui-page--car-sales .sales-car-hero-stat--muted .sales-car-hero-stat__value {
  color: var(--ui-text-secondary);
}

.ui-page--car-sales .sales-car-hero.sales-car-hero--without-media .sales-car-hero__stats {
  max-width: 100%;
}

.ui-page--car-sales .sales-car-hero__actions {
  width: 100%;
  justify-content: flex-end;
}

.ui-page--car-sales .sales-car-hero__actions .ui-btn {
  flex: 0 0 auto;
}

.ui-page--car-sales .sales-car-hero__aside > * {
  width: 100%;
}

.ui-page--car-sales .sales-car-hero__stats {
  padding-top: var(--ui-space-1);
}

.ui-page--car-sales .sales-car-hero.sales-car-hero--without-media .sales-car-hero__aside {
  max-width: 380px;
}

.ui-page--car-sales .sales-car-hero__actions + .sales-car-hero__stats {
  margin-top: var(--ui-space-2);
}

.ui-page--car-sales .sales-car-hero__stats .sales-car-hero-stat {
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.ui-page--car-sales .sales-car-hero__stats .sales-car-hero-stat__value {
  min-height: 0;
}

.ui-page--car-sales .sales-car-hero__stats .sales-car-hero-stat__meta:empty {
  display: none;
}

.ui-page--car-sales .sales-car-hero__stats {
  align-items: stretch;
}

.ui-page--car-sales .sales-car-hero__stats .sales-car-hero-stat {
  display: grid;
  grid-template-rows: auto 1fr auto;
}

.ui-page--car-sales .sales-car-tabs-shell {
  padding: var(--ui-space-5);
}

.ui-page--car-sales .sales-car-tab-content {
  width: 100%;
}

.ui-page--car-sales .sales-car-overview {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.ui-page--car-sales .sales-car-overview-lead,
.ui-page--car-sales .sales-car-overview-support {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  grid-auto-rows: minmax(0, 1fr);
  align-items: stretch;
  gap: var(--ui-space-4);
}

.ui-page--car-sales .sales-car-overview-support {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.ui-page--car-sales .sales-car-panel-card,
.ui-page--car-sales .sales-car-package-card {
  min-width: 0;
  height: auto;
  align-self: start;
}

.ui-page--car-sales .sales-car-overview-lead > .sales-car-panel-card,
.ui-page--car-sales .sales-car-overview-support > .sales-car-panel-card {
  height: 100%;
  align-self: stretch;
}

.ui-page--car-sales .sales-car-overview-lead > .sales-car-panel-card {
  min-height: 300px;
}

.ui-page--car-sales .sales-car-overview-support > .sales-car-panel-card {
  min-height: 220px;
}

.ui-page--car-sales .sales-car-panel-card--details {
  width: 100%;
}

.ui-page--car-sales .sales-car-panel-card__header,
.ui-page--car-sales .sales-car-package-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-3);
}

.ui-page--car-sales .sales-car-panel-card__title {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  min-width: 0;
}

.ui-page--car-sales .sales-car-panel-card__title mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: var(--ui-brand-light);
}

.ui-page--car-sales .sales-car-panel-card__title .ui-card__heading,
.ui-page--car-sales .sales-car-package-card__header .ui-card__heading {
  margin: 0;
  font-size: var(--ui-text-lg);
}

.ui-page--car-sales .sales-car-panel-card__body,
.ui-page--car-sales .sales-car-package-card__body {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  flex: 1 1 auto;
}

.ui-page--car-sales .sales-car-panel-card__body--compact {
  gap: var(--ui-space-4);
}

.ui-page--car-sales .sales-car-panel-card__eyebrow {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ui-text-muted);
}

.ui-page--car-sales .sales-car-panel-card__headline {
  margin: 0;
  font-size: clamp(1.35rem, 2vw, 1.9rem);
  font-weight: var(--ui-font-semibold);
  line-height: 1.08;
  color: var(--ui-text-primary);
}

.ui-page--car-sales .sales-car-inline-meta {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.ui-page--car-sales .sales-car-inline-meta mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.ui-page--car-sales .sales-car-key-figure {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-top: var(--ui-space-3);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.ui-page--car-sales .sales-car-key-figure__label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ui-text-muted);
}

.ui-page--car-sales .sales-car-key-figure__value {
  font-size: clamp(1.4rem, 2vw, 2.1rem);
  font-weight: var(--ui-font-bold);
  letter-spacing: -0.03em;
  color: var(--ui-brand-light);
}

.ui-page--car-sales .sales-car-inline-link {
  width: fit-content;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ui-brand-light);
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-semibold);
  text-decoration: none;
  cursor: pointer;
}

.ui-page--car-sales .sales-car-inline-link:hover {
  color: var(--ui-text-primary);
}

.ui-page--car-sales .sales-car-capitalize {
  text-transform: capitalize;
}

.ui-page--car-sales .sales-car-info-grid--compact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ui-page--car-sales .sales-car-job-grid {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.ui-page--car-sales .sales-car-insights-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: var(--ui-space-3);
}

.ui-page--car-sales .sales-car-insight-metric {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-lg);
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.025);
}

.ui-page--car-sales .sales-car-insight-metric__label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ui-text-muted);
}

.ui-page--car-sales .sales-car-insight-metric__value {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  line-height: 1.2;
}

.ui-page--car-sales .sales-car-details-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ui-page--car-sales .sales-car-panel-state {
  min-height: 220px;
}

.ui-page--car-sales .sales-car-empty-state {
  min-height: 220px;
  border: 1px dashed var(--ui-border);
  border-radius: var(--ui-radius-xl);
  background: rgba(255, 255, 255, 0.02);
}

.ui-page--car-sales .sales-car-empty-state p {
  margin: 0;
}

.ui-page--car-sales .sales-car-history-feed {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.ui-page--car-sales .sales-car-history-entry {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr) minmax(120px, auto);
  align-items: center;
  gap: var(--ui-space-4);
  padding: var(--ui-space-4);
}

.ui-page--car-sales .sales-car-history-entry--clickable {
  cursor: pointer;
}

.ui-page--car-sales .sales-car-history-entry--clickable:hover {
  border-color: rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.04);
}

.ui-page--car-sales .sales-car-history-entry__icon {
  width: 56px;
  height: 56px;
  border-radius: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid var(--ui-border-light);
  color: var(--ui-text-muted);
}

.ui-page--car-sales .sales-car-history-entry__icon mat-icon {
  font-size: 22px;
  width: 22px;
  height: 22px;
}

.ui-page--car-sales .sales-car-history-entry__icon--booking {
  background: var(--ui-info-bg);
  border-color: var(--ui-info-border);
  color: var(--ui-info);
}

.ui-page--car-sales .sales-car-history-entry__icon--invoice {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.ui-page--car-sales .sales-car-history-entry__icon--package {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.ui-page--car-sales .sales-car-history-entry__content {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  min-width: 0;
}

.ui-page--car-sales .sales-car-history-entry__meta {
  font-size: var(--ui-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ui-text-muted);
}

.ui-page--car-sales .sales-car-history-entry__heading {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.ui-page--car-sales .sales-car-history-entry__title {
  font-size: clamp(1.2rem, 1.8vw, 1.8rem);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  line-height: 1.1;
}

.ui-page--car-sales .sales-car-history-entry__summary {
  font-size: var(--ui-text-lg);
  color: var(--ui-text-secondary);
  line-height: 1.3;
}

.ui-page--car-sales .sales-car-history-entry__details {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-3);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.ui-page--car-sales .sales-car-history-entry__detail-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.ui-page--car-sales .sales-car-history-entry__detail-item mat-icon {
  font-size: 15px;
  width: 15px;
  height: 15px;
  color: var(--ui-text-subtle);
}

.ui-page--car-sales .sales-car-history-entry__aside {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 6px;
  min-width: 120px;
  text-align: right;
}

.ui-page--car-sales .sales-car-history-entry__amount {
  font-size: clamp(1.1rem, 1.6vw, 1.5rem);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  line-height: 1.1;
}

.ui-page--car-sales .sales-car-history-entry__amount--empty {
  color: var(--ui-text-subtle);
}

.ui-page--car-sales .sales-car-history-entry__due {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  color: var(--ui-danger);
}

.ui-page--car-sales .sales-car-danger-text {
  color: var(--ui-danger);
}

.ui-page--car-sales .sales-car-tab-actions {
  display: flex;
  justify-content: center;
  margin-top: var(--ui-space-4);
}

.ui-page--car-sales .sales-car-invoice-table-card {
  --gdt-surface: rgba(255, 255, 255, 0.02);
  --gdt-border: rgba(255, 255, 255, 0.08);
  max-height: none;
}

.ui-page--car-sales .sales-car-invoice-table {
  min-width: 0;
}

.ui-page--car-sales .sales-car-invoice-table tbody {
  max-height: 420px;
}

.ui-page--car-sales .sales-car-col--invoice {
  width: 14%;
}

.ui-page--car-sales .sales-car-col--date {
  width: 12%;
}

.ui-page--car-sales .sales-car-col--service {
  width: 26%;
}

.ui-page--car-sales .sales-car-col--branch {
  width: 14%;
}

.ui-page--car-sales .sales-car-col--amount {
  width: 12%;
}

.ui-page--car-sales .sales-car-col--due {
  width: 10%;
}

.ui-page--car-sales .sales-car-col--actions {
  width: 12%;
}

.ui-page--car-sales .sales-car-table-actions {
  text-align: right;
}

.ui-page--car-sales .sales-car-action-icons {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  justify-content: flex-end;
}

.ui-page--car-sales .sales-car-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.5);
  cursor: pointer;
  transition: all 0.2s ease;
  padding: 0;
}

.ui-page--car-sales .sales-car-action-btn mat-icon {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
}

.ui-page--car-sales .sales-car-action-btn:hover {
  background: rgba(255, 130, 90, 0.15);
  border-color: rgba(255, 130, 90, 0.3);
  color: rgba(255, 180, 130, 0.95);
}

.ui-page--car-sales .sales-car-table-date {
  margin-top: 0;
}

.ui-page--car-sales .sales-car-table-amount,
.ui-page--car-sales .sales-car-table-due {
  text-align: right;
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.ui-page--car-sales .sales-car-package-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--ui-space-4);
}

.ui-page--car-sales .sales-car-documents-layout {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.ui-page--car-sales .sales-car-media-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--ui-space-3);
}

.ui-page--car-sales .sales-car-media-card {
  margin: 0;
  overflow: hidden;
  border-radius: var(--ui-radius-lg);
  border: 1px solid var(--ui-border-light);
  background: rgba(255, 255, 255, 0.03);
  min-height: 160px;
}

.ui-page--car-sales .sales-car-media-card img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.ui-page--car-sales .sales-car-document-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 240px));
  justify-content: flex-start;
  gap: var(--ui-space-4);
}

.ui-page--car-sales .sales-car-document-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: var(--ui-radius-lg);
  border: 1px solid var(--ui-border-light);
  background: rgba(255, 255, 255, 0.025);
  min-width: 0;
}

.ui-page--car-sales .sales-car-document-card__preview {
  position: relative;
  height: 124px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.02);
  border-bottom: 1px solid var(--ui-border-light);
  overflow: hidden;
  text-decoration: none;
}

.ui-page--car-sales .sales-car-document-card__preview img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: var(--ui-space-2);
}

.ui-page--car-sales .sales-car-document-card__preview-frame {
  width: 100%;
  height: 100%;
  border: 0;
  pointer-events: none;
  background: rgba(255, 255, 255, 0.02);
}

.ui-page--car-sales .sales-car-document-card__file {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-2);
  background: linear-gradient(160deg, rgba(255, 122, 61, 0.12), rgba(255, 122, 61, 0.04));
}

.ui-page--car-sales .sales-car-document-card__preview mat-icon,
.ui-page--car-sales .sales-car-document-card__file mat-icon {
  font-size: 36px;
  width: 36px;
  height: 36px;
  color: var(--ui-brand-light);
}

.ui-page--car-sales .sales-car-document-card__ext {
  padding: 4px 8px;
  border-radius: var(--ui-radius-pill);
  background: rgba(255, 122, 61, 0.16);
  font-size: var(--ui-text-2xs);
  font-weight: var(--ui-font-bold);
  color: var(--ui-brand-light);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ui-page--car-sales .sales-car-document-card__preview-overlay {
  position: absolute;
  right: var(--ui-space-2);
  bottom: var(--ui-space-2);
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 8px;
  border-radius: var(--ui-radius-pill);
  background: rgba(11, 12, 18, 0.72);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-2xs);
  font-weight: var(--ui-font-medium);
  opacity: 0;
  transition: opacity 0.2s ease;
}

.ui-page--car-sales .sales-car-document-card__preview:hover .sales-car-document-card__preview-overlay {
  opacity: 1;
}

.ui-page--car-sales .sales-car-document-card__preview-overlay mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: currentColor;
}

.ui-page--car-sales .sales-car-document-card__body {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  padding: var(--ui-space-3);
}

.ui-page--car-sales .sales-car-document-card__name {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  line-height: 1.35;
  display: -webkit-box;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.ui-page--car-sales .sales-car-document-card__meta {
  font-size: var(--ui-text-2xs);
  color: var(--ui-text-muted);
  font-weight: var(--ui-font-medium);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ui-page--car-sales .sales-car-document-card__actions {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin-top: var(--ui-space-1);
}

.ui-page--car-sales .sales-car-document-card__actions .ui-btn:not(.sales-car-delete-btn) {
  flex: 1;
}

.ui-page--car-sales .sales-car-delete-btn {
  color: var(--ui-text-muted);
  opacity: 0.6;
  transition: opacity 0.2s, color 0.2s;
}

.ui-page--car-sales .sales-car-delete-btn:hover {
  color: var(--ui-danger);
  opacity: 1;
}

/* ── Documents Header ─────────────────────────── */
.ui-page--car-sales .sales-car-documents-header {
  display: flex;
  justify-content: flex-end;
  margin-bottom: var(--ui-space-4);
}

.ui-page--car-sales .sales-car-document-input {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

/* ── Upload Queue ─────────────────────────────── */
.ui-page--car-sales .sales-car-upload-queue {
  margin-bottom: var(--ui-space-4);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-lg);
  background: rgba(255, 255, 255, 0.03);
  overflow: hidden;
}

.ui-page--car-sales .sales-car-upload-queue__header {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-3) var(--ui-space-4);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-brand-light);
  border-bottom: 1px solid var(--ui-border-light);
}

.ui-page--car-sales .sales-car-upload-queue__header mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.ui-page--car-sales .sales-car-upload-item {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
  border-bottom: 1px solid var(--ui-border-light);
}

.ui-page--car-sales .sales-car-upload-item:last-child {
  border-bottom: none;
}

.ui-page--car-sales .sales-car-upload-item__preview {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--ui-radius-md);
  background: rgba(255, 255, 255, 0.05);
  overflow: hidden;
}

.ui-page--car-sales .sales-car-upload-preview-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ui-page--car-sales .sales-car-upload-item__preview mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: var(--ui-brand-light);
}

.ui-page--car-sales .sales-car-upload-item__info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.ui-page--car-sales .sales-car-upload-item__name {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ui-page--car-sales .sales-car-upload-progress-bar {
  height: 4px;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.08);
  overflow: hidden;
}

.ui-page--car-sales .sales-car-upload-progress-fill {
  height: 100%;
  border-radius: 2px;
  background: var(--ui-brand);
  transition: width 0.2s ease;
}

.ui-page--car-sales .sales-car-upload-item.done .sales-car-upload-progress-fill {
  background: var(--ui-success);
}

.ui-page--car-sales .sales-car-upload-item.error .sales-car-upload-progress-fill {
  background: var(--ui-danger);
}

.ui-page--car-sales .sales-car-upload-item__status {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.ui-page--car-sales .sales-car-upload-retry-btn {
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: var(--ui-radius-full);
  background: rgba(255, 255, 255, 0.06);
  color: var(--ui-text-muted);
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}

.ui-page--car-sales .sales-car-upload-retry-btn:hover {
  background: rgba(255, 255, 255, 0.1);
  color: var(--ui-danger);
}

.ui-page--car-sales .sales-car-upload-retry-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

/* ── Documents Empty State ────────────────────── */
.ui-page--car-sales .sales-car-documents-empty {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-8) var(--ui-space-4);
  text-align: center;
}

.ui-page--car-sales .sales-car-documents-empty__icon {
  width: 64px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--ui-radius-xl);
  background: rgba(var(--ui-brand-rgb, 200, 130, 50), 0.12);
}

.ui-page--car-sales .sales-car-documents-empty__icon mat-icon {
  font-size: 32px;
  width: 32px;
  height: 32px;
  color: var(--ui-brand-light);
}

.ui-page--car-sales .sales-car-documents-empty__title {
  margin: 0;
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.ui-page--car-sales .sales-car-documents-empty__desc {
  margin: 0;
  font-size: var(--ui-text-md);
  color: var(--ui-text-muted);
}

.ui-page--car-sales .sales-car-documents-empty__formats {
  margin-top: var(--ui-space-2);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-subtle);
}

@media (max-width: 1100px) {
  .ui-page--car-sales .sales-car-hero {
    grid-template-columns: 200px minmax(0, 1fr);
  }
  .ui-page--car-sales .sales-car-hero__aside {
    grid-column: 2;
  }
  .ui-page--car-sales .sales-car-hero__stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ui-page--car-sales .sales-car-details-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 900px) {
  .ui-page--car-sales .sales-car-hero {
    grid-template-columns: 1fr;
  }
  .ui-page--car-sales .sales-car-hero__aside {
    grid-column: 1/-1;
  }
  .ui-page--car-sales .sales-car-hero__stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ui-page--car-sales .sales-car-overview-lead,
  .ui-page--car-sales .sales-car-overview-support,
  .ui-page--car-sales .sales-car-details-grid,
  .ui-page--car-sales .sales-car-info-grid--compact,
  .ui-page--car-sales .sales-car-job-grid,
  .ui-page--car-sales .sales-car-insights-grid {
    grid-template-columns: 1fr;
  }
  .ui-page--car-sales .sales-car-history-entry {
    grid-template-columns: 48px minmax(0, 1fr);
  }
  .ui-page--car-sales .sales-car-history-entry__aside {
    grid-column: 2;
    align-items: flex-start;
    text-align: left;
  }
  .ui-page--car-sales .sales-car-invoice-table {
    min-width: 960px;
  }
}
@media (max-width: 720px) {
  .ui-page--car-sales .sales-car-hero__media {
    min-height: 200px;
  }
  .ui-page--car-sales .sales-car-hero__owner-inline {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }
  .ui-page--car-sales .sales-car-hero__owner-phone::before {
    display: none;
  }
  .ui-page--car-sales .sales-car-hero__actions {
    justify-content: flex-start;
  }
  .ui-page--car-sales .sales-car-hero__actions .ui-btn {
    width: 100%;
  }
  .ui-page--car-sales .sales-car-hero__stats {
    grid-template-columns: 1fr;
  }
  .ui-page--car-sales .sales-car-tabs-shell {
    padding: var(--ui-space-4);
  }
}
/* ==========================================================================
   UI PAGES - Marketing CMS
   Scoped page contract for CMS composition and preview surfaces.
   ========================================================================== */
.cms-preview-card {
  padding: var(--ui-space-3);
  gap: var(--ui-space-2);
  overflow: hidden;
}

.cms-preview-card .ui-card__header, .cms-preview-card .glass-modal-container .card-header, .glass-modal-container .cms-preview-card .card-header,
.cms-preview-card .glass-modal-container .section-header,
.glass-modal-container .cms-preview-card .section-header,
.cms-preview-card .glass-modal-container .entry-header,
.glass-modal-container .cms-preview-card .entry-header,
.cms-preview-card .glass-modal-container .timeline-card > header,
.glass-modal-container .cms-preview-card .timeline-card > header,
.cms-preview-card .glass-modal-container .attachments > header,
.glass-modal-container .cms-preview-card .attachments > header,
.cms-preview-card .glass-modal-container .review-header,
.glass-modal-container .cms-preview-card .review-header,
.cms-preview-card .glass-modal-container .modal-header,
.glass-modal-container .cms-preview-card .modal-header {
  align-items: flex-start;
  gap: var(--ui-space-3);
}

.cms-preview-card__summary {
  flex: 1 1 auto;
  min-width: 0;
}

.cms-preview-card__actions {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  flex: 0 0 auto;
}

.cms-preview-card__studio {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ui-space-1);
  min-width: 0;
}

.cms-preview-card__phone {
  display: flex;
  justify-content: center;
  width: 100%;
  min-width: 0;
  overflow: hidden;
}

.cms-preview-card__meta {
  width: 100%;
  max-width: 100%;
  text-align: center;
}

/* Analytics dashboards */
/* ==========================================================================
   ANALYTICS LAYOUT — STRUCTURE ONLY
   ==========================================================================
   Grid structure ONLY for ALL analytics dashboards.

   PROVIDES:
   - .analytics-page — Page container
   - .analytics-grid — Main grid system
   - .analytics-row — Horizontal sections
   - .analytics-kpi-row — Stats/KPI row layout
   - .analytics-chart-row — Chart section layout
   - .analytics-section — Generic section wrapper

   ❌ FORBIDDEN (must be in component contracts):
   - Colors, shadows, borders, gradients
   - Card styling, chart styling, table styling
   - Typography beyond layout
   ========================================================================== */
/* --------------------------------------------
   PAGE CONTAINER
   -------------------------------------------- */
.analytics-page {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
  min-height: 0;
}

/* --------------------------------------------
   GRID SYSTEM
   -------------------------------------------- */
.analytics-grid {
  display: grid;
  gap: var(--ui-space-5);
}

.analytics-grid--2-col {
  grid-template-columns: 1fr 1fr;
}

.analytics-grid--3-col {
  grid-template-columns: repeat(3, 1fr);
}

.analytics-grid--4-col {
  grid-template-columns: repeat(4, 1fr);
}

.analytics-grid--main-sidebar {
  grid-template-columns: 1fr 320px;
}

@media (max-width: 1100px) {
  .analytics-grid--2-col,
  .analytics-grid--main-sidebar {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 900px) {
  .analytics-grid--3-col {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 600px) {
  .analytics-grid--3-col,
  .analytics-grid--4-col {
    grid-template-columns: 1fr;
  }
}
/* --------------------------------------------
   ROW LAYOUTS
   -------------------------------------------- */
.analytics-row {
  display: flex;
  gap: var(--ui-space-4);
  flex-wrap: wrap;
}

.analytics-row--between {
  justify-content: space-between;
}

.analytics-row--center {
  align-items: center;
}

/* --------------------------------------------
   KPI ROW (Stats Layout)
   -------------------------------------------- */
.analytics-kpi-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-4);
}

.analytics-kpi-row > * {
  flex: 1;
  min-width: 140px;
}

@media (max-width: 768px) {
  .analytics-kpi-row > * {
    min-width: calc(50% - var(--ui-space-2));
  }
}
@media (max-width: 480px) {
  .analytics-kpi-row > * {
    min-width: 100%;
  }
}
/* --------------------------------------------
   CHART ROW
   -------------------------------------------- */
.analytics-chart-row {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: var(--ui-space-5);
}

@media (max-width: 1000px) {
  .analytics-chart-row {
    grid-template-columns: 1fr;
  }
}
/* --------------------------------------------
   SECTION
   -------------------------------------------- */
.analytics-section {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.analytics-section__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
}

.analytics-section__content {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: var(--ui-space-5);
}

@media (max-width: 1100px) {
  .analytics-section__content {
    grid-template-columns: 1fr;
  }
}
/* --------------------------------------------
   STACKED SECTIONS
   -------------------------------------------- */
.analytics-sections-stack {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-6);
}

/* --------------------------------------------
   TABLE ROW
   -------------------------------------------- */
.analytics-table-row {
  display: block;
}

/* --------------------------------------------
   PANEL LAYOUTS
   -------------------------------------------- */
.analytics-left-panel {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
}

.analytics-right-panel {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

/* ==========================================================================
   ANALYTICS DASHBOARD — Layout & Composition Contract
   ==========================================================================
   Layouts, grids, and composition for analytics dashboards.

   SCOPE: .analytics-dashboard

   PROVIDES:
   - Dashboard shell and glow effects (.fd-shell, .fd-glow-*)
   - Stats row layouts (.stats-row, .stat-item)
   - Chart containers (.chart-stats-card, .chart-container)
   - Pie card layout (.pie-card)
   - Section layouts (.dashboard-row, .dashboard-content)
   - Metric tabs (.fd-metric-tabs)

   USES:
   - .ui-card for card visuals (from card.scss)
   - CSS custom properties from tokens.scss

   ❌ FORBIDDEN:
   - Redefining card visuals (use .ui-card)
   - Global selectors (must be scoped to .analytics-dashboard)
   ========================================================================== */
.analytics-dashboard {
  position: relative;
  min-height: 100%;
}

/* ==========================================================================
   GLOW EFFECTS
   ========================================================================== */
.analytics-dashboard .fd-glow {
  position: fixed;
  border-radius: var(--ui-radius-full);
  filter: blur(90px);
  opacity: 0.4;
  pointer-events: none;
  animation: fd-glow-pulse 7s ease-in-out infinite;
  z-index: -1;
}

.analytics-dashboard .fd-glow-1 {
  width: 320px;
  height: 320px;
  top: -40px;
  left: -60px;
  background: var(--ui-accent);
}

.analytics-dashboard .fd-glow-2 {
  width: 340px;
  height: 340px;
  top: 60px;
  right: -80px;
  background: var(--ui-info);
  animation-delay: 1s;
}

.analytics-dashboard .fd-glow-3 {
  width: 260px;
  height: 260px;
  bottom: 0;
  left: 30%;
  background: var(--ui-success);
  animation-delay: 2s;
}

@keyframes fd-glow-pulse {
  0%, 100% {
    transform: scale(1);
    opacity: 0.35;
  }
  50% {
    transform: scale(1.08);
    opacity: 0.5;
  }
}
/* ==========================================================================
   DASHBOARD LAYOUT
   ========================================================================== */
.analytics-dashboard .dashboard-content {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
}

.analytics-dashboard .dashboard-row {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: var(--ui-space-5);
}

@media (max-width: 1000px) {
  .analytics-dashboard .dashboard-row {
    grid-template-columns: 1fr;
  }
}
/* ==========================================================================
   STATS ROW — Connected KPI Strip
   ========================================================================== */
.analytics-dashboard .stats-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin-bottom: var(--ui-space-5);
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--ui-radius-xl);
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.analytics-dashboard .stat-item {
  flex: 1;
  min-width: 90px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: var(--ui-space-1);
  padding: var(--ui-space-4) var(--ui-space-3);
  background: transparent;
  border: none;
  border-right: 1px solid rgba(255, 255, 255, 0.06);
  cursor: pointer;
  transition: background 0.15s ease;
}

.analytics-dashboard .stat-item:last-child {
  border-right: none;
}

.analytics-dashboard .stat-item:hover {
  background: rgba(255, 255, 255, 0.04);
}

.analytics-dashboard .stat-item.active,
.analytics-dashboard .stat-item.selected {
  background: rgba(255, 130, 90, 0.12);
}

.analytics-dashboard .stat-content {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.analytics-dashboard .stat-content h3 {
  margin: 0;
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  line-height: 1.2;
}

.analytics-dashboard .stat-content p {
  margin: 0;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-muted);
}

.analytics-dashboard .stat-content h3 {
  margin: 0;
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  line-height: 1.2;
}

.analytics-dashboard .stat-content p {
  margin: 0;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-muted);
}

/* ==========================================================================
   CHART CARD — Uses .ui-card for base visuals
   ========================================================================== */
.analytics-dashboard .chart-stats-card {
  /* Extends ui-card visuals via composition */
  background: var(--ui-glass-light);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-xl);
  box-shadow: var(--ui-shadow-lg);
  padding: var(--ui-space-5);
  backdrop-filter: var(--ui-blur-md);
  -webkit-backdrop-filter: var(--ui-blur-md);
}

.analytics-dashboard .chart-container {
  min-height: 280px;
  position: relative;
}

/* ==========================================================================
   PIE CARD
   ========================================================================== */
.analytics-dashboard .pie-card {
  background: var(--ui-glass-light);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-xl);
  padding: var(--ui-space-5);
  display: flex;
  flex-direction: column;
}

.analytics-dashboard .pie-card-header p {
  margin: 0 0 var(--ui-space-4) 0;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
}

.analytics-dashboard .pie-card-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.analytics-dashboard .pie-legend {
  display: flex;
  justify-content: center;
  gap: var(--ui-space-5);
  margin-top: var(--ui-space-4);
}

.analytics-dashboard .legend-item {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-secondary);
}

.analytics-dashboard .legend-dot {
  width: 8px;
  height: 8px;
  border-radius: var(--ui-radius-full);
  background: var(--ui-border);
}

/* ==========================================================================
   SECTION LAYOUTS
   ========================================================================== */
.analytics-dashboard .fd-sections-stack {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-6);
  margin-top: var(--ui-space-6);
}

.analytics-dashboard .fd-referral-section {
  background: var(--ui-glass-light);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-xl);
  padding: var(--ui-space-6);
  box-shadow: var(--ui-shadow-lg);
  backdrop-filter: var(--ui-blur-md);
  -webkit-backdrop-filter: var(--ui-blur-md);
}

.analytics-dashboard .fd-section-header {
  margin-bottom: var(--ui-space-5);
}

.analytics-dashboard .fd-section-title {
  margin: 0;
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.analytics-dashboard .fd-section-content {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: var(--ui-space-6);
}

@media (max-width: 1100px) {
  .analytics-dashboard .fd-section-content {
    grid-template-columns: 1fr;
  }
}
.analytics-dashboard .fd-left-panel {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
}

.analytics-dashboard .fd-right-panel {
  padding: var(--ui-space-5);
  border-radius: var(--ui-radius-lg);
}

/* ==========================================================================
   METRIC TABS — Connected Strip (same style as stats-row)
   ========================================================================== */
.analytics-dashboard .fd-metric-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--ui-radius-xl);
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.analytics-dashboard .fd-metric-tab {
  flex: 1;
  min-width: 90px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: var(--ui-space-1);
  padding: var(--ui-space-4) var(--ui-space-3);
  background: transparent;
  border: none;
  border-right: 1px solid rgba(255, 255, 255, 0.06);
  cursor: pointer;
  transition: background 0.15s ease;
}

.analytics-dashboard .fd-metric-tab:last-child {
  border-right: none;
}

.analytics-dashboard .fd-metric-tab:hover {
  background: rgba(255, 255, 255, 0.04);
}

.analytics-dashboard .fd-metric-tab.active {
  background: rgba(255, 130, 90, 0.12);
}

.analytics-dashboard .fd-metric-tab .metric-value {
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
}

.analytics-dashboard .fd-metric-tab .metric-label {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

/* ==========================================================================
   REFERRERS LIST
   ========================================================================== */
.analytics-dashboard .fd-referrers-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: var(--ui-space-3);
  border-bottom: 1px solid var(--ui-border-light);
  margin-bottom: var(--ui-space-4);
}

.analytics-dashboard .fd-referrers-header .header-title {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
}

.analytics-dashboard .fd-referrers-list {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.analytics-dashboard .fd-referrer-item {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

/* ==========================================================================
   EMPTY STATES
   ========================================================================== */
.analytics-dashboard .chart-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 200px;
  color: var(--ui-text-muted);
  text-align: center;
  gap: var(--ui-space-2);
}

.analytics-dashboard .chart-empty-state mat-icon {
  font-size: 48px;
  width: 48px;
  height: 48px;
  opacity: 0.5;
}

.analytics-dashboard .chart-empty-state h4 {
  margin: 0;
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
}

.analytics-dashboard .chart-empty-state p {
  margin: 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.analytics-dashboard .fd-empty-state {
  padding: var(--ui-space-6);
  text-align: center;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}

/* ==========================================================================
   FD-SHELL ALIAS (backwards compatibility)
   ========================================================================== */
.analytics-dashboard .fd-shell {
  position: relative;
  min-height: 100%;
}

.analytics-dashboard .fd-glass {
  background: var(--ui-glass-light);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-xl);
  box-shadow: var(--ui-shadow-lg);
  padding: var(--ui-space-5);
  backdrop-filter: var(--ui-blur-md);
  -webkit-backdrop-filter: var(--ui-blur-md);
}

/* ==========================================================================
   EXECUTIVE DASHBOARD — Enterprise Grade Patterns
   ==========================================================================
   CFO-grade dashboard: calm, dense, premium.
   No gradients, no glows, no visual noise.
   ========================================================================== */
/* Executive Page Container - suppresses glows */
.analytics-dashboard.exec-dashboard {
  background: transparent;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
}

.analytics-dashboard.exec-dashboard .fd-glow,
.analytics-dashboard.exec-dashboard .fd-glow-1,
.analytics-dashboard.exec-dashboard .fd-glow-2,
.analytics-dashboard.exec-dashboard .fd-glow-3 {
  display: none;
}

/* Executive Header */
.analytics-dashboard.exec-dashboard .ui-page-header {
  margin-bottom: 0;
}

.analytics-dashboard .exec-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-4);
}

.analytics-dashboard .exec-header-left {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.analytics-dashboard .exec-header-title {
  margin: 0;
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  line-height: 1.2;
}

.analytics-dashboard .exec-header-subtitle {
  margin: 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.analytics-dashboard .exec-filters {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.analytics-dashboard .exec-filter-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: nowrap;
}

@media (max-width: 960px) {
  .analytics-dashboard .exec-filter-row {
    flex-wrap: wrap;
  }
}
.analytics-dashboard.exec-dashboard .pill-trigger,
.analytics-dashboard.exec-dashboard app-date-filter .pill-trigger {
  height: 34px;
  padding: 0 var(--ui-space-3);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  color: var(--ui-text-secondary);
  box-shadow: none;
  font-weight: var(--ui-font-medium);
}

.analytics-dashboard.exec-dashboard app-date-filter .pill-trigger {
  height: auto;
  min-height: 34px;
  padding: var(--ui-space-2) var(--ui-space-3);
}

.analytics-dashboard.exec-dashboard .pill-trigger:hover,
.analytics-dashboard.exec-dashboard app-date-filter .pill-trigger:hover {
  background: var(--ui-surface-2);
  border-color: var(--ui-border-hover);
}

.analytics-dashboard.exec-dashboard .pill-start-icon,
.analytics-dashboard.exec-dashboard app-date-filter .pill-start-icon {
  color: var(--ui-text-muted);
}

.analytics-dashboard.exec-dashboard .pill-trigger mat-icon:last-child {
  color: var(--ui-text-muted);
}

/* Executive KPI Strip - Flat, no shadows */
.analytics-dashboard .exec-kpi-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--ui-space-2);
  margin: 0;
}

@media (max-width: 1200px) {
  .analytics-dashboard .exec-kpi-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 900px) {
  .analytics-dashboard .exec-kpi-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 600px) {
  .analytics-dashboard .exec-kpi-strip {
    grid-template-columns: 1fr;
  }
}
.analytics-dashboard .exec-kpi {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--ui-space-2);
  padding: var(--ui-space-3);
  min-width: 0;
  min-height: 96px;
}

.analytics-dashboard .exec-kpi-value {
  font-size: var(--ui-text-3xl);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  line-height: 1.05;
  letter-spacing: -0.01em;
  white-space: nowrap;
}

.analytics-dashboard .exec-kpi-label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.analytics-dashboard .exec-kpi-delta {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  padding: 2px 6px;
  border-radius: var(--ui-radius-sm);
}

.analytics-dashboard .exec-kpi-delta.positive {
  color: var(--ui-success);
  background: rgba(16, 185, 129, 0.1);
}

.analytics-dashboard .exec-kpi-delta.negative {
  color: var(--ui-error);
  background: rgba(239, 68, 68, 0.1);
}

.analytics-dashboard .exec-kpi-delta.neutral {
  color: var(--ui-text-muted);
  background: rgba(255, 255, 255, 0.05);
}

/* Executive Chart Section */
.analytics-dashboard .exec-chart-section {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  margin: 0;
}

.analytics-dashboard .exec-chart-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0;
}

.analytics-dashboard .exec-chart-title {
  margin: 0;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.analytics-dashboard .exec-chart-container {
  height: 200px;
}

/* Executive Grid - Secondary Insights */
.analytics-dashboard .exec-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--ui-space-4);
  margin-bottom: var(--ui-space-5);
}

.analytics-dashboard .exec-grid-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--ui-space-4);
}

@media (max-width: 768px) {
  .analytics-dashboard .exec-grid-2 {
    grid-template-columns: 1fr;
  }
}
/* Executive Card - Flat, subtle */
.analytics-dashboard .exec-card {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  min-width: 0;
  min-height: 220px;
}

.analytics-dashboard .exec-card-header {
  margin-bottom: var(--ui-space-3);
}

.analytics-dashboard .exec-card-title {
  margin: 0;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.analytics-dashboard .exec-card-subtitle {
  margin: var(--ui-space-1) 0 0 0;
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.analytics-dashboard .exec-card-value {
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
}

.analytics-dashboard .exec-card-chart {
  height: 160px;
}

/* Executive Section Title */
.analytics-dashboard .exec-section-title {
  margin: 0 0 var(--ui-space-4) 0;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.analytics-dashboard .exec-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.analytics-dashboard .exec-section-header .exec-section-title {
  margin: 0;
}

.analytics-dashboard .exec-insights {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.analytics-dashboard .exec-insights-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ui-space-3);
}

@media (max-width: 1100px) {
  .analytics-dashboard .exec-insights-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 760px) {
  .analytics-dashboard .exec-insights-grid {
    grid-template-columns: 1fr;
  }
}
.analytics-dashboard .exec-metric-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-3);
}

@media (max-width: 600px) {
  .analytics-dashboard .exec-metric-list {
    grid-template-columns: 1fr;
  }
}
.analytics-dashboard .exec-metric {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
}

.analytics-dashboard .exec-metric-label {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.analytics-dashboard .exec-metric-value {
  font-size: var(--ui-text-2xl);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
}

/* Executive Mini Donuts Grid */
.analytics-dashboard .exec-donuts-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--ui-space-3);
}

@media (max-width: 900px) {
  .analytics-dashboard .exec-donuts-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
.analytics-dashboard .exec-donut-card {
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  padding: var(--ui-space-3);
  text-align: center;
}

.analytics-dashboard .exec-donut-label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  margin-bottom: var(--ui-space-2);
}

.analytics-dashboard .exec-donut-chart {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 140px;
}

.analytics-dashboard .exec-skeleton-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ui-space-2);
  min-height: 160px;
}

/* Empty state for exec */
.analytics-dashboard .exec-empty {
  padding: var(--ui-space-4);
  text-align: center;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}

/* ==========================================================================
   OPERATIONS OVERVIEW — Focused Landing Layout
   ==========================================================================
   Route: /console/management/operations-overview
   Keeps the landing view intentionally light: summary first, chart second.
   ========================================================================== */
.operations-overview-page .exec-dashboard {
  max-width: none;
  gap: var(--ui-space-4);
}

.operations-overview-page .operations-overview-header {
  margin-bottom: var(--ui-space-4);
}

.operations-overview-page .operations-overview-header__summary {
  padding: 4px 24px 12px;
}

.operations-overview-page .operations-overview-header__summary .analytics-comparison-row {
  display: flex;
  gap: 14px;
  overflow-x: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.18) transparent;
}

.operations-overview-page .operations-overview-header__summary .analytics-comparison-row::-webkit-scrollbar {
  height: 4px;
}

.operations-overview-page .operations-overview-header__summary .analytics-comparison-row::-webkit-scrollbar-track {
  background: transparent;
}

.operations-overview-page .operations-overview-header__summary .analytics-comparison-row::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 999px;
}

.operations-overview-page .operations-overview-header__summary .analytics-comparison-row:hover::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.15);
}

.operations-overview-page .operations-overview-header .exec-comparison .stat-card {
  flex: 0 0 180px;
  min-width: 180px;
  max-width: 180px;
  min-height: auto;
  padding: 14px 16px;
  border-radius: 18px;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.26);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.operations-overview-page .operations-overview-header .exec-comparison .stat-card__header {
  gap: 10px;
}

.operations-overview-page .operations-overview-header .exec-comparison .stat-card__icon {
  width: 20px;
  height: 20px;
  font-size: 20px;
}

.operations-overview-page .operations-overview-header .exec-comparison .stat-card__label {
  font-size: 11px;
}

.operations-overview-page .operations-overview-header .exec-comparison .stat-card--success {
  border-color: rgba(120, 220, 180, 0.28);
  background: linear-gradient(155deg, rgba(120, 220, 180, 0.18), rgba(255, 255, 255, 0.02));
}

.operations-overview-page .operations-overview-header .exec-comparison .stat-card--danger {
  border-color: rgba(255, 59, 59, 0.38);
  background: linear-gradient(155deg, rgba(255, 59, 59, 0.2), rgba(255, 255, 255, 0.02));
}

.operations-overview-page .operations-overview-header .exec-comparison .stat-card--neutral {
  border-color: var(--ui-border);
  background: var(--ui-surface-2);
}

.operations-overview-page .operations-overview-header .exec-comparison .stat-card--warning {
  border-color: rgba(255, 176, 131, 0.35);
  background: linear-gradient(155deg, rgba(255, 176, 131, 0.2), rgba(255, 255, 255, 0.02));
}

.operations-overview-page .operations-overview-header .exec-comparison .stat-card__value {
  justify-content: center;
  min-height: 38px;
  margin-top: 10px;
  padding: 6px 14px;
  border-radius: 999px;
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0.01em;
}

.operations-overview-page .operations-overview-header .exec-comparison .stat-card__trend {
  margin-top: 6px;
  font-size: 11px;
}

.operations-overview-page .operations-overview-header .exec-comparison .stat-card__insight {
  margin-top: 7px;
  font-size: 10px;
  line-height: 1.3;
}

.operations-overview-page .operations-overview-header .exec-comparison .stat-card__value--success {
  background: rgba(96, 187, 132, 0.14);
  color: rgba(163, 241, 189, 0.95);
  border: 1px solid rgba(96, 187, 132, 0.32);
}

.operations-overview-page .operations-overview-header .exec-comparison .stat-card__value--danger {
  background: rgba(255, 59, 59, 0.14);
  color: rgba(255, 140, 140, 0.98);
  border: 1px solid rgba(255, 59, 59, 0.38);
}

.operations-overview-page .operations-overview-header .exec-comparison .stat-card__value--warning {
  background: rgba(255, 176, 131, 0.22);
  color: rgba(255, 200, 160, 0.98);
  border: 1px solid rgba(255, 176, 131, 0.4);
}

.operations-overview-page .operations-overview-header__controls .filter-row {
  justify-content: flex-end;
}

.operations-overview-page .exec-panel {
  display: block;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.operations-overview-page .exec-panel--summary {
  background: transparent;
}

.operations-overview-page .exec-summary-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  margin-bottom: var(--ui-space-2);
}

.operations-overview-page .exec-summary-label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ui-text-muted);
}

.operations-overview-page .exec-bifurcation-toggle {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  height: 34px;
  padding: 0 var(--ui-space-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
  color: var(--ui-text-secondary);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  cursor: pointer;
  transition: background var(--ui-transition-base), border-color var(--ui-transition-base), color var(--ui-transition-base);
}

.operations-overview-page .exec-bifurcation-toggle mat-icon {
  width: var(--ui-text-md);
  height: var(--ui-text-md);
  font-size: var(--ui-text-md);
}

.operations-overview-page .exec-bifurcation-toggle:hover,
.operations-overview-page .exec-bifurcation-toggle.active {
  border-color: var(--ui-border-hover);
  background: var(--ui-surface-active);
  color: var(--ui-text-primary);
}

.operations-overview-page .exec-section-header {
  align-items: flex-start;
  gap: var(--ui-space-4);
}

.operations-overview-page .exec-section-kicker {
  margin: 0 0 var(--ui-space-1);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ui-text-muted);
}

.operations-overview-page .exec-section-heading {
  margin: 0;
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-semibold);
  line-height: 1.35;
  color: var(--ui-text-primary);
}

.operations-overview-page .exec-section-meta {
  margin: var(--ui-space-1) 0 0;
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  line-height: 1.4;
}

.operations-overview-page .exec-chart-toolbar-actions {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-shrink: 0;
}

.operations-overview-page .exec-comparison .analytics-comparison-row {
  gap: var(--ui-space-2);
}

.operations-overview-page .exec-comparison .stat-card {
  min-height: 88px;
  cursor: default;
  border-radius: var(--ui-radius-md);
  border-color: var(--ui-border);
  background: var(--ui-surface-2);
  box-shadow: none;
  transform: none;
  padding: var(--ui-space-3) var(--ui-space-4);
}

.operations-overview-page .exec-comparison .stat-card--has-tag {
  margin-top: 0;
}

.operations-overview-page .exec-comparison .stat-card:hover {
  border-color: var(--ui-border-hover);
  background: var(--ui-surface-hover);
}

.operations-overview-page .exec-comparison .stat-card__section-tag {
  display: none;
}

.operations-overview-page .exec-comparison .stat-card__header {
  gap: var(--ui-space-2);
}

.operations-overview-page .exec-comparison .stat-card__icon {
  color: var(--ui-text-muted);
  filter: none;
}

.operations-overview-page .exec-comparison .stat-card__label {
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  letter-spacing: 0;
  text-transform: none;
}

.operations-overview-page .exec-comparison .stat-card__value {
  justify-content: flex-start;
  min-height: auto;
  margin-top: var(--ui-space-2);
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--ui-text-primary);
  font-size: var(--ui-text-2xl);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0;
}

.operations-overview-page .exec-comparison .stat-card__trend {
  margin-top: var(--ui-space-2);
  padding: 0;
  background: transparent;
  font-size: var(--ui-text-sm);
}

.operations-overview-page .exec-comparison .stat-card__trend--up {
  color: var(--ui-success);
}

.operations-overview-page .exec-comparison .stat-card__trend--down {
  color: var(--ui-danger);
}

.operations-overview-page .exec-comparison .analytics-comparison-row__baseline {
  color: var(--ui-text-subtle);
  font-size: var(--ui-text-xs);
}

.operations-overview-page .exec-comparison--summary .analytics-comparison-row {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.operations-overview-page .exec-comparison--summary .stat-card {
  min-height: 96px;
}

.operations-overview-page .exec-comparison--summary .stat-card__value {
  font-size: var(--ui-text-xl);
}

.operations-overview-page .exec-bifurcation-panel {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-md);
  box-shadow: none;
}

.operations-overview-page .exec-bifurcation-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-4);
}

.operations-overview-page .exec-bifurcation-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface-1);
  color: var(--ui-text-muted);
  cursor: pointer;
  transition: background var(--ui-transition-base), color var(--ui-transition-base);
}

.operations-overview-page .exec-bifurcation-close:hover {
  background: var(--ui-surface-hover);
  color: var(--ui-text-primary);
}

.operations-overview-page .exec-bifurcation-close mat-icon {
  width: var(--ui-text-md);
  height: var(--ui-text-md);
  font-size: var(--ui-text-md);
}

.operations-overview-page .exec-bifurcation-groups {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.operations-overview-page .exec-bifurcation-group {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.operations-overview-page .exec-bifurcation-group + .exec-bifurcation-group {
  padding-top: var(--ui-space-4);
  border-top: 1px solid var(--ui-border);
}

.operations-overview-page .exec-bifurcation-group__header {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
}

.operations-overview-page .exec-bifurcation-group__label {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.operations-overview-page .exec-comparison--bifurcation .analytics-comparison-row {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.operations-overview-page .exec-comparison--margins .analytics-comparison-row {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.operations-overview-page .exec-comparison--bifurcation .stat-card {
  min-height: 84px;
  padding: var(--ui-space-3);
}

.operations-overview-page .exec-comparison--bifurcation .stat-card__header {
  gap: var(--ui-space-2);
}

.operations-overview-page .exec-comparison--bifurcation .stat-card__label {
  font-size: var(--ui-text-xs);
}

.operations-overview-page .exec-comparison--bifurcation .stat-card__icon {
  width: var(--ui-text-md);
  height: var(--ui-text-md);
  font-size: var(--ui-text-md);
}

.operations-overview-page .exec-comparison--bifurcation .stat-card__value {
  font-size: var(--ui-text-lg);
}

.operations-overview-page .exec-chart-section {
  border-radius: var(--ui-radius-md);
  box-shadow: none;
  padding: var(--ui-space-4);
}

.operations-overview-page .exec-chart-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-4);
  margin-bottom: var(--ui-space-2);
}

.operations-overview-page .exec-chart-tabs {
  display: block;
  margin-left: auto;
}

.operations-overview-page .exec-chart-tabs .pill-tabs-nav {
  justify-content: flex-end;
}

.operations-overview-page .exec-donut-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-4);
}

.operations-overview-page .exec-donut-row .exec-chart-section {
  min-width: 0;
}

@media (max-width: 1200px) {
  .operations-overview-page .exec-comparison--summary .analytics-comparison-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .operations-overview-page .exec-comparison--bifurcation .analytics-comparison-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 760px) {
  .operations-overview-page .exec-section-header,
  .operations-overview-page .exec-chart-toolbar {
    flex-direction: column;
    align-items: stretch;
  }
  .operations-overview-page .exec-chart-tabs {
    margin-left: 0;
  }
  .operations-overview-page .exec-chart-tabs .pill-tabs-nav {
    justify-content: flex-start;
  }
  .operations-overview-page .exec-comparison--summary .analytics-comparison-row {
    grid-template-columns: 1fr;
  }
  .operations-overview-page .exec-comparison--bifurcation .analytics-comparison-row {
    grid-template-columns: 1fr;
  }
  .operations-overview-page .exec-donut-row {
    grid-template-columns: 1fr;
  }
}
/* ==========================================================================
   ANALYTICS WIDGETS — SHARED INTERNAL CONTRACT
   ==========================================================================
   Shared inner chrome for analytics widgets. This file styles only the
   widget-owned selectors and composes existing page, chart, card, and table
   contracts from ui/layout, ui/controls, and ui/tables.
   ========================================================================== */
.analytics-widget {
  display: block;
  min-width: 0;
}

.analytics-widget--chart,
.analytics-widget--table {
  height: 100%;
}

.analytics-widget__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-3);
  margin-bottom: var(--ui-space-4);
}

.analytics-widget__title {
  margin: 0;
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  line-height: 1.2;
}

.analytics-widget__chart-frame {
  min-height: 100%;
}

.analytics-widget__table-header {
  margin-bottom: 0;
}

.analytics-widget__table-wrap {
  padding-top: 0;
}

.analytics-widget__state {
  min-height: 240px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-6) var(--ui-space-4);
  text-align: center;
  color: var(--ui-text-muted);
}

.analytics-widget__state--compact {
  min-height: 160px;
}

.analytics-widget__state-icon {
  font-size: 28px;
  width: 28px;
  height: 28px;
  color: rgba(255, 176, 131, 0.8);
}

.analytics-widget__state-title {
  margin: 0;
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.analytics-widget__state-copy {
  margin: 0;
  max-width: 420px;
  font-size: var(--ui-text-sm);
  line-height: 1.5;
  color: var(--ui-text-muted);
}

.analytics-widget__table-state {
  padding: var(--ui-space-6) var(--ui-space-8) var(--ui-space-8);
}

.analytics-widget__skeleton {
  width: 100%;
}

.analytics-widget__skeleton--chart {
  height: 240px;
  border-radius: 18px;
}

.analytics-widget__skeleton--donut {
  width: min(220px, 100%);
  height: 220px;
  border-radius: 50%;
}

.analytics-widget__skeleton--row {
  height: 34px;
  margin-bottom: var(--ui-space-2);
  border-radius: 10px;
}

.analytics-widget__skeleton--row:last-child {
  margin-bottom: 0;
}

.analytics-widget__leaderboard-table .text-right {
  text-align: right;
}

.analytics-widget__rank {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  border: 1px solid rgba(255, 176, 131, 0.18);
  background: rgba(255, 176, 131, 0.08);
  color: rgba(255, 214, 194, 0.92);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.analytics-comparison-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--ui-space-4);
}

.analytics-comparison-row .stat-card {
  min-width: 0;
  flex: 1 1 auto;
}

.analytics-comparison-row__baseline {
  margin-left: var(--ui-space-1);
  font-size: 10px;
  color: rgba(255, 255, 255, 0.45);
}

.analytics-comparison-row .stat-card__trend mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.analytics-comparison-row .stat-card__trend--positive {
  color: var(--ui-success);
}

.analytics-comparison-row .stat-card__trend--negative {
  color: var(--ui-danger);
}

.analytics-comparison-row .stat-card__value--muted {
  color: var(--ui-text-muted);
}

.analytics-comparison-row .stat-card__insight {
  margin: var(--ui-space-2) 0 0;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  line-height: 1.35;
}

@media (max-width: 768px) {
  .analytics-widget__state {
    min-height: 200px;
  }
  .analytics-widget__table-state {
    padding: var(--ui-space-5);
  }
}
/* ==========================================================================
   REFERRAL DASHBOARD — Page Wiring Contract (Layer 3)
   ==========================================================================
   Grid placement and column sizing ONLY. NO visuals.

   SCOPE: .referral-dashboard-page

   USES:
   - ui/analytics/analytics-layout.scss (structural grid)
   - ui/analytics/analytics-components.scss (visual components)
   ========================================================================== */
.referral-dashboard-page {
  /* Page container - inherits from ui-page */
  display: contents;
}

.referral-dashboard-page .dashboard-row {
  /* Referral-specific: main chart gets more space */
  grid-template-columns: 1fr 300px;
}

@media (max-width: 1100px) {
  .referral-dashboard-page .dashboard-row {
    grid-template-columns: 1fr;
  }
}
.referral-dashboard-page .fd-section-content {
  /* Referral-specific: right panel sizing */
  grid-template-columns: 1fr 340px;
}

@media (max-width: 1100px) {
  .referral-dashboard-page .fd-section-content {
    grid-template-columns: 1fr;
  }
}
/* ==========================================================================
   LOYALTY DASHBOARD — Page Wiring Contract (Layer 3)
   ==========================================================================
   Grid placement and column sizing ONLY. NO visuals.

   SCOPE: .loyalty-dashboard-page

   USES:
   - ui/analytics/analytics-layout.scss (structural grid)
   - ui/analytics/analytics-components.scss (visual components)
   ========================================================================== */
.loyalty-dashboard-page {
  /* Page container - inherits from dashboard-wrapper */
  display: contents;
}

.loyalty-dashboard-page .charts-grid {
  /* Loyalty-specific: main chart + tier breakdown */
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: var(--ui-space-5);
}

@media (max-width: 1100px) {
  .loyalty-dashboard-page .charts-grid {
    grid-template-columns: 1fr;
  }
}
/* Tier breakdown card sizing */
.loyalty-dashboard-page .tier-breakdown-card {
  min-width: 300px;
}

/* Donut chart centering */
.loyalty-dashboard-page .donut-chart-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
}

/* ==========================================================================
   WALLET ADMIN — Page Contract (Layer 3)
   ==========================================================================
   Page-specific layout and overrides ONLY. NO reusable visuals.

   SCOPE: .wallet-admin-page, .wallet-admin-shell

   USES:
   - ui/layout/page.scss (ui-page base)
   - ui/headers/page-header.scss (erp-header-block)
   - ui/controls/pill-tabs.scss (pill-tabs-container)
   - ui/layout/card.scss (ui-card)
   - ui/tables/glass-table.scss (glass-table, glass-data-table)
   - ui/controls/buttons.scss (pill-btn, pill-btn-primary)
   - ui/headers/stat-cards.scss (stat-card, stat-card__trend)
   - ui/vendors/glass-chart.scss (glass-chart-wrapper, glass-chart-tooltip)
   ========================================================================== */
/* Shell — inherits fd-shell glow patterns */
.wallet-admin-shell {
  display: contents; /* Inherits fd-shell glow patterns */
}

/* ── Section containers ── */
.wallet-admin-page .wallet-section {
  margin-bottom: var(--ui-space-6);
}

.wallet-admin-page .wallet-section-title {
  font-size: var(--ui-text-sm);
  font-weight: 500;
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.45));
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: var(--ui-space-3);
}

/* ── Wallet Health grid (4 columns, liability hero spans 2) ── */
.wallet-admin-page .wallet-health-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--ui-space-4);
}

.wallet-admin-page .wallet-liability-card {
  grid-column: span 2;
}

/* Hero stat value (larger for Wallet Liability) */
.wallet-admin-page .stat-value--hero {
  font-size: var(--ui-text-3xl, 1.875rem);
  font-weight: 700;
  color: var(--ui-text-primary);
}

/* ── Metric progress bar ── */
.wallet-admin-page .wallet-metric-bar {
  height: 4px;
  border-radius: var(--ui-radius-full);
  background: var(--ui-border-subtle, rgba(255, 255, 255, 0.06));
  margin-top: var(--ui-space-3);
  overflow: hidden;
}

.wallet-admin-page .wallet-metric-fill {
  height: 100%;
  border-radius: var(--ui-radius-full);
  transition: width 0.6s ease;
}

.wallet-admin-page .wallet-metric-fill--liability {
  background: linear-gradient(90deg, var(--ui-success), var(--ui-warning));
}

/* ── Wallet Value grid (2 columns) ── */
.wallet-admin-page .wallet-value-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--ui-space-4);
}

/* ── Wallet Activity grid (4 columns) ── */
.wallet-admin-page .wallet-activity-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--ui-space-4);
}

/* ── Charts grid (asymmetric — main chart wider) ── */
.wallet-admin-page .wallet-charts-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: var(--ui-space-5);
}

/* Chart section titles */
.wallet-admin-page .wallet-chart-title {
  font-size: var(--ui-text-base);
  font-weight: 600;
  color: var(--ui-text-primary);
  margin-bottom: var(--ui-space-1);
}

.wallet-admin-page .wallet-chart-subtitle {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-secondary);
  margin-bottom: var(--ui-space-4);
}

/* ── LRM summary card (inside glass-chart-wrapper) ── */
.wallet-admin-page .wallet-lrm-summary {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.wallet-admin-page .wallet-lrm-value {
  font-size: 48px;
  font-weight: 700;
  color: #a78bfa;
  letter-spacing: -0.02em;
  margin: var(--ui-space-4) 0 var(--ui-space-2);
}

.wallet-admin-page .wallet-lrm-explanation {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  margin-bottom: var(--ui-space-3);
}

/* ── Trend warning color (increase in redeemed) ── */
.wallet-admin-page .stat-card__trend--warning {
  color: var(--ui-warning);
}

.wallet-admin-page .stat-card {
  padding: var(--ui-space-5);
}

.wallet-admin-page .stat-label {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  margin-bottom: var(--ui-space-2);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.wallet-admin-page .stat-value {
  font-size: var(--ui-text-2xl);
  font-weight: 600;
  color: var(--ui-text-primary);
}

.wallet-admin-page .stat-value--earn {
  color: var(--ui-success);
}

.wallet-admin-page .stat-value--redeem {
  color: var(--ui-warning);
}

/* Type pills in ledger table */
.wallet-admin-page .type-pill {
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  font-weight: 500;
  text-transform: capitalize;
  background: var(--ui-surface-subtle);
  color: var(--ui-text-secondary);
}

.wallet-admin-page .type-pill--earn {
  background: hsla(142, 70%, 45%, 0.12);
  color: var(--ui-success);
}

.wallet-admin-page .type-pill--redeem {
  background: hsla(25, 95%, 53%, 0.12);
  color: var(--ui-warning);
}

.wallet-admin-page .type-pill--adjust {
  background: hsla(217, 91%, 60%, 0.12);
  color: var(--ui-info, hsl(217, 91%, 60%));
}

.wallet-admin-page .type-pill--expire {
  background: hsla(0, 0%, 60%, 0.12);
  color: var(--ui-text-muted, hsl(0, 0%, 60%));
}

.wallet-admin-page .type-pill--reversal {
  background: hsla(0, 72%, 51%, 0.12);
  color: var(--ui-danger, hsl(0, 72%, 51%));
}

/* Stat value colors */
.wallet-admin-page .stat-value--expire {
  color: var(--ui-text-muted, hsl(0, 0%, 60%));
}

.wallet-admin-page .stat-value--reversal {
  color: var(--ui-danger, hsl(0, 72%, 51%));
}

/* ── Sortable column headers ── */
.wallet-admin-page .sortable-th {
  cursor: pointer;
  -webkit-user-select: none;
          user-select: none;
  white-space: nowrap;
  transition: color 0.15s ease;
}

.wallet-admin-page .sortable-th:hover {
  color: rgba(255, 255, 255, 0.9);
}

.wallet-admin-page .sortable-th .sort-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  vertical-align: middle;
  margin-left: 4px;
  opacity: 0;
  transition: opacity 0.15s ease, color 0.15s ease;
  color: rgba(255, 255, 255, 0.35);
}

.wallet-admin-page .sortable-th:hover .sort-icon {
  opacity: 0.6;
}

.wallet-admin-page .sortable-th.sorted .sort-icon {
  opacity: 1;
  color: var(--ui-brand, #ff8a50);
}

.wallet-admin-page .sortable-th.sorted {
  color: rgba(255, 200, 160, 0.95);
}

/* ── Date input inside pill-trigger (glass style) ── */
.pill-date-input {
  background: transparent;
  border: none;
  outline: none;
  color: rgba(255, 255, 255, 0.85);
  font-size: 13px;
  font-family: inherit;
  width: 130px;
  cursor: pointer;
}

.pill-date-input::placeholder {
  color: rgba(255, 255, 255, 0.35);
}

/* Override date input calendar icon color */
.pill-date-input::-webkit-calendar-picker-indicator {
  filter: invert(0.7);
  cursor: pointer;
}

.pill-btn--sm {
  font-size: var(--ui-text-xs);
  padding: var(--ui-space-1) var(--ui-space-3);
  min-height: 34px;
  display: inline-flex;
  align-items: center;
}

/* Negative balance badge */
.wallet-negative-badge {
  display: inline-flex;
  align-items: center;
  margin-left: var(--ui-space-2);
  padding: 1px 6px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.04em;
  border-radius: var(--ui-radius-full);
  background: hsla(25, 95%, 53%, 0.12);
  color: var(--ui-warning);
  cursor: help;
}

/* ── Customer search (mat-autocomplete — uses glass-dropdown-panel) ── */
.wallet-admin-page .wallet-customer-field .mat-icon[matprefix] {
  color: var(--ui-text-secondary);
  margin-right: var(--ui-space-1);
}

/* ── Confirmation panel ── */
.wallet-confirm-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1050;
  background: rgba(8, 8, 8, 0.65);
  backdrop-filter: blur(12px) saturate(150%);
  -webkit-backdrop-filter: blur(12px) saturate(150%);
  display: flex;
  align-items: center;
  justify-content: center;
  animation: ui-modal-backdrop-in 0.2s ease-out;
}

.wallet-confirm-panel {
  max-width: 440px;
  width: 90%;
  padding: var(--ui-space-6);
  text-align: center;
  animation: ui-modal-panel-in 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.wallet-confirm-details {
  background: var(--ui-surface-subtle, rgba(255, 255, 255, 0.03));
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  padding: var(--ui-space-3);
  margin: var(--ui-space-4) 0;
  text-align: left;
}

.wallet-confirm-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--ui-space-2) 0;
}

.wallet-confirm-row:not(:last-child) {
  border-bottom: 1px solid var(--ui-border);
}

.wallet-confirm-label {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.wallet-confirm-value {
  font-size: var(--ui-text-sm);
  font-weight: 500;
  color: var(--ui-text-primary);
}

.wallet-confirm-value--credit {
  color: var(--ui-success);
}

.wallet-confirm-value--debit {
  color: var(--ui-warning);
}

/* Empty state */
.wallet-admin-page .wallet-empty {
  text-align: center;
  padding: var(--ui-space-10) var(--ui-space-5);
  color: var(--ui-text-secondary);
}

.wallet-admin-page .wallet-empty mat-icon {
  font-size: 48px;
  width: 48px;
  height: 48px;
  margin-bottom: var(--ui-space-3);
  opacity: 0.4;
}

/* Load more */
.wallet-admin-page .wallet-load-more {
  display: flex;
  justify-content: center;
  padding: var(--ui-space-5);
}

/* Adjustment form */
.wallet-admin-page .wallet-adjust-form {
  max-width: 720px;
}

.wallet-admin-page .section-title {
  font-size: var(--ui-text-lg);
  font-weight: 600;
  color: var(--ui-text-primary);
  margin-bottom: var(--ui-space-1);
}

.wallet-admin-page .section-subtitle {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  margin-bottom: var(--ui-space-5);
}

.wallet-admin-page .adjust-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--ui-space-4);
}

.wallet-admin-page .form-field--full {
  grid-column: 1/-1;
}

.wallet-admin-page .form-label {
  display: block;
  font-size: var(--ui-text-sm);
  font-weight: 500;
  color: var(--ui-text-secondary);
  margin-bottom: var(--ui-space-1);
}

.wallet-admin-page .form-input,
.wallet-admin-page .form-textarea {
  width: 100%;
  padding: var(--ui-space-2) var(--ui-space-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  font-family: inherit;
  transition: border-color 0.15s ease;
}

.wallet-admin-page .form-input:focus,
.wallet-admin-page .form-textarea:focus {
  outline: none;
  border-color: var(--ui-primary);
}

.wallet-admin-page .form-textarea {
  resize: vertical;
}

.wallet-admin-page .adjust-form-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: var(--ui-space-5);
}

/* Skeleton */
.wallet-admin-page .wallet-skeleton {
  padding: var(--ui-space-4);
}

/* Clickable rows */
.wallet-admin-page .row-clickable {
  cursor: pointer;
  transition: background-color 0.15s ease;
}

.wallet-admin-page .row-clickable:hover {
  background: var(--ui-surface-subtle, hsla(0, 0%, 100%, 0.03));
}

/* ── Wallet Customer Detail Dialog (extends glass-modal contracts) ── */
.wallet-dialog-subtitle {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-top: var(--ui-space-1);
}

.wallet-dialog-balance-badge {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  padding: var(--ui-space-2) var(--ui-space-3);
  background: var(--ui-surface-subtle, rgba(255, 255, 255, 0.03));
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
}

.wallet-dialog-balance-label {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.wallet-dialog-balance-value {
  font-size: var(--ui-text-xl);
  font-weight: 600;
  color: var(--ui-text-primary);
}

.wallet-dialog-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-10);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
}

.wallet-dialog-txn {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) 0;
  border-bottom: 1px solid var(--ui-border);
}

.wallet-dialog-txn:last-child {
  border-bottom: none;
}

.wallet-dialog-txn-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-subtle, rgba(255, 255, 255, 0.04));
  flex-shrink: 0;
}

.wallet-dialog-txn-icon mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: var(--ui-text-secondary);
}

.wallet-dialog-txn--earn .wallet-dialog-txn-icon {
  background: hsla(142, 70%, 45%, 0.12);
}

.wallet-dialog-txn--earn .wallet-dialog-txn-icon mat-icon {
  color: var(--ui-success);
}

.wallet-dialog-txn--redeem .wallet-dialog-txn-icon {
  background: hsla(25, 95%, 53%, 0.12);
}

.wallet-dialog-txn--redeem .wallet-dialog-txn-icon mat-icon {
  color: var(--ui-warning);
}

.wallet-dialog-txn--adjust .wallet-dialog-txn-icon {
  background: hsla(217, 91%, 60%, 0.12);
}

.wallet-dialog-txn--adjust .wallet-dialog-txn-icon mat-icon {
  color: var(--ui-info, hsl(217, 91%, 60%));
}

.wallet-dialog-txn-details {
  flex: 1;
  min-width: 0;
}

.wallet-dialog-txn-reason {
  font-size: var(--ui-text-sm);
  font-weight: 500;
  color: var(--ui-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.wallet-dialog-txn-meta {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-secondary);
  margin-top: var(--ui-space-1);
}

.wallet-dialog-txn-amount {
  font-size: var(--ui-text-base);
  font-weight: 600;
  color: var(--ui-text-primary);
  flex-shrink: 0;
  padding-left: var(--ui-space-3);
}

.wallet-dialog-txn-amount--positive {
  color: var(--ui-success);
}

.wallet-dialog-txn-amount--negative {
  color: var(--ui-warning);
}

/* ── Responsive: tablet ── */
@media (max-width: 1024px) {
  .wallet-admin-page .wallet-health-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .wallet-admin-page .wallet-liability-card {
    grid-column: span 2;
  }
  .wallet-admin-page .wallet-activity-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .wallet-admin-page .wallet-charts-grid {
    grid-template-columns: 1fr;
  }
}
/* ── Responsive: mobile ── */
@media (max-width: 768px) {
  .wallet-admin-outlet {
    padding: var(--ui-space-3) var(--ui-space-4);
  }
  .wallet-admin-page .wallet-health-grid {
    grid-template-columns: 1fr 1fr;
  }
  .wallet-admin-page .wallet-liability-card {
    grid-column: span 2;
  }
  .wallet-admin-page .wallet-value-grid {
    grid-template-columns: 1fr;
  }
  .wallet-admin-page .wallet-activity-grid {
    grid-template-columns: 1fr 1fr;
  }
  .wallet-admin-page .wallet-charts-grid {
    grid-template-columns: 1fr;
  }
  .wallet-admin-page .adjust-form-grid {
    grid-template-columns: 1fr;
  }
  .wallet-admin-page .wallet-lrm-value {
    font-size: 36px;
  }
}
/* ==========================================================================
   TRAINING CONSUMPTION PAGE - LAYOUT ONLY
   ==========================================================================
   Structure-only rules for:
   /me/training/:trainingId

   Design: Video-first, scannable, modern learning experience
   ========================================================================== */
.training-consumption-page__content {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-6);
}

/* ==========================================================================
   SECTION 1: VIDEO HERO
   ========================================================================== */
.training-video-hero {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.training-back-link {
  align-self: flex-start;
}

.training-video-container {
  padding: 0;
  overflow: hidden;
}

.training-video-container .ui_media__content {
  border-radius: var(--ui-radius-xl);
}

.training-title {
  margin: 0;
}

/* ==========================================================================
   SECTION 2: META STATS BAR
   ========================================================================== */
.training-meta-bar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-3);
}

.training-stat-pill {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--ui-space-1);
  min-width: 100px;
  flex: 0 1 auto;
}

.training-stat-pill__label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--ui-text-muted);
}

.training-stat-pill__value {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

/* ==========================================================================
   SECTION 3: CONTENT GRID (Progress + Description)
   ========================================================================== */
.training-content-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--ui-space-5);
}

@media (min-width: 900px) {
  .training-content-grid {
    grid-template-columns: 1fr 1fr;
  }
}
/* --------------------------------
   Progress Card
   -------------------------------- */
.training-progress-card {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.training-completion-hint {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.training-completion-hint .ui_icon {
  flex-shrink: 0;
  color: var(--ui-info);
}

.training-completion-dates {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--ui-space-3);
  margin: 0;
  padding: var(--ui-space-3) 0 0 0;
  border-top: 1px solid var(--ui-border-light);
}

.training-completion-dates__item {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
}

.training-completion-dates__label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--ui-text-muted);
}

.training-completion-dates__value {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-secondary);
  margin: 0;
}

/* --------------------------------
   Description Card
   -------------------------------- */
.training-description-card {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.training-description-content {
  max-height: 120px;
  overflow: hidden;
  position: relative;
  transition: max-height var(--ui-transition-slow);
}

.training-description-content--expanded {
  max-height: none;
}

.training-description-content .ui-card__description {
  line-height: 1.65;
}

.training-read-more {
  align-self: flex-start;
  margin-top: var(--ui-space-1);
}

/* ==========================================================================
   RESPONSIVE ADJUSTMENTS
   ========================================================================== */
@media (max-width: 640px) {
  .training-consumption-page__content {
    gap: var(--ui-space-4);
  }
  .training-meta-bar {
    gap: var(--ui-space-2);
  }
  .training-stat-pill {
    min-width: calc(50% - var(--ui-space-2));
    flex: 1 1 auto;
  }
  .training-completion-dates {
    grid-template-columns: 1fr;
    gap: var(--ui-space-2);
  }
}
/* Not-found (404) page */
/* ==========================================================================
   UI PAGE — NOT FOUND (404)
   ==========================================================================
   Scoped to .ui-page--not-found.
   Faithfully reproduces the original 404 page design from the backup,
   moved into a proper page contract per the UI Rulebook.
   ========================================================================== */
/* ── Shell ─────────────────────────────────────────────────────────────── */
.ui-page--not-found {
  padding: 0;
  overflow: hidden;
}

.nf-shell {
  position: relative;
  min-height: 100vh;
  height: 100vh;
  padding: clamp(1rem, 3vw, 2rem) clamp(1.5rem, 4vw, 4rem) clamp(1.25rem, 3vw, 2.5rem);
  background: #040303;
  color: var(--ui-text-primary);
  font-family: var(--ui-font-primary);
  overflow: hidden;
  perspective: 1200px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
}

/* ── Hero Stack ────────────────────────────────────────────────────────── */
.nf-hero {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: clamp(3rem, 4vw, 3.5rem);
  margin-inline: auto;
  margin-top: 0;
  z-index: var(--z-base);
  width: 100%;
  max-width: 1100px;
}

/* ── Brand Mark ────────────────────────────────────────────────────────── */
.nf-brand {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ui-space-4);
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: clamp(1.5rem, 4vw, 2.5rem);
  margin-top: clamp(1rem, 3vw, 2rem);
}

.nf-brand__logo {
  width: clamp(48px, 6vw, 72px);
  filter: drop-shadow(0 12px 30px rgba(0, 0, 0, 0.55));
}

.nf-brand__name {
  font-size: 0.9rem;
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.6em;
}

/* ── Decorative Background ─────────────────────────────────────────────── */
.nf-decorative {
  position: absolute;
  inset: -8%;
  pointer-events: none;
  will-change: transform;
  background-color: #000000;
  background-image: url("/assets/images/404.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.nf-decorative::before,
.nf-decorative::after {
  display: none;
}

/* ── Particles ─────────────────────────────────────────────────────────── */
.nf-particles {
  position: absolute;
  inset: 0;
  overflow: hidden;
  will-change: transform;
  pointer-events: none;
}

.nf-particle-dot {
  position: absolute;
  border-radius: var(--ui-radius-full);
  box-shadow: 0 0 12px rgba(255, 200, 150, 0.55);
  animation: nf-particleFloat 18s ease-in-out infinite;
  opacity: 0.9;
  mix-blend-mode: screen;
}

/* ── Card Parallax Wrapper ─────────────────────────────────────────────── */
.nf-card-parallax {
  width: 100%;
  transition: transform 600ms ease-out;
  will-change: transform;
}

/* ── Rings ─────────────────────────────────────────────────────────────── */
.nf-rings {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: var(--z-base);
  pointer-events: none;
}

.nf-ring-wrapper {
  position: relative;
  --nf-core-size: clamp(320px, 45vw, 520px);
  width: var(--nf-core-size);
  height: var(--nf-core-size);
  pointer-events: none;
  --nf-ring-gap: clamp(32px, 4vw, 60px);
  margin-top: 50px;
}

.nf-ring {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: calc(var(--nf-core-size, 360px) - var(--ring-index, 0) * var(--nf-ring-gap));
  aspect-ratio: 1/1;
  border-radius: var(--ui-radius-full);
  border: 1px solid rgba(255, 199, 149, 0.35);
  box-shadow: 0 0 18px rgba(242, 70, 39, 0.25);
  animation: nf-ringPulse 6.5s ease-in-out infinite;
  opacity: calc(0.65 - var(--ring-index, 0) * 0.12);
  background: radial-gradient(circle, rgba(242, 70, 39, 0.16), transparent 70%);
}

.nf-halo {
  position: absolute;
  inset: 28%;
  border-radius: var(--ui-radius-full);
  background: radial-gradient(circle, rgba(242, 70, 39, 0.4), transparent 70%);
  filter: blur(35px);
  animation: nf-haloPulse 6.5s ease-in-out infinite;
}

/* ── Glass Card ────────────────────────────────────────────────────────── */
.nf-card {
  position: relative;
  overflow: hidden;
  z-index: 2;
  width: clamp(520px, 60vw, 900px);
  margin-inline: auto;
  padding: clamp(3rem, 6vw, 4.5rem) clamp(2.75rem, 8vw, 6rem) clamp(2.5rem, 6vw, 4rem);
  border-radius: var(--ui-radius-3xl);
  border: 1px solid var(--ui-border);
  background: rgba(20, 10, 10, 0.65);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.8), 0 0 80px rgba(242, 70, 39, 0.15), inset 0 0 0 1px rgba(255, 255, 255, 0.05);
  backdrop-filter: blur(10px) saturate(180%);
  -webkit-backdrop-filter: blur(10px) saturate(180%);
  animation: nf-cardFloat 6.5s ease-in-out infinite, nf-cardReveal 900ms ease both;
  transition: border var(--ui-transition-slow), box-shadow var(--ui-transition-slow);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin-top: -50px;
}

.nf-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at center, rgba(242, 70, 39, 0.12), transparent 60%);
  pointer-events: none;
  z-index: -1;
}

.nf-card::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.03) 0%, transparent 100%);
  pointer-events: none;
}

.nf-card-parallax:hover .nf-card {
  border-color: rgba(242, 70, 39, 0.3);
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.8), 0 0 100px rgba(242, 70, 39, 0.25), inset 0 0 0 1px rgba(242, 70, 39, 0.2);
  transform: translateY(-3px);
}

/* ── Code Display ──────────────────────────────────────────────────────── */
.nf-code-stack {
  position: relative;
  z-index: var(--z-base);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ui-space-4);
}

.nf-code-label {
  letter-spacing: 0.7em;
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.65);
  font-size: var(--ui-text-xs);
}

.nf-code-digits {
  font-size: clamp(5rem, 12vw, 9.375rem);
  margin: 0;
  line-height: 1;
  letter-spacing: 0.05em;
  background: linear-gradient(120deg, #ffaa50, #f24627 65%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 0 18px rgba(242, 70, 39, 0.55));
  animation: nf-digitsGlow 6.5s ease-in-out infinite;
  font-weight: var(--ui-font-semibold);
}

/* ── Subtitle ──────────────────────────────────────────────────────────── */
.nf-subtitle {
  position: relative;
  z-index: var(--z-base);
  margin: var(--ui-space-6) auto var(--ui-space-8);
  max-width: 560px;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.72);
  font-size: clamp(1rem, 1.5vw, 1.1rem);
  line-height: 1.6;
}

/* ── CTA Button ────────────────────────────────────────────────────────── */
.nf-cta {
  position: relative;
  z-index: var(--z-base);
  border: none;
  cursor: pointer;
  font: inherit;
  letter-spacing: 0.4em;
  font-size: 0.88rem;
  text-transform: uppercase;
  color: #fff;
  min-width: clamp(160px, 25%, 220px);
  padding: 0.35rem 2rem;
  background: linear-gradient(135deg, #b32d14, #d96226);
  border-radius: var(--ui-radius-full);
  overflow: hidden;
  isolation: isolate;
  box-shadow: 0 18px 40px rgba(242, 70, 39, 0.35);
  transition: transform 220ms ease, box-shadow 220ms ease;
}

.nf-cta::before {
  content: "";
  position: absolute;
  inset: 2px;
  border-radius: inherit;
  border: 1px solid rgba(255, 255, 255, 0.22);
  opacity: 0.35;
}

.nf-cta::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(255, 255, 255, 0) 35%, rgba(255, 255, 255, 0.22) 55%, rgba(255, 255, 255, 0) 70%);
  opacity: 0.5;
  animation: nf-shimmer 7s linear infinite;
}

.nf-cta:hover,
.nf-cta:focus-visible {
  box-shadow: 0 28px 52px rgba(242, 70, 39, 0.5);
  transform: translateY(-3px) scale(1.02);
}

.nf-cta:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.4);
  outline-offset: 4px;
}

/* ── CTA Ripple ────────────────────────────────────────────────────────── */
.nf-cta-ripple {
  position: absolute;
  top: var(--ripple-y, 50%);
  left: var(--ripple-x, 50%);
  width: 10px;
  height: 10px;
  border-radius: var(--ui-radius-full);
  transform: translate(-50%, -50%) scale(0);
  background: radial-gradient(circle, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0));
  pointer-events: none;
  opacity: 0.9;
}

.nf-cta.is-rippling .nf-cta-ripple {
  animation: nf-ripple 900ms ease-out forwards;
}

/* ── Keyframes ─────────────────────────────────────────────────────────── */
@keyframes nf-particleFloat {
  0% {
    transform: translate3d(0, 0, 0);
    opacity: 0;
  }
  20% {
    opacity: 0.6;
  }
  50% {
    transform: translate3d(8px, -12px, 0);
    opacity: 0.85;
  }
  100% {
    transform: translate3d(0, 0, 0);
    opacity: 0.45;
  }
}
@keyframes nf-cardFloat {
  0% {
    transform: translate3d(0, 0, 0);
  }
  50% {
    transform: translate3d(0, -12px, 0);
  }
  100% {
    transform: translate3d(0, 0, 0);
  }
}
@keyframes nf-cardReveal {
  0% {
    opacity: 0;
    transform: translate3d(0, 40px, 0) scale(0.96);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}
@keyframes nf-ringPulse {
  0%, 100% {
    opacity: inherit;
    transform: translate(-50%, -50%) scale(1);
  }
  50% {
    opacity: calc(0.4 + var(--ring-index, 0) * 0.05);
    transform: translate(-50%, -50%) scale(1.03);
  }
}
@keyframes nf-haloPulse {
  0%, 100% {
    opacity: 0.35;
  }
  50% {
    opacity: 0.65;
  }
}
@keyframes nf-digitsGlow {
  0%, 100% {
    text-shadow: 0 0 25px rgba(242, 70, 39, 0.45);
  }
  50% {
    text-shadow: 0 0 35px rgba(242, 70, 39, 0.7);
  }
}
@keyframes nf-shimmer {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(100%);
  }
}
@keyframes nf-ripple {
  0% {
    transform: translate(-50%, -50%) scale(0);
    opacity: 0.9;
  }
  100% {
    transform: translate(-50%, -50%) scale(12);
    opacity: 0;
  }
}
/* ── Responsive ────────────────────────────────────────────────────────── */
@media (max-width: 880px) {
  .nf-card {
    width: min(90vw, 640px);
  }
  .nf-ring-wrapper {
    --nf-core-size: clamp(260px, 70vw, 420px);
    --nf-ring-gap: clamp(20px, 6vw, 40px);
  }
}
@media (max-width: 640px) {
  .nf-hero {
    gap: 2.5rem;
  }
  .nf-brand__name {
    letter-spacing: 0.4em;
  }
  .nf-particle-dot:nth-of-type(odd) {
    display: none;
  }
  .nf-card {
    padding: 2.25rem 1.75rem 2.5rem;
    width: 100%;
  }
  .nf-cta {
    letter-spacing: 0.2em;
    min-width: 220px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .nf-card,
  .nf-cta,
  .nf-ring,
  .nf-halo,
  .nf-particle-dot {
    animation: none;
    transition: none;
  }
  .nf-particles,
  .nf-decorative,
  .nf-card-parallax {
    transform: none !important;
  }
}
/* ==========================================================================
   UI PAGES - ACCESS DENIED
   ==========================================================================
   Full-page access denied state. Shown when a user lacks permissions.
   Design language mirrors session-expired-dialog but with warning (amber) tone.

   LAYER ORDER (topbar & sidebar stay above this overlay):
   - Sidebar:  z-index 10000
   - Header:   z-index 1000
   - Overlay:  z-index 999
   ========================================================================== */
.access-denied-page {
  position: fixed;
  top: 56px; /* sit below header bar so header stays accessible */
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 999;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 80px 32px;
  /* glass-dialog-backdrop (modal.scss) — same overlay as session-expired */
  background: rgba(8, 8, 8, 0.65);
  backdrop-filter: blur(12px) saturate(150%);
  -webkit-backdrop-filter: blur(12px) saturate(150%);
  animation: access-denied-fadein 0.4s ease-out;
}

@keyframes access-denied-fadein {
  0% {
    opacity: 0;
    transform: translateY(16px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
/* ---- Icon ---- */
.access-denied-page .ad-icon {
  position: relative;
  width: 88px;
  height: 88px;
  margin: 0 auto 28px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(245, 158, 11, 0.15), rgba(255, 140, 50, 0.08));
  border: 1px solid rgba(245, 158, 11, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 40px rgba(245, 158, 11, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.access-denied-page .ad-icon mat-icon {
  font-size: 44px;
  width: 44px;
  height: 44px;
  color: #fbbf24;
  animation: ad-icon-glow 2s ease-in-out infinite alternate;
}

.access-denied-page .ad-icon-pulse {
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: transparent;
  border: 2px solid rgba(245, 158, 11, 0.35);
  animation: ad-pulse 2.5s ease-out infinite;
}

@keyframes ad-pulse {
  0% {
    transform: scale(1);
    opacity: 0.8;
  }
  100% {
    transform: scale(1.6);
    opacity: 0;
  }
}
@keyframes ad-icon-glow {
  0% {
    filter: drop-shadow(0 0 4px rgba(245, 158, 11, 0.3));
  }
  100% {
    filter: drop-shadow(0 0 14px rgba(245, 158, 11, 0.6));
  }
}
/* ---- Text ---- */
.access-denied-page .ad-title {
  font-size: 24px;
  font-weight: 700;
  color: #ffffff;
  margin: 0 0 12px 0;
  letter-spacing: -0.02em;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.access-denied-page .ad-message {
  font-size: 15px;
  line-height: 1.6;
  color: rgba(220, 210, 205, 0.7);
  margin: 0 0 8px 0;
  max-width: 380px;
}

/* ---- Permission Info ---- */
.access-denied-page .ad-permission-info {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  background: rgba(245, 158, 11, 0.08);
  border: 1px solid rgba(245, 158, 11, 0.15);
  border-radius: 999px;
  margin: 12px 0 28px;
}

.access-denied-page .ad-permission-info mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: rgba(251, 191, 36, 0.6);
}

.access-denied-page .ad-permission-info span {
  font-size: 12px;
  font-weight: 500;
  color: rgba(251, 191, 36, 0.7);
  letter-spacing: 0.02em;
}

/* ---- Action Button ---- */
.access-denied-page .ad-action-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.8);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  padding: 12px 28px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.25s ease;
  letter-spacing: 0.01em;
}

.access-denied-page .ad-action-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.access-denied-page .ad-action-btn:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.2);
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
}

.access-denied-page .ad-action-btn:active {
  transform: translateY(0);
}

/* Auth domain (isolated — NOT part of main app UI system) */
/* ==========================================================================
   UI PAGE - AUTH (Login/Register)
   ==========================================================================
   Full-screen auth page contract. Used for login and registration flows.
   This is a self-contained page that replaces the console shell.
   ========================================================================== */
/* Auth page tokens */
:root {
  --auth-bg-left: #090909;
  --auth-bg-right: #a0381f;
  --auth-bg-mid: #2b130c;
  --auth-card-glass: rgba(18, 14, 14, 0.45);
  --auth-card-border: rgba(255, 255, 255, 0.06);
  --auth-card-glow: rgba(231, 70, 48, 0.3);
  --auth-text-primary: #f5e2ce;
  --auth-text-secondary: #c9b8a8;
  --auth-text-muted: #bfb6af;
  --auth-link-color: #f08a5b;
  --auth-pill-bg: rgba(32, 16, 12, 0.92);
  --auth-pill-border: rgba(255, 146, 90, 0.35);
  --auth-input-bg: transparent;
  --auth-input-border: rgba(255, 140, 100, 0.25);
  --auth-input-border-hover: rgba(255, 160, 110, 0.35);
  --auth-input-border-focus: rgba(255, 180, 130, 0.45);
  --auth-button-left: #e74630;
  --auth-button-right: #ff7a4f;
}

/* ==========================================================================
   MAIN SHELL
   ========================================================================== */
.ui-page--auth {
  min-height: 100vh;
  padding: 0;
  overflow: hidden;
  color: var(--auth-text-primary);
  font-family: "Manrope", "SF Pro Display", -apple-system, BlinkMacSystemFont, sans-serif;
}

.ui-page--auth > .login-shell,
.ui-page--auth > .register-shell {
  max-width: none;
  margin: 0;
}

.login-shell,
.register-shell {
  position: fixed;
  inset: 0;
  height: 100vh;
  width: 100vw;
  padding: 32px 42px 48px;
  background: linear-gradient(115deg, var(--auth-bg-left) 0%, #110707 35%, var(--auth-bg-mid) 58%, var(--auth-bg-right) 100%);
  color: var(--auth-text-primary);
  font-family: "Manrope", "SF Pro Display", -apple-system, BlinkMacSystemFont, sans-serif;
}

.login-shell {
  overflow: hidden;
}

.register-shell {
  overflow-x: hidden;
  overflow-y: auto;
}

/* ==========================================================================
   AMBIENT GLOW EFFECTS
   ========================================================================== */
.ambient-glow {
  position: absolute;
  border-radius: 999px;
  filter: blur(110px);
  opacity: 0.55;
  pointer-events: none;
  z-index: 0;
}

.glow-one {
  width: 380px;
  height: 380px;
  background: radial-gradient(circle, rgba(255, 134, 76, 0.55), rgba(58, 17, 11, 0));
  top: -30px;
  right: 16%;
}

.glow-two {
  width: 520px;
  height: 520px;
  background: radial-gradient(circle, rgba(217, 110, 57, 0.35), rgba(36, 13, 9, 0));
  bottom: -120px;
  left: -40px;
}

/* ==========================================================================
   LAYOUT GRID
   ========================================================================== */
.login-shell .layout,
.register-shell .layout {
  position: relative;
  z-index: 1;
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 0.6fr;
  gap: 52px;
  align-items: flex-start;
}

.register-shell .layout {
  min-height: calc(100vh - 80px);
  grid-template-columns: minmax(0, 1.05fr) minmax(520px, 640px);
  gap: 44px;
  align-items: center;
}

/* ==========================================================================
   HERO PANEL (Left Side)
   ========================================================================== */
.hero-panel {
  padding: 12px 8px 8px;
  color: var(--auth-text-primary);
}

.hero-download {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  margin-top: -24px;
}

.brand-row {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  margin-bottom: 14px;
}

.brand-mark {
  height: 38px;
  filter: drop-shadow(0 8px 20px rgba(0, 0, 0, 0.5));
}

.subhead {
  margin: 12px 0 8px;
  font-size: 16px;
  color: var(--auth-text-secondary);
  opacity: 0.9;
}

.hero-illustration {
  margin: 0 0 0 0;
  overflow: visible;
}

.illustration-img {
  max-width: 900px;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 32px 80px rgba(0, 0, 0, 0.65)) hue-rotate(-10deg) saturate(1.3);
}

.store-row {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 12px 0;
  border-radius: 999px;
  background: transparent;
  width: 100%;
}

.store-copy {
  font-weight: 500;
  color: var(--auth-text-secondary);
  font-size: 13px;
}

.store-badge {
  height: 16px;
  border-radius: 6px;
  margin-top: 2px;
}

.copyright {
  margin: 0;
  font-size: 12px;
  color: #8e7f75;
  padding-left: 0;
  text-align: left;
}

.copyright--legal {
  margin-top: 4px;
  font-size: 10.5px;
  letter-spacing: 0.02em;
}

.copyright-link {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease;
}

.copyright-link:hover {
  color: rgba(240, 200, 170, 0.85);
  text-decoration: underline;
}

/* ==========================================================================
   CARD COLUMN (Right Side)
   ========================================================================== */
.card-column {
  display: flex;
  flex-direction: column;
  align-items: center;
  align-self: center;
  height: auto;
  padding-top: 0;
  margin-top: 0;
  gap: 12px;
}

/* ==========================================================================
   FLIP CARD CONTAINER
   ========================================================================== */
.flip-container {
  perspective: 1000px;
  width: 100%;
  max-width: 520px;
  position: relative;
}

.flipper {
  transition: 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transform-style: preserve-3d;
  position: relative;
  width: 100%;
}

.flip-container.flipped .flipper {
  transform: rotateY(180deg);
}

.front,
.back {
  width: 100%;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
}

.front {
  z-index: 2;
  transform: rotateY(0deg);
  position: relative;
}

.back {
  transform: rotateY(180deg);
  position: absolute;
  top: 0;
  left: 0;
}

/* ==========================================================================
   LOGIN CARD
   ========================================================================== */
.login-card {
  width: 100%;
  max-width: 380px;
  min-height: auto;
  padding: 32px 32px 24px;
  border-radius: 32px;
  background: var(--auth-card-glass);
  border: 1px solid var(--auth-card-border);
  box-shadow: 0 45px 110px rgba(0, 0, 0, 0.65), 0 0 60px var(--auth-card-glow);
  backdrop-filter: blur(28px);
  display: flex;
  flex-direction: column;
  transition: transform 300ms ease, box-shadow 300ms ease, border-color 300ms ease, background 300ms ease;
}

/* Hover effect removed */
/* .login-card:hover {
  transform: translateY(-8px) scale(1.005);
  border-color: rgba(255, 255, 255, 0.12);
  background: rgba(28, 20, 18, 0.55);
  box-shadow: 0 65px 150px rgba(0, 0, 0, 0.75), 0 0 100px rgba(231, 70, 48, 0.5);
} */
.logo-badge {
  width: 100px;
  height: 100px;
  margin: 0 auto 4px;
  border-radius: 22px;
  background: transparent;
  display: grid;
  place-items: center;
}

.logo-icon {
  width: 80px;
  height: 80px;
  filter: drop-shadow(0 16px 28px rgba(0, 0, 0, 0.55));
}

.card-title {
  text-align: center;
  color: var(--auth-text-primary);
  font-size: 15px;
  letter-spacing: 5px;
  margin: 0 0 16px;
}

.login-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
  flex: 1;
}

.forgot-row {
  display: flex;
  justify-content: flex-end;
  margin-top: -8px;
}

.forgot-link {
  font-size: 11px;
  font-weight: 500;
  color: var(--auth-text-muted);
  opacity: 0.6;
  text-decoration: none;
  letter-spacing: 0.2px;
  transition: opacity 200ms ease;
}

.forgot-link:hover {
  opacity: 1;
}

/* ==========================================================================
   REGISTER CARD
   ========================================================================== */
.register-card {
  width: 100%;
  height: auto;
  border-radius: 32px;
  background: var(--auth-card-glass);
  border: 1px solid var(--auth-card-border);
  box-shadow: 0 45px 110px rgba(0, 0, 0, 0.65), 0 0 60px var(--auth-card-glow);
  backdrop-filter: blur(28px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transition: transform 300ms ease, box-shadow 300ms ease, border-color 300ms ease, background 300ms ease;
}

.register-shell .register-card {
  max-width: 640px;
  max-height: calc(100vh - 64px);
}

/* Hover effect removed */
/* .register-card:hover {
  transform: translateY(-8px) scale(1.005);
  border-color: rgba(255, 255, 255, 0.12);
  background: rgba(28, 20, 18, 0.55);
  box-shadow: 0 65px 150px rgba(0, 0, 0, 0.75), 0 0 100px rgba(231, 70, 48, 0.5);
} */
.register-header {
  flex-shrink: 0;
  padding: 24px 28px 8px;
  text-align: center;
}

.register-body {
  flex: 0 0 auto;
  padding: 4px 28px 12px;
}

.register-shell .register-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 140, 80, 0.45) transparent;
}

.register-body::-webkit-scrollbar {
  width: 6px;
}

.register-body::-webkit-scrollbar-thumb {
  background: rgba(255, 140, 80, 0.35);
  border-radius: 999px;
}

.register-footer {
  flex-shrink: 0;
  padding: 8px 28px 22px;
}

.register-form {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.field-row {
  display: flex;
  gap: 12px;
}

.half-field {
  flex: 1;
  min-width: 0;
}

.country-code-field {
  flex: 0 0 90px;
  max-width: 90px;
}

.phone-field {
  flex: 1;
}

.field-error {
  color: #ff6b6b;
  font-size: 11px;
  margin-top: 4px;
  margin-bottom: 0;
  padding-left: 12px;
}

/* ==========================================================================
   FROSTED FIELD STYLING - LOGIN CARD (Underline Style)
   ========================================================================== */
/* Text Field Wrapper for Login Card - Underline Style */
.login-card .mat-mdc-form-field {
  width: 100% !important;
}

/* NUCLEAR: Remove ALL backgrounds from any form field child */
.login-card .mat-mdc-form-field *:not(input):not(mat-icon):not(.mat-icon):not(.fa):not(.fas):not(.far) {
  background: transparent !important;
  background-color: transparent !important;
}

.login-card .frosted-field .mat-mdc-text-field-wrapper,
.login-card .mat-mdc-form-field .mat-mdc-text-field-wrapper {
  background: var(--auth-input-bg) !important;
  background-color: var(--auth-input-bg) !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 0 4px 0;
  margin: 0;
  min-height: 48px;
  height: 48px;
  width: 100%;
  box-shadow: inset 0 -1px 0 0 var(--auth-input-border) !important;
  outline: none;
}

.login-card .frosted-field .mat-mdc-text-field-wrapper:hover,
.login-card .mat-mdc-form-field .mat-mdc-text-field-wrapper:hover {
  box-shadow: inset 0 -1px 0 0 var(--auth-input-border-hover) !important;
  background: var(--auth-input-bg) !important;
  background-color: var(--auth-input-bg) !important;
}

.login-card .mat-mdc-form-field.mat-focused .mat-mdc-text-field-wrapper {
  box-shadow: inset 0 -1px 0 0 var(--auth-input-border-focus) !important;
  background: var(--auth-input-bg) !important;
  background-color: var(--auth-input-bg) !important;
}

/* Remove ALL Material filled backgrounds and states - COMPREHENSIVE */
.login-card .mdc-text-field,
.login-card .mdc-text-field--filled,
.login-card .mdc-text-field--filled:not(.mdc-text-field--disabled),
.login-card .mdc-text-field--outlined,
.login-card .mdc-text-field__input,
.login-card .mat-mdc-text-field-wrapper .mdc-text-field,
.login-card .mat-mdc-text-field-wrapper .mdc-text-field--filled,
.login-card .mdc-text-field--no-label,
.login-card .mdc-text-field--filled.mdc-text-field--no-label,
.login-card .mat-mdc-form-field-flex,
.login-card .mdc-notched-outline,
.login-card .mdc-notched-outline__leading,
.login-card .mdc-notched-outline__notch,
.login-card .mdc-notched-outline__trailing {
  background: transparent !important;
  background-color: transparent !important;
  border-color: transparent !important;
}

/* Remove focus overlay completely */
.login-card .mat-mdc-form-field-focus-overlay {
  display: none !important;
  opacity: 0 !important;
  background: transparent !important;
  background-color: transparent !important;
}

/* Remove all pseudo-element backgrounds */
.login-card .mat-mdc-text-field-wrapper::before,
.login-card .mat-mdc-text-field-wrapper::after,
.login-card .mdc-text-field::before,
.login-card .mdc-text-field::after,
.login-card .mdc-text-field--filled::before,
.login-card .mdc-text-field--filled::after,
.login-card .mat-mdc-form-field-flex::before,
.login-card .mat-mdc-form-field-flex::after {
  display: none !important;
  background: transparent !important;
  background-color: transparent !important;
}

/* Remove subscript wrapper (hint/error area) if empty */
.login-card .mat-mdc-form-field-subscript-wrapper {
  display: none !important;
}

/* Remove state layer (Material 3 hover/focus indicator) */
.login-card .mdc-text-field__ripple,
.login-card .mat-mdc-form-field .mdc-text-field__ripple,
.login-card .mdc-text-field--filled .mdc-text-field__ripple {
  display: none !important;
  opacity: 0 !important;
  background: transparent !important;
}

/* Remove underline ripple */
.login-card .mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before,
.login-card .mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after,
.login-card .mdc-line-ripple,
.login-card .mdc-line-ripple::before,
.login-card .mdc-line-ripple::after {
  display: none !important;
  background-color: transparent !important;
}

/* Form field flex container */
.login-card .mat-mdc-form-field-flex {
  align-items: center !important;
}

/* Form field infix */
.login-card .mat-mdc-form-field-infix {
  padding-top: 20px !important;
  padding-bottom: 8px !important;
  border-top: 0 !important;
}

/* Floating label styling - colors only, let Material handle positioning */
.login-card .mat-mdc-floating-label {
  color: var(--auth-text-secondary) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
}

.login-card .mat-mdc-floating-label--float-above {
  color: rgba(255, 200, 150, 0.8) !important;
}

/* Input text */
.login-card .mat-mdc-input-element,
.login-card .mdc-text-field__input {
  color: var(--auth-text-primary) !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  caret-color: var(--auth-button-right) !important;
}

.login-card .mat-mdc-input-element::placeholder {
  color: transparent !important;
}

/* Icons - smaller and consistent */
.login-card .frosted-field mat-icon,
.login-card .frosted-field .mat-icon,
.login-card .mat-mdc-form-field mat-icon,
.login-card .mat-mdc-form-field .mat-icon {
  color: rgba(211, 181, 160, 0.9) !important;
  font-size: 18px !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  min-height: 18px !important;
}

/* FontAwesome icons - same size as Material icons */
.login-card .frosted-field .fa,
.login-card .frosted-field .fas,
.login-card .frosted-field .far,
.login-card .frosted-field .fab,
.login-card .mat-mdc-form-field .fa,
.login-card .mat-mdc-form-field .fas,
.login-card .mat-mdc-form-field .far,
.login-card .mat-mdc-form-field .fab {
  font-size: 16px !important;
  width: 18px !important;
  height: 18px !important;
  line-height: 18px !important;
  text-align: center !important;
}

/* ==========================================================================
   FROSTED FIELD STYLING - LEGACY SELECTORS (Fallback)
   ========================================================================== */
.frosted-field .mat-form-field-flex,
.frosted-field .mat-mdc-form-field-flex {
  background: var(--auth-input-bg);
  border-bottom: 1px solid var(--auth-input-border);
  border-radius: 0;
  padding: 0 6px 6px 6px;
}

.frosted-field .mat-form-field-infix,
.frosted-field .mat-mdc-form-field-infix {
  padding: 0.35em 0 0.4em 0;
}

.frosted-field.mat-focused .mat-form-field-flex,
.frosted-field.mat-focused .mat-mdc-form-field-flex {
  border-bottom-color: rgba(255, 168, 109, 0.7);
  box-shadow: none;
}

.frosted-field .mat-form-field-label,
.frosted-field .mat-mdc-floating-label {
  color: var(--auth-text-secondary);
  font-weight: 500;
}

.frosted-field .mat-input-element,
.frosted-field .mat-mdc-input-element {
  color: var(--auth-text-muted);
  caret-color: var(--auth-button-right);
}

.frosted-field .mat-form-field-underline,
.frosted-field .mat-form-field-ripple,
.frosted-field .mdc-line-ripple {
  display: none;
}

.frosted-field mat-icon,
.frosted-field .mat-icon {
  color: rgba(211, 181, 160, 0.9) !important;
}

/* Glass Box Input Fields for Register Card */
.register-card .frosted-field {
  width: 100% !important;
  display: block !important;
}

.register-card .mat-mdc-form-field {
  width: 100% !important;
  display: block !important;
}

.register-card .frosted-field .mat-mdc-text-field-wrapper,
.register-card .mat-mdc-form-field .mat-mdc-text-field-wrapper {
  background: rgba(255, 255, 255, 0.03) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 14px !important;
  padding: 0 !important;
  min-height: 58px !important;
  height: 58px !important;
  width: 100% !important;
  transition: all 0.25s ease !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  box-sizing: border-box !important;
}

.register-card .frosted-field .mat-mdc-text-field-wrapper:hover,
.register-card .mat-mdc-form-field .mat-mdc-text-field-wrapper:hover {
  background: rgba(255, 255, 255, 0.05) !important;
  border-color: rgba(255, 255, 255, 0.12) !important;
}

.register-card .frosted-field.mat-focused .mat-mdc-text-field-wrapper,
.register-card .mat-mdc-form-field.mat-focused .mat-mdc-text-field-wrapper {
  background: rgba(255, 255, 255, 0.06) !important;
  border-color: rgba(255, 140, 80, 0.4) !important;
  box-shadow: 0 0 0 2px rgba(255, 140, 80, 0.1) !important;
}

.register-card .frosted-field .mat-mdc-form-field-flex,
.register-card .mat-mdc-form-field .mat-mdc-form-field-flex {
  min-height: 58px !important;
  height: 58px !important;
  align-items: center !important;
  padding: 0 14px 0 0 !important;
}

.register-card .frosted-field .mat-mdc-form-field-infix,
.register-card .mat-mdc-form-field .mat-mdc-form-field-infix {
  padding-top: 21px !important;
  padding-bottom: 7px !important;
  padding-left: 2px !important;
  min-height: 58px !important;
  height: 58px !important;
  display: block !important;
  border-top: 0 !important;
  width: 100% !important;
}

/* Icons - subtle and elegant - ALIGN LEFT */
.register-card .mat-mdc-form-field-icon-prefix,
.register-card .frosted-field .mat-mdc-form-field-icon-prefix,
.register-card .mat-mdc-form-field-icon-suffix,
.register-card .frosted-field .mat-icon-prefix,
.register-card .mat-icon-suffix {
  padding-left: 0 !important;
  padding-right: 4px !important;
  margin-left: 12px !important;
}

.register-card .frosted-field mat-icon,
.register-card .frosted-field .mat-icon,
.register-card .mat-mdc-form-field mat-icon {
  color: rgba(255, 180, 140, 0.5) !important;
  font-size: 18px !important;
  width: 18px !important;
  height: 18px !important;
  margin-left: 0 !important;
  padding-left: 0 !important;
}

/* Subtle floating label - smaller, more refined */
.register-card .frosted-field .mat-mdc-floating-label,
.register-card .mat-mdc-form-field .mat-mdc-floating-label {
  color: rgba(255, 255, 255, 0.4) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: 0.3px !important;
  line-height: 1.1 !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  transform-origin: left top !important;
  pointer-events: none !important;
}

.register-card .frosted-field .mat-mdc-floating-label.mdc-floating-label--float-above,
.register-card .mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label--float-above,
.register-card .frosted-field .mat-mdc-floating-label--float-above,
.register-card .mat-mdc-form-field .mat-mdc-floating-label--float-above,
.register-card .mat-mdc-form-field:has(.mat-mdc-select-value-text) .mat-mdc-floating-label {
  top: 11px !important;
  transform: translateY(0) scale(0.82) !important;
  color: rgba(255, 180, 140, 0.7) !important;
  font-size: 10px !important;
  width: auto !important;
}

/* Remove Material underlines and overlays */
.register-card .mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before,
.register-card .mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after,
.register-card .mdc-line-ripple {
  display: none !important;
}

.register-card .mdc-text-field--filled:not(.mdc-text-field--disabled) {
  background: transparent !important;
}

.register-card .mat-mdc-form-field-focus-overlay {
  display: none !important;
}

.register-card .mat-mdc-form-field-subscript-wrapper {
  display: none !important;
}

/* Input text - crisp and readable */
.register-card .frosted-field .mat-mdc-input-element,
.register-card .frosted-field .mdc-text-field__input,
.register-card .mat-mdc-form-field .mat-mdc-input-element {
  color: rgba(255, 255, 255, 0.95) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 24px !important;
  caret-color: #ff8c5a !important;
  padding: 0 !important;
  margin: 0 !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.95) !important;
}

.register-card .mat-mdc-input-element::placeholder {
  color: transparent !important;
}

/* Select styling */
.register-card .mat-mdc-select-value {
  color: rgba(255, 255, 255, 0.9) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 24px !important;
}

.register-card .mat-mdc-select-trigger {
  min-height: 24px !important;
  align-items: center !important;
}

.register-card .mat-mdc-select-arrow {
  color: rgba(255, 255, 255, 0.5) !important;
}

/* ==========================================================================
   FORM CONTROLS
   ========================================================================== */
.placeholder-text {
  color: var(--auth-text-secondary);
}

.forgot-button {
  font-size: 12px;
  color: var(--auth-link-color);
  cursor: pointer;
  font-weight: 600;
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.resend-timer {
  font-size: 12px;
  color: var(--auth-text-muted);
  font-weight: 500;
  opacity: 0.8;
  cursor: not-allowed;
}

.primary-action {
  display: flex;
  justify-content: center;
  margin-top: 6px;
}

.btn-gradient,
.login-card .btn-gradient,
.login-card button.btn-gradient,
.register-card .btn-gradient,
.register-card button.btn-gradient {
  width: 100% !important;
  border: none !important;
  border-radius: 999px !important;
  padding: 14px 24px !important;
  min-height: 48px !important;
  background: linear-gradient(90deg, var(--auth-button-left), var(--auth-button-right)) !important;
  color: #1a0805 !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  box-shadow: 0 8px 24px rgba(231, 70, 48, 0.35) !important;
  letter-spacing: 0.5px !important;
  transition: transform 180ms ease, box-shadow 180ms ease !important;
  cursor: pointer !important;
  overflow: hidden !important;
}

.btn-gradient:not(:disabled):hover,
.login-card .btn-gradient:not(:disabled):hover,
.register-card .btn-gradient:not(:disabled):hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 12px 32px rgba(231, 70, 48, 0.45) !important;
}

.btn-gradient:disabled,
.login-card .btn-gradient:disabled,
.register-card .btn-gradient:disabled {
  opacity: 0.55 !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
}

/* Override Material button styles for auth pages */
.login-shell .btn-gradient,
.login-shell button.btn-gradient,
.login-shell .mat-mdc-button.btn-gradient,
.login-shell .mat-mdc-unelevated-button.btn-gradient,
.login-card .mat-mdc-button.btn-gradient,
.login-card .mat-mdc-unelevated-button.btn-gradient,
.login-card .mat-mdc-raised-button.btn-gradient,
.login-card .mat-mdc-outlined-button.btn-gradient,
.login-card button[mat-button].btn-gradient,
.register-card .mat-mdc-button.btn-gradient,
.register-card .mat-mdc-unelevated-button.btn-gradient,
.register-card .mat-mdc-raised-button.btn-gradient,
.register-card .mat-mdc-outlined-button.btn-gradient,
.register-card button[mat-button].btn-gradient {
  background: linear-gradient(90deg, var(--auth-button-left), var(--auth-button-right)) !important;
  color: #1a0805 !important;
  border-radius: 999px !important;
  --mdc-text-button-label-text-color: #1a0805 !important;
  --mdc-filled-button-container-shape: 999px !important;
  --mdc-outlined-button-container-shape: 999px !important;
  --mdc-protected-button-container-shape: 999px !important;
  --mat-mdc-button-persistent-ripple-color: transparent !important;
}

/* Target Material's internal .mdc-button element */
.login-shell .btn-gradient .mdc-button,
.login-shell button.btn-gradient .mdc-button,
.login-card .btn-gradient .mdc-button,
.register-card .btn-gradient .mdc-button {
  border-radius: 999px !important;
  background: transparent !important;
}

/* Target Material's button ripple container */
.login-shell .btn-gradient .mat-mdc-button-touch-target,
.login-shell .btn-gradient .mat-mdc-button-ripple,
.login-card .btn-gradient .mat-mdc-button-touch-target,
.login-card .btn-gradient .mat-mdc-button-ripple,
.register-card .btn-gradient .mat-mdc-button-touch-target,
.register-card .btn-gradient .mat-mdc-button-ripple {
  border-radius: 999px !important;
}

.ghost-action {
  display: flex;
  justify-content: flex-end;
}

.linkish {
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
  color: var(--auth-text-secondary);
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  outline: none !important;
}

.linkish:hover {
  color: var(--auth-link-color);
  background: transparent !important;
  background-color: transparent !important;
}

.login-arrow {
  height: 18px;
  width: 20px;
}

/* ==========================================================================
   CARD FOOTERS
   ========================================================================== */
.login-card-divider {
  display: flex;
  align-items: center;
  margin: 16px 0 8px;
}

.login-card-divider::before,
.login-card-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(244, 204, 178, 0.25), transparent);
}

.login-card-divider::before {
  margin-right: 12px;
}

.login-card-divider::after {
  margin-left: 12px;
}

.register-card-divider {
  height: 1px;
  margin: 10px 0 8px;
  background: linear-gradient(90deg, transparent, rgba(244, 204, 178, 0.5), transparent);
}

.login-card-footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  text-align: center;
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid rgba(244, 204, 178, 0.1);
}

.login-card-footer .contact-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
}

.login-card-footer .footer-link {
  font-size: 11px;
  color: var(--auth-text-muted);
  opacity: 0.6;
}

.login-card-footer .footer-number {
  font-size: 13px;
  font-weight: 700;
  color: var(--auth-text-primary);
  letter-spacing: 0.4px;
  opacity: 0.8;
}

.register-card-footer {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 6px;
  text-align: center;
  background: transparent;
}

.register-link {
  color: #E14125 !important;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0.4px;
  text-decoration: none;
  font-size: 13px;
  margin-bottom: 2px;
}

.register-link:hover {
  color: #E14125 !important;
}

.login-link {
  color: #E14125 !important;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0.4px;
  text-decoration: none;
  font-size: 13px;
  transition: color 0.2s ease;
}

.login-link:hover {
  color: var(--auth-button-right) !important;
}

.login-prompt {
  color: var(--auth-text-secondary);
  font-size: 11px;
}

.contact-block {
  display: flex;
  flex-direction: column;
  gap: 4px;
  color: var(--auth-text-secondary);
  font-size: 14px;
}

.footer-link {
  font-size: 13px;
  color: var(--auth-text-muted);
}

.footer-number {
  font-size: 19px;
  font-weight: 700;
  color: var(--auth-text-primary);
}

/* ── Inline validation hints ───────────────────────────────── */
.field-hint {
  font-size: 11px;
  color: var(--auth-text-muted);
  opacity: 0.6;
  margin: -4px 0 0 38px;
  letter-spacing: 0.2px;
}

.field-hint--valid {
  color: #4caf50;
  opacity: 1;
  font-weight: 600;
}

.field-hint--error {
  color: #f44336;
  opacity: 1;
  font-weight: 500;
}

.field-hint--checking {
  color: var(--auth-text-muted);
  opacity: 0.8;
  font-style: italic;
}

.field-hint-link {
  color: #f44336;
  text-decoration: underline;
  cursor: pointer;
  margin-left: 4px;
  font-weight: 600;
}
.field-hint-link:hover {
  color: rgb(234.1839622642, 27.9622641509, 12.8160377358);
}

/* ── Signup microcopy ─────────────────────────────────────── */
.signup-microcopy {
  text-align: center;
  color: var(--auth-text-muted);
  font-size: 11px;
  margin: 4px 0 0;
  opacity: 0.5;
  letter-spacing: 0.2px;
}

/* ── Terms note (implicit consent) ────────────────────────── */
.terms-note {
  text-align: center;
  color: var(--auth-text-muted);
  font-size: 10px;
  margin: 6px 0 0;
  opacity: 0.4;
  line-height: 1.4;
}

.terms-link {
  color: var(--auth-link-color);
  text-decoration: underline;
  font-weight: 500;
}

.terms-link:hover {
  color: var(--auth-button-right);
}

/* ==========================================================================
   ANIMATIONS
   ========================================================================== */
.floating {
  animation: floaty 6200ms ease-in-out infinite;
}

.lift-in {
  /* Animation disabled - uncomment below to enable */
  /* animation: liftIn 650ms ease 160ms both; */
  opacity: 1;
}

@keyframes floaty {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-12px);
  }
}
@keyframes liftIn {
  0% {
    opacity: 0;
    transform: translateY(30px) scale(0.98);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
/* ==========================================================================
   GLASS DROPDOWN PANEL (Auth Context)
   ========================================================================== */
.login-shell .mat-mdc-select-panel,
.login-shell .mat-mdc-autocomplete-panel {
  background: linear-gradient(145deg, rgba(60, 50, 45, 0.25), rgba(40, 35, 30, 0.35)) !important;
  backdrop-filter: blur(60px) saturate(100%) brightness(1) !important;
  -webkit-backdrop-filter: blur(60px) saturate(100%) brightness(1) !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  border-radius: 20px !important;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
  padding: 10px !important;
  margin-top: 8px !important;
}

.login-shell .mat-mdc-select-panel .mat-mdc-option,
.login-shell .mat-mdc-autocomplete-panel .mat-mdc-option {
  color: rgba(255, 255, 255, 0.85) !important;
  background: transparent !important;
  min-height: 44px !important;
  padding: 10px 16px !important;
  margin: 4px 8px !important;
  border-radius: 14px !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  transition: all 0.2s ease !important;
  border: 1px solid transparent !important;
}

.login-shell .mat-mdc-select-panel .mat-mdc-option:hover,
.login-shell .mat-mdc-autocomplete-panel .mat-mdc-option:hover {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.04)) !important;
  border-color: rgba(255, 140, 80, 0.3) !important;
  color: #ffffff !important;
  transform: translateX(2px) !important;
}

.login-shell .mat-mdc-select-panel .mat-mdc-option.mdc-list-item--selected,
.login-shell .mat-mdc-autocomplete-panel .mat-mdc-option.mdc-list-item--selected {
  background: rgba(255, 140, 80, 0.15) !important;
  border: 1px solid rgba(255, 140, 80, 0.4) !important;
  color: #ffffff !important;
  font-weight: 600 !important;
}

.login-shell .mat-mdc-select-panel .mat-pseudo-checkbox,
.login-shell .mat-mdc-select-panel .mat-pseudo-checkbox-minimal {
  border-color: rgba(255, 140, 80, 0.6) !important;
  background: transparent !important;
}

.login-shell .mat-mdc-select-panel .mat-pseudo-checkbox-checked {
  background: rgba(255, 140, 80, 0.8) !important;
  border-color: rgba(255, 140, 80, 0.8) !important;
}

.login-shell .mat-mdc-select-panel .mat-mdc-option .mat-ripple-element,
.login-shell .mat-mdc-select-panel .mat-mdc-option::before,
.login-shell .mat-mdc-autocomplete-panel .mat-mdc-option .mat-ripple-element {
  display: none !important;
  opacity: 0 !important;
  background: transparent !important;
}

/* ==========================================================================
   RESPONSIVE BREAKPOINTS
   ========================================================================== */
@media (max-width: 1100px) {
  .login-shell .layout,
  .register-shell .layout {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .card-column {
    order: -1;
    margin-top: 0;
    padding-top: 0;
    align-self: center;
  }
  .hero-panel {
    text-align: center;
  }
  .hero-illustration {
    text-align: center;
  }
  .store-row {
    margin: 0 auto;
  }
}
@media (max-width: 640px) {
  .login-shell,
  .register-shell {
    padding: 32px 18px 28px;
  }
  .login-card {
    padding: 36px 26px 30px;
    border-radius: 32px;
    max-width: 100%;
    min-height: unset;
  }
  .register-card {
    border-radius: 28px;
    max-width: 100%;
  }
  .register-shell .register-card {
    max-height: none;
  }
  .register-shell .register-body {
    overflow: visible;
  }
  .register-header {
    padding: 20px 24px 12px;
  }
  .register-body {
    padding: 8px 24px 12px;
  }
  .register-footer {
    padding: 10px 24px 20px;
  }
  .field-row {
    flex-direction: column;
    gap: 10px;
  }
}
/* ==========================================================================
   BUSINESS PICKER (V5 Identity: multi-membership)
   ========================================================================== */
.business-picker-overlay {
  padding: 0;
}

.picker-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-bottom: 14px;
  margin-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.picker-back-btn {
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--auth-text-secondary);
  transition: all 0.2s ease;
}

.picker-back-btn:hover {
  background: rgba(255, 255, 255, 0.06);
  color: var(--auth-text-primary);
}

.picker-back-btn mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
}

.login-card.picker-active {
  min-height: auto;
  padding-top: 30px;
}

.picker-title {
  flex: 1;
  text-align: center;
  font-size: 14px;
  font-weight: 600;
  color: var(--auth-text-secondary);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  margin: 0;
  padding-right: 28px;
}

.picker-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 4px 2px;
  overflow-y: auto;
}

.picker-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 18px;
  min-height: 72px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  cursor: pointer;
  transition: all 0.2s ease;
}

.picker-item:hover {
  background: rgba(255, 140, 80, 0.1);
  border-color: rgba(255, 140, 80, 0.3);
  transform: translateY(-1px);
}

.picker-biz-name {
  font-size: 12px;
  font-weight: 600;
  color: var(--auth-text-primary);
}

.picker-role-badge {
  font-size: 11px;
  font-weight: 600;
  color: var(--auth-button-right);
  background: rgba(255, 140, 80, 0.12);
  padding: 3px 10px;
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  flex-shrink: 0;
}

.picker-item-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.picker-group-label {
  font-size: 10px;
  font-weight: 500;
  color: rgba(255, 200, 150, 0.55);
  letter-spacing: 0.5px;
  text-transform: uppercase;
}

/* ==========================================================================
   GROUP PICKER — Enterprise Organization Hierarchy
   ========================================================================== */
/* Group header — clickable card to enter group mode */
.picker-group-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  margin-top: 14px;
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(231, 70, 48, 0.08), rgba(255, 122, 79, 0.04));
  border: 1px solid var(--auth-pill-border);
  cursor: pointer;
  transition: all 0.25s ease;
  position: relative;
  overflow: hidden;
  /* Disabled state — employees with no group access */
}
.picker-group-header::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(255, 122, 79, 0.06), transparent 60%);
  opacity: 0;
  transition: opacity 0.25s ease;
}
.picker-group-header:first-child {
  margin-top: 0;
}
.picker-group-header:hover {
  border-color: rgba(255, 122, 79, 0.5);
  box-shadow: 0 4px 20px rgba(231, 70, 48, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.04);
  transform: translateY(-1px);
}
.picker-group-header:hover::before {
  opacity: 1;
}
.picker-group-header--disabled {
  cursor: default;
  border-color: rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.02);
}
.picker-group-header--disabled::before {
  display: none;
}
.picker-group-header--disabled:hover {
  border-color: rgba(255, 255, 255, 0.06);
  box-shadow: none;
  transform: none;
}
.picker-group-header--disabled .picker-group-icon-wrap {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.05));
  box-shadow: none;
}
.picker-group-header--disabled .picker-group-icon {
  color: var(--auth-text-muted) !important;
}

.picker-group-left {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.picker-group-icon-wrap {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--auth-button-left), var(--auth-button-right));
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(231, 70, 48, 0.25);
}

.picker-group-logo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 10px;
}

.picker-group-icon {
  font-size: 18px !important;
  width: 18px !important;
  height: 18px !important;
  color: #fff !important;
}

.picker-group-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.picker-group-name {
  font-size: 13px;
  font-weight: 700;
  color: var(--auth-text-primary);
  letter-spacing: 0.3px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.picker-group-meta-row {
  display: flex;
  align-items: center;
  gap: 6px;
}

.picker-group-meta {
  font-size: 11px;
  font-weight: 500;
  color: var(--auth-text-muted);
  opacity: 0.7;
}

.picker-group-badge {
  font-size: 9px;
  font-weight: 700;
  color: var(--auth-button-right);
  background: var(--auth-pill-bg);
  border: 1px solid var(--auth-pill-border);
  padding: 2px 7px;
  border-radius: 999px;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.picker-group-arrow {
  font-size: 18px !important;
  width: 18px !important;
  height: 18px !important;
  color: var(--auth-text-muted) !important;
  opacity: 0.5;
  transition: all 0.25s ease;
  flex-shrink: 0;
}

.picker-group-header:hover .picker-group-arrow {
  color: var(--auth-button-right) !important;
  opacity: 1;
  transform: translateX(2px);
}

/* Branches container — visual tree */
.picker-branches-container {
  position: relative;
  margin-left: 18px;
  padding-left: 16px;
  margin-top: 4px;
  margin-bottom: 4px;
  border-left: 1px solid rgba(255, 122, 79, 0.15);
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 6px;
  padding-bottom: 2px;
}

/* Branch items under a group */
.picker-item--grouped {
  border-radius: 12px;
  min-height: 56px;
  position: relative;
}

.picker-branch-dot {
  position: absolute;
  left: -20px;
  top: 50%;
  transform: translateY(-50%);
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: rgba(255, 122, 79, 0.3);
  border: 1px solid rgba(255, 122, 79, 0.5);
}

.picker-item--grouped:hover .picker-branch-dot {
  background: var(--auth-button-right);
  box-shadow: 0 0 6px rgba(255, 122, 79, 0.4);
}

/* ==========================================================================
   PHASE 1 — SAAS ENTRY FUNNEL
   ========================================================================== */
/* ── Demo CTA (highest priority — above login form) ──────────────── */
.demo-cta-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 0;
}

.demo-cta-link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  color: #ff7a4f;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.3px;
  text-decoration: none;
  padding: 6px 0;
  transition: color 200ms ease, transform 200ms ease;
}

.demo-cta-link:hover {
  color: #ffa870;
  transform: translateY(-1px);
}

.demo-cta-link mat-icon,
.demo-cta-link .mat-icon {
  font-size: 18px !important;
  width: 18px !important;
  height: 18px !important;
  color: inherit !important;
}

.btn-demo-cta {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 20px;
  border-radius: 999px;
  border: none;
  background: linear-gradient(135deg, #e74630 0%, #ff7a4f 50%, #ffa870 100%);
  color: #fff;
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: 0.3px;
  cursor: pointer;
  box-shadow: 0 8px 32px rgba(231, 70, 48, 0.45), 0 0 80px rgba(255, 122, 79, 0.15);
  transition: transform 200ms ease, box-shadow 200ms ease;
  animation: demoPulse 3s ease-in-out infinite;
}

.btn-demo-cta:not(:disabled):hover {
  transform: translateY(-2px) scale(1.02);
  box-shadow: 0 12px 40px rgba(231, 70, 48, 0.6), 0 0 100px rgba(255, 122, 79, 0.25);
}

.btn-demo-cta:disabled {
  opacity: 0.7;
  cursor: wait;
}

.btn-demo-cta mat-icon,
.btn-demo-cta .mat-icon {
  font-size: 20px !important;
  width: 20px !important;
  height: 20px !important;
  color: #fff !important;
}

@keyframes demoPulse {
  0%, 100% {
    box-shadow: 0 8px 32px rgba(231, 70, 48, 0.45), 0 0 80px rgba(255, 122, 79, 0.15);
  }
  50% {
    box-shadow: 0 8px 40px rgba(231, 70, 48, 0.6), 0 0 100px rgba(255, 122, 79, 0.3);
  }
}
.demo-subtext {
  font-size: 11px;
  color: var(--auth-text-muted);
  opacity: 0.65;
  margin-top: 8px;
  letter-spacing: 0.3px;
}

/* ── Divider between demo CTA and login form ─────────────────────── */
.demo-divider {
  display: flex;
  align-items: center;
  margin: 12px 0 8px;
}

.demo-divider::before,
.demo-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
}

.demo-divider-text {
  padding: 0 14px;
  font-size: 11px;
  color: var(--auth-text-muted);
  opacity: 0.5;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  font-weight: 600;
}

/* ── Hero Panel CTAs ─────────────────────────────────────────────── */
.hero-ctas {
  display: flex;
  gap: 12px;
  margin-top: 8px;
}

.btn-hero-primary {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 24px;
  border-radius: 999px;
  border: none;
  background: linear-gradient(90deg, var(--auth-button-left), var(--auth-button-right));
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 6px 20px rgba(231, 70, 48, 0.4);
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.btn-hero-primary:not(:disabled):hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(231, 70, 48, 0.55);
}

.btn-hero-primary mat-icon,
.btn-hero-primary .mat-icon {
  font-size: 18px !important;
  width: 18px !important;
  height: 18px !important;
  color: #fff !important;
}

.btn-hero-secondary {
  padding: 10px 24px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.15);
  background: rgba(255, 255, 255, 0.04);
  color: var(--auth-text-secondary);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 180ms ease;
  backdrop-filter: blur(8px);
}

.btn-hero-secondary:hover {
  border-color: rgba(255, 140, 100, 0.35);
  background: rgba(255, 255, 255, 0.08);
  color: var(--auth-text-primary);
}

/* ── Pricing Link ────────────────────────────────────────────────── */
.pricing-link {
  display: inline-block;
  margin-bottom: 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--auth-link-color);
  text-decoration: none;
  transition: color 200ms ease;
}

.pricing-link:hover {
  color: var(--auth-button-right);
  text-decoration: underline;
}

/* ── Website Link (autroid.ai) ───────────────────────────────── */
.website-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: fit-content;
  margin-bottom: 6px;
  padding: 6px 14px 6px 12px;
  font-size: 12px;
  font-weight: 600;
  color: var(--auth-text-secondary);
  text-decoration: none;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.04);
  backdrop-filter: blur(8px);
  transition: all 250ms ease;
  letter-spacing: 0.3px;
}

.website-link:hover {
  color: var(--auth-text-primary);
  border-color: rgba(255, 140, 100, 0.3);
  background: rgba(255, 255, 255, 0.08);
  box-shadow: 0 0 16px rgba(231, 70, 48, 0.12);
  transform: translateX(2px);
}

.website-link-text {
  font-family: "Space Grotesk", "Manrope", sans-serif;
}

.website-link-icon {
  opacity: 0.6;
  transition: opacity 200ms ease, transform 200ms ease;
}

.website-link:hover .website-link-icon {
  opacity: 1;
  transform: translate(1px, -1px);
}

/* ── Picker Navigating State — Enterprise Sign-In Loading ────────── */
.picker-navigating {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 24px 36px;
  gap: 0;
  flex: 1;
  position: relative;
  overflow: hidden;
  animation: navContainerIn 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes navContainerIn {
  from {
    opacity: 0;
    transform: scale(0.96);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
/* ── Ambient Pulse Backdrop ─────────────────────────────────────── */
.nav-glow-backdrop {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse 60% 50% at 50% 40%, rgba(231, 70, 48, 0.1) 0%, rgba(255, 122, 79, 0.04) 40%, transparent 70%);
  animation: navGlowPulse 2.8s ease-in-out infinite;
}

@keyframes navGlowPulse {
  0%, 100% {
    opacity: 0.6;
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(1.08);
  }
}
/* ── Logo Orbit Container ───────────────────────────────────────── */
.nav-logo-orbit {
  position: relative;
  width: 96px;
  height: 96px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
}

/* Orbiting arc rings */
.nav-orbit-ring {
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  border: 2px solid transparent;
  border-top-color: rgba(255, 122, 79, 0.7);
  border-right-color: rgba(231, 70, 48, 0.25);
  animation: navOrbitSpin 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;
  filter: drop-shadow(0 0 6px rgba(255, 122, 79, 0.3));
}

.nav-orbit-ring--reverse {
  inset: -10px;
  border-top-color: transparent;
  border-right-color: transparent;
  border-bottom-color: rgba(255, 122, 79, 0.45);
  border-left-color: rgba(231, 70, 48, 0.15);
  animation: navOrbitSpin 3.2s cubic-bezier(0.4, 0, 0.2, 1) infinite reverse;
  filter: drop-shadow(0 0 8px rgba(255, 122, 79, 0.15));
}

@keyframes navOrbitSpin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
/* Logo core — glow + float */
.nav-logo-core {
  width: 64px;
  height: 64px;
  border-radius: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  backdrop-filter: blur(4px);
  box-shadow: 0 0 30px rgba(231, 70, 48, 0.2), 0 0 60px rgba(255, 122, 79, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.06);
  animation: navLogoFloat 2.4s ease-in-out infinite;
}

.nav-logo-img {
  width: 44px;
  height: 44px;
  object-fit: contain;
  filter: drop-shadow(0 2px 8px rgba(231, 70, 48, 0.3));
}

@keyframes navLogoFloat {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-4px);
  }
}
/* ── Status Text ────────────────────────────────────────────────── */
.nav-status-text {
  font-size: 15px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.88);
  margin: 0 0 4px;
  letter-spacing: 0.3px;
  animation: navTextIn 0.5s 0.15s cubic-bezier(0.4, 0, 0.2, 1) both;
}

.nav-status-sub {
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.35);
  margin: 0 0 24px;
  letter-spacing: 0.2px;
  animation: navTextIn 0.5s 0.3s cubic-bezier(0.4, 0, 0.2, 1) both;
}

@keyframes navTextIn {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* Animated ellipsis dots */
.nav-dots::after {
  content: "";
  animation: navDots 1.6s steps(4, end) infinite;
}

@keyframes navDots {
  0% {
    content: "";
  }
  25% {
    content: ".";
  }
  50% {
    content: "..";
  }
  75% {
    content: "...";
  }
}
/* ── Progress Bar ───────────────────────────────────────────────── */
.nav-progress-track {
  width: 140px;
  height: 3px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  overflow: hidden;
  animation: navTextIn 0.5s 0.4s cubic-bezier(0.4, 0, 0.2, 1) both;
}

.nav-progress-bar {
  width: 40%;
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--auth-button-left), var(--auth-button-right), var(--auth-button-left));
  background-size: 200% 100%;
  animation: navProgressShimmer 1.8s ease-in-out infinite;
  box-shadow: 0 0 10px rgba(255, 122, 79, 0.4);
}

@keyframes navProgressShimmer {
  0% {
    transform: translateX(-100%);
    background-position: 0% 0;
  }
  50% {
    background-position: 100% 0;
  }
  100% {
    transform: translateX(350%);
    background-position: 0% 0;
  }
}
/* Dim back button while navigation is in-flight */
.picker-back-btn:disabled {
  opacity: 0.25;
  cursor: not-allowed;
  pointer-events: none;
}

/* ── Inline Spinner ──────────────────────────────────────────────── */
.spinner-inline {
  display: inline-block;
  width: 18px;
  height: 18px;
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-top-color: #fff;
  border-radius: 50%;
  animation: spinInline 0.7s linear infinite;
}

.spinner-inline.spinner-large {
  width: 32px;
  height: 32px;
  border-width: 3px;
}

@keyframes spinInline {
  to {
    transform: rotate(360deg);
  }
}
/* ==========================================================================
   PHASE 1B — OTP-GATED DEMO FLOW
   Uses: tokens.scss + auth-scoped vars
   ========================================================================== */
/* ── Demo Form Container (Step 2: Name + Phone + Email) ──────────── */
.demo-form-container,
.demo-otp-container {
  display: flex;
  flex-direction: column;
  padding: 0;
  background: transparent;
  border: none;
  margin-bottom: 0;
  animation: demoSlideIn 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes demoSlideIn {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* ── Form Header (title + close button) ──────────────────────────── */
.demo-form-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--ui-space-1);
}

.demo-form-title {
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-bold);
  color: var(--auth-text-primary);
  margin: 0;
  letter-spacing: -0.2px;
}

.demo-form-close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: var(--ui-radius-sm);
  border: none;
  background: transparent;
  color: var(--ui-text-muted);
  cursor: pointer;
  transition: all var(--ui-transition-fast);
}

.demo-form-close:hover {
  background: var(--ui-surface-hover);
  color: var(--ui-text-primary);
}

.demo-form-close mat-icon,
.demo-form-close .mat-icon {
  font-size: 18px !important;
  width: 18px !important;
  height: 18px !important;
}

.demo-form-subtitle {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  margin: 0 0 var(--ui-space-3);
  letter-spacing: 0.2px;
}

/* ── Demo Input Fields ───────────────────────────────────────────── */
.demo-fields {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  margin-bottom: var(--ui-space-3);
}

.demo-field {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-1);
  transition: border-color var(--ui-transition-fast);
}

.demo-field:focus-within {
  border-color: var(--ui-border-focus);
}

.demo-field-icon {
  font-size: 18px !important;
  width: 18px !important;
  height: 18px !important;
  color: var(--ui-text-muted) !important;
  flex-shrink: 0;
}

.demo-field-prefix {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  font-weight: var(--ui-font-medium);
  flex-shrink: 0;
  padding-right: var(--ui-space-1);
  border-right: 1px solid var(--ui-border);
  margin-right: var(--ui-space-1);
}

.demo-field-input {
  flex: 1;
  border: none;
  background: transparent;
  color: var(--auth-text-primary);
  font-size: var(--ui-text-base);
  font-family: var(--ui-font-primary);
  font-weight: var(--ui-font-medium);
  outline: none;
  line-height: 1.5;
}

.demo-field-input::placeholder {
  color: var(--ui-text-subtle);
  font-weight: var(--ui-font-normal);
}

.demo-field-select {
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
}

.demo-field-select option {
  background: var(--ui-surface-3);
  color: var(--auth-text-primary);
}

.demo-field-suffix {
  font-size: 18px !important;
  width: 18px !important;
  height: 18px !important;
  color: var(--ui-text-muted) !important;
  flex-shrink: 0;
  cursor: pointer;
  opacity: 0.6;
  transition: opacity 200ms ease;
}

.demo-field-suffix:hover {
  opacity: 1;
}

/* ── OTP Input (5-digit, large, center-aligned) ──────────────────── */
.demo-otp-sent-text {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  margin: 0 0 var(--ui-space-4);
  text-align: center;
}

.demo-otp-sent-text strong {
  color: var(--auth-text-primary);
  font-weight: var(--ui-font-semibold);
}

.demo-otp-input-wrap {
  display: flex;
  justify-content: center;
  margin-bottom: var(--ui-space-3);
}

.demo-otp-input {
  width: 200px;
  text-align: center;
  font-size: 28px;
  font-weight: var(--ui-font-bold);
  font-family: var(--ui-font-mono);
  letter-spacing: 12px;
  padding: var(--ui-space-3) var(--ui-space-4);
  border-radius: var(--ui-radius-md);
  border: 2px solid var(--ui-border);
  background: var(--ui-surface-1);
  color: var(--auth-text-primary);
  outline: none;
  transition: border-color var(--ui-transition-fast);
  caret-color: var(--ui-brand);
}

.demo-otp-input:focus {
  border-color: var(--ui-border-focus);
  box-shadow: 0 0 0 3px rgba(255, 122, 79, 0.12);
}

.demo-otp-input::placeholder {
  font-size: 18px;
  letter-spacing: 8px;
  color: var(--ui-text-subtle);
}

/* ── Resend Timer + Button ───────────────────────────────────────── */
.demo-resend {
  display: flex;
  justify-content: center;
  margin-top: var(--ui-space-3);
}

.demo-resend-timer {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.demo-resend-btn {
  border: none;
  background: transparent;
  color: var(--auth-link-color);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  padding: var(--ui-space-1) var(--ui-space-2);
  border-radius: var(--ui-radius-sm);
  transition: all var(--ui-transition-fast);
}

.demo-resend-btn:hover {
  color: var(--auth-button-right);
  background: rgba(255, 122, 79, 0.08);
}

.demo-resend-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* ── Error Message ───────────────────────────────────────────────── */
.demo-error {
  font-size: var(--ui-text-sm);
  color: var(--ui-danger);
  text-align: center;
  padding: var(--ui-space-2);
  margin-bottom: var(--ui-space-2);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-danger-bg);
  border: 1px solid var(--ui-danger-border);
  animation: demoSlideIn 0.2s ease;
}

/* ── Creating State (provisioning spinner) ───────────────────────── */
.demo-creating-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: var(--ui-space-8) var(--ui-space-4);
  margin-bottom: var(--ui-space-2);
  animation: demoSlideIn 0.3s ease;
}

.demo-creating-spinner {
  margin-bottom: var(--ui-space-4);
}

.demo-creating-text {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: var(--auth-text-primary);
  margin: 0 0 var(--ui-space-1);
}

.demo-creating-subtext {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  margin: 0;
}

/* ── Demo form button state extensions ───────────────────────────── */
.demo-form-container .btn-demo-cta,
.demo-otp-container .btn-demo-cta {
  animation: none; /* No pulse inside form — too distracting */
}

.demo-form-container .btn-demo-cta:disabled,
.demo-otp-container .btn-demo-cta:disabled {
  opacity: 0.55;
  cursor: not-allowed;
  transform: none;
}

/* ==========================================================================
   CARD COLUMN FOOTER — Below the login card
   ========================================================================== */
.card-column-footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 380px;
  gap: 4px;
}

.card-column-footer .register-link {
  font-size: 14px;
  font-weight: 700;
  color: var(--auth-link-color);
  cursor: pointer;
  text-decoration: none;
  transition: color 200ms ease;
}

.card-column-footer .register-link:hover {
  color: var(--auth-button-right);
}

.card-footer-contact {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}

.card-footer-contact .footer-link {
  font-size: 12px;
  color: var(--auth-text-muted);
  opacity: 0.7;
}

.card-footer-contact .footer-number {
  font-size: 15px;
  font-weight: 700;
  color: var(--auth-text-primary);
  letter-spacing: 0.5px;
}

.card-footer-divider {
  width: 60%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
  margin: 6px 0;
}

.btn-demo-cta--below {
  padding: 12px 24px;
  font-size: 14px;
  border-radius: var(--ui-radius-lg);
}

.card-column-footer .demo-subtext {
  margin-top: 2px;
}

/* ── WhatsApp OTP hint badge ──────────────────────────────────────── */
/* Shown when first-time employee receives OTP via WhatsApp             */
.otp-whatsapp-hint {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  margin-bottom: var(--ui-space-2);
  border-radius: var(--ui-radius-md);
  background: var(--ui-success-bg);
  border: 1px solid var(--ui-success-border);
  color: var(--ui-success);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  letter-spacing: 0.2px;
  animation: fadeInHint 0.3s ease;
}

.otp-whatsapp-icon {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
  color: var(--ui-success) !important;
}

@keyframes fadeInHint {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* Legal domain (isolated — public-facing, no auth required) */
/* ==========================================================================
   UI PAGE - LEGAL (Privacy Policy / Terms of Service)
   ==========================================================================
   Self-contained legal page contract. Renders as a fixed, scrollable overlay
   above the entire app shell — same escape pattern as auth.scss .login-shell.

   WHY position: fixed on host elements:
   - app-shell.scss sets html, body { overflow: hidden } globally
   - .ui-app-shell has overflow: hidden
   - .ui-app-shell__background is position: fixed; z-index: 0 (bleeds through)
   - Using position: fixed + overflow-y: auto on the host elements escapes ALL
     of these constraints without touching any other part of the app.

   Host elements: app-privacy-policy, app-terms-of-service, app-delete-account
   Scoped to:     .legal-page
   ========================================================================== */
/* ==========================================================================
   HOST ELEMENTS — escape the app-shell overflow lock
   ========================================================================== */
app-privacy-policy,
app-terms-of-service,
app-delete-account {
  display: block;
  position: fixed;
  inset: 0;
  z-index: 300; /* above ui-app-shell__background (z-index: 0) and console header */
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  /* Custom scrollbar */
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.1) transparent;
}

app-privacy-policy::-webkit-scrollbar,
app-terms-of-service::-webkit-scrollbar,
app-delete-account::-webkit-scrollbar {
  width: 6px;
}

app-privacy-policy::-webkit-scrollbar-track,
app-terms-of-service::-webkit-scrollbar-track,
app-delete-account::-webkit-scrollbar-track {
  background: transparent;
}

app-privacy-policy::-webkit-scrollbar-thumb,
app-terms-of-service::-webkit-scrollbar-thumb,
app-delete-account::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.12);
  border-radius: 3px;
}

/* ==========================================================================
   PAGE SHELL
   ========================================================================== */
.legal-page {
  min-height: 100%;
  display: flex;
  flex-direction: column;
  background: var(--ui-surface-base);
  color: var(--ui-text-secondary);
  font-family: var(--ui-font-primary);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ==========================================================================
   HEADER
   ========================================================================== */
.legal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 48px;
  border-bottom: 1px solid var(--ui-border-light);
  background: rgba(10, 10, 15, 0.92);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  position: sticky;
  top: 0;
  z-index: 10;
  flex-shrink: 0;
}

.legal-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: var(--ui-text-primary);
  font-size: 18px;
  font-weight: var(--ui-font-bold);
  letter-spacing: -0.03em;
  transition: opacity 200ms ease;
}

.legal-logo:hover {
  opacity: 0.8;
}

.legal-logo-img {
  height: 28px;
  width: auto;
  display: block;
}

.legal-nav {
  display: flex;
  align-items: center;
  gap: 28px;
}

.legal-nav a {
  color: var(--ui-text-muted);
  text-decoration: none;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  transition: color 200ms ease;
}

.legal-nav a:hover {
  color: var(--ui-text-primary);
}

.legal-nav-cta {
  background: var(--ui-brand-gradient) !important;
  color: #fff !important;
  padding: 8px 20px !important;
  border-radius: var(--ui-radius-sm) !important;
  font-weight: var(--ui-font-semibold) !important;
  font-size: var(--ui-text-sm) !important;
  transition: opacity 200ms ease, transform 200ms ease !important;
  box-shadow: 0 2px 12px rgba(242, 70, 39, 0.3) !important;
}

.legal-nav-cta:hover {
  opacity: 0.9;
  transform: translateY(-1px);
}

/* ==========================================================================
   HERO
   ========================================================================== */
.legal-hero {
  text-align: center;
  padding: 56px 48px 44px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  flex-shrink: 0;
  position: relative;
}

.legal-hero::after {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 2px;
  background: var(--ui-brand-gradient);
  border-radius: 1px;
}

.legal-hero-badge {
  display: inline-block;
  font-size: 11px;
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ui-brand);
  background: rgba(242, 70, 39, 0.08);
  border: 1px solid rgba(242, 70, 39, 0.2);
  padding: 4px 14px;
  border-radius: 999px;
  margin-bottom: 20px;
}

.legal-hero h1 {
  font-size: 40px;
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  letter-spacing: -0.04em;
  margin: 0 0 12px;
  line-height: 1.1;
}

.legal-effective {
  font-size: 14px;
  color: var(--ui-text-subtle);
  font-weight: var(--ui-font-medium);
  margin: 0;
}

/* ==========================================================================
   CONTENT LAYOUT
   ========================================================================== */
.legal-layout {
  flex: 1;
  display: flex;
  max-width: 860px;
  margin: 0 auto;
  width: 100%;
  gap: 0;
}

/* Sidebar TOC (optional — hidden on mobile) */
.legal-toc {
  display: none; /* reserved for future use */
}

/* ==========================================================================
   BODY
   ========================================================================== */
.legal-body {
  flex: 1;
  padding: 48px 48px 80px;
  max-width: 860px;
  margin: 0 auto;
  width: 100%;
}

.legal-body section {
  margin-bottom: 44px;
  padding-bottom: 44px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.legal-body section:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

/* ==========================================================================
   TYPOGRAPHY
   ========================================================================== */
.legal-body h2 {
  font-size: 20px;
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  margin: 0 0 16px;
  letter-spacing: -0.02em;
  display: flex;
  align-items: center;
  gap: 10px;
}

.legal-body h2::before {
  content: "";
  display: block;
  width: 3px;
  height: 20px;
  background: var(--ui-brand-gradient);
  border-radius: 2px;
  flex-shrink: 0;
}

.legal-body h3 {
  font-size: 15px;
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
  margin: 24px 0 10px;
  letter-spacing: -0.01em;
}

.legal-body p {
  font-size: 15px;
  line-height: 1.8;
  color: var(--ui-text-muted);
  margin: 0 0 14px;
}

.legal-body p:last-child {
  margin-bottom: 0;
}

.legal-body ul {
  margin: 0 0 14px;
  padding-left: 0;
  list-style: none;
}

.legal-body ul li {
  font-size: 15px;
  line-height: 1.75;
  color: var(--ui-text-muted);
  padding: 5px 0 5px 22px;
  position: relative;
}

.legal-body ul li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 16px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--ui-brand);
  opacity: 0.6;
}

.legal-body ul li strong {
  color: var(--ui-text-secondary);
  font-weight: var(--ui-font-semibold);
}

.legal-body a {
  color: var(--ui-brand);
  text-decoration: none;
  font-weight: var(--ui-font-medium);
  transition: color 200ms ease;
}

.legal-body a:hover {
  text-decoration: underline;
  opacity: 0.85;
}

.legal-body code {
  font-family: var(--ui-font-mono);
  font-size: 13px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 4px;
  padding: 1px 6px;
  color: var(--ui-text-secondary);
}

/* Contact list — no bullets */
.contact-list li::before {
  display: none !important;
}

.contact-list li {
  padding-left: 0 !important;
}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.legal-footer {
  margin-top: auto;
  border-top: 1px solid var(--ui-border-light);
  padding: 24px 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(10, 10, 15, 0.6);
  flex-shrink: 0;
}

.legal-footer p {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-subtle);
  margin: 0;
}

.legal-footer nav {
  display: flex;
  gap: 24px;
}

.legal-footer nav a {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-subtle);
  text-decoration: none;
  transition: color 200ms ease;
}

.legal-footer nav a:hover {
  color: var(--ui-text-muted);
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 768px) {
  .legal-header {
    padding: 14px 20px;
  }
  .legal-nav a:not(.legal-nav-cta) {
    display: none;
  }
  .legal-hero {
    padding: 40px 20px 32px;
  }
  .legal-hero h1 {
    font-size: 28px;
  }
  .legal-body {
    padding: 32px 20px 60px;
  }
  .legal-footer {
    flex-direction: column;
    gap: 12px;
    text-align: center;
    padding: 20px;
  }
}
/* Invoice Pay domain (isolated — public, no auth, single-page payment) */
/* ==========================================================================
   UI PAGE - INVOICE PAY (Public Payment Link)
   ==========================================================================
   Full-screen public payment page contract. Used for invoice payment links.
   This is a self-contained page that replaces the console shell.
   NO auth required — isolated UI domain (like auth pages).

   Classes:
     .ipay-shell       — Full-viewport root
     .ipay-card        — Centered card container
     .ipay-org-*       — Organization header
     .ipay-hero-*      — Amount hero section
     .ipay-cta         — Primary CTA button
     .ipay-details-*   — Invoice details (collapsible)
     .ipay-trust-*     — Trust footer
     .ipay-success-*   — Payment success state
     .ipay-error-*     — Error / expired state
     .ipay-loading-*   — Loading state
   ========================================================================== */
/* ── Invoice Pay Tokens ── */
:root {
  --ipay-bg: var(--ui-surface-base, #0f1012);
  --ipay-text: var(--ui-text-primary, #fefefe);
  --ipay-text-secondary: var(--ui-text-muted, rgba(255, 255, 255, 0.55));
  --ipay-text-dim: var(--ui-text-subtle, rgba(255, 255, 255, 0.4));
  --ipay-card-bg: var(--ui-surface-1, rgba(255, 255, 255, 0.03));
  --ipay-card-border: var(--ui-border-light, rgba(255, 255, 255, 0.06));
  --ipay-card-border-hover: var(--ui-border-hover, rgba(255, 255, 255, 0.12));
  --ipay-accent: var(--ui-brand, #ff784f);
  --ipay-accent-dark: var(--ui-brand-dark, #e65a30);
  --ipay-accent-glow: var(--ui-brand-glow, rgba(255, 153, 102, 0.6));
  --ipay-success: var(--ui-success, #4ade80);
  --ipay-success-bg: var(--ui-success-bg, rgba(74, 222, 128, 0.15));
  --ipay-danger: var(--ui-danger, #f87171);
  --ipay-danger-bg: var(--ui-danger-bg, rgba(248, 113, 113, 0.18));
  --ipay-warning: var(--ui-warning, #fbbf24);
  --ipay-warning-bg: var(--ui-warning-bg, rgba(251, 191, 36, 0.15));
  --ipay-warning-border: var(--ui-warning-border, rgba(251, 191, 36, 0.4));
  --ipay-radius: var(--ui-radius-xl, 20px);
  --ipay-radius-sm: var(--ui-radius-md, 12px);
  --ipay-radius-btn: var(--ui-radius-lg, 16px);
  --ipay-font: var(--ui-font-primary, "Inter", system-ui, sans-serif);
}

/* ==========================================================================
   SHELL
   ========================================================================== */
.ipay-shell {
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: var(--ui-space-5) var(--ui-space-5) var(--ui-space-10);
  padding-top: var(--ui-space-10);
  background: var(--ipay-bg);
  position: relative;
  overflow-x: hidden;
  font-family: var(--ipay-font);
  -webkit-font-smoothing: antialiased;
  color: var(--ipay-text);
}

@media (min-width: 600px) {
  .ipay-shell {
    align-items: center;
    padding-top: var(--ui-space-5);
  }
}
/* ── Background Glows ── */
.ipay-glow {
  position: fixed;
  pointer-events: none;
  border-radius: 999px;
  z-index: 0;
}

.ipay-glow--top {
  top: -30%;
  left: 50%;
  transform: translateX(-50%);
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, rgba(255, 120, 79, 0.1) 0%, transparent 70%);
}

.ipay-glow--bottom {
  bottom: -20%;
  right: -10%;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(255, 120, 79, 0.06) 0%, transparent 70%);
}

/* ==========================================================================
   CARD
   ========================================================================== */
.ipay-card {
  width: 100%;
  max-width: 420px;
  position: relative;
  z-index: var(--z-base, 1);
}

/* ==========================================================================
   ORG HEADER
   ========================================================================== */
.ipay-org {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-5) var(--ui-space-6);
  background: var(--ipay-card-bg);
  border: 1px solid var(--ipay-card-border);
  border-radius: var(--ipay-radius) var(--ipay-radius) 0 0;
}

.ipay-org__logo {
  width: 48px;
  height: 48px;
  border-radius: var(--ui-radius-md);
  background: var(--ui-brand-gradient);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: var(--ui-font-bold);
  font-size: var(--ui-text-xl);
  color: #fff;
  box-shadow: 0 4px 16px rgba(255, 120, 79, 0.3);
  flex-shrink: 0;
}

.ipay-org__info {
  display: flex;
  flex-direction: column;
}

.ipay-org__name {
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-bold);
  color: var(--ipay-text);
}

.ipay-org__label {
  font-size: var(--ui-text-sm);
  color: var(--ipay-text-secondary);
  margin-top: 2px;
}

/* ==========================================================================
   AMOUNT HERO
   ========================================================================== */
.ipay-hero {
  text-align: center;
  padding: var(--ui-space-8) var(--ui-space-6);
  padding-top: 36px;
  background: var(--ipay-card-bg);
  border-left: 1px solid var(--ipay-card-border);
  border-right: 1px solid var(--ipay-card-border);
}

.ipay-hero__label {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  color: var(--ipay-text-secondary);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin: 0 0 var(--ui-space-2);
}

.ipay-hero__amount {
  font-size: 48px;
  font-weight: 800;
  color: var(--ipay-text);
  margin: 0;
  letter-spacing: -2px;
  font-feature-settings: "tnum";
}

.ipay-hero__sub {
  font-size: var(--ui-text-sm);
  color: var(--ipay-text-dim);
  margin: var(--ui-space-3) 0 0;
}

/* ==========================================================================
   CTA BUTTON
   ========================================================================== */
.ipay-cta {
  display: block;
  width: calc(100% - 48px);
  margin: 0 var(--ui-space-6);
  padding: var(--ui-space-4) var(--ui-space-5);
  padding-top: 18px;
  padding-bottom: 18px;
  background: var(--ui-brand-gradient);
  border: none;
  border-radius: var(--ipay-radius-btn);
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-bold);
  color: #fff;
  cursor: pointer;
  transition: transform var(--ui-transition-base), box-shadow var(--ui-transition-base);
  letter-spacing: 0.3px;
  box-shadow: 0 6px 28px rgba(255, 120, 79, 0.35);
  font-family: var(--ipay-font);
}

.ipay-cta:hover:not(:disabled) {
  transform: translateY(-2px);
  box-shadow: 0 10px 40px rgba(255, 120, 79, 0.45);
}

.ipay-cta:active:not(:disabled) {
  transform: scale(0.98);
}

.ipay-cta:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  box-shadow: none;
}

.ipay-cta--outline {
  background: transparent;
  border: 1px solid rgba(255, 120, 79, 0.4);
  color: var(--ipay-accent);
  box-shadow: none;
  width: auto;
  display: inline-block;
  margin: var(--ui-space-4) 0 0;
  padding: var(--ui-space-3) var(--ui-space-8);
  font-size: var(--ui-text-base);
}

.ipay-cta--outline:hover:not(:disabled) {
  background: rgba(255, 120, 79, 0.08);
  box-shadow: none;
}

/* ==========================================================================
   INVOICE DETAILS (Collapsible)
   ========================================================================== */
.ipay-details {
  margin-top: var(--ui-space-5);
  background: var(--ipay-card-bg);
  border: 1px solid var(--ipay-card-border);
  border-radius: var(--ipay-radius-sm);
  overflow: hidden;
}

.ipay-details__toggle {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: var(--ui-space-4) var(--ui-space-5);
  background: none;
  border: none;
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: rgba(255, 255, 255, 0.7);
  cursor: pointer;
  transition: color var(--ui-transition-base);
  font-family: var(--ipay-font);
}

.ipay-details__toggle:hover {
  color: var(--ipay-text);
}

.ipay-details__chevron {
  font-size: var(--ui-text-lg);
  transition: transform 0.25s;
  color: var(--ipay-text-secondary);
  transform: rotate(0deg);
}

.ipay-details__chevron--open {
  transform: rotate(90deg);
}

.ipay-details__body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease;
  padding: 0 var(--ui-space-5);
}

.ipay-details__body--expanded {
  max-height: 800px;
  padding: 0 var(--ui-space-5) var(--ui-space-4);
}

/* Detail Rows */
.ipay-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--ui-space-2) 0;
  font-size: var(--ui-text-base);
}

.ipay-row__label {
  color: var(--ipay-text-secondary);
}

.ipay-row__value {
  color: rgba(255, 255, 255, 0.7);
  font-weight: var(--ui-font-medium);
  text-align: right;
}

.ipay-row__value--bold {
  color: var(--ipay-text);
  font-weight: var(--ui-font-bold);
}

.ipay-row__value--accent {
  color: var(--ipay-accent);
}

.ipay-row__value--success {
  color: var(--ipay-success);
}

.ipay-row__value--discount {
  color: var(--ipay-success);
}

.ipay-row--total {
  padding-top: var(--ui-space-2);
}

/* Line Items */
.ipay-items {
  margin-top: var(--ui-space-2);
}

.ipay-divider {
  height: 1px;
  background: var(--ipay-card-border);
  margin: var(--ui-space-2) 0;
}

.ipay-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--ui-space-1) 0;
  font-size: var(--ui-text-sm);
}

.ipay-item__name {
  color: var(--ipay-text-secondary);
  flex: 1;
  margin-right: var(--ui-space-3);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ipay-item__amount {
  color: rgba(255, 255, 255, 0.6);
  font-weight: var(--ui-font-medium);
  font-feature-settings: "tnum";
  white-space: nowrap;
}

/* ==========================================================================
   OUTDATED WARNING
   ========================================================================== */
.ipay-outdated {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  margin: var(--ui-space-4) 0;
  padding: var(--ui-space-3) var(--ui-space-4);
  background: var(--ipay-warning-bg);
  border: 1px solid var(--ipay-warning-border);
  border-radius: var(--ipay-radius-sm);
  font-size: var(--ui-text-sm);
  color: var(--ipay-warning);
}

.ipay-outdated__icon {
  font-size: var(--ui-text-lg);
  flex-shrink: 0;
}

/* ==========================================================================
   TRUST FOOTER
   ========================================================================== */
.ipay-trust {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-5) 0 var(--ui-space-2);
  margin-top: var(--ui-space-5);
}

.ipay-trust__badge {
  font-size: var(--ui-text-sm);
  color: var(--ipay-text-dim);
}

.ipay-trust__powered {
  margin-top: var(--ui-space-1);
  width: 100%;
  text-align: center;
  font-size: var(--ui-text-sm);
  color: var(--ipay-text-dim);
}

.ipay-trust__powered strong {
  color: var(--ipay-text-secondary);
}

/* ==========================================================================
   SUCCESS STATE
   ========================================================================== */
.ipay-result {
  text-align: center;
  padding: var(--ui-space-12) var(--ui-space-6) var(--ui-space-8);
  background: var(--ipay-card-bg);
  border: 1px solid var(--ipay-card-border);
  border-radius: var(--ui-radius-2xl);
}

.ipay-result__icon {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  font-weight: var(--ui-font-bold);
  margin-bottom: var(--ui-space-5);
}

.ipay-result__icon--success {
  background: var(--ipay-success-bg);
  color: var(--ipay-success);
  box-shadow: 0 0 40px rgba(74, 222, 128, 0.2);
}

.ipay-result__icon--error {
  background: var(--ipay-danger-bg);
  color: var(--ipay-danger);
  box-shadow: 0 0 40px rgba(248, 113, 113, 0.2);
}

.ipay-result__title {
  font-size: var(--ui-text-2xl);
  font-weight: var(--ui-font-bold);
  color: var(--ipay-text);
  margin: 0 0 var(--ui-space-2);
}

.ipay-result__sub {
  font-size: var(--ui-text-base);
  color: var(--ipay-text-secondary);
  margin: 0 0 var(--ui-space-5);
}

.ipay-result__payment-id {
  font-size: var(--ui-text-sm);
  color: var(--ipay-text-dim);
  font-family: var(--ui-font-mono);
  letter-spacing: 0.5px;
}

/* ==========================================================================
   LOADING STATE
   ========================================================================== */
.ipay-loading {
  text-align: center;
  padding: 80px var(--ui-space-6);
  background: var(--ipay-card-bg);
  border: 1px solid var(--ipay-card-border);
  border-radius: var(--ui-radius-2xl);
}

.ipay-loading__text {
  font-size: var(--ui-text-base);
  color: var(--ipay-text-secondary);
  margin: var(--ui-space-5) 0 0;
}

.ipay-spinner {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  margin: 0 auto;
  border: 3px solid rgba(255, 120, 79, 0.2);
  border-top-color: var(--ipay-accent);
  animation: ipay-spin 0.8s linear infinite;
}

.ipay-spinner--inline {
  display: inline-block;
  width: 22px;
  height: 22px;
  border-width: 2.5px;
  border-color: rgba(255, 255, 255, 0.3);
  border-top-color: #fff;
}

@keyframes ipay-spin {
  to {
    transform: rotate(360deg);
  }
}
/* ==========================================================================
   UI PAGES — Corporate Dashboard
   ==========================================================================
   Page-specific styles for the GROUP (Corporate) mode dashboard.
   Uses: stat-card contract, glass-table contract, tokens.
   ========================================================================== */
/* ── Page Container ── */
.corporate-dashboard {
  padding: var(--ui-space-6) var(--ui-space-8);
  max-width: 1200px;
}

/* ── Corporate Mode Ribbon ── */
.corporate-ribbon {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-2) var(--ui-space-5);
  border-radius: var(--ui-radius-full);
  background: var(--ui-warning-bg);
  border: 1px solid var(--ui-warning-border);
  color: var(--ui-warning);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.02em;
  margin-bottom: var(--ui-space-8);
}

.corporate-ribbon mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

/* ── Section Title ── */
.corporate-dashboard__section-title {
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
  margin: 0 0 var(--ui-space-4);
}

/* ==========================================================================
   UI PAGES — Corporate Governance (Phase 10)
   ==========================================================================
   Page-scoped styles for GROUP mode corporate pages.

   ONLY business-identity and page-layout styles allowed here.
   All reusable patterns MUST use existing contracts:
   - Buttons: controls/buttons.scss (.ui-btn, .ui-icon-btn)
   - Tabs: controls/tabs.scss (.ui-tabs, .ui-tab)
   - Chips: controls/chips.scss (.ui-chip)
   - Stat Cards: headers/stat-cards.scss (.stat-card)
   - Tables: tables/glass-table.scss (.glass-table)
   - Modals: layout/modal.scss (.glass-modal-*)
   - Forms: modals/forms.scss (.ui-form, .glass-label)
   ========================================================================== */
/* ── Corporate Page Container ── */
.corporate-page {
  padding: var(--ui-space-6);
  max-width: 1200px;
}

.corporate-page__subtitle {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  margin: 0 0 var(--ui-space-5) 0;
  line-height: 1.5;
}

.corporate-page__actions {
  display: flex;
  gap: var(--ui-space-3);
  margin-bottom: var(--ui-space-5);
}

.corporate-page__filters {
  display: flex;
  gap: var(--ui-space-3);
  margin-bottom: var(--ui-space-5);
}

.corporate-page__filters select {
  padding: 8px 12px;
  border-radius: var(--ui-radius-md);
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-1);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  font-family: inherit;
  min-width: 180px;
}

/* ── Corporate Ribbon (page identity, not reusable) ── */
.corporate-ribbon {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
  background: linear-gradient(135deg, rgba(212, 175, 55, 0.1), rgba(184, 134, 11, 0.05));
  border: 1px solid rgba(212, 175, 55, 0.15);
  border-radius: var(--ui-radius-md);
  margin-bottom: var(--ui-space-5);
  color: var(--ui-warning);
  font-weight: var(--ui-font-semibold);
  font-size: var(--ui-text-base);
}

.corporate-ribbon mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
}

.corporate-ribbon__badge {
  margin-left: auto;
  padding: 2px 10px;
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  letter-spacing: 0.06em;
  background: rgba(212, 175, 55, 0.15);
  color: var(--ui-warning);
  border: 1px solid rgba(212, 175, 55, 0.25);
}

/* ── Corporate-Amber Button (page identity variant, not in controls) ── */
.ui-btn--corporate {
  background: linear-gradient(135deg, rgba(212, 175, 55, 0.15), rgba(184, 134, 11, 0.08));
  border: 1px solid rgba(212, 175, 55, 0.3);
  color: var(--ui-warning);
}

.ui-btn--corporate:hover:not(:disabled) {
  background: linear-gradient(135deg, rgba(212, 175, 55, 0.25), rgba(184, 134, 11, 0.15));
  border-color: rgba(212, 175, 55, 0.5);
  box-shadow: 0 4px 16px rgba(212, 175, 55, 0.15);
}

/* ── Branch Tags (corporate identity chip variant) ── */
.corporate-page .branch-tag {
  display: inline-block;
  padding: 2px 8px;
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  background: rgba(99, 102, 241, 0.1);
  color: var(--ui-brand);
  border: 1px solid rgba(99, 102, 241, 0.15);
  margin-right: 4px;
  margin-bottom: 2px;
}

/* ── Enforced Badge (corporate-only indicator) ── */
.enforced-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  background: rgba(212, 175, 55, 0.12);
  color: var(--ui-warning);
  border: 1px solid rgba(212, 175, 55, 0.25);
}

.enforced-badge mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

/* ── Module Control Matrix (page-specific layout) ── */
.module-matrix .cell-module {
  min-width: 140px;
  font-weight: var(--ui-font-medium);
}

.module-matrix .cell-branch {
  text-align: center;
  min-width: 100px;
}

.module-matrix .cell-toggle {
  text-align: center;
}

.module-toggle {
  border: none;
  background: transparent;
  cursor: pointer;
  padding: 4px;
  border-radius: var(--ui-radius-sm);
  transition: all 150ms ease;
  display: inline-flex;
}

.module-toggle--on mat-icon {
  color: var(--ui-success);
  font-size: 22px;
  width: 22px;
  height: 22px;
}

.module-toggle--off mat-icon {
  color: var(--ui-text-muted);
  opacity: 0.4;
  font-size: 22px;
  width: 22px;
  height: 22px;
}

.module-toggle:hover {
  background: rgba(255, 255, 255, 0.06);
}

/* ── Completion Bar (corporate training only) ── */
.completion-bar {
  width: 80px;
  height: 6px;
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.06);
  overflow: hidden;
  display: inline-block;
  vertical-align: middle;
  margin-right: 6px;
}

.completion-bar__fill {
  height: 100%;
  background: linear-gradient(90deg, var(--ui-warning), var(--ui-success));
  border-radius: 3px;
  transition: width 300ms ease;
}

/* ── Info Card (corporate settings page only) ── */
.corporate-info-section {
  margin-top: var(--ui-space-4);
}

.corporate-page .info-card {
  display: flex;
  gap: var(--ui-space-4);
  padding: var(--ui-space-4) var(--ui-space-5);
  background: rgba(99, 102, 241, 0.06);
  border: 1px solid rgba(99, 102, 241, 0.12);
  border-radius: var(--ui-radius-md);
  margin-bottom: var(--ui-space-5);
}

.corporate-page .info-card mat-icon {
  color: var(--ui-brand);
  font-size: 22px;
  margin-top: 2px;
  flex-shrink: 0;
}

.corporate-page .info-card h4 {
  margin: 0 0 4px 0;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.corporate-page .info-card p {
  margin: 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  line-height: 1.5;
}

/* ── Branch Checklist (assign modal, corporate only) ── */
.corporate-page .branch-check {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: 6px 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  cursor: pointer;
}

.corporate-page .branch-check input[type=checkbox] {
  accent-color: var(--ui-warning);
}

/* ── Inline utilities for corporate pages ── */
.corporate-page .cell-sub {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  margin-top: 2px;
}

/* ── Group Users page ── */
.group-users-page .erp-title {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.group-users-page__title-icon {
  width: 22px;
  height: 22px;
  font-size: 22px;
  color: var(--ui-warning);
}

.group-users-page__filters .filter-group {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--ui-space-3);
  width: 100%;
}

.group-users-page__filter-select {
  width: min(220px, 100%);
}

.group-users-page__filter-select mat-form-field {
  width: 100%;
}

.group-users-page__filter-toggle {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  min-height: 36px;
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  cursor: pointer;
}

.group-users-page__filter-toggle input[type=checkbox] {
  width: 16px;
  height: 16px;
  accent-color: var(--ui-warning);
}

.group-users-page__table-card {
  min-height: 360px;
}

.group-users-page__table .cell-primary-name {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.group-users-page__branch-cell {
  overflow: hidden;
}

.group-users-page__branch-list {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  min-width: 0;
}

.group-users-page__branch-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.group-users-page__branch-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
  min-width: 0;
}

.group-users-page__branch-chip {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}

.group-users-page__role-label {
  padding-left: 2px;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  line-height: 1.2;
}

.group-users-page__primary-tag {
  flex: 0 0 auto;
  padding: 1px 6px;
  border-radius: var(--ui-radius-full);
  background: rgba(251, 191, 36, 0.12);
  border: 1px solid var(--ui-warning-border);
  color: var(--ui-warning);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  line-height: 1.2;
}

.group-users-page__permission-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-1);
  max-width: 210px;
}

.group-users-page__perm-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: var(--ui-space-1);
  min-height: 28px;
  padding: 4px var(--ui-space-2);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-sm);
  background: rgba(255, 255, 255, 0.02);
  color: var(--ui-text-subtle);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  line-height: 1;
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.group-users-page__perm-toggle mat-icon {
  width: 15px;
  height: 15px;
  font-size: 15px;
}

.group-users-page__perm-toggle:hover {
  background: var(--ui-surface-2);
  border-color: var(--ui-border-hover);
  color: var(--ui-text-secondary);
}

.group-users-page__perm-toggle--on {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.group-users-page .corporate-role-select {
  width: 100%;
  min-width: 150px;
}

.group-users-page .corporate-role-select .mat-mdc-form-field-subscript-wrapper {
  display: none;
}

.group-users-page .corporate-role-select .mat-mdc-text-field-wrapper {
  min-height: 36px !important;
  padding: 0 var(--ui-space-2) !important;
  border: 1px solid var(--ui-border-light) !important;
  border-radius: var(--ui-radius-md) !important;
  background: var(--ui-surface-2) !important;
}

.group-users-page .corporate-role-select .mat-mdc-form-field-flex {
  padding: 0 !important;
}

.group-users-page .corporate-role-select .mat-mdc-form-field-infix {
  min-height: 36px !important;
  padding: 7px 0 !important;
}

.group-users-page .corporate-role-select .mat-mdc-select-value {
  color: var(--ui-text-primary) !important;
  font-size: var(--ui-text-sm) !important;
  font-weight: var(--ui-font-medium) !important;
}

.group-users-page .corporate-role-select .mat-mdc-select-arrow {
  color: var(--ui-text-muted) !important;
}

.group-users-page__modal {
  position: fixed;
  top: 50%;
  left: 50%;
  z-index: var(--z-modal);
  width: min(480px, 100vw - 32px);
  transform: translate(-50%, -50%);
}

.group-users-page__modal--confirm {
  width: min(400px, 100vw - 32px);
  z-index: calc(var(--z-modal) + 1);
}

.group-users-page__modal-header--danger {
  border-bottom-color: var(--ui-danger-border);
}

.group-users-page__modal-header--danger h3 {
  color: var(--ui-danger);
}

.group-users-page__modal-help,
.group-users-page__modal-copy {
  margin: 0 0 var(--ui-space-3);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  line-height: 1.5;
}

.group-users-page__modal-help strong {
  color: var(--ui-warning);
}

.group-users-page__branch-checkbox-list {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  max-height: 280px;
  overflow-y: auto;
}

.group-users-page__branch-checkbox-item {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  min-height: 42px;
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  transition: var(--ui-transition-base);
}

.group-users-page__branch-checkbox-item:hover {
  background: var(--ui-surface-2);
}

.group-users-page__branch-checkbox-item input[type=checkbox] {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  accent-color: var(--ui-warning);
}

.group-users-page__branch-checkbox-name {
  flex: 1 1 auto;
  min-width: 0;
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
}

.group-users-page__primary-radio {
  display: inline-flex;
  align-items: center;
  margin-left: auto;
  cursor: pointer;
}

.group-users-page__primary-radio input[type=radio] {
  display: none;
}

.group-users-page__primary-radio-label {
  padding: 3px var(--ui-space-2);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  line-height: 1.2;
}

.group-users-page__primary-radio-label--active {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.group-users-page__removed-list {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  margin: 0 0 var(--ui-space-3);
}

.group-users-page__removed-item {
  padding: 4px 0;
  color: var(--ui-danger);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
}

@media (max-width: 768px) {
  .group-users-page__filter-select {
    width: 100%;
  }
  .group-users-page__permission-grid {
    grid-template-columns: 1fr;
  }
}
/* ==========================================================================
   POS QUICK CHECKOUT — Page Contract
   ==========================================================================
   Migrated from pos.component.scss. Uses ONLY global design tokens.
   All $pos-* variables replaced with var(--ui-*) equivalents.
   ========================================================================== */
.pos-container {
  display: flex;
  flex-direction: column;
  height: 100vh;
  background: var(--ui-surface-base);
  color: var(--ui-text-primary);
  font-family: var(--ui-font-primary);
  overflow: hidden;
}
.pos-container.pos-processing {
  pointer-events: none;
  opacity: 0.85;
}

.pos-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--ui-space-3) var(--ui-space-5);
  background: var(--ui-surface-2);
  border-bottom: 1px solid var(--ui-border);
  flex-shrink: 0;
}
.pos-topbar__title {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-bold);
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}
.pos-topbar__title .pos-logo {
  font-size: var(--ui-text-xl);
}
.pos-topbar__shortcuts {
  display: flex;
  gap: var(--ui-space-2);
}
.pos-topbar__customer {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}
.pos-topbar__customer mat-icon {
  font-size: var(--ui-text-lg);
  width: var(--ui-text-lg);
  height: var(--ui-text-lg);
}

.shortcut-badge {
  font-size: var(--ui-text-xs);
  padding: 3px var(--ui-space-2);
  border-radius: 4px;
  background: var(--ui-info-bg);
  color: var(--ui-info);
  font-weight: var(--ui-font-medium);
  font-family: var(--ui-font-mono);
}

.pos-body {
  display: flex;
  flex: 1;
  overflow: hidden;
}

.pos-products {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: var(--ui-space-4);
  overflow-y: auto;
  border-right: 1px solid var(--ui-border);
}

.pos-search {
  position: relative;
  display: flex;
  align-items: center;
  margin-bottom: var(--ui-space-4);
  flex-shrink: 0;
}
.pos-search__icon {
  position: absolute;
  left: 14px;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xl);
}
.pos-search__input {
  width: 100%;
  padding: 14px 14px 14px 44px;
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-md);
  outline: none;
  transition: border-color var(--ui-transition-fast);
}
.pos-search__input::placeholder {
  color: var(--ui-text-muted);
}
.pos-search__input:focus {
  border-color: var(--ui-info);
  box-shadow: 0 0 0 2px rgba(96, 165, 250, 0.15);
}
.pos-search__spinner {
  position: absolute;
  right: 14px;
}

.pos-product-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: var(--ui-space-3);
  overflow-y: auto;
}

.pos-product-card {
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  padding: 14px;
  cursor: pointer;
  transition: all var(--ui-transition-fast);
}
.pos-product-card:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-info);
  transform: translateY(-1px);
  box-shadow: var(--ui-shadow-md);
}
.pos-product-card:active {
  transform: translateY(0);
}
.pos-product-card__name {
  font-weight: var(--ui-font-semibold);
  font-size: var(--ui-text-base);
  margin-bottom: var(--ui-space-2);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pos-product-card__meta {
  display: flex;
  gap: var(--ui-space-3);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  margin-bottom: var(--ui-space-2);
}
.pos-product-card__meta .stock {
  color: var(--ui-success);
}
.pos-product-card__price {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-bold);
  color: var(--ui-info);
}

.pos-products__empty,
.pos-products__placeholder {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: var(--ui-text-muted);
  gap: var(--ui-space-2);
}
.pos-products__empty mat-icon,
.pos-products__placeholder mat-icon {
  font-size: 48px;
  width: 48px;
  height: 48px;
  opacity: 0.4;
}
.pos-products__empty p,
.pos-products__placeholder p {
  margin: 0;
  font-size: var(--ui-text-base);
}
.pos-products__empty .hint,
.pos-products__placeholder .hint {
  font-size: var(--ui-text-sm);
  opacity: 0.5;
}

.pos-cart {
  width: 380px;
  display: flex;
  flex-direction: column;
  background: var(--ui-surface-2);
  flex-shrink: 0;
}
.pos-cart__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px var(--ui-space-4);
  border-bottom: 1px solid var(--ui-border);
}
.pos-cart__header h3 {
  margin: 0;
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-bold);
}
.pos-cart__count {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  background: var(--ui-info-bg);
  padding: 3px var(--ui-space-3);
  border-radius: var(--ui-radius-md);
}
.pos-cart__items {
  flex: 1;
  overflow-y: auto;
  padding: var(--ui-space-2) 0;
}
.pos-cart__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 200px;
  color: var(--ui-text-muted);
  gap: var(--ui-space-2);
}
.pos-cart__empty mat-icon {
  font-size: 40px;
  width: 40px;
  height: 40px;
  opacity: 0.3;
}
.pos-cart__empty p {
  margin: 0;
  font-size: var(--ui-text-sm);
}
.pos-cart__footer {
  border-top: 1px solid var(--ui-border);
  flex-shrink: 0;
}

.pos-cart-item {
  padding: var(--ui-space-3) var(--ui-space-4);
  border-bottom: 1px solid rgba(42, 46, 58, 0.5);
  transition: background 0.1s;
}
.pos-cart-item:hover {
  background: rgba(255, 255, 255, 0.02);
}
.pos-cart-item__info {
  display: flex;
  justify-content: space-between;
  margin-bottom: var(--ui-space-2);
}
.pos-cart-item__name {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 200px;
}
.pos-cart-item__price {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}
.pos-cart-item__controls {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}
.pos-cart-item__total {
  font-weight: var(--ui-font-semibold);
  font-size: var(--ui-text-base);
  margin-left: auto;
  margin-right: var(--ui-space-2);
  min-width: 70px;
  text-align: right;
}

.qty-btn {
  width: 28px;
  height: 28px;
  border-radius: var(--ui-radius-sm);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-base);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-md);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.1s;
}
.qty-btn:hover {
  background: var(--ui-info);
  border-color: var(--ui-info);
}
.qty-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.qty-input {
  width: 40px;
  height: 28px;
  text-align: center;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface-base);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  appearance: textfield;
  -moz-appearance: textfield;
}
.qty-input::-webkit-inner-spin-button, .qty-input::-webkit-outer-spin-button {
  appearance: none;
  margin: 0;
}

.remove-btn {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: none;
  background: transparent;
  color: var(--ui-text-muted);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: all var(--ui-transition-fast);
}
.remove-btn mat-icon {
  font-size: var(--ui-text-md);
  width: var(--ui-text-md);
  height: var(--ui-text-md);
}
.remove-btn:hover {
  background: var(--ui-danger-bg);
  color: var(--ui-danger);
}

.pos-totals {
  padding: var(--ui-space-3) var(--ui-space-4);
  border-bottom: 1px solid var(--ui-border);
}
.pos-totals__row {
  display: flex;
  justify-content: space-between;
  font-size: var(--ui-text-sm);
  padding: 3px 0;
  color: var(--ui-text-muted);
}
.pos-totals__row--grand {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  padding-top: var(--ui-space-2);
  margin-top: var(--ui-space-1);
  border-top: 1px solid var(--ui-border);
}
.pos-totals__row .discount {
  color: var(--ui-success);
}

.pos-payment {
  padding: var(--ui-space-3) var(--ui-space-4);
}
.pos-payment__modes {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--ui-space-2);
}
.pos-payment__btn {
  padding: var(--ui-space-2) var(--ui-space-1);
  border-radius: var(--ui-radius-sm);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-base);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  cursor: pointer;
  transition: all var(--ui-transition-fast);
}
.pos-payment__btn:hover {
  border-color: var(--ui-info);
  color: var(--ui-text-primary);
}
.pos-payment__btn.active {
  background: var(--ui-info-bg);
  border-color: var(--ui-info);
  color: var(--ui-info);
  font-weight: var(--ui-font-semibold);
}
.pos-payment__btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.pos-checkout-btn {
  width: calc(100% - 32px);
  margin: var(--ui-space-3) var(--ui-space-4) var(--ui-space-4);
  padding: 14px;
  border: none;
  border-radius: var(--ui-radius-sm);
  background: linear-gradient(135deg, var(--ui-info), #3a78ee);
  color: #fff;
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-bold);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-2);
  transition: all var(--ui-transition-base);
  box-shadow: 0 4px 16px rgba(96, 165, 250, 0.25);
}
.pos-checkout-btn mat-icon {
  font-size: var(--ui-text-xl);
  width: var(--ui-text-xl);
  height: var(--ui-text-xl);
}
.pos-checkout-btn:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 6px 24px rgba(96, 165, 250, 0.35);
}
.pos-checkout-btn:active:not(:disabled) {
  transform: translateY(0);
}
.pos-checkout-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

:host ::ng-deep .pos-success-snackbar {
  background: var(--ui-success) !important;
  color: #fff !important;
}
:host ::ng-deep .pos-success-snackbar .mdc-snackbar__label {
  color: #fff !important;
}

/* ==========================================================================
   FINANCE PAGES — Page-Level UI Contract
   ==========================================================================
   Scoped page styling for Finance module pages.
   Uses ONLY design tokens — no hardcoded values.

   Margin contract matches global .ui-page:
     vertical  = var(--ui-space-6)   (24px)
     horizontal = var(--ui-space-4)  (16px)
   ========================================================================== */
/* ═══ Report Layout ═══ */
.finance-page {
  padding: var(--ui-space-6) var(--ui-space-4);
  min-height: 100%;
}

/* ═══ Nested Page Reset ═══
   Workspace components (ledger-workspace, reports-workspace, etc.) already
   wrap everything in .finance-page.  Child routes rendered via <router-outlet>
   also use .finance-page — strip the nested one to avoid double padding.    */
.finance-page .ui-tab-content .finance-page {
  padding: 0;
  min-height: auto;
}

.finance-page__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--ui-space-6);
}

.finance-page__title {
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  letter-spacing: -0.01em;
}

.finance-page__subtitle {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  margin-top: var(--ui-space-1);
}

.finance-page__actions {
  display: flex;
  gap: var(--ui-space-3);
  align-items: center;
}

/* ═══ Filter Bar ═══ */
.finance-filter-bar {
  display: flex;
  gap: var(--ui-space-3);
  align-items: center;
  padding: var(--ui-space-3) var(--ui-space-4);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  margin-bottom: var(--ui-space-5);
}

.finance-filter-bar__input {
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  padding: var(--ui-space-2) var(--ui-space-3);
  outline: none;
  transition: border-color var(--ui-transition-fast);
}

.finance-filter-bar__input:focus {
  border-color: var(--ui-border-focus);
}

/* ═══ Operations Workspace Header ═══ */
.finance-page--operations {
  padding-top: var(--ui-space-4);
}

.finance-page--operations .header-card {
  margin-bottom: var(--ui-space-3);
  border-radius: var(--ui-radius-lg);
}

.finance-page--operations .header-card__top {
  padding: var(--ui-space-4) var(--ui-space-5);
  gap: var(--ui-space-4);
}

.finance-page--operations .header-card__title {
  font-size: var(--ui-text-2xl);
}

.finance-page--operations .header-card__title-block {
  gap: var(--ui-space-1);
}

.finance-page--operations .header-card__stats {
  gap: var(--ui-space-2);
}

.finance-page--operations .operations-header-stat {
  min-width: 142px;
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  gap: var(--ui-space-1);
}

.finance-page--operations .operations-header-stat .header-stat__value {
  min-height: 26px;
  justify-content: flex-start;
  padding: var(--ui-space-1) var(--ui-space-3);
  font-size: var(--ui-text-base);
  font-family: var(--ui-font-mono);
}

.finance-page--operations .header-card__bottom {
  flex-wrap: wrap;
  padding: var(--ui-space-3) var(--ui-space-5);
}

.finance-page--operations .operations-header-controls {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  flex-wrap: wrap;
  width: 100%;
}

.finance-page--operations .operations-fy-trigger__chevron {
  width: 14px;
  height: 14px;
  font-size: 14px;
  opacity: 0.5;
}

.finance-page--operations .operations-import-trigger {
  margin-left: auto;
  cursor: pointer;
  height: 34px;
  padding: 0 var(--ui-space-4);
}

.finance-page--operations .ui-tab-content {
  display: block;
}

@media (max-width: 768px) {
  .finance-page--operations .operations-import-trigger {
    width: 100%;
    justify-content: center;
    margin-left: 0;
  }
}
/* ═══ Glass Panel ═══ */
.finance-panel {
  background: var(--ui-glass-light);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  padding: var(--ui-space-5);
  backdrop-filter: var(--ui-blur-sm);
}

.finance-panel--compact {
  padding: var(--ui-space-4);
}

/* Panel sub-elements — label + monetary amount */
.finance-panel__label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0;
}

.finance-panel__amount {
  margin: var(--ui-space-1) 0 0;
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  font-family: var(--ui-font-mono);
  color: var(--ui-text-primary);
}

/* ═══ Report Sections (P&L, Balance Sheet) ═══ */
.finance-report {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.finance-report__section {
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  overflow: hidden;
}

.finance-report__section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--ui-space-3) var(--ui-space-4);
  background: var(--ui-surface-2);
  border-bottom: 1px solid var(--ui-border);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.finance-report__section-total {
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
}

.finance-report__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--ui-space-2) var(--ui-space-4);
  border-bottom: 1px solid var(--ui-table-row-border);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  transition: background var(--ui-transition-fast);
}

.finance-report__row:last-child {
  border-bottom: none;
}

.finance-report__row:hover {
  background: var(--ui-surface-hover);
}

.finance-report__row--total {
  background: var(--ui-surface-2);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  border-top: 1px solid var(--ui-border);
}

.finance-report__row-label {
  flex: 1;
}

.finance-report__row-value {
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-sm);
  min-width: 120px;
  text-align: right;
}

.finance-report__row-value--debit {
  color: var(--ui-danger);
}

.finance-report__row-value--credit {
  color: var(--ui-success);
}

/* ═══ Balance Sheet Two-Column ═══ */
.finance-balance-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--ui-space-4);
  margin-bottom: var(--ui-space-4);
}

@media (max-width: 768px) {
  .finance-balance-grid {
    grid-template-columns: 1fr;
  }
}
.finance-balance-check {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-3);
  margin-top: var(--ui-space-4);
  border-radius: var(--ui-radius-md);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
}

.finance-balance-check--pass {
  background: var(--ui-success-bg);
  border: 1px solid var(--ui-success-border);
  color: var(--ui-success);
}

.finance-balance-check--fail {
  background: var(--ui-danger-bg);
  border: 1px solid var(--ui-danger-border);
  color: var(--ui-danger);
}

/* ═══ COA Tree ═══ */
.coa-tree {
  padding: 0;
}

.coa-tree__node {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-sm);
  cursor: pointer;
  transition: background var(--ui-transition-fast);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

.coa-tree__node:hover {
  background: var(--ui-surface-hover);
}

.coa-tree__node--active {
  background: var(--ui-surface-active);
  color: var(--ui-text-primary);
}

.coa-tree__expand {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  color: var(--ui-text-muted);
  transition: transform var(--ui-transition-fast);
}

.coa-tree__expand--open {
  transform: rotate(90deg);
}

.coa-tree__children {
  padding-left: var(--ui-space-5);
}

.coa-tree__code {
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  min-width: 60px;
}

.coa-tree__name {
  flex: 1;
}

.coa-tree__type {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.coa-tree__actions {
  display: flex;
  gap: var(--ui-space-1);
  opacity: 0;
  transition: opacity var(--ui-transition-fast);
}

.coa-tree__node:hover .coa-tree__actions {
  opacity: 1;
}

/* ═══ Integrity Status ═══ */
.finance-integrity {
  text-align: center;
  padding: var(--ui-space-10);
}

.finance-integrity__icon {
  font-size: 64px;
  margin-bottom: var(--ui-space-4);
}

.finance-integrity__icon--pass {
  color: var(--ui-success);
}

.finance-integrity__icon--fail {
  color: var(--ui-danger);
}

.finance-integrity__icon--pending {
  color: var(--ui-text-muted);
}

.finance-integrity__status {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  margin-bottom: var(--ui-space-2);
}

.finance-integrity__meta {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  margin-bottom: var(--ui-space-6);
}

/* ═══ Placeholder Page (Coming Soon) ═══ */
.finance-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 60vh;
  text-align: center;
}

.finance-placeholder__icon {
  font-size: 48px;
  color: var(--ui-text-subtle);
  margin-bottom: var(--ui-space-4);
}

.finance-placeholder__title {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  margin-bottom: var(--ui-space-2);
}

.finance-placeholder__description {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  max-width: 420px;
}

/* ═══ Journal Modal ═══ */
.journal-modal__lines-header {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  background: var(--ui-surface-2);
  border-radius: var(--ui-radius-sm);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: var(--ui-space-2);
}

.journal-modal__line {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  border-bottom: 1px solid var(--ui-table-row-border);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

.journal-modal__line:last-child {
  border-bottom: none;
}

.journal-modal__total {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: var(--ui-space-2);
  padding: var(--ui-space-3);
  background: var(--ui-surface-2);
  border-radius: var(--ui-radius-sm);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  margin-top: var(--ui-space-2);
}

/* ═══ Finance Dashboard ═══ */
.fdash {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
}

.finance-page--dashboard .header-card__bottom {
  flex-wrap: wrap;
}

.finance-page--dashboard .finance-dashboard-header__controls {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
}

/* ═══ FY Pill Select — transparent <select> inside pill-trigger ═══ */
.fy-pill-select {
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  border: none;
  outline: none;
  color: inherit;
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  padding: 0;
  margin: 0;
  min-width: 0;
  width: auto;
}

.fy-pill-select option {
  background: #2a231f;
  color: rgba(255, 255, 255, 0.9);
  padding: 8px 12px;
}

.finance-page--dashboard .finance-dashboard-header__stat {
  text-align: left;
}

.finance-page--dashboard .finance-dashboard-header__stat .stat-card__subtitle {
  display: block;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (max-width: 768px) {
  .finance-page--dashboard .header-card__actions {
    width: 100%;
    justify-content: space-between;
    margin-left: 0;
  }
}
/* 2-Col Row */
.fdash__row-2col {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: var(--ui-space-4);
}

@media (max-width: 900px) {
  .fdash__row-2col {
    grid-template-columns: 1fr;
  }
}
/* Panels */
.fdash__panel {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--ui-radius-md);
  backdrop-filter: blur(10px);
  overflow: hidden;
}

.fdash__panel--wide {
  grid-column: 1;
}

.fdash__panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--ui-space-4) var(--ui-space-5);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.fdash__panel-title {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.fdash__panel-filters {
  display: flex;
  gap: var(--ui-space-1);
}

.fdash__period-btn {
  padding: 4px 10px;
  font-size: 11px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--ui-radius-sm);
  background: transparent;
  color: var(--ui-text-muted);
  cursor: pointer;
  transition: all var(--ui-transition-fast);
}

.fdash__period-btn:hover {
  border-color: rgba(255, 255, 255, 0.16);
  color: var(--ui-text-primary);
}

.fdash__period-btn--active {
  background: rgba(255, 255, 255, 0.08);
  color: var(--ui-text-primary);
  border-color: rgba(255, 255, 255, 0.16);
}

/* Bar Chart */
.fdash__chart-area {
  padding: var(--ui-space-4) var(--ui-space-5);
  min-height: 160px;
}

.fdash__bars {
  display: flex;
  align-items: flex-end;
  gap: var(--ui-space-2);
  height: 140px;
}

.fdash__bar-group {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ui-space-1);
  min-width: 0;
}

.fdash__bar-stack {
  display: flex;
  gap: 2px;
  align-items: flex-end;
  width: 100%;
  height: 120px;
}

.fdash__bar {
  flex: 1;
  border-radius: 3px 3px 0 0;
  min-height: 2px;
  transition: height 0.4s ease;
}

.fdash__bar--income {
  background: linear-gradient(180deg, #6366f1, #4f46e5);
}

.fdash__bar--expense {
  background: linear-gradient(180deg, #f59e0b, #d97706);
}

.fdash__bar-label {
  font-size: 9px;
  color: var(--ui-text-subtle);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
  text-align: center;
}

.fdash__chart-empty,
.fdash__chart-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 120px;
}

.fdash__chart-legend {
  display: flex;
  gap: var(--ui-space-4);
  padding: var(--ui-space-2) var(--ui-space-5) var(--ui-space-3);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.fdash__legend-item {
  display: flex;
  align-items: center;
  gap: 6px;
}

.fdash__legend-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.fdash__legend-dot--income {
  background: #6366f1;
}

.fdash__legend-dot--expense {
  background: #f59e0b;
}

/* Aging Grid */
.fdash__aging-grid {
  display: flex;
}

.fdash__aging-col {
  flex: 1;
  padding: var(--ui-space-3) 0;
}

.fdash__aging-divider {
  width: 1px;
  background: rgba(255, 255, 255, 0.06);
}

.fdash__aging-head {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0 var(--ui-space-4) var(--ui-space-2);
}

.fdash__aging-row {
  display: flex;
  justify-content: space-between;
  padding: var(--ui-space-2) var(--ui-space-4);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  cursor: pointer;
  transition: background var(--ui-transition-fast);
}

.fdash__aging-row:hover {
  background: rgba(255, 255, 255, 0.04);
}

.fdash__aging-row--warn .fdash__aging-val {
  color: var(--ui-warning);
}

.fdash__aging-val {
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-sm);
}

/* Bank List */
.fdash__bank-list {
  padding: var(--ui-space-2) 0;
}

.fdash__bank-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--ui-space-3) var(--ui-space-5);
  cursor: pointer;
  transition: background var(--ui-transition-fast);
}

.fdash__bank-row:hover {
  background: rgba(255, 255, 255, 0.04);
}

.fdash__bank-name {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

.fdash__bank-balance {
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.fdash__bank-empty {
  padding: var(--ui-space-5);
  text-align: center;
}

/* Expense Breakdown */
.fdash__expense-chart {
  padding: var(--ui-space-3) var(--ui-space-5) var(--ui-space-4);
}

.fdash__expense-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  margin-bottom: var(--ui-space-3);
}

.fdash__expense-info {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  min-width: 90px;
}

.fdash__expense-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.fdash__expense-name {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.fdash__expense-bar-wrap {
  flex: 1;
  height: 6px;
  background: rgba(255, 255, 255, 0.04);
  border-radius: 3px;
  overflow: hidden;
}

.fdash__expense-bar {
  height: 100%;
  border-radius: 3px;
  transition: width 0.6s ease;
}

.fdash__expense-val {
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  min-width: 60px;
  text-align: right;
}

/* Activity Feed */
.fdash__activity-list {
  padding: var(--ui-space-2) 0;
}

.fdash__activity-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-5);
  cursor: pointer;
  transition: background var(--ui-transition-fast);
}

.fdash__activity-row:hover {
  background: rgba(255, 255, 255, 0.04);
}

.fdash__activity-icon {
  font-size: 18px;
  flex-shrink: 0;
}

.fdash__activity-info {
  flex: 1;
  min-width: 0;
}

.fdash__activity-desc {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.fdash__activity-date {
  font-size: 11px;
  color: var(--ui-text-subtle);
  margin-top: 2px;
}

.fdash__activity-amount {
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  white-space: nowrap;
}

.fdash__activity-amount--credit {
  color: var(--ui-success);
}

.fdash__activity-amount--debit {
  color: var(--ui-text-muted);
}

/* Alerts */
.fdash__alerts {
  padding: var(--ui-space-2) 0;
}

.fdash__alert {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-5);
  font-size: var(--ui-text-sm);
  cursor: pointer;
  transition: background var(--ui-transition-fast);
}

.fdash__alert:hover {
  background: rgba(255, 255, 255, 0.04);
}

.fdash__alert-icon {
  font-size: 16px;
}

.fdash__alert--warning .fdash__alert-text {
  color: var(--ui-warning);
}

.fdash__alert--info .fdash__alert-text {
  color: var(--ui-text-secondary);
}

.fdash__alert--danger .fdash__alert-text {
  color: var(--ui-danger);
}

/* Quick Actions */
.fdash__quick-actions {
  display: flex;
  gap: var(--ui-space-3);
  flex-wrap: wrap;
}

.fdash__action-btn {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-4);
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--ui-radius-md);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  cursor: pointer;
  transition: all var(--ui-transition-fast);
}

.fdash__action-btn:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.16);
  color: var(--ui-text-primary);
}

.fdash__action-icon {
  font-size: 16px;
}

/* ═══ Phase 2 — Operational Modules ═══ */
/* Reconciliation Two-Panel Grid */
.finance-recon-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--ui-space-4);
}

@media (max-width: 900px) {
  .finance-recon-grid {
    grid-template-columns: 1fr;
  }
}
.finance-recon-table {
  overflow-x: auto;
}

.finance-recon-th,
.finance-recon-tr {
  display: grid;
  grid-template-columns: 32px 60px 1fr 60px 70px 70px 70px;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  font-size: var(--ui-text-xs);
}

.finance-recon-th {
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: var(--ui-font-semibold);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.finance-recon-tr {
  color: var(--ui-text-secondary);
  border-bottom: 1px solid rgba(255, 255, 255, 0.03);
  cursor: pointer;
  transition: background var(--ui-transition-fast);
}

.finance-recon-tr:hover {
  background: rgba(255, 255, 255, 0.03);
}

.finance-recon-tr--matched {
  opacity: 0.5;
}

.finance-recon-tr--selected {
  background: rgba(99, 102, 241, 0.08);
  border-color: rgba(99, 102, 241, 0.15);
}

.finance-recon-desc {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.finance-recon-amt {
  font-family: var(--ui-font-mono);
  text-align: right;
}

.finance-recon-status {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.finance-recon-actions {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3);
}

/* ── Bank Recon V2: Summary Cards ── */
.finance-recon-summary {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 16px;
}

.finance-recon-card {
  background: var(--ui-surface, #1a1e2e);
  border-radius: 8px;
  padding: 14px 16px;
  border: 1px solid var(--ui-border, rgba(255, 255, 255, 0.06));
}

.finance-recon-card__value {
  font-size: 22px;
  font-weight: 600;
  color: var(--ui-text, #fff);
}

.finance-recon-card__label {
  font-size: 11px;
  color: var(--ui-text-muted, #8b8fa3);
  margin-top: 2px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.finance-recon-card--matched {
  border-left: 3px solid #22c55e;
}

.finance-recon-card--unmatched {
  border-left: 3px solid #f59e0b;
}

.finance-recon-card--balanced {
  border-left: 3px solid #22c55e;
}

.finance-recon-card--unbalanced {
  border-left: 3px solid #ef4444;
}

/* ── Bank Recon V2: Confidence Score Tiers ── */
.finance-recon-score {
  font-size: 11px;
  font-weight: 600;
}

.finance-recon-score--high {
  color: #22c55e;
}

.finance-recon-score--medium {
  color: #f59e0b;
}

.finance-recon-score--low {
  color: #6b7280;
}

/* ── Bank Recon V2: Confidence Tier Label ── */
.finance-recon-tier {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.finance-recon-tier--high {
  color: #22c55e;
}

.finance-recon-tier--medium {
  color: #f59e0b;
}

.finance-recon-tier--low {
  color: #6b7280;
}

/* ── Bank Recon V2: Status Badges ── */
.finance-recon-status--unmatched {
  color: #f59e0b;
}

.finance-recon-status--matched {
  color: #22c55e;
}

.finance-recon-status--suggested {
  color: #3b82f6;
}

.finance-recon-status--excluded {
  color: #6b7280;
  font-style: italic;
}

.finance-recon-status--in-recon {
  color: #a78bfa;
}

.finance-recon-status--reconciled {
  color: #22c55e;
}

.finance-recon-tr--excluded {
  opacity: 0.45;
}

.finance-recon-tr--suggested {
  background: rgba(59, 130, 246, 0.04);
}

/* ── Bank Recon V2: Action Buttons ── */
.finance-recon-action-btn {
  background: none;
  border: none;
  cursor: pointer;
  font-size: 12px;
  padding: 2px 5px;
  margin-left: 4px;
  border-radius: 3px;
  opacity: 0.7;
  transition: opacity 0.15s, background 0.15s;
}

.finance-recon-action-btn:hover {
  opacity: 1;
}

.finance-recon-action-btn--unmatch {
  color: #ef4444;
}

.finance-recon-action-btn--unmatch:hover {
  background: rgba(239, 68, 68, 0.1);
}

.finance-recon-action-btn--exclude {
  color: #6b7280;
}

.finance-recon-action-btn--exclude:hover {
  background: rgba(107, 114, 128, 0.1);
}

.finance-recon-action-btn--include {
  color: #3b82f6;
}

.finance-recon-action-btn--include:hover {
  background: rgba(59, 130, 246, 0.1);
}

.finance-recon-actions-cell {
  min-width: 28px;
  text-align: center;
}

/* ── Bank Recon V2: Match Actions Bar ── */
.finance-recon-match-bar {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
  background: rgba(99, 102, 241, 0.06);
  border: 1px solid rgba(99, 102, 241, 0.15);
  border-radius: var(--ui-radius-md);
  margin-bottom: var(--ui-space-3);
}

.finance-recon-match-bar__field {
  flex: 1;
  min-width: 0;
}

.finance-recon-match-bar__label {
  font-size: 10px;
  font-weight: 600;
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 2px;
}

.finance-recon-match-bar__input {
  width: 100%;
  padding: var(--ui-space-1) var(--ui-space-2);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--ui-radius-sm);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  outline: none;
}

.finance-recon-match-bar__input:focus {
  border-color: rgba(99, 102, 241, 0.5);
}

/* ── Bank Recon V2: Import Form ── */
.finance-recon-import-form {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-3);
  align-items: flex-end;
  padding: var(--ui-space-3) 0;
  margin-bottom: var(--ui-space-3);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.finance-recon-import-form__field {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.finance-recon-import-form__label {
  font-size: 10px;
  font-weight: 600;
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.finance-recon-import-form__input {
  padding: var(--ui-space-1) var(--ui-space-2);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--ui-radius-sm);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  outline: none;
  min-width: 140px;
}

.finance-recon-import-form__input:focus {
  border-color: rgba(99, 102, 241, 0.5);
}

/* ── Bank Recon V2: BRS Summary ── */
.finance-recon-brs {
  padding: var(--ui-space-4);
  background: rgba(16, 185, 129, 0.06);
  border: 1px solid rgba(16, 185, 129, 0.15);
  border-radius: var(--ui-radius-md);
  margin-top: var(--ui-space-3);
}

.finance-recon-brs__title {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  margin-bottom: var(--ui-space-2);
}

.finance-recon-brs__row {
  display: flex;
  justify-content: space-between;
  padding: var(--ui-space-1) 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

.finance-recon-brs__row--total {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  margin-top: var(--ui-space-2);
  padding-top: var(--ui-space-2);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.finance-recon-brs__val {
  font-family: var(--ui-font-mono);
}

@media (max-width: 900px) {
  .finance-recon-summary {
    grid-template-columns: repeat(2, 1fr);
  }
  .finance-recon-match-bar {
    flex-wrap: wrap;
  }
  .finance-recon-import-form {
    flex-direction: column;
    align-items: stretch;
  }
}
/* ═══════════════════════════════════════════════════════════════════════════ */
/* Bank Recon V2 — Redesigned UX                                             */
/* ═══════════════════════════════════════════════════════════════════════════ */
/* ── Import Form (Card Style) ── */
.recon-import {
  background: rgba(99, 102, 241, 0.04);
  border: 1px solid rgba(99, 102, 241, 0.12);
  border-radius: var(--ui-radius-md);
  padding: var(--ui-space-4);
  margin-bottom: var(--ui-space-4);
}

.recon-import__header {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin-bottom: var(--ui-space-3);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-primary);
}

.recon-import__icon {
  font-size: 18px;
}

.recon-import__filename {
  font-weight: var(--ui-font-semibold);
}

.recon-import__size {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
}

.recon-import__fields {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: var(--ui-space-3);
  margin-bottom: var(--ui-space-3);
}

.recon-import__field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.recon-import__label {
  font-size: 10px;
  font-weight: 600;
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.recon-import__input {
  padding: var(--ui-space-2) var(--ui-space-3);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--ui-radius-sm);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  outline: none;
  transition: border-color var(--ui-transition-fast);
}

.recon-import__input:focus {
  border-color: rgba(99, 102, 241, 0.5);
}

.recon-import__actions {
  display: flex;
  gap: var(--ui-space-2);
}

/* ── Statement Selector ── */
.recon-selector {
  margin-bottom: var(--ui-space-4);
}

.recon-selector__select {
  width: 100%;
  padding: var(--ui-space-3) var(--ui-space-4);
  background: var(--ui-surface, #1a1e2e);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--ui-radius-md);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  outline: none;
  cursor: pointer;
  transition: border-color var(--ui-transition-fast);
}

.recon-selector__select:focus {
  border-color: var(--ui-border-focus);
}

/* ── Summary Cards ── */
.recon-summary {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--ui-space-3);
  margin-bottom: var(--ui-space-4);
}

.recon-summary__card {
  background: var(--ui-surface, #1a1e2e);
  border-radius: var(--ui-radius-md);
  padding: var(--ui-space-3) var(--ui-space-4);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-left: 3px solid rgba(255, 255, 255, 0.1);
  position: relative;
  overflow: hidden;
}

.recon-summary__card--total {
  border-left-color: #6366f1;
}

.recon-summary__card--matched {
  border-left-color: #22c55e;
}

.recon-summary__card--unmatched {
  border-left-color: #f59e0b;
}

.recon-summary__card--balanced {
  border-left-color: #22c55e;
}

.recon-summary__card--danger {
  border-left-color: #ef4444;
}

.recon-summary__number {
  font-size: 20px;
  font-weight: 600;
  color: var(--ui-text-primary);
  font-family: var(--ui-font-mono);
}

.recon-summary__label {
  font-size: 10px;
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-top: 2px;
}

.recon-summary__bar {
  height: 3px;
  background: rgba(255, 255, 255, 0.06);
  border-radius: 2px;
  margin-top: var(--ui-space-2);
  overflow: hidden;
}

.recon-summary__bar-fill {
  height: 100%;
  background: #22c55e;
  border-radius: 2px;
  transition: width 0.5s ease;
}

/* ── Toolbar ── */
.recon-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--ui-space-3);
  gap: var(--ui-space-3);
  flex-wrap: wrap;
}

.recon-toolbar__left,
.recon-toolbar__right {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

/* ── Filter Tabs ── */
.recon-tabs {
  display: flex;
  gap: 2px;
  background: rgba(255, 255, 255, 0.03);
  border-radius: var(--ui-radius-md);
  padding: 2px;
}

.recon-tab {
  padding: var(--ui-space-1) var(--ui-space-3);
  font-size: var(--ui-text-xs);
  font-weight: 500;
  color: var(--ui-text-muted);
  background: transparent;
  border: none;
  border-radius: var(--ui-radius-sm);
  cursor: pointer;
  transition: all var(--ui-transition-fast);
  display: flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
}

.recon-tab:hover {
  color: var(--ui-text-secondary);
  background: rgba(255, 255, 255, 0.04);
}

.recon-tab--active {
  color: var(--ui-text-primary);
  background: rgba(99, 102, 241, 0.12);
}

.recon-tab__count {
  font-size: 10px;
  font-family: var(--ui-font-mono);
  opacity: 0.7;
}

/* ── Auto Match Results ── */
.recon-match-results {
  display: flex;
  gap: var(--ui-space-4);
  padding: var(--ui-space-2) var(--ui-space-3);
  background: rgba(255, 255, 255, 0.02);
  border-radius: var(--ui-radius-sm);
  margin-bottom: var(--ui-space-3);
  font-size: var(--ui-text-xs);
  font-weight: 600;
}

.recon-match-results__item--high {
  color: #22c55e;
}

.recon-match-results__item--medium {
  color: #f59e0b;
}

.recon-match-results__item--low {
  color: #6b7280;
}

/* ── Guide Banners ── */
.recon-guide {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
  background: rgba(99, 102, 241, 0.04);
  border: 1px solid rgba(99, 102, 241, 0.1);
  border-radius: var(--ui-radius-md);
  margin-bottom: var(--ui-space-3);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

.recon-guide--action {
  background: rgba(245, 158, 11, 0.04);
  border-color: rgba(245, 158, 11, 0.15);
}

.recon-guide__icon {
  font-size: 18px;
  flex-shrink: 0;
}

.recon-guide__text {
  flex: 1;
}

.recon-guide__dismiss {
  background: none;
  border: none;
  color: var(--ui-text-muted);
  cursor: pointer;
  font-size: 14px;
  padding: 4px;
  line-height: 1;
  opacity: 0.6;
  transition: opacity var(--ui-transition-fast);
}

.recon-guide__dismiss:hover {
  opacity: 1;
}

/* ── Match Bar (floating pair preview) ── */
.recon-match-bar {
  background: rgba(99, 102, 241, 0.06);
  border: 1px solid rgba(99, 102, 241, 0.2);
  border-radius: var(--ui-radius-md);
  padding: var(--ui-space-3) var(--ui-space-4);
  margin-bottom: var(--ui-space-3);
}

.recon-match-bar__pair {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  margin-bottom: var(--ui-space-3);
}

.recon-match-bar__side {
  flex: 1;
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-sm);
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.recon-match-bar__side--bank {
  border-left: 3px solid #3b82f6;
}

.recon-match-bar__side--ledger {
  border-left: 3px solid #8b5cf6;
}

.recon-match-bar__side-label {
  font-size: 9px;
  font-weight: 600;
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 2px;
}

.recon-match-bar__side-desc {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.recon-match-bar__side-amt {
  font-size: var(--ui-text-sm);
  font-family: var(--ui-font-mono);
  font-weight: 600;
  color: var(--ui-text-primary);
  margin-top: 2px;
}

.recon-match-bar__arrow {
  font-size: 20px;
  flex-shrink: 0;
  opacity: 0.6;
}

.recon-match-bar__form {
  display: flex;
  gap: var(--ui-space-2);
  align-items: center;
}

.recon-match-bar__input {
  flex: 1;
  padding: var(--ui-space-2) var(--ui-space-3);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--ui-radius-sm);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  outline: none;
}

.recon-match-bar__input:focus {
  border-color: rgba(99, 102, 241, 0.5);
}

/* ── Two-Panel Grid ── */
.recon-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--ui-space-4);
}

@media (max-width: 1100px) {
  .recon-grid {
    grid-template-columns: 1fr;
  }
}
/* ── Panel ── */
.recon-panel {
  min-width: 0; /* prevent overflow in grid */
}

.recon-panel__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--ui-space-2) var(--ui-space-1);
  margin-bottom: var(--ui-space-2);
}

.recon-panel__title {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.recon-panel__count {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  font-family: var(--ui-font-mono);
}

/* ── Column Widths ── */
.recon-col--sel {
  width: 24px;
  max-width: 24px;
}

.recon-col--date {
  width: 44px;
}

.recon-col--desc {
  min-width: 120px;
}

.recon-col--ref {
  width: 56px;
  max-width: 72px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.recon-col--amt {
  width: 72px;
  font-family: var(--ui-font-mono);
}

.recon-col--status {
  width: 72px;
}

.recon-col--action {
  width: 28px;
  text-align: center;
}

.recon-col--match {
  width: 28px;
  text-align: center;
}

/* ── Radio Indicator ── */
.recon-radio {
  display: inline-block;
  width: 14px;
  height: 14px;
  border: 2px solid rgba(255, 255, 255, 0.15);
  border-radius: 50%;
  transition: all var(--ui-transition-fast);
}

.recon-radio--active {
  border-color: #6366f1;
  background: #6366f1;
  box-shadow: inset 0 0 0 2px var(--ui-surface, #1a1e2e);
}

/* ── Row States ── */
.recon-row--selected {
  background: rgba(99, 102, 241, 0.08) !important;
  border-left: 2px solid #6366f1;
}

.recon-row--matched {
  opacity: 0.5;
}

.recon-row--excluded {
  opacity: 0.35;
}

.recon-row--suggested {
  background: rgba(59, 130, 246, 0.04);
}

/* ── Amount Colors ── */
.recon-amt--debit {
  color: var(--ui-text-secondary);
}

.recon-amt--credit {
  color: #22c55e;
}

/* ── Status Pills ── */
.recon-status-pill {
  display: inline-block;
  padding: 1px 8px;
  border-radius: 99px;
  font-size: 9px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.recon-status-pill--unmatched {
  background: rgba(245, 158, 11, 0.12);
  color: #f59e0b;
}

.recon-status-pill--matched {
  background: rgba(34, 197, 94, 0.12);
  color: #22c55e;
}

.recon-status-pill--suggested {
  background: rgba(59, 130, 246, 0.12);
  color: #3b82f6;
}

.recon-status-pill--excluded {
  background: rgba(107, 114, 128, 0.12);
  color: #6b7280;
}

.recon-status-pill--in-recon {
  background: rgba(167, 139, 250, 0.12);
  color: #a78bfa;
}

.recon-status-pill--reconciled {
  background: rgba(34, 197, 94, 0.15);
  color: #22c55e;
}

/* ── Matched Check ── */
.recon-matched-check {
  color: #22c55e;
  font-weight: 700;
}

/* ── Status Badge (toolbar) ── */
.recon-status-badge {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 99px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: rgba(99, 102, 241, 0.1);
  color: #818cf8;
}

/* ── Action Buttons ── */
.recon-action-btn {
  background: none;
  border: none;
  cursor: pointer;
  font-size: 11px;
  padding: 2px 6px;
  border-radius: 3px;
  opacity: 0.6;
  transition: opacity 0.15s, background 0.15s;
  margin-left: 4px;
}

.recon-action-btn:hover {
  opacity: 1;
}

.recon-action-btn--unmatch {
  color: #ef4444;
}

.recon-action-btn--unmatch:hover {
  background: rgba(239, 68, 68, 0.1);
}

.recon-action-btn--exclude {
  color: #6b7280;
}

.recon-action-btn--exclude:hover {
  background: rgba(107, 114, 128, 0.1);
}

.recon-action-btn--include {
  color: #3b82f6;
}

.recon-action-btn--include:hover {
  background: rgba(59, 130, 246, 0.1);
}

/* ── Empty State (inside table) ── */
.recon-empty {
  text-align: center;
  padding: var(--ui-space-6) var(--ui-space-4);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}

/* ── Outline Button ── */
.pill-btn-outline {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-4);
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 99px;
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  cursor: pointer;
  transition: all var(--ui-transition-fast);
}

.pill-btn-outline:hover {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.25);
  color: var(--ui-text-primary);
}

/* ── BRS Report (post-reconciliation) ── */
.recon-brs {
  padding: var(--ui-space-4);
  background: rgba(16, 185, 129, 0.06);
  border: 1px solid rgba(16, 185, 129, 0.15);
  border-radius: var(--ui-radius-md);
  margin-top: var(--ui-space-4);
}

.recon-brs__title {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  margin-bottom: var(--ui-space-3);
}

.recon-brs__row {
  display: flex;
  justify-content: space-between;
  padding: var(--ui-space-1) 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

.recon-brs__row--total {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  margin-top: var(--ui-space-2);
  padding-top: var(--ui-space-2);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.recon-brs__val {
  font-family: var(--ui-font-mono);
}

/* ── BRS Preview Panel ── */
.recon-brs-panel {
  padding: var(--ui-space-5);
  background: var(--ui-glass-light);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  margin-top: var(--ui-space-4);
}

.recon-brs-panel--loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-6);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}

.recon-brs-panel__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--ui-space-3);
}

.recon-brs-panel__title {
  margin: 0;
  font-size: 18px;
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.recon-brs-panel__meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: var(--ui-space-4);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.recon-brs-panel__summary {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--ui-space-5);
  margin-bottom: var(--ui-space-4);
}

.recon-brs-panel__col {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: var(--ui-radius-sm);
  padding: var(--ui-space-4);
}

.recon-brs-panel__col-title {
  margin: 0 0 var(--ui-space-3);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.recon-brs-panel__row {
  display: flex;
  justify-content: space-between;
  padding: var(--ui-space-1) 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

.recon-brs-panel__row--total {
  border-top: 2px solid var(--ui-border);
  padding-top: var(--ui-space-2);
  margin-top: var(--ui-space-1);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.recon-brs-panel__diff {
  text-align: center;
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-sm);
  font-size: 16px;
  font-weight: var(--ui-font-semibold);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-2);
}

.recon-brs-panel__diff--zero {
  background: rgba(34, 197, 94, 0.08);
  color: var(--ui-success);
}

.recon-brs-panel__diff--nonzero {
  background: rgba(239, 68, 68, 0.08);
  color: var(--ui-danger);
}

.recon-brs-panel__counts {
  display: flex;
  gap: var(--ui-space-5);
  justify-content: center;
  margin-top: var(--ui-space-3);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

/* ── BRS Toolbar Buttons ── */
.recon-brs-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: var(--ui-space-1) var(--ui-space-3);
  background: rgba(99, 102, 241, 0.1);
  border: 1px solid rgba(99, 102, 241, 0.2);
  border-radius: var(--ui-radius-sm);
  color: #818cf8;
  font-size: var(--ui-text-xs);
  font-weight: 500;
  cursor: pointer;
  transition: all var(--ui-transition-fast);
  opacity: 1;
}

.recon-brs-btn:hover {
  background: rgba(99, 102, 241, 0.2);
  border-color: rgba(99, 102, 241, 0.35);
}

.recon-brs-btn mat-icon {
  width: 16px;
  height: 16px;
  font-size: 16px;
}

/* ── Create Transaction Button (inline in table) ── */
.recon-action-btn--create {
  color: #6366f1;
}

.recon-action-btn--create:hover {
  background: rgba(99, 102, 241, 0.1);
}

@media (max-width: 1100px) {
  .recon-brs-panel__summary {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 900px) {
  .recon-summary {
    grid-template-columns: repeat(2, 1fr);
  }
  .recon-toolbar {
    flex-direction: column;
    align-items: stretch;
  }
  .recon-match-bar__pair {
    flex-direction: column;
  }
  .recon-match-bar__form {
    flex-wrap: wrap;
  }
  .recon-import__fields {
    grid-template-columns: 1fr;
  }
}
/* ── Bank Reconciliation route refinements ── */
.finance-page--bank-recon {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  padding-top: 0;
}

.finance-page--bank-recon .recon-selector {
  width: 100%;
  margin-bottom: 0;
}

.finance-page--bank-recon .recon-selector__select {
  width: 100%;
  min-height: 38px;
  padding: 0 var(--ui-space-3);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-glass-light);
  border-color: var(--ui-border);
  color: var(--ui-text-primary);
  color-scheme: dark;
  backdrop-filter: var(--ui-blur-sm);
  -webkit-backdrop-filter: var(--ui-blur-sm);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
}

.finance-page--bank-recon .recon-selector__select:hover {
  border-color: var(--ui-border-hover);
  background: var(--ui-surface-hover);
}

.finance-page--bank-recon .recon-selector__select:focus {
  border-color: var(--ui-border-focus);
  background: var(--ui-glass-light);
  box-shadow: 0 0 0 3px var(--ui-surface-2);
}

.finance-page--bank-recon .recon-selector__select option {
  background: var(--ui-surface-base);
  color: var(--ui-text-primary);
}

.finance-page--bank-recon .recon-selector__select,
.finance-page--bank-recon .recon-import__input,
.finance-page--bank-recon .recon-match-bar__input {
  font-family: var(--ui-font-primary);
}

.finance-page--bank-recon .bank-recon-page-header {
  display: grid;
  gap: var(--ui-space-3);
  padding: var(--ui-space-4);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-lg);
  background: var(--ui-surface-1);
}

.finance-page--bank-recon .bank-recon-page-header__main {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-4);
}

.finance-page--bank-recon .bank-recon-page-header__eyebrow {
  margin: 0 0 var(--ui-space-1);
  color: var(--ui-text-subtle);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  letter-spacing: var(--ui-table-header-spacing);
  text-transform: uppercase;
}

.finance-page--bank-recon .bank-recon-page-header__title {
  margin: 0;
  color: var(--ui-text-primary);
  font-family: var(--ui-font-display);
  font-size: var(--ui-text-2xl);
  font-weight: var(--ui-font-bold);
  letter-spacing: 0;
  line-height: 1.15;
}

.finance-page--bank-recon .bank-recon-page-header__subtitle {
  max-width: 680px;
  margin: var(--ui-space-1) 0 0;
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
}

.finance-page--bank-recon .bank-recon-page-header__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ui-space-2);
  flex: 0 0 auto;
}

.finance-page--bank-recon .bank-recon-page-header__file {
  display: none;
}

.finance-page--bank-recon .bank-recon-page-header__actions .ui-btn {
  min-height: 40px;
  padding: 0 var(--ui-space-4);
}

.finance-page--bank-recon .bank-recon-page-header__stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 220px));
  justify-content: start;
  gap: var(--ui-space-2);
}

.finance-page--bank-recon .bank-recon-page-header__stats .stat-card {
  min-width: 0;
  max-width: 220px;
  min-height: 72px;
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-md);
}

.finance-page--bank-recon .bank-recon-page-header__stats .stat-card__header {
  margin-bottom: var(--ui-space-1);
}

.finance-page--bank-recon .bank-recon-page-header__stats .stat-card__icon {
  width: 16px;
  height: 16px;
  font-size: 16px;
}

.finance-page--bank-recon .bank-recon-page-header__stats .stat-card__label {
  font-size: var(--ui-text-xs);
}

.finance-page--bank-recon .bank-recon-page-header__stats .stat-card__value {
  justify-content: flex-start;
  font-family: var(--ui-font-mono);
  min-height: 30px;
  padding: var(--ui-space-1) var(--ui-space-2);
  font-size: var(--ui-text-md);
}

.finance-page--bank-recon .bank-recon-statements {
  display: grid;
  gap: var(--ui-space-4);
  padding: var(--ui-space-4);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-lg);
  background: var(--ui-surface-1);
}

.finance-page--bank-recon .bank-recon-statements__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--ui-space-3);
}

.finance-page--bank-recon .bank-recon-statements__eyebrow {
  margin: 0 0 var(--ui-space-1);
  color: var(--ui-text-subtle);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  letter-spacing: var(--ui-table-header-spacing);
  text-transform: uppercase;
}

.finance-page--bank-recon .bank-recon-statements__title {
  margin: 0;
  color: var(--ui-text-primary);
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-bold);
  letter-spacing: 0;
}

.finance-page--bank-recon .bank-recon-statements__count {
  color: var(--ui-text-muted);
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-sm);
  white-space: nowrap;
}

.finance-page--bank-recon .bank-recon-statements__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--ui-space-3);
}

.finance-page--bank-recon .bank-recon-statement-card {
  position: relative;
  width: 100%;
  min-width: 0;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
  transition: border-color var(--ui-transition-fast), background var(--ui-transition-fast), transform var(--ui-transition-fast);
}

.finance-page--bank-recon .bank-recon-statement-card:hover,
.finance-page--bank-recon .bank-recon-statement-card--active {
  border-color: var(--ui-border-hover);
  background: var(--ui-surface-2);
  transform: translateY(-1px);
}

.finance-page--bank-recon .bank-recon-statement-card__open {
  display: grid;
  grid-template-columns: minmax(220px, 0.95fr) minmax(180px, 0.75fr) minmax(280px, 1fr) minmax(150px, auto);
  grid-template-rows: auto auto;
  gap: var(--ui-space-3);
  align-items: center;
  width: 100%;
  min-height: 144px;
  padding: var(--ui-space-4);
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.finance-page--bank-recon .bank-recon-statement-card__top,
.finance-page--bank-recon .bank-recon-statement-card__meta,
.finance-page--bank-recon .bank-recon-statement-card__amounts,
.finance-page--bank-recon .bank-recon-statement-card__footer,
.finance-page--bank-recon .bank-recon-statement-card__account {
  display: flex;
  align-items: center;
}

.finance-page--bank-recon .bank-recon-statement-card__top {
  grid-column: 1;
  grid-row: 1/span 2;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-2);
  min-width: 0;
}

.finance-page--bank-recon .bank-recon-statement-card__account {
  gap: var(--ui-space-2);
  min-width: 0;
  color: var(--ui-text-primary);
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
}

.finance-page--bank-recon .bank-recon-statement-card__account span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.finance-page--bank-recon .bank-recon-statement-card__account mat-icon {
  width: 18px;
  height: 18px;
  color: var(--ui-info);
  font-size: 18px;
  flex: 0 0 auto;
}

.finance-page--bank-recon .bank-recon-statement-card__date {
  grid-column: 2;
  grid-row: 1;
  color: var(--ui-text-primary);
  font-size: var(--ui-text-2xl);
  font-weight: var(--ui-font-bold);
  letter-spacing: 0;
}

.finance-page--bank-recon .bank-recon-statement-card__meta {
  grid-column: 2;
  grid-row: 2;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}

.finance-page--bank-recon .bank-recon-statement-card__meta span:not(:last-child)::after {
  content: "·";
  margin-left: var(--ui-space-2);
  color: var(--ui-text-subtle);
}

.finance-page--bank-recon .bank-recon-statement-card__amounts {
  grid-column: 3;
  grid-row: 1/span 2;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-2);
}

.finance-page--bank-recon .bank-recon-statement-card__amounts span {
  display: grid;
  gap: var(--ui-space-1);
  min-width: 0;
  padding: var(--ui-space-2);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface-1);
}

.finance-page--bank-recon .bank-recon-statement-card__amounts small {
  color: var(--ui-text-subtle);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.finance-page--bank-recon .bank-recon-statement-card__amounts strong {
  overflow: hidden;
  color: var(--ui-text-secondary);
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.finance-page--bank-recon .bank-recon-statement-card__footer {
  grid-column: 4;
  grid-row: 1/span 2;
  gap: var(--ui-space-2);
  justify-content: space-between;
  color: var(--ui-info);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
}

.finance-page--bank-recon .bank-recon-statement-card__footer mat-icon {
  width: 16px;
  height: 16px;
  font-size: 16px;
}

.finance-page--bank-recon .bank-recon-statement-card__delete {
  position: absolute;
  right: var(--ui-space-2);
  bottom: var(--ui-space-2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: 1px solid var(--ui-danger-border);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-danger-bg);
  color: var(--ui-danger);
  cursor: pointer;
  opacity: 0.72;
  transition: opacity var(--ui-transition-fast), background var(--ui-transition-fast);
}

.finance-page--bank-recon .bank-recon-statement-card:hover .bank-recon-statement-card__delete,
.finance-page--bank-recon .bank-recon-statement-card__delete:focus-visible {
  opacity: 1;
}

.finance-page--bank-recon .bank-recon-statement-card__delete mat-icon {
  width: 16px;
  height: 16px;
  font-size: 16px;
}

@media (max-width: 1180px) {
  .finance-page--bank-recon .bank-recon-page-header__stats {
    grid-template-columns: repeat(2, minmax(150px, 220px));
  }
  .finance-page--bank-recon .bank-recon-statement-card__open {
    grid-template-columns: minmax(220px, 1fr) minmax(240px, 1fr);
  }
  .finance-page--bank-recon .bank-recon-statement-card__top {
    grid-column: 1;
    grid-row: 1;
  }
  .finance-page--bank-recon .bank-recon-statement-card__date {
    grid-column: 2;
    grid-row: 1;
  }
  .finance-page--bank-recon .bank-recon-statement-card__meta {
    grid-column: 1;
    grid-row: 2;
  }
  .finance-page--bank-recon .bank-recon-statement-card__amounts {
    grid-column: 2;
    grid-row: 2/span 2;
  }
  .finance-page--bank-recon .bank-recon-statement-card__footer {
    grid-column: 1;
    grid-row: 3;
    justify-content: flex-start;
  }
}
@media (max-width: 760px) {
  .finance-page--bank-recon .bank-recon-page-header,
  .finance-page--bank-recon .bank-recon-statements {
    padding: var(--ui-space-4);
  }
  .finance-page--bank-recon .bank-recon-page-header__main,
  .finance-page--bank-recon .bank-recon-statements__header {
    flex-direction: column;
    align-items: stretch;
  }
  .finance-page--bank-recon .bank-recon-page-header__actions {
    justify-content: flex-start;
  }
  .finance-page--bank-recon .bank-recon-page-header__stats {
    grid-template-columns: minmax(0, 1fr);
  }
  .finance-page--bank-recon .bank-recon-page-header__stats .stat-card {
    max-width: none;
  }
  .finance-page--bank-recon .bank-recon-statement-card__open {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
  }
  .finance-page--bank-recon .bank-recon-statement-card__top,
  .finance-page--bank-recon .bank-recon-statement-card__date,
  .finance-page--bank-recon .bank-recon-statement-card__meta,
  .finance-page--bank-recon .bank-recon-statement-card__amounts,
  .finance-page--bank-recon .bank-recon-statement-card__footer {
    grid-column: 1;
    grid-row: auto;
  }
  .finance-page--bank-recon .bank-recon-statement-card__top {
    flex-direction: row;
    align-items: center;
  }
}
.finance-page--bank-recon .bank-recon-statement-strip {
  display: grid;
  grid-template-columns: minmax(320px, 1fr) auto;
  align-items: end;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
}

.finance-page--bank-recon .bank-recon-statement-strip__select {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  min-width: 0;
}

.finance-page--bank-recon .bank-recon-statement-strip__label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-subtle);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.finance-page--bank-recon .bank-recon-statement-strip__meta {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ui-space-2);
  min-width: 0;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  white-space: nowrap;
}

.finance-page--bank-recon .bank-recon-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(140px, 1fr));
  gap: var(--ui-space-2);
  overflow: visible;
}

.finance-page--bank-recon .bank-recon-kpis .stat-card {
  min-width: 0;
  max-width: none;
  min-height: 66px;
  border-radius: var(--ui-radius-sm);
  padding: var(--ui-space-2) var(--ui-space-3);
}

.finance-page--bank-recon .bank-recon-kpis .stat-card__header {
  margin-bottom: var(--ui-space-1);
}

.finance-page--bank-recon .bank-recon-kpis .stat-card__icon {
  width: 16px;
  height: 16px;
  font-size: 16px;
}

.finance-page--bank-recon .bank-recon-kpis .stat-card__label {
  font-size: var(--ui-text-xs);
}

.finance-page--bank-recon .bank-recon-kpis .stat-card__value {
  font-family: var(--ui-font-mono);
  justify-content: flex-start;
  font-size: var(--ui-text-md);
  min-height: 26px;
  padding: var(--ui-space-1) var(--ui-space-2);
}

.finance-page--bank-recon .recon-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-2);
  padding: var(--ui-space-1) 0 0;
  margin-bottom: 0;
  flex-wrap: wrap;
}

.finance-page--bank-recon .recon-toolbar__left,
.finance-page--bank-recon .recon-toolbar__right {
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
  min-width: 0;
}

.finance-page--bank-recon .recon-toolbar__left {
  flex: 1 1 420px;
  order: 1;
}

.finance-page--bank-recon .recon-toolbar__right {
  flex: 1 1 620px;
  justify-content: flex-end;
  flex-wrap: wrap;
  order: 2;
}

.finance-page--bank-recon .bank-recon-status-tabs {
  max-width: 100%;
  overflow-x: auto;
  margin-right: 0;
}

.finance-page--bank-recon .bank-recon-action,
.finance-page--bank-recon .bank-recon-icon-action {
  color: var(--ui-text-secondary);
  border-color: var(--ui-border);
  background: var(--ui-surface-1);
}

.finance-page--bank-recon .bank-recon-action {
  height: 32px;
  padding: 0 var(--ui-space-3);
}

.finance-page--bank-recon .bank-recon-primary-action {
  height: 34px;
  padding: 0 var(--ui-space-4);
}

.finance-page--bank-recon .bank-recon-action:hover:not(:disabled),
.finance-page--bank-recon .bank-recon-icon-action:hover:not(:disabled),
.finance-page--bank-recon .bank-recon-icon-action--active {
  color: var(--ui-text-primary);
  border-color: var(--ui-border-hover);
  background: var(--ui-surface-3);
}

.finance-page--bank-recon .bank-recon-action--brs {
  color: var(--ui-info);
  border-color: var(--ui-info-border);
  background: var(--ui-info-bg);
}

.finance-page--bank-recon .bank-recon-action--forex {
  color: var(--ui-success);
  border-color: var(--ui-success-border);
  background: var(--ui-success-bg);
}

.finance-page--bank-recon .recon-status-badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  background: var(--ui-info-bg);
  color: var(--ui-info);
  border: 1px solid var(--ui-info-border);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  letter-spacing: 0;
}

.finance-page--bank-recon .recon-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-1);
  min-width: 28px;
  min-height: 28px;
  padding: 0 var(--ui-space-2);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface-1);
  color: var(--ui-text-muted);
  opacity: 1;
  margin-left: 0;
}

.finance-page--bank-recon .recon-action-btn:hover:not(:disabled) {
  background: var(--ui-surface-3);
  border-color: var(--ui-border-hover);
  color: var(--ui-text-primary);
}

.finance-page--bank-recon .recon-action-btn mat-icon {
  width: 16px;
  height: 16px;
  font-size: 16px;
}

.finance-page--bank-recon .recon-match-results {
  margin-bottom: 0;
}

.finance-page--bank-recon .recon-match-results__item--high {
  color: var(--ui-success);
}

.finance-page--bank-recon .recon-match-results__item--medium {
  color: var(--ui-warning);
}

.finance-page--bank-recon .recon-match-results__item--low {
  color: var(--ui-text-muted);
}

.finance-page--bank-recon .recon-guide {
  margin-bottom: 0;
}

.finance-page--bank-recon .recon-guide__icon {
  width: 18px;
  height: 18px;
  font-size: 18px;
  color: var(--ui-warning);
}

.finance-page--bank-recon .recon-match-bar {
  margin-bottom: 0;
}

.finance-page--bank-recon .recon-match-bar__arrow {
  width: 22px;
  height: 22px;
  font-size: 22px;
  color: var(--ui-info);
}

.finance-page--bank-recon .recon-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 0.92fr);
  gap: var(--ui-space-3);
  align-items: start;
}

.finance-page--bank-recon .recon-panel .glass-table-card {
  max-height: calc(100vh - 300px);
  min-height: 260px;
  border-radius: var(--ui-radius-md);
  overflow: hidden;
}

.finance-page--bank-recon .recon-panel .glass-table {
  min-width: 720px;
}

.finance-page--bank-recon .recon-panel .recon-table--bank-lines {
  min-width: 860px;
}

.finance-page--bank-recon .recon-panel .glass-table th {
  padding: var(--ui-space-3) var(--ui-space-2);
  font-size: var(--ui-text-xs);
  letter-spacing: 0.08em;
}

.finance-page--bank-recon .recon-panel .glass-table th:first-child {
  padding-left: var(--ui-space-3);
}

.finance-page--bank-recon .recon-panel .glass-table th:last-child {
  padding-right: var(--ui-space-3);
}

.finance-page--bank-recon .recon-panel .glass-table td {
  padding: var(--ui-space-2) var(--ui-space-2);
  font-size: var(--ui-text-sm);
  line-height: 1.35;
  color: var(--ui-text-secondary);
}

.finance-page--bank-recon .recon-panel .glass-table td:first-child {
  padding-left: var(--ui-space-3);
}

.finance-page--bank-recon .recon-panel .glass-table td:last-child {
  padding-right: var(--ui-space-3);
}

.finance-page--bank-recon .recon-table--bank-lines .recon-col--desc,
.finance-page--bank-recon .recon-table--ledger .recon-col--desc {
  font-size: var(--ui-text-sm);
}

.finance-page--bank-recon .recon-table--bank-lines .recon-col--sel {
  width: 42px;
  max-width: none;
}

.finance-page--bank-recon .recon-table--bank-lines .recon-col--date {
  width: 74px;
}

.finance-page--bank-recon .recon-table--bank-lines .recon-col--desc {
  width: auto;
}

.finance-page--bank-recon .recon-table--bank-lines .recon-col--ref {
  width: 92px;
  max-width: none;
}

.finance-page--bank-recon .recon-table--bank-lines .recon-col--amt {
  width: 104px;
}

.finance-page--bank-recon .recon-table--bank-lines .recon-col--status {
  width: 122px;
}

.finance-page--bank-recon .recon-table--bank-lines .recon-col--action {
  width: 152px;
  min-width: 152px;
  max-width: 152px;
  text-align: right;
}

.finance-page--bank-recon .recon-table--bank-lines th.recon-col--action,
.finance-page--bank-recon .recon-table--bank-lines td.recon-col--action {
  position: sticky;
  right: 0;
  z-index: 3;
  background: var(--ui-surface-1);
  box-shadow: -12px 0 18px rgba(0, 0, 0, 0.18);
}

.finance-page--bank-recon .recon-table--bank-lines th.recon-col--action {
  z-index: 4;
  background: var(--ui-surface-2);
}

.finance-page--bank-recon .recon-row-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ui-space-1);
  width: 100%;
  white-space: nowrap;
}

.finance-page--bank-recon .recon-row-action {
  flex: 0 0 auto;
}

.finance-page--bank-recon .recon-row-action--ai {
  color: var(--ui-table-accent-light);
}

.finance-page--bank-recon .recon-panel .recon-table--ledger {
  min-width: 0;
}

.finance-page--bank-recon .recon-table--ledger .recon-col--sel {
  width: 4%;
  max-width: none;
}

.finance-page--bank-recon .recon-table--ledger .recon-col--date {
  width: 8%;
}

.finance-page--bank-recon .recon-table--ledger .recon-col--ref {
  width: 6%;
  max-width: none;
}

.finance-page--bank-recon .recon-table--ledger .recon-col--desc {
  width: 38%;
}

.finance-page--bank-recon .recon-table--ledger .recon-col--amt {
  width: 16%;
}

.finance-page--bank-recon .recon-table--ledger .recon-col--match {
  width: 12%;
}

.finance-page--bank-recon .recon-panel .glass-table tbody {
  max-height: calc(100vh - 360px);
  min-height: 194px;
}

.finance-page--bank-recon .glass-table__th--right,
.finance-page--bank-recon .glass-table__td--right {
  text-align: right;
}

.finance-page--bank-recon .recon-matched-check {
  width: 18px;
  height: 18px;
  font-size: 18px;
  color: var(--ui-success);
}

.finance-page--bank-recon .finance-placeholder__icon {
  width: 48px;
  height: 48px;
  font-size: 48px;
}

@media (max-width: 1100px) {
  .finance-page--bank-recon .bank-recon-statement-strip {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .finance-page--bank-recon .bank-recon-statement-strip__meta {
    justify-content: flex-start;
    flex-wrap: wrap;
    white-space: normal;
  }
  .finance-page--bank-recon .bank-recon-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .finance-page--bank-recon .recon-toolbar__right {
    width: 100%;
    margin-left: 0;
    justify-content: flex-start;
    flex-wrap: wrap;
  }
  .finance-page--bank-recon .recon-grid {
    grid-template-columns: 1fr;
  }
  .finance-page--bank-recon .recon-panel .glass-table-card,
  .finance-page--bank-recon .recon-panel .glass-table tbody {
    max-height: none;
  }
}
@media (max-width: 640px) {
  .finance-page--bank-recon .bank-recon-kpis {
    grid-template-columns: 1fr;
  }
  .finance-page--bank-recon .recon-match-bar__form {
    flex-direction: column;
    align-items: stretch;
  }
}
/* ── G6: Partial Matching UI ── */
.recon-partial-badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 600;
  color: #3b82f6;
  background: rgba(59, 130, 246, 0.1);
  padding: 1px 6px;
  border-radius: 8px;
  margin-left: 4px;
  white-space: nowrap;
}

.recon-partial-progress {
  width: 100%;
  height: 3px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 2px;
  margin-top: 3px;
  overflow: hidden;
}

.recon-partial-progress__bar {
  height: 100%;
  background: linear-gradient(90deg, #3b82f6, #60a5fa);
  border-radius: 2px;
  transition: width 0.3s ease;
  min-width: 2px;
}

.recon-match-bar__outstanding {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
  margin-top: 2px;
}

.recon-match-bar__field {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 120px;
}

.recon-match-bar__label {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.5);
}

.recon-match-bar__input--amount {
  max-width: 140px;
  font-family: var(--ui-font-mono);
}

.recon-match-bar__hint {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.4);
}

.recon-tab__count--suggested {
  background: rgba(245, 158, 11, 0.2);
  color: #f59e0b;
  animation: recon-pulse 2s ease-in-out infinite;
}

@keyframes recon-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.6;
  }
}
/* ── G8: Suggested Match Review Panel ── */
.recon-suggested-panel {
  margin-top: 16px;
  padding: 16px;
  background: rgba(59, 130, 246, 0.04);
  border: 1px solid rgba(59, 130, 246, 0.15);
  border-radius: 12px;
}

.recon-suggested-panel__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

.recon-suggested-panel__title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
  margin: 0;
}
.recon-suggested-panel__title mat-icon {
  color: #f59e0b;
  font-size: 20px;
  width: 20px;
  height: 20px;
}

.recon-suggested-panel__list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.recon-suggested-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 8px;
  transition: border-color 0.2s ease, background 0.2s ease;
}
.recon-suggested-card:hover {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.12);
}

.recon-suggested-card--high {
  border-left: 3px solid #22c55e;
}

.recon-suggested-card--medium {
  border-left: 3px solid #f59e0b;
}

.recon-suggested-card__header {
  display: flex;
  align-items: center;
  gap: 8px;
}

.recon-confidence-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 10px;
  letter-spacing: 0.02em;
}

.recon-confidence-badge--high {
  background: rgba(34, 197, 94, 0.15);
  color: #22c55e;
}

.recon-confidence-badge--medium {
  background: rgba(245, 158, 11, 0.15);
  color: #f59e0b;
}

.recon-suggested-card__type {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: rgba(255, 255, 255, 0.4);
}

.recon-suggested-card__body {
  display: flex;
  align-items: center;
  gap: 12px;
}

.recon-suggested-card__side {
  flex: 1;
  min-width: 0;
}

.recon-suggested-card__label {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.45);
  margin-bottom: 2px;
}

.recon-suggested-card__date {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.6);
}

.recon-suggested-card__desc {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.8);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.recon-suggested-card__amt {
  font-size: 14px;
  font-weight: 600;
  font-family: var(--ui-font-mono);
  color: rgba(255, 255, 255, 0.9);
  margin-top: 2px;
}

.recon-suggested-card__arrow {
  color: rgba(255, 255, 255, 0.25);
  flex-shrink: 0;
}

.recon-suggested-card__actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  padding-top: 4px;
  border-top: 1px solid rgba(255, 255, 255, 0.04);
}

.recon-suggested-panel__title-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.recon-suggested-card__side-label {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.45);
  margin-bottom: 2px;
}

.recon-suggested-card__link {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 8px;
  color: rgba(255, 255, 255, 0.25);
  flex-shrink: 0;
}

.recon-suggested-card__confidence {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px 0;
}

.recon-confidence-tier {
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.5);
}

.recon-confidence-badge--low {
  background: rgba(107, 114, 128, 0.15);
  color: #9ca3af;
}

.recon-suggested-card--processing {
  opacity: 0.5;
  pointer-events: none;
}

.recon-suggested-empty {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 16px;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  background: rgba(255, 255, 255, 0.02);
  border: 1px dashed rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  margin-top: 8px;
}
.recon-suggested-empty mat-icon {
  color: rgba(255, 255, 255, 0.3);
  font-size: 20px;
  width: 20px;
  height: 20px;
}

@media (min-width: 768px) {
  .recon-suggested-card {
    flex-direction: row;
    align-items: center;
  }
  .recon-suggested-card__side {
    flex: 1;
  }
  .recon-suggested-card__actions {
    border-top: none;
    padding-top: 0;
    flex-shrink: 0;
  }
}
/* ── G12: Credit Card Reconciliation ── */
.recon-cc-summary {
  display: flex;
  gap: 20px;
  padding: 12px 16px;
  background: rgba(124, 77, 255, 0.06);
  border: 1px solid rgba(124, 77, 255, 0.12);
  border-radius: 10px;
  margin-bottom: 4px;
}

.recon-cc-summary__item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.recon-cc-summary__label {
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.recon-cc-summary__value {
  font-size: 16px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
  font-family: var(--ui-font-mono);
}

.recon-cc-summary__value--danger {
  color: #ef5350;
}

.recon-cc-indicator {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: #7c4dff;
  font-weight: 500;
  margin-left: 6px;
}

.recon-cc-indicator mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.recon-cc-pay-btn {
  background: rgba(124, 77, 255, 0.15);
  color: #b388ff;
  border: 1px solid rgba(124, 77, 255, 0.3);
}
.recon-cc-pay-btn:hover {
  background: rgba(124, 77, 255, 0.25);
  border-color: rgba(124, 77, 255, 0.5);
}
.recon-cc-pay-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* ── G14: Forex Reconciliation ── */
.recon-forex-summary {
  display: flex;
  gap: 20px;
  padding: 12px 16px;
  background: rgba(16, 185, 129, 0.06);
  border: 1px solid rgba(16, 185, 129, 0.12);
  border-radius: 10px;
  margin-bottom: 4px;
}

.recon-forex-summary__item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.recon-forex-summary__label {
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.recon-forex-summary__value {
  font-size: 16px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
  font-family: var(--ui-font-mono);
}

.recon-forex-summary__value--currency {
  color: #10b981;
}

.recon-forex-summary__value--gain {
  color: #22c55e;
}

.recon-forex-summary__value--loss {
  color: #ef5350;
}

/* Forex dual-amount sub-line (shows FCY amount under INR) */
.recon-forex-sub {
  font-size: 10px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.4);
  font-family: var(--ui-font-mono);
  margin-top: 1px;
  letter-spacing: 0.02em;
}

/* Forex revalue button */
.recon-action-btn--forex {
  color: #10b981;
}
.recon-action-btn--forex:hover {
  background: rgba(16, 185, 129, 0.1);
}

@media (max-width: 640px) {
  .recon-forex-summary {
    flex-direction: column;
    gap: 12px;
  }
}
/* Glass Panel (shared) */
.finance-panel {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--ui-radius-md);
  backdrop-filter: blur(10px);
  overflow: hidden;
}

/* Form Layout (for create/edit forms inside panels) */
.fmodal-form {
  padding: var(--ui-space-4);
}

.fmodal-form__row {
  display: flex;
  gap: var(--ui-space-3);
  margin-bottom: var(--ui-space-3);
}

.fmodal-form__row > .fmodal-form__field {
  flex: 1;
}

.fmodal-form__label {
  display: block;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: var(--ui-space-1);
}

.fmodal-form__input {
  width: 100%;
  padding: var(--ui-space-2) var(--ui-space-3);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--ui-radius-sm);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  outline: none;
  transition: border-color var(--ui-transition-fast);
}

.fmodal-form__input:focus {
  border-color: rgba(99, 102, 241, 0.5);
}

.fmodal-form__input::placeholder {
  color: var(--ui-text-subtle);
}

/* Dimension Type/Value Rows */
.fdim-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--ui-space-3) var(--ui-space-4);
  cursor: pointer;
  transition: background var(--ui-transition-fast);
  border-bottom: 1px solid rgba(255, 255, 255, 0.03);
}

.fdim-row:hover {
  background: rgba(255, 255, 255, 0.03);
}

.fdim-row--active {
  background: rgba(99, 102, 241, 0.08);
  border-left: 3px solid #6366f1;
}

.fdim-row__info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.fdim-row__name {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-primary);
}

.fdim-row__code {
  font-size: 11px;
  color: var(--ui-text-subtle);
  font-family: var(--ui-font-mono);
}

.fdim-row__count {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.fdim-val-row {
  display: flex;
  justify-content: space-between;
  padding: var(--ui-space-2) var(--ui-space-4);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  border-bottom: 1px solid rgba(255, 255, 255, 0.03);
}

.fdim-val-row__code {
  font-family: var(--ui-font-mono);
  font-size: 11px;
  color: var(--ui-text-subtle);
}

/* Placeholder (empty state) */
.finance-placeholder {
  text-align: center;
  padding: var(--ui-space-8) var(--ui-space-4);
}

.finance-placeholder__icon {
  font-size: 48px;
  margin-bottom: var(--ui-space-3);
}

.finance-placeholder__title {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  margin-bottom: var(--ui-space-2);
}

.finance-placeholder__description {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  max-width: 400px;
  margin: 0 auto;
}

/* ═══ Phase 3 — Enterprise Controls ═══ */
/* Financial Close Checklist */
.fchecklist {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.fchecklist__item {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: var(--ui-radius-sm);
  cursor: pointer;
  transition: all var(--ui-transition-fast);
}

.fchecklist__item:hover {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.1);
}

.fchecklist__item--done {
  opacity: 0.7;
}

.fchecklist__icon {
  font-size: 20px;
  flex-shrink: 0;
}

.fchecklist__info {
  flex: 1;
  min-width: 0;
}

.fchecklist__title {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.fchecklist__desc {
  font-size: 11px;
  color: var(--ui-text-subtle);
  margin-top: 2px;
}

.fchecklist__status {
  flex-shrink: 0;
}

.fchecklist__pill {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 99px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.fchecklist__pill--done {
  background: rgba(16, 185, 129, 0.15);
  color: #10b981;
}

.fchecklist__pill--pending {
  background: rgba(245, 158, 11, 0.15);
  color: #f59e0b;
}

.fchecklist__arrow {
  color: var(--ui-text-subtle);
  font-size: 14px;
  opacity: 0.4;
}

/* Activity Stream */
.fact-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  cursor: pointer;
  transition: background var(--ui-transition-fast);
}

.fact-row:hover {
  background: rgba(255, 255, 255, 0.03);
}

.fact-row:last-child {
  border-bottom: none;
}

.fact-row__icon {
  font-size: 20px;
  flex-shrink: 0;
  width: 32px;
  text-align: center;
}

.fact-row__content {
  flex: 1;
  min-width: 0;
}

.fact-row__title {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.fact-row__meta {
  font-size: 11px;
  color: var(--ui-text-subtle);
  margin-top: 2px;
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.fact-row__tag {
  background: rgba(255, 255, 255, 0.06);
  padding: 1px 6px;
  border-radius: 3px;
  font-size: 10px;
}

.fact-row__amount {
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  white-space: nowrap;
}

.fact-row__amount--credit {
  color: #10b981;
}

.fact-row__amount--debit {
  color: #f59e0b;
}

/* ═══ Cancelled Invoice Row — Job Invoices List ═══ */
.invoice-row--cancelled {
  background: rgba(239, 68, 68, 0.04) !important;
  opacity: 0.72;
  transition: opacity var(--ui-transition-fast), background var(--ui-transition-fast);
}

.invoice-row--cancelled:hover {
  opacity: 0.9;
  background: rgba(239, 68, 68, 0.08) !important;
}

.invoice-row--cancelled .revenue-amount,
.invoice-row--cancelled .cell-primary-name,
.invoice-row--cancelled .cell-primary-sub {
  color: var(--ui-text-muted);
}

.cancelled-text s {
  text-decoration-color: rgba(239, 68, 68, 0.7);
  color: var(--ui-text-muted);
}

/* ═══ Status Filter Toggle Pills — Invoice List Filter Bar ═══ */
.status-filter-pills {
  display: flex;
  align-items: center;
  gap: 4px;
}

/* ═══ Status Filter Select — Invoice List ═══ */
.status-select {
  appearance: none;
  -webkit-appearance: none;
  background: rgba(255, 255, 255, 0.05) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") no-repeat right 10px center;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--ui-radius-sm);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  font-family: inherit;
  padding: 6px 30px 6px 12px;
  cursor: pointer;
  outline: none;
  transition: border-color var(--ui-transition-fast), color var(--ui-transition-fast);
  min-width: 130px;
}

.status-select:hover {
  border-color: rgba(255, 255, 255, 0.2);
  color: var(--ui-text-primary);
}

.status-select:focus {
  border-color: rgba(255, 255, 255, 0.25);
  color: var(--ui-text-primary);
}

.status-select option {
  background: #1e1e2e;
  color: var(--ui-text-primary);
}

/* ═══ Date-Filtered Results Count — Invoice Filter Bar ═══ */
.invoices-filter-count {
  min-height: 32px;
  margin-left: 8px;
  padding-inline: 10px;
  border-color: rgba(255, 160, 120, 0.18);
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.76);
}

.invoices-filter-count__icon {
  width: 14px;
  height: 14px;
  font-size: 14px;
  color: rgba(255, 170, 135, 0.88);
}

/* ═══ Expenses List Table ═══ */
/*
 * Column order (8 cols):
 *   1 = Checkbox   2 = Expense   3 = Payee
 *   4 = Source     5 = Added By  6 = Amount
 *   7 = Description  8 = Status
 */
/* Tighten vertical gap between stats-header and table card */
.expenses-shell {
  gap: 12px;
}

/* Checkbox — enough room for mat-checkbox without overlapping */
.expenses-shell .glass-table th:nth-child(1),
.expenses-shell .glass-table td:nth-child(1) {
  width: 44px;
  min-width: 44px;
  max-width: 44px;
}

/* Expense (code + date) */
.expenses-shell .glass-table th:nth-child(2),
.expenses-shell .glass-table td:nth-child(2) {
  width: 150px;
  min-width: 130px;
}

/* Payee (avatar + name) — widest column */
.expenses-shell .glass-table th:nth-child(3),
.expenses-shell .glass-table td:nth-child(3) {
  width: 240px;
  min-width: 180px;
}

/* Source (type pill + category) */
.expenses-shell .glass-table th:nth-child(4),
.expenses-shell .glass-table td:nth-child(4) {
  width: 120px;
  min-width: 100px;
}

/* Added By */
.expenses-shell .glass-table th:nth-child(5),
.expenses-shell .glass-table td:nth-child(5) {
  width: 150px;
  min-width: 120px;
}

/* Amount */
.expenses-shell .glass-table th:nth-child(6),
.expenses-shell .glass-table td:nth-child(6) {
  width: 110px;
  min-width: 90px;
}

/* Description — takes remaining space */
.expenses-shell .glass-table th:nth-child(7),
.expenses-shell .glass-table td:nth-child(7) {
  width: auto;
}

/* Status */
.expenses-shell .glass-table th:nth-child(8),
.expenses-shell .glass-table td:nth-child(8) {
  width: 120px;
  min-width: 110px;
}

.expenses-shell__skeleton-checkbox {
  width: 18px;
  height: 18px;
  border-radius: var(--ui-radius-sm);
}

/*
 * Fix thead/tbody column misalignment.
 * tbody has display:block + overflow-y:auto, creating a 6px scrollbar.
 * thead has display:table with no scrollbar → its rows are 6px wider.
 * Fix: pad the thead row to match the scrollbar gap.
 */
.expenses-shell .glass-table thead tr {
  padding-right: 6px;
}

/* Ensure horizontal scroll on narrow viewports */
.expenses-shell .glass-table-scroll {
  overflow-x: auto;
}

/* ═══ Purchase Bills List ═══ */
.bill-page__subtitle-skeleton {
  width: 90px;
  height: 12px;
  display: inline-block;
  vertical-align: middle;
}

.bill-page__tab-slider--purchase {
  transform: translateX(0);
}

.bill-page__pagination-skeleton-info {
  width: 140px;
  height: 12px;
  display: inline-block;
}

.bill-page__pagination-skeleton-page {
  width: 100px;
  height: 12px;
  display: inline-block;
}

/* ── Bill List: Items Count Badge ── */
.items-count-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 22px;
  padding: 0 6px;
  border-radius: 6px;
  background: rgba(255, 140, 100, 0.1);
  color: rgba(255, 160, 100, 0.85);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
}

/* ── Bill List: Overdue Indicator ── */
.overdue-text {
  color: #f87171 !important;
}

.overdue-badge {
  display: block;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #ef4444;
  margin-top: 2px;
  animation: overduePulse 2s ease-in-out infinite;
}

@keyframes overduePulse {
  0%, 100% {
    opacity: 0.7;
  }
  50% {
    opacity: 1;
  }
}
/* ── Bill List: Payment Mini Progress Bar ── */
.payment-mini-bar {
  width: 100%;
  height: 3px;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.06);
  margin-top: 4px;
  overflow: hidden;
}

.payment-mini-bar__fill {
  height: 100%;
  border-radius: 2px;
  transition: width 0.4s ease;
  background: rgba(255, 200, 100, 0.3);
}

.payment-mini-bar__fill.full {
  background: rgba(74, 222, 128, 0.6);
}

.payment-mini-bar__fill.partial {
  background: rgba(255, 200, 100, 0.5);
}

/* ── Bill List: Lock Icon ── */
.bill-status-cell {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}

.bill-status-cell__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.bill-lifecycle-pill {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  white-space: nowrap;
  border: 1px solid transparent;
}
.bill-lifecycle-pill--success {
  background: rgba(16, 185, 129, 0.12);
  color: #10b981;
  border-color: rgba(16, 185, 129, 0.22);
}
.bill-lifecycle-pill--warning {
  background: rgba(245, 158, 11, 0.12);
  color: #f59e0b;
  border-color: rgba(245, 158, 11, 0.22);
}
.bill-lifecycle-pill--muted {
  background: rgba(148, 163, 184, 0.12);
  color: rgba(226, 232, 240, 0.72);
  border-color: rgba(148, 163, 184, 0.18);
}

/* ── Bill Status Tooltip (Material override) ── */
.bill-status-tooltip.mat-mdc-tooltip {
  background: rgba(15, 15, 25, 0.97);
  backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  font-size: 11.5px;
  font-family: var(--ui-font-primary);
  font-weight: 500;
  color: rgba(226, 232, 240, 0.92);
  padding: 7px 12px;
  max-width: 280px;
  line-height: 1.5;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
  white-space: pre-line;
}

/* ── Stacked Amount Cell (merged Total + Paid) ── */
.amount-stacked {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
}

.amount-stacked__paid {
  font-size: 11px;
  color: var(--ui-text-muted);
  font-weight: 500;
  letter-spacing: 0.02em;
}
.amount-stacked__paid.zero {
  opacity: 0.4;
}
.amount-stacked__paid.full {
  color: #10b981;
}

.bill-lock-icon {
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
  color: rgba(255, 160, 100, 0.6);
  flex-shrink: 0;
}

/* ==========================================================================
   ADJUSTMENTS (Credit/Debit Notes) — Page-Level UI Contract
   ==========================================================================
   Uses: stat-cards, pill-tabs, glass-table, finance-panel, fmodal-form
   ========================================================================== */
/* ═══ Filters ═══ */
.adj-filters {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 24px;
  flex-wrap: wrap;
}

.adj-filters__search {
  flex: 0 1 280px;
}

.adj-filters__create {
  margin-left: auto;
}

/* ═══ Type Badge ═══ */
.adj-type-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  border-radius: 99px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.adj-type-badge--credit {
  background: rgba(16, 185, 129, 0.15);
  color: #10b981;
}

.adj-type-badge--debit {
  background: rgba(239, 68, 68, 0.15);
  color: #ef4444;
}

/* ═══ Status Pill ═══ */
.adj-status-pill {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 99px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.adj-status-pill--issued {
  background: rgba(16, 185, 129, 0.15);
  color: #10b981;
}

.adj-status-pill--draft {
  background: rgba(245, 158, 11, 0.15);
  color: #f59e0b;
}

.adj-status-pill--cancelled {
  background: rgba(148, 163, 184, 0.12);
  color: rgba(148, 163, 184, 0.8);
}

/* ═══ Table Enhancements ═══ */
.adj-note-number {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: #ff9966;
  cursor: pointer;
}

.adj-ref {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

.adj-ref-type {
  display: block;
  font-size: 10px;
  color: var(--ui-text-subtle);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-top: 2px;
}

.adj-party {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

.adj-amount {
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
}

.adj-amount--credit {
  color: #10b981;
}

.adj-amount--debit {
  color: #ef4444;
}

.adj-date {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

/* Muted row for cancelled */
.glass-table__row--muted {
  opacity: 0.55;
}

.glass-table__row--muted:hover {
  opacity: 0.75;
}

/* ═══ Skeleton Loading ═══ */
.adj-table-skeleton {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 16px 0;
}

.adj-skeleton-row {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 14px 16px;
  background: rgba(255, 255, 255, 0.02);
  border-radius: var(--ui-radius-sm);
}

.skeleton-shimmer {
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.08) 50%, rgba(255, 255, 255, 0.04) 100%);
  background-size: 200% 100%;
  animation: skeleton-shimmer 1.5s infinite ease-in-out;
}

@keyframes skeleton-shimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
/* ═══ Pagination ═══ */
.adj-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 0;
  font-size: var(--ui-text-sm);
}

.adj-pagination__info {
  color: var(--ui-text-muted);
}

.adj-pagination__controls {
  display: flex;
  align-items: center;
  gap: 8px;
}

.adj-pagination__btn {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  background: transparent;
  color: var(--ui-text-secondary);
  font-size: 16px;
  cursor: pointer;
  transition: all var(--ui-transition-fast);
}

.adj-pagination__btn:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.2);
}

.adj-pagination__btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

.adj-pagination__page {
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  min-width: 24px;
  text-align: center;
}

/* ═══ Impact Card ═══ */
.adj-impact-card {
  display: flex;
  align-items: center;
  gap: 0;
  padding: 20px 24px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--ui-radius-md);
  margin-bottom: 20px;
  backdrop-filter: blur(10px);
}

.adj-impact-card__col {
  flex: 1;
  text-align: center;
}

.adj-impact-card__col--adjustment {
  flex: 1;
}

.adj-impact-card__col--result {
  flex: 1;
}

.adj-impact-card__label {
  font-size: 11px;
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 6px;
}

.adj-impact-card__value {
  font-family: var(--ui-font-mono);
  font-size: 22px;
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  letter-spacing: -0.02em;
}

.adj-impact-card__value--credit {
  color: #10b981;
}

.adj-impact-card__value--debit {
  color: #ef4444;
}

.adj-impact-card__value--final {
  color: #ff9966;
}

.adj-impact-card__divider {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 16px;
  color: rgba(255, 255, 255, 0.3);
}

.adj-impact-card__arrow {
  font-size: 18px;
}

/* ═══ Detail Page ═══ */
.adj-detail {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.adj-detail__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}

.adj-detail__header-left {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.adj-detail__back {
  background: none;
  border: none;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  cursor: pointer;
  padding: 4px 8px;
  border-radius: var(--ui-radius-sm);
  transition: color var(--ui-transition-fast);
}

.adj-detail__back:hover {
  color: var(--ui-text-primary);
}

.adj-detail__title {
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  margin: 0;
}

.adj-detail__cancel-btn {
  background: rgba(239, 68, 68, 0.1) !important;
  border-color: rgba(239, 68, 68, 0.3) !important;
  color: #ef4444 !important;
}

.adj-detail__cancel-btn:hover {
  background: rgba(239, 68, 68, 0.2) !important;
}

/* Reference link */
.adj-detail__ref {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--ui-radius-sm);
  cursor: pointer;
  transition: all var(--ui-transition-fast);
  width: fit-content;
}

.adj-detail__ref:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.16);
}

.adj-detail__ref-label {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.adj-detail__ref-value {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: #ff9966;
}

.adj-detail__ref-arrow {
  color: var(--ui-text-subtle);
}

.adj-detail__section {
  overflow: hidden;
}

/* Meta grid */
.adj-detail__meta-grid {
  padding: var(--ui-space-3) var(--ui-space-4);
}

.adj-detail__meta-row {
  display: flex;
  justify-content: space-between;
  padding: var(--ui-space-2) 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.adj-detail__meta-row:last-child {
  border-bottom: none;
}

.adj-detail__meta-label {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.adj-detail__meta-value {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-medium);
}

/* ═══ Items Grid ═══ */
.adj-items-grid {
  padding: 0 var(--ui-space-4) var(--ui-space-3);
}

.adj-items-grid__header {
  display: grid;
  grid-template-columns: 2fr 60px 1fr 1fr;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) 0;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.adj-items-grid__row {
  display: grid;
  grid-template-columns: 2fr 60px 1fr 1fr;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  border-bottom: 1px solid rgba(255, 255, 255, 0.03);
}

.adj-items-grid__row:last-child {
  border-bottom: none;
}

.adj-items-grid__right {
  text-align: right;
  font-family: var(--ui-font-mono);
}

/* ═══ GST Grid ═══ */
.adj-gst-grid {
  padding: 0 var(--ui-space-4) var(--ui-space-3);
}

.adj-gst-grid__row {
  display: flex;
  justify-content: space-between;
  padding: var(--ui-space-2) 0;
  font-size: var(--ui-text-sm);
  border-bottom: 1px solid rgba(255, 255, 255, 0.03);
}

.adj-gst-grid__row:last-child {
  border-bottom: none;
}

.adj-gst-grid__row--total {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  margin-top: var(--ui-space-1);
  padding-top: var(--ui-space-2);
}

.adj-gst-grid__label {
  color: var(--ui-text-muted);
}

.adj-gst-grid__value {
  font-family: var(--ui-font-mono);
  color: var(--ui-text-secondary);
}

.adj-gst-grid__row--total .adj-gst-grid__value {
  color: var(--ui-text-primary);
}

/* ═══ Audit Timeline ═══ */
.adj-timeline {
  padding: var(--ui-space-3) var(--ui-space-4);
}

.adj-timeline__entry {
  display: flex;
  gap: 12px;
  padding-bottom: 16px;
  position: relative;
}

.adj-timeline__entry:not(.adj-timeline__entry--last)::after {
  content: "";
  position: absolute;
  left: 7px;
  top: 22px;
  bottom: 0;
  width: 1px;
  background: rgba(255, 255, 255, 0.08);
}

.adj-timeline__dot {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 3px;
  border: 2px solid rgba(255, 255, 255, 0.2);
  background: transparent;
}

.adj-timeline__dot--created {
  border-color: #f59e0b;
  background: rgba(245, 158, 11, 0.3);
}

.adj-timeline__dot--issued {
  border-color: #10b981;
  background: rgba(16, 185, 129, 0.3);
}

.adj-timeline__dot--cancelled {
  border-color: #ef4444;
  background: rgba(239, 68, 68, 0.3);
}

.adj-timeline__content {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.adj-timeline__action {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.adj-timeline__date {
  font-size: 11px;
  color: var(--ui-text-muted);
}

.adj-timeline__meta {
  font-size: 11px;
  color: var(--ui-text-subtle);
  font-family: var(--ui-font-mono);
}

/* ═══ Detail Skeleton ═══ */
.adj-detail-skeleton {
  padding: 16px 0;
}

/* ═══ Confirmation Overlay ═══ */
.adj-confirm-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10000;
  backdrop-filter: blur(4px);
}

.adj-confirm-card {
  background: rgba(20, 20, 30, 0.95);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--ui-radius-md);
  padding: 28px;
  max-width: 420px;
  width: 90%;
  backdrop-filter: blur(20px);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.4);
}

.adj-confirm-card__title {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  margin-bottom: 8px;
}

.adj-confirm-card__desc {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  margin-bottom: 24px;
  line-height: 1.5;
}

.adj-confirm-card__actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

.adj-confirm-card__btn {
  padding: 8px 20px;
  border-radius: 99px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--ui-transition-fast);
  border: none;
}

.adj-confirm-card__btn--secondary {
  background: rgba(255, 255, 255, 0.06);
  color: var(--ui-text-secondary);
}

.adj-confirm-card__btn--secondary:hover {
  background: rgba(255, 255, 255, 0.12);
}

.adj-confirm-card__btn--danger {
  background: rgba(239, 68, 68, 0.15);
  color: #ef4444;
}

.adj-confirm-card__btn--danger:hover:not(:disabled) {
  background: rgba(239, 68, 68, 0.25);
}

.adj-confirm-card__btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* ═══ Create Adjustment Modal ═══ */
.adj-modal .glass-modal-body {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.adj-modal__context {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--ui-radius-sm);
  padding: 14px 16px;
}

.adj-modal__context-row {
  display: flex;
  justify-content: space-between;
  padding: 4px 0;
}

.adj-modal__context-label {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.adj-modal__context-value {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-medium);
}

.adj-modal__context-value--highlight {
  color: #ff9966;
  font-weight: var(--ui-font-bold);
}

.adj-modal__field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

/* Type Picker */
.adj-modal__type-picker {
  display: flex;
  gap: 10px;
}

.adj-modal__type-btn {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--ui-radius-sm);
  background: rgba(255, 255, 255, 0.02);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  cursor: pointer;
  transition: all var(--ui-transition-fast);
}

.adj-modal__type-btn:hover {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.18);
}

.adj-modal__type-btn--active.adj-modal__type-btn--credit {
  background: rgba(16, 185, 129, 0.1);
  border-color: rgba(16, 185, 129, 0.4);
  color: #10b981;
}

.adj-modal__type-btn--active.adj-modal__type-btn--debit {
  background: rgba(239, 68, 68, 0.1);
  border-color: rgba(239, 68, 68, 0.4);
  color: #ef4444;
}

.adj-modal__type-icon {
  font-size: 18px;
}

/* Scope Picker */
.adj-modal__scope-picker {
  display: flex;
  gap: 8px;
}

.adj-modal__scope-btn {
  flex: 1;
  padding: 8px 16px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--ui-radius-sm);
  background: transparent;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  cursor: pointer;
  transition: all var(--ui-transition-fast);
}

.adj-modal__scope-btn:hover {
  background: rgba(255, 255, 255, 0.04);
}

.adj-modal__scope-btn--active {
  background: rgba(255, 153, 102, 0.12);
  border-color: rgba(255, 153, 102, 0.4);
  color: #ff9966;
  font-weight: var(--ui-font-semibold);
}

/* Amount Input */
.adj-modal__amount-input {
  font-family: var(--ui-font-mono);
  font-size: 18px !important;
  font-weight: var(--ui-font-bold);
  letter-spacing: -0.01em;
}

.adj-modal__error {
  font-size: 11px;
  color: #ef4444;
  padding: 2px 0;
}

/* Impact Preview */
.adj-modal__impact {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 153, 102, 0.2);
  border-radius: var(--ui-radius-sm);
  padding: 14px 16px;
}

.adj-modal__impact-title {
  font-size: 11px;
  font-weight: var(--ui-font-semibold);
  color: #ff9966;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 10px;
}

.adj-modal__impact-grid {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.adj-modal__impact-row {
  display: flex;
  justify-content: space-between;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

.adj-modal__impact-row--delta {
  padding: 4px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.adj-modal__impact-row--final {
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  padding-top: 4px;
}

.adj-modal__impact-row--final span:last-child {
  color: #ff9966;
}

/* Server Error */
.adj-modal__server-error {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.25);
  border-radius: var(--ui-radius-sm);
  font-size: var(--ui-text-sm);
  color: #ef4444;
}

/* ── Action Priority: Credit = Primary (green hint), Debit = Secondary ── */
.adj-modal__type-btn--primary {
  order: -1; /* Ensure Credit Note appears first */
}

.adj-modal__type-btn--secondary {
  order: 0;
}

/* ── Advance Available (negative due) ── */
.adj-modal__context-value--advance {
  color: #10b981;
  font-weight: 600;
}

/* ── Submit Spinner ── */
.adj-modal__spinner {
  display: inline-block;
  width: 14px;
  height: 14px;
  border: 2px solid rgba(255, 255, 255, 0.25);
  border-top-color: rgba(255, 255, 255, 0.9);
  border-radius: 50%;
  animation: adj-spin 0.6s linear infinite;
  vertical-align: middle;
  margin-right: 6px;
}

@keyframes adj-spin {
  to {
    transform: rotate(360deg);
  }
}
/* ── Color System: Credit = Green, Debit = Red/Orange ── */
.adj-amount--credit {
  color: #10b981;
}

.adj-amount--debit {
  color: #ef4444;
}

.adj-type-badge--credit {
  background: rgba(16, 185, 129, 0.12);
  border: 1px solid rgba(16, 185, 129, 0.3);
  color: #10b981;
}

.adj-type-badge--debit {
  background: rgba(239, 68, 68, 0.12);
  border: 1px solid rgba(239, 68, 68, 0.3);
  color: #ef4444;
}

/* ==========================================================================
   GSTR-2A/2B Reconciliation
   Scoped page styling for compliance reconciliation screen.
   ========================================================================== */
.finance-page--gst-dashboard {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.finance-page--gst-dashboard .header-card__bottom {
  flex-wrap: wrap;
}

.finance-page--gst-dashboard .gst-dashboard-header__filters {
  display: flex;
  align-items: center;
  flex: 1 1 auto;
  min-width: 0;
}

.finance-page--gst-dashboard .gst-dashboard-header__date-filter {
  flex: 0 0 auto;
  min-width: 0;
}

.finance-page--gst-dashboard .gst-dashboard-panel {
  padding: 0;
}

.finance-page--gst-dashboard .gst-dashboard-panel__empty {
  min-height: 220px;
}

.finance-page--gst-dashboard .finance-recon-th,
.finance-page--gst-dashboard .finance-recon-tr {
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
}

.finance-page--gst-dashboard .gst-dashboard-breakdown__type {
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-semibold);
}

.finance-page--gst-dashboard .gst-dashboard-breakdown__net--payable {
  color: var(--ui-warning);
}

.finance-page--gst-dashboard .gst-dashboard-breakdown__net--refund {
  color: var(--ui-success);
}

.finance-page--gst-dashboard .gst-dashboard-breakdown__total {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
}

@media (max-width: 768px) {
  .finance-page--gst-dashboard .header-card__actions {
    width: 100%;
    justify-content: space-between;
    margin-left: 0;
  }
  .finance-page--gst-dashboard .gst-dashboard-header__date-filter {
    width: 100%;
  }
}
.finance-page--gstr2a {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.finance-page--gstr2a .header-card {
  margin-bottom: 0;
  border-radius: var(--ui-radius-xl);
  background: var(--ui-glass-light);
  border-color: var(--ui-border);
  box-shadow: var(--ui-shadow-md);
  backdrop-filter: var(--ui-blur-sm);
  -webkit-backdrop-filter: var(--ui-blur-sm);
}

.finance-page--gstr2a .header-card__top {
  align-items: stretch;
}

.finance-page--gstr2a .header-card__title-block {
  justify-content: center;
}

.finance-page--gstr2a .header-card__stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(160px, 1fr));
  flex: 1 1 520px;
}

.finance-page--gstr2a .header-card__stats .stat-card {
  min-width: 0;
  max-width: none;
}

.finance-page--gstr2a .header-card__bottom {
  flex-wrap: wrap;
}

.finance-page--gstr2a .gstr2a-header__tabs {
  flex: 1 1 auto;
  min-width: 0;
  overflow-x: auto;
  scrollbar-width: none;
}

.finance-page--gstr2a .gstr2a-header__tabs::-webkit-scrollbar {
  display: none;
}

.finance-page--gstr2a .gstr2a-header__tabs .pill-tabs-container {
  margin-right: 0;
}

.finance-page--gstr2a .gstr2a-period-filter {
  margin-right: var(--ui-space-3);
}

.finance-page--gstr2a .gstr2a-period-filter__chevron {
  width: 14px;
  height: 14px;
  font-size: 14px;
  opacity: 0.5;
}

.finance-page--gstr2a .gstr2a-view-tabs {
  flex: 0 1 auto;
  max-width: 100%;
  overflow-x: auto;
  margin: 0;
  text-transform: none;
  letter-spacing: 0;
}

.finance-page--gstr2a .gstr2a-panel {
  padding: 0;
}

.finance-page--gstr2a .gstr2a-panel__header {
  gap: var(--ui-space-3);
  flex-wrap: wrap;
  padding: var(--ui-space-3) var(--ui-space-4);
}

.finance-page--gstr2a .gstr2a-panel__meta {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.finance-page--gstr2a .gstr2a-table-card {
  border-radius: 0;
  border-left: 0;
  border-right: 0;
  border-bottom: 0;
  box-shadow: none;
  max-height: none;
}

.finance-page--gstr2a .gstr2a-table {
  min-width: 1200px;
  border: 0;
  border-radius: 0;
}

.finance-page--gstr2a .gstr2a-table--books {
  min-width: 1360px;
}

.finance-page--gstr2a .gstr2a-table tbody {
  max-height: 62vh;
}

.finance-page--gstr2a .gstr2a-table td {
  color: var(--ui-text-secondary);
}

.finance-page--gstr2a .glass-table__th--right,
.finance-page--gstr2a .glass-table__td--right {
  text-align: right;
}

.finance-page--gstr2a .finance-recon-th,
.finance-page--gstr2a .finance-recon-tr {
  grid-template-columns: minmax(0, 2.1fr) minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
}

.finance-page--gstr2a .finance-recon-th {
  padding-top: var(--ui-space-3);
  padding-bottom: var(--ui-space-3);
}

.finance-page--gstr2a .gstr2a-row__supplier {
  display: table-cell;
  min-width: 0;
}

.finance-page--gstr2a .gstr2a-row__supplier-stack {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  min-width: 0;
  max-width: 100%;
}

.finance-page--gstr2a .gstr2a-row__supplier-name {
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-semibold);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.finance-page--gstr2a .gstr2a-row__gstin {
  color: var(--ui-text-muted);
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-xs);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.finance-page--gstr2a .gstr2a-row__invoice {
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-medium);
}

.finance-page--gstr2a .gstr2a-row__status {
  justify-self: start;
}

.finance-page--gstr2a .gstr2a-row__difference--warn {
  color: var(--ui-warning);
}

.finance-page--gstr2a .gstr2a-empty-state__actions {
  display: flex;
  justify-content: center;
  margin-top: var(--ui-space-2);
}

@media (max-width: 768px) {
  .finance-page--gstr2a .header-card__actions {
    width: 100%;
    justify-content: space-between;
    margin-left: 0;
  }
  .finance-page--gstr2a .gstr2a-panel__meta {
    width: 100%;
    justify-content: flex-start;
  }
}
.finance-page--gstr2a .gstr2a-row__matched-party {
  color: var(--ui-warning);
  font-size: var(--ui-text-xs);
  font-style: italic;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.finance-page--gstr2a .gstr2a-row__pan-badge {
  display: inline-flex;
  align-items: center;
  padding: 1px 6px;
  margin-left: 4px;
  font-size: 9px;
  font-weight: var(--ui-font-bold);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ui-warning);
  background: var(--ui-warning-bg);
  border: 1px solid var(--ui-warning-border);
  border-radius: var(--ui-radius-xs);
  cursor: help;
}

.finance-page--gstr2a .gstr2a-row__status {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
}

.finance-page--gstr2a .finance-recon-tr--review {
  border-left: 3px solid rgba(245, 158, 11, 0.5);
}

.finance-page--gstr2a .gstr2a-summary__value--warning {
  color: var(--ui-warning);
}

.finance-page--gstr2a .gstr2a-excess-split {
  padding: var(--ui-space-3) var(--ui-space-5) 0;
  border-bottom: 1px solid var(--ui-border);
}

.finance-page--gstr2a .gstr2a-excess-split__hint {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin-bottom: var(--ui-space-2);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}

.finance-page--gstr2a .gstr2a-excess-split__hint mat-icon {
  width: 15px;
  height: 15px;
  font-size: 15px;
  opacity: 0.7;
}

.finance-page--gstr2a .gstr2a-excess-split__tabs {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
  padding-bottom: var(--ui-space-3);
}

.finance-page--gstr2a .gstr2a-excess-pill {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-1) var(--ui-space-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-full);
  background: transparent;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: background var(--ui-transition-fast), border-color var(--ui-transition-fast), color var(--ui-transition-fast);
}

.finance-page--gstr2a .gstr2a-excess-pill:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
  color: var(--ui-text-secondary);
}

.finance-page--gstr2a .gstr2a-excess-pill.active {
  background: var(--ui-table-accent-bg);
  border-color: var(--ui-table-accent-border);
  color: var(--ui-table-accent-light);
}

.finance-page--gstr2a .gstr2a-excess-pill__badge {
  min-width: 18px;
  padding: 1px 6px;
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-3);
  color: var(--ui-text-secondary);
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  text-align: center;
}

.finance-page--gstr2a .gstr2a-excess-pill.active .gstr2a-excess-pill__badge {
  background: var(--ui-table-accent-bg);
  color: var(--ui-text-primary);
}

.finance-page--gstr2a .gstr2a-excess-split__stale {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  margin-left: var(--ui-space-1);
  color: var(--ui-warning);
  font-size: var(--ui-text-xs);
}

.finance-page--gstr2a .gstr2a-excess-split__stale mat-icon {
  width: 14px;
  height: 14px;
  font-size: 14px;
}

.finance-page--gstr2a .gstr2a-row__excess-reason {
  display: inline-flex;
  align-items: center;
  margin-top: var(--ui-space-1);
  padding: 2px 6px;
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  line-height: 1.4;
}

.finance-page--gstr2a .gstr2a-excess-reason--unknown {
  background: var(--ui-danger-bg);
  color: var(--ui-danger);
}

.finance-page--gstr2a .gstr2a-excess-reason--no-bill {
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
}

.finance-page--gstr2a .gstr2a-excess-reason--mismatch {
  background: var(--ui-info-bg);
  color: var(--ui-info);
}

/* ═══ GSTR-2A Monthly Summary Bar ═══ */
.finance-page--gstr2a .gstr2a-summary {
  display: flex;
  align-items: stretch;
  gap: 0;
  padding: var(--ui-space-3) var(--ui-space-4);
  margin: 0;
  background: var(--ui-surface-2);
  border-bottom: 1px solid var(--ui-border);
  overflow-x: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.12) transparent;
}

.finance-page--gstr2a .gstr2a-summary::-webkit-scrollbar {
  height: 3px;
}

.finance-page--gstr2a .gstr2a-summary::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 999px;
}

.finance-page--gstr2a .gstr2a-summary:hover::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.12);
}

.finance-page--gstr2a .gstr2a-summary__card {
  flex: 1 1 0;
  min-width: 110px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-1);
  padding: var(--ui-space-2) var(--ui-space-3);
}

.finance-page--gstr2a .gstr2a-summary__label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  white-space: nowrap;
}

.finance-page--gstr2a .gstr2a-summary__value {
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  white-space: nowrap;
}

.finance-page--gstr2a .gstr2a-summary__value--primary {
  color: rgba(255, 255, 255, 0.95);
  font-weight: var(--ui-font-bold);
  font-size: var(--ui-text-base);
}

.finance-page--gstr2a .gstr2a-summary__value--success {
  color: var(--ui-success);
}

.finance-page--gstr2a .gstr2a-summary__value--danger {
  color: var(--ui-warning);
}

.finance-page--gstr2a .gstr2a-summary__divider {
  width: 1px;
  align-self: stretch;
  margin: var(--ui-space-1) 0;
  background: linear-gradient(to bottom, transparent 0%, rgba(255, 255, 255, 0.12) 30%, rgba(255, 255, 255, 0.16) 50%, rgba(255, 255, 255, 0.12) 70%, transparent 100%);
  flex-shrink: 0;
}

@media (max-width: 768px) {
  .finance-page--gstr2a .gstr2a-summary {
    gap: 0;
    padding: var(--ui-space-2) var(--ui-space-3);
  }
  .finance-page--gstr2a .gstr2a-summary__card {
    min-width: 90px;
    padding: var(--ui-space-2);
  }
  .finance-page--gstr2a .gstr2a-summary__value--primary {
    font-size: var(--ui-text-sm);
  }
}
/* ── GSTR-2A Books Table — 9-column grid ── */
.finance-page--gstr2a .gstr2a-books-table .finance-recon-th,
.finance-page--gstr2a .gstr2a-books-table .finance-recon-tr {
  grid-template-columns: minmax(0, 2fr) minmax(0, 1.2fr) minmax(0, 0.8fr) minmax(0, 0.8fr) minmax(0, 0.8fr) minmax(0, 0.6fr) minmax(0, 0.8fr) minmax(0, 0.9fr) minmax(0, 1fr);
}

/* ── GSTR-2A Books scope toggle ── */
.finance-page--gstr2a .gstr2a-scope-toggle {
  display: inline-flex;
  border: 1px solid var(--ui-border);
  border-radius: 6px;
  overflow: hidden;
  margin-left: 12px;
}

.finance-page--gstr2a .gstr2a-scope-toggle__btn {
  padding: 4px 12px;
  font-size: 11px;
  font-weight: 500;
  background: transparent;
  color: var(--ui-text-muted);
  border: none;
  cursor: pointer;
  transition: all 0.15s;
}

.finance-page--gstr2a .gstr2a-scope-toggle__btn:not(:last-child) {
  border-right: 1px solid var(--ui-border);
}

.finance-page--gstr2a .gstr2a-scope-toggle__btn--active {
  background: var(--ui-table-accent-bg);
  color: var(--ui-table-accent-light);
}

/* ── GSTR-2A Books filter tabs ── */
.finance-page--gstr2a .gstr2a-books-filters {
  display: flex;
  gap: 6px;
  padding: 10px 20px;
  flex-wrap: wrap;
  align-items: center;
}

/* ── GSTR-2A Matched bill detail row ── */
.finance-page--gstr2a .gstr2a-matched-bill-detail td {
  padding: var(--ui-space-2) var(--ui-space-4);
  font-size: 12px;
  color: var(--ui-text-muted);
  border-bottom: 1px solid var(--ui-border-light);
  background: var(--ui-success-bg);
}

.finance-page--gstr2a .gstr2a-matched-bill-detail__content {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  min-width: 0;
}

.finance-page--gstr2a .gstr2a-matched-bill-detail mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: var(--ui-success);
  flex: 0 0 auto;
}

.finance-page--gstr2a .gstr2a-matched-bill-detail__label {
  font-weight: 600;
  color: var(--ui-success);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.finance-page--gstr2a .gstr2a-matched-bill-detail__billno {
  font-family: var(--ui-font-mono);
  font-size: 12px;
  color: var(--ui-text-primary);
}

.finance-page--gstr2a .gstr2a-matched-bill-detail__ref {
  font-size: 11px;
  opacity: 0.7;
}

.finance-page--gstr2a .gstr2a-matched-bill-detail__date {
  font-size: 11px;
  opacity: 0.7;
}

.finance-page--gstr2a .gstr2a-matched-bill-detail__total {
  font-family: var(--ui-font-mono);
  font-size: 12px;
  color: var(--ui-text-primary);
}

.finance-page--gstr2a .gstr2a-matched-bill-detail__link {
  color: var(--ui-info);
  font-size: 11px;
  text-decoration: none;
  cursor: pointer;
  margin-left: auto;
}

.finance-page--gstr2a .gstr2a-matched-bill-detail__link:hover {
  text-decoration: underline;
}

/* ── GSTR-2A Books status chips ── */
.gstr2a-book-chip--books-only {
  background: rgba(168, 85, 247, 0.12) !important;
  color: #a855f7 !important;
}

.gstr2a-book-chip--gstin-missing {
  background: rgba(239, 68, 68, 0.12) !important;
  color: #ef4444 !important;
}

.gstr2a-book-chip--invoice-missing {
  background: rgba(249, 115, 22, 0.12) !important;
  color: #f97316 !important;
}

/* ==========================================================================
   E-Invoice (IRN)
   Scoped page styling for E-Invoice compliance screen.
   ========================================================================== */
.finance-page--einvoice {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.finance-page--einvoice .header-card__bottom {
  flex-wrap: wrap;
}

.finance-page--einvoice .einvoice-header__tabs {
  flex: 1 1 auto;
  min-width: 0;
  overflow-x: auto;
  scrollbar-width: none;
}

.finance-page--einvoice .einvoice-header__tabs::-webkit-scrollbar {
  display: none;
}

.finance-page--einvoice .einvoice-header__tabs .pill-tabs-container {
  margin-right: 0;
}

.finance-page--einvoice .einvoice-panel {
  padding: 0;
}

.finance-page--einvoice .einvoice-panel__meta {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.finance-page--einvoice .finance-recon-th,
.finance-page--einvoice .finance-recon-tr {
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1.8fr) minmax(0, 0.95fr) minmax(0, 1fr) max-content;
  gap: var(--ui-space-3);
  min-width: 760px;
}

.finance-page--einvoice .einvoice-row__invoice {
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-semibold);
}

.finance-page--einvoice .einvoice-row__irn {
  color: var(--ui-text-muted);
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-xs);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.finance-page--einvoice .einvoice-row__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ui-space-2);
}

.finance-page--einvoice .einvoice-row__actions-empty {
  color: var(--ui-text-subtle);
  font-size: var(--ui-text-sm);
  min-width: var(--ui-space-4);
  text-align: center;
}

.finance-page--einvoice .einvoice-config-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--ui-space-3);
  padding: var(--ui-space-4);
}

.finance-page--einvoice .einvoice-config-card {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  min-height: 92px;
  padding: var(--ui-space-4);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
}

.finance-page--einvoice .einvoice-config-card__label {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.finance-page--einvoice .einvoice-config-card__value {
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  line-height: 1.5;
}

.finance-page--einvoice .einvoice-config-card__value--mono {
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-xs);
  word-break: break-word;
}

/* ==========================================================================
   E-Way Bill
   Scoped page styling for E-Way Bill compliance screen.
   ========================================================================== */
.finance-page--ewaybill {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.finance-page--ewaybill .header-card__top {
  align-items: flex-start;
  gap: var(--ui-space-4);
  flex-wrap: nowrap;
}

.finance-page--ewaybill .header-card__title-block {
  flex: 1 1 0;
  min-width: 0;
}

.finance-page--ewaybill .header-card__stats {
  align-self: flex-start;
  flex: 0 1 auto;
  justify-content: flex-end;
}

.finance-page--ewaybill .header-card__bottom {
  flex-wrap: wrap;
}

.finance-page--ewaybill .ewaybill-header__tabs {
  flex: 1 1 auto;
  min-width: 0;
  overflow-x: auto;
  scrollbar-width: none;
}

.finance-page--ewaybill .ewaybill-header__tabs::-webkit-scrollbar {
  display: none;
}

.finance-page--ewaybill .ewaybill-header__tabs .pill-tabs-container {
  margin-right: 0;
}

.finance-page--ewaybill .ewaybill-panel {
  padding: 0;
}

.finance-page--ewaybill .ewaybill-panel__meta {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.finance-page--ewaybill .ewaybill-panel__empty {
  min-height: 260px;
}

.finance-page--ewaybill .finance-recon-th,
.finance-page--ewaybill .finance-recon-tr {
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1.2fr) minmax(0, 1.35fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 0.9fr);
  gap: var(--ui-space-3);
  min-width: 920px;
}

.finance-page--ewaybill .ewaybill-row__number {
  color: var(--ui-text-primary);
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
}

.finance-page--ewaybill .ewaybill-row__document,
.finance-page--ewaybill .ewaybill-row__route {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  min-width: 0;
}

.finance-page--ewaybill .ewaybill-row__doc-no,
.finance-page--ewaybill .ewaybill-row__route-main {
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-semibold);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.finance-page--ewaybill .ewaybill-row__doc-type,
.finance-page--ewaybill .ewaybill-row__route-meta {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.finance-page--ewaybill .ewaybill-row__vehicle {
  color: var(--ui-text-secondary);
  font-weight: var(--ui-font-medium);
}

.finance-page--ewaybill .ewaybill-row__vehicle--muted {
  color: var(--ui-text-subtle);
  font-style: italic;
}

.finance-page--ewaybill .ewaybill-row__validity {
  color: var(--ui-text-secondary);
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-xs);
}

.finance-page--ewaybill .ewaybill-row__validity--expired {
  color: var(--ui-danger);
}

.finance-page--ewaybill .ewaybill-row__status {
  justify-self: start;
}

.finance-page--ewaybill .ewaybill-guidance-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-4);
}

.finance-page--ewaybill .ewaybill-guidance-card {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
}

.finance-page--ewaybill .ewaybill-guidance-card__body {
  display: grid;
  gap: var(--ui-space-4);
  padding: var(--ui-space-4);
}

.finance-page--ewaybill .ewaybill-guidance-item {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
}

.finance-page--ewaybill .ewaybill-guidance-item__title {
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
}

.finance-page--ewaybill .ewaybill-guidance-item__text {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  line-height: 1.6;
}

@media (max-width: 1024px) {
  .finance-page--einvoice .einvoice-config-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .finance-page--ewaybill .header-card__top {
    flex-wrap: wrap;
  }
  .finance-page--ewaybill .ewaybill-guidance-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 768px) {
  .finance-page--einvoice .header-card__actions {
    width: 100%;
    justify-content: space-between;
    margin-left: 0;
  }
  .finance-page--einvoice .einvoice-panel__meta {
    width: 100%;
    justify-content: flex-start;
  }
  .finance-page--ewaybill .header-card__actions {
    width: 100%;
    justify-content: space-between;
    margin-left: 0;
  }
  .finance-page--ewaybill .ewaybill-panel__meta {
    width: 100%;
    justify-content: flex-start;
  }
}
@media (max-width: 640px) {
  .finance-page--einvoice .einvoice-config-grid {
    grid-template-columns: 1fr;
  }
}
/* ═══════════════════════════════════════════════════════════════════════════
   JOURNAL ENTRIES PAGE — Premium Ledger Table
   ═══════════════════════════════════════════════════════════════════════════
   Scoped under .journal-entries-page
   Token-only — no hardcoded values
   ═══════════════════════════════════════════════════════════════════════════ */
/* ── Entry Count Badge ── */
.journal-entries-page .je-entry-count {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  font-weight: var(--ui-font-medium);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-full);
  padding: 4px 14px;
}

/* ═══ FILTER BAR ═══ */
.journal-entries-page .je-filter-bar {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  margin-bottom: var(--ui-space-5);
  flex-wrap: wrap;
}

/* Quick Chips */
.journal-entries-page .je-filter-bar__chips {
  display: flex;
  align-items: center;
  gap: 6px;
}

.journal-entries-page .je-chip {
  padding: 5px 14px;
  font-size: 11px;
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.02em;
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border);
  background: transparent;
  color: var(--ui-text-muted);
  cursor: pointer;
  transition: all var(--ui-transition-fast);
  white-space: nowrap;
}

.journal-entries-page .je-chip:hover {
  border-color: var(--ui-border-hover);
  color: var(--ui-text-secondary);
  background: var(--ui-surface-2);
}

.journal-entries-page .je-chip--active {
  background: rgba(255, 130, 90, 0.12);
  border-color: rgba(255, 130, 90, 0.3);
  color: var(--ui-brand-light);
}

.journal-entries-page .je-chip--clear {
  padding: 4px 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.journal-entries-page .je-chip__icon {
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
}

/* Filter Bar Divider */
.journal-entries-page .je-filter-bar__divider {
  width: 1px;
  height: 24px;
  background: var(--ui-border);
  flex-shrink: 0;
}

/* Search */
.journal-entries-page .je-filter-bar__search {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 1;
  min-width: 180px;
}

.journal-entries-page .je-search-icon {
  font-size: 18px !important;
  width: 18px !important;
  height: 18px !important;
  color: var(--ui-text-subtle);
  flex-shrink: 0;
}

.journal-entries-page .je-search-input {
  background: transparent;
  border: none;
  outline: none;
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  font-family: var(--ui-font-primary);
  width: 100%;
  padding: 4px 0;
}

.journal-entries-page .je-search-input::placeholder {
  color: var(--ui-text-subtle);
}

/* Select Dropdowns */
.journal-entries-page .je-select {
  appearance: none;
  -webkit-appearance: none;
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-full);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  font-family: var(--ui-font-primary);
  padding: 6px 28px 6px 10px;
  cursor: pointer;
  outline: none;
  transition: border-color var(--ui-transition-fast);
  background-image: linear-gradient(45deg, transparent 50%, var(--ui-text-muted) 50%), linear-gradient(135deg, var(--ui-text-muted) 50%, transparent 50%);
  background-position: calc(100% - 12px) calc(50% - 2px), calc(100% - 7px) calc(50% - 2px);
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}

.journal-entries-page .je-select:hover {
  border-color: var(--ui-border-hover);
}

.journal-entries-page .je-select:focus {
  border-color: var(--ui-border-focus);
}

.journal-entries-page .je-select option {
  background: #1a1a1a;
  color: rgba(255, 255, 255, 0.9);
}

/* ═══ TABLE — Column Widths ═══ */
.journal-entries-page .je-table {
  min-width: 1000px;
}

.journal-entries-page .je-col--entry-no {
  width: 130px;
  min-width: 130px;
}

.journal-entries-page .je-col--date {
  width: 110px;
  min-width: 90px;
  white-space: nowrap;
}

.journal-entries-page .je-col--narration {
  width: auto;
  min-width: 0;
}

.journal-entries-page .je-col--source {
  width: 100px;
  min-width: 80px;
}

.journal-entries-page .glass-table .je-col--debit,
.journal-entries-page .je-col--debit {
  width: 95px;
  min-width: 80px;
  text-align: right;
}

.journal-entries-page .glass-table .je-col--credit,
.journal-entries-page .je-col--credit {
  width: 95px;
  min-width: 80px;
  text-align: right;
}

.journal-entries-page .je-col--status {
  width: 90px;
  min-width: 80px;
}

.journal-entries-page .je-col--created-by {
  width: 110px;
  min-width: 90px;
}

/* ═══ DATA ROWS ═══ */
.journal-entries-page .je-row {
  height: auto;
  min-height: 52px;
  cursor: pointer;
}

.journal-entries-page .je-row td {
  overflow: hidden;
  vertical-align: middle;
  padding-top: 12px;
  padding-bottom: 12px;
}

/* ═══ GROUP HEADER ═══ */
.journal-entries-page .je-group-header {
  cursor: default;
}

.journal-entries-page .je-group-header td {
  padding: 0 !important;
  border-bottom: 1px solid rgba(255, 130, 90, 0.12);
  border-left: 3px solid rgba(255, 130, 90, 0.25);
  background: rgba(255, 255, 255, 0.025);
  backdrop-filter: blur(12px) saturate(140%);
  -webkit-backdrop-filter: blur(12px) saturate(140%);
}

/* ═══ ROW INDENT (tree-style under date groups) ═══ */
.journal-entries-page .je-row .je-col--entry-no {
  padding-left: 28px !important;
  display: flex;
  align-items: center;
  gap: 8px;
}

.journal-entries-page .je-leaf-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--ui-text-subtle);
  display: block;
  flex-shrink: 0;
}

.journal-entries-page .je-group-header:hover {
  background: transparent !important;
  box-shadow: none !important;
}

.journal-entries-page .je-group-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 20px;
}

.journal-entries-page .je-group-header__date {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
  letter-spacing: 0.02em;
}

.journal-entries-page .je-group-header__total {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-muted);
  font-family: var(--ui-font-mono);
}

/* ═══ CELL — Entry No ═══ */
.journal-entries-page .je-entry-no {
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  letter-spacing: 0.03em;
  white-space: nowrap; /* ← prevent wrapping to 2 lines */
}

/* ═══ CELL — Date ═══ */
.journal-entries-page .je-date {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  white-space: nowrap;
}

/* ═══ CELL — Narration (2-line clamp) ═══ */
.journal-entries-page .je-narration {
  display: -webkit-box;
  -webkit-line-clamp: 1; /* single line — avoids row height blowout */
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  line-height: 1.45;
  white-space: normal;
  cursor: help;
}

/* ═══ CELL — Source Pill ═══ */
.journal-entries-page .je-source-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 3px 10px;
  border-radius: var(--ui-radius-full);
  font-size: 9px;
  font-weight: var(--ui-font-bold);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  white-space: nowrap;
  border: 1px solid;
}

/* Source Pill Color Variants — via data attribute */
.journal-entries-page .je-source-pill[data-source=PAYROLL] {
  background: rgba(99, 102, 241, 0.12);
  border-color: rgba(99, 102, 241, 0.3);
  color: #a5b4fc;
}

.journal-entries-page .je-source-pill[data-source=SALE] {
  background: rgba(96, 165, 250, 0.12);
  border-color: rgba(96, 165, 250, 0.3);
  color: #93c5fd;
}

.journal-entries-page .je-source-pill[data-source=PURCHASE] {
  background: rgba(245, 158, 11, 0.12);
  border-color: rgba(245, 158, 11, 0.3);
  color: #fbbf24;
}

.journal-entries-page .je-source-pill[data-source=PAYMENT_IN] {
  background: rgba(16, 185, 129, 0.12);
  border-color: rgba(16, 185, 129, 0.3);
  color: #6ee7b7;
}

.journal-entries-page .je-source-pill[data-source=PAYMENT_OUT] {
  background: rgba(255, 130, 90, 0.12);
  border-color: rgba(255, 130, 90, 0.3);
  color: rgba(255, 180, 140, 0.95);
}

.journal-entries-page .je-source-pill[data-source=EXPENSE] {
  background: rgba(244, 63, 94, 0.12);
  border-color: rgba(244, 63, 94, 0.3);
  color: #fda4af;
}

.journal-entries-page .je-source-pill[data-source=MANUAL] {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.12);
  color: var(--ui-text-muted);
}

.journal-entries-page .je-source-pill[data-source=REVERSAL] {
  background: rgba(248, 113, 113, 0.12);
  border-color: rgba(248, 113, 113, 0.3);
  color: #fca5a5;
}

.journal-entries-page .je-source-pill[data-source=ADJUSTMENT] {
  background: rgba(139, 92, 246, 0.12);
  border-color: rgba(139, 92, 246, 0.3);
  color: #c4b5fd;
}

.journal-entries-page .je-source-pill[data-source=EMPLOYEE_PAYMENT] {
  background: rgba(99, 102, 241, 0.14);
  border-color: rgba(99, 102, 241, 0.3);
  color: #818cf8;
}

/* ═══ CELL — Amounts ═══ */
.journal-entries-page .je-amount {
  display: block;
  text-align: right;
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.journal-entries-page .je-amount--debit {
  color: #fb7185;
}

.journal-entries-page .je-amount--credit {
  color: #34d399;
}

.journal-entries-page .je-amount--zero {
  display: block;
  text-align: right;
  color: var(--ui-text-subtle);
  font-size: var(--ui-text-sm);
}

/* ═══ CELL — Created By ═══ */
.journal-entries-page .je-created-by {
  font-size: 11px;
  color: var(--ui-text-subtle);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  max-width: 120px;
}

/* ═══ EMPTY STATE ═══ */
.journal-entries-page .je-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: var(--ui-space-12) var(--ui-space-4);
  gap: var(--ui-space-2);
}

.journal-entries-page .je-empty-state__icon {
  font-size: 48px !important;
  width: 48px !important;
  height: 48px !important;
  color: var(--ui-text-subtle);
  opacity: 0.5;
  margin-bottom: var(--ui-space-2);
}

.journal-entries-page .je-empty-state__title {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.journal-entries-page .je-empty-state__subtitle {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  max-width: 360px;
}

/* ═══ PAGINATION CONTROLS ═══ */
.journal-entries-page .je-pagination-controls {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.journal-entries-page .je-page-btn {
  width: 32px;
  height: 32px;
  border-radius: var(--ui-radius-sm);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-1);
  color: var(--ui-text-secondary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all var(--ui-transition-fast);
  padding: 0;
}

.journal-entries-page .je-page-btn:hover:not(:disabled) {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
  color: var(--ui-text-primary);
}

.journal-entries-page .je-page-btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

.journal-entries-page .je-page-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.journal-entries-page .je-page-indicator {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  min-width: 100px;
  text-align: center;
}

/* ═══ DETAIL DRAWER ═══ */
/* Backdrop: light frosted glass, not dark — covers sidebar */
.journal-entries-page .ui-drawer__backdrop {
  z-index: 10000 !important;
  background: rgba(0, 0, 0, 0.25) !important;
  backdrop-filter: blur(8px) saturate(120%) !important;
  -webkit-backdrop-filter: blur(8px) saturate(120%) !important;
}

/* Panel: override to real glass — lighter alpha so blur shows through */
.journal-entries-page .je-drawer {
  width: 600px;
  z-index: 10001 !important;
  background: linear-gradient(165deg, rgba(30, 30, 34, 0.55) 0%, rgba(24, 24, 28, 0.65) 100%) !important;
  backdrop-filter: blur(48px) saturate(160%) brightness(1.1) !important;
  -webkit-backdrop-filter: blur(48px) saturate(160%) brightness(1.1) !important;
  border-left: 1px solid rgba(255, 255, 255, 0.08) !important;
}

.journal-entries-page .je-drawer__entry-id {
  display: block;
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  margin-top: 2px;
  letter-spacing: 0.04em;
}

/* Strip ALL inner backgrounds so drawer glass shows through */
.journal-entries-page .je-drawer .glass-modal-container,
.journal-entries-page .je-drawer .glass-modal__container,
.journal-entries-page .je-drawer .glass-modal__body,
.journal-entries-page .je-drawer .glass-modal-body,
.journal-entries-page .je-drawer .modal-lg {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Make finance-filter-bar inside drawer use subtle glass instead of opaque surface */
.journal-entries-page .je-drawer .finance-filter-bar {
  background: rgba(255, 255, 255, 0.04) !important;
  border-color: rgba(255, 255, 255, 0.08) !important;
}

.journal-entries-page .je-drawer .glass-modal__header,
.journal-entries-page .je-drawer .glass-modal-header {
  display: none !important;
}

.journal-entries-page .je-drawer .glass-modal__footer,
.journal-entries-page .je-drawer .glass-modal-footer {
  display: none !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   JOURNAL ENTRY — Account Summary Sub-Row (List Page)
   ═══════════════════════════════════════════════════════════════════════════ */
.je-accounts-summary {
  display: block;
  font-family: var(--ui-font-mono);
  font-size: 10.5px;
  color: var(--ui-text-muted);
  margin-top: 3px;
  line-height: 1.4;
  letter-spacing: 0.02em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
  opacity: 0.65;
  transition: opacity var(--ui-transition-fast);
}

.je-row:hover .je-accounts-summary {
  opacity: 1;
  color: var(--ui-text-secondary);
}

/* ═══════════════════════════════════════════════════════════════════════════
   JOURNAL ENTRY — Actions Dropdown (Drawer Footer)
   ═══════════════════════════════════════════════════════════════════════════ */
.je-actions-wrap {
  position: relative;
}

.je-actions-dropdown {
  position: absolute;
  bottom: 100%;
  right: 0;
  margin-bottom: 6px;
  min-width: 180px;
  background: rgba(30, 28, 26, 0.95);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--ui-radius-md);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
  padding: 4px;
  z-index: 10;
  animation: je-dropdown-in 0.15s ease-out;
}

@keyframes je-dropdown-in {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.je-actions-dropdown__item {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 8px 12px;
  background: transparent;
  border: none;
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  cursor: pointer;
  border-radius: var(--ui-radius-sm);
  transition: all var(--ui-transition-fast);
  text-align: left;
}

.je-actions-dropdown__item:hover {
  background: rgba(255, 255, 255, 0.06);
  color: var(--ui-text-primary);
}

.je-actions-dropdown__item mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  opacity: 0.7;
}

/* ═══════════════════════════════════════════════════════════════════════════
   JOURNAL MODAL — Enterprise Drilldown Surface (jm__ namespace)
   ═══════════════════════════════════════════════════════════════════════════ */
/* ── Header ── */
.jm__header {
  margin-bottom: 16px;
}

.jm__header-main {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}

.jm__entry-no {
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  letter-spacing: 0.02em;
}

.jm__status-chip {
  display: inline-flex;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 10px;
  font-weight: var(--ui-font-bold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.jm__status-chip--posted {
  background: rgba(74, 222, 128, 0.12);
  color: #4ade80;
  border: 1px solid rgba(74, 222, 128, 0.2);
}

.jm__status-chip--draft {
  background: rgba(250, 204, 21, 0.1);
  color: #facc15;
  border: 1px solid rgba(250, 204, 21, 0.2);
}

.jm__status-chip--reversed {
  background: rgba(248, 113, 113, 0.1);
  color: #f87171;
  border: 1px solid rgba(248, 113, 113, 0.2);
}

.jm__header-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.jm__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  color: var(--ui-text-muted);
}

.jm__meta-icon {
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
  opacity: 0.6;
}

/* ── Badges ── */
.jm__badge {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 12px;
  margin-bottom: 12px;
}

.jm__badge-icon {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
}

.jm__badge--anomaly {
  background: rgba(255, 100, 50, 0.1);
  border: 1px solid rgba(255, 100, 50, 0.2);
  color: rgba(255, 170, 130, 0.9);
}

.jm__badge--reversed {
  background: rgba(248, 113, 113, 0.08);
  border: 1px solid rgba(248, 113, 113, 0.15);
  color: rgba(248, 160, 160, 0.9);
}

.jm__badge--reversal-of {
  background: rgba(129, 140, 248, 0.08);
  border: 1px solid rgba(129, 140, 248, 0.15);
  color: rgba(165, 175, 255, 0.9);
}

/* ── Sections ── */
.jm__section {
  margin-bottom: 20px;
}

.jm__section-label {
  font-size: 10px;
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-subtle);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 8px;
  padding-left: 2px;
}

/* ── Accounting Impact Card ── */
.jm__lines-card {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: var(--ui-radius-md);
  overflow: hidden;
}

.jm__lines-head {
  display: grid;
  grid-template-columns: 36px 1fr 110px 110px;
  gap: 4px;
  padding: 8px 12px;
  background: rgba(255, 255, 255, 0.03);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 10px;
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-subtle);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.jm__line {
  display: grid;
  grid-template-columns: 36px 1fr 110px 110px;
  gap: 4px;
  padding: 8px 12px;
  align-items: start;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  font-size: var(--ui-text-sm);
  transition: background var(--ui-transition-fast);
}

.jm__line:last-of-type {
  border-bottom: none;
}

.jm__line:hover {
  background: rgba(255, 255, 255, 0.02);
}

/* ── DR/CR Pills ── */
.jm__drcr-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 20px;
  border-radius: 4px;
  font-size: 9px;
  font-weight: var(--ui-font-bold);
  letter-spacing: 0.06em;
  flex-shrink: 0;
}

.jm__drcr-pill--dr {
  background: rgba(248, 113, 113, 0.12);
  color: #f87171;
  border: 1px solid rgba(248, 113, 113, 0.2);
}

.jm__drcr-pill--cr {
  background: rgba(74, 222, 128, 0.12);
  color: #4ade80;
  border: 1px solid rgba(74, 222, 128, 0.2);
}

/* ── Account (Clickable with GL Code) ── */
.jm__account {
  display: flex;
  flex-direction: column; /* stack primary + party vertically */
  justify-content: center;
  cursor: pointer;
  color: var(--ui-text-secondary);
  transition: color var(--ui-transition-fast);
  min-width: 0;
  overflow: hidden;
  gap: 1px;
}

.jm__account:hover {
  color: var(--ui-text-primary);
}

.jm__account:hover .jm__account-nav {
  opacity: 1;
}

/* Primary row: code · name ▸ (nav icon) */
.jm__account-primary {
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
  overflow: hidden;
}

/* Party sub-line */
.jm__account-party {
  font-size: 10.5px;
  color: var(--ui-text-subtle);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding-left: 2px;
  opacity: 0.8;
}

.jm__account-code {
  font-family: var(--ui-font-mono);
  font-size: 11px;
  color: var(--ui-text-subtle);
  flex-shrink: 0;
}

.jm__account-sep {
  color: var(--ui-text-subtle);
  opacity: 0.5;
  flex-shrink: 0;
}

.jm__account-name {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 13px;
}

.jm__account-nav {
  font-size: 12px !important;
  width: 12px !important;
  height: 12px !important;
  opacity: 0;
  flex-shrink: 0;
  color: var(--ui-text-muted);
  transition: opacity var(--ui-transition-fast);
}

/* ── Amounts ── */
.jm__amount {
  font-family: var(--ui-font-mono);
  font-size: 13px;
  color: var(--ui-text-secondary);
}

.jm__amount--dr {
  color: #f87171;
}

.jm__amount--cr {
  color: #4ade80;
}

.jm__col-right {
  text-align: right;
}

/* ── Total Row ── */
.jm__total-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.04);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.jm__total-eq {
  font-family: var(--ui-font-mono);
  font-size: 14px;
  font-weight: var(--ui-font-bold);
  color: rgba(74, 222, 128, 0.5);
  flex-shrink: 0;
}

.jm__total-amount {
  font-family: var(--ui-font-mono);
  font-size: 13px;
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  white-space: nowrap;
}

/* ── Balanced Indicator ── */
.jm__balanced-indicator {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  font-weight: var(--ui-font-bold);
  letter-spacing: 0.06em;
  flex: 1; /* push amounts to the right */
  min-width: 0;
}

.jm__balanced-icon {
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
  flex-shrink: 0;
}

.jm__balanced--pass {
  color: #4ade80;
}

.jm__balanced--fail {
  color: #f87171;
}

/* ── Entry Details ── */
.jm__details-grid {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.jm__detail-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.jm__detail-label {
  font-size: 10px;
  color: var(--ui-text-subtle);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.jm__detail-value {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  display: flex;
  align-items: center;
  gap: 6px;
}

.jm__source-pill {
  display: inline-flex;
  padding: 3px 10px;
  border-radius: 5px;
  font-size: 11.5px;
  font-weight: var(--ui-font-medium);
  letter-spacing: 0.01em;
  background: rgba(255, 255, 255, 0.06);
  color: var(--ui-text-secondary);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.jm__source-ref {
  font-family: var(--ui-font-mono);
  font-size: 12px;
  color: var(--ui-text-muted);
}

.jm__risk-pill {
  display: inline-flex;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 10px;
  font-weight: var(--ui-font-bold);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.jm__risk-pill[data-risk=HIGH] {
  background: rgba(250, 204, 21, 0.12);
  color: #facc15;
  border: 1px solid rgba(250, 204, 21, 0.2);
}

.jm__risk-pill[data-risk=CRITICAL] {
  background: rgba(248, 113, 113, 0.12);
  color: #f87171;
  border: 1px solid rgba(248, 113, 113, 0.2);
}

/* ── Audit Trail ── */
.jm__section--audit {
  opacity: 0.8;
}

.jm__audit-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.jm__audit-item {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.jm__audit-label {
  font-size: 10px;
  color: var(--ui-text-subtle);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.jm__audit-value {
  font-size: 12px;
  color: var(--ui-text-muted);
}

.jm__audit-value--mono {
  font-family: var(--ui-font-mono);
  font-size: 11px;
  word-break: break-all;
}

/* ── Party Name (inline in account line) ── */
.jm__party-name {
  font-size: 12px;
  color: var(--ui-text-subtle);
  font-weight: normal;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ── Related Parties (chips) ── */
.jm__detail-value--parties {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.jm__party-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  font-size: 12px;
  color: var(--ui-text-secondary);
}

.jm__party-chip-icon {
  font-size: 13px !important;
  width: 13px !important;
  height: 13px !important;
  opacity: 0.6;
}

.jm__party-chip-type {
  font-size: 9px;
  color: var(--ui-text-subtle);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-left: 2px;
}

/* ── Ledger Integrity Badge ── */
.jm__integrity-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #4ade80;
  font-weight: var(--ui-font-medium);
}

.jm__integrity-icon {
  font-size: 13px !important;
  width: 13px !important;
  height: 13px !important;
}

/* ── Hash Toggle ── */
.jm__hash-detail {
  margin-top: 8px;
  padding: 8px 10px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: var(--ui-radius-sm);
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.jm__hash-toggle {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 6px;
  padding: 0;
  background: none;
  border: none;
  color: var(--ui-text-subtle);
  font-size: 10px;
  cursor: pointer;
  letter-spacing: 0.02em;
  transition: color var(--ui-transition-fast);
}

.jm__hash-toggle:hover {
  color: var(--ui-text-muted);
}

/* ═══ RESPONSIVE ═══ */
@media (max-width: 768px) {
  .journal-entries-page .je-filter-bar {
    flex-direction: column;
    align-items: stretch;
  }
  .journal-entries-page .je-filter-bar__divider {
    display: none;
  }
  .journal-entries-page .je-filter-bar__chips {
    flex-wrap: wrap;
  }
  .journal-entries-page .je-drawer {
    width: 100vw;
    max-width: 100vw;
  }
  .jm__lines-head,
  .jm__line,
  .jm__total-row {
    grid-template-columns: 32px 1fr 70px 70px;
  }
  .jm__audit-grid {
    grid-template-columns: 1fr;
  }
}
/* ═══════════════════════════════════════════════════════════════════════════
   CHART OF ACCOUNTS PAGE — Production-Grade Tree-Table
   ═══════════════════════════════════════════════════════════════════════════
   Scoped under .chart-of-accounts-page
   Token-only — no hardcoded colors, spacing, or z-index values
   ═══════════════════════════════════════════════════════════════════════════ */
/* ── Page layout ── */
.chart-of-accounts-page {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

/* Account count badge in subtitle */
.chart-of-accounts-page .coa-account-count {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  font-weight: var(--ui-font-normal);
}

/* Add Account button icon */
.chart-of-accounts-page .coa-btn-icon {
  font-size: 18px !important;
  width: 18px !important;
  height: 18px !important;
  margin-right: var(--ui-space-1);
  vertical-align: middle;
}

/* ═══ CONTROLS BAR ═══ */
.chart-of-accounts-page .coa-controls-bar {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  flex-wrap: wrap;
}

/* Search field */
.chart-of-accounts-page .coa-controls-bar__search {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 1;
  min-width: 200px;
}

.chart-of-accounts-page .coa-search-icon {
  font-size: 18px !important;
  width: 18px !important;
  height: 18px !important;
  color: var(--ui-text-subtle);
  flex-shrink: 0;
}

.chart-of-accounts-page .coa-search-input {
  background: transparent;
  border: none;
  outline: none;
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  font-family: var(--ui-font-primary);
  width: 100%;
  padding: 4px 0;
}

.chart-of-accounts-page .coa-search-input::placeholder {
  color: var(--ui-text-subtle);
}

.chart-of-accounts-page .coa-search-clear {
  background: transparent;
  border: none;
  color: var(--ui-text-subtle);
  cursor: pointer;
  padding: 0;
  display: inline-flex;
  align-items: center;
  line-height: 1;
  transition: color var(--ui-transition-fast);
  flex-shrink: 0;
}

.chart-of-accounts-page .coa-search-clear:hover {
  color: var(--ui-text-secondary);
}

.chart-of-accounts-page .coa-search-clear mat-icon {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
}

/* Divider */
.chart-of-accounts-page .coa-controls-bar__divider {
  width: 1px;
  height: 24px;
  background: var(--ui-border);
  flex-shrink: 0;
}

/* Spacer pushes expand controls to the right */
.chart-of-accounts-page .coa-controls-bar__spacer {
  flex: 1;
}

/* Select dropdowns (Type / Status) */
.chart-of-accounts-page .coa-select {
  appearance: none;
  -webkit-appearance: none;
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-full);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  font-family: var(--ui-font-primary);
  padding: 6px 28px 6px 10px;
  cursor: pointer;
  outline: none;
  transition: border-color var(--ui-transition-fast);
  background-image: linear-gradient(45deg, transparent 50%, var(--ui-text-muted) 50%), linear-gradient(135deg, var(--ui-text-muted) 50%, transparent 50%);
  background-position: calc(100% - 12px) calc(50% - 2px), calc(100% - 7px) calc(50% - 2px);
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  flex-shrink: 0;
}

.chart-of-accounts-page .coa-select:hover {
  border-color: var(--ui-border-hover);
}

.chart-of-accounts-page .coa-select:focus {
  border-color: var(--ui-border-focus);
}

.chart-of-accounts-page .coa-select option {
  background: #1a1a1a;
  color: rgba(255, 255, 255, 0.9);
}

/* Toggle button (Parents Only) */
.chart-of-accounts-page .coa-toggle-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 12px;
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border);
  background: transparent;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  font-family: var(--ui-font-primary);
  cursor: pointer;
  transition: all var(--ui-transition-fast);
  white-space: nowrap;
  flex-shrink: 0;
}

.chart-of-accounts-page .coa-toggle-btn:hover {
  border-color: var(--ui-border-hover);
  color: var(--ui-text-secondary);
  background: var(--ui-surface-2);
}

.chart-of-accounts-page .coa-toggle-btn--active {
  background: rgba(255, 130, 90, 0.12);
  border-color: rgba(255, 130, 90, 0.3);
  color: var(--ui-brand-light);
}

.chart-of-accounts-page .coa-toggle-icon {
  font-size: 15px !important;
  width: 15px !important;
  height: 15px !important;
}

/* Expand/Collapse controls */
.chart-of-accounts-page .coa-expand-controls {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-shrink: 0;
}

.chart-of-accounts-page .coa-expand-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 10px;
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border);
  background: transparent;
  color: var(--ui-text-muted);
  font-size: 11px;
  font-family: var(--ui-font-primary);
  cursor: pointer;
  transition: all var(--ui-transition-fast);
  white-space: nowrap;
}

.chart-of-accounts-page .coa-expand-btn:hover {
  border-color: var(--ui-border-hover);
  color: var(--ui-text-secondary);
  background: var(--ui-surface-2);
}

.chart-of-accounts-page .coa-expand-btn mat-icon {
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
}

/* ═══ TREE TABLE CARD ═══ */
/* Override glass-table-card base: it uses display:flex + max-height:86vh + overflow:hidden
   which is designed for glass-table (tbody scrolls). Our tree-table grows naturally. */
.chart-of-accounts-page .coa-tree-card {
  display: block !important; /* override flex */
  max-height: none !important; /* override 86vh cap */
  overflow: visible !important; /* let page scroll vertically */
  padding: 0;
}

/* ── Column Header Row ── */
.chart-of-accounts-page .coa-header-row {
  display: grid;
  grid-template-columns: minmax(200px, 2fr) 80px 100px minmax(100px, 1fr) 90px 80px;
  padding: 0 var(--ui-space-5);
  height: 44px;
  min-height: 44px;
  align-items: center;
  background: rgba(255, 255, 255, 0.045);
  border-bottom: 1px solid var(--ui-border);
  position: sticky;
  top: 0;
  z-index: 10;
}

.chart-of-accounts-page .coa-col {
  font-size: var(--ui-table-header-font);
  font-weight: var(--ui-table-header-weight);
  color: var(--ui-table-header-color);
  text-transform: uppercase;
  letter-spacing: var(--ui-table-header-spacing);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.chart-of-accounts-page .coa-col--balance,
.chart-of-accounts-page .coa-col--status {
  text-align: right;
}

.chart-of-accounts-page .coa-col--actions {
  text-align: right;
}

/* ═══ TREE ROWS — Base ═══ */
.chart-of-accounts-page .coa-tree-row {
  display: grid;
  grid-template-columns: minmax(200px, 2fr) 80px 100px minmax(100px, 1fr) 90px 80px;
  padding: 0 var(--ui-space-5);
  min-height: 48px;
  align-items: center;
  border-bottom: 1px solid var(--ui-table-row-border);
  cursor: pointer;
  transition: background var(--ui-transition-fast), box-shadow var(--ui-transition-fast);
  position: relative;
}

.chart-of-accounts-page .coa-tree-row:last-child {
  border-bottom: none;
}

/* ── Group Row (Assets, Liabilities, etc.) ── */
.chart-of-accounts-page .coa-tree-row--group {
  min-height: 52px;
  background: rgba(255, 255, 255, 0.025);
  border-bottom: 1px solid rgba(255, 130, 90, 0.1);
  border-left: 3px solid rgba(255, 130, 90, 0.25);
  cursor: pointer;
}

.chart-of-accounts-page .coa-tree-row--group:hover {
  background: rgba(255, 130, 90, 0.04);
}

/* ── Account Row ── */
.chart-of-accounts-page .coa-tree-row--account:hover {
  background: var(--ui-table-row-hover);
  box-shadow: inset 3px 0 0 var(--ui-brand);
}

.chart-of-accounts-page .coa-tree-row--account:hover .coa-row-actions {
  opacity: 1;
  pointer-events: all;
  transform: translateX(0);
}

.chart-of-accounts-page .coa-tree-row--selected {
  background: var(--ui-table-row-active);
  box-shadow: inset 3px 0 0 var(--ui-brand);
}

.chart-of-accounts-page .coa-tree-row--inactive {
  opacity: 0.55;
}

/* ── Skeleton Row ── */
.chart-of-accounts-page .coa-tree-row--skeleton {
  cursor: default;
  pointer-events: none;
}

/* ── Row Inner (account column content) ── */
.chart-of-accounts-page .coa-row-inner {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  overflow: hidden;
}

/* ── Chevron ── */
.chart-of-accounts-page .coa-chevron {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: var(--ui-radius-sm);
  flex-shrink: 0;
  transition: transform var(--ui-transition-fast), background var(--ui-transition-fast);
  color: var(--ui-text-muted);
}

.chart-of-accounts-page .coa-chevron mat-icon {
  font-size: 18px !important;
  width: 18px !important;
  height: 18px !important;
  transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.chart-of-accounts-page .coa-chevron:hover {
  background: var(--ui-surface-3);
  color: var(--ui-text-primary);
}

.chart-of-accounts-page .coa-chevron--open mat-icon {
  transform: rotate(90deg);
}

.chart-of-accounts-page .coa-chevron--leaf {
  cursor: default;
  pointer-events: none;
}

.chart-of-accounts-page .coa-chevron--placeholder {
  pointer-events: none;
  opacity: 0;
}

/* Leaf dot */
.chart-of-accounts-page .coa-leaf-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--ui-text-subtle);
  display: block;
  margin: auto;
  flex-shrink: 0;
}

/* ── GROUP ROW CONTENT ── */
.chart-of-accounts-page .coa-group-label {
  font-size: 14px;
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  letter-spacing: 0.01em;
}

.chart-of-accounts-page .coa-group-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 18px;
  padding: 0 6px;
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-3);
  font-size: 10px;
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  margin-left: var(--ui-space-1);
  flex-shrink: 0;
}

/* ── ACCOUNT NAME ── */
.chart-of-accounts-page .coa-account-info {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
  overflow: hidden;
}

.chart-of-accounts-page .coa-account-name {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.3;
}

.chart-of-accounts-page .coa-account-name--root {
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  font-size: 13px;
}

.chart-of-accounts-page .coa-account-category {
  font-size: 10px;
  color: var(--ui-text-subtle);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  letter-spacing: 0.02em;
}

/* ── LOCK ICON ── */
.chart-of-accounts-page .coa-lock-icon {
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
  color: var(--ui-text-subtle);
  flex-shrink: 0;
  margin-left: 4px;
}

/* ── CODE COLUMN ── */
.chart-of-accounts-page .coa-code {
  font-family: var(--ui-font-mono);
  font-size: 11px;
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-subtle);
  letter-spacing: 0.04em;
  white-space: nowrap;
}

/* ═══ TYPE PILLS ═══ */
.chart-of-accounts-page .coa-type-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 9px;
  border-radius: var(--ui-radius-full);
  font-size: 9px;
  font-weight: var(--ui-font-bold);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  white-space: nowrap;
  border: 1px solid;
}

/* Asset – blue */
.chart-of-accounts-page .coa-type-pill[data-type=ASSET] {
  background: rgba(96, 165, 250, 0.12);
  border-color: rgba(96, 165, 250, 0.3);
  color: #93c5fd;
}

/* Liability – orange */
.chart-of-accounts-page .coa-type-pill[data-type=LIABILITY] {
  background: rgba(251, 146, 60, 0.12);
  border-color: rgba(251, 146, 60, 0.3);
  color: #fdba74;
}

/* Equity – purple */
.chart-of-accounts-page .coa-type-pill[data-type=EQUITY] {
  background: rgba(167, 139, 250, 0.12);
  border-color: rgba(167, 139, 250, 0.3);
  color: #c4b5fd;
}

/* Revenue – green */
.chart-of-accounts-page .coa-type-pill[data-type=REVENUE] {
  background: rgba(74, 222, 128, 0.12);
  border-color: rgba(74, 222, 128, 0.3);
  color: #86efac;
}

/* Expense – red */
.chart-of-accounts-page .coa-type-pill[data-type=EXPENSE] {
  background: rgba(248, 113, 113, 0.12);
  border-color: rgba(248, 113, 113, 0.3);
  color: #fca5a5;
}

/* ═══ BALANCE VALUES ═══ */
.chart-of-accounts-page .coa-balance-value {
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  font-variant-numeric: tabular-nums;
  text-align: right;
  display: block;
  white-space: nowrap;
  color: var(--ui-text-secondary);
}

.chart-of-accounts-page .coa-balance-value--positive {
  color: #34d399;
}

.chart-of-accounts-page .coa-balance-value--negative {
  color: #fb7185;
}

.chart-of-accounts-page .coa-balance-value--zero {
  color: var(--ui-text-subtle);
  font-weight: var(--ui-font-normal);
}

.chart-of-accounts-page .coa-balance-value--group {
  font-weight: var(--ui-font-bold);
}

.chart-of-accounts-page .coa-balance-placeholder {
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-subtle);
  text-align: right;
  display: block;
}

/* ═══ STATUS CHIP ═══ */
.chart-of-accounts-page .coa-status-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-subtle);
  white-space: nowrap;
  justify-content: flex-end;
}

.chart-of-accounts-page .coa-status-chip--active {
  color: var(--ui-success);
}

.chart-of-accounts-page .coa-status-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ui-text-subtle);
  flex-shrink: 0;
  display: inline-block;
}

.chart-of-accounts-page .coa-status-chip--active .coa-status-dot {
  background: var(--ui-success);
  box-shadow: 0 0 6px rgba(74, 222, 128, 0.5);
}

.chart-of-accounts-page .coa-status-dot--active {
  background: var(--ui-success);
  box-shadow: 0 0 6px rgba(74, 222, 128, 0.5);
}

/* ═══ ROW ACTIONS (hover-reveal) ═══ */
.chart-of-accounts-page .coa-row-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
  opacity: 0;
  pointer-events: none;
  transform: translateX(4px);
  transition: opacity var(--ui-transition-fast), transform var(--ui-transition-fast);
}

.chart-of-accounts-page .coa-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: var(--ui-radius-sm);
  border: 1px solid transparent;
  background: transparent;
  color: var(--ui-text-muted);
  cursor: pointer;
  transition: all var(--ui-transition-fast);
  padding: 0;
}

.chart-of-accounts-page .coa-action-btn mat-icon {
  font-size: 15px !important;
  width: 15px !important;
  height: 15px !important;
}

.chart-of-accounts-page .coa-action-btn:hover {
  background: var(--ui-surface-3);
  border-color: var(--ui-border);
  color: var(--ui-text-primary);
}

.chart-of-accounts-page .coa-action-btn--danger:hover {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
}

.chart-of-accounts-page .coa-action-btn:disabled {
  opacity: 0.25;
  cursor: not-allowed;
  pointer-events: none;
}

/* ═══ INLINE ADD ROW ═══ */
.chart-of-accounts-page .coa-tree-row--inline-add {
  display: flex;
  align-items: center;
  background: rgba(255, 130, 90, 0.04);
  border-bottom: 1px solid rgba(255, 130, 90, 0.15);
  min-height: 48px;
  cursor: default;
  grid-template-columns: unset;
}

.chart-of-accounts-page .coa-inline-add-form {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: 0 var(--ui-space-5);
  width: 100%;
}

.chart-of-accounts-page .coa-inline-input {
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border-focus);
  border-radius: var(--ui-radius-sm);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  font-family: var(--ui-font-primary);
  padding: 6px 10px;
  outline: none;
  flex: 1;
  transition: border-color var(--ui-transition-fast);
}

.chart-of-accounts-page .coa-inline-input--code {
  flex: 0 0 80px;
  font-family: var(--ui-font-mono);
  font-size: 12px;
}

.chart-of-accounts-page .coa-inline-input:focus {
  border-color: var(--ui-brand);
  background: rgba(255, 130, 90, 0.05);
}

.chart-of-accounts-page .coa-inline-save-btn,
.chart-of-accounts-page .coa-inline-cancel-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: var(--ui-radius-sm);
  border: none;
  cursor: pointer;
  padding: 0;
  transition: all var(--ui-transition-fast);
  flex-shrink: 0;
}

.chart-of-accounts-page .coa-inline-save-btn {
  background: var(--ui-success-bg);
  color: var(--ui-success);
  border: 1px solid var(--ui-success-border);
}

.chart-of-accounts-page .coa-inline-save-btn:hover:not(:disabled) {
  background: rgba(74, 222, 128, 0.25);
}

.chart-of-accounts-page .coa-inline-save-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.chart-of-accounts-page .coa-inline-cancel-btn {
  background: var(--ui-surface-2);
  color: var(--ui-text-muted);
  border: 1px solid var(--ui-border);
}

.chart-of-accounts-page .coa-inline-cancel-btn:hover {
  background: var(--ui-surface-3);
  color: var(--ui-text-primary);
}

.chart-of-accounts-page .coa-inline-save-btn mat-icon,
.chart-of-accounts-page .coa-inline-cancel-btn mat-icon {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
}

/* ═══ EMPTY STATE ═══ */
.chart-of-accounts-page .coa-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: var(--ui-space-12) var(--ui-space-4);
  gap: var(--ui-space-2);
}

.chart-of-accounts-page .coa-empty-state__icon {
  font-size: 48px !important;
  width: 48px !important;
  height: 48px !important;
  color: var(--ui-text-subtle);
  opacity: 0.4;
  margin-bottom: var(--ui-space-2);
}

.chart-of-accounts-page .coa-empty-state__title {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.chart-of-accounts-page .coa-empty-state__subtitle {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  max-width: 320px;
}

.chart-of-accounts-page .coa-empty-cta {
  margin-top: var(--ui-space-2);
}

/* ═══ DETAIL DRAWER ═══ */
.chart-of-accounts-page .ui-drawer__backdrop {
  z-index: 10000 !important;
  background: rgba(0, 0, 0, 0.25) !important;
  backdrop-filter: blur(8px) saturate(120%) !important;
  -webkit-backdrop-filter: blur(8px) saturate(120%) !important;
}

.chart-of-accounts-page .coa-drawer {
  width: 480px;
  z-index: 10001 !important;
  background: linear-gradient(165deg, rgba(30, 30, 34, 0.55) 0%, rgba(24, 24, 28, 0.65) 100%) !important;
  backdrop-filter: blur(48px) saturate(160%) brightness(1.1) !important;
  -webkit-backdrop-filter: blur(48px) saturate(160%) brightness(1.1) !important;
  border-left: 1px solid rgba(255, 255, 255, 0.08) !important;
}

/* Drawer Account code label */
.chart-of-accounts-page .coa-drawer__code {
  display: block;
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  margin-top: 2px;
  letter-spacing: 0.06em;
}

/* Meta row (type pill + status chip) */
.chart-of-accounts-page .coa-drawer__meta-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  margin-bottom: var(--ui-space-5);
  padding-bottom: var(--ui-space-4);
  border-bottom: 1px solid var(--ui-border);
  flex-wrap: wrap;
}

/* Detail grid */
.chart-of-accounts-page .coa-drawer__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--ui-space-4);
  margin-bottom: var(--ui-space-5);
}

.chart-of-accounts-page .coa-drawer__field {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
}

.chart-of-accounts-page .coa-drawer__field--full {
  grid-column: 1/-1;
}

.chart-of-accounts-page .coa-drawer__label {
  font-size: 10px;
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-subtle);
  text-transform: uppercase;
  letter-spacing: 0.07em;
}

.chart-of-accounts-page .coa-drawer__value {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  line-height: 1.4;
}

.chart-of-accounts-page .coa-drawer__value--mono {
  font-family: var(--ui-font-mono);
  font-size: 13px;
  color: var(--ui-text-primary);
  letter-spacing: 0.04em;
}

.chart-of-accounts-page .coa-drawer__value--locked {
  color: var(--ui-text-subtle);
  display: flex;
  align-items: center;
  gap: 4px;
}

/* Section (sub-accounts) */
.chart-of-accounts-page .coa-drawer__section {
  margin-bottom: var(--ui-space-5);
  padding-top: var(--ui-space-4);
  border-top: 1px solid var(--ui-border);
}

.chart-of-accounts-page .coa-drawer__section-title {
  font-size: 11px;
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  margin-bottom: var(--ui-space-3);
}

.chart-of-accounts-page .coa-drawer__sub-list {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.chart-of-accounts-page .coa-drawer__sub-item {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
}

.chart-of-accounts-page .coa-drawer__sub-name {
  flex: 1;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* View Ledger button */
.chart-of-accounts-page .coa-view-ledger-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  width: 100%;
  justify-content: center;
  padding: var(--ui-space-3) var(--ui-space-4);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  font-family: var(--ui-font-primary);
  cursor: pointer;
  transition: all var(--ui-transition-fast);
  margin-top: var(--ui-space-2);
}

.chart-of-accounts-page .coa-view-ledger-btn:hover {
  background: var(--ui-surface-2);
  border-color: var(--ui-border-hover);
  color: var(--ui-text-secondary);
}

.chart-of-accounts-page .coa-view-ledger-btn mat-icon {
  font-size: 18px !important;
  width: 18px !important;
  height: 18px !important;
}

/* ═══ RESPONSIVE ═══ */
@media (max-width: 900px) {
  .chart-of-accounts-page .coa-header-row,
  .chart-of-accounts-page .coa-tree-row {
    grid-template-columns: 1fr 70px 90px 0 80px 60px;
  }
  .chart-of-accounts-page .coa-col--balance {
    display: none;
  }
}
@media (max-width: 768px) {
  .chart-of-accounts-page .coa-controls-bar {
    flex-direction: column;
    align-items: stretch;
  }
  .chart-of-accounts-page .coa-controls-bar__divider {
    display: none;
  }
  .chart-of-accounts-page .coa-controls-bar__spacer {
    display: none;
  }
  .chart-of-accounts-page .coa-expand-controls {
    width: 100%;
    justify-content: flex-end;
  }
  .chart-of-accounts-page .coa-header-row,
  .chart-of-accounts-page .coa-tree-row {
    grid-template-columns: 1fr 0 0 0 70px 50px;
  }
  .chart-of-accounts-page .coa-col--code,
  .chart-of-accounts-page .coa-col--balance {
    display: none;
  }
  .chart-of-accounts-page .coa-drawer {
    width: 100vw;
    max-width: 100vw;
  }
}
.recon-bulk-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 10px 16px;
  background: rgba(99, 102, 241, 0.12);
  border: 1px solid rgba(99, 102, 241, 0.25);
  border-radius: 10px;
  margin-bottom: 4px;
  animation: bulkBarIn 0.2s ease;
}
.recon-bulk-bar__info {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.9);
}
.recon-bulk-bar__info mat-icon {
  color: #a5b4fc;
  font-size: 18px;
  width: 18px;
  height: 18px;
}
.recon-bulk-bar__info strong {
  color: #a5b4fc;
}
.recon-bulk-bar__limit {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.4);
}
.recon-bulk-bar__actions {
  display: flex;
  gap: 8px;
  align-items: center;
}

@keyframes bulkBarIn {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.recon-checkbox {
  width: 15px;
  height: 15px;
  cursor: pointer;
  accent-color: #6366f1;
}

.recon-row--bulk-selected {
  background: rgba(99, 102, 241, 0.08) !important;
  box-shadow: inset 2px 0 0 #6366f1;
}

.recon-side-panel {
  background: var(--glass-card-bg, rgba(255, 255, 255, 0.03));
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  padding: 20px;
  margin-top: 8px;
  animation: panelIn 0.25s ease;
  max-width: 420px;
}
.recon-side-panel--wide {
  max-width: 100%;
}
.recon-side-panel__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.recon-side-panel__title-row {
  display: flex;
  align-items: center;
  gap: 8px;
}
.recon-side-panel__title-row mat-icon {
  color: #a5b4fc;
  font-size: 20px;
  width: 20px;
  height: 20px;
}
.recon-side-panel__title {
  font-size: 14px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.9);
  margin: 0;
}
.recon-side-panel__form {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 16px;
}
.recon-side-panel__form-group {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.recon-side-panel__label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: rgba(255, 255, 255, 0.45);
}
.recon-side-panel__input {
  padding: 7px 10px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 6px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  outline: none;
  transition: border-color 0.2s;
}
.recon-side-panel__input:focus {
  border-color: rgba(99, 102, 241, 0.5);
}
.recon-side-panel__list {
  margin-top: 8px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-height: 400px;
  overflow-y: auto;
}
.recon-side-panel__list-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: rgba(255, 255, 255, 0.4);
  margin: 0 0 4px;
}
.recon-side-panel__list-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 10px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 8px;
}
.recon-side-panel__lock-info {
  display: flex;
  align-items: center;
  gap: 8px;
}
.recon-side-panel__lock-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: #f59e0b;
}
.recon-side-panel__lock-range {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
}
.recon-side-panel__lock-meta {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.4);
}
.recon-side-panel__loading {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.4);
  padding: 16px 0;
}
.recon-side-panel__loading mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}
.recon-side-panel__empty {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.35);
  text-align: center;
  padding: 20px 0;
  font-style: italic;
}

@keyframes panelIn {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.recon-rule-card {
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition: border-color 0.2s;
}
.recon-rule-card:hover {
  border-color: rgba(99, 102, 241, 0.2);
}
.recon-rule-card__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.recon-rule-card__name {
  font-size: 13px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.9);
}
.recon-rule-card__meta {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.4);
  display: flex;
  gap: 8px;
}
.recon-rule-card__logic {
  background: rgba(99, 102, 241, 0.15);
  color: #a5b4fc;
  padding: 1px 6px;
  border-radius: 4px;
  font-weight: 700;
  font-size: 10px;
  letter-spacing: 0.06em;
}
.recon-rule-card__conditions {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
.recon-rule-card__condition {
  font-size: 11px;
  padding: 2px 8px;
  background: rgba(255, 255, 255, 0.04);
  border-radius: 4px;
  color: rgba(255, 255, 255, 0.6);
  font-family: monospace;
}
.recon-rule-card__action {
  font-size: 12px;
  color: #4ade80;
  font-weight: 600;
}
.recon-rule-card__footer {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 2px;
}
.recon-rule-card__stats {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.35);
  margin-right: auto;
}

@keyframes aiPulse {
  0%, 100% {
    opacity: 0.6;
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(1.02);
  }
}
.create-txn-modal__ai-suggestion {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px 14px;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(99, 102, 241, 0.12), rgba(139, 92, 246, 0.08));
  border: 1px solid rgba(139, 92, 246, 0.25);
  backdrop-filter: blur(8px);
  margin-bottom: 12px;
}
.create-txn-modal__ai-suggestion--low {
  background: rgba(99, 102, 241, 0.05);
  border-color: rgba(139, 92, 246, 0.12);
  opacity: 0.8;
}

.create-txn-modal__ai-header {
  display: flex;
  align-items: center;
  gap: 6px;
}

.create-txn-modal__ai-icon {
  font-size: 14px;
  line-height: 1;
}

.create-txn-modal__ai-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: rgba(139, 92, 246, 0.9);
  flex: 1;
}

.create-txn-modal__ai-confidence {
  font-size: 11px;
  padding: 2px 7px;
  border-radius: 20px;
  background: rgba(99, 102, 241, 0.15);
  color: rgba(255, 255, 255, 0.55);
  font-weight: 500;
}
.create-txn-modal__ai-confidence--high {
  background: rgba(34, 197, 94, 0.15);
  color: rgba(34, 197, 94, 0.9);
}

.create-txn-modal__ai-dismiss {
  background: none;
  border: none;
  cursor: pointer;
  color: rgba(255, 255, 255, 0.3);
  font-size: 12px;
  padding: 0 4px;
  line-height: 1;
  transition: color 0.15s;
}
.create-txn-modal__ai-dismiss:hover {
  color: rgba(255, 255, 255, 0.7);
}

.create-txn-modal__ai-body {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.create-txn-modal__ai-type {
  font-size: 12px;
  font-weight: 600;
  color: rgba(167, 139, 250, 0.9);
  text-transform: capitalize;
}

.create-txn-modal__ai-arrow {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.3);
}

.create-txn-modal__ai-account {
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.85);
}

.create-txn-modal__ai-reasoning {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
  font-style: italic;
  line-height: 1.4;
}

.create-txn-modal__ai-apply {
  align-self: flex-start;
  padding: 5px 12px;
  border-radius: 6px;
  border: 1px solid rgba(139, 92, 246, 0.4);
  background: rgba(99, 102, 241, 0.15);
  color: rgba(167, 139, 250, 0.95);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
}
.create-txn-modal__ai-apply:hover {
  background: rgba(99, 102, 241, 0.28);
  border-color: rgba(139, 92, 246, 0.65);
}

.create-txn-modal__ai-loading {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(99, 102, 241, 0.06);
  border: 1px dashed rgba(139, 92, 246, 0.15);
  margin-bottom: 12px;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.4);
  animation: aiPulse 1.6s ease-in-out infinite;
}

.create-txn-modal__ai-error {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.3);
  font-style: italic;
  margin-bottom: 10px;
  padding-left: 2px;
}

.recon-ai-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 6px;
  border: 1px solid rgba(139, 92, 246, 0.25);
  background: rgba(99, 102, 241, 0.08);
  color: rgba(139, 92, 246, 0.75);
  cursor: pointer;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.recon-ai-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}
.recon-ai-btn:hover {
  background: rgba(99, 102, 241, 0.2);
  border-color: rgba(139, 92, 246, 0.5);
  color: rgb(167, 139, 250);
}

.finance-page--bank-recon .recon-filter-bar {
  display: flex;
  align-items: center;
  flex: 1 1 100%;
  order: 3;
  gap: 12px;
  padding: 8px 16px;
  background: rgba(255, 255, 255, 0.03);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  flex-wrap: wrap;
}
.finance-page--bank-recon .recon-filter-bar__search {
  position: relative;
  flex: 1;
  min-width: 200px;
}
.finance-page--bank-recon .recon-filter-bar__search-icon {
  position: absolute;
  left: 8px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 18px;
  color: rgba(255, 255, 255, 0.4);
}
.finance-page--bank-recon .recon-filter-bar__input {
  width: 100%;
  padding: 6px 8px 6px 32px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 6px;
  color: #e0e0e0;
  font-size: 13px;
  outline: none;
  transition: border-color 0.2s;
}
.finance-page--bank-recon .recon-filter-bar__input:focus {
  border-color: rgba(99, 102, 241, 0.5);
}
.finance-page--bank-recon .recon-filter-bar__input::placeholder {
  color: rgba(255, 255, 255, 0.3);
}
.finance-page--bank-recon .recon-filter-bar__group {
  display: flex;
  align-items: center;
  gap: 4px;
}
.finance-page--bank-recon .recon-filter-bar__label {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-right: 4px;
}
.finance-page--bank-recon .recon-filter-bar__date, .finance-page--bank-recon .recon-filter-bar__amt {
  padding: 5px 8px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 6px;
  color: #e0e0e0;
  font-size: 12px;
  width: 110px;
  outline: none;
}
.finance-page--bank-recon .recon-filter-bar__date:focus, .finance-page--bank-recon .recon-filter-bar__amt:focus {
  border-color: rgba(99, 102, 241, 0.5);
}
.finance-page--bank-recon .recon-filter-bar__amt {
  width: 80px;
}
.finance-page--bank-recon .recon-filter-bar__sep {
  color: rgba(255, 255, 255, 0.3);
  font-size: 12px;
}
.finance-page--bank-recon .recon-filter-bar__select {
  padding: 5px 8px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 6px;
  color: #e0e0e0;
  font-size: 12px;
  outline: none;
}
.finance-page--bank-recon .recon-filter-bar__clear {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  background: rgba(239, 68, 68, 0.15);
  border: 1px solid rgba(239, 68, 68, 0.3);
  border-radius: 6px;
  color: #f87171;
  font-size: 12px;
  cursor: pointer;
  transition: background 0.2s;
}
.finance-page--bank-recon .recon-filter-bar__clear mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}
.finance-page--bank-recon .recon-filter-bar__clear:hover {
  background: rgba(239, 68, 68, 0.25);
}

.recon-import-errors {
  margin: 0 0 12px;
}
.recon-import-errors__banner {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  background: rgba(245, 158, 11, 0.12);
  border: 1px solid rgba(245, 158, 11, 0.3);
  border-radius: 8px;
  color: #fbbf24;
  font-size: 13px;
  cursor: pointer;
  transition: background 0.2s;
}
.recon-import-errors__banner:hover {
  background: rgba(245, 158, 11, 0.18);
}
.recon-import-errors__icon {
  font-size: 20px;
  color: #f59e0b;
}
.recon-import-errors__chevron {
  margin-left: auto;
  font-size: 20px;
}
.recon-import-errors__detail {
  margin-top: 8px;
  border-radius: 8px;
  overflow: hidden;
}
.recon-import-errors__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
.recon-import-errors__table th {
  background: rgba(255, 255, 255, 0.05);
  padding: 6px 12px;
  text-align: left;
  color: rgba(255, 255, 255, 0.6);
  font-weight: 500;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.recon-import-errors__table td {
  padding: 6px 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  color: #e0e0e0;
}
.recon-import-errors__raw {
  font-family: "Roboto Mono", monospace;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
  max-width: 200px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.recon-audit__filter {
  margin-left: auto;
}
.recon-audit__action-filter {
  padding: 4px 8px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 6px;
  color: #e0e0e0;
  font-size: 12px;
  outline: none;
}
.recon-audit__timeline {
  padding: 12px 16px;
  max-height: 500px;
  overflow-y: auto;
}
.recon-audit__entry {
  display: flex;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}
.recon-audit__entry:last-child {
  border-bottom: none;
}
.recon-audit__entry-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(99, 102, 241, 0.15);
  flex-shrink: 0;
}
.recon-audit__entry-icon mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: #818cf8;
}
.recon-audit__entry-body {
  flex: 1;
  min-width: 0;
}
.recon-audit__entry-action {
  font-size: 13px;
  font-weight: 500;
  color: #e0e0e0;
}
.recon-audit__entry-meta {
  display: flex;
  gap: 8px;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
  margin-top: 2px;
}
.recon-audit__entry-user {
  color: rgba(99, 102, 241, 0.7);
}
.recon-audit__entry-detail {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.4);
  margin-top: 4px;
  font-style: italic;
}
.recon-audit__pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 12px 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.recon-audit__page-info {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
}

.recon-analytics {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 12px;
  padding: 20px;
  margin-top: 16px;
}
.recon-analytics__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}
.recon-analytics__title-row {
  display: flex;
  align-items: center;
  gap: 8px;
}
.recon-analytics__title-row mat-icon {
  font-size: 20px;
  color: #7c4dff;
}
.recon-analytics__title-row h3 {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}
.recon-analytics__actions {
  display: flex;
  gap: 4px;
}
.recon-analytics__loading, .recon-analytics__error, .recon-analytics__empty {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 32px 16px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.5);
}
.recon-analytics__error {
  color: #f48fb1;
}
.recon-analytics__error mat-icon {
  color: #f48fb1;
}
.recon-analytics__spinner {
  animation: spin 1.2s linear infinite;
}
@keyframes spin {
  100% {
    transform: rotate(360deg);
  }
}
.recon-analytics__kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 20px;
}
@media (max-width: 960px) {
  .recon-analytics__kpi-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
.recon-analytics__kpi {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 10px;
  padding: 14px 16px;
  text-align: center;
  transition: border-color 0.2s;
}
.recon-analytics__kpi:hover {
  border-color: rgba(124, 77, 255, 0.3);
}
.recon-analytics__kpi--warn {
  border-color: rgba(255, 183, 77, 0.2);
}
.recon-analytics__kpi--warn:hover {
  border-color: rgba(255, 183, 77, 0.4);
}
.recon-analytics__kpi-value {
  font-size: 22px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.95);
  margin-bottom: 4px;
  font-variant-numeric: tabular-nums;
}
.recon-analytics__kpi--warn .recon-analytics__kpi-value {
  color: #ffb74d;
}
.recon-analytics__kpi-label {
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 2px;
}
.recon-analytics__kpi-sub {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.35);
}
.recon-analytics__chart-card {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 10px;
  padding: 16px;
  margin-bottom: 14px;
}
.recon-analytics__chart-title {
  margin: 0 0 12px;
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.7);
}
.recon-analytics__bar-chart {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.recon-analytics__bar-row {
  display: grid;
  grid-template-columns: 80px 1fr 90px;
  align-items: center;
  gap: 10px;
}
.recon-analytics__bar-label {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.6);
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.recon-analytics__bar-track {
  height: 18px;
  background: rgba(255, 255, 255, 0.04);
  border-radius: 4px;
  overflow: hidden;
}
.recon-analytics__bar-fill {
  height: 100%;
  border-radius: 4px;
  transition: width 0.6s ease;
  min-width: 2px;
}
.recon-analytics__bar-fill--rate {
  background: linear-gradient(90deg, #7c4dff 0%, #b388ff 100%);
}
.recon-analytics__bar-fill--aging {
  background: linear-gradient(90deg, #ffb74d 0%, #ff8a65 100%);
}
.recon-analytics__bar-value {
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.7);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.recon-analytics__donut-grid {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.recon-analytics__donut-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.recon-analytics__donut-bar {
  height: 20px;
  background: rgba(255, 255, 255, 0.04);
  border-radius: 4px;
  overflow: hidden;
}
.recon-analytics__donut-fill {
  height: 100%;
  border-radius: 4px;
  transition: width 0.6s ease;
  min-width: 2px;
}
.recon-analytics__donut-fill--auto-match {
  background: linear-gradient(90deg, #69f0ae, #00e676);
}
.recon-analytics__donut-fill--manual-match {
  background: linear-gradient(90deg, #448aff, #2979ff);
}
.recon-analytics__donut-fill--bank-rule {
  background: linear-gradient(90deg, #7c4dff, #651fff);
}
.recon-analytics__donut-fill--created-transaction {
  background: linear-gradient(90deg, #ffd740, #ffc400);
}
.recon-analytics__donut-label {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.recon-analytics__donut-name {
  font-size: 12px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.7);
}
.recon-analytics__donut-count {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
  font-variant-numeric: tabular-nums;
}
.recon-analytics__narration-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
.recon-analytics__narration-table th {
  text-align: left;
  padding: 6px 8px;
  font-size: 10px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.4);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.recon-analytics__narration-table td {
  padding: 6px 8px;
  color: rgba(255, 255, 255, 0.7);
  border-bottom: 1px solid rgba(255, 255, 255, 0.03);
  font-variant-numeric: tabular-nums;
}
.recon-analytics__narration-table tr:last-child td {
  border-bottom: none;
}
.recon-analytics__narration-table tr:hover td {
  background: rgba(255, 255, 255, 0.02);
}
.recon-analytics__narration-text {
  max-width: 240px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ==========================================================================
   FINANCE MIGRATION — Page-Level UI Contract
   ==========================================================================
   Scoped styling for Finance > Migration workspace and Tally XML import.
   Visual ownership lives here by the Autroid UI contract; components only
   provide structure and behavior.
   ========================================================================== */
.finance-page--migration {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
}

.finance-page--migration .finance-migration-header {
  margin-bottom: 0;
}

.finance-page--migration .header-card__top {
  align-items: center;
  padding: var(--ui-space-6);
}

.finance-page--migration .header-card__title-block {
  flex: 1 1 360px;
}

.finance-page--migration .header-card__stats {
  gap: var(--ui-space-3);
}

.finance-page--migration .stat-card--compact {
  min-width: 132px;
  border-radius: var(--ui-radius-lg);
}

.finance-page--migration .stat-card__icon,
.finance-page--migration .tally-company-badge__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: var(--ui-text-lg);
  width: var(--ui-text-lg);
  height: var(--ui-text-lg);
  color: var(--ui-brand-light);
}

.finance-page--migration .header-card__bottom {
  flex-wrap: wrap;
}

.finance-page--migration .finance-migration-match-note {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-subtle);
}

.finance-page--migration .ui-tab-content {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
}

.finance-page--migration .tally-file-input {
  display: none;
}

.finance-page--migration .tally-wizard {
  animation: finance-migration-fade-in var(--ui-transition-slow);
}

@keyframes finance-migration-fade-in {
  from {
    opacity: 0;
    transform: translateY(var(--ui-space-2));
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.finance-page--migration .tally-dual-zones {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-5);
}

.finance-page--migration .tally-upload-zone {
  min-height: 208px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--ui-space-8) var(--ui-space-6);
  border: 1px dashed var(--ui-border-hover);
  border-radius: var(--ui-radius-lg);
  background: var(--ui-surface-1);
  text-align: center;
  cursor: pointer;
  transition: background var(--ui-transition-base), border-color var(--ui-transition-base), transform var(--ui-transition-base);
}

.finance-page--migration .tally-upload-zone:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-table-accent-border);
  transform: translateY(-1px);
}

.finance-page--migration .tally-upload-zone--active {
  cursor: default;
  border-style: solid;
  border-color: var(--ui-border-focus);
  background: var(--ui-surface-2);
}

.finance-page--migration .tally-upload-zone__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--ui-space-12);
  height: var(--ui-space-12);
  margin-bottom: var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  color: var(--ui-brand-light);
  background: var(--ui-table-accent-bg);
  border: 1px solid var(--ui-table-accent-border);
  font-size: var(--ui-text-2xl);
}

.finance-page--migration .tally-upload-zone__title {
  margin: 0 0 var(--ui-space-2);
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.finance-page--migration .tally-upload-zone__hint {
  margin: 0 0 var(--ui-space-4);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  line-height: 1.5;
}

.finance-page--migration .tally-upload-zone__hint small {
  color: var(--ui-text-subtle);
}

.finance-page--migration .tally-upload-progress {
  width: 100%;
  margin-top: var(--ui-space-2);
}

.finance-page--migration .tally-upload-progress__filename {
  margin-bottom: var(--ui-space-2);
  overflow: hidden;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.finance-page--migration .tally-upload-progress__bar {
  height: 6px;
  overflow: hidden;
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-3);
}

.finance-page--migration .tally-upload-progress__bar > div {
  height: 100%;
  border-radius: var(--ui-radius-full);
  background: var(--ui-brand-gradient);
  transition: width var(--ui-transition-slow);
}

.finance-page--migration .tally-upload-progress__status {
  margin-top: var(--ui-space-2);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}

.finance-page--migration .tally-upload-progress .btn {
  margin-top: var(--ui-space-3);
  margin-inline: var(--ui-space-1);
}

.finance-page--migration .tally-past-sessions {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  margin-top: var(--ui-space-5);
}

.finance-page--migration .tally-section-title {
  margin: 0;
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-semibold);
}

.finance-page--migration .tally-sessions-card {
  height: clamp(360px, 64vh, 720px);
  max-height: calc(100vh - 260px);
  min-height: 360px;
  overflow: hidden;
}

.finance-page--migration .tally-sessions-card .glass-table-scroll {
  min-height: 0;
  overflow-x: auto;
  overflow-y: hidden;
}

.finance-page--migration .tally-sessions-card .glass-table {
  flex: 1 1 auto;
  min-height: 0;
}

.finance-page--migration .tally-sessions-card .glass-table tbody {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
}

.finance-page--migration .tally-sessions-table {
  min-width: 1080px;
}

.finance-page--migration .tally-sessions-table .session-row {
  position: relative;
}

.finance-page--migration .tally-sessions-table .session-row:hover {
  background: var(--ui-table-row-hover);
}

.finance-page--migration .tally-sessions-table .session-row:has(.session-expand-icon--open) {
  background: var(--ui-table-row-active);
}

.finance-page--migration .tally-sessions-table .session-row:has(.session-expand-icon--open)::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: var(--ui-space-1);
  background: var(--ui-brand);
}

.finance-page--migration .tally-session-actions {
  min-width: 100px;
  white-space: nowrap;
  flex-wrap: nowrap;
}

/* ── Compact icon-only action buttons (session table) ── */
.finance-page--migration .tally-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
  color: var(--ui-text-muted);
  cursor: pointer;
  transition: background var(--ui-transition-fast), border-color var(--ui-transition-fast), color var(--ui-transition-fast);
}
.finance-page--migration .tally-icon-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}
.finance-page--migration .tally-icon-btn:hover {
  background: var(--ui-surface-3);
  color: var(--ui-text-primary);
}
.finance-page--migration .tally-icon-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.finance-page--migration .tally-icon-btn--primary {
  border-color: var(--ui-brand-border);
  background: var(--ui-brand-bg);
  color: var(--ui-brand-light);
}
.finance-page--migration .tally-icon-btn--primary:hover {
  background: var(--ui-brand);
  color: #fff;
}

.finance-page--migration .tally-icon-btn--danger {
  border-color: var(--ui-danger-border);
  background: var(--ui-danger-bg);
  color: var(--ui-danger);
}
.finance-page--migration .tally-icon-btn--danger:hover {
  background: var(--ui-danger);
  color: #fff;
}

.finance-page--migration .tally-icon-btn--warn {
  border-color: var(--ui-warning-border);
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
}
.finance-page--migration .tally-icon-btn--warn:hover {
  background: var(--ui-warning);
  color: #fff;
}

.finance-page--migration .tally-icon-btn--ghost {
  border-color: transparent;
  background: transparent;
  color: var(--ui-text-muted);
}
.finance-page--migration .tally-icon-btn--ghost:hover {
  background: var(--ui-surface-2);
  color: var(--ui-text-primary);
}

.finance-page--migration .tally-icon-btn--masters {
  border-color: var(--ui-info-border);
  background: var(--ui-info-bg);
  color: var(--ui-info);
}
.finance-page--migration .tally-icon-btn--masters:hover {
  background: var(--ui-info);
  color: #fff;
}

.finance-page--migration .tally-icon-btn--recover {
  border-color: var(--ui-warning-border);
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
}
.finance-page--migration .tally-icon-btn--recover:hover {
  background: var(--ui-warning);
  color: #fff;
}

.finance-page--migration .type-pill--success {
  color: var(--ui-success);
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
}

.finance-page--migration .type-pill--warning {
  color: var(--ui-warning);
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
}

.finance-page--migration .type-pill--danger {
  color: var(--ui-danger);
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
}

.finance-page--migration .type-pill--info {
  color: var(--ui-info);
  background: var(--ui-info-bg);
  border-color: var(--ui-info-border);
}

.finance-page--migration .type-pill--ghost {
  color: var(--ui-text-muted);
  background: var(--ui-surface-1);
  border-color: var(--ui-border);
}

.finance-page--migration .tally-session-actions,
.finance-page--migration .tally-preview-actions,
.finance-page--migration .rollback-dialog__actions,
.finance-page--migration .confirm-actions {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.finance-page--migration .tally-preview-actions--spaced,
.finance-page--migration .resolution-table-wrap--spaced,
.finance-page--migration .tally-result__financial-impact--spaced {
  margin-top: var(--ui-space-4);
}

.finance-page--migration :where(.pill-btn-primary, .pill-btn-secondary, .pill-btn-ghost, .pill-btn-danger, .pill-btn-warn, .pill-btn-masters) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-1);
  min-height: 32px;
  padding: var(--ui-space-1) var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  font: inherit;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  white-space: nowrap;
  cursor: pointer;
  transition: background var(--ui-transition-base), border-color var(--ui-transition-base), color var(--ui-transition-base);
}

.finance-page--migration :where(.pill-btn-primary, .pill-btn-secondary, .pill-btn-ghost, .pill-btn-danger, .pill-btn-warn, .pill-btn-masters) mat-icon,
.finance-page--migration .btn mat-icon {
  font-size: var(--ui-text-md);
  width: var(--ui-text-md);
  height: var(--ui-text-md);
}

.finance-page--migration .pill-btn-primary {
  color: var(--ui-info);
  background: var(--ui-info-bg);
  border: 1px solid var(--ui-info-border);
}

.finance-page--migration .pill-btn-secondary,
.finance-page--migration .pill-btn-ghost {
  color: var(--ui-text-secondary);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-hover);
}

.finance-page--migration .pill-btn-danger {
  color: var(--ui-danger);
  background: var(--ui-danger-bg);
  border: 1px solid var(--ui-danger-border);
}

.finance-page--migration .pill-btn-warn {
  color: var(--ui-warning);
  background: var(--ui-warning-bg);
  border: 1px solid var(--ui-warning-border);
}

.finance-page--migration .pill-btn-masters {
  color: var(--ui-brand-light);
  background: var(--ui-table-accent-bg);
  border: 1px solid var(--ui-table-accent-border);
}

.finance-page--migration :where(.pill-btn-primary, .pill-btn-secondary, .pill-btn-ghost, .pill-btn-danger, .pill-btn-warn, .pill-btn-masters):disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.finance-page--migration .tally-preview-header {
  display: flex;
  align-items: center;
  gap: var(--ui-space-5);
  flex-wrap: wrap;
  margin-bottom: var(--ui-space-4);
}

.finance-page--migration .tally-company-badge {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-5);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
}

.finance-page--migration .tally-company-badge strong {
  display: block;
  font-size: var(--ui-text-base);
  color: var(--ui-text-primary);
}

.finance-page--migration .tally-masters-preview-dialog__header {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) minmax(0, auto) auto;
  align-items: center;
  gap: var(--ui-space-4);
  padding: var(--ui-space-3) var(--ui-space-5);
  min-height: 92px;
}

.finance-page--migration .tally-masters-preview-dialog__body {
  gap: var(--ui-space-3);
  min-height: 0;
  padding: var(--ui-space-3) var(--ui-space-5);
}

.finance-page--migration .tally-masters-preview-dialog .tally-preview-stats {
  flex: 0 0 auto;
}

.finance-page--migration .tally-masters-preview-dialog .tally-preview-stats--header {
  justify-content: flex-end;
  flex-wrap: nowrap;
  gap: var(--ui-space-2);
  min-width: 0;
  overflow-x: auto;
  padding-bottom: var(--ui-space-1);
}

.finance-page--migration .tally-masters-preview-dialog__header .stat-card--compact {
  min-width: 118px;
  max-width: 132px;
  min-height: 64px;
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-md);
}

.finance-page--migration .tally-masters-preview-dialog__header .stat-card__header {
  gap: var(--ui-space-2);
  margin-bottom: var(--ui-space-1);
}

.finance-page--migration .tally-masters-preview-dialog__header .stat-card__value {
  min-height: 24px;
  padding: 2px var(--ui-space-2);
  font-size: var(--ui-text-base);
}

.finance-page--migration .tally-masters-preview-dialog .tally-preview-actions {
  justify-content: flex-start;
  margin: 0;
  padding: 0;
  border: 0;
}

.finance-page--migration .tally-masters-preview-dialog__footer {
  flex-wrap: wrap;
}

.finance-page--migration .tally-masters-preview-dialog .tally-filter-tabs {
  margin: 0;
}

.finance-page--migration .tally-masters-preview-dialog .tally-table-wrapper {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--ui-border-hover) transparent;
}

.finance-page--migration .tally-masters-preview-dialog .tally-preview-table {
  min-width: 1280px;
}

.finance-page--migration .tally-masters-preview-dialog .tally-preview-table thead {
  position: sticky;
  top: 0;
  z-index: var(--z-sticky);
}

.finance-page--migration .tally-masters-preview-dialog .tally-preview-table .tally-th {
  position: sticky;
  top: 0;
  z-index: var(--z-sticky);
  background: var(--ui-table-header-bg);
  backdrop-filter: var(--ui-blur-md);
  -webkit-backdrop-filter: var(--ui-blur-md);
}

.finance-page--migration .tally-masters-preview-dialog .tally-totals-footer {
  flex: 0 0 auto;
  margin-top: 0;
}

.finance-page--migration .tally-preview-stats {
  flex-wrap: wrap;
}

.finance-page--migration .tally-filter-stat {
  cursor: pointer;
  pointer-events: auto;
}

.finance-page--migration .stat-card--active {
  border-color: var(--ui-border-focus);
  box-shadow: var(--ui-shadow-glow);
}

.finance-page--migration .tally-alert {
  margin-bottom: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
  border-radius: var(--ui-radius-md);
  font-size: var(--ui-text-base);
  line-height: 1.5;
}

.finance-page--migration .tally-alert--warn {
  color: var(--ui-warning);
  background: var(--ui-warning-bg);
  border: 1px solid var(--ui-warning-border);
}

.finance-page--migration .tally-alert--danger {
  color: var(--ui-danger);
  background: var(--ui-danger-bg);
  border: 1px solid var(--ui-danger-border);
}

.finance-page--migration .tally-override-input {
  width: 100%;
  margin-top: var(--ui-space-2);
}

.finance-page--migration .tally-filter-tabs {
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
  flex-wrap: wrap;
  margin: var(--ui-space-4) 0 var(--ui-space-3);
}

.finance-page--migration .tally-filter-tab {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  padding: 6px 14px;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: background var(--ui-transition-fast), border-color var(--ui-transition-fast), color var(--ui-transition-fast);
}

.finance-page--migration .tally-filter-tab:hover,
.finance-page--migration .tally-filter-tab--active {
  color: var(--ui-text-primary);
  background: var(--ui-table-accent-bg);
  border-color: var(--ui-table-accent-border);
}

.finance-page--migration .tally-filter-tab__count {
  min-width: 20px;
  padding: 1px 6px;
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-3);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-xs);
  text-align: center;
}

.finance-page--migration .tally-search-input {
  min-width: 220px;
  margin-left: auto;
  padding: 7px 12px;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  outline: none;
  background: var(--ui-surface-1);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
}

.finance-page--migration .tally-search-input:focus {
  border-color: var(--ui-border-focus);
  background: var(--ui-surface-2);
}

.finance-page--migration .tally-table-wrapper {
  margin-top: var(--ui-space-1);
  overflow-x: auto;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
}

.finance-page--migration .tally-preview-table {
  width: 100%;
  min-width: 1080px;
  border-collapse: collapse;
  font-size: var(--ui-text-sm);
}

.finance-page--migration .tally-th {
  padding: var(--ui-space-3);
  border-bottom: 1px solid var(--ui-border);
  background: var(--ui-table-header-bg);
  color: var(--ui-table-header-color);
  font-size: var(--ui-table-header-font);
  font-weight: var(--ui-table-header-weight);
  letter-spacing: var(--ui-table-header-spacing);
  text-align: left;
  text-transform: uppercase;
  white-space: nowrap;
}

.finance-page--migration .tally-th--checkbox {
  width: 36px;
  text-align: center;
}

.finance-page--migration .tally-th--name {
  min-width: 200px;
}

.finance-page--migration .tally-th--group {
  min-width: 120px;
}

.finance-page--migration .tally-th--action {
  min-width: 100px;
}

.finance-page--migration .tally-th--role {
  min-width: 80px;
}

.finance-page--migration .tally-th--balance {
  min-width: 120px;
  text-align: right;
}

.finance-page--migration .tally-th--confidence {
  min-width: 90px;
}

.finance-page--migration .tally-th--detail {
  min-width: 220px;
}

.finance-page--migration .tally-th--status {
  min-width: 90px;
}

.finance-page--migration .tally-tr {
  border-bottom: 1px solid var(--ui-table-row-border);
  transition: background var(--ui-transition-fast);
}

.finance-page--migration .tally-tr:hover {
  background: var(--ui-table-row-hover);
}

.finance-page--migration .tally-tr--muted {
  opacity: 0.45;
}

.finance-page--migration .tally-tr--duplicate {
  background: var(--ui-danger-bg);
}

.finance-page--migration .tally-tr--low {
  background: var(--ui-warning-bg);
}

.finance-page--migration .tally-td {
  padding: var(--ui-space-2) var(--ui-space-3);
  vertical-align: top;
}

.finance-page--migration .tally-td--checkbox {
  text-align: center;
  vertical-align: middle;
}

.finance-page--migration .tally-td--balance {
  font-family: var(--ui-font-mono);
  font-weight: var(--ui-font-medium);
  text-align: right;
}

.finance-page--migration .tally-td--negative {
  color: var(--ui-danger);
}

.finance-page--migration .tally-td__primary {
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-medium);
}

.finance-page--migration .tally-td__sub {
  margin-top: 2px;
  color: var(--ui-text-subtle);
  font-size: var(--ui-text-xs);
}

.finance-page--migration .tally-td__mapping {
  color: var(--ui-info);
  font-size: var(--ui-text-sm);
}

.finance-page--migration .tally-td__error {
  margin-top: 2px;
  color: var(--ui-warning);
  font-size: var(--ui-text-xs);
}

.finance-page--migration .tally-td__dash {
  color: var(--ui-text-disabled);
}

.finance-page--migration .tally-empty-state {
  padding: var(--ui-space-8);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-base);
  text-align: center;
}

.finance-page--migration .tally-confidence-dot {
  margin-right: var(--ui-space-1);
  font-size: var(--ui-text-xs);
}

.finance-page--migration .tally-confidence-dot--high {
  color: var(--ui-success);
}

.finance-page--migration .tally-confidence-dot--medium {
  color: var(--ui-warning);
}

.finance-page--migration .tally-confidence-dot--low {
  color: var(--ui-danger);
}

.finance-page--migration .tally-totals-footer,
.finance-page--migration .validation-tb-summary,
.finance-page--migration .session-detail__financial-impact,
.finance-page--migration .voucher-meta {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}

.finance-page--migration .tally-totals-footer {
  margin-top: var(--ui-space-2);
  padding: var(--ui-space-3) var(--ui-space-4);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
}

.finance-page--migration .tally-totals-sep {
  color: var(--ui-text-subtle);
}

.finance-page--migration .tally-totals--balanced,
.finance-page--migration .session-detail__value--success,
.finance-page--migration .session-detail__value--balanced,
.finance-page--migration .financial-impact__value--balanced {
  color: var(--ui-success);
}

.finance-page--migration .session-detail__value--danger,
.finance-page--migration .financial-impact__value--danger {
  color: var(--ui-danger);
}

.finance-page--migration .financial-impact__value--strong {
  font-weight: var(--ui-font-bold);
}

.finance-page--migration .voucher-chips {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(88px, 1fr));
  gap: var(--ui-space-2);
  margin-bottom: var(--ui-space-3);
}

.finance-page--migration .voucher-chip {
  display: flex;
  min-height: 72px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--ui-space-2) var(--ui-space-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
}

.finance-page--migration .voucher-chip__count {
  color: var(--ui-text-primary);
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-bold);
}

.finance-page--migration .voucher-chip__label {
  margin-top: 2px;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.finance-page--migration .voucher-chip--danger {
  border-color: var(--ui-danger-border);
  background: var(--ui-danger-bg);
}

.finance-page--migration .voucher-chip--danger .voucher-chip__count {
  color: var(--ui-danger);
}

.finance-page--migration .txn-section {
  margin-top: var(--ui-space-5);
  padding: var(--ui-space-4);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
}

.finance-page--migration .txn-section__heading {
  margin: 0 0 var(--ui-space-3);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
}

.finance-page--migration .risk-badge {
  display: inline-flex;
  margin-left: var(--ui-space-2);
  padding: 2px var(--ui-space-2);
  border-radius: var(--ui-radius-sm);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  letter-spacing: 0.06em;
  vertical-align: middle;
}

.finance-page--migration .risk-badge--low {
  color: var(--ui-success);
  background: var(--ui-success-bg);
}

.finance-page--migration .risk-badge--medium {
  color: var(--ui-warning);
  background: var(--ui-warning-bg);
}

.finance-page--migration .risk-badge--high,
.finance-page--migration .risk-badge--critical {
  color: var(--ui-danger);
  background: var(--ui-danger-bg);
}

.finance-page--migration .validation-table {
  width: 100%;
  margin-top: var(--ui-space-2);
  overflow: hidden;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  border-collapse: separate;
  border-spacing: 0;
  font-size: var(--ui-text-sm);
}

.finance-page--migration .validation-table td {
  padding: 7px var(--ui-space-3);
  border-bottom: 1px solid var(--ui-table-row-border);
}

.finance-page--migration .validation-table tr:last-child td {
  border-bottom: none;
}

.finance-page--migration .validation-table tr:hover {
  background: var(--ui-table-row-hover);
}

.finance-page--migration .validation-table__value {
  font-family: var(--ui-font-mono);
  font-weight: var(--ui-font-semibold);
  text-align: right;
}

.finance-page--migration .validation-table__icon {
  width: 32px;
  text-align: center;
}

.finance-page--migration .migration-gate {
  margin-top: var(--ui-space-4);
  padding: var(--ui-space-4);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
}

.finance-page--migration .migration-gate--blocked {
  border-color: var(--ui-danger-border);
  background: var(--ui-danger-bg);
}

.finance-page--migration .migration-gate--ready {
  border-color: var(--ui-success-border);
  background: var(--ui-success-bg);
}

.finance-page--migration .migration-gate__header {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.finance-page--migration .migration-gate__icon {
  font-size: var(--ui-text-lg);
}

.finance-page--migration .migration-gate__title {
  color: var(--ui-text-primary);
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-bold);
}

.finance-page--migration .migration-gate__score {
  margin-left: auto;
  padding: 2px var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
}

.finance-page--migration .migration-gate__reasons,
.finance-page--migration .migration-gate__drift {
  margin-top: var(--ui-space-2);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}

.finance-page--migration .migration-gate__gates {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
  margin-top: var(--ui-space-3);
}

.finance-page--migration .migration-gate__gate {
  padding: 3px var(--ui-space-3);
  border: 1px solid var(--ui-danger-border);
  border-radius: var(--ui-radius-full);
  background: var(--ui-danger-bg);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
}

.finance-page--migration .migration-gate__gate--pass {
  border-color: var(--ui-success-border);
  background: var(--ui-success-bg);
}

.finance-page--migration .migration-gate__action-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  margin-top: var(--ui-space-4);
  padding-top: var(--ui-space-3);
  border-top: 1px solid var(--ui-border);
}

.finance-page--migration .migration-gate__hint {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  line-height: 1.4;
}

/* Step-by-step unblock guidance */
.finance-page--migration .migration-gate__steps {
  margin-top: var(--ui-space-3);
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.finance-page--migration .migration-gate__steps-title {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: var(--ui-space-2);
}

.finance-page--migration .migration-gate__step {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  line-height: 1.5;
}

.finance-page--migration .migration-gate__step + .migration-gate__step {
  border-top: 1px solid rgba(255, 255, 255, 0.04);
}

.finance-page--migration .migration-gate__step-num {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  flex-shrink: 0;
  margin-top: 1px;
}

.finance-page--migration .migration-gate__step--ready {
  color: var(--ui-success);
}

.finance-page--migration .migration-gate__step--ready .migration-gate__step-num {
  background: rgba(34, 197, 94, 0.15);
  color: var(--ui-success);
}

.finance-page--migration .migration-gate__step strong {
  color: var(--ui-warning);
}

.finance-page--migration .session-detail {
  padding: var(--ui-space-6);
  gap: var(--ui-space-5);
}

.finance-page--migration .session-detail__section {
  min-width: 0;
}

.finance-page--migration .session-detail__grid {
  grid-template-columns: repeat(auto-fit, minmax(176px, 1fr));
  align-items: start;
}

.finance-page--migration .session-detail__grid > .session-detail__section {
  min-width: min(100%, 320px);
}

.finance-page--migration .session-detail__heading {
  color: var(--ui-text-muted);
}

.finance-page--migration .session-detail__errors {
  margin-top: var(--ui-space-2);
}

.finance-page--migration .session-detail__error-item {
  padding: var(--ui-space-1) 0;
  border-bottom: 1px solid var(--ui-table-row-border);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}

.finance-page--migration .session-detail__error-item:last-child {
  border-bottom: none;
}

.finance-page--migration .session-detail__error-evidence {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin-top: 2px;
  font-size: var(--ui-text-xs);
}

.finance-page--migration .tally-result {
  position: relative;
  padding: var(--ui-space-6) var(--ui-space-6) var(--ui-space-8);
  text-align: center;
}

.finance-page--migration .tally-result-dialog {
  width: min(92vw, 860px);
}

.finance-page--migration .tally-result-dialog .ui-modal__title-group {
  min-width: 0;
}

/* ── Success banner tint in header ── */
.finance-page--migration .tally-result-dialog .ui-modal__header {
  border-bottom: 1px solid rgba(74, 222, 128, 0.15);
  background: linear-gradient(135deg, rgba(74, 222, 128, 0.06) 0%, transparent 60%);
}

.finance-page--migration .tally-result__icon {
  margin-bottom: var(--ui-space-4);
  font-size: 48px;
}

.finance-page--migration .tally-result__status-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  margin: 0 auto var(--ui-space-5);
  border: 2px solid var(--ui-success-border);
  border-radius: var(--ui-radius-full);
  background: var(--ui-success-bg);
  color: var(--ui-success);
  font-size: 36px;
  box-shadow: 0 0 28px rgba(74, 222, 128, 0.25), var(--ui-shadow-md);
}

.finance-page--migration .tally-result__status-icon--warn {
  border-color: var(--ui-warning-border);
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
}

.finance-page--migration .tally-result__status-icon--danger {
  border-color: var(--ui-danger-border);
  background: var(--ui-danger-bg);
  color: var(--ui-danger);
}

.finance-page--migration .tally-result__stats {
  display: flex;
  justify-content: center;
  gap: var(--ui-space-4);
  flex-wrap: wrap;
  margin-top: var(--ui-space-6);
}

/* Always show stat cards, even single ones */
.finance-page--migration .tally-result__stats .stat-card {
  min-width: 120px;
  flex: 0 0 auto;
}

.finance-page--migration .tally-result__msg,
.finance-page--migration .tally-result__action {
  margin-top: var(--ui-space-5);
  font-size: var(--ui-text-base);
  color: var(--ui-text-secondary);
  max-width: 560px;
  margin-inline: auto;
}

.finance-page--migration .tally-result__financial-impact {
  width: min(100%, 360px);
  margin-right: auto;
  margin-left: auto;
  margin-top: var(--ui-space-4);
  padding: var(--ui-space-4) var(--ui-space-5);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
}

.finance-page--migration .tally-result-dialog__footer {
  justify-content: flex-end;
}

.finance-page--migration .financial-impact__row {
  display: flex;
  justify-content: space-between;
  gap: var(--ui-space-4);
  padding: var(--ui-space-2) 0;
  border-bottom: 1px solid var(--ui-table-row-border);
  font-size: var(--ui-text-base);
}

.finance-page--migration .financial-impact__row:last-child {
  border-bottom: none;
}

.finance-page--migration .financial-impact__row--net {
  font-weight: var(--ui-font-bold);
}

.finance-page--migration .financial-impact__label {
  color: var(--ui-text-muted);
}

.finance-page--migration .financial-impact__value {
  font-family: var(--ui-font-mono);
}

.finance-page--migration .rollback-dialog {
  width: min(100%, 620px);
  max-height: min(720px, 90vh);
}

.finance-page--migration .rollback-dialog__title {
  margin: 0;
}

.finance-page--migration .rollback-dialog__impact {
  display: grid;
  gap: var(--ui-space-2);
  margin-bottom: var(--ui-space-4);
}

.finance-page--migration .rollback-dialog__stat-row,
.finance-page--migration .masters-guide__step {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
}

.finance-page--migration .rollback-dialog__stat-row {
  padding: var(--ui-space-2) 0;
  border-bottom: 1px solid var(--ui-table-row-border);
}

.finance-page--migration .rollback-dialog__reason label {
  display: block;
  margin-bottom: var(--ui-space-2);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
}

.finance-page--migration .rollback-dialog__reason textarea,
.finance-page--migration .resolution-select {
  width: 100%;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  outline: none;
  background: var(--ui-surface-2);
  color: var(--ui-text-primary);
  font: inherit;
}

.finance-page--migration .rollback-dialog__reason textarea {
  padding: var(--ui-space-3);
  resize: vertical;
}

.finance-page--migration .resolution-dialog {
  width: min(1008px, 100vw - 48px);
  max-width: calc(100vw - 48px);
  height: min(780px, 100vh - 64px);
  max-height: calc(100vh - 64px);
  min-height: 520px;
}

.finance-page--migration .recon-dialog {
  width: min(100%, 740px);
}

.finance-page--migration .resolution-dialog__header {
  min-height: 74px;
  padding: var(--ui-space-4) var(--ui-space-5);
}

.finance-page--migration .resolution-dialog__title-group {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  min-width: 0;
}

.finance-page--migration .resolution-dialog__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border: 1px solid var(--ui-table-accent-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-table-accent-bg);
  color: var(--ui-brand-light);
}

.finance-page--migration .resolution-dialog__icon mat-icon {
  width: var(--ui-text-xl);
  height: var(--ui-text-xl);
  font-size: var(--ui-text-xl);
}

.finance-page--migration .resolution-dialog__title-copy {
  min-width: 0;
}

.finance-page--migration .resolution-dialog__title {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin: 0;
  font-size: var(--ui-text-lg);
  line-height: 1.25;
}

.finance-page--migration .resolution-dialog__title-copy .erp-subtitle {
  margin: var(--ui-space-1) 0 0;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  line-height: 1.4;
}

.finance-page--migration .resolution-dialog__status {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  min-height: 24px;
  padding: 0 var(--ui-space-3);
  border: 1px solid var(--ui-warning-border);
  border-radius: var(--ui-radius-full);
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  white-space: nowrap;
}

.finance-page--migration .resolution-dialog__body {
  padding: var(--ui-space-4) var(--ui-space-5) !important;
  overflow: hidden !important;
}

.finance-page--migration .resolution-table-card {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  border-radius: var(--ui-radius-lg);
  background: var(--ui-surface-1);
}

.finance-page--migration .resolution-toolbar {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) minmax(260px, 360px) auto;
  align-items: end;
  gap: var(--ui-space-3);
  padding: var(--ui-space-4);
  border-bottom: 1px solid var(--ui-border);
  background: var(--ui-surface-2);
}

.finance-page--migration .resolution-toolbar__field {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  min-width: 0;
}

.finance-page--migration .resolution-toolbar__label {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: var(--ui-table-header-spacing);
  text-transform: uppercase;
}

.finance-page--migration .resolution-input-shell {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  min-height: 38px;
  padding: 0 var(--ui-space-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
  color: var(--ui-text-muted);
  transition: border-color var(--ui-transition-base), background var(--ui-transition-base), box-shadow var(--ui-transition-base);
}

.finance-page--migration .resolution-input-shell:focus-within {
  border-color: var(--ui-border-focus);
  background: var(--ui-surface-2);
  box-shadow: 0 0 0 3px var(--ui-table-accent-bg);
}

.finance-page--migration .resolution-input-shell mat-icon {
  width: var(--ui-text-md);
  height: var(--ui-text-md);
  font-size: var(--ui-text-md);
}

.finance-page--migration .resolution-input {
  width: 100%;
  min-width: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--ui-text-primary);
  font: inherit;
}

.finance-page--migration .resolution-input::placeholder {
  color: var(--ui-text-subtle);
}

.finance-page--migration .resolution-toolbar__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ui-space-2);
  min-width: 0;
}

.finance-page--migration .resolution-bulk-bar__select {
  min-width: 0;
}

.finance-page--migration .resolution-bulk-bar__btn {
  white-space: nowrap;
}

.finance-page--migration .resolution-bulk-bar__btn mat-icon {
  font-size: var(--ui-text-md);
  width: var(--ui-text-md);
  height: var(--ui-text-md);
}

.finance-page--migration .resolution-table-card .glass-table-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
}

.finance-page--migration .resolution-table.glass-table {
  --resolution-grid-template: minmax(230px, 1.15fr) minmax(76px, 0.42fr) minmax(132px, 0.7fr) minmax(170px, 0.9fr) minmax(260px, 1.45fr);
  display: flex;
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  border: 0;
  border-radius: 0;
  font-size: var(--ui-text-sm);
}

.finance-page--migration .resolution-table.glass-table thead {
  display: block;
  width: 100%;
  background: var(--ui-table-header-bg);
}

.finance-page--migration .resolution-table.glass-table thead tr,
.finance-page--migration .resolution-table.glass-table tbody tr {
  display: grid;
  grid-template-columns: var(--resolution-grid-template);
  width: 100%;
  table-layout: auto;
}

.finance-page--migration .resolution-table.glass-table th {
  display: flex;
  align-items: center;
  justify-self: stretch;
  height: 44px;
  padding: 0 var(--ui-space-4);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  letter-spacing: var(--ui-table-header-spacing);
  text-align: left;
  text-transform: uppercase;
  min-width: 0;
}

.finance-page--migration .resolution-table.glass-table td {
  display: flex;
  align-items: center;
  justify-self: stretch;
  min-width: 0;
  padding: var(--ui-space-3) var(--ui-space-4);
  border-bottom: 1px solid var(--ui-table-row-border);
  color: var(--ui-text-secondary);
  text-align: left;
  vertical-align: middle;
}

.finance-page--migration .resolution-table.glass-table th[class*=ui-print-col-],
.finance-page--migration .resolution-table.glass-table td[class*=ui-print-col-] {
  width: auto !important;
  max-width: none;
}

.finance-page--migration .resolution-table.glass-table th:first-child,
.finance-page--migration .resolution-table.glass-table td:first-child {
  padding-left: var(--ui-space-5);
}

.finance-page--migration .resolution-table.glass-table td:first-child {
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: var(--ui-space-1);
}

.finance-page--migration .resolution-table.glass-table th:last-child,
.finance-page--migration .resolution-table.glass-table td:last-child {
  padding-right: var(--ui-space-5);
}

.finance-page--migration .resolution-table.glass-table tbody {
  display: block;
  flex: 1 1 auto;
  max-height: none;
  overflow-x: hidden;
  overflow-y: auto;
}

.finance-page--migration .resolution-table.glass-table tbody tr {
  cursor: default;
}

.finance-page--migration .resolution-row--needs-review::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: var(--ui-warning);
  opacity: 0.7;
}

.finance-page--migration .resolution-ledger-name {
  color: var(--ui-text-primary);
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  line-height: var(--ui-leading-snug);
  white-space: normal;
}

.finance-page--migration .resolution-ledger-group {
  color: var(--ui-text-subtle);
  font-size: var(--ui-text-xs);
  line-height: var(--ui-leading-snug);
  white-space: normal;
}

.finance-page--migration .resolution-count,
.finance-page--migration .resolution-amount {
  justify-content: flex-end;
  color: var(--ui-text-muted);
  font-family: var(--ui-font-mono);
  font-variant-numeric: tabular-nums;
}

.finance-page--migration .resolution-match {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--ui-space-1);
  min-width: 0;
}

.finance-page--migration .resolution-match__account {
  max-width: 100%;
  overflow: hidden;
  color: var(--ui-text-subtle);
  font-size: var(--ui-text-xs);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.finance-page--migration .resolution-select {
  width: 100%;
  min-width: 180px;
  max-width: 100%;
  min-height: 38px;
  padding: 0 var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  color: var(--ui-text-primary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: background var(--ui-transition-base), border-color var(--ui-transition-base), box-shadow var(--ui-transition-base);
}

.finance-page--migration .resolution-select:focus {
  border-color: var(--ui-border-focus);
  box-shadow: 0 0 0 3px var(--ui-table-accent-bg);
}

.finance-page--migration .resolution-select--unset {
  border-color: var(--ui-warning-border) !important;
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
  box-shadow: inset 3px 0 0 var(--ui-warning);
}

.finance-page--migration .resolution-select--unset:focus {
  border-color: var(--ui-warning-border) !important;
  box-shadow: inset 3px 0 0 var(--ui-warning), 0 0 0 3px var(--ui-warning-bg);
}

.finance-page--migration .resolution-dialog__footer {
  flex-wrap: wrap;
  padding: var(--ui-space-3) var(--ui-space-5) !important;
}

.finance-page--migration .resolution-dialog__save-state {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}

@media (max-width: 900px) {
  .finance-page--migration .resolution-dialog {
    width: calc(100vw - 24px);
    max-width: calc(100vw - 24px);
    height: calc(100vh - 32px);
    max-height: calc(100vh - 32px);
    min-height: 0;
  }
  .finance-page--migration .resolution-dialog__header,
  .finance-page--migration .resolution-dialog__body,
  .finance-page--migration .resolution-dialog__footer {
    padding-inline: var(--ui-space-4) !important;
  }
  .finance-page--migration .resolution-dialog__title-group {
    align-items: flex-start;
  }
  .finance-page--migration .resolution-dialog__status {
    display: none;
  }
  .finance-page--migration .resolution-toolbar {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .finance-page--migration .resolution-toolbar__actions {
    justify-content: flex-start;
    flex-wrap: wrap;
  }
  .finance-page--migration .resolution-dialog__save-state {
    width: 100%;
    margin-bottom: var(--ui-space-2);
  }
}
.finance-page--migration .recon-dialog {
  width: min(1180px, 100vw - 48px);
  max-width: calc(100vw - 48px);
  height: min(820px, 100vh - 64px);
  max-height: calc(100vh - 64px);
  min-height: 560px;
}

.finance-page--migration .recon-dialog__header {
  min-height: 78px;
  padding: var(--ui-space-4) var(--ui-space-5);
}

.finance-page--migration .recon-dialog__title-group {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  min-width: 0;
}

.finance-page--migration .recon-dialog__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  border: 1px solid var(--ui-info-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-info-bg);
  color: var(--ui-info);
}

.finance-page--migration .recon-dialog__icon--balanced {
  border-color: var(--ui-success-border);
  background: var(--ui-success-bg);
  color: var(--ui-success);
}

.finance-page--migration .recon-dialog__icon--drift-detected {
  border-color: var(--ui-warning-border);
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
}

.finance-page--migration .recon-dialog__icon--incomplete {
  border-color: var(--ui-danger-border);
  background: var(--ui-danger-bg);
  color: var(--ui-danger);
}

.finance-page--migration .recon-dialog__icon mat-icon {
  width: var(--ui-text-xl);
  height: var(--ui-text-xl);
  font-size: var(--ui-text-xl);
}

.finance-page--migration .recon-dialog__title-copy {
  min-width: 0;
}

.finance-page--migration .recon-dialog__title {
  margin: 0;
  font-size: var(--ui-text-lg);
  line-height: 1.25;
}

.finance-page--migration .recon-dialog__subtitle {
  margin: var(--ui-space-1) 0 0;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  line-height: 1.4;
}

.finance-page--migration .recon-status-badge {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  min-height: 26px;
  padding: 0 var(--ui-space-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-1);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  letter-spacing: var(--ui-table-header-spacing);
  text-transform: uppercase;
}

.finance-page--migration .recon-status--balanced {
  color: var(--ui-success);
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
}

.finance-page--migration .recon-status--drift-detected {
  color: var(--ui-warning);
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
}

.finance-page--migration .recon-status--incomplete {
  color: var(--ui-danger);
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
}

.finance-page--migration .recon-dialog__body {
  gap: var(--ui-space-4);
  padding: var(--ui-space-4) var(--ui-space-5) !important;
  overflow: hidden !important;
}

.finance-page--migration .recon-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
  gap: var(--ui-space-4);
  align-items: stretch;
  padding: var(--ui-space-5);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-lg);
  background: var(--ui-surface-1);
}

.finance-page--migration .recon-hero--balanced {
  border-color: var(--ui-success-border);
  background: var(--ui-success-bg);
}

.finance-page--migration .recon-hero--drift-detected {
  border-color: var(--ui-warning-border);
  background: var(--ui-warning-bg);
}

.finance-page--migration .recon-hero--incomplete {
  border-color: var(--ui-danger-border);
  background: var(--ui-danger-bg);
}

.finance-page--migration .recon-hero__copy {
  min-width: 0;
}

.finance-page--migration .recon-hero__eyebrow,
.finance-page--migration .recon-summary-card__label,
.finance-page--migration .recon-section-header__count {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  letter-spacing: var(--ui-table-header-spacing);
  text-transform: uppercase;
}

.finance-page--migration .recon-hero__title {
  margin: var(--ui-space-2) 0 var(--ui-space-1);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-bold);
  line-height: 1.25;
}

.finance-page--migration .recon-hero__text {
  max-width: 720px;
  margin: 0;
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  line-height: 1.55;
}

.finance-page--migration .recon-hero__metric {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--ui-space-1);
  padding: var(--ui-space-4);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-2);
}

.finance-page--migration .recon-metric__label,
.finance-page--migration .recon-metric__meta,
.finance-page--migration .recon-summary-card__hint {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}

.finance-page--migration .recon-metric__value {
  color: var(--ui-danger);
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-2xl);
  font-weight: var(--ui-font-bold);
  line-height: 1.1;
}

.finance-page--migration .recon-metric__value--balanced {
  color: var(--ui-success);
}

.finance-page--migration .recon-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ui-space-3);
}

.finance-page--migration .recon-summary-card {
  min-width: 0;
  padding: var(--ui-space-4);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
}

.finance-page--migration .recon-summary-card--attention {
  border-color: var(--ui-danger-border);
  background: var(--ui-danger-bg);
}

.finance-page--migration .recon-summary-card__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  margin-top: var(--ui-space-3);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}

.finance-page--migration .recon-summary-card__row strong {
  color: var(--ui-text-primary);
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  white-space: nowrap;
}

.finance-page--migration .recon-summary-card__count {
  margin-top: var(--ui-space-2);
  color: var(--ui-danger);
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-3xl);
  font-weight: var(--ui-font-bold);
  line-height: 1;
}

.finance-page--migration .recon-drift-card {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  border-radius: var(--ui-radius-lg);
}

.finance-page--migration .recon-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  padding: var(--ui-space-4);
  border-bottom: 1px solid var(--ui-border);
  background: var(--ui-surface-2);
}

.finance-page--migration .recon-section-header__title {
  margin: 0;
  color: var(--ui-text-primary);
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-bold);
}

.finance-page--migration .recon-section-header__subtitle {
  margin: var(--ui-space-1) 0 0;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}

.finance-page--migration .recon-section-header__count {
  flex: 0 0 auto;
  padding: var(--ui-space-1) var(--ui-space-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-1);
}

.finance-page--migration .recon-drift-card .glass-table-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}

.finance-page--migration .recon-drift-table.glass-table {
  --recon-grid-template: minmax(340px, 1.7fr) repeat(4, minmax(132px, 0.8fr)) minmax(150px, 0.9fr);
  display: flex;
  flex: 1 1 auto;
  min-width: 1040px;
  border: 0;
  border-radius: 0;
}

.finance-page--migration .recon-drift-table.glass-table thead,
.finance-page--migration .recon-drift-table.glass-table tbody {
  display: block;
}

.finance-page--migration .recon-drift-table.glass-table tbody {
  flex: 1 1 auto;
  max-height: none;
  overflow-x: hidden;
  overflow-y: auto;
}

.finance-page--migration .recon-drift-table.glass-table thead tr,
.finance-page--migration .recon-drift-table.glass-table tbody tr {
  display: grid;
  grid-template-columns: var(--recon-grid-template);
  width: 100%;
  table-layout: auto;
}

.finance-page--migration .recon-drift-table.glass-table th,
.finance-page--migration .recon-drift-table.glass-table td {
  display: flex;
  align-items: center;
  justify-self: stretch;
  min-width: 0;
  padding: var(--ui-space-3) var(--ui-space-4);
  text-align: left;
}

.finance-page--migration .recon-drift-table.glass-table th[class*=ui-print-col-],
.finance-page--migration .recon-drift-table.glass-table td[class*=ui-print-col-] {
  width: auto !important;
  max-width: none;
}

.finance-page--migration .recon-drift-table.glass-table th {
  height: 44px;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  letter-spacing: var(--ui-table-header-spacing);
  text-transform: uppercase;
}

.finance-page--migration .recon-drift-table.glass-table td {
  border-bottom: 1px solid var(--ui-table-row-border);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
}

.finance-page--migration .recon-account-name {
  color: var(--ui-text-primary) !important;
  font-weight: var(--ui-font-semibold);
  line-height: var(--ui-leading-snug);
  white-space: normal;
}

.finance-page--migration .recon-money {
  justify-content: flex-end;
  color: var(--ui-text-secondary) !important;
  font-family: var(--ui-font-mono);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.finance-page--migration .recon-money--danger {
  color: var(--ui-danger) !important;
  font-weight: var(--ui-font-bold);
}

.finance-page--migration .recon-dialog__footer {
  flex-wrap: wrap;
  padding: var(--ui-space-3) var(--ui-space-5) !important;
}

.finance-page--migration .recon-dialog__footer-note {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}

@media (max-width: 900px) {
  .finance-page--migration .recon-dialog {
    width: calc(100vw - 24px);
    max-width: calc(100vw - 24px);
    height: calc(100vh - 32px);
    max-height: calc(100vh - 32px);
    min-height: 0;
  }
  .finance-page--migration .recon-dialog__header,
  .finance-page--migration .recon-dialog__body,
  .finance-page--migration .recon-dialog__footer {
    padding-inline: var(--ui-space-4) !important;
  }
  .finance-page--migration .recon-dialog__title-group,
  .finance-page--migration .recon-section-header {
    align-items: flex-start;
  }
  .finance-page--migration .recon-status-badge {
    display: none;
  }
  .finance-page--migration .recon-hero,
  .finance-page--migration .recon-summary-grid {
    grid-template-columns: 1fr;
  }
  .finance-page--migration .recon-dialog__footer-note {
    width: 100%;
    margin-bottom: var(--ui-space-2);
  }
}
.finance-page--migration .masters-guide-dialog {
  width: min(100%, 560px);
}

.finance-page--migration .masters-guide__subtitle {
  margin: calc(var(--ui-space-1) * -1) 0 var(--ui-space-5);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-base);
  line-height: 1.5;
}

.finance-page--migration .masters-guide__steps {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  margin-bottom: var(--ui-space-5);
}

.finance-page--migration .masters-guide__step {
  justify-content: flex-start;
  align-items: flex-start;
}

.finance-page--migration .masters-guide__step-num {
  display: inline-flex;
  min-width: 28px;
  height: 28px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--ui-table-accent-border);
  border-radius: var(--ui-radius-full);
  background: var(--ui-table-accent-bg);
  color: var(--ui-brand-light);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
}

.finance-page--migration .masters-guide__step-title {
  margin-bottom: 3px;
  color: var(--ui-text-primary);
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
}

.finance-page--migration .masters-guide__step-desc,
.finance-page--migration .masters-guide__note,
.finance-page--migration .rollback-hint,
.finance-page--migration .rollback-dialog__safe-msg,
.finance-page--migration .rollback-dialog__downstream-detail {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  line-height: 1.5;
}

.finance-page--migration .masters-guide__note,
.finance-page--migration .rollback-dialog__safe-msg {
  margin-bottom: var(--ui-space-4);
  padding: var(--ui-space-3) var(--ui-space-4);
  border: 1px solid var(--ui-success-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-success-bg);
}

.finance-page--migration .txn-drawer-backdrop {
  background: color-mix(in srgb, var(--ui-surface-base) 72%, transparent);
}

.finance-page--migration .txn-drawer {
  width: min(840px, 92vw);
}

.finance-page--migration .txn-drawer__header {
  align-items: flex-start;
  gap: var(--ui-space-3);
}

.finance-page--migration .txn-drawer__header-main {
  flex: 1 1 auto;
  min-width: 0;
}

.finance-page--migration .txn-drawer__title {
  margin: 0 0 var(--ui-space-1);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-bold);
}

.finance-page--migration .txn-drawer__subtitle,
.finance-page--migration .txn-drawer__badges {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.finance-page--migration .txn-drawer__subtitle {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}

.finance-page--migration .txn-drawer__sep {
  color: var(--ui-text-subtle);
}

.finance-page--migration .txn-drawer__badges {
  flex: 0 0 auto;
}

.finance-page--migration .txn-drawer__pill {
  font-size: var(--ui-text-xs);
}

.finance-page--migration .txn-drawer__close {
  flex: 0 0 auto;
}

.finance-page--migration .txn-drawer__body {
  display: flex;
  flex-direction: column;
  padding: 0;
}

.finance-page--migration .txn-drawer__tabs {
  display: flex;
  gap: var(--ui-space-1);
  overflow-x: auto;
  flex: 0 0 auto;
  padding: var(--ui-space-3) var(--ui-space-5) 0;
  border-bottom: 1px solid var(--ui-border);
}

.finance-page--migration .txn-drawer__tab {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  margin-bottom: -1px;
  padding: var(--ui-space-2) var(--ui-space-4);
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: var(--ui-radius-sm) var(--ui-radius-sm) 0 0;
  background: transparent;
  color: var(--ui-text-muted);
  font: inherit;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  white-space: nowrap;
  cursor: pointer;
  transition: background var(--ui-transition-fast), border-color var(--ui-transition-fast), color var(--ui-transition-fast);
}

.finance-page--migration .txn-drawer__tab:hover,
.finance-page--migration .txn-drawer__tab--active {
  background: var(--ui-info-bg);
  border-bottom-color: var(--ui-info);
  color: var(--ui-info);
}

.finance-page--migration .txn-drawer__tab-badge {
  display: inline-flex;
  min-width: 18px;
  height: 18px;
  align-items: center;
  justify-content: center;
  padding: 0 5px;
  border-radius: var(--ui-radius-full);
  background: var(--ui-danger-bg);
  color: var(--ui-danger);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
}

.finance-page--migration .txn-drawer__panel {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: var(--ui-space-5);
}

.finance-page--migration .txn-drawer__kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: var(--ui-space-3);
  margin-bottom: var(--ui-space-5);
}

.finance-page--migration .txn-drawer__kpi-grid--spaced {
  margin-top: var(--ui-space-4);
}

.finance-page--migration .txn-drawer__kpi {
  padding: var(--ui-space-3) var(--ui-space-4);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
}

.finance-page--migration .txn-drawer__kpi--warn {
  border-color: var(--ui-warning-border);
  background: var(--ui-warning-bg);
}

.finance-page--migration .txn-drawer__kpi--ok {
  border-color: var(--ui-success-border);
  background: var(--ui-success-bg);
}

.finance-page--migration .txn-drawer__kpi-value {
  color: var(--ui-text-primary);
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-bold);
  line-height: 1.2;
}

.finance-page--migration .txn-drawer__kpi-label {
  margin-top: var(--ui-space-1);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.finance-page--migration .txn-drawer__section-title {
  margin: var(--ui-space-5) 0 var(--ui-space-3);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.finance-page--migration .txn-drawer__action-row {
  display: flex;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.finance-page--migration .txn-drawer__empty {
  display: flex;
  min-height: 220px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-8) var(--ui-space-6);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-base);
  line-height: 1.6;
  text-align: center;
}

.finance-page--migration .txn-drawer__empty--ok {
  color: var(--ui-success);
}

.finance-page--migration .txn-drawer__empty-icon {
  width: var(--ui-space-8);
  height: var(--ui-space-8);
  color: var(--ui-text-disabled);
  font-size: var(--ui-space-8);
}

.finance-page--migration .txn-drawer__empty-icon--ok {
  color: var(--ui-success);
}

.finance-page--migration .txn-drawer__empty-note {
  margin-top: var(--ui-space-2);
  color: var(--ui-text-subtle);
  font-size: var(--ui-text-sm);
}

.finance-page--migration .txn-drawer__hint {
  margin-top: var(--ui-space-4);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  line-height: 1.6;
}

.finance-page--migration .txn-drawer__hint--loose {
  margin-top: var(--ui-space-5);
  color: var(--ui-text-subtle);
}

/* ── TB Drift Provenance Callout ── */
.finance-page--migration .txn-drawer__drift-callout {
  margin-top: var(--ui-space-4);
  padding: var(--ui-space-3) var(--ui-space-4);
  border-left: 3px solid var(--ui-danger);
  border-radius: var(--ui-radius-md);
  background: var(--ui-danger-bg);
}

.finance-page--migration .txn-drawer__drift-callout-title {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-danger);
  margin-bottom: var(--ui-space-2);
}

.finance-page--migration .txn-drawer__drift-callout-body {
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  line-height: 1.6;
  margin-bottom: var(--ui-space-2);
}

.finance-page--migration .txn-drawer__drift-callout-actions {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  line-height: 1.5;
}

.finance-page--migration .txn-drawer__inline-icon {
  width: var(--ui-text-md);
  height: var(--ui-text-md);
  font-size: var(--ui-text-md);
}

.finance-page--migration .txn-drawer__inline-icon--danger {
  color: var(--ui-danger);
}

.finance-page--migration .txn-drawer__inline-icon--warn {
  color: var(--ui-warning);
}

.finance-page--migration .txn-drawer__footer {
  justify-content: flex-start;
}

.finance-page--migration .txn-issue-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--ui-text-sm);
}

.finance-page--migration .txn-issue-table th {
  padding: var(--ui-space-2) var(--ui-space-3);
  border-bottom: 1px solid var(--ui-border);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  letter-spacing: 0.08em;
  text-align: left;
  text-transform: uppercase;
}

.finance-page--migration .txn-issue-table__row td {
  padding: 10px var(--ui-space-3);
  border-bottom: 1px solid var(--ui-table-row-border);
}

.finance-page--migration .txn-issue-table__row:hover td {
  background: var(--ui-table-row-hover);
}

.finance-page--migration .txn-issue-table__row--high td:first-child,
.finance-page--migration .txn-issue-table__row--medium td:first-child,
.finance-page--migration .txn-issue-table__row--low td:first-child,
.finance-page--migration .txn-issue-table__row--info td:first-child {
  padding-left: 10px;
  border-left: 2px solid var(--ui-border-hover);
}

.finance-page--migration .txn-issue-table__row--high td:first-child {
  border-left-color: var(--ui-danger);
}

.finance-page--migration .txn-issue-table__row--medium td:first-child {
  border-left-color: var(--ui-warning);
}

.finance-page--migration .txn-issue-table__row--low td:first-child {
  border-left-color: var(--ui-info);
}

.finance-page--migration .txn-issue-table__name {
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-medium);
}

.finance-page--migration .txn-issue-table__count {
  font-family: var(--ui-font-mono);
  font-weight: var(--ui-font-bold);
  text-align: right;
}

.finance-page--migration .txn-issue-table__count--zero {
  color: var(--ui-text-disabled);
}

.finance-page--migration .txn-issue-table__action {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}

.finance-page--migration .txn-sev-badge {
  display: inline-flex;
  padding: 2px var(--ui-space-2);
  border-radius: var(--ui-radius-sm);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  letter-spacing: 0.04em;
}

.finance-page--migration .txn-sev-badge--high {
  color: var(--ui-danger);
  background: var(--ui-danger-bg);
}

.finance-page--migration .txn-sev-badge--medium {
  color: var(--ui-warning);
  background: var(--ui-warning-bg);
}

.finance-page--migration .txn-sev-badge--low {
  color: var(--ui-info);
  background: var(--ui-info-bg);
}

.finance-page--migration .txn-sev-badge--info {
  color: var(--ui-text-muted);
  background: var(--ui-surface-2);
}

.finance-page--migration .txn-issue-row {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  font-size: var(--ui-text-sm);
  line-height: 1.5;
}

.finance-page--migration .txn-issue-row--high {
  background: var(--ui-danger-bg);
}

.finance-page--migration .txn-issue-row--warn {
  background: var(--ui-warning-bg);
}

.finance-page--migration .txn-issue-row--spaced {
  margin-bottom: var(--ui-space-3);
}

.finance-page--migration .txn-type-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: var(--ui-space-3);
}

.finance-page--migration .txn-type-card {
  padding: var(--ui-space-3) var(--ui-space-4);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
}

.finance-page--migration .txn-type-card--zero {
  opacity: 0.48;
}

.finance-page--migration .txn-type-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-2);
  margin-bottom: var(--ui-space-2);
}

.finance-page--migration .txn-type-card__name {
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
}

.finance-page--migration .txn-type-card__count {
  color: var(--ui-text-primary);
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-2xl);
  font-weight: var(--ui-font-bold);
}

.finance-page--migration .txn-type-card__bar {
  height: var(--ui-space-1);
  overflow: hidden;
  margin: var(--ui-space-2) 0 var(--ui-space-1);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-3);
}

.finance-page--migration .txn-type-card__bar-fill {
  height: 100%;
  border-radius: var(--ui-radius-full);
  background: var(--ui-info);
  transition: width var(--ui-transition-slow);
}

.finance-page--migration .txn-type-card__bar-fill--danger {
  background: var(--ui-danger);
}

.finance-page--migration .txn-type-card__pct {
  color: var(--ui-text-subtle);
  font-size: var(--ui-text-xs);
}

.finance-page--migration .txn-type-card__support {
  padding: 2px 7px;
  border-radius: var(--ui-radius-sm);
  font-size: 9px;
  font-weight: var(--ui-font-bold);
  letter-spacing: 0.04em;
}

.finance-page--migration .txn-type-card__support--supported {
  color: var(--ui-success);
  background: var(--ui-success-bg);
}

.finance-page--migration .txn-type-card__support--deferred {
  color: var(--ui-warning);
  background: var(--ui-warning-bg);
}

.finance-page--migration .txn-type-card__support--unsupported {
  color: var(--ui-danger);
  background: var(--ui-danger-bg);
}

.finance-page--migration .txn-compact-row {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  padding: var(--ui-space-1) 0;
}

.finance-page--migration .voucher-chips--compact {
  display: flex;
  flex-wrap: wrap;
}

.finance-page--migration .txn-kpi-strip {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
}

.finance-page--migration .txn-kpi {
  padding: 3px var(--ui-space-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-2);
  font-size: var(--ui-text-sm);
}

.finance-page--migration .txn-kpi--ok,
.finance-page--migration .risk-kpi--low {
  color: var(--ui-success);
  border-color: var(--ui-success-border);
  background: var(--ui-success-bg);
}

.finance-page--migration .txn-kpi--warn,
.finance-page--migration .risk-kpi--medium {
  color: var(--ui-warning);
  border-color: var(--ui-warning-border);
  background: var(--ui-warning-bg);
}

.finance-page--migration .risk-kpi {
  font-weight: var(--ui-font-bold);
}

.finance-page--migration .risk-kpi--high {
  color: var(--ui-danger);
  border-color: var(--ui-danger-border);
  background: var(--ui-danger-bg);
}

.finance-page--migration .txn-compact-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
  margin-top: 2px;
}

.finance-page--migration .pill-btn-info {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  min-height: 32px;
  padding: var(--ui-space-1) var(--ui-space-3);
  border: 1px solid var(--ui-info-border);
  border-radius: var(--ui-radius-full);
  background: var(--ui-info-bg);
  color: var(--ui-info);
  font: inherit;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
}

.finance-page--migration .pill-btn-info mat-icon {
  width: var(--ui-text-md);
  height: var(--ui-text-md);
  font-size: var(--ui-text-md);
}

.finance-page--migration .txn-exec-errors {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.finance-page--migration .txn-exec-error-row {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
  padding: var(--ui-space-2) var(--ui-space-3);
  border: 1px solid var(--ui-danger-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-danger-bg);
  font-size: var(--ui-text-sm);
}

.finance-page--migration .txn-exec-error-type {
  color: var(--ui-danger);
  font-weight: var(--ui-font-semibold);
  white-space: nowrap;
}

.finance-page--migration .txn-exec-error-msg {
  flex: 1 1 180px;
  color: var(--ui-text-muted);
}

.finance-page--migration .migration-upload {
  width: min(100%, 680px);
  margin: 0 auto;
}

.finance-page--migration .migration-file-input {
  display: none;
}

.finance-page--migration .migration-drop-zone {
  display: flex;
  min-height: 260px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--ui-space-8) var(--ui-space-6);
  border: 1px dashed var(--ui-border-hover);
  border-radius: var(--ui-radius-lg);
  background: var(--ui-surface-1);
  text-align: center;
  cursor: pointer;
  transition: background var(--ui-transition-base), border-color var(--ui-transition-base), transform var(--ui-transition-base);
}

.finance-page--migration .migration-drop-zone:hover,
.finance-page--migration .migration-drop-zone--active {
  border-color: var(--ui-border-focus);
  background: var(--ui-surface-hover);
  transform: translateY(-1px);
}

.finance-page--migration .migration-drop-zone__icon {
  width: var(--ui-space-12);
  height: var(--ui-space-12);
  margin-bottom: var(--ui-space-3);
  border: 1px solid var(--ui-table-accent-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-table-accent-bg);
  color: var(--ui-brand-light);
  font-size: var(--ui-text-2xl);
  line-height: var(--ui-space-12);
}

.finance-page--migration .migration-drop-zone__title {
  color: var(--ui-text-primary);
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-semibold);
}

.finance-page--migration .migration-drop-zone__sub {
  margin-top: var(--ui-space-2);
  color: var(--ui-text-subtle);
  font-size: var(--ui-text-xs);
}

.finance-page--migration .migration-drop-zone__file {
  display: inline-flex;
  max-width: 100%;
  align-items: center;
  gap: var(--ui-space-1);
  margin-top: var(--ui-space-3);
  overflow: hidden;
  color: var(--ui-brand-light);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.finance-page--migration .migration-inline-icon {
  width: var(--ui-text-md);
  height: var(--ui-text-md);
  font-size: var(--ui-text-md);
}

.finance-page--migration .migration-upload__controls {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--ui-space-4);
  margin-top: var(--ui-space-5);
}

.finance-page--migration .migration-upload__field label,
.migration-modal .migration-reverse-form__label {
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
  margin-bottom: var(--ui-space-2);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
}

.finance-page--migration .migration-date-input,
.migration-modal .migration-reverse-input {
  width: 100%;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-2);
  color: var(--ui-text-primary);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
}

.finance-page--migration .migration-date-input {
  min-height: 38px;
  padding: var(--ui-space-2) var(--ui-space-3);
}

.finance-page--migration .migration-upload__actions,
.finance-page--migration .migration-batch-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
}

.finance-page--migration .migration-resolver-hint {
  margin-top: var(--ui-space-4);
  padding: var(--ui-space-2) var(--ui-space-3);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
  color: var(--ui-text-subtle);
  font-size: var(--ui-text-xs);
  text-align: center;
}

.finance-page--migration .migration-banner,
.migration-modal .migration-banner {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-4) var(--ui-space-5);
  margin-bottom: var(--ui-space-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-lg);
  background: var(--ui-surface-1);
}

.finance-page--migration .migration-banner--warning,
.migration-modal .migration-banner--warning {
  color: var(--ui-warning);
  border-color: var(--ui-warning-border);
  background: var(--ui-warning-bg);
}

.finance-page--migration .migration-banner--success,
.migration-modal .migration-banner--success {
  color: var(--ui-success);
  border-color: var(--ui-success-border);
  background: var(--ui-success-bg);
}

.finance-page--migration .migration-banner--danger,
.migration-modal .migration-banner--danger {
  color: var(--ui-danger);
  border-color: var(--ui-danger-border);
  background: var(--ui-danger-bg);
}

.finance-page--migration .migration-banner__icon,
.migration-modal .migration-banner__icon {
  flex: 0 0 auto;
  width: var(--ui-space-6);
  height: var(--ui-space-6);
  font-size: var(--ui-space-6);
}

.finance-page--migration .migration-banner__detail,
.migration-modal .migration-banner__detail {
  margin-top: var(--ui-space-1);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}

.finance-page--migration .migration-summary-bar,
.migration-modal .migration-summary-bar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-3);
}

.finance-page--migration .migration-stat,
.migration-modal .migration-stat {
  display: flex;
  min-width: 112px;
  flex-direction: column;
  align-items: center;
  padding: var(--ui-space-3) var(--ui-space-5);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
}

.finance-page--migration .migration-stat__count,
.migration-modal .migration-stat__count {
  color: var(--ui-text-primary);
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-2xl);
  font-weight: var(--ui-font-bold);
}

.finance-page--migration .migration-stat__label,
.migration-modal .migration-stat__label {
  margin-top: var(--ui-space-1);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.finance-page--migration .migration-stat--success .migration-stat__count,
.migration-modal .migration-stat--success .migration-stat__count {
  color: var(--ui-success);
}

.finance-page--migration .migration-stat--danger .migration-stat__count,
.migration-modal .migration-stat--danger .migration-stat__count {
  color: var(--ui-danger);
}

.finance-page--migration .migration-stat--info .migration-stat__count,
.migration-modal .migration-stat--info .migration-stat__count {
  color: var(--ui-info);
}

.finance-page--migration .migration-stat--muted .migration-stat__count,
.migration-modal .migration-stat--muted .migration-stat__count {
  color: var(--ui-text-subtle);
}

.finance-page--migration .migration-preview-panel,
.finance-page--migration .migration-drift-section,
.finance-page--migration .migration-tb-panel {
  margin-top: var(--ui-space-3);
}

.finance-page--migration .migration-text-end,
.migration-modal .migration-text-end {
  text-align: right;
}

.finance-page--migration .migration-amount--positive {
  color: var(--ui-success);
}

.finance-page--migration .migration-amount--negative {
  color: var(--ui-danger);
}

.finance-page--migration .migration-amount--strong {
  font-weight: var(--ui-font-semibold);
}

.finance-page--migration .migration-row--clickable {
  cursor: pointer;
}

.finance-page--migration .migration-type-badge {
  display: inline-flex;
  width: 24px;
  height: 24px;
  align-items: center;
  justify-content: center;
  border-radius: var(--ui-radius-sm);
  background: var(--ui-info-bg);
  color: var(--ui-info);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
}

.finance-page--migration .migration-type-badge--vendor {
  color: var(--ui-warning);
  background: var(--ui-warning-bg);
}

.finance-page--migration .direction-pill {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 2px var(--ui-space-2);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface-2);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  white-space: nowrap;
}

.finance-page--migration .direction-pill[data-dir=REDUCE_PAYABLE],
.finance-page--migration .direction-pill[data-dir=INCREASE_RECEIVABLE] {
  color: var(--ui-success);
  background: var(--ui-success-bg);
}

.finance-page--migration .direction-pill[data-dir=INCREASE_PAYABLE],
.finance-page--migration .direction-pill[data-dir=REDUCE_RECEIVABLE] {
  color: var(--ui-warning);
  background: var(--ui-warning-bg);
}

.finance-page--migration .direction-pill[data-dir=ZERO_OUT_LEGACY_PAYABLE],
.finance-page--migration .direction-pill[data-dir=ZERO_OUT_LEGACY_RECEIVABLE] {
  color: var(--ui-info);
  background: var(--ui-info-bg);
}

.finance-page--migration .direction-pill[data-dir=DRIFT_DETECTED] {
  color: var(--ui-danger);
  background: var(--ui-danger-bg);
}

.finance-page--migration .status-badge,
.migration-modal .status-badge {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 2px var(--ui-space-2);
  border-radius: var(--ui-radius-sm);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
}

.finance-page--migration .status-badge--pending,
.migration-modal .status-badge--pending {
  color: var(--ui-warning);
  background: var(--ui-warning-bg);
}

.finance-page--migration .status-badge--skipped,
.migration-modal .status-badge--skipped {
  color: var(--ui-info);
  background: var(--ui-info-bg);
}

.finance-page--migration .status-badge--posted,
.migration-modal .status-badge--posted {
  color: var(--ui-success);
  background: var(--ui-success-bg);
}

.finance-page--migration .status-badge--failed,
.migration-modal .status-badge--failed {
  color: var(--ui-danger);
  background: var(--ui-danger-bg);
}

.finance-page--migration .migration-row--skipped td {
  color: var(--ui-text-subtle);
}

.finance-page--migration .migration-row--expanded {
  background: var(--ui-table-row-active);
}

.finance-page--migration .migration-expanded-detail td {
  padding: 0;
  border: 0;
}

.finance-page--migration .migration-impact-detail {
  margin: var(--ui-space-1) 0 var(--ui-space-1) var(--ui-space-6);
  padding: var(--ui-space-2) var(--ui-space-4);
  border-left: 3px solid var(--ui-border-focus);
  border-radius: 0 var(--ui-radius-md) var(--ui-radius-md) 0;
  background: var(--ui-table-accent-bg);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
}

.finance-page--migration .migration-reason-cell {
  max-width: 180px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.finance-page--migration .migration-drift-section {
  border-left: 3px solid var(--ui-danger);
}

.finance-page--migration .migration-drift-section__header {
  margin-bottom: var(--ui-space-2);
  color: var(--ui-warning);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
}

.finance-page--migration .migration-drift-section__header--danger {
  color: var(--ui-danger);
}

.finance-page--migration .migration-drift-section__sub {
  margin-bottom: var(--ui-space-3);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
}

.finance-page--migration .migration-drift-row {
  display: flex;
  justify-content: space-between;
  gap: var(--ui-space-4);
  padding: var(--ui-space-2) 0;
  border-bottom: 1px solid var(--ui-border-light);
  font-size: var(--ui-text-sm);
}

.finance-page--migration .migration-drift-row__error {
  max-width: 60%;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  text-align: right;
}

.finance-page--migration .migration-tb-panel__header {
  margin-bottom: var(--ui-space-3);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
}

.finance-page--migration .migration-tb-row {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) 40px minmax(100px, 140px);
  gap: var(--ui-space-2);
  align-items: center;
  padding: var(--ui-space-2) 0;
  border-bottom: 1px solid var(--ui-border-light);
  font-size: var(--ui-text-sm);
}

.finance-page--migration .migration-tb-row--reserve {
  margin: var(--ui-space-1) calc(var(--ui-space-2) * -1);
  padding: var(--ui-space-2);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-table-accent-bg);
}

.finance-page--migration .migration-tb-row--total {
  margin-top: var(--ui-space-1);
  padding-top: var(--ui-space-3);
  border-top: 2px solid var(--ui-border);
  font-weight: var(--ui-font-bold);
}

.finance-page--migration .migration-tb-row__code {
  color: var(--ui-text-muted);
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-xs);
}

.finance-page--migration .migration-tb-row__dir {
  text-align: center;
}

.finance-page--migration .migration-tb-row__amt {
  text-align: right;
  font-weight: var(--ui-font-semibold);
}

.finance-page--migration .migration-preview-actions {
  display: flex;
  justify-content: flex-end;
  gap: var(--ui-space-3);
  margin-top: var(--ui-space-5);
  padding-top: var(--ui-space-4);
  border-top: 1px solid var(--ui-border-light);
}

.finance-page--migration .migration-preview-actions--result {
  margin-top: var(--ui-space-4);
}

.finance-page--migration .migration-confirm-dialog {
  width: min(100%, 460px);
}

.finance-page--migration .migration-confirm-dialog__title {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin: 0;
}

.finance-page--migration .migration-confirm-dialog__body {
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  line-height: 1.6;
}

.finance-page--migration .migration-confirm-dialog__body ul {
  margin: var(--ui-space-3) 0;
  padding-left: var(--ui-space-5);
}

.finance-page--migration .migration-confirm-dialog__warn {
  margin-top: var(--ui-space-3);
  color: var(--ui-warning);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
}

.finance-page--migration .migration-confirm-dialog__actions {
  justify-content: flex-end;
}

.finance-page--migration .migration-loading-state,
.finance-page--migration .migration-empty-state {
  padding: var(--ui-space-12);
  color: var(--ui-text-muted);
  text-align: center;
}

.finance-page--migration .migration-empty-state__icon {
  width: var(--ui-space-12);
  height: var(--ui-space-12);
  margin-bottom: var(--ui-space-3);
  color: var(--ui-text-subtle);
  font-size: var(--ui-space-12);
}

.finance-page--migration .migration-empty-state__title {
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-semibold);
}

.finance-page--migration .migration-empty-state__subtitle {
  margin-top: var(--ui-space-2);
  color: var(--ui-text-subtle);
  font-size: var(--ui-text-xs);
}

.finance-page--migration .migration-batches-card {
  overflow: hidden;
}

.finance-page--migration .migration-batch-row--partial {
  border-left: 3px solid var(--ui-danger);
}

.finance-page--migration .migration-batch-code {
  color: var(--ui-text-secondary);
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-xs);
}

.finance-page--migration .migration-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-4);
  padding: var(--ui-space-4);
  border-top: 1px solid var(--ui-border-light);
}

.finance-page--migration .migration-pagination__label {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
}

.finance-page--migration .ui-btn--xs {
  min-height: 30px;
  padding: var(--ui-space-1) var(--ui-space-3);
  font-size: var(--ui-text-xs);
}

.finance-page--migration .ui-btn mat-icon,
.migration-modal .ui-btn mat-icon {
  width: var(--ui-text-md);
  height: var(--ui-text-md);
  font-size: var(--ui-text-md);
}

.migration-modal {
  padding: var(--ui-space-1);
}

.migration-modal .migration-modal__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-4);
  margin-bottom: var(--ui-space-2);
}

.migration-modal .migration-modal__title {
  color: var(--ui-text-primary);
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-bold);
}

.migration-modal .migration-modal__meta {
  margin-top: var(--ui-space-1);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
}

.migration-modal .migration-modal__summary {
  margin: var(--ui-space-4) 0;
}

.migration-modal .migration-modal__banner {
  margin-bottom: var(--ui-space-4);
}

.migration-modal .migration-modal__table-wrap {
  max-height: 320px;
  overflow: auto;
  margin: var(--ui-space-3) 0;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
}

.migration-modal .glass-table--compact th,
.migration-modal .glass-table--compact td {
  padding: var(--ui-space-2) var(--ui-space-3);
  font-size: var(--ui-text-xs);
}

.migration-modal .migration-row--failed td {
  color: var(--ui-danger);
}

.migration-modal .migration-modal__reverse {
  margin-top: var(--ui-space-5);
  padding-top: var(--ui-space-4);
  border-top: 1px solid var(--ui-border-light);
}

.migration-modal .migration-reverse-form {
  margin-top: var(--ui-space-3);
}

.migration-modal .migration-required-mark {
  color: var(--ui-danger);
}

.migration-modal .migration-reverse-input {
  min-height: 72px;
  padding: var(--ui-space-3);
  resize: vertical;
}

.migration-modal .migration-reverse-form__actions {
  display: flex;
  justify-content: flex-end;
  gap: var(--ui-space-2);
  margin-top: var(--ui-space-3);
}

.migration-modal .migration-modal__close-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: var(--ui-space-4);
}

@media (max-width: 900px) {
  .finance-page--migration .header-card__actions,
  .finance-page--migration .tally-search-input {
    width: 100%;
    margin-left: 0;
  }
  .finance-page--migration .tally-dual-zones {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 640px) {
  .finance-page--migration .header-card__top,
  .finance-page--migration .session-detail {
    padding: var(--ui-space-4);
  }
  .finance-page--migration .tally-upload-zone {
    padding: var(--ui-space-6) var(--ui-space-4);
  }
}
/* ══════════════════════════════════════════════════════════════════
   STUCK SESSION RECOVERY
   ══════════════════════════════════════════════════════════════════ */
/* Amber spinning indicator for MIGRATING_PHASE_A/B */
.finance-page--migration .stuck-spinner {
  display: inline-flex;
  align-items: center;
  margin-right: var(--ui-space-1);
}

@keyframes tally-spin {
  to {
    transform: rotate(360deg);
  }
}
.finance-page--migration .spin-icon {
  animation: tally-spin 1.5s linear infinite;
  color: var(--ui-warning);
  font-size: var(--ui-text-md);
  opacity: 0.75;
}

/* Recover button */
.finance-page--migration .pill-btn-recover {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  min-height: 32px;
  padding: var(--ui-space-1) var(--ui-space-3);
  border: 1px solid var(--ui-warning-border);
  border-radius: var(--ui-radius-full);
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
  font: inherit;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: background var(--ui-transition-fast), border-color var(--ui-transition-fast);
}

.finance-page--migration .pill-btn-recover:hover:not([disabled]) {
  border-color: var(--ui-warning);
  background: color-mix(in srgb, var(--ui-warning-bg) 80%, var(--ui-warning));
}

.finance-page--migration .pill-btn-recover[disabled] {
  cursor: not-allowed;
  opacity: 0.5;
}

.finance-page--migration .pill-btn-recover mat-icon {
  font-size: var(--ui-text-md);
  width: var(--ui-text-md);
  height: var(--ui-text-md);
}

/* ── Force Commit Button ── */
.finance-page--migration .pill-btn-force {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-4);
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-warning);
  background: linear-gradient(135deg, rgba(255, 152, 0, 0.15), rgba(255, 87, 34, 0.1));
  color: var(--ui-warning);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: all var(--ui-transition-fast);
}

.finance-page--migration .pill-btn-force:hover:not([disabled]) {
  background: linear-gradient(135deg, rgba(255, 152, 0, 0.25), rgba(255, 87, 34, 0.2));
  box-shadow: 0 0 12px rgba(255, 152, 0, 0.2);
}

.finance-page--migration .pill-btn-force[disabled] {
  opacity: 0.4;
  cursor: not-allowed;
  pointer-events: none; /* Let wrapper handle hover for tooltip */
}

/* Wrapper span — carries tooltip for disabled state */
.finance-page--migration .pill-btn-force-wrapper {
  display: inline-flex;
  position: relative;
  cursor: not-allowed; /* Show not-allowed on hover over disabled button area */
}

.finance-page--migration .pill-btn-force mat-icon {
  font-size: var(--ui-text-md);
  width: var(--ui-text-md);
  height: var(--ui-text-md);
}

/* ── TB DRIFT Badge ── */
.finance-page--migration .type-pill--force-drift {
  background: rgba(255, 152, 0, 0.15);
  color: var(--ui-warning);
  border: 1px solid rgba(255, 152, 0, 0.3);
  font-size: var(--ui-text-xs);
  padding: 2px 8px;
  border-radius: var(--ui-radius-full);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.03em;
}

/* ── Force Commit Modal ── */
.finance-page--migration .force-commit-modal {
  position: relative;
  width: min(95vw, 960px);
  max-width: min(95vw, 960px);
  max-height: min(90vh, 900px);
}

.finance-page--migration .force-commit-modal .ui-modal__body {
  overflow-y: auto;
}

.finance-page--migration .force-commit-modal .ui-modal__title {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.finance-page--migration .force-commit-modal__callout {
  margin-bottom: var(--ui-space-4);
}

.finance-page--migration .force-commit-modal__meta {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  margin-bottom: var(--ui-space-4);
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.finance-page--migration .force-commit-modal__meta-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

.finance-page--migration .force-commit-modal__meta-row code {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  background: rgba(255, 255, 255, 0.05);
  padding: 2px 6px;
  border-radius: var(--ui-radius-sm);
}

.finance-page--migration .force-commit-modal__drift-value {
  color: var(--ui-warning);
  font-weight: var(--ui-font-semibold);
}

.finance-page--migration .force-commit-modal__field {
  margin-bottom: var(--ui-space-4);
}

.finance-page--migration .force-commit-modal__field label {
  display: block;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  margin-bottom: var(--ui-space-2);
}

.finance-page--migration .force-commit-modal__required {
  color: var(--ui-danger);
}

.finance-page--migration .force-commit-modal__textarea {
  width: 100%;
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.04);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  font-family: inherit;
  resize: vertical;
  outline: none;
  transition: border-color var(--ui-transition-fast);
}

.finance-page--migration .force-commit-modal__textarea:focus {
  border-color: var(--ui-warning);
}

.finance-page--migration .force-commit-modal__hint {
  margin-top: var(--ui-space-1);
  font-size: var(--ui-text-xs);
  color: var(--ui-warning);
}

.finance-page--migration .force-commit-modal__checkbox {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  cursor: pointer;
  line-height: 1.5;
}

.finance-page--migration .force-commit-modal__checkbox input[type=checkbox] {
  margin-top: 3px;
  accent-color: var(--ui-warning);
}

/* ── Force Commit Loading Overlay ── */
.finance-page--migration .force-commit-modal__loading {
  position: absolute;
  inset: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--ui-radius-lg);
  background: color-mix(in srgb, var(--ui-surface-base) 88%, transparent);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.finance-page--migration .force-commit-modal__loading-inner {
  width: min(100% - var(--ui-space-8), 420px);
  margin: 0 auto;
  padding: var(--ui-space-10) var(--ui-space-8);
  border: 1px solid var(--ui-warning-border);
  border-radius: var(--ui-radius-2xl);
  background: radial-gradient(circle at 50% 0%, var(--ui-warning-bg), transparent 58%), linear-gradient(135deg, var(--ui-surface-3), var(--ui-surface-1));
  box-shadow: var(--ui-shadow-xl), var(--ui-shadow-glow);
}

.finance-page--migration .migration-execution-dialog .session-icon {
  margin-bottom: var(--ui-space-6);
  border-color: var(--ui-warning-border);
  background: linear-gradient(135deg, var(--ui-warning-bg), var(--ui-surface-2));
  box-shadow: var(--ui-shadow-glow), inset 0 1px 0 var(--ui-border-hover);
}

.finance-page--migration .migration-execution-dialog .session-icon mat-icon {
  color: var(--ui-warning);
  animation: migration-execution-icon-glow 2s ease-in-out infinite alternate;
}

.finance-page--migration .migration-execution-dialog .session-icon-pulse {
  border-color: var(--ui-warning-border);
}

.finance-page--migration .migration-execution-dialog .session-title {
  margin-bottom: var(--ui-space-4);
  color: var(--ui-text-primary);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-2xl);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0;
}

.finance-page--migration .migration-execution-dialog .session-message {
  max-width: 340px;
  margin: 0;
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-md);
  line-height: 1.6;
}

.finance-page--migration .migration-execution-dialog__progress {
  margin-top: var(--ui-space-6);
  margin-bottom: 0;
}

.finance-page--migration .migration-execution-dialog .session-countdown-circle {
  width: 64px;
  height: 64px;
}

.finance-page--migration .migration-execution-dialog .progress-bg {
  stroke: var(--ui-border-hover);
}

.finance-page--migration .migration-execution-dialog__progress-bar {
  stroke: var(--ui-warning);
  stroke-dasharray: 72 113.1;
  stroke-dashoffset: 0;
  animation: migration-execution-progress 1.35s ease-in-out infinite;
}

.finance-page--migration .migration-execution-dialog__progress-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ui-warning);
  text-shadow: 0 0 10px var(--ui-warning-bg);
}

.finance-page--migration .migration-execution-dialog__progress-icon mat-icon {
  width: 22px;
  height: 22px;
  font-size: 22px;
  animation: fc-spin 1.1s linear infinite;
}

.finance-page--migration .migration-execution-dialog .session-countdown-label {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  letter-spacing: 0;
}

@keyframes migration-execution-progress {
  0% {
    stroke-dashoffset: 113.1;
  }
  50% {
    stroke-dashoffset: 36;
  }
  100% {
    stroke-dashoffset: -36;
  }
}
@keyframes migration-execution-icon-glow {
  0% {
    filter: drop-shadow(0 0 4px var(--ui-warning-bg));
  }
  100% {
    filter: drop-shadow(0 0 14px var(--ui-warning-border));
  }
}
@keyframes fc-spin {
  to {
    transform: rotate(360deg);
  }
}
/* Inline spinner inside the button */
@keyframes fc-btn-spin {
  to {
    transform: rotate(360deg);
  }
}
.finance-page--migration .fc-btn-loading {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.finance-page--migration .fc-btn-spinner {
  display: inline-block;
  width: 14px;
  height: 14px;
  border: 2px solid rgba(255, 152, 0, 0.3);
  border-top-color: var(--ui-warning);
  border-radius: 50%;
  animation: fc-btn-spin 0.8s linear infinite;
  flex-shrink: 0;
}

/* ── Block Diagnostics (drawer footer) ── */
.finance-page--migration .txn-drawer__block-diagnostics,
.finance-page--migration .txn-drawer__block-diagnostics-panel {
  width: 100%;
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-md);
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

/* Panel variant: positioned above footer in the drawer body */
.finance-page--migration .txn-drawer__block-diagnostics-panel {
  margin: var(--ui-space-4) var(--ui-space-5);
  margin-bottom: var(--ui-space-2);
}

.finance-page--migration .txn-drawer__block-diagnostics-title {
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: var(--ui-space-2);
}

.finance-page--migration .txn-drawer__block-diagnostics-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.finance-page--migration .txn-drawer__block-diagnostics-list span {
  font-size: var(--ui-text-sm);
  line-height: 1.6;
}

.finance-page--migration .txn-drawer__block-diagnostics-list .pass {
  color: var(--ui-success);
}

.finance-page--migration .txn-drawer__block-diagnostics-list .fail {
  color: var(--ui-danger);
}

.finance-page--migration .txn-drawer__block-diagnostics-hint {
  margin-top: var(--ui-space-2);
  padding-top: var(--ui-space-2);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.finance-page--migration .txn-drawer__block-diagnostics-hint strong {
  color: var(--ui-warning);
}

/* Step-by-step how to proceed (drawer) */
.finance-page--migration .txn-drawer__block-diagnostics-steps {
  margin-top: var(--ui-space-3);
  padding-top: var(--ui-space-2);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.finance-page--migration .txn-drawer__block-diagnostics-steps-title {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: var(--ui-space-2);
}

.finance-page--migration .txn-drawer__block-diagnostics-step {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-2);
  padding: var(--ui-space-1) 0;
  font-size: var(--ui-text-xs);
  color: var(--ui-text-secondary);
  line-height: 1.6;
}

.finance-page--migration .txn-drawer__block-diagnostics-step .step-num {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  color: var(--ui-text-muted);
  font-size: 10px;
  font-weight: var(--ui-font-bold);
  flex-shrink: 0;
  margin-top: 2px;
}

.finance-page--migration .txn-drawer__block-diagnostics-step--ready {
  color: var(--ui-success);
}

.finance-page--migration .txn-drawer__block-diagnostics-step--ready .step-num {
  background: rgba(34, 197, 94, 0.15);
  color: var(--ui-success);
}

.finance-page--migration .txn-drawer__block-diagnostics-step strong {
  color: var(--ui-warning);
}

/* ═══════════════════════════════════════════════════════════════════
   RETRY BLOCKED VOUCHERS (Post-migration fix)
   ═══════════════════════════════════════════════════════════════════ */
.finance-page--migration .txn-drawer__retry-section {
  margin: var(--ui-space-4) var(--ui-space-5);
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-lg);
  background: linear-gradient(135deg, rgba(59, 130, 246, 0.06), rgba(16, 185, 129, 0.04));
  border: 1px solid rgba(59, 130, 246, 0.18);
}

.finance-page--migration .txn-drawer__retry-header {
  display: flex;
  gap: var(--ui-space-3);
  align-items: flex-start;
  margin-bottom: var(--ui-space-4);
}

.finance-page--migration .txn-drawer__retry-icon {
  color: var(--ui-primary);
  font-size: 22px;
  margin-top: 2px;
  flex-shrink: 0;
}

.finance-page--migration .txn-drawer__retry-title {
  font-weight: 600;
  font-size: var(--ui-font-sm);
  color: var(--ui-text-primary);
}

.finance-page--migration .txn-drawer__retry-subtitle {
  font-size: var(--ui-font-xs);
  color: var(--ui-text-secondary);
  margin-top: 2px;
  line-height: 1.5;
}

.finance-page--migration .txn-drawer__retry-step {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-font-xs);
  color: var(--ui-text-secondary);
  margin-bottom: var(--ui-space-2);
}

.finance-page--migration .txn-drawer__retry-actions {
  display: flex;
  gap: var(--ui-space-2);
  margin: var(--ui-space-3) 0;
  flex-wrap: wrap;
}

.finance-page--migration .txn-drawer__retry-preview {
  margin: var(--ui-space-3) 0;
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  background: rgba(0, 0, 0, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.finance-page--migration .txn-drawer__retry-preview-title {
  font-weight: 600;
  font-size: var(--ui-font-xs);
  color: var(--ui-text-primary);
  margin-bottom: var(--ui-space-2);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.finance-page--migration .txn-drawer__retry-preview-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--ui-space-2);
}

.finance-page--migration .txn-drawer__retry-preview-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.finance-page--migration .txn-drawer__retry-preview-value {
  font-size: var(--ui-font-lg);
  font-weight: 700;
  color: var(--ui-primary);
}

.finance-page--migration .txn-drawer__retry-preview-value--ok {
  color: var(--ui-success);
}

.finance-page--migration .txn-drawer__retry-preview-value--muted {
  color: var(--ui-text-tertiary);
}

.finance-page--migration .txn-drawer__retry-preview-label {
  font-size: 10px;
  color: var(--ui-text-tertiary);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.finance-page--migration .txn-drawer__retry-estimate {
  margin-top: var(--ui-space-2);
  font-size: var(--ui-font-xs);
  color: var(--ui-text-secondary);
}

.finance-page--migration .txn-drawer__retry-options {
  margin: var(--ui-space-2) 0;
}

.finance-page--migration .txn-drawer__retry-checkbox {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-font-xs);
  color: var(--ui-text-secondary);
  cursor: pointer;
}

.finance-page--migration .txn-drawer__retry-checkbox input[type=checkbox] {
  accent-color: var(--ui-primary);
}

.finance-page--migration .txn-drawer__retry-result {
  margin-top: var(--ui-space-3);
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  background: rgba(16, 185, 129, 0.08);
  border: 1px solid rgba(16, 185, 129, 0.2);
}

.finance-page--migration .txn-drawer__retry-result-title {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-weight: 600;
  font-size: var(--ui-font-sm);
  color: var(--ui-success);
  margin-bottom: var(--ui-space-2);
}

.finance-page--migration .txn-drawer__retry-result-icon--ok {
  color: var(--ui-success);
  font-size: 18px;
}

.finance-page--migration .txn-drawer__retry-result-grid {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-3);
  font-size: var(--ui-font-xs);
  color: var(--ui-text-secondary);
}

.finance-page--migration .txn-drawer__retry-result-grid strong {
  color: var(--ui-text-primary);
}

/* ═══════════════════════════════════════════════════════════════════
   AI MIGRATION COPILOT
   ═══════════════════════════════════════════════════════════════════ */
.finance-page--migration .copilot-section {
  margin: var(--ui-space-4) var(--ui-space-5);
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-lg);
  background: linear-gradient(135deg, rgba(139, 92, 246, 0.06), rgba(59, 130, 246, 0.04));
  border: 1px solid rgba(139, 92, 246, 0.15);
}

.finance-page--migration .copilot-section__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--ui-space-3);
}

.finance-page--migration .copilot-section__title {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.finance-page--migration .copilot-section__icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: rgba(139, 92, 246, 0.8);
}

/* Analyze Button */
.finance-page--migration .pill-btn-copilot {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-4);
  border-radius: var(--ui-radius-full);
  border: 1px solid rgba(139, 92, 246, 0.3);
  background: linear-gradient(135deg, rgba(139, 92, 246, 0.15), rgba(59, 130, 246, 0.1));
  color: rgb(167, 139, 250);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: all var(--ui-transition-fast);
}

.finance-page--migration .pill-btn-copilot:hover:not([disabled]) {
  background: linear-gradient(135deg, rgba(139, 92, 246, 0.25), rgba(59, 130, 246, 0.2));
  box-shadow: 0 0 16px rgba(139, 92, 246, 0.15);
}

.finance-page--migration .pill-btn-copilot[disabled] {
  opacity: 0.5;
  cursor: not-allowed;
}

.finance-page--migration .pill-btn-copilot mat-icon {
  font-size: var(--ui-text-md);
  width: var(--ui-text-md);
  height: var(--ui-text-md);
}

/* Results Container */
.finance-page--migration .copilot-section__results {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

/* Risk + Recommendation Badges */
.finance-page--migration .copilot-section__badges {
  display: flex;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.finance-page--migration .copilot-badge {
  padding: 3px 10px;
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.04em;
  border: 1px solid transparent;
}

.finance-page--migration .copilot-badge--low {
  background: rgba(34, 197, 94, 0.12);
  color: var(--ui-success);
  border-color: rgba(34, 197, 94, 0.25);
}

.finance-page--migration .copilot-badge--medium {
  background: rgba(255, 152, 0, 0.12);
  color: var(--ui-warning);
  border-color: rgba(255, 152, 0, 0.25);
}

.finance-page--migration .copilot-badge--high {
  background: rgba(239, 68, 68, 0.12);
  color: var(--ui-danger);
  border-color: rgba(239, 68, 68, 0.25);
}

.finance-page--migration .copilot-badge--rec {
  background: rgba(139, 92, 246, 0.1);
  color: rgb(167, 139, 250);
  border-color: rgba(139, 92, 246, 0.2);
}

/* Issue Cards */
.finance-page--migration .copilot-issue {
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.finance-page--migration .copilot-issue__header {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin-bottom: var(--ui-space-2);
}

.finance-page--migration .copilot-issue__severity {
  padding: 2px 8px;
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.finance-page--migration .copilot-issue__severity--low {
  background: rgba(34, 197, 94, 0.12);
  color: var(--ui-success);
}

.finance-page--migration .copilot-issue__severity--medium {
  background: rgba(255, 152, 0, 0.12);
  color: var(--ui-warning);
}

.finance-page--migration .copilot-issue__severity--high {
  background: rgba(239, 68, 68, 0.12);
  color: var(--ui-danger);
}

.finance-page--migration .copilot-issue__title {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.finance-page--migration .copilot-issue__desc {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  margin-bottom: var(--ui-space-3);
  line-height: 1.5;
}

/* Issue Meta Rows */
.finance-page--migration .copilot-issue__meta {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  margin-bottom: var(--ui-space-3);
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-sm);
  background: rgba(255, 255, 255, 0.02);
}

.finance-page--migration .copilot-issue__row {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.finance-page--migration .copilot-issue__label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.finance-page--migration .copilot-issue__value {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  line-height: 1.5;
}

.finance-page--migration .copilot-issue__value--warn {
  color: var(--ui-warning);
  font-weight: var(--ui-font-semibold);
}

/* Issue Action Buttons */
.finance-page--migration .copilot-issue__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
}

.finance-page--migration .copilot-action {
  padding: var(--ui-space-1) var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: all var(--ui-transition-fast);
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.04);
  color: var(--ui-text-secondary);
}

.finance-page--migration .copilot-action:hover {
  background: rgba(255, 255, 255, 0.08);
}

.finance-page--migration .copilot-action--low {
  border-color: rgba(34, 197, 94, 0.3);
  color: var(--ui-success);
}

.finance-page--migration .copilot-action--low:hover {
  background: rgba(34, 197, 94, 0.1);
}

.finance-page--migration .copilot-action--none {
  border-color: rgba(139, 92, 246, 0.2);
  color: rgb(167, 139, 250);
}

.finance-page--migration .copilot-action--none:hover {
  background: rgba(139, 92, 246, 0.08);
}

/* Audit Notes */
.finance-page--migration .copilot-section__audit {
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-sm);
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.04);
}

.finance-page--migration .copilot-section__audit-title {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: var(--ui-space-1);
}

.finance-page--migration .copilot-section__audit ul {
  margin: 0;
  padding-left: var(--ui-space-4);
}

.finance-page--migration .copilot-section__audit li {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  line-height: 1.8;
}

/* ═══════════════════════════════════════════════════════════════════
   PER-VOUCHER DRILL-DOWN — Execution Log Tab
   ═══════════════════════════════════════════════════════════════════ */
/* ── Filter chips bar ── */
.finance-page--migration .voucher-filters {
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
  flex-wrap: wrap;
  margin-bottom: var(--ui-space-3);
  padding-bottom: var(--ui-space-2);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.finance-page--migration .voucher-filter-chip {
  padding: 3px 10px;
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: transparent;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
}
.finance-page--migration .voucher-filter-chip:hover {
  border-color: rgba(255, 255, 255, 0.25);
  color: var(--ui-text-primary);
}
.finance-page--migration .voucher-filter-chip.voucher-filter-chip--active {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.3);
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-semibold);
}
.finance-page--migration .voucher-filter-chip.voucher-filter-chip--posted.voucher-filter-chip--active {
  background: rgba(16, 185, 129, 0.15);
  border-color: rgba(16, 185, 129, 0.4);
  color: #34d399;
}
.finance-page--migration .voucher-filter-chip.voucher-filter-chip--skipped.voucher-filter-chip--active {
  background: rgba(100, 116, 139, 0.15);
  border-color: rgba(100, 116, 139, 0.4);
  color: #94a3b8;
}
.finance-page--migration .voucher-filter-chip.voucher-filter-chip--blocked.voucher-filter-chip--active {
  background: rgba(245, 158, 11, 0.15);
  border-color: rgba(245, 158, 11, 0.4);
  color: #fbbf24;
}
.finance-page--migration .voucher-filter-chip.voucher-filter-chip--failed.voucher-filter-chip--active {
  background: rgba(239, 68, 68, 0.15);
  border-color: rgba(239, 68, 68, 0.4);
  color: #f87171;
}

.finance-page--migration .voucher-search {
  flex: 1;
  min-width: 160px;
  max-width: 240px;
  padding: 4px 10px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--ui-radius-sm);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-xs);
  outline: none;
  transition: border-color 0.15s;
}
.finance-page--migration .voucher-search::placeholder {
  color: var(--ui-text-muted);
}
.finance-page--migration .voucher-search:focus {
  border-color: rgba(255, 255, 255, 0.25);
}

/* ── Voucher table ── */
.finance-page--migration .voucher-table-wrap {
  overflow-x: auto;
}

.finance-page--migration .voucher-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--ui-text-xs);
}
.finance-page--migration .voucher-table thead tr {
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.finance-page--migration .voucher-table th {
  padding: 6px 8px;
  text-align: left;
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  white-space: nowrap;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.finance-page--migration .voucher-table td {
  padding: 7px 8px;
  color: var(--ui-text-secondary);
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  vertical-align: middle;
}

.finance-page--migration .voucher-row {
  cursor: pointer;
  transition: background 0.12s;
}
.finance-page--migration .voucher-row:hover {
  background: rgba(255, 255, 255, 0.04);
}
.finance-page--migration .voucher-row:hover td {
  color: var(--ui-text-primary);
}

.finance-page--migration .voucher-col-num {
  font-family: var(--ui-font-mono, monospace);
  font-size: 10px;
  color: var(--ui-text-muted);
  white-space: nowrap;
}

.finance-page--migration .voucher-col-amt {
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.finance-page--migration .voucher-col-party {
  max-width: 140px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.finance-page--migration .voucher-col-inv {
  text-align: center;
  width: 28px;
}

/* ── Pagination ── */
.finance-page--migration .voucher-pagination {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  justify-content: flex-end;
  margin-top: var(--ui-space-2);
  padding-top: var(--ui-space-2);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.finance-page--migration .voucher-pagination__info {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  margin-right: auto;
}

/* ── Voucher Detail Panel ── */
.finance-page--migration .voucher-detail {
  animation: voucher-detail-slide-in 0.2s ease;
}

@keyframes voucher-detail-slide-in {
  from {
    opacity: 0;
    transform: translateX(12px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.finance-page--migration .voucher-detail__back {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--ui-radius-sm);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  cursor: pointer;
  margin-bottom: var(--ui-space-3);
  transition: all 0.15s;
}
.finance-page--migration .voucher-detail__back:hover {
  border-color: rgba(255, 255, 255, 0.25);
  color: var(--ui-text-primary);
}

.finance-page--migration .voucher-detail__header {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
  margin-bottom: var(--ui-space-2);
}

.finance-page--migration .voucher-detail__num {
  font-family: var(--ui-font-mono, monospace);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.finance-page--migration .voucher-detail__meta {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  flex-wrap: wrap;
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  margin-bottom: var(--ui-space-3);
  padding-bottom: var(--ui-space-2);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.finance-page--migration .voucher-detail__section-title {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin: var(--ui-space-3) 0 var(--ui-space-1);
}

/* ── GST Direction Warning ── */
.finance-page--migration .voucher-detail__gst-warn {
  padding: var(--ui-space-2) var(--ui-space-3);
  background: rgba(245, 158, 11, 0.08);
  border: 1px solid rgba(245, 158, 11, 0.25);
  border-radius: var(--ui-radius-sm);
  color: #fbbf24;
  font-size: var(--ui-text-xs);
  line-height: 1.5;
  margin-bottom: var(--ui-space-3);
}

/* ── Ledger entries sub-table ── */
.finance-page--migration .voucher-ledger-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--ui-text-xs);
  margin-bottom: var(--ui-space-2);
}
.finance-page--migration .voucher-ledger-table th {
  padding: 4px 8px;
  text-align: left;
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.finance-page--migration .voucher-ledger-table td {
  padding: 5px 8px;
  color: var(--ui-text-secondary);
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}
.finance-page--migration .voucher-ledger-table tr:last-child td {
  border-bottom: none;
}

/* ── Resolution Log rows ── */
.finance-page--migration .voucher-resolution-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: 4px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  font-size: var(--ui-text-xs);
}
.finance-page--migration .voucher-resolution-row:last-child {
  border-bottom: none;
}

.finance-page--migration .voucher-resolution-row__name {
  flex: 1;
  color: var(--ui-text-secondary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ── Execution Error ── */
.finance-page--migration .voucher-detail__error {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  background: rgba(239, 68, 68, 0.07);
  border: 1px solid rgba(239, 68, 68, 0.2);
  border-radius: var(--ui-radius-sm);
  color: #f87171;
  font-size: var(--ui-text-xs);
  line-height: 1.5;
  margin-top: var(--ui-space-3);
  word-break: break-word;
}
.finance-page--migration .voucher-detail__error mat-icon {
  font-size: 16px;
  height: 16px;
  width: 16px;
  flex-shrink: 0;
  margin-top: 1px;
}

/* ═══════════════════════════════════════════════════════════════════
   Review Required Matches Section (Tier 4 Alias Resolution)
   ═══════════════════════════════════════════════════════════════════ */
.finance-page--migration .txn-drawer__review-required {
  margin: var(--ui-space-4) 0;
  border: 1px solid rgba(245, 158, 11, 0.3);
  border-radius: var(--ui-radius-md);
  background: rgba(245, 158, 11, 0.04);
  overflow: hidden;
}

/* Header */
.finance-page--migration .review-required__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-3);
  padding: var(--ui-space-4);
  border-bottom: 1px solid rgba(245, 158, 11, 0.15);
  background: rgba(245, 158, 11, 0.06);
}

.finance-page--migration .review-required__title-row {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-3);
}

.finance-page--migration .review-required__icon {
  color: #fbbf24;
  font-size: 22px;
  height: 22px;
  width: 22px;
  margin-top: 2px;
  flex-shrink: 0;
}

.finance-page--migration .review-required__title {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: #fbbf24;
  margin-bottom: 2px;
}

.finance-page--migration .review-required__subtitle {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  line-height: 1.5;
  max-width: 380px;
}

/* Body */
.finance-page--migration .review-required__body {
  padding: var(--ui-space-3) var(--ui-space-4);
}

/* Summary badges */
.finance-page--migration .review-required__badges {
  display: flex;
  gap: var(--ui-space-2);
  margin-bottom: var(--ui-space-3);
}

.finance-page--migration .review-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: var(--ui-font-semibold);
}

.finance-page--migration .review-badge--pending {
  background: rgba(255, 255, 255, 0.06);
  color: var(--ui-text-secondary);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.finance-page--migration .review-badge--confirmed {
  background: rgba(16, 185, 129, 0.12);
  color: #34d399;
  border: 1px solid rgba(16, 185, 129, 0.25);
}

.finance-page--migration .review-badge--rejected {
  background: rgba(239, 68, 68, 0.1);
  color: #f87171;
  border: 1px solid rgba(239, 68, 68, 0.2);
}

/* Each group row */
.finance-page--migration .review-required__row {
  display: grid;
  grid-template-columns: 110px 1fr 24px 1fr auto;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-sm);
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.02);
  margin-bottom: var(--ui-space-2);
  transition: background 0.2s ease, border-color 0.2s ease;
}
.finance-page--migration .review-required__row:hover {
  background: rgba(255, 255, 255, 0.035);
}

.finance-page--migration .review-required__row--confirmed {
  border-color: rgba(16, 185, 129, 0.2);
  background: rgba(16, 185, 129, 0.04);
}

.finance-page--migration .review-required__row--rejected {
  border-color: rgba(239, 68, 68, 0.15);
  background: rgba(239, 68, 68, 0.03);
  opacity: 0.7;
}

/* Status badge */
.finance-page--migration .rr-badge {
  display: inline-block;
  padding: 3px 8px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: var(--ui-font-semibold);
  white-space: nowrap;
}

.finance-page--migration .rr-badge--pending {
  background: rgba(245, 158, 11, 0.12);
  color: #fbbf24;
  border: 1px solid rgba(245, 158, 11, 0.3);
}

.finance-page--migration .rr-badge--confirmed {
  background: rgba(16, 185, 129, 0.12);
  color: #34d399;
  border: 1px solid rgba(16, 185, 129, 0.25);
}

.finance-page--migration .rr-badge--rejected {
  background: rgba(239, 68, 68, 0.1);
  color: #f87171;
  border: 1px solid rgba(239, 68, 68, 0.2);
}

/* Label / value pairs */
.finance-page--migration .rr-label {
  display: block;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--ui-text-muted);
  margin-bottom: 3px;
  font-weight: var(--ui-font-semibold);
}

.finance-page--migration .rr-value {
  display: block;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.finance-page--migration .rr-value--tally {
  color: #fbbf24;
  font-family: monospace;
}

.finance-page--migration .rr-value--suggested {
  color: var(--ui-text-primary);
}

.finance-page--migration .rr-value--unknown {
  color: var(--ui-text-muted);
  font-style: italic;
}

.finance-page--migration .rr-dist {
  font-size: 10px;
  color: var(--ui-text-muted);
  margin-left: 4px;
}

.finance-page--migration .rr-voucher-count {
  display: block;
  font-size: 10px;
  color: var(--ui-text-muted);
  margin-top: 2px;
}

/* Arrow */
.finance-page--migration .review-required__arrow mat-icon {
  font-size: 18px;
  height: 18px;
  width: 18px;
  color: var(--ui-text-muted);
}

/* Action buttons */
.finance-page--migration .review-required__actions {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
}

.finance-page--migration .rr-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: var(--ui-radius-sm);
  border: 1px solid;
  font-size: 11px;
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.15s ease;
}
.finance-page--migration .rr-btn mat-icon {
  font-size: 14px;
  height: 14px;
  width: 14px;
}
.finance-page--migration .rr-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.finance-page--migration .rr-btn--confirm {
  background: rgba(16, 185, 129, 0.1);
  color: #34d399;
  border-color: rgba(16, 185, 129, 0.3);
}
.finance-page--migration .rr-btn--confirm:not(:disabled):hover {
  background: rgba(16, 185, 129, 0.18);
  border-color: rgba(16, 185, 129, 0.5);
}

.finance-page--migration .rr-btn--reject {
  background: rgba(239, 68, 68, 0.07);
  color: #f87171;
  border-color: rgba(239, 68, 68, 0.2);
}
.finance-page--migration .rr-btn--reject:not(:disabled):hover {
  background: rgba(239, 68, 68, 0.14);
  border-color: rgba(239, 68, 68, 0.4);
}

/* Rejected note */
.finance-page--migration .review-required__rejected-note {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: #f87171;
  grid-column: 5/6;
}
.finance-page--migration .review-required__rejected-note mat-icon {
  font-size: 14px;
  height: 14px;
  width: 14px;
}

/* Retry button area */
.finance-page--migration .review-required__retry {
  display: flex;
  justify-content: flex-end;
  margin-top: var(--ui-space-3);
  padding-top: var(--ui-space-3);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

/* Retry result */
.finance-page--migration .review-required__result {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-3);
  margin-top: var(--ui-space-3);
  border-radius: var(--ui-radius-sm);
  background: rgba(16, 185, 129, 0.06);
  border: 1px solid rgba(16, 185, 129, 0.2);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-secondary);
}
.finance-page--migration .review-required__result mat-icon {
  color: #34d399;
  font-size: 18px;
  height: 18px;
  width: 18px;
  flex-shrink: 0;
}

.finance-page--migration .review-required__result-icon {
  color: #34d399;
}

/* Empty state */
.finance-page--migration .review-required__empty {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-4);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}
.finance-page--migration .review-required__empty mat-icon {
  color: #34d399;
  font-size: 18px;
  height: 18px;
  width: 18px;
}

/* ═══════════════════════════════════════════════════════════════════
   MIGRATION HEALTH PANEL
   ═══════════════════════════════════════════════════════════════════ */
/* Tab badge variants */
.finance-page--migration .txn-drawer__tab-badge--warn {
  background: #f59e0b;
  color: #1a1a2e;
}

.finance-page--migration .txn-drawer__tab-badge--danger {
  background: #ef4444;
  color: #fff;
}

/* Completion banner */
.finance-page--migration .health-banner {
  display: flex;
  align-items: center;
  gap: var(--ui-space-4);
  padding: var(--ui-space-4) var(--ui-space-5);
  border-radius: var(--ui-radius-md);
  margin-bottom: var(--ui-space-4);
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.finance-page--migration .health-banner--complete {
  background: rgba(16, 185, 129, 0.1);
  border-color: rgba(16, 185, 129, 0.25);
}
.finance-page--migration .health-banner--partial {
  background: rgba(245, 158, 11, 0.08);
  border-color: rgba(245, 158, 11, 0.2);
}

.finance-page--migration .health-banner__pct {
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1;
  color: var(--ui-text-primary);
  min-width: 56px;
}

.finance-page--migration .health-banner__label {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  flex: 1;
}

.finance-page--migration .health-banner__value {
  font-size: var(--ui-text-sm);
  font-weight: 600;
  color: #f59e0b;
}

/* Health action cards */
.finance-page--migration .health-cards {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.finance-page--migration .health-card {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-3);
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-md);
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.025);
}
.finance-page--migration .health-card--ready {
  border-color: rgba(16, 185, 129, 0.3);
  background: rgba(16, 185, 129, 0.06);
}
.finance-page--migration .health-card--warn {
  border-color: rgba(245, 158, 11, 0.3);
  background: rgba(245, 158, 11, 0.06);
}
.finance-page--migration .health-card--review {
  border-color: rgba(139, 92, 246, 0.3);
  background: rgba(139, 92, 246, 0.06);
}
.finance-page--migration .health-card--info {
  border-color: rgba(59, 130, 246, 0.3);
  background: rgba(59, 130, 246, 0.06);
}
.finance-page--migration .health-card--error {
  border-color: rgba(239, 68, 68, 0.3);
  background: rgba(239, 68, 68, 0.05);
}
.finance-page--migration .health-card--complete {
  border-color: rgba(16, 185, 129, 0.3);
  background: rgba(16, 185, 129, 0.06);
}

.finance-page--migration .health-card__icon mat-icon {
  font-size: 22px;
  width: 22px;
  height: 22px;
  margin-top: 2px;
}
.health-card--ready .finance-page--migration .health-card__icon mat-icon {
  color: #34d399;
}
.health-card--warn .finance-page--migration .health-card__icon mat-icon {
  color: #f59e0b;
}
.health-card--review .finance-page--migration .health-card__icon mat-icon {
  color: #a78bfa;
}
.health-card--info .finance-page--migration .health-card__icon mat-icon {
  color: #60a5fa;
}
.health-card--error .finance-page--migration .health-card__icon mat-icon {
  color: #f87171;
}
.health-card--complete .finance-page--migration .health-card__icon mat-icon {
  color: #34d399;
}

.finance-page--migration .health-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.finance-page--migration .health-card__title {
  font-size: var(--ui-text-sm);
  font-weight: 600;
  color: var(--ui-text-primary);
}

.finance-page--migration .health-card__count {
  font-size: var(--ui-text-xs);
  font-weight: 500;
  color: var(--ui-text-secondary);
}

.finance-page--migration .health-card__note {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  line-height: 1.5;
}

.finance-page--migration .health-card__ledger-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.finance-page--migration .health-ledger-chip {
  padding: 2px 8px;
  border-radius: 20px;
  background: rgba(245, 158, 11, 0.15);
  border: 1px solid rgba(245, 158, 11, 0.3);
  color: #f59e0b;
  font-size: 11px;
  font-weight: 500;
}

.finance-page--migration .health-card__group-row {
  display: flex;
  gap: var(--ui-space-3);
  font-size: 11px;
  align-items: flex-start;
}

.finance-page--migration .health-card__group-prefix {
  font-family: monospace;
  font-size: 10px;
  color: #f87171;
  flex-shrink: 0;
}

.finance-page--migration .health-card__group-count {
  font-weight: 600;
  color: var(--ui-text-secondary);
  flex-shrink: 0;
  min-width: 24px;
}

.finance-page--migration .health-card__group-action {
  color: var(--ui-text-muted);
  flex: 1;
}

/* ═══════════════════════════════════════════════════════════════════
   TRIAL BALANCE PANEL
   ═══════════════════════════════════════════════════════════════════ */
.finance-page--migration .tb-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--ui-space-4);
  gap: var(--ui-space-3);
  flex-wrap: wrap;
}

.finance-page--migration .tb-header__meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.finance-page--migration .tb-header__je-count {
  font-size: var(--ui-text-sm);
  font-weight: 600;
  color: var(--ui-text-primary);
}

.finance-page--migration .tb-header__generated {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.finance-page--migration .tb-status {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: var(--ui-space-2) var(--ui-space-4);
  border-radius: var(--ui-radius-pill);
  font-size: var(--ui-text-sm);
  font-weight: 600;
}
.finance-page--migration .tb-status mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}
.finance-page--migration .tb-status--balanced {
  background: rgba(16, 185, 129, 0.12);
  border: 1px solid rgba(16, 185, 129, 0.3);
  color: #34d399;
}
.finance-page--migration .tb-status--balanced mat-icon {
  color: #34d399;
}
.finance-page--migration .tb-status--unbalanced {
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.3);
  color: #f87171;
}
.finance-page--migration .tb-status--unbalanced mat-icon {
  color: #f87171;
}

.finance-page--migration .tb-totals {
  display: flex;
  gap: var(--ui-space-4);
  margin-bottom: var(--ui-space-4);
}

.finance-page--migration .tb-totals__cell {
  flex: 1;
  padding: var(--ui-space-3) var(--ui-space-4);
  border-radius: var(--ui-radius-sm);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.finance-page--migration .tb-totals__label {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  margin-bottom: 4px;
}

.finance-page--migration .tb-totals__value {
  font-size: var(--ui-text-md);
  font-weight: 700;
  color: var(--ui-text-primary);
}

.finance-page--migration .tb-table-wrap {
  overflow-x: auto;
  border-radius: var(--ui-radius-md);
  border: 1px solid rgba(255, 255, 255, 0.06);
  margin-bottom: var(--ui-space-3);
}

.finance-page--migration .tb-col-amt {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.finance-page--migration .tb-col-code {
  font-family: monospace;
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  white-space: nowrap;
}

.finance-page--migration .tb-row--debit {
  background: rgba(16, 185, 129, 0.025);
}

.finance-page--migration .tb-row--credit {
  background: rgba(239, 68, 68, 0.025);
}

.finance-page--migration .tb-net--positive {
  color: #34d399;
  font-weight: 600;
}

.finance-page--migration .tb-net--negative {
  color: #f87171;
  font-weight: 600;
}

.finance-page--migration .tb-footer-row {
  background: rgba(255, 255, 255, 0.06);
  border-top: 2px solid rgba(255, 255, 255, 0.12);
}
.finance-page--migration .tb-footer-row td {
  padding: var(--ui-space-3) var(--ui-space-4);
}

.finance-page--migration .tb-refresh {
  display: flex;
  justify-content: flex-end;
  margin-top: var(--ui-space-2);
}

.finance-page--migration .ledger-map-panel {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.finance-page--migration .ledger-map-panel__search-bar {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--ui-radius-md);
  padding: 8px 12px;
}

.finance-page--migration .ledger-map-panel__search-icon {
  font-size: 18px;
  color: var(--ui-text-muted);
  flex-shrink: 0;
}

.finance-page--migration .ledger-map-panel__search-input,
.finance-page--migration .ledger-map-panel__account-input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
}
.finance-page--migration .ledger-map-panel__search-input::placeholder,
.finance-page--migration .ledger-map-panel__account-input::placeholder {
  color: var(--ui-text-muted);
}

.finance-page--migration .ledger-map-panel__account-filter {
  display: flex;
  align-items: center;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--ui-radius-md);
  padding: 8px 12px;
}

.finance-page--migration .ledger-map-panel__badge {
  flex-shrink: 0;
  font-size: var(--ui-text-xs);
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 10px;
}

.finance-page--migration .ledger-map-panel__badge--warn {
  background: rgba(251, 191, 36, 0.15);
  color: #fbbf24;
}

.finance-page--migration .ledger-map-panel__badge--ok {
  background: rgba(52, 211, 153, 0.15);
  color: #34d399;
}

.finance-page--migration .ledger-map-panel__table-wrap {
  overflow-x: auto;
  border-radius: var(--ui-radius-md);
  border: 1px solid rgba(255, 255, 255, 0.06);
  max-height: 480px;
  overflow-y: auto;
}

.finance-page--migration .ledger-map-panel__table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--ui-text-sm);
}
.finance-page--migration .ledger-map-panel__table thead tr {
  background: rgba(255, 255, 255, 0.06);
}
.finance-page--migration .ledger-map-panel__table th {
  padding: 10px 12px;
  text-align: left;
  font-weight: 600;
  color: var(--ui-text-muted);
  white-space: nowrap;
}
.finance-page--migration .ledger-map-panel__table td {
  padding: 8px 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  vertical-align: middle;
}

.finance-page--migration .ledger-map-panel__row--unresolved {
  background: rgba(251, 191, 36, 0.04);
}

.finance-page--migration .ledger-map-panel__select {
  width: 100%;
  min-width: 180px;
}

.finance-page--migration .ledger-map-panel__footer {
  display: flex;
  gap: var(--ui-space-2);
  padding-top: var(--ui-space-2);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.finance-page--migration .recon-explanation {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  background: rgba(99, 102, 241, 0.08);
  border: 1px solid rgba(99, 102, 241, 0.2);
  border-radius: var(--ui-radius-md);
  padding: 10px 14px;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  margin-bottom: var(--ui-space-3);
}

.finance-page--migration .recon-explanation__icon {
  font-size: 18px;
  color: #818cf8;
  flex-shrink: 0;
  margin-top: 1px;
}

.finance-page--migration .financial-impact__section {
  font-size: var(--ui-text-xs);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ui-text-muted);
}

.finance-page--migration .financial-impact__row--section-label {
  padding-bottom: 2px !important;
  opacity: 0.7;
}

.finance-page--migration .financial-impact__sublabel {
  display: block;
  font-size: var(--ui-text-xs);
  font-weight: 400;
  color: var(--ui-text-muted);
  margin-top: 2px;
}

/* ==========================================================================
   UI PAGES - HR ONBOARDING
   ==========================================================================
   Scoped page contract for /console/hr/onboarding.
   ========================================================================== */
.hr-onboarding-page {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.hr-onboarding-page .header-card__bottom {
  flex-wrap: wrap;
}

.hr-onboarding-page__header-actions {
  margin-left: 0;
}

.hr-onboarding-page__table-card {
  max-height: none;
}

.hr-onboarding-table {
  --ui-table-min-width: 1120px;
}

.hr-onboarding-table th:nth-child(1),
.hr-onboarding-table td:nth-child(1) {
  width: 28%;
}

.hr-onboarding-table th:nth-child(2),
.hr-onboarding-table td:nth-child(2) {
  width: 16%;
}

.hr-onboarding-table th:nth-child(3),
.hr-onboarding-table td:nth-child(3) {
  width: 14%;
}

.hr-onboarding-table th:nth-child(4),
.hr-onboarding-table td:nth-child(4) {
  width: 24%;
}

.hr-onboarding-table th:nth-child(5),
.hr-onboarding-table td:nth-child(5) {
  width: 10%;
}

.hr-onboarding-table th:nth-child(6),
.hr-onboarding-table td:nth-child(6) {
  width: 14%;
}

.hr-onboarding-table__employee {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  min-width: 0;
}

.hr-onboarding-table__employee .cell-primary {
  min-width: 0;
}

.hr-onboarding-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  letter-spacing: 0.04em;
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-2);
  color: var(--ui-text-secondary);
}

.hr-onboarding-avatar--success {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.hr-onboarding-avatar--warning {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.hr-onboarding-avatar--danger {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
}

.hr-onboarding-avatar--muted {
  background: var(--ui-surface-2);
  border-color: var(--ui-border-light);
  color: var(--ui-text-muted);
}

.hr-onboarding-progress {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.hr-onboarding-progress__track {
  height: 8px;
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
  overflow: hidden;
}

.hr-onboarding-progress__fill {
  height: 100%;
  border-radius: inherit;
  transition: width var(--ui-transition-base);
}

.hr-onboarding-progress__fill--success {
  background: linear-gradient(90deg, rgba(74, 222, 128, 0.7), rgba(163, 241, 189, 0.95));
}

.hr-onboarding-progress__fill--warning {
  background: linear-gradient(90deg, rgba(251, 191, 36, 0.75), rgba(255, 220, 120, 0.95));
}

.hr-onboarding-progress__fill--danger {
  background: linear-gradient(90deg, rgba(248, 113, 113, 0.78), rgba(255, 160, 160, 0.95));
}

.hr-onboarding-progress__fill--muted {
  background: linear-gradient(90deg, rgba(148, 163, 184, 0.72), rgba(203, 213, 225, 0.9));
}

.hr-onboarding-progress__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-xs);
}

.hr-onboarding-progress__count {
  color: var(--ui-text-secondary);
  font-weight: var(--ui-font-semibold);
}

.hr-onboarding-progress__percent {
  color: var(--ui-text-muted);
}

.hr-onboarding-page__empty-card {
  min-height: 280px;
}

.hr-onboarding-checklist-panel {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
}

.hr-onboarding-checklist-panel__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-4);
}

.hr-onboarding-checklist-panel__title {
  margin: 0;
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.hr-onboarding-checklist-panel__subtitle {
  margin: var(--ui-space-1) 0 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.hr-onboarding-checklist {
  display: grid;
  gap: var(--ui-space-3);
}

.hr-onboarding-step {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-4);
  padding: var(--ui-space-4);
}

.hr-onboarding-step--complete {
  border-color: var(--ui-success-border);
  background: linear-gradient(150deg, rgba(74, 222, 128, 0.08), rgba(255, 255, 255, 0.02));
}

.hr-onboarding-step__main {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-3);
  min-width: 0;
  flex: 1;
}

.hr-onboarding-step__icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: var(--ui-danger-bg);
  border: 1px solid var(--ui-danger-border);
  color: var(--ui-danger);
}

.hr-onboarding-step__icon mat-icon {
  font-size: var(--ui-text-xl);
  width: var(--ui-text-xl);
  height: var(--ui-text-xl);
}

.hr-onboarding-step--complete .hr-onboarding-step__icon {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.hr-onboarding-step__content {
  min-width: 0;
}

.hr-onboarding-step__title {
  margin: 0;
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
}

.hr-onboarding-step__description {
  margin: var(--ui-space-1) 0 0;
  font-size: var(--ui-text-sm);
  line-height: 1.5;
  color: var(--ui-text-muted);
}

.hr-onboarding-step__actions {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-shrink: 0;
}

.hr-onboarding-checklist__empty {
  min-height: 220px;
}

@media (max-width: 900px) {
  .hr-onboarding-checklist-panel__header,
  .hr-onboarding-step {
    flex-direction: column;
    align-items: stretch;
  }
  .hr-onboarding-step__actions {
    width: 100%;
    justify-content: flex-start;
  }
}
@media (max-width: 720px) {
  .hr-onboarding-page .header-card__actions {
    width: 100%;
    margin-left: 0;
    justify-content: space-between;
  }
  .hr-onboarding-page .header-card__count {
    border-right: none;
    padding-right: 0;
  }
  .hr-onboarding-table {
    --ui-table-min-width: 980px;
  }
}
/* ==========================================================================
   UI PAGES - HR REPORTS
   ==========================================================================
   Scoped page contract for /console/hr/reports.
   ========================================================================== */
.hr-reports-page {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.hr-reports-page .header-card__bottom {
  flex-wrap: wrap;
}

.hr-reports-page__header-actions {
  margin-left: 0;
}

.hr-reports-page__date-filter {
  min-width: 0;
}

.hr-reports-card {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  min-height: 360px;
  padding: var(--ui-space-5);
}

.hr-reports-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-3);
}

.hr-reports-card__question {
  margin: 0;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-muted);
}

.hr-reports-card__title {
  margin: var(--ui-space-1) 0 0;
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
}

.hr-reports-card__meta {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-shrink: 0;
}

.hr-reports-card__chart {
  position: relative;
  flex: 1;
  min-height: 260px;
}

.hr-reports-card__chart--donut {
  min-height: 300px;
}

.hr-reports-card canvas {
  width: 100% !important;
  height: 100% !important;
}

.hr-reports-card__canvas--hidden {
  opacity: 0;
  pointer-events: none;
}

.hr-reports-card__state {
  position: absolute;
  inset: 0;
  padding: var(--ui-space-6);
}

.hr-reports-card__state .ui-empty-state__text {
  max-width: 320px;
}

@media (max-width: 900px) {
  .hr-reports-page .header-card__actions {
    width: 100%;
    margin-left: 0;
    justify-content: space-between;
  }
  .hr-reports-page__date-filter {
    width: 100%;
  }
  .hr-reports-card__header {
    flex-direction: column;
    align-items: flex-start;
  }
}
@media (max-width: 640px) {
  .hr-reports-page .header-card__count {
    border-right: none;
    padding-right: 0;
  }
}
/* ==========================================================================
   UI PAGES - HR LETTERS
   ==========================================================================
   Scoped page contract for /console/hr/letters.
   ========================================================================== */
.hr-letters-page {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.hr-letters-page .header-card__bottom {
  flex-wrap: wrap;
}

.hr-letters-page__header-actions {
  flex: 1 1 360px;
  min-width: 0;
  margin-left: 0;
}

.hr-letters-page__search {
  width: 100%;
  max-width: 480px;
}

.hr-letters-page__search .mat-mdc-progress-spinner {
  flex-shrink: 0;
}

.hr-letters-page__header-cta {
  flex-shrink: 0;
}

.hr-letters-layout {
  display: grid;
  grid-template-columns: minmax(340px, 440px) minmax(0, 1fr);
  gap: var(--ui-space-4);
  align-items: start;
}

.hr-letters-side,
.hr-letters-builder,
.hr-letters-preview,
.hr-letters-history {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  min-width: 0;
}

.hr-letters-side {
  display: grid;
}

.hr-letters-section__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-3);
}

.hr-letters-section__eyebrow {
  margin: 0;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ui-text-muted);
}

.hr-letters-section__title {
  margin: var(--ui-space-1) 0 0;
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.hr-letters-builder__empty,
.hr-letters-preview__state,
.hr-letters-history__state {
  min-height: 220px;
}

.hr-letters-selected {
  padding: var(--ui-space-4);
}

.hr-letters-selected__row {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-3);
}

.hr-letters-selected__avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border: 1px solid var(--ui-info-border);
  background: var(--ui-info-bg);
  color: var(--ui-info);
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-bold);
}

.hr-letters-selected__content {
  flex: 1;
  min-width: 0;
}

.hr-letters-selected__name {
  margin: 0;
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.hr-letters-selected__meta {
  margin: var(--ui-space-1) 0 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.hr-letters-builder__form {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.hr-letters-builder__help {
  margin: calc(var(--ui-space-2) * -1) 0 0;
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.hr-letters-validation {
  padding: var(--ui-space-4);
  gap: var(--ui-space-3);
}

.hr-letters-validation--alert {
  border-color: var(--ui-warning-border);
  background: linear-gradient(150deg, rgba(250, 204, 21, 0.08), rgba(255, 255, 255, 0.02));
}

.hr-letters-validation--ready {
  border-color: var(--ui-success-border);
  background: linear-gradient(150deg, rgba(74, 222, 128, 0.08), rgba(255, 255, 255, 0.02));
}

.hr-letters-validation__header {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-3);
}

.hr-letters-validation__header mat-icon {
  margin-top: 2px;
  color: inherit;
}

.hr-letters-validation--alert .hr-letters-validation__header {
  color: var(--ui-warning);
}

.hr-letters-validation--ready .hr-letters-validation__header {
  color: var(--ui-success);
}

.hr-letters-validation__title {
  margin: 0;
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.hr-letters-validation__subtitle {
  margin: var(--ui-space-1) 0 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.hr-letters-validation__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--ui-space-2);
}

.hr-letters-validation__item {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

.hr-letters-validation__item mat-icon {
  font-size: var(--ui-text-base);
  width: var(--ui-text-base);
  height: var(--ui-text-base);
  color: var(--ui-danger);
}

.hr-letters-builder__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-3);
}

.hr-letters-builder__actions .ui-btn {
  flex: 1 1 180px;
}

.hr-letters-preview__frame {
  min-height: 440px;
  max-height: 760px;
  overflow: auto;
  border-radius: var(--ui-radius-lg);
  border: 1px solid rgba(15, 23, 42, 0.08);
  background: #ffffff;
  color: #111827;
  box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.02);
}

.hr-letters-preview__frame img {
  max-width: 100%;
  height: auto;
}

.hr-letters-preview__frame table {
  width: 100%;
  max-width: 100%;
}

.hr-letters-history__list {
  display: grid;
  gap: var(--ui-space-3);
}

.hr-letters-history__item {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-3);
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-lg);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
}

.hr-letters-history__icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border);
  color: var(--ui-text-secondary);
}

.hr-letters-history__content {
  flex: 1;
  min-width: 0;
}

.hr-letters-history__topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
}

.hr-letters-history__name {
  margin: 0;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.hr-letters-history__meta,
.hr-letters-history__snapshot {
  margin: var(--ui-space-1) 0 0;
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.glass-dropdown-panel .hr-letters-employee-option {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.glass-dropdown-panel .hr-letters-employee-option__name {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: rgba(255, 255, 255, 0.92);
}

.glass-dropdown-panel .hr-letters-employee-option__meta,
.glass-dropdown-panel .hr-letters-employee-option--empty {
  font-size: var(--ui-text-xs);
  color: rgba(255, 255, 255, 0.58);
}

@media (max-width: 1080px) {
  .hr-letters-layout {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 720px) {
  .hr-letters-page .header-card__actions {
    width: 100%;
    margin-left: 0;
    justify-content: space-between;
  }
  .hr-letters-selected__row,
  .hr-letters-section__header,
  .hr-letters-history__topline {
    flex-direction: column;
    align-items: flex-start;
  }
  .hr-letters-builder__actions .ui-btn {
    width: 100%;
  }
}
/* ==========================================================================
   UI PAGES - HR ORG CHART
   ==========================================================================
   Scoped page contract for /console/hr/org-chart.
   ========================================================================== */
.hr-org-chart-page {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.hr-org-chart-page .header-card__bottom {
  flex-wrap: wrap;
}

.hr-org-chart-page__header-actions {
  flex: 1 1 auto;
  min-width: 0;
  margin-left: 0;
}

.hr-org-chart-page__search {
  flex: 1 1 320px;
  min-width: min(100%, 280px);
}

.hr-org-chart-page__search input {
  min-width: 0;
}

.hr-org-chart-page__zoom-controls {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.hr-org-chart-page__reset-btn {
  padding-inline: var(--ui-space-4);
}

.hr-org-chart-panel {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  min-height: 360px;
}

.hr-org-chart-state {
  min-height: 360px;
}

.hr-org-chart-panel__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-4);
}

.hr-org-chart-panel__eyebrow {
  margin: 0;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ui-text-muted);
}

.hr-org-chart-panel__title {
  margin: var(--ui-space-2) 0 0;
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.hr-org-chart-panel__subtitle {
  margin: var(--ui-space-2) 0 0;
  max-width: 760px;
  font-size: var(--ui-text-sm);
  line-height: 1.6;
  color: var(--ui-text-muted);
}

.hr-org-chart-panel__meta {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
  justify-content: flex-end;
}

.hr-org-chart-viewport {
  --hr-org-chart-pan-x: 0px;
  --hr-org-chart-pan-y: 0px;
  --hr-org-chart-scale: 1;
  position: relative;
  min-height: clamp(520px, 68vh, 780px);
  overflow: hidden;
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-lg);
  background: radial-gradient(circle at top, rgba(255, 255, 255, 0.05), transparent 55%), linear-gradient(180deg, rgba(255, 255, 255, 0.02), transparent);
  cursor: grab;
  -webkit-user-select: none;
          user-select: none;
}

.hr-org-chart-viewport--panning {
  cursor: grabbing;
}

.hr-org-chart-canvas {
  transform: translate(var(--hr-org-chart-pan-x), var(--hr-org-chart-pan-y)) scale(var(--hr-org-chart-scale));
  transform-origin: center top;
  display: inline-flex;
  justify-content: center;
  width: max-content;
  min-width: 100%;
  padding: clamp(48px, 5vw, 72px);
  transition: transform 120ms ease-out;
}

.hr-org-chart-tree {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: max-content;
}

.hr-org-chart-subtree {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 224px;
}

.hr-org-chart-subtree--collapsed > .hr-org-chart-children {
  display: none;
}

.hr-org-chart-children {
  position: relative;
  display: flex;
  justify-content: center;
  gap: var(--ui-space-4);
  width: max-content;
  padding-top: 36px;
}

.hr-org-chart-children::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 1px;
  height: 24px;
  background: var(--ui-border-light);
  transform: translateX(-50%);
}

.hr-org-chart-children > .hr-org-chart-subtree {
  position: relative;
}

.hr-org-chart-children > .hr-org-chart-subtree::before {
  content: "";
  position: absolute;
  top: -12px;
  left: 0;
  right: 0;
  height: 1px;
  background: var(--ui-border-light);
}

.hr-org-chart-children > .hr-org-chart-subtree::after {
  content: "";
  position: absolute;
  top: -12px;
  left: 50%;
  width: 1px;
  height: 12px;
  background: var(--ui-border-light);
  transform: translateX(-50%);
}

.hr-org-chart-children > .hr-org-chart-subtree:first-child::before {
  left: 50%;
}

.hr-org-chart-children > .hr-org-chart-subtree:last-child::before {
  left: auto;
  right: 50%;
  width: 50%;
}

.hr-org-chart-children > .hr-org-chart-subtree:only-child::before {
  display: none;
}

.hr-org-chart-node {
  position: relative;
  z-index: 1;
}

.hr-org-chart-node__card {
  position: relative;
  align-items: center;
  min-width: 224px;
  max-width: 224px;
  padding: var(--ui-space-4);
  text-align: center;
  cursor: pointer;
  transition: transform var(--ui-transition-base), border-color var(--ui-transition-base), background var(--ui-transition-base), box-shadow var(--ui-transition-base);
}

.hr-org-chart-node__card:hover {
  transform: translateY(-2px);
  border-color: var(--ui-border-focus);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  box-shadow: var(--ui-shadow-md);
}

.hr-org-chart-node--root .hr-org-chart-node__card {
  border-color: var(--ui-info-border);
}

.hr-org-chart-node--manager:not(.hr-org-chart-node--root) .hr-org-chart-node__card {
  border-color: var(--ui-success-border);
}

.hr-org-chart-node--leaf .hr-org-chart-node__card {
  background: rgba(255, 255, 255, 0.02);
}

.hr-org-chart-node--highlighted .hr-org-chart-node__card {
  border-color: var(--ui-warning-border);
  background: linear-gradient(180deg, rgba(251, 191, 36, 0.08), rgba(255, 255, 255, 0.02));
  box-shadow: 0 0 0 1px var(--ui-warning-border);
}

.hr-org-chart-node--virtual .hr-org-chart-node__card {
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.04)), var(--ui-brand-gradient);
  border-color: transparent;
  box-shadow: var(--ui-shadow-md);
}

.hr-org-chart-node--virtual .hr-org-chart-node__name,
.hr-org-chart-node--virtual .hr-org-chart-node__title,
.hr-org-chart-node--virtual .hr-org-chart-node__meta {
  color: #fff;
}

.hr-org-chart-node__avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-2);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  letter-spacing: 0.04em;
}

.hr-org-chart-node__avatar--company {
  background: rgba(255, 255, 255, 0.18);
  border-color: rgba(255, 255, 255, 0.24);
  color: #fff;
}

.hr-org-chart-node__avatar--company mat-icon {
  font-size: 22px;
  width: 22px;
  height: 22px;
}

.hr-org-chart-node__avatar--info {
  background: var(--ui-info-bg);
  border-color: var(--ui-info-border);
  color: var(--ui-info);
}

.hr-org-chart-node__avatar--success {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.hr-org-chart-node__avatar--warning {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.hr-org-chart-node__avatar--muted {
  background: var(--ui-surface-2);
  border-color: var(--ui-border-light);
  color: var(--ui-text-muted);
}

.hr-org-chart-node__name {
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  line-height: 1.45;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.hr-org-chart-node__title {
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-xs);
  line-height: 1.45;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.hr-org-chart-node__meta {
  color: var(--ui-text-muted);
  font-size: 11px;
  line-height: 1.45;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.hr-org-chart-node__toggle {
  position: absolute;
  left: 50%;
  bottom: -16px;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 32px;
  padding: 0 var(--ui-space-3);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-1);
  color: var(--ui-text-secondary);
  cursor: pointer;
  transition: var(--ui-transition-base);
  z-index: 2;
}

.hr-org-chart-node__toggle:hover {
  background: var(--ui-surface-2);
  border-color: var(--ui-border-hover);
}

.hr-org-chart-node__toggle mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.hr-org-chart-node__toggle span {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
}

.hr-org-chart-depth-warning {
  margin-top: var(--ui-space-4);
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-warning-border);
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  text-align: center;
}

.hr-org-chart-support {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-4);
}

.hr-org-chart-support-card {
  gap: var(--ui-space-4);
}

.hr-org-chart-support-card__list {
  display: grid;
  gap: var(--ui-space-4);
}

.hr-org-chart-support-card__item {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-3);
}

.hr-org-chart-support-card__item mat-icon {
  margin-top: 2px;
  color: var(--ui-text-muted);
}

.hr-org-chart-support-card__swatch {
  width: 14px;
  height: 14px;
  margin-top: 4px;
  border-radius: 999px;
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-2);
  flex-shrink: 0;
}

.hr-org-chart-support-card__swatch--root {
  background: var(--ui-info-bg);
  border-color: var(--ui-info-border);
}

.hr-org-chart-support-card__swatch--manager {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
}

.hr-org-chart-support-card__swatch--warning {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
}

.hr-org-chart-support-card__label {
  display: block;
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
}

.hr-org-chart-support-card__text {
  margin: var(--ui-space-1) 0 0;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  line-height: 1.6;
}

@media (max-width: 1100px) {
  .hr-org-chart-page .header-card__actions {
    width: 100%;
    margin-left: 0;
    justify-content: space-between;
  }
  .hr-org-chart-panel__header {
    flex-direction: column;
  }
  .hr-org-chart-panel__meta {
    justify-content: flex-start;
  }
  .hr-org-chart-support {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 900px) {
  .hr-org-chart-page__header-actions,
  .hr-org-chart-page__zoom-controls {
    width: 100%;
  }
  .hr-org-chart-page__search {
    flex-basis: 100%;
  }
  .hr-org-chart-viewport {
    min-height: 500px;
  }
  .hr-org-chart-subtree,
  .hr-org-chart-node__card {
    min-width: 196px;
    max-width: 196px;
  }
  .hr-org-chart-children {
    gap: var(--ui-space-3);
  }
}
@media (max-width: 640px) {
  .hr-org-chart-page__zoom-controls {
    justify-content: flex-start;
  }
  .hr-org-chart-page__reset-btn {
    width: 100%;
    justify-content: center;
  }
  .hr-org-chart-viewport {
    min-height: 440px;
  }
  .hr-org-chart-panel__title {
    font-size: var(--ui-text-lg);
  }
}
/**
 * HR — Holiday Calendar Page Contract
 *
 * Scope: .holidays-page only.
 * Layout + structural concerns for the inline form and year select.
 * All visual tokens (colors, shadows, radii) flow from base contracts.
 *
 * UI CONTRACT: src/ui/README.md
 */
.holidays-page .year-pill-select {
  appearance: none;
  -webkit-appearance: none;
  padding: 0 var(--ui-space-4);
  height: 34px;
  min-width: 80px;
  cursor: pointer;
  font-size: var(--ui-font-size-sm, 13px);
  color: var(--ui-text-primary);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='rgba(255,255,255,0.5)'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right var(--ui-space-3) center;
  padding-right: var(--ui-space-7);
}
.holidays-page .year-pill-select option {
  background: var(--ui-surface-2, #1a1a2e);
  color: var(--ui-text-primary);
}
.holidays-page .holiday-form-card {
  padding: var(--ui-space-5, 20px);
  margin-bottom: var(--ui-space-5, 20px);
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4, 16px);
}
.holidays-page .form-row-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 2fr;
  gap: var(--ui-space-3, 12px);
}
@media (max-width: 900px) {
  .holidays-page .form-row-grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 600px) {
  .holidays-page .form-row-grid {
    grid-template-columns: 1fr;
  }
}
.holidays-page .form-field-group {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1, 4px);
}
.holidays-page .form-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.45));
}
.holidays-page .glass-input {
  width: 100%;
  box-sizing: border-box;
  height: 36px;
  padding: 0 var(--ui-space-3, 12px);
  border-radius: var(--ui-radius-md, 8px);
  background: rgba(255, 255, 255, 0.05);
  color: var(--ui-text-primary);
  border: 1px solid rgba(255, 255, 255, 0.1);
  font-size: var(--ui-font-size-sm, 13px);
  outline: none;
  transition: border-color 0.18s;
}
.holidays-page .glass-input:focus {
  border-color: rgba(255, 255, 255, 0.25);
}
.holidays-page .glass-input::placeholder {
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.3));
}
.holidays-page .glass-select--full {
  width: 100%;
  box-sizing: border-box;
  height: 36px;
  padding: 0 var(--ui-space-3, 12px);
  border-radius: var(--ui-radius-md, 8px);
  background: rgba(255, 255, 255, 0.05);
  color: var(--ui-text-primary);
  border: 1px solid rgba(255, 255, 255, 0.1);
  font-size: var(--ui-font-size-sm, 13px);
  outline: none;
  appearance: none;
  cursor: pointer;
}
.holidays-page .glass-select--full option {
  background: var(--ui-surface-2, #1a1a2e);
  color: var(--ui-text-primary);
}
.holidays-page .form-actions-row {
  display: flex;
  justify-content: flex-end;
  gap: var(--ui-space-2, 8px);
}

.payroll-page {
  /* ── Statutory validation error banner (blocking) ─────────────────────
     Outer: info-banner info-banner--error  (contract supplies color + radius)
     This block provides column layout + sub-element structure.
  ──────────────────────────────────────────────────────────────────────── */
}
.payroll-page .validation-error-banner.info-banner {
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
}
.payroll-page .validation-error-banner__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.payroll-page .validation-error-banner__title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 600;
}
.payroll-page .validation-error-banner__actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}
.payroll-page .validation-error-banner__message {
  margin: 0;
  font-size: 13px;
  font-weight: 400;
  color: rgba(255, 150, 150, 0.85);
  line-height: 1.5;
}
.payroll-page .validation-error-banner__list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-top: 4px;
  border-top: 1px solid rgba(255, 80, 80, 0.18);
}
.payroll-page .validation-error-banner__item {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  font-size: 13px;
}
.payroll-page .validation-error-banner__employee {
  color: rgba(255, 255, 255, 0.9);
}
.payroll-page .validation-error-banner__employee strong {
  color: rgb(255, 255, 255);
  font-weight: 700;
}
.payroll-page .validation-error-banner__issue {
  color: rgba(255, 150, 150, 0.8);
  font-size: 12px;
}
.payroll-page .pill-filter--payroll-month {
  inline-size: clamp(168px, 15vw, 208px);
  min-width: 0;
  flex: 0 1 auto;
  margin-inline-end: 12px;
}
.payroll-page .pill-filter--payroll-month .mat-mdc-select,
.payroll-page .pill-filter--payroll-month .mat-mdc-select-trigger,
.payroll-page .pill-filter--payroll-month .mat-mdc-select-value,
.payroll-page .pill-filter--payroll-month .mat-mdc-select-value-text {
  inline-size: 100%;
  min-width: 0;
}
.payroll-page .pill-filter--payroll-month .filter-label {
  inline-size: 100%;
  min-width: 0;
  justify-content: space-between;
  gap: 8px;
}
.payroll-page .payroll-month-trigger__text {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
.payroll-page .statutory-tab.ui-tab-content {
  display: block;
  min-width: 0;
}
.payroll-page .payslips-tab.ui-tab-content {
  display: block;
  min-width: 0;
}
.payroll-page .payslips-content {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-6);
  min-width: 0;
}
.payroll-page .payslips-table-shell__header {
  align-items: center;
}
.payroll-page .payslips-table-shell__header .glass-table-title {
  margin: 0;
}
.payroll-page .payslips-table {
  min-width: 1020px;
}
.payroll-page .payslips-table__col-employee {
  width: 24%;
}
.payroll-page .payslips-table__col-earnings {
  width: 15%;
}
.payroll-page .payslips-table__col-recovery {
  width: 15%;
}
.payroll-page .payslips-table__col-status {
  width: 12%;
}
.payroll-page .payslips-table__col-payment {
  width: 16%;
}
.payroll-page .payslips-table__col-actions {
  width: 18%;
}
.payroll-page .payslips-table tbody tr:hover {
  box-shadow: inset 3px 0 0 0 rgba(255, 138, 80, 0.78);
}
.payroll-page .payslips-table__meta-row {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 4px;
}
.payroll-page .payslips-table__meta-separator {
  color: rgba(255, 255, 255, 0.24);
  font-size: 11px;
}
.payroll-page .payslips-table__id-pill {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid rgba(255, 159, 96, 0.18);
  background: rgba(255, 159, 96, 0.08);
  color: rgba(255, 198, 160, 0.88);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.payroll-page .payslips-table__earnings {
  gap: 10px;
}
.payroll-page .payslips-table__amount {
  color: #ff9e72;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.payroll-page .payslips-table__payment {
  display: flex;
  align-items: center;
  min-height: 46px;
}
.payroll-page .payslips-table__payment-paid {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: rgba(168, 241, 196, 0.94);
  font-size: 13px;
  font-weight: 600;
}
.payroll-page .payslips-table__payment-paid mat-icon {
  width: 16px;
  height: 16px;
  font-size: 16px;
  color: rgba(111, 232, 160, 0.9);
}
.payroll-page .payslips-table__payment-pill.type-pill {
  text-transform: capitalize;
}
.payroll-page .payslips-table__payment-pill--pending {
  color: rgba(255, 210, 145, 0.9);
  background: rgba(255, 172, 73, 0.12);
  border-color: rgba(255, 172, 73, 0.3);
}
.payroll-page .payslips-table__payment-pill--processing {
  color: rgba(255, 198, 133, 0.9);
  background: rgba(255, 146, 43, 0.12);
  border-color: rgba(255, 146, 43, 0.3);
}
.payroll-page .payslips-table__payment-pill--failed {
  color: rgba(255, 147, 153, 0.92);
  background: rgba(255, 95, 109, 0.12);
  border-color: rgba(255, 95, 109, 0.3);
}
.payroll-page .payslips-table__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}
.payroll-page .payslips-table__action-warn {
  border-color: rgba(255, 166, 92, 0.26);
  color: rgba(255, 184, 124, 0.94);
}
.payroll-page .payslips-table__action-warn:hover:not(:disabled) {
  border-color: rgba(255, 166, 92, 0.42);
  color: rgba(255, 204, 164, 0.98);
  background: rgba(255, 166, 92, 0.08);
}
.payroll-page .payslips-table__paid-chip {
  min-height: 30px;
}
.payroll-page .statutory-content {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-6);
  min-width: 0;
}
.payroll-page .statutory-section {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  min-width: 0;
}
.payroll-page .statutory-content > .statutory-section,
.payroll-page .statutory-content > .ui-empty-state--bordered,
.payroll-page .statutory-content > .section-divider {
  margin: 0;
}
.payroll-page .statutory-content > .ui-empty-state--bordered {
  flex: 0 0 auto;
}

body:has(.payroll-page) .mat-mdc-select-panel.payroll-month-panel {
  width: min(208px, 100vw - 32px) !important;
  max-width: min(208px, 100vw - 32px) !important;
}

body:has(.payroll-page) .cdk-overlay-pane:has(.payroll-month-panel) {
  margin-inline-start: -12px;
}

/* ============================================================================
   ADVANCES PAGE — glass-table column-width contract
   ============================================================================
   Root cause of header/body misalignment:
     .glass-table thead  is display:table (one table)
     .glass-table tbody tr is display:table (a NEW table per row)
   Both use table-layout:fixed, so each distributes column widths from its OWN
   first-row cell declarations — completely independent of each other.

   Fix: pin identical widths on both th:nth-child(N) and td:nth-child(N) so
   every "table" (header row + each body row) computes to the same proportions.

   Column map (7 cols, total = 100%):
     1  Advance ID    12%
     2  Employee      20%
     3  Amount        15%
     4  Created       11%
     5  % of Salary   11%
     6  Status        12%
     7  Actions       19%  (remainder — not declared, browser fills it)
   ============================================================================ */
.advances-page .glass-table {
  /* Col 1 — Advance ID */
  /* Col 2 — Employee */
  /* Col 3 — Amount (due + total) */
  /* Col 4 — Created date */
  /* Col 5 — % of Salary risk badge */
  /* Col 6 — Status */
  /* Col 7 — Actions: takes remaining 19% (no declaration needed) */
}
.advances-page .glass-table th:nth-child(1),
.advances-page .glass-table td:nth-child(1) {
  width: 12%;
}
.advances-page .glass-table th:nth-child(2),
.advances-page .glass-table td:nth-child(2) {
  width: 20%;
}
.advances-page .glass-table th:nth-child(3),
.advances-page .glass-table td:nth-child(3) {
  width: 15%;
}
.advances-page .glass-table th:nth-child(4),
.advances-page .glass-table td:nth-child(4) {
  width: 11%;
}
.advances-page .glass-table th:nth-child(5),
.advances-page .glass-table td:nth-child(5) {
  width: 11%;
}
.advances-page .glass-table th:nth-child(6),
.advances-page .glass-table td:nth-child(6) {
  width: 12%;
}

/* ============================================================================
   LOANS PAGE — glass-table column-width contract
   ============================================================================
   10 columns. Same alignment fix as advances-page: pin identical widths on
   both th:nth-child(N) and td:nth-child(N).

   Column map (10 cols):
     1  Loan No       9%
     2  Employee     18%
     3  Principal    10%
     4  Remaining    10%
     5  EMI           9%
     6  Next EMI     12%
     7  Progress     12%
     8  % Salary      9%
     9  Status        9%
    10  Actions      12%  (remainder — not declared)
   ============================================================================ */
.loans-page .glass-table {
  /* Col 10 — Actions: takes remaining 12% */
}
.loans-page .glass-table th:nth-child(1), .loans-page .glass-table td:nth-child(1) {
  width: 9%;
}
.loans-page .glass-table th:nth-child(2), .loans-page .glass-table td:nth-child(2) {
  width: 18%;
}
.loans-page .glass-table th:nth-child(3), .loans-page .glass-table td:nth-child(3) {
  width: 10%;
}
.loans-page .glass-table th:nth-child(4), .loans-page .glass-table td:nth-child(4) {
  width: 10%;
}
.loans-page .glass-table th:nth-child(5), .loans-page .glass-table td:nth-child(5) {
  width: 9%;
}
.loans-page .glass-table th:nth-child(6), .loans-page .glass-table td:nth-child(6) {
  width: 12%;
}
.loans-page .glass-table th:nth-child(7), .loans-page .glass-table td:nth-child(7) {
  width: 12%;
}
.loans-page .glass-table th:nth-child(8), .loans-page .glass-table td:nth-child(8) {
  width: 9%;
}
.loans-page .glass-table th:nth-child(9), .loans-page .glass-table td:nth-child(9) {
  width: 9%;
}

/* ==========================================================================
   UI PAGES - SERVICES PAGE
   ==========================================================================
   Scoped page contract for the Services listing page
   (/console/stock/custom-service).

   Depends on:
     - stats-header.scss  → .erp-header-block, .erp-header-primary, .erp-filter-bar
     - pill-tabs.scss     → .pill-tabs-container, .pill-tab-btn, .tab-slider
     - pill-controls.scss → .pill-trigger, .pill-btn-add
     - table.scss         → .premium-table base, .ui-table-pagination
     - table-grouped.scss → .table-scroll

   Usage:
     <div class="premium-services page">
       <div class="erp-header-block">...</div>
       <section class="glass-card table-section services-table-card">
         <table class="premium-table">...</table>
       </section>
       <div class="ui-table-pagination">...</div>
     </div>
   ========================================================================== */
/* ==========================================================================
   PAGE WRAPPER
   ========================================================================== */
.premium-services.page {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-height: 0;
}

/* Ensure filter form inside header-card spans full width */
.premium-services .header-card__bottom form.filter-row {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
}

/* Right-align tabs + actions in header top row */
.premium-services .header-card__actions {
  margin-left: auto;
}

/* ==========================================================================
   HEADER — pill-button ghost link
   ========================================================================== */
.premium-services .pill-button.ghost {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 36px;
  padding: 0 16px;
  border-radius: 99px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.7);
  font-size: 13px;
  font-weight: 500;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.2s ease;
}

.premium-services .pill-button.ghost:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.18);
  color: rgba(255, 255, 255, 0.9);
}

/* ==========================================================================
   FILTER BAR — icon-clear button
   ========================================================================== */
.icon-clear {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  padding: 0;
  background: rgba(255, 255, 255, 0.06);
  border: none;
  border-radius: 50%;
  color: rgba(255, 255, 255, 0.5);
  cursor: pointer;
  transition: all 0.2s ease;
  flex-shrink: 0;
}

.icon-clear:hover {
  background: rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.9);
}

.icon-clear mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

/* Locked car filter state */
.filter-search.locked {
  background: rgba(255, 140, 100, 0.08);
  border-color: rgba(255, 140, 100, 0.25);
}

.filter-search .pill-label {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.85);
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ==========================================================================
   TABLE — Services table card
   ========================================================================== */
.services-table-card {
  margin-top: 0;
  border-radius: 16px;
  overflow: hidden;
}

/* ==========================================================================
   TABLE — Header cells
   ========================================================================== */
.premium-table .th-content {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.5);
  white-space: nowrap;
}

.premium-table .th-content.th-right {
  justify-content: flex-end;
}

.premium-table .th-icon {
  font-size: 15px;
  width: 15px;
  height: 15px;
  color: rgba(255, 255, 255, 0.35);
}

/* ==========================================================================
   TABLE — Cell patterns for services
   ========================================================================== */
/* Stacked two-line cell (Category + Sub-Category) */
.premium-table .stacked-cell {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.premium-table .cell-primary {
  font-size: 14px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.9);
}

.premium-table .cell-secondary {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.45);
}

/* Pricing cell — total + breakdown */
.premium-table .pricing-cell {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
}

.premium-table .price-total {
  font-size: 15px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.95);
}

.premium-table .price-breakdown {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.4);
}

.premium-table .breakdown-item {
  white-space: nowrap;
}

.premium-table .breakdown-divider {
  color: rgba(255, 255, 255, 0.25);
}

/* Details cell — slug + page type stacked */
.premium-table .details-cell {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.premium-table .detail-slug {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.6);
  max-width: 180px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.premium-table .detail-slug.muted {
  color: rgba(255, 255, 255, 0.25);
}

.premium-table .detail-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: rgba(255, 255, 255, 0.4);
  flex-shrink: 0;
}

.premium-table .detail-page-type {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
  text-transform: capitalize;
}

/* ==========================================================================
   TABLE — Row action buttons
   ========================================================================== */
.premium-table .icon-button {
  width: 30px;
  height: 30px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.6);
  cursor: pointer;
  transition: all 0.2s ease;
}

.premium-table .icon-button:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.95);
}

.premium-table .icon-button mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.premium-table .icon-button.danger:hover {
  background: rgba(239, 68, 68, 0.12);
  border-color: rgba(239, 68, 68, 0.3);
  color: #f87171;
}

.premium-table .row-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
}

/* ==========================================================================
   TABLE — Empty state
   ========================================================================== */
.premium-table .empty-row td {
  padding: 0;
}

.premium-table .empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 64px 24px;
  text-align: center;
  gap: 8px;
}

.premium-table .empty-icon-v2 {
  font-size: 48px;
  width: 48px;
  height: 48px;
  color: rgba(255, 255, 255, 0.15);
  margin-bottom: 8px;
}

.premium-table .empty-title {
  font-size: 16px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.6);
}

.premium-table .empty-subtitle {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.4);
}

/* ==========================================================================
   TABLE — Service row hover accent
   ========================================================================== */
.premium-table .service-row {
  cursor: pointer;
}

.premium-table .service-row:hover {
  background: rgba(255, 255, 255, 0.03);
}

.premium-table .service-row:hover td:first-child {
  box-shadow: inset 3px 0 0 0 rgba(255, 140, 100, 0.5);
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 768px) {
  .premium-services .erp-header-primary {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }
  .premium-services .erp-filter-bar .filter-row {
    flex-direction: column;
    gap: 8px;
  }
}
/* ==========================================================================
   PHASE 3 — PACKAGE BENEFITS BANNER
   ========================================================================== */
.pkg-benefits-banner {
  margin-bottom: 12px;
  padding: 20px 24px;
  border-radius: 16px;
  border: 1px solid rgba(74, 222, 128, 0.15);
  background: linear-gradient(135deg, rgba(74, 222, 128, 0.06) 0%, rgba(59, 130, 246, 0.04) 100%);
  animation: bannerSlideIn 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes bannerSlideIn {
  from {
    opacity: 0;
    transform: translateY(-12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.pkg-banner-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 16px;
  gap: 12px;
}

.pkg-banner-title {
  display: flex;
  align-items: center;
  gap: 12px;
}

.pkg-banner-icon {
  font-size: 28px;
  width: 28px;
  height: 28px;
  color: #4ade80;
}

.pkg-banner-title h4 {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.92);
}

.pkg-banner-name {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
  margin-top: 2px;
  display: block;
}

.pkg-expiry {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
  white-space: nowrap;
}

.pkg-expiry mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.expiry-urgent {
  color: #f87171 !important;
  font-weight: 600;
}

.pkg-benefits-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}

.benefit-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
  flex: 0 1 auto;
  min-width: 160px;
}

.benefit-status-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: #4ade80;
  flex-shrink: 0;
}

.benefit-exhausted .benefit-status-icon {
  color: #f87171;
}

.benefit-no-match .benefit-status-icon {
  color: rgba(255, 255, 255, 0.3);
}

.benefit-exhausted {
  opacity: 0.5;
  border-color: rgba(248, 113, 113, 0.15);
}

.benefit-no-match {
  opacity: 0.4;
}

.benefit-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.benefit-label {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.85);
}

.benefit-usage {
  font-size: 11px;
  color: rgba(74, 222, 128, 0.7);
}

.benefit-usage.exhausted {
  color: rgba(248, 113, 113, 0.7);
}

.benefit-savings {
  font-size: 13px;
  font-weight: 600;
  color: #4ade80;
  margin-left: auto;
}

.pkg-banner-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}

.savings-highlight {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.75);
}

.savings-highlight mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: #fbbf24;
}

.savings-highlight strong {
  color: #4ade80;
  font-weight: 700;
}

.pkg-banner-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.pkg-apply-btn {
  font-size: 14px !important;
  font-weight: 600 !important;
  padding: 8px 20px !important;
  box-shadow: 0 2px 12px rgba(74, 222, 128, 0.25) !important;
}

.pkg-skip-btn {
  font-size: 12px !important;
  color: rgba(255, 255, 255, 0.4) !important;
  text-transform: lowercase;
}

/* Loss-framing bar */
.pkg-loss-banner {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 18px;
  margin-bottom: 12px;
  border-radius: 10px;
  background: rgba(251, 191, 36, 0.08);
  border: 1px solid rgba(251, 191, 36, 0.2);
  font-size: 13px;
  color: rgba(255, 255, 255, 0.8);
  animation: bannerSlideIn 0.3s ease;
}

.pkg-loss-banner mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: #fbbf24;
  flex-shrink: 0;
}

.pkg-loss-banner strong {
  color: #fbbf24;
  font-weight: 700;
}

/* Animated savings counter */
.pkg-savings-counter {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 24px;
  margin-bottom: 12px;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(74, 222, 128, 0.12) 0%, rgba(74, 222, 128, 0.04) 100%);
  border: 1px solid rgba(74, 222, 128, 0.2);
  font-size: 18px;
  font-weight: 700;
  color: #4ade80;
  animation: savingsPulse 0.8s ease;
}

@keyframes savingsPulse {
  0% {
    transform: scale(0.95);
    opacity: 0;
  }
  50% {
    transform: scale(1.02);
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
.pkg-savings-counter mat-icon {
  font-size: 24px;
  width: 24px;
  height: 24px;
  color: #fbbf24;
}

/* ==========================================================================
   PHASE 3 — CHECKOUT GUARD OVERLAY
   ========================================================================== */
.checkout-guard-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  animation: fadeIn 0.25s ease;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.checkout-guard-modal {
  padding: 32px 36px;
  border-radius: 20px;
  max-width: 440px;
  width: 90%;
  text-align: center;
  border: 1px solid rgba(251, 191, 36, 0.2);
  background: rgba(30, 30, 40, 0.95);
}

.guard-icon {
  font-size: 48px !important;
  width: 48px !important;
  height: 48px !important;
  color: #fbbf24;
  margin-bottom: 12px;
}

.checkout-guard-modal h3 {
  font-size: 18px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
  margin: 0 0 12px;
}

.guard-savings {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.65);
  margin: 0 0 24px;
  line-height: 1.5;
}

.guard-savings strong {
  color: #fbbf24;
}

.guard-actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.guard-apply-btn {
  width: 100%;
  justify-content: center;
  font-size: 15px !important;
  font-weight: 600 !important;
  padding: 12px 24px !important;
}

/* ==========================================================================
   PHASE 3 — SELL PACKAGE CARD (inline)
   ========================================================================== */
.sell-package-card {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 8px;
  padding: 10px 16px;
  border-radius: 12px;
  background: rgba(245, 158, 11, 0.08);
  border: 1px solid rgba(245, 158, 11, 0.25);
  animation: cardFadeIn 0.4s ease-out;
}

@keyframes cardFadeIn {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.sell-package-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  min-width: 42px;
  border-radius: 10px;
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
  color: #fff;
}

.sell-package-card__icon mat-icon {
  font-size: 22px;
  width: 22px;
  height: 22px;
}

.sell-package-card__content {
  flex: 1;
  min-width: 0;
}

.sell-package-card__title {
  font-size: 14px;
  font-weight: 600;
  color: #f59e0b;
  line-height: 1.3;
}

.sell-package-card__subtitle {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.3;
  margin-top: 2px;
}

.sell-package-card__btn {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 18px;
  border-radius: 8px;
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  border: none;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.25s ease;
  box-shadow: 0 2px 10px rgba(245, 158, 11, 0.25);
}

.sell-package-card__btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(245, 158, 11, 0.4);
}

.sell-package-card__btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

/* ==========================================================================
   UI PAGES — SERVICE CATALOG PAGE (Group)
   ==========================================================================
   Scoped page contract for the Service Catalog definitions page
   (/console/group/services).

   Depends on:
     - stats-header.scss  → .header-card
     - pill-tabs.scss     → .pill-tabs-container, .pill-tab-btn, .tab-slider
     - pill-controls.scss → .pill-trigger, .pill-btn-add
     - table.scss         → .premium-table base, .ui-table-pagination
     - services-page.scss → .icon-clear, .icon-button, .empty-state
   ========================================================================== */
/* ==========================================================================
   PAGE WRAPPER
   ========================================================================== */
.service-catalog.page {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-height: 0;
}

.service-catalog .header-card__actions {
  margin-left: auto;
}

.service-catalog .header-card__bottom form.filter-row {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
}

/* ==========================================================================
   STATS BAR
   ========================================================================== */
.catalog-stats-bar {
  display: flex;
  align-items: center;
  gap: 0;
  padding: 12px 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.stat-chip {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px 16px;
  border-radius: 8px;
}
.stat-chip.clickable {
  cursor: pointer;
  transition: background 0.2s;
}
.stat-chip.clickable:hover {
  background: rgba(255, 255, 255, 0.05);
}
.stat-chip.clickable.active {
  background: rgba(255, 140, 100, 0.1);
}
.stat-chip.clickable.active .stat-icon {
  color: rgba(255, 140, 100, 0.95);
}
.stat-chip.clickable.active .stat-value {
  color: #fff;
}
.stat-chip.clickable.active .stat-label {
  color: rgba(255, 255, 255, 0.6);
}
.stat-chip .stat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 140, 100, 0.7);
}
.stat-chip .stat-body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.stat-value {
  font-size: 20px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.95);
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}

.stat-label {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.4);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 500;
  line-height: 1.2;
  margin-top: 1px;
}

.stat-divider {
  width: 1px;
  height: 28px;
  background: rgba(255, 255, 255, 0.08);
  flex-shrink: 0;
}

/* ==========================================================================
   TABLE — Definition rows
   ========================================================================== */
.catalog-table-card {
  margin-top: 0;
  border-radius: 16px;
  overflow: hidden;
}

.def-row {
  cursor: pointer;
  transition: background-color 0.15s ease;
}

.def-row:hover {
  background: rgba(255, 255, 255, 0.03);
}

.def-row:hover td:first-child {
  box-shadow: inset 3px 0 0 0 rgba(255, 140, 100, 0.5);
}

.def-row.expanded {
  background: rgba(255, 140, 100, 0.04);
}

.def-row.expanded td:first-child {
  box-shadow: inset 3px 0 0 0 rgba(255, 140, 100, 0.7);
}

/* ==========================================================================
   COVERAGE BADGES
   ========================================================================== */
.coverage-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

.coverage-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  border-radius: 99px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.coverage-badge.model {
  background: rgba(96, 165, 250, 0.12);
  color: #93bbfd;
  border: 1px solid rgba(96, 165, 250, 0.18);
}

.coverage-badge.segment {
  background: rgba(74, 222, 128, 0.1);
  color: #6ee7b7;
  border: 1px solid rgba(74, 222, 128, 0.18);
}

.coverage-badge.warning {
  background: rgba(251, 191, 36, 0.1);
  color: #fbbf24;
  border: 1px solid rgba(251, 191, 36, 0.18);
}

.coverage-badge.empty {
  background: rgba(239, 68, 68, 0.08);
  color: rgba(248, 113, 113, 0.8);
  border: 1px solid rgba(239, 68, 68, 0.15);
}

.coverage-badge.fix-cta {
  background: rgba(59, 130, 246, 0.12);
  color: #60a5fa;
  border: 1px solid rgba(59, 130, 246, 0.22);
  cursor: pointer;
  text-decoration: none;
  transition: all 0.2s ease;
}

.coverage-badge.fix-cta:hover {
  background: rgba(59, 130, 246, 0.22);
  color: #93bbfd;
  border-color: rgba(59, 130, 246, 0.4);
}

.coverage-badge.pct {
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  min-width: 42px;
  text-align: center;
  justify-content: center;
}

.coverage-badge.pct-full {
  background: rgba(74, 222, 128, 0.12);
  color: #6ee7b7;
  border: 1px solid rgba(74, 222, 128, 0.2);
}

.coverage-badge.pct-mid {
  background: rgba(251, 191, 36, 0.1);
  color: #fbbf24;
  border: 1px solid rgba(251, 191, 36, 0.18);
}

.coverage-badge.pct-low {
  background: rgba(239, 68, 68, 0.1);
  color: #f87171;
  border: 1px solid rgba(239, 68, 68, 0.18);
}

.stat-chip.warning .stat-icon {
  color: #fbbf24;
}

.stat-chip.warning .stat-value {
  color: #fbbf24;
}

.badge-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

/* ==========================================================================
   EXPAND BUTTON
   ========================================================================== */
.expand-btn {
  transition: transform 0.2s ease;
}

.expand-btn.open {
  background: rgba(255, 140, 100, 0.1);
  border-color: rgba(255, 140, 100, 0.25);
  color: rgba(255, 140, 100, 0.9);
}

/* ==========================================================================
   PRICING EXPANSION PANEL
   ========================================================================== */
.pricing-expansion-row {
  background: transparent !important;
}

.pricing-expansion-cell {
  padding: 0 !important;
  border-bottom: none !important;
}

.pricing-panel {
  margin: 0 16px 16px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 12px;
  overflow: hidden;
}

.pricing-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.02);
}

.pricing-panel-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.8);
}

.pricing-title-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: rgba(255, 140, 100, 0.7);
}

.pricing-count-badge {
  padding: 2px 8px;
  border-radius: 99px;
  background: rgba(255, 255, 255, 0.06);
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.5);
}

.pricing-panel-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ==========================================================================
   PRICING SUB-TABLE
   ========================================================================== */
.pricing-table-scroll {
  overflow-x: auto;
}

.pricing-sub-table {
  border-collapse: collapse;
  width: 100%;
}

.pricing-sub-table thead th {
  padding: 8px 16px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.4);
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  white-space: nowrap;
}

.pricing-sub-table tbody td {
  padding: 10px 16px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.8);
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.pricing-row {
  transition: background-color 0.15s ease;
}

.pricing-row:hover {
  background: rgba(255, 255, 255, 0.02);
}

.pricing-row.segment-row {
  background: rgba(74, 222, 128, 0.03);
}

.pricing-row.segment-row:hover {
  background: rgba(74, 222, 128, 0.06);
}

.price-total-cell {
  font-weight: 700;
  color: rgba(255, 255, 255, 0.95);
}

/* Model cell with inherited badge */
.model-cell {
  display: flex;
  align-items: center;
  gap: 8px;
}

.inherited-badge {
  display: inline-flex;
  padding: 2px 6px;
  border-radius: 4px;
  background: rgba(74, 222, 128, 0.1);
  color: #6ee7b7;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* ==========================================================================
   INLINE EDIT INPUTS (Batch Pricing Editor)
   ========================================================================== */
.inline-edit-input {
  width: 80px;
  padding: 4px 8px;
  border: 1px solid rgba(255, 140, 100, 0.3);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  text-align: right;
  outline: none;
  transition: border-color 0.2s ease;
}

.inline-edit-input:focus {
  border-color: rgba(255, 140, 100, 0.6);
  background: rgba(255, 140, 100, 0.06);
}

.inline-edit-input::-webkit-inner-spin-button,
.inline-edit-input::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* ==========================================================================
   SMALL PILL BUTTONS (for pricing panel actions)
   ========================================================================== */
.pill-btn-sm {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 30px;
  padding: 0 12px;
  border-radius: 99px;
  background: rgba(255, 140, 100, 0.1);
  border: 1px solid rgba(255, 140, 100, 0.25);
  color: rgba(255, 140, 100, 0.9);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.pill-btn-sm:hover {
  background: rgba(255, 140, 100, 0.18);
  border-color: rgba(255, 140, 100, 0.4);
}

.pill-btn-sm.ghost {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.6);
}

.pill-btn-sm.ghost:hover {
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.9);
}

.pill-btn-sm.primary {
  background: rgba(255, 140, 100, 0.2);
  border-color: rgba(255, 140, 100, 0.4);
  color: #ff8c64;
}

.pill-btn-sm.primary:hover {
  background: rgba(255, 140, 100, 0.3);
}

.pill-btn-sm:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.btn-icon-sm {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

/* ==========================================================================
   PRICING SKELETON
   ========================================================================== */
.pricing-skeleton {
  padding: 16px 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* ==========================================================================
   INHERITED FROM SEGMENT BADGE (Branch page)
   ========================================================================== */
/* ==========================================================================
   PILL BUTTON GHOST (reuse from services-page)
   ========================================================================== */
.service-catalog .pill-button.ghost {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 36px;
  padding: 0 16px;
  border-radius: 99px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.7);
  font-size: 13px;
  font-weight: 500;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.2s ease;
}

.service-catalog .pill-button.ghost:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.18);
  color: rgba(255, 255, 255, 0.9);
}

.service-catalog .pill-button.primary {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 36px;
  padding: 0 18px;
  border-radius: 99px;
  background: rgba(255, 140, 100, 0.15);
  border: 1px solid rgba(255, 140, 100, 0.35);
  color: #ff8c64;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.2s ease;
}

.service-catalog .pill-button.primary:hover {
  background: rgba(255, 140, 100, 0.25);
  border-color: rgba(255, 140, 100, 0.5);
  color: #ffab8a;
}

.service-catalog .pill-button.primary .btn-icon-sm {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

/* ==========================================================================
   EMPTY STATE COMPACT (for pricing sub-table)
   ========================================================================== */
.empty-state.compact {
  padding: 24px;
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 768px) {
  .catalog-stats-bar {
    flex-wrap: wrap;
    gap: 8px;
  }
  .stat-chip {
    padding: 0 8px;
  }
  .stat-divider {
    display: none;
  }
  .coverage-badges {
    flex-direction: column;
    align-items: flex-start;
  }
  .inline-edit-input {
    width: 60px;
  }
}
/* ==========================================================================
   IMAGE SYSTEM — Thumbnail Column
   ========================================================================== */
.svc-img-cell {
  width: 52px;
  padding: 6px 4px 6px 12px !important;
  vertical-align: middle;
}

.svc-img-wrapper {
  position: relative;
  width: 36px;
  height: 36px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

.svc-thumb {
  width: 36px;
  height: 36px;
  border-radius: 6px;
  object-fit: cover;
  border: 1px solid rgba(255, 255, 255, 0.1);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.svc-img-wrapper:hover .svc-thumb {
  transform: scale(1.08);
  box-shadow: 0 0 12px rgba(255, 255, 255, 0.1);
}

.svc-img-placeholder {
  width: 36px;
  height: 36px;
  border: 1px dashed rgba(255, 255, 255, 0.18);
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.25);
  transition: all 0.2s ease;
}

.svc-img-placeholder mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.svc-img-wrapper:hover .svc-img-placeholder {
  border-color: rgba(255, 255, 255, 0.5);
  color: rgba(255, 255, 255, 0.7);
  background: rgba(255, 255, 255, 0.04);
}

.svc-img-invalid {
  width: 36px;
  height: 36px;
  border: 1px solid rgba(255, 80, 80, 0.4);
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ff6b6b;
  background: rgba(255, 80, 80, 0.06);
}

.svc-img-invalid mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.svc-img-overlay {
  position: absolute;
  inset: 0;
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.2s ease;
}

.svc-img-overlay mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: #fff;
}

.svc-img-wrapper:hover .svc-img-overlay {
  opacity: 1;
}

/* ==========================================================================
   FILTER — Missing Images Toggle
   ========================================================================== */
.pill-filter-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 14px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 20px;
  background: transparent;
  color: rgba(255, 255, 255, 0.5);
  font-size: 12px;
  font-weight: 500;
  font-family: inherit;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.pill-filter-btn:hover {
  border-color: rgba(255, 255, 255, 0.3);
  color: rgba(255, 255, 255, 0.7);
  background: rgba(255, 255, 255, 0.04);
}

.pill-filter-btn.active {
  border-color: var(--ui-warning, #ff8c00);
  color: var(--ui-warning, #ff8c00);
  background: rgba(255, 140, 0, 0.08);
}

.pill-filter-btn .btn-icon-sm {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

/* ==========================================================================
   FIX CTA — Stats Bar Action
   ========================================================================== */
.catalog-stats-bar .fix-cta {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 14px;
  border: 1px solid rgba(255, 140, 0, 0.4);
  border-radius: 16px;
  background: rgba(255, 140, 0, 0.08);
  color: #ff8c00;
  font-size: 12px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
  margin-left: 4px;
}

.catalog-stats-bar .fix-cta:hover {
  background: rgba(255, 140, 0, 0.16);
  border-color: rgba(255, 140, 0, 0.6);
}

/* ==========================================================================
   READY BADGE — Website Readiness Indicator
   ========================================================================== */
.ready-badge {
  display: flex;
  align-items: center;
  gap: 3px;
  font-size: 11px;
  font-weight: 500;
  padding: 2px 0;
  margin-top: 2px;
}

.ready-badge.ready {
  color: #52c41a;
}

.ready-badge.incomplete {
  color: rgba(255, 255, 255, 0.35);
}

.ready-badge .badge-icon-sm {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

/* ==========================================================================
   UI PAGES — SERVICE CATEGORIES PAGE
   ==========================================================================
   Scoped page contract for the Service Category list page
   (/console/labour/service-categories).

   Migrated from component-level CSS (service-category-list.component.css)
   to contract-driven architecture per UI Rulebook.

   Depends on:
     - tokens.scss      → colour primitives
     - controls/pills   → .pill-button base
   ========================================================================== */
/* ==========================================================================
   PAGE LAYOUT
   ========================================================================== */
.categories-page {
  max-width: 1080px;
  margin: 0 auto;
  padding: 32px 16px 64px;
}

.categories-page .page-header {
  margin-bottom: 24px;
}

.categories-page .header-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}

/* ==========================================================================
   PILL BUTTONS — page-level variants
   ========================================================================== */
.categories-page .pill-button.accent {
  background: linear-gradient(120deg, #ff5018, #a52a0b);
  color: #fff;
  border: none;
  padding: 10px 26px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: opacity 0.2s ease;
}

.categories-page .pill-button.accent:hover {
  opacity: 0.85;
}

.categories-page .pill-button.ghost {
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.85);
  padding: 8px 22px;
  text-decoration: none;
  font-weight: 500;
  transition: all 0.2s ease;
}

.categories-page .pill-button.ghost:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.3);
}

/* ==========================================================================
   CATEGORY CARD
   ========================================================================== */
.categories-page .card-service {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.06));
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 26px;
  padding: 22px 30px;
  min-height: 140px;
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.35);
  display: flex;
  align-items: center;
  transition: transform 0.2s ease, border 0.2s ease;
  cursor: pointer;
}

.categories-page .card-service:hover {
  transform: translateY(-4px);
  border-color: rgba(255, 255, 255, 0.15);
}

.categories-page .card-service.disabled:hover {
  transform: none;
  border-color: rgba(255, 255, 255, 0.12);
}

.categories-page .card-service.disabled {
  opacity: 0.45;
}

/* ==========================================================================
   CARD ROW — internal layout
   ========================================================================== */
.categories-page .card-row {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 24px;
}

.categories-page .info-block {
  flex: 0 0 200px;
}

.categories-page .category-title-text {
  font-size: 22px;
  font-weight: 500;
  margin-bottom: 4px;
}

/* ==========================================================================
   COUNT SECTION
   ========================================================================== */
.categories-page .count-section {
  min-width: 110px;
  text-align: right;
  color: rgba(255, 255, 255, 0.7);
}

.categories-page .count-value {
  font-size: 24px;
  font-weight: 600;
  margin-bottom: 2px;
}

/* ==========================================================================
   DIVIDER
   ========================================================================== */
.categories-page .divider-line {
  width: 1px;
  height: 60px;
  background: rgba(255, 255, 255, 0.2);
}

/* ==========================================================================
   SUBCATEGORY PILLS
   ========================================================================== */
.categories-page .subcategory-pills {
  flex: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: flex-start;
  max-height: 56px;
  overflow: hidden;
}

.categories-page .subcategory-chip {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  font-size: 12px;
  color: rgba(255, 255, 255, 0.9);
  white-space: nowrap;
  transition: background 0.2s ease, border-color 0.2s ease;
}

.categories-page .card-service:hover .subcategory-chip {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.2);
}

.categories-page .subcategory-chip.more {
  background: rgba(255, 255, 255, 0.04);
  border-style: dashed;
  color: rgba(255, 255, 255, 0.6);
}

/* ==========================================================================
   TOGGLE SWITCH
   ========================================================================== */
.categories-page .card-toggle {
  min-width: 90px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.categories-page .toggle-switch {
  border: none;
  background: transparent;
  cursor: pointer;
  padding: 0;
}

.categories-page .toggle-track {
  width: 70px;
  height: 32px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.2);
  display: inline-flex;
  align-items: center;
  padding: 4px;
  position: relative;
  transition: background 0.2s cubic-bezier(0.4, 0, 0.2, 1), border 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.categories-page .toggle-thumb {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.85);
  transform: translateX(0);
  transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: transform;
}

.categories-page .toggle-switch.active .toggle-track {
  background: linear-gradient(120deg, #ff581b, #a62a09);
  border-color: transparent;
  box-shadow: 0 10px 18px rgba(165, 42, 9, 0.4);
}

.categories-page .toggle-switch.active .toggle-thumb {
  transform: translateX(36px);
  background: #fff;
}

/* ==========================================================================
   SKELETON LOADING
   ========================================================================== */
.categories-page .skeleton-card {
  pointer-events: none;
  opacity: 0.6;
}

.categories-page .skeleton-box {
  display: block;
  width: 100%;
  height: 16px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.06));
  background-size: 200% 100%;
  animation: skeletonShimmerCat 1.3s ease-in-out infinite;
}

.categories-page .skeleton-box.title {
  width: 60%;
  height: 20px;
}

.categories-page .skeleton-box.count {
  width: 40px;
  height: 18px;
  margin: 0 auto 6px;
}

.categories-page .skeleton-box.tiny {
  width: 50px;
  height: 12px;
  margin: 0 auto;
}

.categories-page .skeleton-box.chip {
  width: 80px;
  height: 24px;
  border-radius: 999px;
}

.categories-page .skeleton-box.toggle {
  width: 70px;
  height: 32px;
  border-radius: 999px;
}

@keyframes skeletonShimmerCat {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
/* ==========================================================================
   UI PAGES — PRICING GRID PAGE FAMILY
   ==========================================================================
   Scoped page contract for:
   - /console/group/pricing-grid
   - /console/group/package-pricing-grid

   Keeps the spreadsheet experience on AG Grid, but moves the page shell,
   actions, filters, and state presentation onto the Autroid contracts.
   ========================================================================== */
@keyframes pricing-grid-pulse {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(255, 120, 79, 0);
  }
  50% {
    box-shadow: 0 0 0 6px rgba(255, 120, 79, 0.14);
  }
}
@keyframes pricing-grid-spin {
  to {
    transform: rotate(360deg);
  }
}
@keyframes pricing-grid-glow {
  0% {
    box-shadow: inset 0 0 0 2px var(--ui-brand), 0 0 10px rgba(255, 120, 79, 0.22);
  }
  100% {
    box-shadow: inset 0 0 0 2px var(--ui-brand);
  }
}
.ui-page--pricing-grid,
.ui-page--package-pricing-grid {
  position: relative;
  min-height: calc(100vh - 60px);
}
.ui-page--pricing-grid .pricing-grid-page,
.ui-page--package-pricing-grid .pricing-grid-page {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
  min-height: 0;
}
.ui-page--pricing-grid .pricing-grid-page__header-actions,
.ui-page--package-pricing-grid .pricing-grid-page__header-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ui-space-2);
}
.ui-page--pricing-grid .pricing-grid-page__meta-line,
.ui-page--package-pricing-grid .pricing-grid-page__meta-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}
.ui-page--pricing-grid .pricing-grid-page__meta-value,
.ui-page--package-pricing-grid .pricing-grid-page__meta-value {
  font-weight: var(--ui-font-semibold);
}
.ui-page--pricing-grid .pricing-grid-page__meta-value--danger,
.ui-page--package-pricing-grid .pricing-grid-page__meta-value--danger {
  color: var(--ui-danger);
}
.ui-page--pricing-grid .pricing-grid-page__meta-value--success,
.ui-page--package-pricing-grid .pricing-grid-page__meta-value--success {
  color: var(--ui-success);
}
.ui-page--pricing-grid .pricing-grid-page__flash-btn,
.ui-page--package-pricing-grid .pricing-grid-page__flash-btn {
  animation: pricing-grid-pulse 2s ease-in-out infinite;
}
.ui-page--pricing-grid .pricing-grid-page__saving-icon,
.ui-page--package-pricing-grid .pricing-grid-page__saving-icon {
  animation: pricing-grid-spin 0.9s linear infinite;
}
.ui-page--pricing-grid .pricing-grid-page__fix-row,
.ui-page--package-pricing-grid .pricing-grid-page__fix-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
}
.ui-page--pricing-grid .pricing-grid-page__fix-banner,
.ui-page--package-pricing-grid .pricing-grid-page__fix-banner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ui-space-3);
}
.ui-page--pricing-grid .pricing-grid-page__fix-chip,
.ui-page--package-pricing-grid .pricing-grid-page__fix-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
}
.ui-page--pricing-grid .pricing-grid-page__fix-note,
.ui-page--package-pricing-grid .pricing-grid-page__fix-note {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  letter-spacing: 0.02em;
}
.ui-page--pricing-grid .pricing-grid-page__filters,
.ui-page--package-pricing-grid .pricing-grid-page__filters {
  border-top: 1px solid var(--ui-border-light);
}
.ui-page--pricing-grid .pricing-grid-page__filters-main,
.ui-page--package-pricing-grid .pricing-grid-page__filters-main {
  display: flex;
  flex: 1 1 720px;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ui-space-3);
  min-width: 0;
}
.ui-page--pricing-grid .pricing-grid-page__search,
.ui-page--package-pricing-grid .pricing-grid-page__search {
  flex: 1 1 320px;
  max-width: 380px;
  min-width: 220px;
}
.ui-page--pricing-grid .pricing-grid-page__segment-filter,
.ui-page--package-pricing-grid .pricing-grid-page__segment-filter {
  flex: 0 0 auto;
}
.ui-page--pricing-grid .pricing-grid-page__select,
.ui-page--package-pricing-grid .pricing-grid-page__select {
  appearance: none;
  min-width: 164px;
  padding-right: 32px;
  background-image: linear-gradient(45deg, transparent 50%, var(--ui-text-muted) 50%), linear-gradient(135deg, var(--ui-text-muted) 50%, transparent 50%);
  background-position: calc(100% - 18px) calc(50% - 2px), calc(100% - 12px) calc(50% - 2px);
  background-size: 6px 6px;
  background-repeat: no-repeat;
}
.ui-page--pricing-grid .pricing-grid-page__select:focus,
.ui-page--package-pricing-grid .pricing-grid-page__select:focus {
  outline: none;
}
.ui-page--pricing-grid .pricing-grid-page__select option,
.ui-page--package-pricing-grid .pricing-grid-page__select option {
  background: #17171b;
  color: var(--ui-text-primary);
}
.ui-page--pricing-grid .pricing-grid-page__clear-btn,
.ui-page--package-pricing-grid .pricing-grid-page__clear-btn {
  opacity: 0.74;
}
.ui-page--pricing-grid .pricing-grid-page__filters-meta,
.ui-page--package-pricing-grid .pricing-grid-page__filters-meta {
  display: flex;
  align-items: center;
  gap: var(--ui-space-4);
  margin-left: auto;
  min-width: 0;
}
.ui-page--pricing-grid .pg-legend,
.ui-page--package-pricing-grid .pg-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ui-space-4);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}
.ui-page--pricing-grid .pg-legend-item,
.ui-page--package-pricing-grid .pg-legend-item {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
}
.ui-page--pricing-grid .pg-legend-swatch,
.ui-page--package-pricing-grid .pg-legend-swatch {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 3px;
  border: 1px solid var(--ui-border);
}
.ui-page--pricing-grid .pg-swatch-model,
.ui-page--package-pricing-grid .pg-swatch-model {
  background: rgba(255, 255, 255, 0.12);
}
.ui-page--pricing-grid .pg-swatch-segment,
.ui-page--package-pricing-grid .pg-swatch-segment {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
}
.ui-page--pricing-grid .pg-swatch-missing,
.ui-page--package-pricing-grid .pg-swatch-missing {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
}
.ui-page--pricing-grid .pg-swatch-na,
.ui-page--package-pricing-grid .pg-swatch-na {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.15);
}
.ui-page--pricing-grid .pg-swatch-edited,
.ui-page--package-pricing-grid .pg-swatch-edited {
  background: var(--ui-table-accent-bg);
  border-color: var(--ui-table-accent-border);
}
.ui-page--pricing-grid .pricing-grid-page__grid-card,
.ui-page--package-pricing-grid .pricing-grid-page__grid-card {
  width: 100%;
  overflow: hidden;
  min-height: 0;
}
.ui-page--pricing-grid .pricing-grid-page__grid-card--loading,
.ui-page--pricing-grid .pricing-grid-page__grid-card--empty,
.ui-page--package-pricing-grid .pricing-grid-page__grid-card--loading,
.ui-page--package-pricing-grid .pricing-grid-page__grid-card--empty {
  min-height: 420px;
}
.ui-page--pricing-grid .pricing-grid-page__grid-card--short .pg-grid-wrapper,
.ui-page--package-pricing-grid .pricing-grid-page__grid-card--short .pg-grid-wrapper {
  height: clamp(320px, 100vh - 380px, 380px);
}
.ui-page--pricing-grid .pricing-grid-page__grid-card--medium .pg-grid-wrapper,
.ui-page--package-pricing-grid .pricing-grid-page__grid-card--medium .pg-grid-wrapper {
  height: clamp(420px, 100vh - 320px, 520px);
}
.ui-page--pricing-grid .pricing-grid-page__grid-card--tall .pg-grid-wrapper,
.ui-page--package-pricing-grid .pricing-grid-page__grid-card--tall .pg-grid-wrapper {
  height: clamp(520px, 100vh - 260px, 700px);
}
.ui-page--pricing-grid .pricing-grid-page__skeleton,
.ui-page--package-pricing-grid .pricing-grid-page__skeleton {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  padding: var(--ui-space-6);
  min-height: 420px;
}
.ui-page--pricing-grid .pricing-grid-page__skeleton-line,
.ui-page--package-pricing-grid .pricing-grid-page__skeleton-line {
  height: 34px;
  border-radius: var(--ui-radius-md);
}
.ui-page--pricing-grid .pricing-grid-page__skeleton-line--header,
.ui-page--package-pricing-grid .pricing-grid-page__skeleton-line--header {
  height: 42px;
  border-radius: var(--ui-radius-lg);
}
.ui-page--pricing-grid .pricing-grid-page__empty-state,
.ui-page--package-pricing-grid .pricing-grid-page__empty-state {
  min-height: 420px;
}
.ui-page--pricing-grid .pg-grid-wrapper,
.ui-page--package-pricing-grid .pg-grid-wrapper {
  width: 100%;
  height: 100%;
  min-height: 0;
  background: rgba(9, 10, 12, 0.92);
}
.ui-page--pricing-grid .pricing-grid-page__ag-grid,
.ui-page--pricing-grid .pg-grid,
.ui-page--package-pricing-grid .pricing-grid-page__ag-grid,
.ui-page--package-pricing-grid .pg-grid {
  display: block;
  width: 100%;
  height: 100%;
}
.ui-page--pricing-grid .pg-grid .ag-root-wrapper,
.ui-page--pricing-grid .pg-grid .ag-root-wrapper-body,
.ui-page--package-pricing-grid .pg-grid .ag-root-wrapper,
.ui-page--package-pricing-grid .pg-grid .ag-root-wrapper-body {
  height: 100%;
}
.ui-page--pricing-grid .pg-grid.ag-theme-quartz-dark,
.ui-page--package-pricing-grid .pg-grid.ag-theme-quartz-dark {
  --ag-background-color: rgba(9, 10, 12, 0.96);
  --ag-header-background-color: rgba(255, 255, 255, 0.04);
  --ag-header-foreground-color: var(--ui-text-muted);
  --ag-foreground-color: var(--ui-text-secondary);
  --ag-border-color: var(--ui-border-light);
  --ag-row-hover-color: var(--ui-table-row-hover);
  --ag-selected-row-background-color: var(--ui-table-row-active);
  --ag-odd-row-background-color: transparent;
  --ag-header-column-resize-handle-color: rgba(255, 255, 255, 0.15);
  --ag-font-family: var(--ui-font-primary);
  --ag-font-size: 13px;
  --ag-header-font-size: 11px;
  --ag-header-font-weight: 600;
  --ag-cell-horizontal-padding: 10px;
  --ag-row-border-color: var(--ui-table-row-border);
  --ag-column-border: 1px solid var(--ui-border-light);
  --ag-wrapper-border-radius: 0;
  --ag-border-radius: 0;
}
.ui-page--pricing-grid .pg-grid .ag-header,
.ui-page--package-pricing-grid .pg-grid .ag-header {
  border-bottom: 1px solid var(--ui-border-light);
}
.ui-page--pricing-grid .pg-grid .ag-header-row-column-group,
.ui-page--package-pricing-grid .pg-grid .ag-header-row-column-group {
  min-height: 36px !important;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.02));
  border-bottom: 1px solid color-mix(in srgb, var(--ui-border-light) 82%, transparent);
}
.ui-page--pricing-grid .pg-grid .ag-header-row-column,
.ui-page--package-pricing-grid .pg-grid .ag-header-row-column {
  min-height: 38px !important;
}
.ui-page--pricing-grid .pg-grid .ag-header-group-cell,
.ui-page--pricing-grid .pg-grid .ag-header-cell,
.ui-page--package-pricing-grid .pg-grid .ag-header-group-cell,
.ui-page--package-pricing-grid .pg-grid .ag-header-cell {
  border-color: var(--ui-border-light);
}
.ui-page--pricing-grid .pg-grid .ag-header-group-cell-label,
.ui-page--pricing-grid .pg-grid .ag-header-cell-label,
.ui-page--package-pricing-grid .pg-grid .ag-header-group-cell-label,
.ui-page--package-pricing-grid .pg-grid .ag-header-cell-label {
  display: flex;
  align-items: center;
  gap: 6px;
  height: 100%;
  padding-inline: 10px;
}
.ui-page--pricing-grid .pg-grid .ag-header-group-cell-label,
.ui-page--package-pricing-grid .pg-grid .ag-header-group-cell-label {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 10px;
  color: color-mix(in srgb, var(--ui-text-muted) 88%, white 12%);
}
.ui-page--pricing-grid .pg-grid .ag-header-cell.ag-header-span-height .ag-cell-label-container,
.ui-page--pricing-grid .pg-grid .ag-header-cell.ag-header-span-height .ag-header-cell-comp-wrapper,
.ui-page--pricing-grid .pg-grid .ag-header-cell .ag-cell-label-container,
.ui-page--pricing-grid .pg-grid .ag-header-cell .ag-header-cell-comp-wrapper,
.ui-page--package-pricing-grid .pg-grid .ag-header-cell.ag-header-span-height .ag-cell-label-container,
.ui-page--package-pricing-grid .pg-grid .ag-header-cell.ag-header-span-height .ag-header-cell-comp-wrapper,
.ui-page--package-pricing-grid .pg-grid .ag-header-cell .ag-cell-label-container,
.ui-page--package-pricing-grid .pg-grid .ag-header-cell .ag-header-cell-comp-wrapper {
  display: flex;
  align-items: center;
  width: 100%;
  height: 100%;
}
.ui-page--pricing-grid .pg-grid .ag-pinned-left-cols-container,
.ui-page--pricing-grid .pg-grid .ag-pinned-left-header,
.ui-page--package-pricing-grid .pg-grid .ag-pinned-left-cols-container,
.ui-page--package-pricing-grid .pg-grid .ag-pinned-left-header {
  box-shadow: 8px 0 18px -12px rgba(0, 0, 0, 0.48);
}
.ui-page--pricing-grid .pg-grid .ag-cell-inline-editing,
.ui-page--package-pricing-grid .pg-grid .ag-cell-inline-editing {
  background: color-mix(in srgb, var(--ui-brand) 10%, transparent) !important;
  border-color: color-mix(in srgb, var(--ui-brand) 55%, transparent) !important;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ui-brand) 42%, transparent) !important;
}
.ui-page--pricing-grid .pg-grid .ag-cell-inline-editing input,
.ui-page--package-pricing-grid .pg-grid .ag-cell-inline-editing input {
  background: transparent !important;
  color: var(--ui-text-primary) !important;
  border: none !important;
}
.ui-page--pricing-grid .pg-row-number,
.ui-page--package-pricing-grid .pg-row-number {
  color: var(--ui-text-subtle) !important;
  font-size: var(--ui-text-xs) !important;
  text-align: center !important;
}
.ui-page--pricing-grid .pg-service-name,
.ui-page--package-pricing-grid .pg-service-name {
  font-weight: var(--ui-font-semibold) !important;
  color: var(--ui-text-primary) !important;
}
.ui-page--pricing-grid .pg-package,
.ui-page--package-pricing-grid .pg-package {
  color: var(--ui-text-muted) !important;
  font-size: var(--ui-text-sm) !important;
}
.ui-page--pricing-grid .pg-cell-model,
.ui-page--package-pricing-grid .pg-cell-model {
  font-weight: var(--ui-font-semibold) !important;
  color: var(--ui-text-primary) !important;
}
.ui-page--pricing-grid .pg-cell-segment,
.ui-page--package-pricing-grid .pg-cell-segment {
  background: color-mix(in srgb, var(--ui-success) 6%, transparent) !important;
  color: rgba(182, 241, 201, 0.95) !important;
  font-style: italic !important;
}
.ui-page--pricing-grid .pg-cell-missing,
.ui-page--package-pricing-grid .pg-cell-missing {
  background: var(--ui-danger-bg) !important;
  color: var(--ui-text-subtle) !important;
}
.ui-page--pricing-grid .pg-cell-na,
.ui-page--package-pricing-grid .pg-cell-na {
  background: rgba(255, 255, 255, 0.02) !important;
  color: rgba(255, 255, 255, 0.18) !important;
  font-style: italic !important;
  pointer-events: none;
  -webkit-user-select: none;
          user-select: none;
}
.ui-page--pricing-grid .pg-cell-edited,
.ui-page--package-pricing-grid .pg-cell-edited {
  box-shadow: inset 0 0 0 2px var(--ui-brand) !important;
  background: var(--ui-table-accent-bg) !important;
  color: var(--ui-brand-light) !important;
  font-weight: var(--ui-font-bold) !important;
  animation: pricing-grid-glow 0.4s ease-out;
}
.ui-page--pricing-grid .pg-cell-warning,
.ui-page--package-pricing-grid .pg-cell-warning {
  background: var(--ui-warning-bg) !important;
  color: var(--ui-warning) !important;
  font-weight: var(--ui-font-semibold) !important;
}
.ui-page--pricing-grid .pg-grid .ag-cell-highlight,
.ui-page--package-pricing-grid .pg-grid .ag-cell-highlight {
  background-color: var(--ui-table-accent-bg) !important;
}
@media (max-width: 960px) {
  .ui-page--pricing-grid .pricing-grid-page__header-actions,
  .ui-page--pricing-grid .pricing-grid-page__fix-row,
  .ui-page--package-pricing-grid .pricing-grid-page__header-actions,
  .ui-page--package-pricing-grid .pricing-grid-page__fix-row {
    justify-content: flex-start;
  }
  .ui-page--pricing-grid .pricing-grid-page__filters-main,
  .ui-page--pricing-grid .pricing-grid-page__filters-meta,
  .ui-page--package-pricing-grid .pricing-grid-page__filters-main,
  .ui-page--package-pricing-grid .pricing-grid-page__filters-meta {
    width: 100%;
    margin-left: 0;
  }
  .ui-page--pricing-grid .pg-legend,
  .ui-page--package-pricing-grid .pg-legend {
    justify-content: flex-start;
  }
  .ui-page--pricing-grid .pricing-grid-page__search,
  .ui-page--package-pricing-grid .pricing-grid-page__search {
    max-width: none;
  }
}
@media (max-width: 640px) {
  .ui-page--pricing-grid .pricing-grid-page__meta-line,
  .ui-page--package-pricing-grid .pricing-grid-page__meta-line {
    gap: 4px;
  }
  .ui-page--pricing-grid .pricing-grid-page__select,
  .ui-page--package-pricing-grid .pricing-grid-page__select {
    min-width: 100%;
  }
  .ui-page--pricing-grid .pricing-grid-page__grid-card--short .pg-grid-wrapper,
  .ui-page--pricing-grid .pricing-grid-page__grid-card--medium .pg-grid-wrapper,
  .ui-page--pricing-grid .pricing-grid-page__grid-card--tall .pg-grid-wrapper,
  .ui-page--package-pricing-grid .pricing-grid-page__grid-card--short .pg-grid-wrapper,
  .ui-page--package-pricing-grid .pricing-grid-page__grid-card--medium .pg-grid-wrapper,
  .ui-page--package-pricing-grid .pricing-grid-page__grid-card--tall .pg-grid-wrapper {
    height: clamp(360px, 100vh - 260px, 520px);
  }
}

/* ==========================================================================
   UI PAGES — BRANCH SERVICES PAGE
   ==========================================================================
   Scoped page contract for the Branch Services pricing page
   (/console/stock/custom-service).

   Depends on:
     - stats-header.scss    → .header-card
     - pill-controls.scss   → .pill-trigger
     - table.scss           → .premium-table base, .ui-table-pagination
     - services-page.scss   → .icon-clear, .icon-button, .empty-state,
                              .filter-search, .pill-label
     - service-catalog.scss → .inline-edit-input, .pill-btn-sm, .inherited-badge, .model-cell
   ========================================================================== */
/* ==========================================================================
   PAGE WRAPPER
   ========================================================================== */
.branch-services.page {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-height: 0;
}

.branch-services .header-card__actions {
  margin-left: auto;
}

.branch-services .header-card__bottom form.filter-row {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
}

/* ==========================================================================
   BRANCH STATS CHIPS
   ========================================================================== */
.branch-stats-chips {
  display: flex;
  align-items: center;
  gap: 8px;
}

.branch-stat-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 99px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.7);
}

.branch-stat-chip.accent {
  background: rgba(255, 140, 100, 0.08);
  border-color: rgba(255, 140, 100, 0.2);
  color: rgba(255, 140, 100, 0.9);
}

.chip-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

/* ==========================================================================
   TABLE
   ========================================================================== */
.branch-table-card {
  margin-top: 0;
  border-radius: 16px;
  overflow: hidden;
}

/* ==========================================================================
   PRICING CELLS
   ========================================================================== */
.price-base {
  font-size: 14px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.5);
  font-variant-numeric: tabular-nums;
}

.price-override {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 140, 100, 0.9);
  font-variant-numeric: tabular-nums;
}

.price-dash {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.2);
}

.price-effective {
  font-size: 15px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.95);
  font-variant-numeric: tabular-nums;
}

.price-effective.is-override {
  color: rgba(255, 140, 100, 0.95);
}

/* ==========================================================================
   STATUS BADGE
   ========================================================================== */
.status-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 99px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.status-badge.override {
  background: rgba(255, 140, 100, 0.1);
  color: rgba(255, 140, 100, 0.9);
  border: 1px solid rgba(255, 140, 100, 0.2);
}

.status-badge.base {
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.45);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

/* ==========================================================================
   DATA ROW STATES
   ========================================================================== */
.branch-row {
  transition: background-color 0.15s ease;
}

.branch-row:hover {
  background: rgba(255, 255, 255, 0.03);
}

.branch-row.override-active {
  background: rgba(255, 140, 100, 0.02);
}

.branch-row.override-active:hover {
  background: rgba(255, 140, 100, 0.05);
}

.branch-row.override-active td:first-child {
  box-shadow: inset 3px 0 0 0 rgba(255, 140, 100, 0.5);
}

.branch-row.segment-fallback {
  background: rgba(74, 222, 128, 0.02);
}

/* ==========================================================================
   CAR FILTER (reuse from services-page)
   ========================================================================== */
.branch-services .filter-search.locked {
  background: rgba(255, 140, 100, 0.08);
  border-color: rgba(255, 140, 100, 0.25);
}

.branch-services .filter-search .pill-label {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.85);
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.branch-services .icon-clear {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  padding: 0;
  background: rgba(255, 255, 255, 0.06);
  border: none;
  border-radius: 50%;
  color: rgba(255, 255, 255, 0.5);
  cursor: pointer;
  transition: all 0.2s ease;
  flex-shrink: 0;
}

.branch-services .icon-clear:hover {
  background: rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.9);
}

.branch-services .icon-clear mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 768px) {
  .branch-stats-chips {
    flex-wrap: wrap;
  }
}
/* ==========================================================================
   SUPPLIERS PAGE
   Scoped table refinements for /console/supplier/list.
   Visual ownership stays in src/ui/.
   ========================================================================== */
.supplier-page .supplier-table-card {
  overflow: hidden;
}
.supplier-page .supplier-table {
  min-width: 1200px;
  table-layout: fixed;
}
.supplier-page .supplier-table td {
  white-space: normal;
}
.supplier-page .supplier-table th:nth-child(1),
.supplier-page .supplier-table td:nth-child(1) {
  width: 5%;
  min-width: 64px;
  text-align: center;
}
.supplier-page .supplier-table th:nth-child(2),
.supplier-page .supplier-table td:nth-child(2) {
  width: 28%;
  min-width: 300px;
}
.supplier-page .supplier-table th:nth-child(3),
.supplier-page .supplier-table td:nth-child(3) {
  width: 16%;
  min-width: 188px;
}
.supplier-page .supplier-table th:nth-child(4),
.supplier-page .supplier-table td:nth-child(4) {
  width: 16%;
  min-width: 188px;
}
.supplier-page .supplier-table th:nth-child(5),
.supplier-page .supplier-table td:nth-child(5) {
  width: 16%;
  min-width: 220px;
}
.supplier-page .supplier-table th:nth-child(6),
.supplier-page .supplier-table td:nth-child(6) {
  width: 11%;
  min-width: 152px;
}
.supplier-page .supplier-table th:nth-child(7),
.supplier-page .supplier-table td:nth-child(7) {
  width: 8%;
  min-width: 150px;
}
.supplier-page .supplier-table__index-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  height: 30px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.05);
  color: rgba(255, 255, 255, 0.82);
  font-size: 12px;
  font-weight: 700;
}
.supplier-page .supplier-table__identity,
.supplier-page .supplier-table__stack {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  min-width: 0;
}
.supplier-page .supplier-table__identity {
  width: 100%;
}
.supplier-page .supplier-table__stack {
  flex: 1 1 auto;
  flex-direction: column;
  gap: 6px;
  width: 0;
}
.supplier-page .supplier-table__avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  border-radius: 14px;
  border: 1px solid rgba(255, 140, 90, 0.22);
  background: radial-gradient(circle at top left, rgba(255, 176, 128, 0.22), transparent 60%), rgba(255, 140, 90, 0.1);
  color: rgba(255, 214, 191, 0.96);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.supplier-page .supplier-table__name {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: rgba(255, 255, 255, 0.96);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
}
.supplier-page .supplier-table__sub {
  color: rgba(255, 255, 255, 0.56);
  font-family: var(--ui-font-mono);
  font-size: 11px;
  letter-spacing: 0.03em;
  line-height: 1.35;
  word-break: break-word;
}
.supplier-page .supplier-table__meta-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
}
.supplier-page .supplier-table__status-chip {
  flex: 0 0 auto;
  min-width: 0;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.supplier-page .supplier-table__amount {
  display: block;
  color: rgba(255, 247, 237, 0.96);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.2;
}
.supplier-page .supplier-table__amount--zero {
  color: rgba(134, 239, 172, 0.96);
}
.supplier-page .supplier-table__note {
  display: block;
  color: rgba(255, 255, 255, 0.72);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
}
.supplier-page .supplier-table__count-chip {
  width: fit-content;
  padding: 4px 10px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.supplier-page .supplier-table__meta,
.supplier-page .supplier-table__contact-line {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
}
.supplier-page .supplier-table__contact-line--muted {
  color: rgba(255, 255, 255, 0.62);
  font-size: 12px;
  font-weight: 500;
}
.supplier-page .supplier-table__contact-value {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.supplier-page .supplier-table__meta-icon {
  width: 15px;
  height: 15px;
  font-size: 15px;
  flex-shrink: 0;
  color: rgba(255, 140, 90, 0.8);
}
.supplier-page .supplier-table__state {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255, 140, 90, 0.22);
  background: rgba(255, 140, 90, 0.1);
  color: rgba(255, 201, 168, 0.96);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.supplier-page .supplier-table__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}
.supplier-page .supplier-table__receive-btn {
  min-width: 98px;
}
.supplier-page .supplier-table .cell-muted {
  margin-top: 0;
  line-height: 1.45;
}
.supplier-page .supplier-table tbody tr:hover .supplier-table__avatar {
  border-color: rgba(255, 140, 90, 0.34);
  background: radial-gradient(circle at top left, rgba(255, 176, 128, 0.3), transparent 64%), rgba(255, 140, 90, 0.14);
}

@media (max-width: 1180px) {
  .supplier-page .supplier-table th:nth-child(6),
  .supplier-page .supplier-table td:nth-child(6) {
    display: none;
  }
}
@media (max-width: 980px) {
  .supplier-page .supplier-table th:nth-child(5),
  .supplier-page .supplier-table td:nth-child(5) {
    display: none;
  }
}
@media (max-width: 780px) {
  .supplier-page .supplier-table th:nth-child(4),
  .supplier-page .supplier-table td:nth-child(4) {
    display: none;
  }
}
/* ==========================================================================
   UI PAGE VARIANT - PACKAGES
   ==========================================================================
   Inventory packages dashboard and listing page.
   Scoped under .ui-page--packages only.
   ========================================================================== */
.ui-page--packages {
  position: relative;
  min-height: calc(100vh - 60px);
  padding: var(--ui-space-6) var(--ui-space-4) 80px;
}

.ui-page--packages .packages-page {
  position: relative;
  z-index: var(--z-base);
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
}

.ui-page--packages .ambient-bg {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background: radial-gradient(circle at 8% 10%, rgba(255, 120, 72, 0.16), transparent 24%), radial-gradient(circle at 88% 14%, rgba(255, 160, 92, 0.12), transparent 22%), radial-gradient(circle at 34% 82%, rgba(74, 222, 128, 0.08), transparent 18%);
}

.ui-page--packages .erp-header-block,
.ui-page--packages .glass-table-card,
.ui-page--packages .glass-pagination {
  position: relative;
  z-index: var(--z-base);
}

.ui-page--packages .erp-header-primary .header-right {
  justify-content: flex-end;
  min-width: 0;
}

.ui-page--packages .packages-page__view-tabs {
  margin-right: 0;
}

.ui-page--packages .packages-page__filter-row--end {
  justify-content: flex-end;
}

.ui-page--packages .packages-page__date-filter {
  margin-left: auto;
}

.ui-page--packages .packages-dashboard {
  position: relative;
}

.ui-page--packages .packages-dashboard .fd-glow {
  position: absolute;
  z-index: 0;
}

.ui-page--packages .packages-dashboard .dashboard-content,
.ui-page--packages .packages-dashboard .dashboard-row {
  position: relative;
  z-index: 1;
}

.ui-page--packages .packages-dashboard__chart-card {
  min-width: 0;
}

.ui-page--packages .packages-dashboard__stats-row {
  margin-bottom: var(--ui-space-4);
}

.ui-page--packages .packages-dashboard__stat {
  appearance: none;
  font: inherit;
}

.ui-page--packages .packages-dashboard__stat--inactive {
  opacity: 0.55;
}

.ui-page--packages .packages-dashboard__stat-indicator {
  width: 10px;
  height: 10px;
  border-radius: var(--ui-radius-full);
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.04);
}

.ui-page--packages .packages-dashboard__stat-indicator--sold {
  background: var(--ui-brand);
}

.ui-page--packages .packages-dashboard__stat-indicator--active {
  background: var(--ui-warning);
}

.ui-page--packages .packages-dashboard__stat-indicator--revenue {
  background: var(--ui-success);
}

.ui-page--packages .packages-dashboard__stat-indicator--nps {
  background: var(--ui-info);
}

.ui-page--packages .packages-dashboard__chart-container {
  min-height: 320px;
}

.ui-page--packages .packages-dashboard__revenue-card {
  gap: var(--ui-space-4);
  min-height: 100%;
}

.ui-page--packages .packages-dashboard__panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
}

.ui-page--packages .packages-dashboard__panel-header p {
  margin: 0;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
}

.ui-page--packages .packages-dashboard__revenue-body {
  flex: 1 1 auto;
}

.ui-page--packages .packages-dashboard__revenue-table {
  border: none;
  background: transparent;
}

.ui-page--packages .packages-dashboard__revenue-table .ui-data-table__row--cols-3 {
  grid-template-columns: minmax(0, 1.7fr) 88px 120px;
}

.ui-page--packages .packages-dashboard__revenue-table .ui-data-table__row {
  padding: var(--ui-space-3) 0;
  border-bottom: 1px solid var(--ui-border-light);
}

.ui-page--packages .packages-dashboard__revenue-table .ui-data-table__row--header {
  margin-bottom: var(--ui-space-2);
  padding: 0 0 var(--ui-space-3);
  background: transparent;
}

.ui-page--packages .packages-dashboard__revenue-table .ui-data-table__cell:nth-child(2),
.ui-page--packages .packages-dashboard__revenue-table .ui-data-table__cell:nth-child(3) {
  text-align: right;
}

.ui-page--packages .packages-dashboard__revenue-name {
  font-weight: var(--ui-font-semibold);
}

.ui-page--packages .packages-dashboard__revenue-value {
  color: var(--ui-success);
}

.cdk-overlay-pane.packages-filters-dialog-panel {
  width: min(920px, 100vw - 24px) !important;
  max-width: min(920px, 100vw - 24px) !important;
}

.packages-page__filters-modal {
  max-height: min(84vh, 100vh - 32px);
}

.packages-page__filters-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-4);
}

.packages-page__filter-section {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-xl);
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-1);
  min-width: 0;
}

.packages-page__filter-section-header {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
}

.packages-page__filter-section-header mat-icon {
  color: var(--ui-brand);
}

.packages-page__filter-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
}

.packages-page__filter-chip {
  appearance: none;
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-1);
  color: var(--ui-text-secondary);
  border-radius: var(--ui-radius-full);
  padding: var(--ui-space-2) var(--ui-space-4);
  font: inherit;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  line-height: 1.2;
  transition: var(--ui-transition-base);
}

.packages-page__filter-chip:hover {
  border-color: var(--ui-border-focus);
  background: var(--ui-surface-2);
  color: var(--ui-text-primary);
}

.packages-page__filter-chip.is-active {
  border-color: var(--ui-border-focus);
  background: var(--ui-surface-3);
  color: var(--ui-text-primary);
  box-shadow: inset 0 0 0 1px var(--ui-border-light);
}

.packages-page__filters-summary {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
}

@media (max-width: 900px) {
  .ui-page--packages .erp-header-primary {
    align-items: flex-start;
  }
  .ui-page--packages .erp-header-primary .header-right {
    width: 100%;
  }
  .ui-page--packages .packages-page__view-tabs {
    margin-right: 0;
  }
  .packages-page__filters-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 720px) {
  .ui-page--packages {
    padding: var(--ui-space-4) var(--ui-space-2) 72px;
  }
  .ui-page--packages .packages-dashboard__revenue-table .ui-data-table__row--cols-3 {
    grid-template-columns: minmax(0, 1.3fr) 70px 100px;
  }
  .packages-page__filters-modal .ui-modal__header,
  .packages-page__filters-modal .ui-modal__body,
  .packages-page__filters-modal .ui-modal__footer {
    padding-left: var(--ui-space-4);
    padding-right: var(--ui-space-4);
  }
  .packages-page__filters-modal .ui-modal__footer {
    flex-direction: column;
    align-items: stretch;
  }
  .packages-page__filters-modal .ui-modal__footer .footer-left,
  .packages-page__filters-modal .ui-modal__footer .footer-right {
    width: 100%;
    justify-content: space-between;
  }
  .packages-page__filters-modal .ui-modal__footer .footer-right {
    flex-wrap: wrap;
  }
}
/* ═══════════════════════════════════════════════════════════════
   Payment Gateway Dashboard — Page Contract
   Location: src/ui/pages/payment-gateway.scss

   Scoped to .ui-page--payment-gateway / .payment-gateway-page only.
   Reuses existing contracts for tables, buttons, chips, drawers, and modals.
   ═══════════════════════════════════════════════════════════════ */
.ui-page--payment-gateway {
  position: relative;
  min-height: 100%;
}

/* Guard: neutralize Bootstrap .tab-content border/padding frame on this page */
.ui-page--payment-gateway .tab-content {
  padding: 0;
  border: 0;
  background: transparent;
  margin: 0;
}

.ui-page--payment-gateway .payment-gateway-page {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
  min-height: 100%;
  padding-bottom: var(--ui-space-8);
}

.ui-page--payment-gateway .payment-gateway-page .fd-glow {
  display: none;
}

.ui-page--payment-gateway .payment-gateway-page .fd-glow-1 {
  width: 320px;
  height: 320px;
  top: -40px;
  left: -60px;
  background: var(--ui-accent);
}

.ui-page--payment-gateway .payment-gateway-page .fd-glow-2 {
  width: 340px;
  height: 340px;
  top: 60px;
  right: -80px;
  background: var(--ui-info);
  animation-delay: 1s;
}

.ui-page--payment-gateway .payment-gateway-page .fd-glow-3 {
  width: 260px;
  height: 260px;
  bottom: 0;
  left: 30%;
  background: var(--ui-success);
  animation-delay: 2s;
}

@keyframes fd-glow-pulse {
  0%, 100% {
    transform: scale(1);
    opacity: 0.35;
  }
  50% {
    transform: scale(1.08);
    opacity: 0.2;
  }
}
.ui-page--payment-gateway .payment-gateway-page__plan-chip {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
}

.ui-page--payment-gateway .erp-header-block {
  margin-bottom: 0;
  border-radius: var(--ui-radius-xl);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.018));
  border-color: var(--ui-border-light);
  box-shadow: none;
}

.ui-page--payment-gateway .erp-header-primary {
  align-items: flex-start;
  gap: var(--ui-space-4);
  padding: var(--ui-space-5) var(--ui-space-6) var(--ui-space-3);
}

.ui-page--payment-gateway .erp-header-primary .header-left {
  min-width: 240px;
}

.ui-page--payment-gateway .erp-header-primary .header-right {
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--ui-space-3);
  min-width: min(520px, 100%);
}

.ui-page--payment-gateway .erp-header-primary .erp-title {
  font-size: var(--ui-text-2xl);
  letter-spacing: 0;
}

.ui-page--payment-gateway .erp-header-primary .erp-subtitle {
  max-width: 460px;
}

.ui-page--payment-gateway .payment-gateway-page__tabs-bar {
  padding-bottom: 0;
}

.ui-page--payment-gateway .payment-gateway-page__view-tabs {
  width: fit-content;
  max-width: 100%;
  margin: 0;
}

.ui-page--payment-gateway .payment-gateway-page__view-tabs .pill-tab-btn {
  min-height: 36px;
  padding: 0 var(--ui-space-3);
  font-size: var(--ui-text-sm);
}

.ui-page--payment-gateway .payment-gateway-page__view-tabs .pill-tab-btn mat-icon {
  font-size: 17px;
  width: 17px;
  height: 17px;
}

.ui-page--payment-gateway .payment-gateway-page__stats-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(176px, 220px));
  gap: var(--ui-space-3);
  width: 100%;
  margin: 0;
  padding: 0 var(--ui-space-6) var(--ui-space-5);
  overflow: visible;
}

.ui-page--payment-gateway .payment-gateway-page__stats-row .stat-card--financial {
  flex: none;
  min-width: 0;
  width: 100%;
  min-height: 82px;
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  cursor: default;
  box-shadow: none;
  background: var(--ui-surface-1);
}

.ui-page--payment-gateway .payment-gateway-page__stats-row .stat-card--financial:hover {
  transform: none;
  background: var(--ui-surface-1);
}

.ui-page--payment-gateway .payment-gateway-page__stats-row .stat-card__header {
  gap: var(--ui-space-2);
  margin-bottom: var(--ui-space-2);
}

.ui-page--payment-gateway .payment-gateway-page__stats-row .stat-card__value {
  justify-content: flex-start;
  min-height: 0;
  margin-top: 0;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: var(--ui-text-xl);
  letter-spacing: 0;
}

.ui-page--payment-gateway .payment-gateway-page__alert {
  margin-top: calc(-1 * var(--ui-space-2));
}

.ui-page--payment-gateway .payment-gateway-page__table-card,
.ui-page--payment-gateway .payment-gateway-page__section-card {
  overflow: hidden;
  border-radius: var(--ui-radius-xl);
}

.ui-page--payment-gateway .payment-gateway-page__table-header {
  align-items: center;
  gap: var(--ui-space-4);
  padding: var(--ui-space-5) var(--ui-space-6);
}

.ui-page--payment-gateway .payment-gateway-page__table-header .glass-table-header__right {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--ui-space-2);
}

.ui-page--payment-gateway .payment-gateway-page__table-filters,
.ui-page--payment-gateway .payment-gateway-page__lookup-form {
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  padding: var(--ui-space-4) var(--ui-space-6);
  border-radius: 0;
  background: rgba(255, 255, 255, 0.025);
}

.ui-page--payment-gateway .payment-gateway-page__table-filters::before {
  display: none;
}

.ui-page--payment-gateway .payment-gateway-page__filter-row {
  display: grid;
  grid-template-columns: auto minmax(280px, 1fr) auto;
  align-items: flex-end;
  gap: var(--ui-space-4);
  width: 100%;
}

.ui-page--payment-gateway .payment-gateway-page__filter-row--secondary,
.ui-page--payment-gateway .payment-gateway-page__filter-row--lookup {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: flex-end;
  margin-top: var(--ui-space-4);
}

.ui-page--payment-gateway .payment-gateway-page__status-group {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
}

.ui-page--payment-gateway .payment-gateway-page__status-pill.is-active {
  background: linear-gradient(135deg, rgba(255, 133, 92, 0.3), rgba(255, 133, 92, 0.16));
  border-color: rgba(255, 152, 115, 0.55);
  color: var(--ui-text-primary);
  box-shadow: 0 8px 22px rgba(255, 122, 61, 0.18);
}

.ui-page--payment-gateway .payment-gateway-page__meta-group,
.ui-page--payment-gateway .payment-gateway-page__control-actions,
.ui-page--payment-gateway .payment-gateway-page__section-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ui-space-2);
}

.ui-page--payment-gateway .payment-gateway-page__meta-group,
.ui-page--payment-gateway .payment-gateway-page__control-actions {
  justify-content: flex-end;
}

.ui-page--payment-gateway .payment-gateway-page__last-refreshed {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-family: var(--ui-font-mono);
  white-space: nowrap;
}

.ui-page--payment-gateway .payment-gateway-page__field-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(160px, 1fr));
  gap: var(--ui-space-4);
  width: 100%;
}

.ui-page--payment-gateway .payment-gateway-page__field,
.ui-page--payment-gateway .payment-gateway-page__modal-field {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  min-width: 0;
}

.ui-page--payment-gateway .payment-gateway-page__field--lookup {
  flex: 1 1 320px;
  max-width: 520px;
}

.ui-page--payment-gateway .payment-gateway-page__field--branch {
  min-width: 200px;
}

.ui-page--payment-gateway .payment-gateway-page__input,
.ui-page--payment-gateway .payment-gateway-page__modal-input {
  width: 100%;
  min-height: 42px;
  padding: 0 var(--ui-space-4);
  border-radius: var(--ui-radius-md);
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.04);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  font-family: var(--ui-font-primary);
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.ui-page--payment-gateway .payment-gateway-page__input:focus,
.ui-page--payment-gateway .payment-gateway-page__modal-input:focus {
  outline: none;
  border-color: rgba(255, 152, 115, 0.55);
  box-shadow: 0 0 0 3px rgba(255, 122, 61, 0.14);
  background: rgba(255, 255, 255, 0.06);
}

.ui-page--payment-gateway .payment-gateway-page__input--mono,
.ui-page--payment-gateway .payment-gateway-page__modal-subtitle--mono,
.ui-page--payment-gateway .payment-gateway-page__detail-value--mono,
.ui-page--payment-gateway .payment-gateway-page .mono {
  font-family: var(--ui-font-mono);
}

.ui-page--payment-gateway .payment-gateway-page__modal-input--textarea {
  min-height: 112px;
  padding: var(--ui-space-3) var(--ui-space-4);
  resize: vertical;
}

.ui-page--payment-gateway .payment-gateway-page__actions-cell {
  width: 1%;
  white-space: nowrap;
}

.ui-page--payment-gateway .payment-gateway-page__action-icons {
  display: flex;
  justify-content: flex-end;
  gap: var(--ui-space-2);
}

.ui-page--payment-gateway .payment-gateway-page__action-btn {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.04);
  color: var(--ui-text-secondary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform 0.18s ease, border-color 0.18s ease, background 0.18s ease, color 0.18s ease;
}

.ui-page--payment-gateway .payment-gateway-page__action-btn:hover {
  transform: translateY(-1px);
  border-color: rgba(255, 152, 115, 0.5);
  background: rgba(255, 255, 255, 0.08);
  color: var(--ui-text-primary);
}

.ui-page--payment-gateway .payment-gateway-page__action-btn--danger:hover {
  border-color: rgba(255, 99, 132, 0.5);
  color: var(--ui-danger);
}

.ui-page--payment-gateway .payment-gateway-page__pagination-actions {
  display: flex;
  gap: var(--ui-space-2);
}

.ui-page--payment-gateway .payment-gateway-page__empty-action {
  margin-top: var(--ui-space-2);
}

.ui-page--payment-gateway .payment-gateway-page__section-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ui-space-4);
  padding: var(--ui-space-5);
}

.ui-page--payment-gateway .payment-gateway-page__section-grid--rates {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ui-page--payment-gateway .payment-gateway-page__section-body {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  padding: var(--ui-space-5);
}

.ui-page--payment-gateway .payment-gateway-page__config-card,
.ui-page--payment-gateway .payment-gateway-page__lookup-card,
.ui-page--payment-gateway .payment-gateway-page__tool-card {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  min-height: 100%;
}

.ui-page--payment-gateway .payment-gateway-page__config-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-2);
}

.ui-page--payment-gateway .payment-gateway-page__config-label,
.ui-page--payment-gateway .payment-gateway-page__detail-label {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ui-page--payment-gateway .payment-gateway-page__config-value,
.ui-page--payment-gateway .payment-gateway-page__detail-value {
  color: var(--ui-text-primary);
  font-size: var(--ui-text-lg);
  font-weight: 600;
  line-height: 1.3;
}

.ui-page--payment-gateway .payment-gateway-page__config-value--muted {
  color: var(--ui-text-subtle);
  font-size: var(--ui-text-sm);
  font-weight: 500;
}

.ui-page--payment-gateway .payment-gateway-page__detail-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ui-space-3);
}

.ui-page--payment-gateway .payment-gateway-page__detail-item {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-xl);
  border: 1px solid rgba(255, 255, 255, 0.05);
  background: rgba(255, 255, 255, 0.03);
}

.ui-page--payment-gateway .payment-gateway-page__detail-value--amount,
.ui-page--payment-gateway .payment-gateway-page .amount {
  color: var(--ui-brand);
}

.ui-page--payment-gateway .payment-gateway-page__tool-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-4);
  padding: var(--ui-space-5);
}

.ui-page--payment-gateway .payment-gateway-page__tool-card {
  align-items: flex-start;
}

.ui-page--payment-gateway .payment-gateway-page__tool-icon {
  width: 48px;
  height: 48px;
  border-radius: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ui-brand);
  background: rgba(255, 122, 61, 0.12);
  border: 1px solid rgba(255, 152, 115, 0.2);
}

.ui-page--payment-gateway .payment-gateway-page__tool-copy {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
}

.ui-page--payment-gateway .payment-gateway-page__tool-copy h3 {
  margin: 0;
  color: var(--ui-text-primary);
  font-size: var(--ui-text-md);
  font-weight: 600;
}

.ui-page--payment-gateway .payment-gateway-page__tool-copy p,
.ui-page--payment-gateway .payment-gateway-page__modal-note {
  margin: 0;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  line-height: 1.5;
}

.ui-page--payment-gateway .payment-gateway-page__busy-state {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin: 0 var(--ui-space-5) var(--ui-space-5);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}

.ui-page--payment-gateway .payment-gateway-page__inline-alert {
  margin-bottom: var(--ui-space-3);
}

.ui-page--payment-gateway .payment-gateway-page__modal {
  width: min(540px, 95%);
}

.ui-page--payment-gateway .payment-gateway-page__modal-fields {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.ui-page--payment-gateway .payment-gateway-page__stat-skeleton {
  margin-top: var(--ui-space-2);
}

.ui-page--payment-gateway .payment-gateway-page .gw-clickable-row {
  cursor: pointer;
  transition: background 0.18s ease;
}

.ui-page--payment-gateway .payment-gateway-page .gw-clickable-row:hover {
  background: rgba(255, 255, 255, 0.03);
}

.ui-page--payment-gateway .payment-gateway-page .gw-split-btn {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--ui-radius-lg);
  padding: 6px 10px;
  color: var(--ui-info);
  font-size: var(--ui-text-xs);
  font-weight: 600;
  cursor: pointer;
  font-family: var(--ui-font-mono);
  transition: border-color 0.18s ease, background 0.18s ease;
}

.ui-page--payment-gateway .payment-gateway-page .gw-split-btn:hover {
  background: rgba(96, 165, 250, 0.08);
  border-color: rgba(96, 165, 250, 0.35);
}

.ui-page--payment-gateway .payment-gateway-page .gw-chevron {
  display: inline-block;
  margin-left: 4px;
  transition: transform 0.2s ease;
}

.ui-page--payment-gateway .payment-gateway-page .gw-chevron.expanded {
  transform: rotate(90deg);
}

.ui-page--payment-gateway .payment-gateway-page .gw-split-detail-row td {
  background: rgba(255, 255, 255, 0.02);
  padding: 0;
}

.ui-page--payment-gateway .payment-gateway-page .gw-split-breakdown {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  padding: var(--ui-space-4) var(--ui-space-5);
}

.ui-page--payment-gateway .payment-gateway-page .gw-split-item {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-lg);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.04);
  font-size: var(--ui-text-xs);
}

.ui-page--payment-gateway .payment-gateway-page .gw-split-entity {
  flex: 1 1 160px;
  color: var(--ui-text-primary);
  font-weight: 500;
}

.ui-page--payment-gateway .payment-gateway-page .gw-split-amount {
  color: var(--ui-brand);
  font-family: var(--ui-font-mono);
  font-weight: 600;
}

.ui-page--payment-gateway .payment-gateway-page .gw-split-pct {
  color: var(--ui-text-muted);
}

.ui-page--payment-gateway .payment-gateway-page .gw-tooltip {
  position: fixed;
  z-index: calc(var(--z-modal) + 1);
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  background: rgba(12, 12, 12, 0.82);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-xs);
  box-shadow: var(--ui-shadow-lg);
  pointer-events: none;
  white-space: nowrap;
}

.ui-page--payment-gateway .payment-gateway-page .section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--ui-space-3);
}

.ui-page--payment-gateway .payment-gateway-page .section-header span {
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  font-weight: 600;
  letter-spacing: 0.02em;
}

.ui-page--payment-gateway .payment-gateway-page .gw-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-3);
}

.ui-page--payment-gateway .payment-gateway-page .gw-detail-item {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-lg);
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.04);
}

.ui-page--payment-gateway .payment-gateway-page .gw-detail-label {
  color: var(--ui-text-muted);
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.ui-page--payment-gateway .payment-gateway-page .gw-detail-value {
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  font-weight: 500;
}

.ui-page--payment-gateway .payment-gateway-page .gw-timeline {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  padding-left: var(--ui-space-5);
}

.ui-page--payment-gateway .payment-gateway-page .gw-timeline::before {
  content: "";
  position: absolute;
  top: 8px;
  bottom: 8px;
  left: 7px;
  width: 2px;
  background: rgba(255, 255, 255, 0.08);
}

.ui-page--payment-gateway .payment-gateway-page .gw-timeline-item {
  position: relative;
}

.ui-page--payment-gateway .payment-gateway-page .gw-timeline-dot {
  position: absolute;
  top: 6px;
  left: -18px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--ui-text-subtle);
}

.ui-page--payment-gateway .payment-gateway-page .gw-timeline-dot.dot-success {
  background: var(--ui-success);
}

.ui-page--payment-gateway .payment-gateway-page .gw-timeline-dot.dot-failed {
  background: var(--ui-danger);
}

.ui-page--payment-gateway .payment-gateway-page .gw-timeline-content {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ui-space-2);
}

.ui-page--payment-gateway .payment-gateway-page .gw-timeline-date,
.ui-page--payment-gateway .payment-gateway-page .gw-timeline-note {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
}

.ui-page--payment-gateway .payment-gateway-page .gw-timeline-note {
  font-style: italic;
}

.ui-page--payment-gateway .payment-gateway-page .gw-timeline-value {
  color: var(--ui-text-primary);
  font-size: var(--ui-text-xs);
  font-weight: 600;
}

.ui-page--payment-gateway .payment-gateway-page .gw-split-timeline-header {
  margin-bottom: var(--ui-space-2);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.ui-page--payment-gateway .payment-gateway-page .gw-drawer-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
  padding-top: var(--ui-space-4);
  margin-top: var(--ui-space-4);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.ui-page--payment-gateway .payment-gateway-page .gw-stat-danger {
  color: var(--ui-danger);
}

.ui-page--payment-gateway .gateway-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 60vh;
  gap: var(--ui-space-4);
  color: var(--ui-text-muted);
}

.ui-page--payment-gateway .gateway-loading .spinner {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 3px solid rgba(255, 255, 255, 0.1);
  border-top-color: var(--ui-brand);
  animation: payment-gateway-spin 0.9s linear infinite;
}

@keyframes payment-gateway-spin {
  to {
    transform: rotate(360deg);
  }
}
@media (max-width: 1100px) {
  .ui-page--payment-gateway .payment-gateway-page__field-row,
  .ui-page--payment-gateway .payment-gateway-page__detail-grid,
  .ui-page--payment-gateway .payment-gateway-page__section-grid,
  .ui-page--payment-gateway .payment-gateway-page__tool-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 768px) {
  .ui-page--payment-gateway .payment-gateway-page {
    gap: var(--ui-space-5);
  }
  .ui-page--payment-gateway .payment-gateway-page__filter-row,
  .ui-page--payment-gateway .payment-gateway-page__table-header,
  .ui-page--payment-gateway .payment-gateway-page__table-header .glass-table-header__right {
    align-items: stretch;
  }
  .ui-page--payment-gateway .payment-gateway-page__filter-row,
  .ui-page--payment-gateway .payment-gateway-page__tool-grid,
  .ui-page--payment-gateway .payment-gateway-page__section-grid,
  .ui-page--payment-gateway .payment-gateway-page__detail-grid,
  .ui-page--payment-gateway .payment-gateway-page .gw-detail-grid,
  .ui-page--payment-gateway .payment-gateway-page__field-row {
    grid-template-columns: 1fr;
    display: grid;
  }
  .ui-page--payment-gateway .payment-gateway-page__status-group,
  .ui-page--payment-gateway .payment-gateway-page__section-actions,
  .ui-page--payment-gateway .payment-gateway-page__control-actions,
  .ui-page--payment-gateway .payment-gateway-page__meta-group,
  .ui-page--payment-gateway .payment-gateway-page__action-icons,
  .ui-page--payment-gateway .payment-gateway-page__pagination-actions {
    width: 100%;
    justify-content: flex-start;
  }
  .ui-page--payment-gateway .payment-gateway-page__section-body,
  .ui-page--payment-gateway .payment-gateway-page__section-grid,
  .ui-page--payment-gateway .payment-gateway-page__tool-grid {
    padding: var(--ui-space-4);
  }
  .ui-page--payment-gateway .payment-gateway-page__field--lookup {
    max-width: none;
  }
}
/* ═══════════════════════════════════════════════════════════════
   ENTERPRISE — Search Box
   ═══════════════════════════════════════════════════════════════ */
.ui-page--payment-gateway .gw-search-box {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  width: 100%;
  min-height: 42px;
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  padding: 0 var(--ui-space-3);
  transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
}

.ui-page--payment-gateway .gw-search-box:focus-within {
  border-color: var(--ui-brand);
  background: var(--ui-surface-2);
  box-shadow: 0 0 0 3px rgba(255, 122, 61, 0.12);
}

.ui-page--payment-gateway .gw-search-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: var(--ui-text-muted);
  flex-shrink: 0;
}

.ui-page--payment-gateway .gw-search-input {
  flex: 1;
  min-width: 0;
  width: 100%;
  background: transparent;
  border: none;
  outline: none;
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  font-family: var(--ui-font-primary);
}

.ui-page--payment-gateway .gw-search-input::placeholder {
  color: var(--ui-text-subtle);
}

.ui-page--payment-gateway .gw-search-clear {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  display: flex;
  align-items: center;
}

.ui-page--payment-gateway .gw-search-clear mat-icon {
  font-size: 16px;
  color: var(--ui-text-muted);
}

.ui-page--payment-gateway .gw-search-clear:hover mat-icon {
  color: var(--ui-danger);
}

/* ═══════════════════════════════════════════════════════════════
   ENTERPRISE — Revenue Chart Card
   ═══════════════════════════════════════════════════════════════ */
.ui-page--payment-gateway .gw-chart-section {
  margin: 0 var(--ui-space-6) var(--ui-space-5);
}

.ui-page--payment-gateway .gw-chart-card {
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  padding: var(--ui-space-4);
}

.ui-page--payment-gateway .gw-chart-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--ui-space-4);
}

.ui-page--payment-gateway .gw-chart-title {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-sm);
  font-weight: 600;
  color: var(--ui-text-primary);
}

.ui-page--payment-gateway .gw-chart-title mat-icon {
  font-size: 20px;
  color: var(--ui-brand);
}

.ui-page--payment-gateway .gw-chart-subtitle {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.ui-page--payment-gateway .gw-chart-body {
  display: flex;
  align-items: flex-end;
  gap: var(--ui-space-3);
  height: 92px;
  padding-top: var(--ui-space-2);
}

.ui-page--payment-gateway .gw-chart-bar-group {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ui-space-1);
  height: 100%;
}

.ui-page--payment-gateway .gw-chart-bar-track {
  flex: 1;
  width: 100%;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

.ui-page--payment-gateway .gw-chart-bar {
  width: 70%;
  max-width: 48px;
  border-radius: var(--ui-radius-sm) var(--ui-radius-sm) 0 0;
  transition: height 0.5s ease, opacity 0.2s;
  cursor: pointer;
  opacity: 0.85;
}

.ui-page--payment-gateway .gw-chart-bar:hover {
  opacity: 1;
  filter: brightness(1.15);
}

.ui-page--payment-gateway .gw-chart-bar-label {
  font-size: 9px;
  color: var(--ui-text-subtle);
  text-align: center;
  white-space: nowrap;
}

/* ═══════════════════════════════════════════════════════════════
   ENTERPRISE — Enhanced Pagination
   ═══════════════════════════════════════════════════════════════ */
.ui-page--payment-gateway .gw-page-numbers {
  display: flex;
  align-items: center;
  gap: 2px;
}

.ui-page--payment-gateway .gw-page-btn {
  min-width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: var(--ui-radius-sm);
  background: transparent;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: 500;
  cursor: pointer;
  transition: all 0.15s;
  font-family: var(--ui-font-primary);
  padding: 0 4px;
}

.ui-page--payment-gateway .gw-page-btn:hover:not(:disabled) {
  background: var(--ui-surface-2);
  color: var(--ui-text-primary);
  border-color: var(--ui-border);
}

.ui-page--payment-gateway .gw-page-btn.is-active {
  background: var(--ui-brand);
  color: #fff;
  border-color: var(--ui-brand);
  font-weight: 600;
}

.ui-page--payment-gateway .gw-page-btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

.ui-page--payment-gateway .gw-page-btn mat-icon {
  font-size: 18px;
}

.ui-page--payment-gateway .gw-page-jump {
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
}

.ui-page--payment-gateway .gw-page-jump-input {
  width: 44px;
  padding: 4px 6px;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface-2);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-xs);
  text-align: center;
  font-family: var(--ui-font-mono);
}

.ui-page--payment-gateway .gw-page-jump-input:focus {
  border-color: var(--ui-brand);
  outline: none;
}

/* Hide number input spinners */
.ui-page--payment-gateway .gw-page-jump-input::-webkit-outer-spin-button,
.ui-page--payment-gateway .gw-page-jump-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* ═══════════════════════════════════════════════════════════════
   ENTERPRISE — Audit Trail Timeline
   ═══════════════════════════════════════════════════════════════ */
.ui-page--payment-gateway .gw-audit-timeline {
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
  padding-left: var(--ui-space-4);
}

.ui-page--payment-gateway .gw-audit-timeline::before {
  content: "";
  position: absolute;
  left: 7px;
  top: 8px;
  bottom: 8px;
  width: 2px;
  background: var(--ui-border);
  border-radius: 1px;
}

.ui-page--payment-gateway .gw-audit-entry {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-3);
  padding: var(--ui-space-2) 0;
  position: relative;
}

.ui-page--payment-gateway .gw-audit-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--ui-border);
  flex-shrink: 0;
  margin-top: 5px;
  position: relative;
  z-index: 1;
}

.ui-page--payment-gateway .gw-audit--success .gw-audit-dot {
  background: var(--ui-success);
  box-shadow: 0 0 6px rgba(74, 222, 128, 0.4);
}

.ui-page--payment-gateway .gw-audit--error .gw-audit-dot {
  background: var(--ui-danger);
  box-shadow: 0 0 6px rgba(248, 113, 113, 0.4);
}

.ui-page--payment-gateway .gw-audit-content {
  flex: 1;
  min-width: 0;
}

.ui-page--payment-gateway .gw-audit-header {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.ui-page--payment-gateway .gw-audit-action {
  font-size: var(--ui-text-sm);
  font-weight: 600;
  color: var(--ui-text-primary);
}

.ui-page--payment-gateway .gw-audit-target {
  font-size: var(--ui-text-xs);
  color: var(--ui-brand);
  background: rgba(232, 145, 58, 0.1);
  padding: 1px 6px;
  border-radius: var(--ui-radius-sm);
}

.ui-page--payment-gateway .gw-audit-meta {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin-top: 2px;
}

.ui-page--payment-gateway .gw-audit-time {
  font-size: 10px;
  color: var(--ui-text-subtle);
  font-family: var(--ui-font-mono);
}

.ui-page--payment-gateway .gw-audit-detail {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

/* ── Enterprise Responsive ──────────────────────────────────── */
@media (max-width: 768px) {
  .ui-page--payment-gateway .gw-search-box {
    order: -1;
    width: 100%;
  }
  .ui-page--payment-gateway .gw-search-input {
    width: 100%;
  }
  .ui-page--payment-gateway .gw-chart-body {
    height: 80px;
  }
  .ui-page--payment-gateway .gw-page-numbers {
    flex-wrap: wrap;
  }
  .ui-page--payment-gateway .gw-page-jump {
    display: none;
  }
}
/* ==========================================================================
   Decision Engine — Page Contract
   Location: src/ui/pages/decisions-page.scss

   Scoped to .ui-page--decisions only.
   Reuses the shared page, header, stat-card, table, chip, and button contracts.
   ========================================================================== */
.ui-page--decisions {
  position: relative;
  min-height: calc(100vh - 60px);
}

.ui-page--decisions .decisions-page {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-6);
  min-width: 0;
}

.ui-page--decisions .decisions-page__ambient {
  position: fixed;
  top: 72px;
  right: 8%;
  width: 320px;
  height: 320px;
  border-radius: var(--ui-radius-full);
  background: radial-gradient(circle, var(--ui-brand-glow) 0%, transparent 72%);
  filter: blur(72px);
  opacity: 0.18;
  pointer-events: none;
  z-index: 0;
}

.ui-page--decisions .decisions-page__ambient--secondary {
  top: auto;
  right: auto;
  bottom: 56px;
  left: 6%;
  width: 220px;
  height: 220px;
  background: radial-gradient(circle, var(--ui-warning-bg) 0%, transparent 72%);
  opacity: 0.5;
}

.ui-page--decisions .decisions-page > :not(.decisions-page__ambient) {
  position: relative;
  z-index: var(--z-base);
}

.ui-page--decisions .decisions-page__header-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ui-space-2);
}

.ui-page--decisions .decisions-page__run-btn.is-loading mat-icon {
  animation: decisions-spin 0.9s linear infinite;
}

@keyframes decisions-spin {
  to {
    transform: rotate(360deg);
  }
}
.ui-page--decisions .decisions-page__metric-card {
  min-width: 184px;
  max-width: 230px;
  gap: var(--ui-space-2);
}

.ui-page--decisions .decisions-page__metric-note {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  line-height: 1.45;
}

.ui-page--decisions .decisions-page__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(320px, 0.95fr);
  gap: var(--ui-space-5);
  align-items: start;
}

.ui-page--decisions .decisions-page__queue-card,
.ui-page--decisions .decisions-page__history-card,
.ui-page--decisions .decisions-page__coverage-card {
  max-height: none;
  overflow: hidden;
}

.ui-page--decisions .decisions-page__rail {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
}

.ui-page--decisions .decisions-page__panel-header {
  gap: var(--ui-space-4);
}

.ui-page--decisions .decisions-page__panel-header .glass-table-header__right {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--ui-space-2);
}

.ui-page--decisions .decisions-page__decision-list {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  padding: var(--ui-space-5);
}

.ui-page--decisions .decisions-page__decision-card {
  position: relative;
  overflow: hidden;
  border-radius: var(--ui-radius-xl);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-1);
  box-shadow: none;
  transition: transform var(--ui-transition-base), border-color var(--ui-transition-base), background var(--ui-transition-base), box-shadow var(--ui-transition-base);
}

.ui-page--decisions .decisions-page__decision-card:hover {
  transform: translateY(-1px);
  background: var(--ui-surface-2);
  border-color: var(--ui-border-hover);
  box-shadow: var(--ui-shadow-sm);
}

.ui-page--decisions .decisions-page__decision-card.is-expanded {
  background: var(--ui-surface-2);
  box-shadow: var(--ui-shadow-sm);
}

.ui-page--decisions .decisions-page__decision-card.is-expanded.decisions-page__decision-card--critical {
  border-color: var(--ui-danger-border);
}

.ui-page--decisions .decisions-page__decision-card.is-expanded.decisions-page__decision-card--warning {
  border-color: var(--ui-warning-border);
}

.ui-page--decisions .decisions-page__decision-card.is-expanded.decisions-page__decision-card--info {
  border-color: var(--ui-border-hover);
}

.ui-page--decisions .decisions-page__decision-card--skeleton {
  pointer-events: none;
}

.ui-page--decisions .decisions-page__decision-head {
  position: relative;
  width: 100%;
  border: 0;
  background: transparent;
  display: grid;
  grid-template-columns: auto auto 1fr auto;
  align-items: center;
  gap: var(--ui-space-4);
  padding: var(--ui-space-4) var(--ui-space-5);
  text-align: left;
  cursor: pointer;
  color: inherit;
}

.ui-page--decisions .decisions-page__decision-accent {
  width: 4px;
  height: 52px;
  border-radius: var(--ui-radius-full);
  background: var(--ui-border-light);
}

.ui-page--decisions .decisions-page__decision-card--critical .decisions-page__decision-accent {
  background: var(--ui-danger);
}

.ui-page--decisions .decisions-page__decision-card--warning .decisions-page__decision-accent {
  background: var(--ui-brand);
}

.ui-page--decisions .decisions-page__decision-card--info .decisions-page__decision-accent {
  background: var(--ui-warning);
}

.ui-page--decisions .decisions-page__decision-icon {
  width: 52px;
  height: 52px;
  border-radius: var(--ui-radius-lg);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border-light);
  color: var(--ui-text-muted);
  flex-shrink: 0;
}

.ui-page--decisions .decisions-page__decision-icon mat-icon {
  font-size: 22px;
  width: 22px;
  height: 22px;
}

.ui-page--decisions .decisions-page__decision-icon--critical {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
}

.ui-page--decisions .decisions-page__decision-icon--warning {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.ui-page--decisions .decisions-page__decision-icon--info {
  background: var(--ui-surface-2);
  border-color: var(--ui-border-light);
  color: var(--ui-brand);
}

.ui-page--decisions .decisions-page__decision-copy {
  display: flex;
  flex-direction: column;
  gap: calc(var(--ui-space-1) / 2);
  min-width: 0;
}

.ui-page--decisions .decisions-page__decision-title {
  color: var(--ui-text-primary);
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  line-height: 1.25;
}

.ui-page--decisions .decisions-page__decision-message {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  line-height: 1.45;
}

.ui-page--decisions .decisions-page__decision-meta {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.ui-page--decisions .decisions-page__decision-count {
  color: var(--ui-text-primary);
  font-size: clamp(22px, 2vw, 30px);
  font-weight: var(--ui-font-bold);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.03em;
}

.ui-page--decisions .decisions-page__decision-chevron {
  color: var(--ui-text-subtle);
  font-size: 22px;
  width: 22px;
  height: 22px;
}

.ui-page--decisions .decisions-page__decision-body {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  padding: var(--ui-space-4) var(--ui-space-5) var(--ui-space-5);
  border-top: 1px solid var(--ui-border-light);
}

.ui-page--decisions .decisions-page__decision-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
}

.ui-page--decisions .decisions-page__decision-toolbar-copy {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
}

.ui-page--decisions .decisions-page__inner-table-scroll,
.ui-page--decisions .decisions-page__history-scroll {
  border-radius: var(--ui-radius-xl);
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-1);
}

.ui-page--decisions .decisions-page__inner-table,
.ui-page--decisions .decisions-page__history-table {
  min-width: 100%;
}

.ui-page--decisions .decisions-page__inner-table tbody,
.ui-page--decisions .decisions-page__history-table tbody {
  max-height: none;
}

.ui-page--decisions .decisions-page__decision-footer {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  line-height: 1.45;
}

.ui-page--decisions .decisions-page__empty-state {
  padding: var(--ui-space-10) var(--ui-space-6);
}

.ui-page--decisions .decisions-page__empty-state--compact {
  min-height: 220px;
}

.ui-page--decisions .decisions-page__coverage-card {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  padding: var(--ui-space-5);
}

.ui-page--decisions .decisions-page__side-copy {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.ui-page--decisions .decisions-page__side-label {
  color: var(--ui-brand);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ui-page--decisions .decisions-page__side-copy h3 {
  margin: 0;
  color: var(--ui-text-primary);
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  line-height: 1.3;
}

.ui-page--decisions .decisions-page__side-copy p {
  margin: 0;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  line-height: 1.6;
}

.ui-page--decisions .decisions-page__coverage-list {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.ui-page--decisions .decisions-page__coverage-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-xl);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
  transition: background var(--ui-transition-base), border-color var(--ui-transition-base), transform var(--ui-transition-base);
}

.ui-page--decisions .decisions-page__coverage-item:hover {
  background: var(--ui-surface-2);
  border-color: var(--ui-border-hover);
  transform: translateY(-1px);
}

.ui-page--decisions .decisions-page__coverage-item--critical {
  border-color: var(--ui-danger-border);
}

.ui-page--decisions .decisions-page__coverage-item--warning {
  border-color: var(--ui-warning-border);
}

.ui-page--decisions .decisions-page__coverage-item--success {
  border-color: var(--ui-success-border);
}

.ui-page--decisions .decisions-page__coverage-copy {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  min-width: 0;
}

.ui-page--decisions .decisions-page__coverage-icon {
  width: 40px;
  height: 40px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border-light);
  color: var(--ui-brand);
  flex-shrink: 0;
}

.ui-page--decisions .decisions-page__coverage-icon mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.ui-page--decisions .decisions-page__coverage-icon--critical {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
}

.ui-page--decisions .decisions-page__coverage-icon--warning {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.ui-page--decisions .decisions-page__coverage-icon--success {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.ui-page--decisions .decisions-page__coverage-icon--info {
  color: var(--ui-brand);
}

.ui-page--decisions .decisions-page__coverage-copy > div {
  display: flex;
  flex-direction: column;
  gap: calc(var(--ui-space-1) / 2);
  min-width: 0;
}

.ui-page--decisions .decisions-page__coverage-title {
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  line-height: 1.35;
}

.ui-page--decisions .decisions-page__coverage-subtitle {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  line-height: 1.45;
}

.ui-page--decisions .decisions-page__coverage-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--ui-space-2);
  flex-shrink: 0;
}

.ui-page--decisions .decisions-page__coverage-route {
  color: var(--ui-text-subtle);
  font-size: var(--ui-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.ui-page--decisions .decisions-page__decision-card--skeleton .decisions-page__decision-icon,
.ui-page--decisions .decisions-page__decision-card--skeleton .decisions-page__decision-meta {
  background: var(--ui-surface-2);
}

.ui-page--decisions .decisions-page__decision-card--skeleton .decisions-page__decision-icon {
  border-color: var(--ui-border-light);
}

.ui-page--decisions .decisions-page__decision-card--skeleton .decisions-page__decision-meta {
  min-width: 80px;
  height: 24px;
  border-radius: var(--ui-radius-full);
}

.ui-page--decisions .decisions-page__decision-card--skeleton .decisions-page__decision-copy {
  gap: var(--ui-space-2);
}

@media (max-width: 1100px) {
  .ui-page--decisions .decisions-page__layout {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 768px) {
  .ui-page--decisions .decisions-page {
    gap: var(--ui-space-5);
  }
  .ui-page--decisions .decisions-page__ambient {
    opacity: 0.12;
  }
  .ui-page--decisions .decisions-page__header-actions,
  .ui-page--decisions .decisions-page__panel-header .glass-table-header__right,
  .ui-page--decisions .decisions-page__decision-toolbar {
    justify-content: flex-start;
  }
  .ui-page--decisions .decisions-page__decision-head {
    grid-template-columns: auto 1fr;
    grid-template-areas: "accent icon" "accent copy" "accent meta";
    align-items: start;
    padding: var(--ui-space-4);
  }
  .ui-page--decisions .decisions-page__decision-accent {
    grid-area: accent;
    height: 100%;
    min-height: 48px;
  }
  .ui-page--decisions .decisions-page__decision-icon {
    grid-area: icon;
  }
  .ui-page--decisions .decisions-page__decision-copy {
    grid-area: copy;
  }
  .ui-page--decisions .decisions-page__decision-meta {
    grid-area: meta;
    justify-content: flex-start;
    flex-wrap: wrap;
  }
  .ui-page--decisions .decisions-page__decision-body,
  .ui-page--decisions .decisions-page__decision-list,
  .ui-page--decisions .decisions-page__coverage-card {
    padding-left: var(--ui-space-4);
    padding-right: var(--ui-space-4);
  }
  .ui-page--decisions .decisions-page__coverage-item {
    flex-direction: column;
    align-items: flex-start;
  }
  .ui-page--decisions .decisions-page__coverage-meta {
    align-items: flex-start;
  }
}
/* ==========================================================================
   UI PAGES - INTELLIGENCE PAGE CONTRACT
   ==========================================================================
   Scoped page contract for /console/intelligence/*

   Root selector: .intelligence-page
   Dependencies: tokens, stat-cards, glass-table, erp-header-block
   ========================================================================== */
/* ==========================================================================
   1. SHARED PAGE IDENTITY
   ========================================================================== */
.intelligence-page {
  font-family: var(--ui-font-primary);
}

.intelligence-page .intel-subtitle {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  margin: var(--ui-space-1) 0 0;
}

/* ==========================================================================
   2. SETTINGS PAGE — CARDS + CONTROLS
   ========================================================================== */
.intelligence-page .intel-settings-stack {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  max-width: 720px;
}

.intelligence-page--settings .intel-settings-stack {
  gap: var(--ui-space-5);
  max-width: none;
}

.intelligence-page .intel-card {
  padding: var(--ui-space-5) var(--ui-space-6);
  border-radius: var(--ui-radius-lg);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-1);
  backdrop-filter: var(--ui-blur-sm);
}

.intelligence-page .intel-card--master {
  border-left: 3px solid var(--ui-brand);
}

.intelligence-page--settings .intel-settings-overview {
  border-left: 0;
  background: var(--ui-surface-1);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.intelligence-page--settings .intel-settings-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--ui-space-5);
  align-items: start;
}

.intelligence-page--settings .intel-settings-section {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  min-width: 0;
}

.intelligence-page--settings .intel-section-header {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  padding: 0 var(--ui-space-1);
}

.intelligence-page--settings .intel-section-header__eyebrow {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ui-text-muted);
}

.intelligence-page--settings .intel-section-header__title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
}

.intelligence-page--settings .intel-section-header__title {
  margin: 0;
  color: var(--ui-text-primary);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-bold);
  letter-spacing: 0;
  line-height: 1.2;
}

.intelligence-page--settings .intel-section-header__desc {
  max-width: 640px;
  margin: 0;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  line-height: 1.5;
}

.intelligence-page--settings .intel-control-card {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  min-width: 0;
  padding: var(--ui-space-5);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.intelligence-page--settings .intel-control-card .intel-card__desc {
  max-width: 760px;
}

.intelligence-page .intel-card__title {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  margin: 0;
}

.intelligence-page .intel-card__desc {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  margin: var(--ui-space-1) 0 0;
}

.intelligence-page .intel-card__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--ui-space-4);
}

/* Channel list */
.intelligence-page .intel-channels {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  margin-top: var(--ui-space-4);
}

.intelligence-page .intel-channel {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--ui-space-3) var(--ui-space-4);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-2);
}

.intelligence-page .intel-channel__info {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
}

.intelligence-page .intel-channel__icon {
  font-size: var(--ui-text-lg);
}

.intelligence-page .intel-channel__name {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-secondary);
}

.intelligence-page--settings .intel-channels--compact {
  gap: var(--ui-space-2);
  margin-top: 0;
}

.intelligence-page--settings .intel-channels--compact .intel-channel {
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border-light);
}

.intelligence-page--settings .intel-channels--compact .intel-channel__name {
  font-size: var(--ui-text-sm);
}

.intelligence-page--settings .intel-field,
.intelligence-page--knowledge .intel-field {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.intelligence-page--settings .intel-field__label,
.intelligence-page--knowledge .intel-field__label {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.intelligence-page--settings .intel-select,
.intelligence-page--knowledge .intel-select {
  width: 100%;
  min-height: 42px;
  padding: 0 var(--ui-space-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface-2);
  color: var(--ui-text-primary);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
  outline: none;
}

.intelligence-page--settings .intel-select:focus,
.intelligence-page--knowledge .intel-select:focus {
  border-color: var(--ui-border-focus);
}

/* Toggle switch */
.intelligence-page .intel-toggle {
  position: relative;
  width: 44px;
  height: 24px;
  display: inline-block;
  flex-shrink: 0;
}

.intelligence-page .intel-toggle input {
  opacity: 0;
  width: 0;
  height: 0;
}

.intelligence-page .intel-toggle__slider {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  cursor: pointer;
  background: rgba(255, 255, 255, 0.12);
  border-radius: var(--ui-radius-full);
  transition: var(--ui-transition-base);
}

.intelligence-page .intel-toggle__slider::before {
  content: "";
  position: absolute;
  width: 18px;
  height: 18px;
  left: 3px;
  bottom: 3px;
  background: var(--ui-text-primary);
  border-radius: 50%;
  transition: var(--ui-transition-base);
}

.intelligence-page .intel-toggle input:checked + .intel-toggle__slider {
  background: var(--ui-brand);
}

.intelligence-page .intel-toggle input:checked + .intel-toggle__slider::before {
  transform: translateX(20px);
}

.intelligence-page .intel-toggle--sm {
  width: 38px;
  height: 20px;
}

.intelligence-page .intel-toggle--sm .intel-toggle__slider::before {
  width: 14px;
  height: 14px;
}

.intelligence-page .intel-toggle--sm input:checked + .intel-toggle__slider::before {
  transform: translateX(18px);
}

/* Slider (confidence) */
.intelligence-page .intel-slider-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-4);
  margin-top: var(--ui-space-3);
}

.intelligence-page .intel-slider {
  flex: 1;
  appearance: none;
  height: 6px;
  background: var(--ui-surface-3);
  border-radius: 3px;
  outline: none;
}

.intelligence-page .intel-slider::-webkit-slider-thumb {
  appearance: none;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--ui-brand);
  cursor: pointer;
  border: 2px solid var(--ui-surface-base);
  box-shadow: var(--ui-shadow-sm);
}

.intelligence-page--settings .intel-slider::-webkit-slider-thumb {
  box-shadow: none;
}

.intelligence-page .intel-slider-value {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-bold);
  color: var(--ui-brand);
  min-width: 48px;
  text-align: center;
  font-family: var(--ui-font-mono);
}

.intelligence-page .intel-slider-labels {
  display: flex;
  justify-content: space-between;
  font-size: var(--ui-text-xs);
  color: var(--ui-text-subtle);
  margin-top: var(--ui-space-1);
}

/* Mode selector */
.intelligence-page .intel-modes {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--ui-space-3);
  margin-top: var(--ui-space-3);
}

.intelligence-page--settings .intel-modes {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 0;
}

.intelligence-page .intel-mode {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-2);
  padding: var(--ui-space-4);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  cursor: pointer;
  transition: var(--ui-transition-base);
  background: transparent;
}

.intelligence-page .intel-mode input {
  margin-top: 2px;
  accent-color: var(--ui-brand);
}

.intelligence-page .intel-mode strong {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-primary);
  display: block;
}

.intelligence-page .intel-mode span {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.intelligence-page .intel-mode--active {
  border-color: var(--ui-brand);
  background: rgba(255, 120, 79, 0.08);
}

/* ── Merged Lead Card ─────────────────────────────────────────── */
.intelligence-page .intel-card--lead {
  border-left: 3px solid rgba(52, 211, 153, 0.6); /* subtle green — lead/revenue signal */
}

.intelligence-page--settings .intel-card--lead {
  border-left: 0;
}

/* Inner policy row — appears below the toggle header */
.intelligence-page .intel-lead-policy {
  display: flex;
  align-items: center;
  gap: var(--ui-space-4);
  margin-top: var(--ui-space-4);
  padding-top: var(--ui-space-4);
  border-top: 1px solid var(--ui-border-light);
}

.intelligence-page--settings .intel-lead-policy {
  align-items: flex-start;
  margin-top: 0;
}

.intelligence-page .intel-lead-policy__label {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  white-space: nowrap;
  flex-shrink: 0;
}

.intelligence-page .intel-lead-policy__icon {
  font-size: var(--ui-text-base);
}

/* Pill options — horizontal segmented control feel */
.intelligence-page .intel-lead-policy__options {
  display: flex;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.intelligence-page .intel-policy-pill {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-4);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-full);
  cursor: pointer;
  transition: var(--ui-transition-base);
  background: var(--ui-surface-2);
  -webkit-user-select: none;
          user-select: none;
}

.intelligence-page--settings .intel-policy-pill {
  flex: 1 1 220px;
  border-radius: var(--ui-radius-md);
}

.intelligence-page .intel-policy-pill input {
  display: none; /* radio hidden — pill itself is the control */
}

/* Radio dot indicator */
.intelligence-page .intel-policy-pill__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: 2px solid var(--ui-border-hover);
  flex-shrink: 0;
  transition: var(--ui-transition-base);
}

.intelligence-page .intel-policy-pill__text {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}

.intelligence-page .intel-policy-pill__text strong {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
}

.intelligence-page .intel-policy-pill__text em {
  font-size: var(--ui-text-xs);
  font-style: normal;
  color: var(--ui-text-muted);
}

/* Active pill */
.intelligence-page .intel-policy-pill--active {
  border-color: var(--ui-brand);
  background: rgba(255, 120, 79, 0.1);
}

.intelligence-page .intel-policy-pill--active .intel-policy-pill__dot {
  border-color: var(--ui-brand);
  background: var(--ui-brand);
}

.intelligence-page .intel-policy-pill--active .intel-policy-pill__text strong {
  color: var(--ui-text-primary);
}

@media (max-width: 1180px) {
  .intelligence-page--settings .intel-settings-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 720px) {
  .intelligence-page--settings .intel-control-card,
  .intelligence-page--settings .intel-settings-overview {
    padding: var(--ui-space-4);
  }
  .intelligence-page--settings .intel-section-header__title-row,
  .intelligence-page--settings .intel-card__header,
  .intelligence-page--settings .intel-lead-policy {
    align-items: flex-start;
    flex-direction: column;
  }
  .intelligence-page--settings .intel-modes {
    grid-template-columns: 1fr;
  }
  .intelligence-page--settings .intel-slider-row {
    align-items: stretch;
    flex-direction: column;
    gap: var(--ui-space-2);
  }
  .intelligence-page--settings .intel-slider-value {
    min-width: 0;
    text-align: left;
  }
}
/* ==========================================================================
   3. KNOWLEDGE BASE - INDEX + DETAIL EDITOR
   ========================================================================== */
.intelligence-page--knowledge .intel-knowledge-shell {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  min-width: 0;
}

.intelligence-page--knowledge .intel-knowledge-tabs {
  width: 100%;
}

.intelligence-page--knowledge .intel-knowledge-tabs-row {
  justify-content: flex-start;
}

.intelligence-page--knowledge .stat-card--compact {
  justify-content: center;
  min-height: 76px;
}

.intelligence-page--knowledge .stat-card--compact .stat-card__header {
  justify-content: space-between;
  gap: var(--ui-space-4);
  width: 100%;
}

.intelligence-page--knowledge .stat-card--compact .stat-card__label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.intelligence-page--knowledge .stat-card--compact .stat-card__value {
  flex: 0 0 auto;
  min-width: 72px;
  padding: var(--ui-space-2) var(--ui-space-4);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
  font-size: var(--ui-text-base);
  line-height: 1;
  text-align: center;
}

.intelligence-page--knowledge .intel-knowledge-workspace {
  display: grid;
  grid-template-columns: minmax(280px, 0.9fr) minmax(0, 1.6fr);
  gap: var(--ui-space-4);
  align-items: start;
  min-width: 0;
}

.intelligence-page--knowledge .intel-knowledge-index,
.intelligence-page--knowledge .intel-knowledge-editor {
  min-width: 0;
}

.intelligence-page--knowledge .intel-knowledge-panel,
.intelligence-page--knowledge .intel-editor-card {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  padding: var(--ui-space-5);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
}

.intelligence-page--knowledge .intel-knowledge-panel {
  position: sticky;
  top: var(--ui-space-4);
}

.intelligence-page--knowledge .intel-knowledge-toolbar {
  display: flex;
  align-items: end;
  gap: var(--ui-space-3);
}

.intelligence-page--knowledge .intel-field--search {
  flex: 1 1 auto;
  min-width: 0;
}

.intelligence-page--knowledge .intel-knowledge-list {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  max-height: 560px;
  overflow-y: auto;
  padding-right: var(--ui-space-1);
}

.intelligence-page--knowledge .intel-knowledge-list--compact {
  max-height: none;
  overflow: visible;
  padding-right: 0;
}

.intelligence-page--knowledge .intel-knowledge-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--ui-space-1) var(--ui-space-3);
  width: 100%;
  min-width: 0;
  padding: var(--ui-space-3);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface-2);
  color: var(--ui-text-secondary);
  cursor: pointer;
  font-family: var(--ui-font-primary);
  text-align: left;
  transition: var(--ui-transition-fast);
}

.intelligence-page--knowledge .intel-knowledge-row:hover,
.intelligence-page--knowledge .intel-knowledge-row--active {
  border-color: var(--ui-brand);
  background: rgba(255, 120, 79, 0.08);
}

.intelligence-page--knowledge .intel-knowledge-row strong,
.intelligence-page--knowledge .intel-knowledge-row span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.intelligence-page--knowledge .intel-knowledge-row strong {
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
}

.intelligence-page--knowledge .intel-knowledge-row span {
  grid-column: 1/-1;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  line-height: 1.4;
}

.intelligence-page--knowledge .intel-knowledge-row em {
  align-self: start;
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  font-style: normal;
  padding: var(--ui-space-1) var(--ui-space-2);
  white-space: nowrap;
}

.intelligence-page--knowledge .intel-knowledge-row em.is-published {
  background: rgba(52, 211, 153, 0.12);
  color: var(--ui-success);
}

.intelligence-page--knowledge .intel-knowledge-row em.is-draft {
  background: var(--ui-surface-3);
  color: var(--ui-text-muted);
}

.intelligence-page--knowledge .intel-textarea {
  width: 100%;
  min-height: 92px;
  padding: var(--ui-space-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface-2);
  color: var(--ui-text-primary);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
  line-height: 1.5;
  outline: none;
  resize: vertical;
}

.intelligence-page--knowledge .intel-textarea:focus {
  border-color: var(--ui-border-focus);
}

.intelligence-page--knowledge .intel-catalog-preview {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  padding: var(--ui-space-4);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface-2);
}

.intelligence-page--knowledge .intel-catalog-preview span {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.intelligence-page--knowledge .intel-catalog-preview p {
  margin: 0;
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  line-height: 1.5;
}

.intelligence-page--knowledge .intel-catalog-preview em {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-style: normal;
}

.intelligence-page--knowledge .intel-editor-actions {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
  padding-top: var(--ui-space-2);
}

.intelligence-page--knowledge .intel-btn {
  min-height: 36px;
  padding: 0 var(--ui-space-4);
  border: 1px solid transparent;
  border-radius: var(--ui-radius-sm);
  cursor: pointer;
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  transition: var(--ui-transition-fast);
}

.intelligence-page--knowledge .intel-btn[disabled] {
  cursor: default;
  opacity: 0.5;
}

.intelligence-page--knowledge .intel-btn--primary {
  background: var(--ui-brand);
  color: var(--ui-surface-base);
}

.intelligence-page--knowledge .intel-btn--ghost {
  border-color: var(--ui-border);
  background: transparent;
  color: var(--ui-text-secondary);
}

.intelligence-page--knowledge .intel-empty-copy,
.intelligence-page--knowledge .intel-empty-state p {
  margin: 0;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  line-height: 1.5;
}

.intelligence-page--knowledge .intel-empty-state {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 280px;
  padding: var(--ui-space-5);
  border: 1px dashed var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
}

.intelligence-page--knowledge .intel-empty-state h3 {
  margin: 0 0 var(--ui-space-2);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
}

@media (max-width: 1180px) {
  .intelligence-page--knowledge .intel-knowledge-workspace {
    grid-template-columns: 1fr;
  }
  .intelligence-page--knowledge .intel-knowledge-panel {
    position: static;
  }
}
@media (max-width: 760px) {
  .intelligence-page--knowledge .intel-knowledge-toolbar,
  .intelligence-page--knowledge .intel-section-header__title-row {
    align-items: stretch;
    flex-direction: column;
  }
  .intelligence-page--knowledge .intel-editor-actions {
    justify-content: stretch;
  }
  .intelligence-page--knowledge .intel-btn {
    width: 100%;
  }
}
/* Save toast */
.intelligence-page .intel-toast {
  position: fixed;
  bottom: var(--ui-space-6);
  right: var(--ui-space-6);
  padding: var(--ui-space-3) var(--ui-space-5);
  background: var(--ui-success);
  color: var(--ui-surface-base);
  border-radius: var(--ui-radius-sm);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  z-index: var(--z-toast);
  animation: intel-toast-in 0.3s ease;
}

.intelligence-page .intel-toast--error {
  background: var(--ui-danger);
}

@keyframes intel-toast-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* ==========================================================================
   4. LOGS TABLE — FILTER BAR + EXPANSION
   ========================================================================== */
.intelligence-page .intel-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-3);
  align-items: center;
  padding: var(--ui-space-4) 0 var(--ui-space-3);
}

.intelligence-page .intel-filter-bar select {
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-sm);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-2);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  font-family: var(--ui-font-primary);
  outline: none;
  transition: var(--ui-transition-fast);
}

.intelligence-page .intel-filter-bar select:focus {
  border-color: var(--ui-border-focus);
}

.intelligence-page .intel-filter-bar input[type=date] {
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-sm);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-2);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  font-family: var(--ui-font-primary);
}

/* Confidence bar (inline in table cells) */
.intelligence-page .intel-confidence {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.intelligence-page .intel-confidence__bar {
  width: 48px;
  height: 6px;
  background: var(--ui-surface-3);
  border-radius: 3px;
  overflow: hidden;
}

.intelligence-page .intel-confidence__fill {
  height: 100%;
  border-radius: 3px;
  transition: width var(--ui-transition-base);
}

.intelligence-page .intel-confidence__fill--high {
  background: var(--ui-success);
}

.intelligence-page .intel-confidence__fill--medium {
  background: var(--ui-warning);
}

.intelligence-page .intel-confidence__fill--low {
  background: var(--ui-danger);
}

.intelligence-page .intel-confidence__label {
  font-size: var(--ui-text-xs);
  font-family: var(--ui-font-mono);
  color: var(--ui-text-muted);
  min-width: 32px;
}

/* Expand row */
.intelligence-page .intel-expand-row td {
  padding: 0;
  border: none;
}

.intelligence-page .intel-expand-detail {
  padding: var(--ui-space-3) var(--ui-space-6);
  background: var(--ui-surface-1);
  border-top: 1px solid var(--ui-border-light);
}

.intelligence-page .intel-expand-detail pre {
  margin: var(--ui-space-2) 0 0;
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  white-space: pre-wrap;
  word-break: break-all;
  max-height: 200px;
  overflow-y: auto;
}

/* Channel / intent / action pills for table cells */
.intelligence-page .intel-pill {
  display: inline-flex;
  align-items: center;
  padding: 2px var(--ui-space-2);
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  white-space: nowrap;
}

.intelligence-page .intel-pill--whatsapp {
  background: var(--ui-success-bg);
  color: var(--ui-success);
}

.intelligence-page .intel-pill--crm {
  background: var(--ui-info-bg);
  color: var(--ui-info);
}

.intelligence-page .intel-pill--voice {
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
}

/* Pagination */
.intelligence-page .intel-pagination {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--ui-space-4) 0 var(--ui-space-2);
}

.intelligence-page .intel-pagination__info {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.intelligence-page .intel-pagination__actions {
  display: flex;
  gap: var(--ui-space-2);
}

.intelligence-page .intel-pagination__actions button {
  padding: var(--ui-space-2) var(--ui-space-4);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface-2);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  font-family: var(--ui-font-primary);
  cursor: pointer;
  transition: var(--ui-transition-fast);
}

.intelligence-page .intel-pagination__actions button:hover:not(:disabled) {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
}

.intelligence-page .intel-pagination__actions button:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* ==========================================================================
   4. STATS — SECONDARY METRICS + CHART
   ========================================================================== */
.intelligence-page .intel-secondary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: var(--ui-space-4);
  margin-bottom: var(--ui-space-6);
}

.intelligence-page .intel-secondary-stat {
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
}

.intelligence-page .intel-secondary-stat__value {
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  font-family: var(--ui-font-mono);
}

.intelligence-page .intel-secondary-stat__label {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  margin-top: var(--ui-space-1);
}

/* Channel breakdown pills */
.intelligence-page .intel-channel-breakdown {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
  margin-top: var(--ui-space-4);
}

/* CSS bar chart */
.intelligence-page .intel-chart-section {
  margin-top: var(--ui-space-6);
}

.intelligence-page .intel-chart-section__title {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
  margin-bottom: var(--ui-space-4);
}

.intelligence-page .intel-chart-bars {
  display: flex;
  align-items: flex-end;
  gap: var(--ui-space-1);
  height: 120px;
  padding: 0 var(--ui-space-2);
}

.intelligence-page .intel-chart-bar {
  flex: 1;
  min-width: 0;
  background: linear-gradient(to top, var(--ui-brand), var(--ui-brand-light));
  border-radius: var(--ui-radius-sm) var(--ui-radius-sm) 0 0;
  transition: height var(--ui-transition-slow);
  position: relative;
}

.intelligence-page .intel-chart-bar:hover {
  opacity: 0.85;
}

/* Period switcher */
.intelligence-page .intel-period-switch {
  display: flex;
  gap: var(--ui-space-2);
}

.intelligence-page .intel-period-btn {
  padding: var(--ui-space-1) var(--ui-space-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  background: transparent;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-family: var(--ui-font-primary);
  cursor: pointer;
  transition: var(--ui-transition-fast);
}

.intelligence-page .intel-period-btn--active {
  background: var(--ui-brand);
  border-color: var(--ui-brand);
  color: var(--ui-surface-base);
}

/* ==========================================================================
   5. AI BADGE — REUSABLE INLINE INDICATOR
   ========================================================================== */
.ai-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  padding: 2px var(--ui-space-3);
  border-radius: var(--ui-radius-sm);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  font-family: var(--ui-font-primary);
  background: rgba(255, 120, 79, 0.1);
  color: var(--ui-brand-light);
  border: 1px solid rgba(255, 120, 79, 0.25);
  cursor: pointer;
  transition: var(--ui-transition-fast);
  white-space: nowrap;
}

.ai-badge:hover {
  background: rgba(255, 120, 79, 0.18);
  transform: translateY(-1px);
}

.ai-badge__icon {
  font-size: var(--ui-text-sm);
}

.ai-badge__confidence {
  color: var(--ui-brand);
  font-family: var(--ui-font-mono);
}

/* ==========================================================================
   6. CONVERSATIONS — SPLIT-PANE CHAT VIEWER
   ========================================================================== */
.intelligence-page .intel-conversations {
  display: grid;
  grid-template-columns: 340px 1fr;
  gap: 0;
  height: calc(100vh - 200px);
  min-height: 500px;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-lg);
  overflow: hidden;
  /* Lifted off page — surface-2 matches glass-card level, not pure base */
  background: var(--ui-surface-2);
}

/* ── Session List (Left Panel) ── */
.intelligence-page .intel-session-list {
  border-right: 1px solid var(--ui-border);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  /* Distinct sidebar surface — one step above the pane background */
  background: var(--ui-surface-1);
}

.intelligence-page .intel-session-search {
  padding: var(--ui-space-3);
  border-bottom: 1px solid var(--ui-border-light);
}

.intelligence-page .intel-session-search input {
  width: 100%;
  padding: var(--ui-space-2) var(--ui-space-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface-2);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  font-family: var(--ui-font-primary);
  outline: none;
  transition: var(--ui-transition-fast);
}

.intelligence-page .intel-session-search input:focus {
  border-color: var(--ui-border-focus);
}

.intelligence-page .intel-session-filters {
  display: flex;
  gap: var(--ui-space-1);
  padding: var(--ui-space-2) var(--ui-space-3);
  border-bottom: 1px solid var(--ui-border-light);
  overflow-x: auto;
}

.intelligence-page .intel-session-filter-btn {
  padding: var(--ui-space-1) var(--ui-space-2);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  background: transparent;
  color: var(--ui-text-muted);
  font-size: 11px;
  font-family: var(--ui-font-primary);
  cursor: pointer;
  transition: var(--ui-transition-fast);
  white-space: nowrap;
}

.intelligence-page .intel-session-filter-btn--active {
  background: var(--ui-brand);
  border-color: var(--ui-brand);
  color: var(--ui-surface-base);
}

.intelligence-page .intel-session-scroll {
  flex: 1;
  overflow-y: auto;
}

.intelligence-page .intel-session-item {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
  border-bottom: 1px solid var(--ui-border-light);
  cursor: pointer;
  transition: var(--ui-transition-fast);
  /* Default card surface — readable against sidebar background */
  background: transparent;
}

.intelligence-page .intel-session-item:hover {
  background: var(--ui-surface-hover);
}

.intelligence-page .intel-session-item--active {
  background: var(--ui-surface-active);
  border-left: 3px solid var(--ui-brand);
}

.intelligence-page .intel-session-status {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 5px;
}

.intelligence-page .intel-session-status--completed {
  background: var(--ui-success);
}

.intelligence-page .intel-session-status--active {
  background: var(--ui-warning);
}

.intelligence-page .intel-session-status--handoff {
  background: var(--ui-danger);
}

.intelligence-page .intel-session-status--expired {
  background: var(--ui-text-muted);
}

.intelligence-page .intel-session-info {
  flex: 1;
  min-width: 0;
}

.intelligence-page .intel-session-info__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.intelligence-page .intel-session-info__phone {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.intelligence-page .intel-session-info__time {
  font-size: 11px;
  color: var(--ui-text-muted);
  font-family: var(--ui-font-mono);
  flex-shrink: 0;
}

.intelligence-page .intel-session-info__preview {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.intelligence-page .intel-session-info__tags {
  display: flex;
  gap: var(--ui-space-1);
  margin-top: var(--ui-space-1);
}

/* ── Chat Thread (Right Panel) ── */
.intelligence-page .intel-chat-panel {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.intelligence-page .intel-chat-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--ui-space-3) var(--ui-space-5);
  border-bottom: 1px solid var(--ui-border);
  background: var(--ui-surface-1);
}

.intelligence-page .intel-chat-header__info h3 {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  margin: 0;
}

.intelligence-page .intel-chat-header__info span {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.intelligence-page .intel-chat-thread {
  flex: 1;
  overflow-y: auto;
  padding: var(--ui-space-4) var(--ui-space-5);
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.intelligence-page .intel-chat-empty {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}

/* Chat bubbles */
.intelligence-page .intel-bubble {
  max-width: 75%;
  padding: var(--ui-space-3) var(--ui-space-4);
  border-radius: var(--ui-radius-md);
  font-size: var(--ui-text-sm);
  line-height: 1.5;
  position: relative;
}

.intelligence-page .intel-bubble--user {
  align-self: flex-end;
  background: var(--ui-surface-3);
  color: var(--ui-text-primary);
  border-bottom-right-radius: 4px;
}

.intelligence-page .intel-bubble--assistant {
  align-self: flex-start;
  background: rgba(255, 120, 79, 0.1);
  color: var(--ui-text-primary);
  border-bottom-left-radius: 4px;
}

.intelligence-page .intel-bubble__role {
  font-size: 11px;
  font-weight: var(--ui-font-semibold);
  margin-bottom: var(--ui-space-1);
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
}

.intelligence-page .intel-bubble--user .intel-bubble__role {
  color: var(--ui-text-muted);
}

.intelligence-page .intel-bubble--assistant .intel-bubble__role {
  color: var(--ui-brand-light);
}

.intelligence-page .intel-bubble__time {
  font-size: 10px;
  color: var(--ui-text-muted);
  margin-top: var(--ui-space-1);
  font-family: var(--ui-font-mono);
}

/* Action cards inside chat thread */
.intelligence-page .intel-action-card {
  align-self: center;
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-4);
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  border: 1px solid;
}

.intelligence-page .intel-action-card--success {
  background: var(--ui-success-bg);
  color: var(--ui-success);
  border-color: rgba(34, 197, 94, 0.2);
}

.intelligence-page .intel-action-card--warning {
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
  border-color: rgba(234, 179, 8, 0.2);
}

.intelligence-page .intel-action-card--danger {
  background: var(--ui-danger-bg, rgba(239, 68, 68, 0.1));
  color: var(--ui-danger);
  border-color: rgba(239, 68, 68, 0.2);
}

.intelligence-page .intel-action-card--observe {
  background: rgba(99, 102, 241, 0.08);
  color: #a5b4fc;
  border-color: rgba(99, 102, 241, 0.2);
}

/* ── Context Panel (Bottom of chat) ── */
.intelligence-page .intel-context-panel {
  padding: var(--ui-space-4) var(--ui-space-5);
  border-top: 1px solid var(--ui-border);
  background: var(--ui-surface-1);
}

.intelligence-page .intel-context-panel__title {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: var(--ui-space-3);
}

.intelligence-page .intel-context-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: var(--ui-space-2) var(--ui-space-4);
}

.intelligence-page .intel-context-item {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-sm);
}

.intelligence-page .intel-context-item__icon {
  font-size: var(--ui-text-base);
  flex-shrink: 0;
}

.intelligence-page .intel-context-item__label {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
}

.intelligence-page .intel-context-item__value {
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-medium);
  font-size: var(--ui-text-sm);
}

/* Ownership badge */
.intelligence-page .intel-ownership {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-4);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface-2);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-secondary);
  margin-top: var(--ui-space-3);
}

.intelligence-page .intel-ownership__arrow {
  color: var(--ui-text-muted);
}

/* ==========================================================================
   7. OBSERVE MODE BANNER
   ========================================================================== */
.intelligence-page .intel-observe-banner {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-5);
  background: rgba(234, 179, 8, 0.08);
  border: 1px solid rgba(234, 179, 8, 0.2);
  border-radius: var(--ui-radius-md);
  margin-bottom: var(--ui-space-4);
  font-size: var(--ui-text-sm);
  color: var(--ui-warning);
  font-weight: var(--ui-font-medium);
}

.intelligence-page .intel-observe-banner__icon {
  font-size: var(--ui-text-lg);
}

/* ==========================================================================
   8. QUICK-FILTER PILLS (Logs)
   ========================================================================== */
.intelligence-page .intel-quick-filters {
  display: flex;
  gap: var(--ui-space-2);
  padding-bottom: var(--ui-space-3);
}

.intelligence-page .intel-quick-filter {
  padding: var(--ui-space-1) var(--ui-space-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-full);
  background: transparent;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-family: var(--ui-font-primary);
  cursor: pointer;
  transition: var(--ui-transition-fast);
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
}

.intelligence-page .intel-quick-filter--active {
  background: var(--ui-brand);
  border-color: var(--ui-brand);
  color: var(--ui-surface-base);
}

.intelligence-page .intel-quick-filter:hover:not(.intel-quick-filter--active) {
  border-color: var(--ui-border-hover);
  color: var(--ui-text-secondary);
}

/* ==========================================================================
   9. ISSUES TABLE (Stats page)
   ========================================================================== */
.intelligence-page .intel-issues-section {
  margin-top: var(--ui-space-6);
}

.intelligence-page .intel-issues-section__title {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
  margin-bottom: var(--ui-space-3);
}

.intelligence-page .intel-empty-hint {
  padding: 12px 16px;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  line-height: 1.5;
  margin: 0;
}

.intelligence-page .intel-issue-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--ui-space-2) var(--ui-space-4);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface-1);
  margin-bottom: var(--ui-space-2);
  font-size: var(--ui-text-sm);
}

.intelligence-page .intel-issue-row__label {
  color: var(--ui-text-secondary);
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.intelligence-page .intel-issue-row__count {
  font-weight: var(--ui-font-bold);
  font-family: var(--ui-font-mono);
  color: var(--ui-text-primary);
}

.intelligence-page .intel-suggestion {
  padding: var(--ui-space-3) var(--ui-space-4);
  border-radius: var(--ui-radius-md);
  background: rgba(99, 102, 241, 0.06);
  border: 1px solid rgba(99, 102, 241, 0.15);
  margin-top: var(--ui-space-3);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  line-height: 1.5;
}

.intelligence-page .intel-suggestion__icon {
  margin-right: var(--ui-space-2);
}

/* ==========================================================================
   10. EXPLAINABILITY CARD (Conversations)
   ========================================================================== */
.intelligence-page .intel-explain-card {
  align-self: center;
  max-width: 85%;
  padding: var(--ui-space-3) var(--ui-space-4);
  border-radius: var(--ui-radius-md);
  background: rgba(99, 102, 241, 0.06);
  border: 1px solid rgba(99, 102, 241, 0.15);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-secondary);
  line-height: 1.6;
}

.intelligence-page .intel-explain-card__title {
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  margin-bottom: var(--ui-space-2);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.intelligence-page .intel-explain-card__items {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-1) var(--ui-space-4);
}

.intelligence-page .intel-explain-card__item {
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
}

.intelligence-page .intel-explain-card__item-label {
  color: var(--ui-text-muted);
}

.intelligence-page .intel-explain-card__item-value {
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-primary);
}

/* ==========================================================================
   11. ERROR INLINE (Conversations)
   ========================================================================== */
.intelligence-page .intel-error-inline {
  align-self: center;
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-4);
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  background: var(--ui-danger-bg, rgba(239, 68, 68, 0.1));
  color: var(--ui-danger);
  border: 1px solid rgba(239, 68, 68, 0.2);
}

/* ==========================================================================
   12. THREAD PREVIEW (Log expand panel)
   ========================================================================== */
.intelligence-page .intel-thread-preview {
  margin-top: var(--ui-space-3);
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border-light);
  max-height: 200px;
  overflow-y: auto;
}

.intelligence-page .intel-thread-preview__title {
  font-size: 11px;
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: var(--ui-space-2);
}

.intelligence-page .intel-thread-msg {
  display: flex;
  gap: var(--ui-space-2);
  margin-bottom: var(--ui-space-1);
  font-size: var(--ui-text-xs);
  line-height: 1.5;
}

.intelligence-page .intel-thread-msg__role {
  flex-shrink: 0;
  font-weight: var(--ui-font-semibold);
  min-width: 28px;
}

.intelligence-page .intel-thread-msg__role--user {
  color: var(--ui-text-muted);
}

.intelligence-page .intel-thread-msg__role--ai {
  color: var(--ui-brand-light);
}

.intelligence-page .intel-thread-msg__content {
  color: var(--ui-text-secondary);
  word-break: break-word;
}

/* ==========================================================================
   13. LOADING SKELETON (Chat panel)
   ========================================================================== */
.intelligence-page .intel-loading-skeleton {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  padding: var(--ui-space-5);
}

.intelligence-page .intel-skeleton-bubble {
  border-radius: var(--ui-radius-md);
  background: linear-gradient(90deg, var(--ui-surface-2) 25%, var(--ui-surface-3) 50%, var(--ui-surface-2) 75%);
  background-size: 200% 100%;
  animation: intel-shimmer 1.5s ease infinite;
  height: 48px;
}

.intelligence-page .intel-skeleton-bubble--user {
  align-self: flex-end;
  width: 65%;
}

.intelligence-page .intel-skeleton-bubble--ai {
  align-self: flex-start;
  width: 70%;
}

@keyframes intel-shimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
/* ==========================================================================
   14. VIEW LINK (Bidirectional navigation)
   ========================================================================== */
.intelligence-page .intel-view-link {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  color: var(--ui-brand-light);
  cursor: pointer;
  transition: var(--ui-transition-fast);
  border: none;
  background: none;
  padding: var(--ui-space-1) 0;
  font-family: var(--ui-font-primary);
}

.intelligence-page .intel-view-link:hover {
  color: var(--ui-brand);
  text-decoration: underline;
}

/* ==========================================================================
   15. EXPAND DETAIL GRID (Structured log expand)
   ========================================================================== */
.intelligence-page .intel-expand-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: var(--ui-space-2) var(--ui-space-4);
  margin-bottom: var(--ui-space-3);
}

.intelligence-page .intel-expand-field {
  font-size: var(--ui-text-xs);
}

.intelligence-page .intel-expand-field__label {
  color: var(--ui-text-muted);
  margin-bottom: 2px;
}

.intelligence-page .intel-expand-field__value {
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-primary);
}

.intelligence-page .intel-expand-field__value--success {
  color: var(--ui-success);
}

.intelligence-page .intel-expand-field__value--danger {
  color: var(--ui-danger);
}

.intelligence-page .intel-expand-field__value--warning {
  color: var(--ui-warning);
}

.intelligence-page .intel-expand-field__value--mono {
  font-family: var(--ui-font-mono);
}

/* ==========================================================================
   CREDIT PROGRESS BAR — AI Usage Page
   ========================================================================== */
.intelligence-page .credit-progress {
  width: 100%;
  height: 6px;
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-3);
  margin-top: var(--ui-space-3);
  overflow: hidden;
}

.intelligence-page .credit-progress__fill {
  height: 100%;
  border-radius: var(--ui-radius-full);
  transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1), background 0.3s ease;
  min-width: 2px; /* Always show a sliver even at 0% */
}

.intelligence-page .credit-progress__fill--healthy {
  background: var(--ui-success);
}

.intelligence-page .credit-progress__fill--warning {
  background: var(--ui-warning);
}

.intelligence-page .credit-progress__fill--danger {
  background: var(--ui-danger);
}

/* ── "/ limit" suffix in Credits Used KPI ──────────────────── */
.intelligence-page .stat-card__of {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-normal);
  color: var(--ui-text-muted);
  margin-left: 2px;
}

/* ==========================================================================
   PERFORMANCE STATS PAGE — SCOPED PAGE CONTRACT
   ==========================================================================
   Scoped layout and page-only polish for /console/managementp/performance-stats.
   Reuses existing page, header, panel, chart, and table contracts.
   ALL values reference design tokens from tokens.scss.

   ENTERPRISE UPGRADE:
     - GROUP MODE → Strategy layout (branches, comparison, contribution)
     - BRANCH MODE → Execution layout (people, trend, category, leaderboard)
   ========================================================================== */
.ui-page--performance-stats .ui-page__content {
  max-width: 1480px;
}

.performance-stats-page {
  position: relative;
}

.performance-stats-page__header {
  margin-bottom: 0;
}

.performance-stats-page__header-top {
  align-items: stretch;
  gap: var(--ui-space-5);
}

.performance-stats-page__header-top .header-left {
  flex: 0 1 360px;
  min-width: 280px;
}

.performance-stats-page__header-top .header-right {
  flex: 1 1 720px;
}

.performance-stats-page__header-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: var(--ui-space-3);
  align-items: stretch;
}

.performance-stats-page__header-kpi {
  min-width: 0;
  min-height: 152px;
  justify-content: flex-start;
  border-color: rgba(255, 255, 255, 0.08);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.02)), linear-gradient(145deg, rgba(70, 46, 30, 0.22), rgba(18, 16, 15, 0.08));
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.26);
}

.performance-stats-page__header-kpi .stat-card__header {
  align-items: center;
  gap: var(--ui-space-2);
}

.performance-stats-page__header-kpi .stat-card__label {
  color: rgba(255, 245, 236, 0.84);
}

.performance-stats-page__header-kpi .stat-card__icon {
  color: rgba(255, 192, 149, 0.86);
}

.performance-stats-page__header-kpi .stat-card__value {
  margin-top: auto;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: rgba(255, 243, 235, 0.96);
}

.performance-stats-page__header-kpi .stat-card__trend {
  margin-top: var(--ui-space-2);
  color: rgba(255, 208, 188, 0.76);
}

.performance-stats-page__header-kpi.stat-card--success {
  border-color: rgba(153, 177, 126, 0.26);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02)), linear-gradient(145deg, rgba(73, 92, 56, 0.28), rgba(36, 32, 26, 0.12));
}

.performance-stats-page__header-kpi.stat-card--success .stat-card__icon {
  color: rgba(193, 222, 166, 0.92);
}

.performance-stats-page__header-kpi .stat-card__value--success {
  background: rgba(112, 142, 92, 0.18);
  border-color: rgba(153, 177, 126, 0.34);
  color: rgba(231, 245, 216, 0.96);
}

.performance-stats-page__header-kpi.stat-card--danger {
  border-color: rgba(196, 118, 101, 0.26);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02)), linear-gradient(145deg, rgba(113, 54, 46, 0.28), rgba(34, 27, 23, 0.12));
}

.performance-stats-page__header-kpi.stat-card--danger .stat-card__icon {
  color: rgba(244, 154, 137, 0.92);
}

.performance-stats-page__header-kpi .stat-card__value--danger {
  background: rgba(142, 67, 60, 0.2);
  border-color: rgba(196, 118, 101, 0.34);
  color: rgba(255, 219, 211, 0.96);
}

.performance-stats-page__header-kpi.stat-card--warning {
  border-color: rgba(204, 156, 104, 0.26);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02)), linear-gradient(145deg, rgba(112, 78, 48, 0.28), rgba(35, 28, 24, 0.12));
}

.performance-stats-page__header-kpi.stat-card--warning .stat-card__icon {
  color: rgba(255, 207, 149, 0.94);
}

.performance-stats-page__header-kpi .stat-card__value--warning {
  background: rgba(155, 109, 63, 0.2);
  border-color: rgba(204, 156, 104, 0.36);
  color: rgba(255, 231, 198, 0.98);
}

/* ── Global Role Filter ── */
.performance-stats-page__filter-row {
  justify-content: flex-start;
  align-items: center;
  gap: var(--ui-space-3);
  flex-wrap: wrap;
}

.performance-stats-page__context-pills,
.performance-stats-page__control-group {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.performance-stats-page__control-group {
  margin-left: auto;
}

.ui-page--performance-stats .erp-filter-bar .filter-row > .performance-stats-page__context-pills {
  margin-left: 0;
  padding-left: 0;
}

.ui-page--performance-stats .erp-filter-bar .filter-row > .performance-stats-page__control-group {
  margin-left: auto;
}

.performance-stats-page__insights-toggle {
  border-color: rgba(204, 156, 104, 0.28);
  color: rgba(255, 212, 167, 0.92);
}

.performance-stats-page__insights-toggle mat-icon {
  color: rgba(255, 193, 120, 0.92);
}

.performance-stats-page__insights-toggle.active {
  background: rgba(155, 109, 63, 0.18);
  border-color: rgba(204, 156, 104, 0.42);
  color: rgba(255, 228, 194, 0.98);
}

.performance-stats-page__role-filter {
  display: flex;
  gap: var(--ui-space-1);
}

/* ── Workshop Sub-Role Filter row ── */
.performance-stats-page__subrole-filter-row {
  padding-top: var(--ui-space-2);
  border-top: 1px solid var(--ui-border-light);
}

.performance-stats-page__subrole-filter {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-1);
}

/* Smaller pill variant for sub-role buttons */
.pill-filter-btn--sm {
  padding: 4px var(--ui-space-3);
  font-size: var(--ui-text-xs);
  height: auto;
  min-height: 28px;
}

.performance-stats-page__header .header-right {
  justify-content: flex-end;
}

.performance-stats-page__summary-pill {
  cursor: default;
  background: var(--ui-surface-1);
}

.performance-stats-page__summary-pill:hover {
  background: var(--ui-surface-1);
  border-color: var(--ui-border-hover);
}

.performance-stats-page__summary-pill .pill-start-icon {
  color: rgba(255, 176, 131, 0.9);
}

/* ── Insight strip ── */
.performance-stats-page__insights {
  gap: var(--ui-space-3);
}

.performance-stats-page__insight-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-2);
}

.performance-stats-page__insight-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  min-height: 0;
  padding: var(--ui-space-3) var(--ui-space-4);
  overflow: hidden;
  border-color: rgba(255, 255, 255, 0.08);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.018)), linear-gradient(145deg, rgba(64, 44, 30, 0.22), rgba(15, 14, 13, 0.1));
}

.performance-stats-page__insight-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: rgba(255, 188, 144, 0.5);
}

.performance-stats-page__insight-card--success::before {
  background: rgba(153, 177, 126, 0.62);
}

.performance-stats-page__insight-card--warning::before {
  background: rgba(224, 172, 113, 0.72);
}

.performance-stats-page__insight-card--danger::before {
  background: rgba(223, 129, 114, 0.82);
}

.performance-stats-page__insight-card--info::before {
  background: rgba(255, 188, 144, 0.58);
}

.performance-stats-page__insight-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-2);
}

.performance-stats-page__insight-chip {
  background: rgba(255, 255, 255, 0.04);
  height: 28px;
  padding: 0 var(--ui-space-2);
  font-size: 11px;
  letter-spacing: 0.04em;
}

.performance-stats-page__insight-chip .status-icon {
  width: 12px;
  height: 12px;
  font-size: 12px;
}

.performance-stats-page__insight-copy {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  min-width: 0;
}

.performance-stats-page__insight-text {
  margin: 0;
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-medium);
  line-height: 1.32;
  color: rgba(255, 242, 235, 0.94);
}

.performance-stats-page__insight-action {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin: 0;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  color: rgba(255, 208, 182, 0.82);
}

.performance-stats-page__insight-action mat-icon {
  width: 14px;
  height: 14px;
  font-size: 14px;
  color: inherit;
}

.performance-stats-page__insight-card--danger .performance-stats-page__insight-text {
  color: rgba(255, 219, 214, 0.96);
}

.performance-stats-page__insight-card--danger .performance-stats-page__insight-action {
  color: rgba(243, 175, 164, 0.88);
}

.performance-stats-page__insight-card--success .performance-stats-page__insight-action {
  color: rgba(199, 226, 179, 0.86);
}

.performance-stats-page__insight-card--warning .performance-stats-page__insight-action {
  color: rgba(248, 210, 167, 0.88);
}

/* ==========================================================================
   GROUP MODE — Critical Alerts
   ========================================================================== */
.performance-stats-page__group-alerts {
  margin-top: var(--ui-space-3);
}

.performance-stats-page__alerts-header {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin-bottom: var(--ui-space-3);
}

.performance-stats-page__alerts-icon {
  color: rgba(244, 154, 137, 0.92);
  font-size: 20px;
  width: 20px;
  height: 20px;
}

.performance-stats-page__alerts-title {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: rgba(255, 219, 211, 0.96);
  margin: 0;
}

.performance-stats-page__alerts-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: var(--ui-radius-full);
  background: rgba(196, 82, 68, 0.28);
  border: 1px solid rgba(223, 129, 114, 0.4);
  color: rgba(255, 195, 182, 0.95);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
}

.performance-stats-page__alerts-list {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.performance-stats-page__alert-item {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
  border-radius: var(--ui-radius-lg);
  border: 1px solid rgba(223, 129, 114, 0.25);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.028), rgba(255, 255, 255, 0.01)), linear-gradient(145deg, rgba(113, 54, 46, 0.18), rgba(34, 27, 23, 0.06));
  position: relative;
  overflow: hidden;
}

.performance-stats-page__alert-item::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: rgba(223, 129, 114, 0.82);
}

.performance-stats-page__alert-item--warning {
  border-color: rgba(224, 172, 113, 0.25);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.028), rgba(255, 255, 255, 0.01)), linear-gradient(145deg, rgba(112, 78, 48, 0.18), rgba(35, 28, 24, 0.06));
}

.performance-stats-page__alert-item--warning::before {
  background: rgba(224, 172, 113, 0.72);
}

.performance-stats-page__alert-left {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-3);
  flex: 1;
}

.performance-stats-page__alert-icon {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  font-size: 18px;
  color: rgba(244, 154, 137, 0.92);
  margin-top: 1px;
}

.performance-stats-page__alert-item--warning .performance-stats-page__alert-icon {
  color: rgba(255, 207, 149, 0.94);
}

.performance-stats-page__alert-body {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.performance-stats-page__alert-text {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: rgba(255, 232, 222, 0.94);
  line-height: 1.4;
}

.performance-stats-page__alert-action {
  font-size: var(--ui-text-xs);
  color: rgba(243, 175, 164, 0.72);
}

.performance-stats-page__alert-item--warning .performance-stats-page__alert-text {
  color: rgba(255, 234, 210, 0.94);
}

.performance-stats-page__alert-item--warning .performance-stats-page__alert-action {
  color: rgba(248, 210, 167, 0.72);
}

/* ==========================================================================
   GROUP MODE — Branch Comparison Table
   ========================================================================== */
.performance-stats-page__branch-section {
  overflow: hidden;
}

.performance-stats-page__branch-skeleton {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  padding: var(--ui-space-4) var(--ui-space-5);
}

.performance-stats-page__branch-table {
  width: 100%;
}

.performance-stats-page__branch-rank {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: var(--ui-radius-full);
  background: rgba(255, 176, 131, 0.1);
  color: rgba(255, 176, 131, 0.85);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
}

.performance-stats-page__branch-rank--top {
  background: rgba(74, 222, 128, 0.15);
  color: rgba(74, 222, 128, 0.9);
  box-shadow: 0 0 8px rgba(74, 222, 128, 0.15);
}

.performance-stats-page__branch-rank--weak {
  background: rgba(248, 113, 113, 0.15);
  color: rgba(248, 113, 113, 0.85);
}

.performance-stats-page__branch-name-cell {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.performance-stats-page__branch-name {
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.performance-stats-page__branch-weak-label {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: rgba(244, 154, 137, 0.88);
  font-weight: var(--ui-font-medium);
}

.performance-stats-page__branch-weak-label mat-icon {
  width: 12px;
  height: 12px;
  font-size: 12px;
  color: rgba(248, 113, 113, 0.85);
}

.performance-stats-page__branch-rev-cell {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 120px;
}

.performance-stats-page__branch-bar-track {
  height: 6px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: var(--ui-radius-full);
  overflow: hidden;
}

.performance-stats-page__branch-bar-fill {
  height: 100%;
  border-radius: var(--ui-radius-full);
  background: linear-gradient(90deg, rgba(255, 176, 131, 0.55), rgba(255, 176, 131, 0.25));
  transition: width var(--ui-transition-slow);
  min-width: 2px;
}

.performance-stats-page__branch-bar-fill--top {
  background: linear-gradient(90deg, rgba(74, 222, 128, 0.6), rgba(74, 222, 128, 0.25));
}

.performance-stats-page__branch-bar-fill--weak {
  background: linear-gradient(90deg, rgba(248, 113, 113, 0.35), rgba(248, 113, 113, 0.1));
}

/* Weak branch row */
.performance-stats-page__branch-row--weak {
  background: rgba(248, 113, 113, 0.04);
  border-left: 3px solid rgba(248, 113, 113, 0.45);
}

.performance-stats-page__branch-row--weak td {
  opacity: 0.75;
}

.performance-stats-page__branch-row--weak .performance-stats-page__branch-name {
  opacity: 1;
}

.performance-stats-page__branch-row--weak .performance-stats-page__branch-weak-label {
  opacity: 1;
}

/* ==========================================================================
   GROUP MODE — Contribution Split
   ========================================================================== */
.performance-stats-page__contribution-section {
  margin-top: var(--ui-space-2);
}

.performance-stats-page__contribution-row {
  align-items: stretch;
  grid-template-columns: 45fr 55fr;
}

.performance-stats-page__contribution-donut,
.performance-stats-page__contribution-list {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

.performance-stats-page__contrib-items {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  padding: var(--ui-space-2) 0;
}

.performance-stats-page__contrib-row {
  display: grid;
  grid-template-columns: 26px 1fr minmax(80px, 120px) 44px 72px;
  align-items: center;
  gap: var(--ui-space-2);
}

.performance-stats-page__contrib-rank {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: var(--ui-radius-full);
  background: rgba(255, 176, 131, 0.1);
  color: rgba(255, 176, 131, 0.85);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
}

.performance-stats-page__contrib-name {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.performance-stats-page__contrib-bar-track {
  height: 8px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: var(--ui-radius-full);
  overflow: hidden;
}

.performance-stats-page__contrib-bar-fill {
  height: 100%;
  border-radius: var(--ui-radius-full);
  background: linear-gradient(90deg, rgba(255, 176, 131, 0.5), rgba(255, 176, 131, 0.2));
  transition: width var(--ui-transition-slow);
  min-width: 2px;
}

.performance-stats-page__contrib-bar-fill--top {
  background: linear-gradient(90deg, rgba(74, 222, 128, 0.55), rgba(74, 222, 128, 0.2));
}

.performance-stats-page__contrib-pct {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  color: rgba(255, 176, 131, 0.9);
  text-align: right;
}

.performance-stats-page__contrib-amt {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-muted);
  text-align: right;
}

/* ==========================================================================
   BRANCH MODE — Chart Row, Revenue Bars, Efficiency Grid, Collapsed
   ========================================================================== */
/* ── Chart row override (55/45 for people-linked visuals) ── */
.performance-stats-page__chart-row {
  align-items: stretch;
  grid-template-columns: 55fr 45fr;
}

.performance-stats-page__chart-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

.performance-stats-page__table-card {
  overflow: hidden;
}

.performance-stats-page__table-header {
  margin-bottom: 0;
}

.performance-stats-page__table-actions {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
  justify-content: flex-end;
}

.performance-stats-page__collapsed-state {
  padding: 0 var(--ui-space-5) var(--ui-space-4);
}

.performance-stats-page__collapsed-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  min-height: 64px;
  padding: var(--ui-space-3) var(--ui-space-4);
  border-radius: var(--ui-radius-xl);
  border: 1px solid rgba(255, 255, 255, 0.07);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.018));
}

.performance-stats-page__collapsed-copy {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  min-width: 0;
}

.performance-stats-page__collapsed-icon {
  width: 18px;
  height: 18px;
  font-size: 18px;
  color: rgba(255, 176, 131, 0.82);
  flex-shrink: 0;
}

.performance-stats-page__collapsed-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.performance-stats-page__collapsed-title,
.performance-stats-page__collapsed-meta {
  margin: 0;
}

.performance-stats-page__collapsed-title {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.performance-stats-page__collapsed-meta {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.performance-stats-page__collapsed-chip {
  flex-shrink: 0;
}

/* ── Panel titles (Revenue by Employee, Team Efficiency) ── */
.performance-stats-page__panel-title {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  margin: 0 0 var(--ui-space-1) 0;
}

.performance-stats-page__panel-title .title-icon {
  font-size: var(--ui-text-xl);
  width: 20px;
  height: 20px;
  color: rgba(255, 176, 131, 0.85);
}

.performance-stats-page__panel-meta {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-subtle);
  margin: 0 0 var(--ui-space-4) 0;
}

/* ── Revenue by Employee — Horizontal bar chart ── */
.performance-stats-page__bars-list {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.performance-stats-page__bar-row {
  display: grid;
  grid-template-columns: 140px 1fr 90px;
  align-items: center;
  gap: var(--ui-space-3);
}

.performance-stats-page__bar-label {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  min-width: 0;
}

.performance-stats-page__bar-rank {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: var(--ui-radius-full);
  background: rgba(255, 176, 131, 0.12);
  color: rgba(255, 176, 131, 0.9);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  flex-shrink: 0;
}

.performance-stats-page__bar-info {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.performance-stats-page__bar-name {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.performance-stats-page__bar-role {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-subtle);
}

.performance-stats-page__bar-track {
  height: 20px;
  background: var(--ui-surface-1);
  border-radius: var(--ui-radius-full);
  overflow: hidden;
}

.performance-stats-page__bar-fill {
  height: 100%;
  border-radius: var(--ui-radius-full);
  background: linear-gradient(90deg, rgba(255, 176, 131, 0.5), rgba(255, 176, 131, 0.25));
  transition: width var(--ui-transition-slow);
}

.performance-stats-page__bar-fill--top {
  background: linear-gradient(90deg, rgba(74, 222, 128, 0.55), rgba(74, 222, 128, 0.25));
}

.performance-stats-page__bar-fill--low {
  background: linear-gradient(90deg, rgba(248, 113, 113, 0.4), rgba(248, 113, 113, 0.15));
}

.performance-stats-page__bar-value {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
}

.performance-stats-page__bar-amount {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
}

.performance-stats-page__bar-share {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-subtle);
}

.performance-stats-page__bars-skeleton {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  padding: var(--ui-space-4) 0;
}

/* ── Team Efficiency — 2×2 health indicator grid ── */
.performance-stats-page__efficiency-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--ui-space-3);
}

.performance-stats-page__eff-card {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-3);
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-lg);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
  transition: border-color var(--ui-transition-base);
}

.performance-stats-page__eff-card--success {
  border-color: var(--ui-success-border);
}

.performance-stats-page__eff-card--warning {
  border-color: var(--ui-warning-border);
}

.performance-stats-page__eff-card--danger {
  border-color: var(--ui-danger-border);
}

.performance-stats-page__eff-icon {
  font-size: var(--ui-text-xl);
  width: 22px;
  height: 22px;
  color: rgba(255, 176, 131, 0.7);
  margin-top: 2px;
  flex-shrink: 0;
}

.performance-stats-page__eff-card--success .performance-stats-page__eff-icon {
  color: var(--ui-success);
}

.performance-stats-page__eff-card--warning .performance-stats-page__eff-icon {
  color: var(--ui-warning);
}

.performance-stats-page__eff-card--danger .performance-stats-page__eff-icon {
  color: var(--ui-danger);
}

.performance-stats-page__eff-body {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.performance-stats-page__eff-value {
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  line-height: 1.1;
}

.performance-stats-page__eff-label {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  margin-top: 2px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.performance-stats-page__eff-sublabel {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-disabled);
  margin-top: var(--ui-space-1);
}

/* ── NPS color classes (shared) ── */
.nps-good {
  color: #4ade80 !important;
}

.nps-fair {
  color: #fbbf24 !important;
}

.nps-poor {
  color: #f87171 !important;
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 960px) {
  .performance-stats-page__header .erp-header-primary {
    flex-direction: column;
    align-items: flex-start;
  }
  .performance-stats-page__header-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }
  .performance-stats-page__header .header-right {
    width: 100%;
    justify-content: flex-start;
  }
  .performance-stats-page__table-actions {
    width: 100%;
    justify-content: flex-start;
  }
  .performance-stats-page__collapsed-summary {
    align-items: flex-start;
    flex-direction: column;
  }
  .performance-stats-page__insight-grid {
    grid-template-columns: 1fr;
  }
  .performance-stats-page__control-group {
    margin-left: 0;
  }
  .performance-stats-page__bar-row {
    grid-template-columns: 120px 1fr 80px;
  }
  .performance-stats-page__efficiency-grid {
    grid-template-columns: 1fr;
  }
  .performance-stats-page__contribution-row {
    grid-template-columns: 1fr;
  }
  .performance-stats-page__contrib-row {
    grid-template-columns: 22px 1fr 60px 36px 60px;
  }
}
@media (max-width: 640px) {
  .performance-stats-page__header-kpis {
    grid-template-columns: 1fr;
  }
  .performance-stats-page__header-kpi {
    min-height: 132px;
  }
  .performance-stats-page__summary-pill {
    width: 100%;
    justify-content: center;
  }
  .performance-stats-page__context-pills,
  .performance-stats-page__control-group,
  .performance-stats-page__role-filter,
  .performance-stats-page__insights-toggle {
    width: 100%;
  }
  .performance-stats-page__collapsed-state,
  .performance-stats-page__insight-card {
    min-height: auto;
  }
  .performance-stats-page__bar-row {
    grid-template-columns: 100px 1fr 70px;
  }
  .performance-stats-page__alerts-list {
    gap: var(--ui-space-1);
  }
  .performance-stats-page__alert-item {
    padding: var(--ui-space-2) var(--ui-space-3);
  }
  .performance-stats-page__contrib-row {
    grid-template-columns: 22px 1fr 50px 30px 50px;
    font-size: 12px;
  }
}
/* ==========================================================================
   DRILL-DOWN PANEL
   → Uses official glass-drawer contract (src/ui/layout/glass-drawer.scss).
   → No page-level overrides needed.
   ========================================================================== */
/* ── Top Advisors bar rows — clickable ── */
.performance-stats-page__bar-row {
  cursor: pointer;
  transition: background-color 0.15s ease;
  border-radius: var(--ui-radius-md);
  padding: var(--ui-space-1) var(--ui-space-2);
  margin: calc(-1 * var(--ui-space-1)) calc(-1 * var(--ui-space-2));
}
.performance-stats-page__bar-row:hover {
  background-color: rgba(255, 255, 255, 0.04);
}
.performance-stats-page__bar-row:active {
  background-color: rgba(255, 255, 255, 0.07);
}

/* ==========================================================================
   DRILL-DOWN — Job Breakdown Cards (page-scoped)
   ========================================================================== */
.drilldown-job-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
}

.drilldown-job-card {
  padding: 14px 16px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.07);
  transition: background 0.15s ease;
}
.drilldown-job-card:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.12);
}

/* Top row: Customer name left, Amount right */
.drilldown-job-card__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 6px;
}

.drilldown-job-card__customer {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.drilldown-job-card__name {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.92);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.drilldown-job-card__vehicle-name {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.4);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.drilldown-job-card__amount {
  font-family: var(--ui-font-primary);
  font-size: 15px;
  font-weight: 700;
  color: rgba(255, 208, 182, 0.95);
  white-space: nowrap;
  flex-shrink: 0;
}

/* Bottom row: BK-xxx · MH03DU5644 · Delivered */
.drilldown-job-card__bottom {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.drilldown-job-card__id {
  font-family: var(--ui-font-mono);
  font-size: 11px;
  color: rgba(255, 176, 131, 0.7);
  letter-spacing: 0.02em;
}

.drilldown-job-card__sep {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.2);
}

.drilldown-job-card__reg {
  font-family: var(--ui-font-mono);
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
  letter-spacing: 0.02em;
}

.drilldown-job-card__status {
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.5);
}

.drilldown-job-card__status--success {
  color: #4ade80;
}

.drilldown-job-card__status--warning {
  color: #fbbf24;
}

/* ==========================================================================
   4. MODAL VARIANTS
   ========================================================================== */
/* ==========================================================================
   UI MODAL VARIANT - BIG
   ==========================================================================
   Uses standardized glass UI contracts.
   Apply: .ui-modal--big to the modal panel

   USAGE:
   <div class="ui-modal__backdrop">
     <div class="ui-modal__panel ui-modal--big">
       <div class="glass-modal-container">
         ...existing markup...
       </div>
     </div>
   </div>
   ========================================================================== */
/* Import the existing glass modal v2 styles */
/* CSS imported in styles.scss */
/* Size configuration for big modal */
.ui-modal--big .ui-modal__panel, .ui-modal--big .glass-modal-container,
.ui-modal__panel.ui-modal--big,
.ui-modal--big.glass-modal-container {
  width: 95%;
  max-width: 960px;
  max-height: 85vh;
}

/* Ensure glass-modal-container inherits correct z-index context */
.ui-modal--big .glass-modal-container,
.ui-modal__panel.ui-modal--big .glass-modal-container {
  /* Container should not override panel z-index */
  position: relative;
  z-index: auto;
}

/* MatDialog panel class integration */
.cdk-overlay-pane.ui-modal--big {
  max-width: 960px !important;
  max-height: 85vh !important;
}

.cdk-overlay-pane.ui-modal--big .mat-mdc-dialog-container,
.cdk-overlay-pane.ui-modal--big .mdc-dialog__surface {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
  padding: 0 !important;
  border-radius: var(--ui-radius-2xl) !important;
  overflow: hidden !important;
}

/* Center big modal dialogs */
.cdk-global-overlay-wrapper:has(.ui-modal--big) {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}

/* Backdrop now inherited from canonical base in layout/modal.scss */
/* ==========================================================================
   UI MODAL VARIANT - SMALL
   ==========================================================================
   Small modal styling for compact dialogs.
   Apply: .ui-modal--small to the modal panel
   ========================================================================== */
/* NOTE: glass-modal-small.scss was consolidated - styles are now in this file */
/* Size configuration for small modal */
.ui-modal--small .ui-modal__panel, .ui-modal--small .glass-modal-container,
.ui-modal__panel.ui-modal--small,
.ui-modal--small.glass-modal-container {
  width: 550px;
  max-width: 95vw;
  max-height: 85vh;
}

/* MatDialog panel class integration */
.cdk-overlay-pane.ui-modal--small {
  width: min(550px, 100vw - 32px) !important;
  max-width: 550px !important;
  height: auto !important;
  max-height: min(85vh, 100vh - 32px) !important;
}

@supports (height: 100dvh) {
  .cdk-overlay-pane.ui-modal--small {
    max-height: min(85dvh, 100dvh - 32px) !important;
  }
}
.cdk-overlay-pane.ui-modal--small .mat-mdc-dialog-container,
.cdk-overlay-pane.ui-modal--small .mdc-dialog__surface {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
  padding: 0 !important;
  border-radius: var(--ui-radius-xl) !important;
  overflow: hidden !important;
}

.cdk-overlay-pane.ui-modal--small mat-dialog-content,
.cdk-overlay-pane.ui-modal--small .mat-mdc-dialog-content,
.cdk-overlay-pane.ui-modal--small .mdc-dialog__content {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  max-height: none !important;
  overflow: visible !important;
}

.cdk-overlay-pane.ui-modal--small mat-dialog-content > .row,
.cdk-overlay-pane.ui-modal--small .mat-mdc-dialog-content > .row,
.cdk-overlay-pane.ui-modal--small .mdc-dialog__content > .row {
  margin: 0 !important;
}

.cdk-overlay-pane.ui-modal--small mat-dialog-content > .row > [class*=col-],
.cdk-overlay-pane.ui-modal--small .mat-mdc-dialog-content > .row > [class*=col-],
.cdk-overlay-pane.ui-modal--small .mdc-dialog__content > .row > [class*=col-] {
  padding: 0 !important;
}

.cdk-overlay-pane.ui-modal--small .glass-modal-body {
  min-height: 0 !important;
  overflow-y: auto !important;
}

/* Center small modal dialogs */
.cdk-global-overlay-wrapper:has(.ui-modal--small) {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}

/* Backdrop now inherited from canonical base in layout/modal.scss */
/* ==========================================================================
   CREATE NEW MODAL (BubbleComponent) - Padding Overrides
   ==========================================================================
   Panel class: glass-dialog-panel
   ========================================================================== */
.glass-dialog-panel .create-new-modal .glass-modal-body {
  padding: 28px 32px 40px !important;
}

.glass-dialog-panel .create-new-modal .action-tiles {
  gap: 14px !important;
}

.glass-dialog-panel .create-new-modal .glass-section-title {
  margin-top: 24px !important;
  margin-bottom: 18px !important;
}

.glass-dialog-panel .create-new-modal .glass-section-title:first-of-type {
  margin-top: 8px !important;
}

.glass-dialog-panel .create-new-modal .primary-actions-row {
  gap: 16px !important;
}

/* Make section title underline more subtle */
.glass-dialog-panel .create-new-modal .glass-section-title::after {
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)) !important;
}

/* ==========================================================================
   UI MODAL VARIANT - PRINT (PDF Preview)
   ==========================================================================
   Wraps existing pdf-preview-modal.css styling.
   Apply: .ui-modal--print to the modal panel
   ========================================================================== */
/* Import the existing PDF preview modal styles */
/* CSS imported in styles.scss */
/* Size configuration for print modal */
.ui-modal--print .ui-modal__panel, .ui-modal--print .glass-modal-container,
.ui-modal__panel.ui-modal--print,
.ui-modal--print.glass-modal-container {
  width: 100%;
  max-width: 850px;
  max-height: 90vh;
}

/* MatDialog panel class integration */
.cdk-overlay-pane.ui-modal--print {
  max-width: 850px !important;
  max-height: 90vh !important;
}

.cdk-overlay-pane.ui-modal--print .mat-mdc-dialog-container,
.cdk-overlay-pane.ui-modal--print .mdc-dialog__surface {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
  padding: 0 !important;
  border-radius: var(--ui-radius-2xl) !important;
  overflow: hidden !important;
}

/* PDF modal container styling integration */
.ui-modal--print .pdf-modal-container,
.cdk-overlay-pane.ui-modal--print .pdf-modal-container {
  position: relative;
  z-index: auto;
}

/* Backdrop for print modal - excludes dropdown/datepicker backdrops */
.cdk-overlay-container:has(.cdk-overlay-pane.ui-modal--print) .cdk-overlay-backdrop.cdk-overlay-backdrop-showing:not(.cdk-overlay-transparent-backdrop):not(.mat-overlay-transparent-backdrop) {
  background: rgba(0, 0, 0, 0.25) !important;
  backdrop-filter: blur(20px) saturate(120%) !important;
  -webkit-backdrop-filter: blur(20px) saturate(120%) !important;
  opacity: 1 !important;
}

/* ==========================================================================
   REUSABLE PRINT CONTAINER CONTRACT
   ==========================================================================
   Defines a deterministic print layout boundary for clone-and-print
   workflows across the app (invoices, receipts, worksheets, etc.).

   Components clone their print-section into a `.ui-print-container`
   element on <body>, then call window.print().

   This contract handles:
   - Hiding the app shell during print
   - Showing only the print content
   - Preventing overflow clipping for multi-page output
   - Table header repetition and row-break avoidance
   - Clean A4 page layout

   USAGE:
     const clone = document.createElement('div')
     clone.className = 'ui-print-container'
     clone.innerHTML = printSection.innerHTML
     document.body.appendChild(clone)
     window.print()
   ========================================================================== */
/* The container sits on <body> but is invisible on screen */
.ui-print-container {
  display: none;
}

@media print {
  /* Global resets, .no-print, overlay hiding → src/ui/print/print.scss */
  /* ---- Hide the app — only when clone-based printing (.ui-print-container exists) ---- */
  body.ui-print-clone-active > *:not(.ui-print-container) {
    display: none !important;
  }
  /* Shell hiding, console-content resets → src/ui/print/print-layout.scss */
  .ui-print-container {
    display: block !important;
    visibility: visible !important;
    position: static !important;
    width: 100% !important;
    overflow: visible !important;
    height: auto !important;
    background: #fff !important;
    color: #000 !important;
  }
  /* Ensure all children are visible with black text */
  .ui-print-container * {
    visibility: visible !important;
    color: #000 !important;
  }
  /* ---- Container overflow resets ---- */
  /* Un-clip Bootstrap .table-responsive wrappers */
  .ui-print-container .table-responsive {
    overflow: visible !important;
  }
  /* Reset .ui-page height constraints */
  .ui-print-container .ui-page {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }
  /* Table break rules, page-break utilities, @page → src/ui/print/print.scss */
}
/* ---- Force Bootstrap grid columns to hold at print widths ---- */
/* Prevents col-md-* from collapsing to full-width on narrow print viewports */
@media print {
  .col-md-1 {
    width: 8.33333% !important;
    float: left !important;
    box-sizing: border-box;
  }
  .col-md-2 {
    width: 16.6667% !important;
    float: left !important;
    box-sizing: border-box;
  }
  .col-md-3 {
    width: 25% !important;
    float: left !important;
    box-sizing: border-box;
  }
  .col-md-4 {
    width: 33.3333% !important;
    float: left !important;
    box-sizing: border-box;
  }
  .col-md-5 {
    width: 41.6667% !important;
    float: left !important;
    box-sizing: border-box;
  }
  .col-md-6 {
    width: 50% !important;
    float: left !important;
    box-sizing: border-box;
  }
  .col-md-7 {
    width: 58.3333% !important;
    float: left !important;
    box-sizing: border-box;
  }
  .col-md-8 {
    width: 66.6667% !important;
    float: left !important;
    box-sizing: border-box;
  }
  .col-md-9 {
    width: 75% !important;
    float: left !important;
    box-sizing: border-box;
  }
  .col-md-10 {
    width: 83.3333% !important;
    float: left !important;
    box-sizing: border-box;
  }
  .col-md-11 {
    width: 91.6667% !important;
    float: left !important;
    box-sizing: border-box;
  }
  .col-md-12 {
    width: 100% !important;
    float: left !important;
    box-sizing: border-box;
  }
  .row {
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .row::after {
    content: "";
    display: table;
    clear: both;
  }
}
/* ==========================================================================
   UI MODALS - PRINT LABEL
   ==========================================================================
   Specialized contract for the product label print dialog.
   Base glass surface, modal header/footer, buttons, and Material form fields
   remain owned by the shared modal/control contracts.
   ========================================================================== */
.cdk-overlay-pane.print-label-dialog-panel {
  width: min(1360px, 100vw - var(--ui-space-6) * 2) !important;
  max-width: min(1360px, 100vw - var(--ui-space-6) * 2) !important;
  height: min(90vh, 100vh - var(--ui-space-6) * 2) !important;
  max-height: min(90vh, 100vh - var(--ui-space-6) * 2) !important;
}

.cdk-overlay-pane.print-label-dialog-panel .mat-mdc-dialog-container,
.cdk-overlay-pane.print-label-dialog-panel .mdc-dialog__container,
.cdk-overlay-pane.print-label-dialog-panel .mdc-dialog__surface,
.cdk-overlay-pane.print-label-dialog-panel .mat-mdc-dialog-surface {
  height: 100% !important;
}

.cdk-overlay-pane.print-label-dialog-panel .mdc-dialog__surface > *,
.cdk-overlay-pane.print-label-dialog-panel .mat-mdc-dialog-surface > * {
  display: block !important;
  height: 100% !important;
}

.print-label-modal {
  display: flex !important;
  flex-direction: column !important;
  width: 100%;
  height: 100%;
  min-height: 0;
}

.print-label-modal__body {
  flex: 1 1 0;
  min-height: 0;
  overflow: hidden !important;
  padding: var(--ui-space-5) !important;
}

.print-label-modal__form {
  height: 100%;
  min-height: 0;
}

.print-label-modal__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(430px, 0.85fr);
  gap: var(--ui-space-5);
  height: 100%;
  min-height: 0;
  align-items: stretch;
}

.print-label-modal__editor,
.print-label-modal__preview-column {
  min-width: 0;
  min-height: 0;
}

.print-label-modal__editor {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
  overflow-y: auto;
  padding-right: var(--ui-space-1);
}

.print-label-modal__preview-column {
  position: sticky;
  top: 0;
  align-self: stretch;
}

.print-label-modal__panel {
  margin: 0;
}

.print-label-modal__preview-panel {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}

.print-label-modal__preview-stage {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  overflow: auto;
  width: 100%;
  padding: var(--ui-space-5);
  border-radius: var(--ui-radius-lg);
  background: #ffffff;
}

.print-label-modal__serial-range {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: var(--ui-space-3);
  align-items: end;
}

.print-label-modal .search-container {
  position: relative;
  min-width: 0;
}

.print-label-modal__input,
.print-label-modal .serial-input {
  width: 100%;
  min-height: 48px;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-2);
  color: var(--ui-text-secondary);
  padding: 0 var(--ui-space-4);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-base);
  outline: none;
  transition: var(--ui-transition-base);
}

.print-label-modal__input:focus,
.print-label-modal .serial-input:focus-within {
  border-color: var(--ui-border-focus);
  background: var(--ui-surface-3);
  box-shadow: var(--ui-shadow-glow);
}

.print-label-modal__serial-input {
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
}

.print-label-modal__serial-input input {
  flex: 1 1 auto;
  min-width: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  outline: none;
  padding: 0;
}

.print-label-modal .batch-prefix {
  color: var(--ui-text-muted);
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-sm);
  white-space: nowrap;
}

.print-label-modal .range-separator {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.print-label-modal .dropdown-list {
  position: absolute;
  top: calc(100% + var(--ui-space-1));
  left: 0;
  right: 0;
  z-index: var(--z-modal-dropdown);
  max-height: 220px;
  overflow-y: auto;
  padding: var(--ui-space-1);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-glass-dark);
  box-shadow: var(--ui-shadow-lg);
}

.print-label-modal .dropdown-item {
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-sm);
  color: var(--ui-text-secondary);
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-sm);
  cursor: pointer;
}

.print-label-modal .dropdown-item:hover {
  background: var(--ui-surface-hover);
  color: var(--ui-text-primary);
}

.print-label-modal__size-options {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
  min-height: 48px;
}

.print-label-modal .size-option {
  position: relative;
  min-width: 72px;
  justify-content: center;
  cursor: pointer;
  -webkit-user-select: none;
          user-select: none;
}

.print-label-modal .size-option input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}

.print-label-modal .size-option--active {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.print-label-modal .footer-right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ui-space-3);
}

@media (max-width: 1100px) {
  .cdk-overlay-pane.print-label-dialog-panel {
    width: calc(100vw - var(--ui-space-4) * 2) !important;
    max-width: calc(100vw - var(--ui-space-4) * 2) !important;
  }
  .print-label-modal__body {
    overflow-y: auto !important;
  }
  .print-label-modal__layout {
    grid-template-columns: 1fr;
    height: auto;
  }
  .print-label-modal__editor {
    overflow: visible;
    padding-right: 0;
  }
  .print-label-modal__preview-column {
    position: static;
  }
  .print-label-modal__preview-panel {
    min-height: 520px;
  }
}
@media (max-width: 680px) {
  .print-label-modal__body {
    padding: var(--ui-space-4) !important;
  }
  .print-label-modal__serial-range,
  .print-label-modal .glass-field-row {
    grid-template-columns: 1fr;
  }
  .print-label-modal .range-separator {
    justify-content: flex-start;
    min-height: auto;
  }
  .print-label-modal__preview-stage {
    justify-content: flex-start;
  }
}
/* ==========================================================================
   Print Receipt Modal Theme
   Provides a reusable, global theme for printing modals with a minimal, 
   premium light design and orange accents.
   ========================================================================== */
.ui-modal--receipt {
  /* Modal Container Overrides */
  /* Header (Modal UI only) */
  /* Loading State */
  /* Modal Body */
}
.ui-modal--receipt.glass-modal-container {
  width: 100%;
  height: 100%;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.ui-modal--receipt .glass-modal-header {
  flex-shrink: 0;
  padding: 16px 24px;
}
.ui-modal--receipt .glass-modal-header .header-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}
.ui-modal--receipt .glass-modal-title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 16px;
}
.ui-modal--receipt .title-icon {
  color: var(--glass-primary);
  font-size: 20px;
  width: 20px;
  height: 20px;
}
.ui-modal--receipt .header-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}
.ui-modal--receipt .header-actions .glass-btn {
  padding: 6px 16px;
  font-size: 13px;
  height: 36px;
}
.ui-modal--receipt .loading-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 60px 24px;
  gap: 16px;
}
.ui-modal--receipt .loading-container p {
  margin: 0;
  color: var(--glass-text-secondary);
  font-size: 14px;
}
.ui-modal--receipt .glass-modal-body {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 0;
  background: white;
  /* Scrollbar */
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.2) transparent;
}
.ui-modal--receipt .glass-modal-body::-webkit-scrollbar {
  width: 8px;
}
.ui-modal--receipt .glass-modal-body::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.05);
  border-radius: 4px;
}
.ui-modal--receipt .glass-modal-body::-webkit-scrollbar-thumb {
  background: rgba(255, 107, 53, 0.4);
  border-radius: 4px;
}

/* end .ui-modal--receipt (modal-only overrides) */
/* ==========================================================================
   Receipt Design (Minimal Light Theme)
   These classes are GLOBAL so they work both inside the modal dialog
   (.ui-modal--receipt) AND on the standalone print-route page
   (print-doc--gatepass, print-doc--handover, etc.).
   ========================================================================== */
.receipt-container {
  width: 100%;
  max-width: 100%;
  margin: 0;
  background: #ffffff;
  color: #333333;
  font-family: var(--ui-font-primary);
  box-shadow: none;
  border-radius: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

/* 
   Header - Minimal Light
   Clean, whitespace-driven, premium typography
*/
.receipt-header {
  background: #ffffff;
  color: #1a1a1a;
  padding: 26px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center; /* Center align items vertically */
  border-bottom: 2px solid #f5f5f5;
  position: relative;
}

/* Subtle orange accent bar at very top */
.receipt-header::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: #ff6b35;
}

.brand-section {
  display: flex;
  flex-direction: row; /* Horizontal layout */
  align-items: center;
  gap: 16px;
}

.brand-logo {
  width: 48px;
  height: 48px;
  object-fit: contain;
  margin-bottom: 0; /* Remove bottom margin */
}

.brand-info {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.brand-info h1 {
  font-size: 18px;
  font-weight: 800;
  margin: 0 0 2px 0;
  color: #1a1a1a;
  letter-spacing: -0.3px;
  line-height: 1.1;
}

.brand-info p {
  font-size: 11px;
  color: #666;
  margin: 0;
  font-weight: 500;
}

.receipt-title-section {
  text-align: right;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

.receipt-title {
  font-size: 12px;
  font-weight: 600;
  color: #999;
  text-transform: uppercase;
  letter-spacing: 2px;
  margin-bottom: 6px;
}

.receipt-subtitle {
  font-size: 16px;
  font-weight: 700;
  color: #ff6b35; /* Pop of color */
  font-family: var(--ui-font-mono);
  background: #fff8f5;
  padding: 4px 8px;
  border-radius: 4px;
}

/* Body Content */
.receipt-body {
  padding: 24px;
}

.info-grid {
  display: flex;
  gap: 24px;
  margin-bottom: 24px;
}

/* Keep the cards as requested, but refine for light theme harmony */
.info-card {
  flex: 1;
  background: #ffffff;
  border: 1px solid #f0f0f0;
  border-radius: 8px;
  padding: 20px;
  border-left: 3px solid #ff6b35;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.02);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.info-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.04);
}

.card-header,
.receipt-card-header {
  font-size: 9px;
  font-weight: 700;
  color: #888;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 16px;
  padding-bottom: 0;
  border-bottom: none;
  background: transparent;
}

.card-content,
.receipt-card-content {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 0;
}

.data-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 12px;
}

.data-row .label {
  color: #666;
  flex: 1;
  font-weight: 400;
}

.data-row .value {
  color: #1a1a1a;
  font-weight: 600;
  text-align: right;
  flex: 1.5;
}

.data-row .value.bold {
  font-weight: 700;
}

.data-row .value.highlight {
  color: #ff6b35;
}

/* Sections */
.section-container {
  margin-bottom: 30px;
}

.receipt-container .section-header {
  font-size: 11px;
  font-weight: 700;
  color: #1a1a1a;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid #eaeaea; /* Subtler underline */
  display: block;
  width: 100%;
  background: transparent;
  padding-left: 0;
}

.receipt-container .section-header::after {
  content: "";
  display: block;
  width: 40px;
  height: 2px;
  background: #ff6b35;
  margin-top: 8px;
}

.section-content {
  padding: 0;
  background: transparent;
}

.text-block {
  font-size: 12px;
  color: #333;
  line-height: 1.6;
}

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

.bullet-list li {
  font-size: 12px;
  color: #333;
  margin-bottom: 8px;
  padding-left: 16px;
  position: relative;
  line-height: 1.5;
}

.bullet-list li::before {
  content: "→";
  position: absolute;
  left: 0;
  color: #ff6b35;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.2;
}

/* Signatures */
.signatures-grid {
  display: flex;
  justify-content: space-between;
  gap: 80px;
  margin-top: 60px;
  margin-bottom: 40px;
}

.signature-box {
  flex: 1;
}

.sign-line {
  border-bottom: 1px solid #ddd;
  margin-bottom: 10px;
  height: 1px;
}

.sign-label {
  font-size: 10px;
  color: #999;
  text-transform: uppercase;
  font-weight: 600;
  letter-spacing: 1px;
}

/* 
   Footer - Minimal Light
   Just spacing and essential info
*/
.legal-footer {
  border-top: 1px solid #f5f5f5;
  background: #ffffff;
  padding: 20px 0 0 0;
  margin-bottom: 0;
  margin-top: auto;
}

.legal-footer p {
  font-size: 9px;
  color: #999;
  line-height: 1.6;
  margin: 0;
  text-align: justify;
}

.receipt-footer-line {
  background: #ffffff;
  padding: 20px 24px;
  border-top: none;
  display: flex;
  justify-content: center;
}

.footer-meta {
  font-size: 8px;
  color: #ccc;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 2px;
}

/* ==========================================================================
   Order Invoice Document
   Flat, structured, audit-first invoice layout
   ========================================================================== */
/* @at-root no longer needed — receipt scope was closed above */
.order-invoice-print {
  background: #fff !important;
}

@page {
  margin: 6mm;
}
.order-invoice-print .order-invoice-sheet,
.order-invoice-print .order-invoice-sheet * {
  box-shadow: none !important;
  border-radius: 0 !important;
}

.order-invoice-print .order-invoice-sheet {
  background: #fff !important;
  color: #111 !important;
  padding: 12px 14px 12px;
  font-family: var(--ui-font-primary);
  font-size: 12px;
  line-height: 1.4;
}

.order-invoice-print .page-break-safe {
  break-inside: avoid;
  page-break-inside: avoid;
}

.order-invoice-print .order-invoice-sheet__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 24px;
  padding-bottom: 18px;
  border-bottom: 1px solid #111;
  margin-bottom: 18px;
}

.order-invoice-print .order-invoice-sheet__brand-block {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  flex: 1 1 auto;
  min-width: 0;
}

.order-invoice-print .order-invoice-sheet__logo {
  width: auto !important;
  height: 48px !important;
  max-width: 120px !important;
  min-width: 0 !important;
  object-fit: contain;
  flex: 0 0 auto;
  align-self: flex-start;
}

.order-invoice-print .order-invoice-sheet__company {
  min-width: 0;
}

.order-invoice-print .order-invoice-sheet__company h1 {
  margin: 0 0 6px;
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #111;
}

.order-invoice-print .order-invoice-sheet__company p {
  margin: 0 0 4px;
  font-size: 12px;
  color: #333;
}

.order-invoice-print .order-invoice-sheet__company-line {
  display: flex;
  gap: 6px;
  margin-bottom: 3px;
  color: #222;
  word-break: break-word;
  white-space: normal;
}

.order-invoice-print .order-invoice-sheet__company-line span:first-child {
  font-weight: 600;
  flex: 0 0 auto;
}

.order-invoice-print .order-invoice-sheet__doc-block {
  flex: 0 0 240px;
  text-align: right;
}

.order-invoice-print .order-invoice-sheet__doc-type {
  font-size: 24px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #111;
}

.order-invoice-print .order-invoice-sheet__copy-type {
  margin-top: 4px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #555;
}

.order-invoice-print .order-invoice-sheet__doc-meta {
  margin-top: 18px;
  margin-left: auto;
  width: 100%;
  max-width: 220px;
}

.order-invoice-print .order-invoice-sheet__doc-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 4px 0;
  border-bottom: 1px solid #e5e5e5;
}

.order-invoice-print .order-invoice-sheet__doc-row span {
  color: #555;
}

.order-invoice-print .order-invoice-sheet__doc-row strong {
  color: #111;
  font-weight: 700;
}

.order-invoice-print .order-invoice-sheet__parties {
  display: block;
  padding-bottom: 16px;
  border-bottom: 1px solid #e5e5e5;
  margin-bottom: 14px;
}

.order-invoice-print .order-invoice-party--full {
  width: 100%;
}

.order-invoice-print .order-invoice-party {
  min-width: 0;
}

.order-invoice-print .order-invoice-party--split {
  display: flex;
  justify-content: space-between;
  gap: 32px;
}

.order-invoice-print .order-invoice-party__left {
  flex: 1 1 auto;
  min-width: 0;
}

.order-invoice-print .order-invoice-party__right {
  flex: 0 0 55%;
  max-width: 55%;
  text-align: left;
  padding-top: 22px;
}

.order-invoice-print .order-invoice-section-label {
  margin-bottom: 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #555;
}

.order-invoice-print .order-invoice-party__name {
  margin-bottom: 8px;
  font-size: 14px;
  font-weight: 700;
  color: #111;
}

.order-invoice-print .order-invoice-party__line {
  display: flex;
  gap: 6px;
  margin-bottom: 4px;
  color: #222;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.order-invoice-print .order-invoice-party__line span:first-child {
  min-width: 58px;
  font-weight: 600;
  color: #555;
  flex: 0 0 auto;
}

.order-invoice-print .order-invoice-sheet__order-meta {
  padding-bottom: 14px;
  border-bottom: 1px solid #e5e5e5;
  margin-bottom: 14px;
}

.order-invoice-print .order-invoice-inline-meta {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}

.order-invoice-print .order-invoice-inline-meta__item {
  min-width: 160px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.order-invoice-print .order-invoice-inline-meta__item span {
  font-size: 11px;
  color: #555;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.order-invoice-print .order-invoice-inline-meta__item strong {
  font-size: 13px;
  color: #111;
  font-weight: 700;
  word-break: break-word;
}

.order-invoice-print .order-invoice-sheet__items {
  margin-bottom: 18px;
}

.order-invoice-print .order-invoice-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.order-invoice-print .order-invoice-table th,
.order-invoice-print .order-invoice-table td {
  padding: 8px 6px;
  border-bottom: 1px solid #e5e5e5;
  vertical-align: top;
  text-align: left;
  font-size: 12px;
  background: #fff !important;
}

.order-invoice-print .order-invoice-table th {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #555;
}

.order-invoice-print .order-invoice-table th:nth-child(1),
.order-invoice-print .order-invoice-table td:nth-child(1) {
  width: 40px;
}

.order-invoice-print .order-invoice-table th:nth-child(2),
.order-invoice-print .order-invoice-table td:nth-child(2) {
  width: auto;
}

.order-invoice-print .order-invoice-table th:nth-child(3),
.order-invoice-print .order-invoice-table td:nth-child(3) {
  width: 110px;
}

.order-invoice-print .order-invoice-table th:nth-child(4),
.order-invoice-print .order-invoice-table td:nth-child(4) {
  width: 60px;
}

.order-invoice-print .order-invoice-table th:nth-child(5),
.order-invoice-print .order-invoice-table td:nth-child(5),
.order-invoice-print .order-invoice-table th:nth-child(7),
.order-invoice-print .order-invoice-table td:nth-child(7) {
  width: 110px;
}

.order-invoice-print .order-invoice-table th:nth-child(6),
.order-invoice-print .order-invoice-table td:nth-child(6) {
  width: 96px;
}

.order-invoice-print .order-invoice-table .is-right {
  text-align: right;
}

.order-invoice-print .order-invoice-table__description,
.order-invoice-print .order-invoice-table__title {
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.order-invoice-print .order-invoice-table__title {
  font-weight: 600;
  color: #111;
}

.order-invoice-print .order-invoice-table__discount {
  margin-top: 4px;
  font-size: 11px;
  color: #666;
}

.order-invoice-print .order-invoice-table__amount {
  font-weight: 700;
  color: #111;
}

.order-invoice-print .order-invoice-table__empty {
  text-align: center !important;
  color: #666;
  padding: 18px 0;
}

.order-invoice-print .order-invoice-sheet__totals {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 24px;
  margin-bottom: 16px;
  padding-top: 16px;
}

.order-invoice-print .order-invoice-totals {
  width: 100%;
  max-width: 320px;
  flex: 0 0 auto;
}

.order-invoice-print .order-invoice-totals__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  padding: 6px 0;
  border-bottom: 1px solid #e5e5e5;
  font-size: 12px;
}

.order-invoice-print .order-invoice-totals__row span {
  color: #555;
}

.order-invoice-print .order-invoice-totals__row strong {
  color: #111;
  font-weight: 700;
}

.order-invoice-print .order-invoice-totals__row--grand {
  padding: 10px 0 8px;
  border-top: 1px solid #111;
  border-bottom: 2px solid #111;
}

.order-invoice-print .order-invoice-totals__row--grand span,
.order-invoice-print .order-invoice-totals__row--grand strong {
  font-size: 18px;
  font-weight: 800;
  color: #111;
}

.order-invoice-print .order-invoice-totals__row--due strong {
  color: #111;
}

.order-invoice-print .order-invoice-sheet__words {
  margin-bottom: 16px;
}

.order-invoice-print .order-invoice-sheet__words p {
  margin: 0;
  font-size: 12px;
  line-height: 1.5;
  color: #111;
}

.order-invoice-print .order-invoice-sheet__footer {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 32px;
  padding-top: 16px;
  border-top: 1px solid #e5e5e5;
  margin-top: 4px;
}

.order-invoice-print .order-invoice-sheet__terms {
  flex: 1 1 auto;
  min-width: 0;
}

.order-invoice-print .order-invoice-sheet__terms ul {
  margin: 0;
  padding-left: 18px;
}

.order-invoice-print .order-invoice-sheet__terms li {
  margin-bottom: 4px;
  color: #222;
}

.order-invoice-print .order-invoice-sheet__signatory {
  flex: 0 0 280px;
  text-align: center;
}

.order-invoice-print .order-invoice-sheet__sign-company {
  margin-bottom: 38px;
  font-size: 12px;
  font-weight: 600;
  color: #111;
  white-space: nowrap;
}

.order-invoice-print .order-invoice-sheet__sign-line {
  border-bottom: 1px solid #111;
  margin-bottom: 8px;
}

.order-invoice-print .order-invoice-sheet__sign-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #555;
}

.order-invoice-print .order-invoice-sheet__disclaimer {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid #e5e5e5;
  font-size: 10px;
  color: #666;
}

/* Bank Details & QR Code (inside totals row) */
.order-invoice-print .order-invoice-bank {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  flex: 1 1 auto;
  min-width: 0;
}

.order-invoice-print .order-invoice-bank__qr {
  flex: 0 0 auto;
  text-align: center;
}

.order-invoice-print .order-invoice-bank__qr-img {
  width: 120px;
  height: 120px;
  object-fit: contain;
}

.order-invoice-print .order-invoice-bank__qr-label {
  margin-top: 4px;
  font-size: 9px;
  color: #888;
  letter-spacing: 0.02em;
}

.order-invoice-print .order-invoice-bank__details {
  flex: 1 1 auto;
  min-width: 0;
}

.order-invoice-print .order-invoice-bank__row {
  display: flex;
  gap: 4px;
  margin-bottom: 3px;
  font-size: 12px;
  color: #222;
  white-space: normal;
  word-break: break-word;
}

.order-invoice-print .order-invoice-bank__label {
  width: 68px;
  font-weight: 600;
  color: #555;
  flex: 0 0 68px;
}

@media screen and (max-width: 900px) {
  .order-invoice-print .order-invoice-sheet__header,
  .order-invoice-print .order-invoice-sheet__footer,
  .order-invoice-print .order-invoice-sheet__parties {
    grid-template-columns: 1fr;
    flex-direction: column;
  }
  .order-invoice-print .order-invoice-sheet__doc-block,
  .order-invoice-print .order-invoice-sheet__signatory {
    width: 100%;
    max-width: none;
    flex: 1 1 auto;
    text-align: left;
  }
  .order-invoice-print .order-invoice-sheet__doc-meta {
    margin-left: 0;
    max-width: none;
  }
  .order-invoice-print .order-invoice-table {
    table-layout: auto;
  }
}
/* Print Overrides */
@media print {
  .receipt-container {
    box-shadow: none;
    border: none;
    border-radius: 0;
  }
  .info-card {
    box-shadow: none;
    border: 1px solid #ddd;
  }
  .order-invoice-print,
  .order-invoice-print .order-invoice-sheet,
  .order-invoice-print .order-invoice-sheet * {
    background: #fff !important;
    box-shadow: none !important;
    border-radius: 0 !important;
  }
  /* print-color-adjust → src/ui/print/print.scss */
}
/* ==========================================================================
   WORK ORDER / WORKSHEET MODAL STYLES
   ==========================================================================
   Visual styling for the Work Order print preview modal.
   These are UI contracts following src/ui/README.md guidelines.
   ========================================================================== */
/* ==================== BASE PDF MODAL CONTAINER ==================== */
app-work-order-receipt {
  display: block;
}

.pdf-modal-container {
  display: flex;
  flex-direction: column;
  height: 100%;
  max-height: 90vh;
  background: var(--ui-glass-bg);
  border-radius: var(--ui-radius-2xl);
  overflow: hidden;
}

/* Glass Modal Header - Hidden on Print */
.pdf-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  background: rgba(255, 255, 255, 0.03);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.pdf-header-content {
  display: flex;
  align-items: center;
  gap: 12px;
}

.pdf-header-content .header-icon {
  font-size: 20px;
  color: var(--color-accent);
}

.pdf-header-content .header-title {
  font-size: 18px;
  font-weight: 600;
  color: #fff;
  margin: 0;
}

.pdf-header-actions .pill-trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 14px;
  height: 32px;
  border-radius: 999px;
  background: rgba(99, 102, 241, 0.25);
  color: rgba(255, 255, 255, 0.92);
  font-size: 12px;
  font-weight: 500;
  border: 1px solid rgba(99, 102, 241, 0.3);
  cursor: pointer;
  transition: all 0.18s ease;
  white-space: nowrap;
}
.pdf-header-actions .pill-trigger:hover {
  background: rgba(99, 102, 241, 0.38);
  color: #fff;
  border-color: rgba(99, 102, 241, 0.45);
  transform: none;
  box-shadow: none;
}

/* Scrollable Modal Body */
.pdf-modal-body {
  flex: 1;
  overflow-y: auto;
}

/* White background ONLY when body contains print/PDF content */
.pdf-modal-body:has(.pdf-content-wrapper) {
  background: #fff;
}

/* PDF Content Wrapper */
.pdf-content-wrapper {
  padding: 24px;
  max-width: 100%;
  margin: 0;
  background: #fff;
}

/* Loading State */
.worksheet-loader {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 400px;
  background: #fff;
}

.loader-content {
  text-align: center;
  color: #374151;
}

.loader-spinner {
  width: 48px;
  height: 48px;
  border: 4px solid #e5e7eb;
  border-top-color: #6366f1;
  border-radius: 50%;
  animation: worksheet-spin 1s linear infinite;
  margin: 0 auto 16px;
}

@keyframes worksheet-spin {
  to {
    transform: rotate(360deg);
  }
}
/* ==================== PAGE WRAPPER ==================== */
.wo-page-wrapper {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

.wo-page-content {
  flex: 1;
}

/* ==================== PAGE TITLE ==================== */
.wo-page-title {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
  padding-bottom: 14px;
  border-bottom: 1px solid #e5e7eb;
}
.wo-page-title i {
  font-size: 24px;
  color: #f97316;
  background: #fff7ed;
  padding: 8px;
  border-radius: 8px;
}
.wo-page-title h1 {
  font-size: 24px;
  font-weight: 700;
  color: #1a1a1a;
  margin: 0;
  letter-spacing: -0.01em;
}

/* ==================== SECTION 1: HEADER ==================== */
.wo-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 32px;
  margin-bottom: 20px;
}

.wo-header-left {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* CRITICAL: Logo sizing - prevents oversized logo */
.wo-logo {
  width: 100px;
  height: auto;
  object-fit: contain;
}

.wo-header-center {
  flex: 1;
}

.wo-meta-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px 16px;
}

.wo-meta-item {
  display: flex;
  flex-direction: column;
}

.wo-meta-label {
  font-size: 9px;
  font-weight: 600;
  color: #666;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.wo-meta-value {
  font-size: 16px;
  font-weight: 700;
  color: #000;
}

.wo-promised {
  color: #dc2626 !important;
  font-weight: 700 !important;
}

/* ==================== SECTION 2: VEHICLE BLOCK ==================== */
.wo-vehicle-block {
  background: #f0f0f0;
  border: 3px solid #000;
  padding: 20px;
  margin-bottom: 20px;
}

.wo-vehicle-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
}

.wo-vehicle-left {
  flex: 1;
}

.wo-reg-number {
  font-size: 44px;
  font-weight: 900;
  color: #000;
  letter-spacing: 4px;
  text-transform: uppercase;
  line-height: 1;
  margin-bottom: 12px;
  font-family: var(--ui-font-display);
}

.wo-vehicle-details {
  border-top: 1px solid #d1d5db;
  padding-top: 12px;
}

.wo-vehicle-row {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
}

.wo-vehicle-item {
  display: flex;
  flex-direction: column;
}

.wo-vehicle-label {
  font-size: 10px;
  font-weight: 600;
  color: #6b7280;
  text-transform: uppercase;
}

.wo-vehicle-value {
  font-size: 16px;
  font-weight: 700;
  color: #000;
}

.wo-vehicle-qr {
  display: flex;
  align-items: center;
  justify-content: center;
}

.wo-qr-code {
  padding: 8px;
  background: #fff;
  border: 2px solid #000;
}

/* ==================== SECTION 3: SERVICES & TECHNICIANS ==================== */
.wo-section-title {
  font-size: 14px;
  font-weight: 700;
  color: #000;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin: 0 0 12px 0;
  padding-bottom: 6px;
  border-bottom: 2px solid #e5e7eb;
}
.wo-section-title.wo-section-title-large {
  font-size: 18px;
  letter-spacing: 1.5px;
}

.wo-services-section {
  margin-bottom: 20px;
}

.wo-services-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}

.wo-service-card {
  border: 2px solid #d1d5db;
  padding: 12px;
  background: #fff;
}

.wo-service-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
  border-bottom: 1px solid #d1d5db;
  padding-bottom: 12px;
}

.wo-service-number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  background: #f3f4f6;
  color: #374151;
  font-size: 13px;
  font-weight: 700;
  border-radius: 4px;
  border: 1px solid #d1d5db;
}

.wo-service-name {
  font-size: 16px;
  font-weight: 700;
  color: #000;
  flex: 1;
}

.wo-technicians-grid {
  display: grid;
  grid-template-columns: 40% 60%;
  gap: 12px;
}

.wo-tech-column {
  display: flex;
  flex-direction: column;
}

.wo-tech-subtitle {
  font-size: 10px;
  font-weight: 700;
  color: #6b7280;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 4px;
}

.wo-technician-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 2px 0;
  font-size: 13px;
  color: #374151;
}
.wo-technician-row i {
  color: #6b7280;
  font-size: 12px;
}
.wo-technician-row.wo-tech-lead i {
  color: #166534;
}

.wo-tech-name {
  font-weight: 600;
}

.wo-pending-assignment {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: #92400e;
  font-weight: 600;
  font-style: italic;
}
.wo-pending-assignment i {
  color: #f59e0b;
  font-size: 16px;
}

.wo-no-services {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 16px;
  background: #f3f4f6;
  border: 1px dashed #d1d5db;
  color: #6b7280;
  font-size: 13px;
}

/* ==================== SECTION 4: NOTES ==================== */
.wo-notes-section {
  margin-bottom: 20px;
}

.wo-notes-content {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.wo-note-block {
  padding: 12px;
  background: #f9fafb;
  border-left: 4px solid #3b82f6;
}
.wo-note-block.caution {
  border-left-color: #dc2626;
  background: #fef2f2;
}

.wo-note-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 700;
  color: #374151;
  text-transform: uppercase;
  margin-bottom: 4px;
}
.wo-note-label i {
  font-size: 12px;
}

.wo-note-text {
  font-size: 14px;
  color: #000;
  line-height: 1.5;
}

/* ==================== FOOTER ==================== */
.wo-footer {
  padding-top: 16px;
  border-top: 1px solid #d1d5db;
  margin-top: 20px;
}

.wo-footer-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 11px;
  color: #6b7280;
}

.wo-company-name {
  font-weight: 600;
}

.wo-gstin {
  font-family: var(--ui-font-mono);
}

/* ==================== PRINT STYLES ==================== */
@media print {
  /* Global resets, print-color-adjust, .no-print, @page → src/ui/print/print.scss */
  .pdf-modal-header {
    display: none !important;
  }
  .wo-reg-number {
    font-size: 44px;
    -webkit-text-stroke: 1px #000;
  }
  .wo-vehicle-block {
    background: #f0f0f0 !important;
  }
  .wo-qr-code {
    border: 2px solid #000 !important;
  }
  .wo-page-title {
    border-bottom: 1px solid #d1d5db !important;
  }
  .wo-page-title h1 {
    color: #000 !important;
    font-size: 22px;
    font-weight: 700;
  }
  .wo-page-title i {
    color: #f97316 !important;
    font-size: 20px;
    background: #fff7ed !important;
    padding: 6px;
    border-radius: 6px;
  }
  .wo-services-section,
  .wo-notes-section {
    page-break-inside: avoid;
  }
  .wo-service-card {
    page-break-inside: avoid;
  }
}
/* ==================== RESPONSIVE ==================== */
@media screen and (max-width: 768px) {
  .wo-header {
    flex-direction: column;
    gap: 16px;
  }
  .wo-meta-grid {
    grid-template-columns: 1fr 1fr;
  }
  .wo-reg-number {
    font-size: 32px;
    letter-spacing: 2px;
  }
  .wo-services-list {
    grid-template-columns: 1fr;
  }
  .wo-vehicle-row {
    flex-direction: column;
    gap: 12px;
  }
}
/* ==========================================================================
   MANAGE SPECIALISATIONS DIALOG
   ========================================================================== */
.manage-specialisations-dialog {
  /* Form Section */
  /* List Section */
  /* Items List */
}
.manage-specialisations-dialog .form-section {
  margin-bottom: 20px;
}
.manage-specialisations-dialog .section-title {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 150, 100, 0.85);
  margin: 0 0 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.manage-specialisations-dialog .inline-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.manage-specialisations-dialog .form-field-wide {
  width: 100%;
}
.manage-specialisations-dialog .form-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
.manage-specialisations-dialog .list-section {
  margin-top: 16px;
}
.manage-specialisations-dialog .loading-state {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 20px 0;
  color: rgba(255, 255, 255, 0.5);
  font-size: 13px;
}
.manage-specialisations-dialog .empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 24px 0;
  color: rgba(255, 255, 255, 0.35);
  font-size: 13px;
}
.manage-specialisations-dialog .empty-state mat-icon {
  font-size: 32px;
  width: 32px;
  height: 32px;
  opacity: 0.4;
}
.manage-specialisations-dialog .items-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.manage-specialisations-dialog .list-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  transition: all 0.2s ease;
}
.manage-specialisations-dialog .list-item:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.1);
}
.manage-specialisations-dialog .list-item.editing {
  border-color: rgba(255, 150, 100, 0.3);
  background: rgba(255, 150, 100, 0.06);
}
.manage-specialisations-dialog .item-info {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 0;
}
.manage-specialisations-dialog .item-name {
  font-size: 14px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.9);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.manage-specialisations-dialog .item-actions {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}
.manage-specialisations-dialog .action-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: none;
  border-radius: 8px;
  background: transparent;
  cursor: pointer;
  transition: all 0.2s ease;
  padding: 0;
}
.manage-specialisations-dialog .action-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}
.manage-specialisations-dialog .action-btn.edit {
  color: rgba(255, 255, 255, 0.5);
}
.manage-specialisations-dialog .action-btn.edit:hover {
  background: rgba(100, 180, 255, 0.12);
  color: rgba(100, 180, 255, 0.9);
}
.manage-specialisations-dialog .action-btn.delete {
  color: rgba(255, 255, 255, 0.4);
}
.manage-specialisations-dialog .action-btn.delete:hover {
  background: rgba(255, 80, 80, 0.12);
  color: rgba(255, 80, 80, 0.9);
}
.manage-specialisations-dialog .action-btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

/* ==========================================================================
   UI MODALS - FORMS
   ==========================================================================
   Form modal styles - inputs, chips, cards, step wizards, vendors, banks.
   Migrated from component-driven to contract-driven architecture.

   NOTE: Glass container base visuals (background, blur, border, shadow)
   are defined in layout/modal.scss. DO NOT redeclare them here.
   ========================================================================== */
/* ==========================================================================
   UI FORM CONTRACT — SINGLE SOURCE OF TRUTH
   ==========================================================================
   All form field styling MUST flow through .ui-form selector.

   ARCHITECTURE RULES:
   ❌ NO styling from overlay classes (.glass-dialog-panel, .cdk-overlay-pane)
   ❌ NO !important for input styling
   ✅ All modals with forms MUST have class="ui-form" on the <form> element
   ========================================================================== */
.ui-form .mat-mdc-form-field {
  width: 100%;
  --mdc-filled-text-field-container-color: transparent;
  --mdc-filled-text-field-focus-container-color: transparent;
}

.ui-form .mat-mdc-text-field-wrapper {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--ui-radius-lg, 12px);
  padding-left: var(--ui-space-4, 16px);
  padding-right: var(--ui-space-4, 16px);
}

.ui-form .mat-mdc-form-field-infix {
  padding-top: 10px;
  padding-bottom: 10px;
  min-height: 44px;
  display: flex;
  align-items: center;
}

/* Adjust input padding when label is floated (has value or focused) */
.ui-form .mat-mdc-form-field:has(.mdc-floating-label--float-above) .mat-mdc-form-field-infix {
  padding-top: 18px;
  padding-bottom: 4px;
}

.ui-form .mat-mdc-form-field-infix .mat-mdc-input-element,
.ui-form .mat-mdc-form-field-infix textarea.mat-mdc-input-element {
  padding-top: 2px;
  padding-bottom: 2px;
  line-height: 1.2;
}

.ui-form .mat-mdc-form-field-subscript-wrapper {
  margin-top: 4px;
  min-height: 0;
}

.ui-form .mat-mdc-text-field-wrapper .mdc-text-field__input {
  background: transparent;
}

.ui-form .mat-mdc-form-field-focus-overlay {
  background: transparent;
}

.ui-form .mat-mdc-floating-label {
  top: 50%;
  transform: translateY(-50%);
  color: rgba(255, 255, 255, 0.5);
}

.ui-form .mat-mdc-floating-label.mdc-floating-label--float-above {
  top: 12px;
  transform: translateY(-50%) scale(0.75);
  color: rgba(255, 255, 255, 0.7);
}

/* ==========================================================================
   FIX: Force label floating for select fields with values
   ==========================================================================
   Material's MDC components reliably detect select values via the 
   .mat-mdc-select-value-text element. This ensures labels float for selects.
   For input fields, we rely on Material's .mdc-floating-label--float-above class.
   ========================================================================== */
/* Float label for select fields with a selected value */
.ui-form .mat-mdc-form-field:has(.mat-mdc-select-value-text) .mat-mdc-floating-label {
  transform: translateY(-106%) scale(0.75);
  color: rgba(255, 255, 255, 0.7);
}

.ui-form .mat-mdc-form-field.mat-focused .mat-mdc-floating-label {
  color: var(--ui-brand, #ff8a50);
}

.ui-form .mat-mdc-form-field.mat-focused .mat-mdc-text-field-wrapper {
  border-color: rgba(255, 122, 61, 0.5);
  background: rgba(255, 255, 255, 0.06);
}

.ui-form .mdc-text-field--filled:not(.mdc-text-field--disabled) {
  background: transparent;
}

/* Disabled fields - subtle, lighter appearance */
.ui-form .mdc-text-field--disabled {
  opacity: 0.5;
}

.ui-form .mdc-text-field--disabled .mat-mdc-text-field-wrapper {
  background: rgba(255, 255, 255, 0.015);
  border-color: rgba(255, 255, 255, 0.045);
}

.ui-form .mdc-text-field--disabled .mdc-text-field__input,
.ui-form .mdc-text-field--disabled .mat-mdc-floating-label {
  color: rgba(255, 255, 255, 0.28);
}

.ui-form .mdc-text-field--disabled .mat-mdc-select-arrow {
  opacity: 0.4;
}

.ui-form input.mat-mdc-input-element,
.ui-form textarea.mat-mdc-input-element {
  color: rgba(255, 255, 255, 0.9);
  caret-color: var(--ui-brand, #ff8a50);
}

.ui-form .mat-mdc-select-value {
  color: rgba(255, 255, 255, 0.9);
}

.ui-form .mat-mdc-select-trigger {
  display: flex;
  align-items: center;
  height: 100%;
  gap: var(--ui-space-2);
}

.ui-form .mat-mdc-select-value,
.ui-form .mat-mdc-select-value-text {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  line-height: 1.2;
}

.ui-form .mat-mdc-select-value-text mat-icon,
.ui-form .mat-mdc-select-value mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.ui-form .mdc-line-ripple {
  display: none;
}

/* Premium dropdown arrow */
.ui-form .mat-mdc-select-arrow {
  color: var(--ui-brand, #ff8a50);
  opacity: 0.8;
}

.ui-form .mat-mdc-form-field.mat-focused .mat-mdc-select-arrow {
  opacity: 1;
}

/* ==========================================================================
   FORM LAYOUT — ROWS & SECTIONS
   ==========================================================================
   Usage:
     <div class="ui-form__section">
       <div class="ui-form__row">       ← 2 columns
       <div class="ui-form__row--3">    ← 3 columns
   ========================================================================== */
.ui-form__section {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ui-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.ui-form__row--3 {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 12px;
}

/* Single column fallback on narrow modals */
@media (max-width: 480px) {
  .ui-form__row,
  .ui-form__row--3 {
    grid-template-columns: 1fr;
  }
}
/* ---------- FORM SECTION LABELS ---------- */
.ui-form__section-label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-top: 16px;
  margin-bottom: 4px;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

/* Multi-item context indicator */
.cms-item-count-hint {
  font-weight: 400;
  text-transform: none;
  letter-spacing: normal;
  color: rgba(255, 179, 71, 0.7);
}

/* ==========================================================================
   CMS COLOR PICKER — Hex input + native color picker
   ========================================================================== */
.cms-color-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.cms-color-field__label {
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.cms-color-field__row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.cms-color-field__picker {
  width: 40px;
  height: 40px;
  border: 2px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  cursor: pointer;
  padding: 2px;
  background: transparent;
  transition: border-color 0.2s ease;
  flex-shrink: 0;
}

.cms-color-field__picker:hover {
  border-color: rgba(255, 122, 61, 0.4);
}

.cms-color-field__picker::-webkit-color-swatch-wrapper {
  padding: 0;
}

.cms-color-field__picker::-webkit-color-swatch {
  border: none;
  border-radius: 4px;
}

.cms-color-field__hex {
  flex: 1;
  height: 40px;
  padding: 0 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  font-family: "SF Mono", "Fira Code", monospace;
  letter-spacing: 0.04em;
  outline: none;
  transition: all 0.2s ease;
}

.cms-color-field__hex:focus {
  border-color: rgba(255, 122, 61, 0.5);
  background: rgba(255, 255, 255, 0.06);
}

.cms-color-field__hex::placeholder {
  color: rgba(255, 255, 255, 0.3);
}

/* ==========================================================================
   CMS GRADIENT SWATCH — Live preview bar
   ========================================================================== */
.cms-gradient-swatch {
  height: 48px;
  border-radius: 10px;
  margin-top: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.08);
  position: relative;
  overflow: hidden;
}

.cms-gradient-swatch__label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.9);
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
}

/* ==========================================================================
   PLACEHOLDER vs LABEL — prevent double text
   ==========================================================================
   When mat-label is present, the native ::placeholder overlaps with the
   floating label. Hide the placeholder; the label acts as placeholder.
   ========================================================================== */
.ui-form .mat-mdc-form-field:has(.mat-mdc-floating-label) input::placeholder,
.ui-form .mat-mdc-form-field:has(.mat-mdc-floating-label) textarea::placeholder {
  color: transparent;
}

/* ==========================================================================
   COMPACT BUTTON VARIANT — for in-card actions
   ==========================================================================
   Usage: <button class="glass-btn glass-btn-secondary glass-btn--sm">
   ========================================================================== */
.glass-btn--sm {
  height: 28px;
  padding: 4px 12px;
  font-size: 12px;
  gap: 5px;
}

.glass-btn--sm mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

/* ==========================================================================
   FORM LABELS
   ========================================================================== */
.glass-label {
  display: block;
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.7);
}

.glass-label .required {
  color: #ff7a3d;
}

/* ==========================================================================
   ROLE/CHIP EDITING
   ========================================================================== */
.roles-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 240px;
  overflow-y: auto;
  padding: 2px;
}

.role-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.role-input {
  flex: 1;
  height: 44px;
  padding: 0 14px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  font-family: inherit;
  outline: none;
  transition: all 0.2s ease;
}

.role-input:focus {
  border-color: rgba(255, 127, 80, 0.5);
  background: rgba(255, 255, 255, 0.06);
}

.role-input::placeholder {
  color: rgba(255, 255, 255, 0.35);
}

.role-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 24px;
  padding: 0 8px;
  background: rgba(255, 122, 61, 0.15);
  border: 1px solid rgba(255, 122, 61, 0.3);
  border-radius: 12px;
  font-size: 11px;
  font-weight: 600;
  color: #ff8a50;
}

.role-remove-btn {
  width: 44px;
  height: 44px;
  min-width: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  color: rgba(255, 255, 255, 0.4);
  cursor: pointer;
  transition: all 0.2s ease;
}

.role-remove-btn:hover:not(:disabled) {
  background: rgba(239, 68, 68, 0.1);
  border-color: rgba(239, 68, 68, 0.3);
  color: #f87171;
}

.role-remove-btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

.role-remove-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.add-role-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  margin-top: 8px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px dashed rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  color: rgba(255, 255, 255, 0.6);
  font-size: 12px;
  font-weight: 500;
  font-family: inherit;
  cursor: pointer;
  transition: all 0.2s ease;
}

.add-role-btn:hover {
  background: rgba(255, 122, 61, 0.08);
  border-color: rgba(255, 122, 61, 0.3);
  color: #ff8a50;
}

.add-role-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

/* ==========================================================================
   DANGER BUTTON
   ========================================================================== */
.glass-btn-danger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 20px;
  height: 36px;
  border-radius: 100px;
  font-size: 14px;
  font-weight: 500;
  font-family: inherit;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
  outline: none;
  background: rgba(239, 68, 68, 0.08);
  border: 1px solid rgba(239, 68, 68, 0.35);
  color: #f87171;
}

.glass-btn-danger:hover:not(:disabled) {
  background: rgba(239, 68, 68, 0.1);
  border-color: rgba(239, 68, 68, 0.4);
  color: #f87171;
}

.glass-btn-danger:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

.glass-btn-danger mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  margin-right: 4px;
}

/* ==========================================================================
   STEP PROGRESS WIZARD
   ========================================================================== */
.step-progress {
  padding: 16px 20px 10px;
  position: relative;
}

.step-indicators {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  position: relative;
}

.step-connector {
  flex: 1;
  height: 2px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 1px;
  margin-top: 17px;
  margin-left: 12px;
  margin-right: 12px;
}

.step-connector.active {
  background: linear-gradient(90deg, #dc8250, #e09060);
}

.step-indicator {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.step-indicator.upcoming {
  cursor: default;
}

.step-dot {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 700;
  transition: all 0.3s ease;
  background: rgba(255, 255, 255, 0.08);
  border: 2px solid rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.4);
}

.step-indicator.completed .step-dot {
  background: rgba(105, 240, 174, 0.15);
  border-color: #69f0ae;
  color: #69f0ae;
}

.step-indicator.current .step-dot {
  background: rgba(220, 130, 80, 0.2);
  border-color: #dc8250;
  color: #dc8250;
  box-shadow: 0 0 16px rgba(220, 130, 80, 0.3);
}

.step-dot mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.step-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.4);
}

.step-indicator.completed .step-label,
.step-indicator.current .step-label {
  color: rgba(255, 255, 255, 0.7);
}

.step-content {
  animation: modalFadeIn 0.2s ease;
}

@keyframes modalFadeIn {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* ==========================================================================
   ERROR & INFO BANNERS
   ========================================================================== */
.error-banner {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  margin: 0 24px;
  background: rgba(239, 68, 68, 0.12);
  border: 1px solid rgba(239, 68, 68, 0.3);
  border-radius: 10px;
}

.error-banner mat-icon {
  color: #f87171;
  font-size: 20px;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.error-banner span {
  flex: 1;
  font-size: 13px;
  color: #fca5a5;
}

.close-error {
  background: transparent;
  border: none;
  padding: 4px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

.close-error mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: rgba(255, 255, 255, 0.5);
}

.close-error:hover mat-icon {
  color: rgba(255, 255, 255, 0.8);
}

.info-note {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 16px;
  background: rgba(255, 179, 71, 0.08);
  border: 1px solid rgba(255, 179, 71, 0.2);
  border-radius: 10px;
  margin-top: 12px;
}

.info-note mat-icon {
  color: #ffb347;
  font-size: 18px;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  margin-top: 1px;
}

.info-note span {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.4;
}

/* ==========================================================================
   VENDOR CARD
   ========================================================================== */
.vendor-search-container {
  position: relative;
}

.selected-vendor-card {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  padding: 16px;
}

.vendor-card-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  margin-bottom: 14px;
}

.vendor-avatar-lg {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(59, 130, 246, 0.3), rgba(37, 99, 235, 0.3));
  border: 1px solid rgba(59, 130, 246, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: 700;
  color: #93c5fd;
  flex-shrink: 0;
}

.vendor-main-info {
  flex: 1;
}

.vendor-main-info h4 {
  margin: 0;
  font-size: 16px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
}

.vendor-company {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
}

.change-vendor-btn {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.7);
  padding: 6px 14px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

.change-vendor-btn:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}

.vendor-info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 16px;
}

.info-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.info-item mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: rgba(255, 255, 255, 0.4);
  margin-top: 2px;
}

.info-item label {
  display: block;
  font-size: 10px;
  color: rgba(255, 255, 255, 0.4);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 2px;
}

.info-item span {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.85);
}

/* ==========================================================================
   BANK SELECTION
   ========================================================================== */
.bank-section {
  margin-top: 16px;
  padding-top: 16px;
  padding-bottom: 16px;
  margin-bottom: 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.section-label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 10px;
}

.bank-cards {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.bank-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.bank-card:hover {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.12);
}

.bank-card.selected {
  background: rgba(34, 197, 94, 0.08);
  border-color: rgba(34, 197, 94, 0.4);
}

.bank-icon {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.05);
  display: flex;
  align-items: center;
  justify-content: center;
}

.bank-icon mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 255, 255, 0.5);
}

.bank-card.selected .bank-icon {
  background: rgba(34, 197, 94, 0.15);
}

.bank-card.selected .bank-icon mat-icon {
  color: #4ade80;
}

.bank-info {
  flex: 1;
}

.bank-name {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 2px;
}

.bank-details {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
}

.check-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: #4ade80;
}

.no-bank-notice {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px;
  background: rgba(255, 179, 71, 0.08);
  border: 1px solid rgba(255, 179, 71, 0.2);
  border-radius: 10px;
  margin-top: 12px;
}

.no-bank-notice mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: #ffb347;
}

.no-bank-notice span {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.6);
}

/* ==========================================================================
   REVIEW SECTION
   ========================================================================== */
.review-card {
  padding: 24px;
}

.review-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-bottom: 20px;
}

.review-section h4 {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.5);
  margin: 0 0 12px 0;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.review-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
}

.review-item .label {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
}

.review-item .value {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}

.review-item.highlight {
  background: rgba(255, 255, 255, 0.03);
  margin: 0 -12px;
  padding: 12px;
  border-radius: 10px;
}

.amount-large {
  font-size: 18px;
  font-weight: 700;
  color: #69f0ae !important;
}

.priority-badge {
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
}

.priority-badge.priority-low {
  background: rgba(105, 240, 174, 0.15);
  color: #69f0ae;
}

.priority-badge.priority-medium {
  background: rgba(255, 179, 71, 0.15);
  color: #ffb347;
}

.priority-badge.priority-high {
  background: rgba(255, 99, 132, 0.15);
  color: #ff6384;
}

.review-notes {
  background: rgba(255, 255, 255, 0.03);
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 16px;
}

.review-notes h4 {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.5);
  margin: 0 0 8px 0;
}

.review-notes p {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.8);
  margin: 0;
  line-height: 1.5;
}

.status-preview {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background: rgba(100, 181, 246, 0.08);
  border: 1px solid rgba(100, 181, 246, 0.2);
  border-radius: 10px;
}

.status-preview mat-icon {
  color: #64b5f6;
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.status-preview span {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.75);
}

.status-preview strong {
  color: #64b5f6;
}

/* ==========================================================================
   EMI SUMMARY
   ========================================================================== */
.emi-summary {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.emi-highlight {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 20px;
  background: linear-gradient(135deg, rgba(255, 122, 61, 0.15), rgba(255, 80, 40, 0.08));
  border: 1px solid rgba(255, 122, 61, 0.3);
  border-radius: 12px;
}

.emi-label {
  font-size: 14px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.8);
}

.emi-value {
  font-size: 22px;
  font-weight: 700;
  color: #ff8a50;
  letter-spacing: -0.01em;
}

/* ==========================================================================
   PREVIEW TABLE
   ========================================================================== */
.preview-table-wrap {
  max-height: 280px;
  overflow-y: auto;
}

.preview-table {
  width: 100%;
  border-collapse: collapse;
}

.preview-table th {
  padding: 10px 16px;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.6);
  background: rgba(255, 255, 255, 0.04);
  font-weight: 600;
  text-align: left;
}

.preview-table td {
  padding: 12px 16px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.85);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.preview-table .installment-num {
  color: rgba(255, 255, 255, 0.5);
  font-weight: 500;
}

.preview-table .amount-cell {
  text-align: right;
  font-weight: 600;
  color: rgba(255, 176, 131, 0.95);
}

.preview-table .total-row td {
  border-top: 2px solid rgba(255, 122, 61, 0.4);
  border-bottom: none;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.95);
  padding-top: 14px;
}

.preview-table .total-row .amount-cell {
  color: #ff8a50;
}

.preview-table-wrap::-webkit-scrollbar {
  width: 6px;
}

.preview-table-wrap::-webkit-scrollbar-track {
  background: transparent;
}

.preview-table-wrap::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.1);
  border-radius: 3px;
}

.preview-table-wrap::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.15);
}

/* ==========================================================================
   FORM LAYOUTS
   ========================================================================== */
.vendor-form,
.payable-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.full-width {
  width: 100%;
}

.currency-prefix {
  color: rgba(255, 255, 255, 0.6);
  font-weight: 600;
  margin-left: 8px;
}

.section-hint {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.55);
  margin: -8px 0 16px 0;
  line-height: 1.4;
}

/* Spinning animation */
.spin,
.spinning {
  animation: modalSpin 1s linear infinite;
}

@keyframes modalSpin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
/* Clickable date field */
.date-field-clickable {
  cursor: pointer !important;
}

.date-field-clickable input {
  cursor: pointer !important;
}

/* ==========================================================================
   MODAL HEADER ENHANCEMENTS
   ========================================================================== */
.glass-modal-header .header-content {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  min-width: 0;
}

/* Split header only when template explicitly uses left-group pattern */
.glass-modal-header .header-content:has(.header-left) {
  justify-content: space-between;
  width: 100%;
}

.glass-modal-header .header-left {
  display: flex;
  flex-direction: row;
  align-items: center;
  flex-wrap: nowrap;
  gap: 14px;
}

.glass-modal-header .header-icon {
  font-size: 24px;
  width: 24px;
  height: 24px;
  color: #ff7a3d;
  filter: drop-shadow(0 0 8px rgba(255, 122, 61, 0.5));
}

.glass-modal-header .header-subtitle {
  display: block;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
  font-weight: 400;
  margin-top: 4px;
}

/* Close Button - Global modal close button styling */
.close-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.6);
  cursor: pointer;
  transition: all 0.2s ease;
  padding: 0;
  flex-shrink: 0;
}

.close-btn:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.9);
}

.close-btn mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
}

/* ==========================================================================
   FOOTER ENHANCEMENTS
   ========================================================================== */
.glass-modal-footer {
  display: flex;
  align-items: center;
  gap: 12px;
}

.footer-spacer {
  flex: 1;
}

.btn-primary mat-icon,
.btn-create mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  margin-left: 4px;
}

.btn-create {
  min-width: 140px;
}

.btn-create mat-spinner {
  margin: 0 auto;
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 600px) {
  .review-grid {
    grid-template-columns: 1fr;
  }
  .vendor-info-grid {
    grid-template-columns: 1fr;
  }
}
/* ==========================================================================
   ⚠️ DEPRECATED: LEGACY GLASS-DIALOG-PANEL OVERRIDES
   ==========================================================================
   MIGRATION STATUS: DEPRECATED — Use .ui-form contract instead.
   These selectors will be removed once all modals are migrated.
   DO NOT add new rules here.
   ========================================================================== */
/* Form field overrides for glass-dialog-panel ONLY */
.glass-dialog-panel .mat-mdc-form-field,
.glass-dialog-panel .mat-mdc-text-field-wrapper,
.glass-dialog-panel .mat-mdc-form-field-flex,
.glass-dialog-panel .mdc-text-field,
.glass-dialog-panel .mdc-text-field--filled {
  background-color: transparent !important;
  background: transparent !important;
}

.glass-dialog-panel .mat-mdc-text-field-wrapper {
  background: rgba(255, 255, 255, 0.05) !important;
  border-radius: 12px !important;
  border: 1px solid rgba(255, 255, 255, 0.05) !important;
  transition: all 0.2s ease;
}

.glass-dialog-panel .mat-mdc-input-element,
.glass-dialog-panel .mat-mdc-select-value,
.glass-dialog-panel .mat-mdc-select-arrow,
.glass-dialog-panel textarea {
  color: #ffffff !important;
}

.glass-dialog-panel .mat-mdc-form-field-label,
.glass-dialog-panel .mat-mdc-floating-label {
  top: 22px !important;
  color: rgba(255, 255, 255, 0.6) !important;
}

.glass-dialog-panel .mat-mdc-floating-label.mdc-floating-label--float-above {
  transform: translateY(-106%) scale(0.75) !important;
}

.glass-dialog-panel .mat-mdc-form-field-underline,
.glass-dialog-panel .mdc-line-ripple {
  display: none !important;
}

/* Card box transparency in glass-dialog-panel ONLY */
.glass-dialog-panel .card-box,
.glass-dialog-panel .card-header {
  background-color: transparent !important;
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
}

/* ==========================================================================
   GLASS MODAL FOOTER
   ==========================================================================
   Standard footer for glass modals with action buttons.
   Usage: <div class="glass-modal-footer">
   ========================================================================== */
.glass-modal-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  padding: 20px 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  background: transparent;
  flex-shrink: 0;
}

/* ==========================================================================
   GLASS MODAL BUTTONS
   ==========================================================================
   Button styles for glass modals. 
   Usage: <button class="glass-btn glass-btn-primary">
   ========================================================================== */
.glass-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 20px;
  height: 36px;
  border-radius: 100px;
  font-size: 14px;
  font-weight: 500;
  font-family: inherit;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
  border: none;
  outline: none;
}

.glass-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

/* Icon-only glass button (close, remove, etc.) */
.glass-btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.8);
  cursor: pointer;
  transition: all 0.2s ease;
}

.glass-btn-icon:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.95);
}

.glass-btn-icon:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.glass-btn-icon mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  margin: 0;
}

.glass-btn-icon.glass-btn-danger {
  background: rgba(239, 68, 68, 0.08);
  border-color: rgba(239, 68, 68, 0.35);
  color: rgba(239, 68, 68, 0.85);
}

.glass-btn-icon.glass-btn-danger:hover:not(:disabled) {
  background: rgba(239, 68, 68, 0.16);
  border-color: rgba(239, 68, 68, 0.5);
  color: #f87171;
}

/* Secondary button - ghost style */
.glass-btn-secondary {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.7);
}

.glass-btn-secondary:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.9);
}

/* Primary button - accent gradient */
.glass-btn-primary {
  background: linear-gradient(135deg, rgba(255, 120, 80, 0.9), rgba(225, 65, 37, 0.9));
  border: 1px solid rgba(255, 120, 80, 0.6);
  color: white;
  box-shadow: 0 4px 16px rgba(255, 120, 80, 0.3);
}

.glass-btn-primary:hover:not(:disabled) {
  background: linear-gradient(135deg, rgb(255, 120, 80), rgb(225, 65, 37));
  box-shadow: 0 6px 20px rgba(255, 120, 80, 0.4);
  transform: translateY(-1px);
}

.glass-btn-primary:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

/* Success button - green for approve/confirm actions */
.glass-btn-success {
  background: linear-gradient(135deg, rgba(34, 197, 94, 0.85), rgba(22, 163, 74, 0.85));
  border: 1px solid rgba(34, 197, 94, 0.5);
  color: white;
  box-shadow: 0 4px 16px rgba(34, 197, 94, 0.25);
}

.glass-btn-success:hover:not(:disabled) {
  background: linear-gradient(135deg, rgb(34, 197, 94), rgb(22, 163, 74));
  box-shadow: 0 6px 20px rgba(34, 197, 94, 0.35);
  transform: translateY(-1px);
}

.glass-btn-success:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

/* Spinning animation for loading icons */
.glass-btn .spinning,
.spinning {
  animation: spin 1s linear infinite;
}

@keyframes spin {
  100% {
    transform: rotate(360deg);
  }
}
/* Block button - full width */
.glass-btn--block {
  width: 100%;
}

/* ==========================================================================
   GLASS MODAL CARDS
   ==========================================================================
   DEPRECATED: .glass-card visuals moved to ui/layout/card.scss
   Use .ui-card for card visuals.
   ========================================================================== */
/* .glass-card visuals → Single owner: ui/layout/card.scss */
/* Structural: modal-specific margin preserved */
.glass-modal-container > .glass-card:last-child {
  margin-bottom: 0;
}

.glass-modal-container .section-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.5);
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.glass-modal-container .section-title mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: rgba(255, 176, 131, 0.8);
}

/* ==========================================================================
   GLASS MODAL HEADER ICON HERO
   ==========================================================================
   Hero icon with glow effect for modal headers.
   Usage: <div class="header-icon-hero"><mat-icon>...</mat-icon></div>
   ========================================================================== */
.header-icon-hero {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: linear-gradient(145deg, var(--theme-accent-bg, rgba(255, 120, 80, 0.12)), rgba(255, 255, 255, 0.04));
  border: 1px solid var(--theme-accent-glow, rgba(255, 120, 80, 0.4));
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 20px var(--theme-accent-glow, rgba(255, 120, 80, 0.4));
  animation: icon-pulse 2s ease-in-out infinite;
}

.header-icon-hero mat-icon {
  font-size: 24px;
  width: 24px;
  height: 24px;
  color: var(--theme-accent, #ff7850);
}

@keyframes icon-pulse {
  0%, 100% {
    box-shadow: 0 0 15px var(--theme-accent-glow, rgba(255, 120, 80, 0.4));
  }
  50% {
    box-shadow: 0 0 25px var(--theme-accent-glow, rgba(255, 120, 80, 0.4)), 0 0 40px var(--theme-accent-glow, rgba(255, 120, 80, 0.4));
  }
}
/* ==========================================================================
   PICKUP/DROP THEME VARIABLES
   ========================================================================== */
.glass-modal-container.pickup-theme {
  --theme-accent: #ff7850;
  --theme-accent-glow: rgba(255, 120, 80, 0.4);
  --theme-accent-bg: rgba(255, 120, 80, 0.12);
  border-top: 3px solid #ff7850;
}

.glass-modal-container.drop-theme {
  --theme-accent: #6366f1;
  --theme-accent-glow: rgba(99, 102, 241, 0.4);
  --theme-accent-bg: rgba(99, 102, 241, 0.12);
  border-top: 3px solid #6366f1;
}

/* Drop theme primary button override */
.glass-modal-container.drop-theme .glass-btn-primary {
  background: linear-gradient(135deg, rgba(99, 102, 241, 0.9), rgba(79, 70, 229, 0.9));
  border: 1px solid rgba(99, 102, 241, 0.6);
  box-shadow: 0 4px 16px rgba(99, 102, 241, 0.3);
}

.glass-modal-container.drop-theme .glass-btn-primary:hover:not(:disabled) {
  background: linear-gradient(135deg, rgb(99, 102, 241), rgb(79, 70, 229));
  box-shadow: 0 6px 20px rgba(99, 102, 241, 0.4);
}

/* ==========================================================================
   QUICK ASSIGN MODAL SPECIFIC STYLES
   ========================================================================== */
/* Slot row grid */
.glass-modal-container .slot-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.glass-modal-container .slot-option {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
}

.glass-modal-container .slot-time {
  font-weight: 500;
  color: rgba(255, 255, 255, 0.9);
}

.glass-modal-container .slot-status {
  font-size: 10px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 12px;
}

.glass-modal-container .slot-status.available {
  background: rgba(34, 197, 94, 0.15);
  color: #22c55e;
}

.glass-modal-container .slot-status.unavailable {
  background: rgba(239, 68, 68, 0.15);
  color: #ef4444;
}

/* Loading and empty states */
.glass-modal-container .loading-indicator {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 0;
  color: rgba(255, 255, 255, 0.6);
  font-size: 13px;
}

.glass-modal-container .loading-indicator mat-spinner {
  --mdc-circular-progress-active-indicator-color: var(--theme-accent, #ff7850);
}

.glass-modal-container .empty-state {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 16px;
  color: rgba(255, 255, 255, 0.5);
  font-size: 13px;
  border: 1px dashed rgba(255, 255, 255, 0.15);
  border-radius: 8px;
  justify-content: center;
  margin-top: 12px;
}

.glass-modal-container .empty-state mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 255, 255, 0.4);
}

.glass-modal-container .error-message {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  margin-top: 12px;
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.3);
  border-radius: 8px;
  color: #f87171;
  font-size: 13px;
}

.glass-modal-container .error-message mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

/* Theme-aware form focus */
.glass-modal-container.pickup-theme .mat-mdc-form-field.mat-focused .mat-mdc-text-field-wrapper {
  border-color: rgba(255, 120, 80, 0.5);
}

.glass-modal-container.drop-theme .mat-mdc-form-field.mat-focused .mat-mdc-text-field-wrapper {
  border-color: rgba(99, 102, 241, 0.5);
}

/* Theme-aware suffix icons */
.glass-modal-container.pickup-theme .mat-icon[matsuffix] {
  color: rgba(255, 120, 80, 0.7);
}

.glass-modal-container.drop-theme .mat-icon[matsuffix] {
  color: rgba(99, 102, 241, 0.7);
}

/* ==========================================================================
   FORM LAYOUT - Column & Row Structure
   ========================================================================== */
.glass-form-column {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.glass-field {
  width: 100%;
}

.glass-field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 10px;
}

.glass-field-row-3 {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 10px;
  margin-bottom: 10px;
}

.glass-field-row .glass-field,
.glass-field-row-3 .glass-field {
  flex: 1;
  min-width: 0;
}

/* Full width field in a row */
.glass-field.full-width {
  grid-column: 1/-1;
}

/* ==========================================================================
   Form Section - Glass Card Panels for Column Groups
   ========================================================================== */
.ui-form .form-section {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 22px 60px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.08);
  border-radius: 22px;
  padding: 20px 24px;
  height: 100%;
}

/* Section Header - Orange Gradient Underline */
.ui-form .form-section .section-header {
  margin: 0 0 16px 0;
  padding-bottom: 14px;
  position: relative;
}

.ui-form .form-section .section-header::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, rgba(220, 130, 80, 0.35), rgba(255, 255, 255, 0.08), transparent);
}

/* Optional Field Badge */
.ui-form .optional-label {
  margin-bottom: 6px;
}

.ui-form .optional-badge {
  display: inline-block;
  padding: 2px 8px;
  background: rgba(255, 180, 100, 0.12);
  border: 1px solid rgba(255, 180, 100, 0.25);
  border-radius: 6px;
  font-size: 10px;
  font-weight: 600;
  color: rgba(255, 180, 100, 0.85);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* Inline Action Button (inside mat-form-field) */
.ui-form .field-action-btn-inline,
.glass-modal-container .field-action-btn-inline {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 50%;
  color: rgba(255, 255, 255, 0.35);
  cursor: pointer;
  transition: all 0.25s ease;
  margin-left: 2px;
  margin-right: 4px;
}

.ui-form .field-action-btn-inline:hover,
.glass-modal-container .field-action-btn-inline:hover {
  background: rgba(255, 180, 100, 0.1);
  color: rgba(255, 180, 100, 0.85);
  filter: drop-shadow(0 0 6px rgba(255, 140, 50, 0.35));
}

.ui-form .field-action-btn-inline:active,
.glass-modal-container .field-action-btn-inline:active {
  transform: scale(0.9);
}

.ui-form .field-action-btn-inline mat-icon,
.glass-modal-container .field-action-btn-inline mat-icon {
  font-size: 17px;
  width: 17px;
  height: 17px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

/* Country Code Prefix */
.ui-form .country-code-prefix {
  color: rgba(255, 255, 255, 0.6);
  font-weight: 500;
  margin-right: 8px;
}

/* ==========================================================================
   ⚠️ DEPRECATED: GLASS-MODAL-CONTAINER INPUT STYLING
   ==========================================================================
   MIGRATION STATUS: DEPRECATED — Use .ui-form contract instead.
   These selectors will be removed once all modals are migrated to .ui-form.
   ========================================================================== */
.glass-modal-container .mat-mdc-form-field {
  width: 100%;
  /* Override MDC CSS variables for dark theme */
  --mdc-filled-text-field-container-color: rgba(255, 255, 255, 0.04);
  --mdc-filled-text-field-focus-container-color: rgba(255, 255, 255, 0.06);
  --mdc-outlined-text-field-container-color: rgba(255, 255, 255, 0.04);
}

/* Compact subscript wrapper to reduce vertical gap between fields */
.glass-modal-container .mat-mdc-form-field-subscript-wrapper {
  min-height: 0 !important;
  margin-top: 0 !important;
  padding: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
}

/* But show the subscript area when it has a hint */
.glass-modal-container .mat-mdc-form-field-subscript-wrapper:has(.mat-mdc-form-field-hint-wrapper) {
  height: auto !important;
  margin-top: 4px !important;
  padding: 0 16px !important;
  overflow: visible !important;
}

/* Show the subscript area when it has an error */
.glass-modal-container .mat-mdc-form-field-subscript-wrapper:has(.mat-mdc-form-field-error-wrapper) {
  height: auto !important;
  margin-top: 4px !important;
  padding: 0 2px !important;
  overflow: visible !important;
}

/* Error text color — visible on dark glass backgrounds */
.glass-modal-container .mat-mdc-form-field-error-wrapper mat-error,
.glass-modal-container .mat-mdc-form-field-error-wrapper .mat-mdc-form-field-error {
  color: #f87171 !important;
  font-size: 11px;
  font-weight: 500;
}

.glass-modal-container .mat-mdc-form-field-bottom-align::before {
  height: 0 !important;
  display: none !important;
}

.glass-modal-container .mat-mdc-text-field-wrapper {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  padding-left: 16px;
  padding-right: 16px;
}

.glass-modal-container .mat-mdc-text-field-wrapper .mdc-text-field__input {
  background: transparent;
}

.glass-modal-container .mat-mdc-form-field-focus-overlay {
  background: transparent;
}

.glass-modal-container .mat-mdc-form-field.mat-focused .mat-mdc-text-field-wrapper {
  border-color: rgba(255, 122, 61, 0.5);
  background: rgba(255, 255, 255, 0.06);
}

.glass-modal-container .mdc-text-field--filled:not(.mdc-text-field--disabled) {
  background: transparent;
}

/* Form field layout - let Material handle label positioning */
.glass-modal-container .mat-mdc-form-field-focus-overlay {
  background: transparent;
}

/* Label positioning and float-above animation */
.glass-modal-container .mat-mdc-form-field-label,
.glass-modal-container .mat-mdc-floating-label {
  top: 50% !important;
  transform: translateY(-50%) !important;
  color: rgba(255, 255, 255, 0.5);
}

.glass-modal-container .mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label--float-above,
.glass-modal-container .mat-mdc-form-field.mat-mdc-form-field-has-value .mat-mdc-floating-label,
.glass-modal-container .mat-mdc-text-field-wrapper .mat-mdc-floating-label.mdc-floating-label--float-above {
  top: 8px !important;
  transform: translateY(0) scale(0.75) !important;
  color: rgba(255, 255, 255, 0.7);
}

.glass-modal-container .mat-mdc-form-field.mat-focused .mat-mdc-floating-label {
  color: #ff8a50;
}

/* ==========================================================================
   ui-form OVERRIDE — when .ui-form is inside glass-modal-container,
   the ui-form contract rules must win over the generic label rules above.
   ========================================================================== */
.glass-modal-container .ui-form .mat-mdc-floating-label {
  top: 50% !important;
  transform: translateY(-50%) !important;
  color: rgba(255, 255, 255, 0.5);
}

.glass-modal-container .ui-form .mat-mdc-floating-label.mdc-floating-label--float-above {
  top: 12px !important;
  transform: translateY(-50%) scale(0.75) !important;
  color: rgba(255, 255, 255, 0.7);
}

.glass-modal-container .ui-form .mat-mdc-form-field.mat-focused .mat-mdc-floating-label {
  color: var(--ui-brand, #ff8a50);
}

.glass-modal-container .ui-form .mat-mdc-text-field-wrapper {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--ui-radius-lg, 12px);
}

.glass-modal-container .ui-form .mat-mdc-form-field.mat-focused .mat-mdc-text-field-wrapper {
  border-color: rgba(255, 122, 61, 0.5);
  background: rgba(255, 255, 255, 0.06);
}

.glass-modal-container .ui-form .mat-mdc-form-field-infix {
  padding-top: 10px;
  padding-bottom: 10px;
  min-height: 44px;
  display: flex;
  align-items: center;
}

.glass-modal-container .ui-form .mat-mdc-form-field:has(.mdc-floating-label--float-above) .mat-mdc-form-field-infix {
  padding-top: 18px;
  padding-bottom: 4px;
}

.glass-modal-container .ui-form .mdc-line-ripple {
  display: none;
}

.glass-modal-container .ui-form .mat-mdc-form-field-focus-overlay {
  background: transparent;
}

.glass-modal-container .mdc-line-ripple {
  display: none;
}

.glass-modal-container input.mat-mdc-input-element,
.glass-modal-container textarea.mat-mdc-input-element,
.glass-modal-container .mdc-text-field__input,
.glass-modal-container .mat-mdc-form-field input,
.glass-modal-container .mat-mdc-form-field textarea {
  color: rgba(255, 255, 255, 0.9) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.9) !important;
  caret-color: #ff8a50;
}

.glass-modal-container input.mat-mdc-input-element::placeholder,
.glass-modal-container textarea.mat-mdc-input-element::placeholder,
.glass-modal-container .mdc-text-field__input::placeholder,
.glass-modal-container .mat-mdc-form-field input::placeholder,
.glass-modal-container .mat-mdc-form-field textarea::placeholder {
  color: rgba(255, 255, 255, 0.5) !important;
  opacity: 1 !important;
}

/* Chrome/Safari can keep readonly date/text field text dark unless text-fill is forced */
.glass-modal-container .mat-mdc-form-field input[readonly],
.glass-modal-container .mat-mdc-form-field textarea[readonly] {
  color: rgba(255, 255, 255, 0.9) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.9) !important;
}

.glass-modal-container .mat-mdc-select-value {
  color: rgba(255, 255, 255, 0.9);
}

/* Premium dropdown arrow - elegant thin chevron with glow */
.glass-modal-container .mat-mdc-select-arrow-wrapper {
  transform: translateY(0);
}

.glass-modal-container .mat-mdc-select-arrow {
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ff8a50;
  opacity: 0.8;
  transition: all 0.2s ease;
}

.glass-modal-container .mat-mdc-select-arrow svg {
  width: 12px;
  height: 12px;
  filter: drop-shadow(0 0 4px rgba(255, 122, 61, 0.5));
}

.glass-modal-container .mat-mdc-form-field:hover .mat-mdc-select-arrow {
  opacity: 1;
  filter: drop-shadow(0 0 6px rgba(255, 122, 61, 0.6));
}

.glass-modal-container .mat-mdc-form-field.mat-focused .mat-mdc-select-arrow {
  opacity: 1;
  color: #ff8a50;
  filter: drop-shadow(0 0 8px rgba(255, 122, 61, 0.7));
}

/* Datepicker toggle icon visibility inside glass modal fields */
.glass-modal-container .mat-datepicker-toggle,
.glass-modal-container .mat-datepicker-toggle button,
.glass-modal-container .mat-datepicker-toggle .mat-mdc-icon-button {
  color: rgba(255, 255, 255, 0.78);
  opacity: 0.9;
}

.glass-modal-container .mat-datepicker-toggle .mat-datepicker-toggle-default-icon,
.glass-modal-container .mat-datepicker-toggle svg {
  fill: currentColor;
}

.glass-modal-container .mat-mdc-form-field:hover .mat-datepicker-toggle,
.glass-modal-container .mat-mdc-form-field.mat-focused .mat-datepicker-toggle {
  color: #ff8a50;
  opacity: 1;
}

/* ==========================================================================
   EMI PREVIEW CARD - Loan Creation
   ========================================================================== */
.emi-preview-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 20px;
  background: linear-gradient(135deg, rgba(255, 122, 61, 0.12), rgba(255, 80, 40, 0.06));
  border: 1px solid rgba(255, 122, 61, 0.25);
  border-radius: 14px;
  box-shadow: 0 4px 20px rgba(255, 122, 61, 0.1);
}

.emi-preview-card mat-icon {
  font-size: 28px;
  width: 28px;
  height: 28px;
  color: #ff8a50;
  filter: drop-shadow(0 0 8px rgba(255, 122, 61, 0.4));
}

.emi-preview-card .emi-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.emi-preview-card .emi-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255, 180, 130, 0.8);
}

.emi-preview-card .emi-value {
  font-size: 22px;
  font-weight: 800;
  color: #ff8a50;
  letter-spacing: -0.02em;
  text-shadow: 0 0 20px rgba(255, 122, 61, 0.3);
}

/* ==========================================================================
   EMPLOYEE SELECT DROPDOWN OPTION
   ========================================================================== */
.emp-option-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 12px;
}

.emp-option-row .emp-name {
  flex: 1;
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.emp-option-row .emp-code-badge {
  font-size: 10px;
  font-weight: 700;
  padding: 3px 8px;
  background: rgba(255, 122, 61, 0.12);
  border: 1px solid rgba(255, 122, 61, 0.25);
  border-radius: 999px;
  color: #ff8a50;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  flex-shrink: 0;
}

/* ==========================================================================
   GLASS SECTION DIVIDER — Labeled separator for form sections
   ==========================================================================
   Usage: <div class="glass-section-divider">
              <span class="glass-section-label">Section Title</span>
          </div>
   ========================================================================== */
.glass-section-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 8px 0;
}

.glass-section-divider::before,
.glass-section-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
}

.glass-section-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 180, 130, 0.7);
  white-space: nowrap;
}

/* ==========================================================================
   RESPONSIVE - Mobile Stack
   ========================================================================== */
@media (max-width: 480px) {
  .glass-field-row {
    grid-template-columns: 1fr;
  }
}
/* ==========================================================================
   FORM LAYOUT — Two Column Modal Layout
   ==========================================================================
   For large modals with main content + sidebar structure.
   Usage: .form-layout > .form-column.main-column + .form-column.side-column
   ========================================================================== */
.form-layout {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 24px;
  width: 100%;
  min-height: 0;
}

.form-column {
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-height: 0;
}

.form-column.main-column {
  min-width: 0;
}

.form-column.side-column {
  min-width: 0;
}

@media (max-width: 1200px) {
  .form-layout {
    grid-template-columns: 1fr 320px;
    gap: 20px;
  }
}
@media (max-width: 900px) {
  .form-layout {
    grid-template-columns: 1fr;
  }
  .form-column.side-column {
    order: -1;
    /* Put sidebar first on mobile */
  }
}
/* ==========================================================================
   GLASS FORM GRID — Responsive field layout
   ========================================================================== */
.glass-form-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

.glass-form-grid .glass-field {
  min-width: 0;
}

.glass-form-grid .glass-field.full-width {
  grid-column: 1/-1;
}

/* Expense Type + Amount row - type wider, amount narrower */
.glass-form-grid.expense-type-row {
  grid-template-columns: 2fr 1fr;
  align-items: flex-start;
}

.glass-form-grid.expense-type-row .glass-field {
  display: flex;
  align-items: stretch;
}

.glass-form-grid.expense-type-row .glass-field .glass-input {
  width: 100%;
}

@media (max-width: 600px) {
  .glass-form-grid {
    grid-template-columns: 1fr;
  }
  .glass-form-grid.expense-type-row {
    grid-template-columns: 1fr;
  }
}
/* ==========================================================================
   GLASS PANEL — Card sections within modals
   Premium frosted glass matching Assist sidebar
   ========================================================================== */
/* .glass-panel base → Single owner: layout/glass-panel.scss */
.glass-panel .glass-section-title {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(255, 130, 90, 0.9);
  margin-top: 16px;
  margin-bottom: 12px;
  padding-bottom: var(--ui-space-2);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

/* No top margin for the first section title in a panel */
.glass-panel .glass-section-title:first-child {
  margin-top: 0;
}

/* Standalone section titles inside modal (outside glass-panel) */
.glass-modal-container .glass-section-title {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(255, 130, 90, 0.9);
  margin-top: 16px;
  margin-bottom: 12px;
  padding-bottom: var(--ui-space-2);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.glass-panel .glass-section-title mat-icon {
  font-size: var(--ui-text-base);
  width: var(--ui-text-base);
  height: var(--ui-text-base);
  color: rgba(255, 130, 90, 0.7);
}

.glass-panel .glass-section-title .required-indicator {
  margin-left: auto;
  font-size: var(--ui-text-2xs);
  font-weight: var(--ui-font-medium);
  color: var(--ui-danger);
  text-transform: none;
  letter-spacing: 0;
}

/* ==========================================================================
   UPLOAD ZONE — Drag and drop file uploads
   ========================================================================== */
.upload-zone {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 24px;
  background: rgba(255, 255, 255, 0.02);
  border: 2px dashed rgba(255, 255, 255, 0.12);
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.2s ease;
  text-align: center;
}

.upload-zone:hover:not(.disabled) {
  background: rgba(255, 130, 90, 0.05);
  border-color: rgba(255, 130, 90, 0.3);
}

.upload-zone.disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.upload-zone.required:not(.has-files) {
  border-color: rgba(248, 113, 113, 0.4);
}

.upload-zone .upload-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

.upload-zone .upload-content mat-icon {
  font-size: 28px;
  width: 28px;
  height: 28px;
  color: rgba(255, 255, 255, 0.35);
}

.upload-zone .upload-content span {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.7);
}

.upload-zone .upload-content small {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.4);
}

.upload-zone .upload-content.add-more mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: rgba(255, 130, 90, 0.6);
}

/* Uploaded Files List */
.uploaded-files {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 12px;
}

.uploaded-files .file-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
}

.uploaded-files .file-thumbnail,
.uploaded-files .file-icon {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.05);
  flex-shrink: 0;
}

.uploaded-files .thumbnail-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.uploaded-files .file-icon mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 255, 255, 0.5);
}

.uploaded-files .file-info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.uploaded-files .file-name {
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.85);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.uploaded-files .file-size {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.45);
}

.uploaded-files .file-actions {
  display: flex;
  gap: 4px;
}

.uploaded-files .view-file,
.uploaded-files .remove-file {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s ease;
}

.uploaded-files .view-file mat-icon,
.uploaded-files .remove-file mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: rgba(255, 255, 255, 0.4);
}

.uploaded-files .view-file:hover {
  background: rgba(255, 255, 255, 0.08);
}

.uploaded-files .view-file:hover mat-icon {
  color: rgba(255, 255, 255, 0.8);
}

.uploaded-files .remove-file:hover {
  background: rgba(239, 68, 68, 0.1);
}

.uploaded-files .remove-file:hover mat-icon {
  color: #f87171;
}

/* ==========================================================================
   PAYMENT RESPONSIBILITY OPTIONS
   ========================================================================== */
.payment-responsibility-options {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 16px;
}

.payment-responsibility-options .responsibility-option {
  display: flex;
  align-items: center;
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.payment-responsibility-options .responsibility-option:hover:not(.disabled) {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.12);
}

.payment-responsibility-options .responsibility-option.selected {
  background: rgba(255, 130, 90, 0.1);
  border-color: rgba(255, 130, 90, 0.35);
}

.payment-responsibility-options .responsibility-option.disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.payment-responsibility-options .responsibility-option input[type=radio] {
  display: none;
}

.payment-responsibility-options .option-content {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.75);
}

.payment-responsibility-options .option-content mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 255, 255, 0.5);
}

.payment-responsibility-options .responsibility-option.selected .option-content {
  color: rgba(255, 255, 255, 0.95);
}

.payment-responsibility-options .responsibility-option.selected .option-content mat-icon {
  color: #ff8a50;
}

/* Payable Info Card */
.payable-info-card {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  margin-bottom: 16px;
}

.payable-info-card mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: rgba(255, 255, 255, 0.5);
  flex-shrink: 0;
  margin-top: 1px;
}

.payable-info-card span {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.65);
  line-height: 1.4;
}

/* Initial Payment Card (when Company/Employee paid) */
.initial-payment-card {
  margin-top: 12px;
  margin-bottom: 16px;
  padding: 14px 16px;
  background: rgba(255, 130, 90, 0.06);
  border: 1px solid rgba(255, 130, 90, 0.2);
  border-radius: 12px;
}

.initial-payment-card .section-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: rgba(255, 138, 80, 0.85);
  margin-bottom: 12px;
}

.initial-payment-card .section-label mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: #ff8a50;
}

.initial-payment-card .glass-form-grid.compact {
  gap: 12px;
}

.initial-payment-card .field-helper-text {
  display: block;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.4);
  margin-top: -4px;
  margin-bottom: 8px;
  line-height: 1.3;
}

/* Auto Routing Preview */
.auto-routing-preview {
  padding-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.auto-routing-preview .routing-header {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.5);
  margin-bottom: 8px;
}

.auto-routing-preview .routing-header mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.auto-routing-preview .routing-flow {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
  line-height: 1.4;
}

/* ==========================================================================
   PAYMENT SUMMARY
   ========================================================================== */
.payment-summary .summary-content {
  display: flex;
  flex-direction: column;
}

.payment-summary .summary-rows {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.payment-summary .summary-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.payment-summary .row-label {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.55);
}

.payment-summary .row-label.danger-label {
  color: #f87171;
}

.payment-summary .row-value {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
  font-variant-numeric: tabular-nums;
}

.payment-summary .row-value.success {
  color: #4ade80;
}

.payment-summary .row-value.danger {
  color: #f87171;
}

.payment-summary .summary-row.highlight {
  padding: 12px 20px;
  margin: 0 -12px;
  background: rgba(255, 130, 90, 0.08);
  border-radius: 10px;
}

.payment-summary .summary-row.highlight .row-label {
  color: rgba(255, 255, 255, 0.7);
}

.payment-summary .summary-row.highlight .row-value {
  font-size: 16px;
  color: #ff8a50;
}

.payment-summary .summary-divider {
  height: 1px;
  background: rgba(255, 255, 255, 0.08);
  margin: 12px 0;
}

/* ==========================================================================
   VIDEO PREVIEW CARD
   ==========================================================================
   YouTube/video thumbnail preview for training modals.
   Usage: <div class="video-preview-card">
   ========================================================================== */
/* YouTube URL + Preview Group */
.youtube-url-group {
  display: flex;
  flex-direction: column;
}

.youtube-url-group .mat-mdc-form-field {
  width: 100%;
}

/* Remove the subscript wrapper gap when preview is showing */
.youtube-url-group .mat-mdc-form-field-subscript-wrapper {
  display: none;
}

.youtube-url-group .video-preview-card {
  margin-top: 0;
  margin-bottom: 0;
}

.video-preview-card {
  display: flex;
  gap: 16px;
  padding: 12px 14px;
  margin-bottom: 8px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-top: none;
  border-radius: 0 0 14px 14px;
  transition: all 0.2s ease;
}

.video-preview-card:hover {
  background: rgba(255, 255, 255, 0.04);
}

.video-preview-card .video-thumbnail {
  position: relative;
  flex-shrink: 0;
  width: 160px;
  height: 90px;
  border-radius: 10px;
  overflow: hidden;
  background: rgba(0, 0, 0, 0.3);
}

.video-preview-card .video-thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.video-preview-card .play-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.3);
  opacity: 0;
  transition: opacity 0.2s ease;
}

.video-preview-card:hover .play-overlay {
  opacity: 1;
}

.video-preview-card .play-overlay mat-icon {
  font-size: 48px;
  width: 48px;
  height: 48px;
  color: rgba(255, 255, 255, 0.9);
  filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.4));
}

.video-preview-card .video-info {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
}

.video-preview-card .video-source {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}

.video-preview-card .video-source mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: #ff0000;
}

.video-preview-card .video-hint {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: rgba(74, 222, 128, 0.9);
}

.video-preview-card .video-hint mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: #4ade80;
}

/* ==========================================================================
   COMPACT MAT-FORM-FIELD (Modal Tables)
   ==========================================================================
   Compact variant for mat-form-fields used in table contexts (technician
   selectors, inline editing). Works in both .ui-modal and .glass-modal-container.
   ========================================================================== */
.ui-modal .mat-mdc-form-field.is-compact,
.glass-modal-container .mat-mdc-form-field.is-compact {
  margin-bottom: 0;
}
.ui-modal .mat-mdc-form-field.is-compact .mat-mdc-text-field-wrapper,
.glass-modal-container .mat-mdc-form-field.is-compact .mat-mdc-text-field-wrapper {
  height: 40px;
  min-height: 40px;
  padding: 0 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
}
.ui-modal .mat-mdc-form-field.is-compact .mat-mdc-form-field-infix,
.glass-modal-container .mat-mdc-form-field.is-compact .mat-mdc-form-field-infix {
  padding-top: 0;
  padding-bottom: 0;
  min-height: 40px;
  display: flex;
  align-items: center;
}
.ui-modal .mat-mdc-form-field.is-compact .mat-mdc-form-field-subscript-wrapper,
.glass-modal-container .mat-mdc-form-field.is-compact .mat-mdc-form-field-subscript-wrapper {
  display: none;
}

/* ==========================================================================
   FIELD AMOUNT HERO — Reusable contract for prominent monetary inputs
   ==========================================================================
   Usage: add class="field-amount-hero" to any mat-form-field that needs to
   display a key amount value prominently (sale price, final price, etc.)
   The input renders larger text with a dimmed prefix symbol.
   ========================================================================== */
.field-amount-hero .mat-mdc-text-field-wrapper,
.field-amount-hero .mdc-text-field--filled {
  min-height: 72px !important;
  padding-left: 16px !important;
}

.field-amount-hero .mat-mdc-form-field-infix {
  min-height: 72px !important;
  padding-top: 24px !important;
  padding-bottom: 12px !important;
}

.field-amount-hero input.mat-mdc-input-element {
  font-size: var(--ui-text-2xl, 24px);
  font-weight: var(--ui-font-semibold, 600) !important;
  letter-spacing: -0.02em !important;
  min-width: 0;
  width: 100%;
  overflow: hidden;
  text-overflow: clip;
}

.field-amount-hero [matPrefix] {
  font-size: var(--ui-text-xl, 20px) !important;
  font-weight: var(--ui-font-normal, 400) !important;
  opacity: 0.5;
}

/* ==========================================================================
   ASSIGN ADVISOR MODAL — Branch + Advisor selection with workload
   ========================================================================== */
.assign-advisor-modal {
  max-width: 520px;
}

.assign-advisor-modal .form-section {
  padding: 16px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 14px;
}

.assign-advisor-modal .card-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: rgba(255, 130, 90, 0.9);
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.assign-advisor-modal .card-title mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: rgba(255, 130, 90, 0.7);
}

.assign-advisor-modal .assign-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.assign-advisor-modal .form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

/* ── Auto-Select Toggle Row ─────────────────────────────── */
.auto-select-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  margin-bottom: 12px;
  background: rgba(255, 130, 90, 0.06);
  border: 1px solid rgba(255, 130, 90, 0.18);
  border-radius: 12px;
  transition: all 0.2s ease;
}

.auto-select-row:hover {
  background: rgba(255, 130, 90, 0.1);
  border-color: rgba(255, 130, 90, 0.28);
}

.auto-select-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 0;
}

.auto-select-label {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}

.auto-select-hint {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
}

.auto-select-badge {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  font-weight: 600;
  padding: 4px 10px;
  background: rgba(255, 130, 90, 0.15);
  border-radius: 999px;
  color: #ff8a50;
  white-space: nowrap;
}

.auto-select-badge mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: #ff8a50;
}

/* ── Advisor Cards ─────────────────────────────── */
.advisor-cards {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
}

.advisor-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.advisor-card:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.14);
}

.advisor-card.selected {
  background: rgba(255, 130, 90, 0.1);
  border-color: rgba(255, 130, 90, 0.35);
}

.advisor-card__avatar {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.advisor-card__avatar mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 255, 255, 0.5);
}

.advisor-card.selected .advisor-card__avatar {
  background: rgba(255, 130, 90, 0.15);
}

.advisor-card.selected .advisor-card__avatar mat-icon {
  color: #ff8a50;
}

.advisor-card__info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.advisor-card__name {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.advisor-card__workload {
  font-size: 11px;
  font-weight: 500;
}

.advisor-card__workload.low {
  color: rgba(74, 222, 128, 0.8);
}

.advisor-card__workload.mid {
  color: rgba(251, 191, 36, 0.8);
}

.advisor-card__workload.high {
  color: rgba(248, 113, 113, 0.8);
}

.advisor-card__check {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: #ff8a50;
  flex-shrink: 0;
}

/* ── Advisor Option in Dropdown ─────────────────────────── */
.advisor-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 12px;
}

.advisor-name {
  font-weight: 500;
}

.advisor-workload {
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 999px;
}

.advisor-workload.low {
  color: #4ade80;
  background: rgba(74, 222, 128, 0.1);
}

.advisor-workload.mid {
  color: #fbbf24;
  background: rgba(251, 191, 36, 0.1);
}

.advisor-workload.high {
  color: #f87171;
  background: rgba(248, 113, 113, 0.1);
}

/* ── Skeleton Loader ─────────────────────────── */
.advisor-loading {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.skeleton-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 12px;
}

.skeleton-avatar {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.04) 25%, rgba(255, 255, 255, 0.08) 50%, rgba(255, 255, 255, 0.04) 75%);
  background-size: 200% 100%;
  animation: skeleton-shimmer 1.5s infinite;
}

.skeleton-lines {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.skeleton-lines .skeleton-line {
  height: 12px;
  border-radius: 6px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.04) 25%, rgba(255, 255, 255, 0.08) 50%, rgba(255, 255, 255, 0.04) 75%);
  background-size: 200% 100%;
  animation: skeleton-shimmer 1.5s infinite;
}

@keyframes skeleton-shimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
/* ── Responsive ─────────────────────────── */
@media (max-width: 480px) {
  .assign-advisor-modal .form-row {
    grid-template-columns: 1fr;
  }
}
/* ==========================================================================
   UI MODALS - DIALOGS
   ==========================================================================
   Confirmation dialogs, simple prompts, and warning dialogs.
   Migrated from component-level CSS to contract-driven architecture.
   ========================================================================== */
/* ==========================================================================
   CONFIRMATION DIALOG
   ========================================================================== */
.confirm-dialog {
  text-align: center;
  padding: 32px 28px;
}

.confirm-icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 20px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.confirm-icon mat-icon {
  font-size: 32px;
  width: 32px;
  height: 32px;
}

.confirm-icon.warning {
  background: rgba(245, 158, 11, 0.15);
  border: 2px solid rgba(245, 158, 11, 0.3);
}

.confirm-icon.warning mat-icon {
  color: #fbbf24;
}

.confirm-icon.danger {
  background: rgba(239, 68, 68, 0.15);
  border: 2px solid rgba(239, 68, 68, 0.3);
}

.confirm-icon.danger mat-icon {
  color: #f87171;
}

.confirm-icon.info {
  background: rgba(59, 130, 246, 0.15);
  border: 2px solid rgba(59, 130, 246, 0.3);
}

.confirm-icon.info mat-icon {
  color: #60a5fa;
}

.confirm-icon.success {
  background: rgba(34, 197, 94, 0.15);
  border: 2px solid rgba(34, 197, 94, 0.3);
}

.confirm-icon.success mat-icon {
  color: #4ade80;
}

.confirm-title {
  font-size: 18px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
  margin: 0 0 12px 0;
}

.confirm-message {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.6);
  line-height: 1.6;
  margin: 0 0 20px 0;
  white-space: pre-line;
}

.confirm-actions {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-top: 24px;
}

/* ==========================================================================
   DELETE DIALOG
   ========================================================================== */
.delete-dialog {
  text-align: center;
}

.delete-icon-wrap {
  width: 72px;
  height: 72px;
  margin: 0 auto 20px;
  border-radius: 50%;
  background: rgba(239, 68, 68, 0.12);
  border: 2px solid rgba(239, 68, 68, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
}

.delete-icon-wrap mat-icon {
  font-size: 36px;
  width: 36px;
  height: 36px;
  color: #f87171;
}

.delete-title {
  font-size: 20px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
  margin: 0 0 12px 0;
}

.delete-message {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.6);
  line-height: 1.5;
  margin: 0;
}

.delete-warning {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.2);
  border-radius: 10px;
  margin-top: 16px;
  text-align: left;
}

.delete-warning mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: #f87171;
  flex-shrink: 0;
}

.delete-warning span {
  font-size: 12px;
  color: rgba(252, 165, 165, 0.9);
  line-height: 1.4;
}

/* ==========================================================================
   PAYROLL DELETE DIALOG
   ==========================================================================
   Destructive confirmation for deleting draft payroll runs.
   Uses shared modal, card, notice, and pill button contracts.
   ========================================================================== */
.payroll-delete-dialog .ui-modal__header {
  padding: var(--ui-space-5) var(--ui-space-6);
}

.payroll-delete-dialog .ui-modal__title-group {
  align-items: flex-start;
  gap: var(--ui-space-3);
}

.payroll-delete-dialog__icon {
  color: #ff9a5f;
}

.payroll-delete-dialog .ui-modal__title {
  margin: 0;
}

.payroll-delete-dialog__subtitle {
  margin: 6px 0 0;
  color: rgba(255, 255, 255, 0.62);
  font-size: 13px;
  line-height: 1.5;
}

.payroll-delete-dialog .ui-modal__body {
  gap: var(--ui-space-4);
}

.payroll-delete-dialog__section {
  padding: var(--ui-space-5);
}

.payroll-delete-dialog__checklist {
  list-style: none;
  margin: var(--ui-space-4) 0 0;
  padding: 0;
  display: grid;
  gap: var(--ui-space-3);
}

.payroll-delete-dialog__checklist-item {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  color: rgba(255, 255, 255, 0.82);
  font-size: 14px;
  line-height: 1.45;
}

.payroll-delete-dialog__checklist-item mat-icon {
  width: 18px;
  height: 18px;
  font-size: 18px;
  color: rgba(255, 122, 133, 0.92);
  flex-shrink: 0;
}

.payroll-delete-dialog__notice {
  margin-top: 0;
}

.payroll-delete-dialog__notice mat-icon {
  color: rgba(255, 196, 123, 0.94);
}

/* ==========================================================================
   PAYROLL PAYMENT DIALOG
   ==========================================================================
   Record payment / update payment modal for payroll payslips.
   Uses shared modal, ui-card, ui-form, and pill button contracts.
   ========================================================================== */
.payroll-payment-dialog .ui-modal__header {
  padding: var(--ui-space-5) var(--ui-space-6);
}

.payroll-payment-dialog__icon {
  color: #ffb07a;
}

.payroll-payment-dialog .ui-modal__title {
  margin: 0;
}

.payroll-payment-dialog .ui-modal__subtitle, .payroll-payment-dialog .glass-modal-container .header-subtitle, .glass-modal-container .payroll-payment-dialog .header-subtitle,
.payroll-payment-dialog .glass-modal-container .modal-subtitle,
.glass-modal-container .payroll-payment-dialog .modal-subtitle {
  margin-top: 4px;
}

.payroll-payment-dialog .ui-modal__body {
  gap: var(--ui-space-4);
}

.payroll-payment-dialog__summary,
.payroll-payment-dialog__form-card {
  padding: var(--ui-space-5);
}

.payroll-payment-dialog__summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ui-space-3);
}

.payroll-payment-dialog__metric {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-lg);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.payroll-payment-dialog__metric-label {
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
  font-weight: 600;
}

.payroll-payment-dialog__metric-value {
  font-size: 18px;
  line-height: 1.25;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.94);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.payroll-payment-dialog__metric-value--amount {
  color: #ffd3a3;
}

.payroll-payment-dialog__form {
  gap: var(--ui-space-3);
}

.payroll-payment-dialog__form .ui-form__section,
.payroll-payment-dialog__form .ui-form__row {
  margin-top: 0;
}

.payroll-payment-dialog .ui-modal__footer .footer-right {
  gap: var(--ui-space-3);
}

@media (max-width: 720px) {
  .payroll-payment-dialog .ui-modal__header,
  .payroll-payment-dialog .ui-modal__body,
  .payroll-payment-dialog .ui-modal__footer {
    padding-left: var(--ui-space-4);
    padding-right: var(--ui-space-4);
  }
  .payroll-payment-dialog__summary,
  .payroll-payment-dialog__form-card {
    padding: var(--ui-space-4);
  }
  .payroll-payment-dialog__summary-grid {
    grid-template-columns: 1fr;
  }
}
/* ==========================================================================
   REJECTION DIALOG
   ========================================================================== */
.rejection-dialog {
  padding: 4px 0;
}

.rejection-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}

.rejection-header mat-icon {
  font-size: 24px;
  width: 24px;
  height: 24px;
  color: #f87171;
}

.rejection-header h3 {
  font-size: 18px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
  margin: 0;
}

.rejection-reason-label {
  display: block;
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.6);
  margin-bottom: 8px;
}

.rejection-textarea {
  width: 100%;
  height: 120px;
  padding: 14px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 14px;
  font-family: inherit;
  resize: none;
  outline: none;
  transition: all 0.2s ease;
}

.rejection-textarea:focus {
  border-color: rgba(248, 113, 113, 0.5);
  background: rgba(255, 255, 255, 0.06);
}

.rejection-textarea::placeholder {
  color: rgba(255, 255, 255, 0.35);
}

/* ==========================================================================
   EMPLOYMENT PHASE CONFIRM
   ========================================================================== */
.phase-confirm-dialog {
  padding: 4px 0;
}

.phase-icon-wrap {
  width: 64px;
  height: 64px;
  margin: 0 auto 20px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.phase-icon-wrap.resign {
  background: rgba(245, 158, 11, 0.15);
  border: 1px solid rgba(245, 158, 11, 0.3);
}

.phase-icon-wrap.resign mat-icon {
  font-size: 28px;
  width: 28px;
  height: 28px;
  color: #fbbf24;
}

.phase-icon-wrap.terminate {
  background: rgba(239, 68, 68, 0.15);
  border: 1px solid rgba(239, 68, 68, 0.3);
}

.phase-icon-wrap.terminate mat-icon {
  font-size: 28px;
  width: 28px;
  height: 28px;
  color: #f87171;
}

.phase-icon-wrap.rehire {
  background: rgba(34, 197, 94, 0.15);
  border: 1px solid rgba(34, 197, 94, 0.3);
}

.phase-icon-wrap.rehire mat-icon {
  font-size: 28px;
  width: 28px;
  height: 28px;
  color: #4ade80;
}

.phase-title {
  font-size: 18px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
  margin: 0 0 8px 0;
  text-align: center;
}

.phase-subtitle {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.6);
  text-align: center;
  margin: 0 0 20px 0;
}

.phase-details {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 20px;
}

.phase-detail-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
}

.phase-detail-row:not(:last-child) {
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.phase-detail-label {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.5);
}

.phase-detail-value {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}

/* ==========================================================================
   SESSION EXPIRED DIALOG
   ========================================================================== */
.session-expired-dialog {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 40px 32px;
}

.session-expired-dialog .session-icon {
  position: relative;
  width: 80px;
  height: 80px;
  margin: 0 auto 24px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(231, 70, 48, 0.15), rgba(255, 140, 50, 0.1));
  border: 1px solid rgba(231, 70, 48, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 32px rgba(231, 70, 48, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.session-expired-dialog .session-icon mat-icon {
  font-size: 40px;
  width: 40px;
  height: 40px;
  color: #e74630;
  animation: session-icon-glow 2s ease-in-out infinite alternate;
}

.session-expired-dialog .session-icon-pulse {
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: transparent;
  border: 2px solid rgba(231, 70, 48, 0.4);
  animation: session-pulse 2s ease-out infinite;
}

@keyframes session-pulse {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  100% {
    transform: scale(1.5);
    opacity: 0;
  }
}
@keyframes session-icon-glow {
  0% {
    filter: drop-shadow(0 0 4px rgba(231, 70, 48, 0.4));
  }
  100% {
    filter: drop-shadow(0 0 12px rgba(231, 70, 48, 0.7));
  }
}
.session-expired-dialog .session-title {
  font-size: 26px;
  font-weight: 700;
  color: #ffffff;
  margin: 0 0 16px 0;
  letter-spacing: -0.02em;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.session-expired-dialog .session-message {
  font-size: 15px;
  line-height: 1.6;
  color: rgba(220, 210, 205, 0.9);
  margin: 0 0 12px 0;
  max-width: 360px;
}

.session-expired-dialog .session-countdown-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  margin-bottom: 28px;
}

.session-expired-dialog .session-countdown-circle {
  position: relative;
  width: 60px;
  height: 60px;
}

.session-expired-dialog .session-countdown-circle svg {
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}

.session-expired-dialog .session-countdown-circle .progress-bg {
  fill: none;
  stroke: rgba(255, 255, 255, 0.1);
  stroke-width: 3;
}

.session-expired-dialog .session-countdown-circle .progress-bar {
  fill: none;
  stroke: #e74630;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-dasharray: 113.1; /* 2 * PI * 18 */
  transition: stroke-dashoffset 1s linear;
}

.session-expired-dialog .session-countdown-number {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 20px;
  font-weight: 700;
  color: #e74630;
  text-shadow: 0 0 10px rgba(231, 70, 48, 0.4);
}

.session-expired-dialog .session-countdown-label {
  font-size: 13px;
  color: rgba(180, 170, 165, 0.8);
  letter-spacing: 0.01em;
}

.session-expired-dialog .session-action-btn {
  display: flex;
  align-items: center;
  gap: 10px;
  background: linear-gradient(135deg, #e74630, #d63925);
  color: #ffffff;
  border: none;
  border-radius: 999px;
  padding: 14px 32px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.25s ease;
  box-shadow: 0 6px 20px rgba(231, 70, 48, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.15);
  letter-spacing: 0.02em;
}

.session-expired-dialog .session-action-btn mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
}

.session-expired-dialog .session-action-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(231, 70, 48, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.2);
  background: linear-gradient(135deg, #ff5742, #e74630);
}

.session-expired-dialog .session-action-btn:active {
  transform: translateY(0);
  box-shadow: 0 3px 12px rgba(231, 70, 48, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

/* ==========================================================================
   IMAGE DIALOG / LIGHTBOX
   ========================================================================== */
.image-dialog {
  position: relative;
  background: transparent;
}

.image-dialog-close {
  position: absolute;
  top: -40px;
  right: 0;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
}

.image-dialog-close:hover {
  background: rgba(255, 255, 255, 0.2);
}

.image-dialog-close mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: rgba(255, 255, 255, 0.8);
}

.image-dialog img {
  max-width: 90vw;
  max-height: 85vh;
  border-radius: 12px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5);
}

/* ==========================================================================
   PROGRESS DIALOGS
   ========================================================================== */
.progress-dialog {
  padding: 20px 0;
}

.progress-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}

.progress-header mat-icon {
  font-size: 24px;
  width: 24px;
  height: 24px;
  color: #ff8a50;
}

.progress-header h3 {
  font-size: 18px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
  margin: 0;
}

.progress-content {
  margin-bottom: 20px;
}

.progress-bar-container {
  height: 8px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 4px;
  overflow: hidden;
  margin-bottom: 12px;
}

.progress-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, #ff7a3d, #ff9966);
  border-radius: 4px;
  transition: width 0.3s ease;
}

.progress-label {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.6);
  text-align: center;
}

/* ==========================================================================
   TERMS DIALOG
   ========================================================================== */
.terms-dialog {
  padding: 4px 0;
}

.terms-content {
  max-height: 400px;
  overflow-y: auto;
  padding-right: 8px;
}

.terms-content::-webkit-scrollbar {
  width: 6px;
}

.terms-content::-webkit-scrollbar-track {
  background: transparent;
}

.terms-content::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.1);
  border-radius: 3px;
}

.terms-content::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.15);
}

.terms-section {
  margin-bottom: 20px;
}

.terms-section h4 {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
  margin: 0 0 10px 0;
}

.terms-section p,
.terms-section li {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.65);
  line-height: 1.6;
  margin: 0 0 8px 0;
}

.terms-section ul {
  margin: 0;
  padding-left: 20px;
}

.terms-checkbox {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 10px;
  margin-top: 16px;
}

.terms-checkbox label {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.8);
  cursor: pointer;
}

/* ==========================================================================
   DIALOG BUTTON VARIANTS
   ========================================================================== */
.dialog-btn-cancel {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.8);
}

.dialog-btn-cancel:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.2);
}

.dialog-btn-danger {
  background: rgba(239, 68, 68, 0.15);
  border: 1px solid rgba(239, 68, 68, 0.3);
  color: #f87171;
}

.dialog-btn-danger:hover {
  background: rgba(239, 68, 68, 0.25);
  border-color: rgba(239, 68, 68, 0.5);
}

.dialog-btn-warning {
  background: rgba(245, 158, 11, 0.15);
  border: 1px solid rgba(245, 158, 11, 0.3);
  color: #fbbf24;
}

.dialog-btn-warning:hover {
  background: rgba(245, 158, 11, 0.25);
  border-color: rgba(245, 158, 11, 0.5);
}

.dialog-btn-success {
  background: rgba(34, 197, 94, 0.15);
  border: 1px solid rgba(34, 197, 94, 0.3);
  color: #4ade80;
}

.dialog-btn-success:hover {
  background: rgba(34, 197, 94, 0.25);
  border-color: rgba(34, 197, 94, 0.5);
}

/* ==========================================================================
   ROLLBACK DIALOG
   ==========================================================================
   Tally import rollback confirmation dialog.
   Uses overlay + glassmorphism card with impact preview and reason input.
   ========================================================================== */
.rollback-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: var(--z-modal, 1000);
  animation: rollback-overlay-in 0.2s ease;
}

@keyframes rollback-overlay-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.rollback-dialog {
  background: var(--ui-bg-card, #1e1e2e);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--ui-radius-xl, 16px);
  padding: var(--ui-space-6, 24px) var(--ui-space-7, 28px);
  max-width: 520px;
  width: 90%;
  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.5);
  text-align: left;
}

.rollback-dialog__title {
  margin: 0 0 var(--ui-space-4, 16px);
  font-size: 17px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
}

.rollback-dialog__impact {
  margin-bottom: var(--ui-space-4, 16px);
}

.rollback-dialog__stat-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 0;
  font-size: 13px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.rollback-dialog__stat-row span {
  color: rgba(255, 255, 255, 0.6);
}

.rollback-dialog__stat-row strong {
  font-variant-numeric: tabular-nums;
  color: rgba(255, 255, 255, 0.9);
}

.rollback-dialog__safe-msg {
  padding: 8px 12px;
  background: rgba(16, 185, 129, 0.08);
  border: 1px solid rgba(16, 185, 129, 0.2);
  border-radius: var(--ui-radius-md, 8px);
  color: #10b981;
  font-size: 12px;
  margin-bottom: var(--ui-space-4, 16px);
}

.rollback-dialog__reason {
  margin-bottom: var(--ui-space-4, 16px);
}

.rollback-dialog__reason label {
  display: block;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.6);
  margin-bottom: 6px;
}

.rollback-dialog__reason textarea {
  width: 100%;
  padding: 8px 12px;
  border-radius: var(--ui-radius-md, 8px);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: inherit;
  font-family: var(--ui-font-primary);
  font-size: 13px;
  resize: vertical;
  outline: none;
  transition: border-color 0.2s ease;
}

.rollback-dialog__reason textarea:focus {
  border-color: rgba(239, 68, 68, 0.4);
  background: rgba(255, 255, 255, 0.08);
}

.rollback-dialog__reason .rollback-hint {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.4);
  margin: 4px 0 0;
}

.rollback-dialog__actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}

.rollback-dialog__downstream {
  margin-bottom: var(--ui-space-4, 16px);
}

.rollback-dialog__downstream-detail {
  margin-top: 6px;
  font-size: 11px;
  opacity: 0.8;
}

/* ==========================================================================
   UI MODAL VARIANT - JOB DETAILS
   ==========================================================================
   Complete styling contract for job details modal.
   Includes layout structure AND typography.
   Scoped strictly to .job-details-dialog
   ========================================================================== */
/* ==========================================================================
   LAYOUT STRUCTURE
   ========================================================================== */
.job-details-dialog {
  position: relative;
  display: flex !important;
  flex-direction: column !important;
  padding: 0 !important;
  border-radius: 24px !important;
  /* Glassmorphic Background */
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.01)) !important;
  backdrop-filter: blur(60px) saturate(200%) brightness(1.2) !important;
  -webkit-backdrop-filter: blur(60px) saturate(200%) brightness(1.2) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.38) !important;
  max-height: 88vh !important;
  height: 88vh !important;
  overflow: hidden !important;
  font-family: var(--ui-font-primary);
  color: #e8e8e8;
}

.job-details-dialog .job-header-row {
  flex-shrink: 0;
  z-index: 100;
  margin: 0 !important;
  width: 100%;
  padding: 12px 24px !important;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
  border-radius: 24px 24px 0 0;
  backdrop-filter: blur(40px) saturate(180%);
  -webkit-backdrop-filter: blur(40px) saturate(180%);
  display: flex !important;
  align-items: center !important;
  min-height: 0 !important;
}

.job-details-dialog .job-header-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 24px;
  flex: 1;
}

.job-details-dialog .job-header-left {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 10px !important;
  width: auto !important;
}

.job-details-dialog .job-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  padding-right: 32px;
}

/* Scrollable content wrapper */
.job-details-dialog .job-details-content-wrapper {
  flex: 1;
  display: flex;
  height: 100%;
  width: 100%;
  min-height: 0;
  overflow: hidden;
  padding: 16px 24px 32px 24px;
}

/* Grid layout for main + activity panel */
.job-details-dialog .job-details-content-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 12px;
  flex: 1;
  height: 100%;
  width: 100%;
  min-width: 0;
  align-items: stretch;
  min-height: 0;
}

.job-details-dialog .job-details-main {
  height: 100%;
  min-width: 0;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 4px;
  scrollbar-width: thin;
  scrollbar-color: rgba(140, 70, 40, 0.4) transparent;
}

.job-details-dialog .job-details-main::-webkit-scrollbar {
  width: 8px;
}

.job-details-dialog .job-details-main::-webkit-scrollbar-track {
  background: transparent;
}

.job-details-dialog .job-details-main::-webkit-scrollbar-thumb {
  background: rgba(140, 70, 40, 0.4);
  border-radius: 10px;
}

.job-details-dialog .job-activity-panel {
  width: 100%;
  height: 100%;
  min-height: 0;
}

/* Header Title */
.job-details-dialog .job-header-title,
.job-details-dialog .car_title {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #ffffff !important;
  letter-spacing: -0.02em !important;
  line-height: 1.3 !important;
  margin: 0 !important;
  padding: 0 !important;
  text-shadow: 0 2px 12px rgba(255, 122, 61, 0.25);
  flex-shrink: 0;
  background: linear-gradient(135deg, #ffffff 0%, #f0f0f0 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Close Button Styling */
.job-details-dialog .dialog-close-btn {
  position: absolute !important;
  top: 50%;
  transform: translateY(-50%);
  right: 20px;
  color: rgba(255, 255, 255, 0.7) !important;
  background: transparent !important;
  transition: all 0.2s ease;
  z-index: 101;
}

.job-details-dialog .dialog-close-btn:hover {
  color: #ffffff !important;
  background: rgba(255, 255, 255, 0.1) !important;
  transform: translateY(-50%) scale(1.1);
}

.job-details-dialog .dialog-close-btn mat-icon {
  font-size: 24px;
  width: 24px;
  height: 24px;
}

/* 3-dot menu trigger — match close button round hover */
.job-details-dialog .header-more-btn {
  color: rgba(255, 255, 255, 0.7) !important;
  background: transparent !important;
  transition: all 0.2s ease;
}

.job-details-dialog .header-more-btn:hover {
  color: #ffffff !important;
  background: rgba(255, 255, 255, 0.1) !important;
  transform: scale(1.1);
}

.job-details-dialog .header-more-btn mat-icon {
  font-size: 22px;
  width: 22px;
  height: 22px;
}

/* Header Buttons - Compact Style */
.job-details-dialog .btn-header,
.job-details-dialog .btn-careager,
.job-details-dialog .btn-header:disabled,
.job-details-dialog .btn-careager:disabled {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 4px !important;
  border-radius: 999px !important;
  padding: 0 14px !important;
  height: 32px !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  letter-spacing: 0.01em !important;
  text-transform: none !important;
  transition: all 0.2s ease !important;
  cursor: pointer !important;
  font-family: inherit !important;
}

.job-details-dialog .btn-header {
  background: transparent !important;
  background-color: transparent !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  box-shadow: none !important;
  color: rgba(255, 255, 255, 0.75) !important;
}

.job-details-dialog .btn-header:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.05) !important;
  background-color: rgba(255, 255, 255, 0.05) !important;
  border-color: rgba(255, 255, 255, 0.18) !important;
  color: rgba(255, 255, 255, 0.95) !important;
}

.job-details-dialog .btn-careager {
  background: rgba(200, 90, 50, 0.75) !important;
  background-color: rgba(200, 90, 50, 0.75) !important;
  border: 1px solid rgba(200, 90, 50, 0.4) !important;
  box-shadow: 0 2px 10px rgba(200, 90, 50, 0.15) !important;
  color: #ffffff !important;
}

.job-details-dialog .btn-careager:hover:not(:disabled) {
  background: rgba(210, 95, 52, 0.85) !important;
  background-color: rgba(210, 95, 52, 0.85) !important;
  border-color: rgba(210, 95, 52, 0.5) !important;
  box-shadow: 0 4px 14px rgba(200, 90, 50, 0.25) !important;
  transform: translateY(-1px) !important;
}

.job-details-dialog .btn-careager:disabled,
.job-details-dialog .btn-header:disabled {
  opacity: 0.5 !important;
  cursor: not-allowed !important;
}

/* Short ID Badge */
.job-details-dialog .short-id-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  background: linear-gradient(135deg, rgba(255, 140, 80, 0.2), rgba(200, 90, 50, 0.15));
  border: 1px solid rgba(255, 140, 80, 0.4);
  border-radius: 6px;
  color: #ffb083;
  font-family: var(--ui-font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  white-space: nowrap;
  flex-shrink: 0;
  cursor: pointer;
  transition: all 0.2s ease;
}

.job-details-dialog .short-id-badge:hover {
  background: linear-gradient(135deg, rgba(255, 140, 80, 0.3), rgba(200, 90, 50, 0.25));
  border-color: rgba(255, 140, 80, 0.6);
}

/* Timeline - Progress arrow steps */
.job-details-dialog .unified-progress-container {
  margin-bottom: 4px;
}

.job-details-dialog .combined-progress-shell {
  position: relative;
  padding: 32px 0;
}

.job-details-dialog .arrow-steps {
  display: flex;
  align-items: center;
}

.job-details-dialog .arrow-steps .step {
  flex: 1;
  padding: 12px 16px;
  text-align: center;
  font-size: 12px;
  font-weight: 600;
}

/* Cards */
.job-details-dialog .booking-cards-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 16px;
  margin-bottom: 28px;
}

/* Individual booking card styling - matches backup min-height */
.job-details-dialog .booking-cards-grid .booking-summary-card,
.job-details-dialog .booking-cards-grid .vehicle-customer-card,
.job-details-dialog .booking-cards-grid .pickup-drop-card {
  min-height: 180px;
}

.job-details-dialog .booking-details-grid {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 16px;
  padding: 0 !important;
  margin: 0 0 28px 0 !important;
  flex: 1;
  overflow: visible;
}

.job-details-dialog .booking-left-column {
  flex: 0 0 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.job-details-dialog .card-box,
.job-details-dialog .job-glass-card,
.job-details-dialog .card,
.job-details-dialog .project,
.job-details-dialog .review-card {
  /* Glass card styling */
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02)) !important;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.2);
  border-radius: 16px;
  padding: 16px;
  margin-bottom: 12px;
  position: relative;
}

.job-details-dialog .glass-section-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.9);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin: 0 0 12px 0;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.job-details-dialog .glass-section-title mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: #ffb083;
}

/* Card header action button - small pill on right (View Profile button) */
.job-details-dialog .booking-cards-grid .card-header-action-btn,
.job-details-dialog .glass-section-title .card-header-action-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 12px;
  height: 24px;
  margin-left: auto;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 999px;
  color: rgba(255, 255, 255, 0.6);
  font-size: 10px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.job-details-dialog .booking-cards-grid .card-header-action-btn:hover,
.job-details-dialog .glass-section-title .card-header-action-btn:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.3);
  color: rgba(255, 255, 255, 0.9);
}

.job-details-dialog .booking-cards-grid .card-header-action-btn mat-icon,
.job-details-dialog .glass-section-title .card-header-action-btn mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

.job-details-dialog .booking-card-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.job-details-dialog .grid-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.job-details-dialog .grid-item.highlighted {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  padding: 12px;
}

/* Left tabbed card */
.job-details-dialog .left-card-tabs {
  display: flex;
  gap: 8px;
  padding: 12px 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  position: relative;
}

.job-details-dialog .left-tab {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 16px;
  min-height: 48px;
  border: none;
  background: transparent;
  cursor: pointer;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
}

.job-details-dialog .left-tab-slider {
  position: absolute;
  bottom: 0;
  height: 2px;
  background: rgba(255, 255, 255, 0.9);
  transition: all 0.3s ease;
}

.job-details-dialog .left-tab-content {
  padding: 20px;
}

/* Pickup & Drop */
.job-details-dialog .pickup-drop-section {
  padding: 16px;
}

.job-details-dialog .pickup-drop-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}

.job-details-dialog .pickup-drop-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 4px 8px;
}

.job-details-dialog .pickup-drop-divider {
  height: 1px;
  background: rgba(255, 255, 255, 0.08);
  margin: 0 16px;
}

.job-details-dialog .not-scheduled-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 8px;
  text-align: center;
}

/* Activity panel */
.job-details-dialog .activity-panel {
  width: 100%;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  overflow: visible;
}

.job-details-dialog .activity-panel-tabs {
  display: flex;
  gap: 8px;
  padding: 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.job-details-dialog .activity-panel-tabs button {
  flex: 1;
  padding: 8px 12px;
  border: none;
  background: transparent;
  cursor: pointer;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
}

.job-details-dialog .activity-panel-tabs button.active {
  background: rgba(255, 255, 255, 0.08);
}

.job-details-dialog .activity-feed {
  flex: 1;
  overflow-y: auto;
  padding: 12px;
}

.job-details-dialog .timeline-group {
  margin-bottom: 20px;
}

.job-details-dialog .activity-event-v2 {
  padding: 12px;
  margin-bottom: 8px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  cursor: pointer;
}

.job-details-dialog .event-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
}

/* Bottom tabs - Inherits from global pill-tabs.css contract */
/* Only add modal-specific layout adjustments, not styling overrides */
.job-details-dialog .page-tab-navigation {
  display: flex;
  align-items: center;
  margin-bottom: 16px;
  padding: 0 24px;
  padding-left: 24px;
}

/* No styling overrides needed - pill-tabs.css contract handles:
   - .pill-tabs-container (frosted glass container)
   - .tab-slider (orange outline sliding indicator)
   - .pill-tab-btn (tab buttons with hover/active states)

   If styling differs from job list page, check that pill-tabs.css 
   is imported correctly in styles.scss */
/* Tables */
.job-details-dialog table {
  width: 100%;
  border-collapse: collapse;
}

.job-details-dialog table th,
.job-details-dialog table td {
  padding: 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

/* Buttons */
.job-details-dialog .btn,
.job-details-dialog .pill-btn-add,
.job-details-dialog .btn-header {
  padding: 8px 16px;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.15);
  background: rgba(255, 255, 255, 0.08);
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.job-details-dialog .btn-careager,
.job-details-dialog .pill-btn-add {
  background: rgba(255, 120, 80, 0.15);
  border-color: rgba(255, 120, 80, 0.3);
}

/* ==========================================================================
   TYPOGRAPHY
   ========================================================================== */
.job-details-dialog .job-header-title,
.job-details-dialog .car_title {
  color: rgba(255, 255, 255, 0.95) !important;
  font-weight: 600;
  font-size: 16px;
  margin: 0;
  max-width: 260px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.job-details-dialog .short-id-badge {
  color: rgba(255, 255, 255, 0.85) !important;
  font-size: 9px;
  font-weight: 600;
  padding: 3px 7px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.08);
}

.job-details-dialog .insurance-claim-badge {
  color: rgba(255, 255, 255, 0.9) !important;
  display: flex;
  align-items: center;
  gap: 3px;
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(255, 120, 80, 0.15);
  border: 1px solid rgba(255, 120, 80, 0.3);
  font-size: 9px;
  font-weight: 600;
}

.job-details-dialog .insurance-claim-badge mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

/* ── NPS Signal Styles for Job Details Modal ────────────────────── */
/* Tiny NPS score badge inline on Customer tab label */
.job-details-dialog .tab-nps-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  font-size: 9px;
  font-weight: 800;
  line-height: 1;
  margin-left: 4px;
  flex-shrink: 0;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.55);
}

.job-details-dialog .tab-nps-chip.promoter {
  background: rgba(73, 211, 158, 0.18);
  border-color: rgba(73, 211, 158, 0.45);
  color: #5debb5;
}

.job-details-dialog .tab-nps-chip.passive {
  background: rgba(255, 190, 50, 0.15);
  border-color: rgba(255, 190, 50, 0.4);
  color: #ffc55a;
}

.job-details-dialog .tab-nps-chip.detractor {
  background: rgba(239, 83, 80, 0.18);
  border-color: rgba(239, 83, 80, 0.45);
  color: #ff7b79;
}

/* NPS field value row (in content-grid) */
.job-details-dialog .nps-field-value {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 2px;
}

/* Sub-label: ⚠ Needs attention / Referral opportunity */
.job-details-dialog .nps-sublabel {
  font-size: 10px;
  color: #ff7b79;
  font-weight: 600;
  opacity: 0.85;
}

.job-details-dialog .nps-sublabel--promo {
  color: #5debb5;
}

.job-details-dialog .qc-failed-badge-header {
  display: flex;
  align-items: center;
  gap: 3px;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--ui-danger-bg);
  border: 1px solid var(--ui-danger-border);
  color: var(--ui-danger);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.03em;
  cursor: default;
}

.job-details-dialog .qc-failed-badge-header mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

.job-details-dialog .btn,
.job-details-dialog .pill-btn-add,
.job-details-dialog .btn-header {
  color: rgba(255, 255, 255, 0.9) !important;
}

.job-details-dialog .arrow-steps .step {
  color: rgba(255, 255, 255, 0.85) !important;
}

.job-details-dialog .arrow-steps .step.current {
  color: rgba(255, 255, 255, 0.95) !important;
}

.job-details-dialog .booking-date-label,
.job-details-dialog .job-date-label {
  color: rgba(255, 255, 255, 0.55) !important;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.job-details-dialog .booking-date-value,
.job-details-dialog .job-date-value {
  color: rgba(255, 255, 255, 0.82) !important;
  font-size: 12px;
  font-weight: 600;
}

.job-details-dialog .glass-section-title {
  color: rgba(255, 255, 255, 0.9) !important;
  font-weight: 600;
}

.job-details-dialog .field-label {
  color: rgba(255, 255, 255, 0.52) !important;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.job-details-dialog .field-value {
  color: rgba(255, 255, 255, 0.92) !important;
  font-size: 13px;
  font-weight: 500;
}

.job-details-dialog .left-tab {
  color: rgba(255, 255, 255, 0.55) !important;
}

.job-details-dialog .left-tab.active {
  color: rgba(255, 255, 255, 0.95) !important;
}

.job-details-dialog .left-tab mat-icon,
.job-details-dialog .left-tab span {
  color: inherit !important;
}

.job-details-dialog .pickup-drop-header .section-label {
  color: rgba(255, 255, 255, 0.82) !important;
  font-weight: 600;
  font-size: 13px;
}

.job-details-dialog .status-pill {
  color: rgba(255, 255, 255, 0.72) !important;
  font-size: 11px;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.08);
}

.job-details-dialog .not-scheduled-card span {
  color: rgba(255, 255, 255, 0.55) !important;
  font-size: 13px;
}

.job-details-dialog .activity-panel-tabs button {
  color: rgba(255, 255, 255, 0.6) !important;
}

.job-details-dialog .activity-panel-tabs button.active {
  color: rgba(255, 255, 255, 0.95) !important;
}

.job-details-dialog .timeline-group-label {
  color: rgba(255, 255, 255, 0.55) !important;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.job-details-dialog .activity-event-v2 .event-actor {
  color: rgba(255, 255, 255, 0.9) !important;
  font-weight: 600;
  font-size: 13px;
}

.job-details-dialog .activity-event-v2 .event-time {
  color: rgba(255, 255, 255, 0.46) !important;
  font-size: 11px;
}

.job-details-dialog .activity-event-v2 .event-preview {
  color: rgba(255, 255, 255, 0.62) !important;
  font-size: 12px;
}

/* pill-tab-btn styling removed - inherits from global pill-tabs.css */
/* Table Styling - From Backup */
.job-details-dialog table {
  color: rgba(255, 255, 255, 0.9);
  border-collapse: separate;
  border-spacing: 0;
}

.job-details-dialog table thead th {
  color: rgba(255, 255, 255, 0.6);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  font-weight: 500;
}

.job-details-dialog table th {
  color: rgba(255, 255, 255, 0.55) !important;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.job-details-dialog table td,
.job-details-dialog table th {
  border-color: rgba(255, 255, 255, 0.08) !important;
}

.job-details-dialog table td {
  color: rgba(255, 255, 255, 0.92) !important;
  font-size: 13px;
  font-weight: 600;
}

.job-details-dialog mat-icon {
  color: rgba(255, 255, 255, 0.7) !important;
}

.job-details-dialog .btn mat-icon,
.job-details-dialog .pill-btn-add mat-icon {
  color: inherit !important;
}

/* Form Controls - From Backup */
.job-details-dialog textarea,
.job-details-dialog input,
.job-details-dialog .form-control {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  color: #fff;
  padding: 12px 16px;
}

.job-details-dialog input::placeholder,
.job-details-dialog textarea::placeholder {
  color: rgba(255, 255, 255, 0.4) !important;
}

.job-details-dialog h1,
.job-details-dialog h2,
.job-details-dialog h3 {
  color: rgba(255, 255, 255, 0.95) !important;
}

.job-details-dialog h4,
.job-details-dialog h5,
.job-details-dialog h6 {
  color: rgba(255, 255, 255, 0.85) !important;
}

.job-details-dialog a {
  color: rgba(255, 255, 255, 0.82) !important;
}

/* ==========================================================================
   JOB INFO PANEL - Glassmorphic Card with 3D Effect
   ========================================================================== */
.job-details-dialog .job-info-panel {
  display: flex;
  flex-direction: column;
  /* Glass Style from Financial Dashboard */
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03));
  border: 1px solid rgba(255, 255, 255, 0.1);
  /* 3D Layered Shadow Effect */
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15), 0 12px 24px rgba(0, 0, 0, 0.2), 0 24px 48px rgba(0, 0, 0, 0.25), 0 48px 80px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1), inset 0 -1px 0 rgba(0, 0, 0, 0.1);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border-radius: 18px;
  padding: 20px !important;
  margin-top: 0 !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  transform: translateZ(0);
}

.job-details-dialog .job-info-panel:hover {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.05));
  border-color: rgba(255, 255, 255, 0.15);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15), 0 16px 32px rgba(0, 0, 0, 0.2), 0 32px 56px rgba(0, 0, 0, 0.25), 0 56px 100px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.12), inset 0 -1px 0 rgba(0, 0, 0, 0.1);
  transform: translateY(-4px) translateZ(0);
}

.job-details-dialog .job-info-panel .card,
.job-details-dialog .job-info-panel .project {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.job-details-dialog .job-info-panel .card-body {
  padding: 0 !important;
}

/* ==========================================================================
   TABS SECTION - Glassmorphic Card with Tab Header
   ========================================================================== */
.job-details-dialog .remark-tab mat-tab-group {
  display: flex;
  flex-direction: column;
  gap: 0;
  /* Glass Style Card */
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  box-shadow: 0 22px 60px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  border-radius: 22px !important;
  padding: 0 !important;
}

.job-details-dialog .remark-tab .card-box.job-tab-shell {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.job-details-dialog .remark-tab {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Tab Header Styling - Global selectors (no ::ng-deep needed) */
.job-details-dialog .mat-mdc-tab-label-container,
.job-details-dialog .mat-tab-label-container,
.job-details-dialog .mdc-tab-bar,
.job-details-dialog .mat-mdc-tab-labels {
  border: none !important;
  box-shadow: none !important;
  margin-bottom: 0 !important;
  padding: 0 !important;
}

.job-details-dialog .mat-mdc-tab-header,
.job-details-dialog .mat-tab-header {
  border: none !important;
  box-shadow: none !important;
  margin-bottom: 0 !important;
  padding-top: 24px !important;
  padding-bottom: 8px !important;
  position: relative !important;
}

/* Bottom line under tab header */
.job-details-dialog .mat-mdc-tab-header::after,
.job-details-dialog .mat-tab-header::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  bottom: 0 !important;
  left: 24px !important;
  right: 24px !important;
  height: 1px !important;
  background: rgba(255, 255, 255, 0.08) !important;
  z-index: 1 !important;
}

.job-details-dialog .mat-mdc-tab-header::before,
.job-details-dialog .mat-tab-header::before {
  display: none !important;
}

/* Hide ink-bar underline indicator */
.job-details-dialog .mat-ink-bar,
.job-details-dialog .mat-mdc-tab-indicator,
.job-details-dialog .mdc-tab-indicator,
.job-details-dialog .mdc-tab-indicator__content,
.job-details-dialog .mdc-tab-indicator__content--underline {
  display: none !important;
  background: transparent !important;
  border: none !important;
  height: 0 !important;
}

/* Individual Tab Styling */
.job-details-dialog .mdc-tab,
.job-details-dialog .mat-mdc-tab,
.job-details-dialog .mat-tab-label {
  border-radius: 20px;
  margin-right: 6px;
  padding: 0 16px !important;
  height: 32px !important;
  min-height: 32px !important;
  min-width: auto !important;
  max-width: fit-content !important;
  width: auto !important;
  flex-grow: 0 !important;
  flex-shrink: 0 !important;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.6);
  background: transparent;
  transition: all 0.2s ease;
}

/* Left-align tabs container */
.job-details-dialog .mat-mdc-tab-labels,
.job-details-dialog .mat-tab-labels {
  justify-content: flex-start !important;
}

/* First tab spacing */
.job-details-dialog .mat-mdc-tab:first-child,
.job-details-dialog .mat-tab-label:first-child {
  margin-left: 16px !important;
}

/* Active Tab */
.job-details-dialog .mdc-tab--active,
.job-details-dialog .mat-mdc-tab--active,
.job-details-dialog .mat-tab-label-active {
  background: rgba(255, 122, 61, 0.15) !important;
  color: #ff7a3d !important;
}

.job-details-dialog .mat-mdc-tab-body-wrapper {
  padding: 16px 0;
}

.job-details-dialog .remark-tab .card-body {
  padding: 0 !important;
}

/* Job Add Card - Stat Card Style */
.job-details-dialog .job-add-card {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
  border-radius: 14px;
  padding: 14px 16px !important;
  margin-bottom: 12px;
}

/* ==========================================================================
   LEFT TABBED CARD - Custom Tab Section (STATUS, TEAM, VEHICLE, etc.)
   ========================================================================== */
/* Card Container */
.job-details-dialog .left-tabbed-card {
  display: flex;
  flex-direction: column;
  padding: 0 !important;
  overflow: hidden;
  min-height: 200px;
}

/* Tab Header Bar */
.job-details-dialog .left-card-tabs {
  display: flex;
  background: rgba(0, 0, 0, 0.2);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  position: relative;
  min-height: 48px;
}

/* Sliding Indicator (hidden - using background highlight instead) */
.job-details-dialog .left-tab-slider {
  display: none;
}

.job-details-dialog .left-tab-slider.ready {
  opacity: 1;
}

/* Individual Tab Button */
.job-details-dialog .left-tab {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  gap: 6px;
  padding: 0 16px;
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.5);
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
  position: relative;
}

.job-details-dialog .left-tab mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.job-details-dialog .left-tab:hover {
  color: rgba(255, 255, 255, 0.8);
  background: rgba(255, 255, 255, 0.04);
}

/* Active Tab - Orange highlighted */
.job-details-dialog .left-tab.active {
  color: #ffb083;
  background: rgba(255, 176, 131, 0.12);
  font-weight: 700;
}

.job-details-dialog .left-tab.active mat-icon {
  color: #ffb083 !important;
}

/* Tab Content Area */
.job-details-dialog .left-card-content {
  padding: 16px 20px 12px;
  animation: tabContentFadeIn 0.25s ease-out;
  position: relative;
}

/* Customer content with corner button */
.job-details-dialog .left-card-content.customer-content {
  padding-top: 12px;
}

/* Customer action buttons row */
.job-details-dialog .customer-action-btns {
  display: flex;
  justify-content: flex-end;
  gap: 6px;
  margin-bottom: 4px;
}

/* View Profile / View Ledger pill buttons */
.job-details-dialog .view-profile-btn-corner {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 10px;
  background: rgba(255, 176, 131, 0.15);
  border: 1px solid rgba(255, 176, 131, 0.3);
  border-radius: 999px;
  color: #ffb083;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.job-details-dialog .view-profile-btn-corner mat-icon {
  font-size: 13px;
  width: 13px;
  height: 13px;
}

.job-details-dialog .view-profile-btn-corner:hover {
  background: rgba(255, 176, 131, 0.25);
  border-color: rgba(255, 176, 131, 0.5);
  color: #fff;
}

/* Tab Content Fade Animation */
@keyframes tabContentFadeIn {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* Job Info Grid inside tabs */
.job-details-dialog .job-info-grid {
  display: grid;
  gap: 12px;
}

.job-details-dialog .job-info-grid-3col {
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
}

.job-details-dialog .job-info-row {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 12px;
}

.job-details-dialog .job-info-item {
  flex: 1;
  min-width: 120px;
}

.job-details-dialog .job-info-label {
  font-size: 10px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 4px;
}

.job-details-dialog .job-info-value {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}

.job-details-dialog .job-info-value.status-accent {
  color: #ffb083;
}

/* ==========================================================================
   PICKUP/DROP SECTION - PIXEL PERFECT MATCH (from backup)
   ========================================================================== */
.job-details-dialog .pickup-drop-section-wrapper {
  margin-top: 12px;
  padding-top: 0;
}

.job-details-dialog .pickup-drop-inline-grid {
  display: grid;
  grid-template-columns: 0.35fr 0.65fr;
  gap: 12px;
  align-items: stretch;
  width: 100%;
}

/* Inline grid cards - more compact padding from backup */
.job-details-dialog .pickup-drop-inline-grid .pickup-drop-section {
  padding: 6px 12px;
  margin-bottom: 0;
}

/* Even more compact for completed/history state */
.job-details-dialog .pickup-drop-inline-grid .pickup-drop-section.transport-completed,
.job-details-dialog .pickup-drop-inline-grid .pickup-drop-section.transport-history {
  padding: 4px 10px;
}

.job-details-dialog .pickup-drop-inline-grid .pickup-drop-header {
  margin-bottom: 2px;
}

.job-details-dialog .pickup-drop-inline-grid .pickup-drop-grid {
  gap: 4px 16px;
}

/* Base Pickup/Drop Card */
.job-details-dialog .pickup-drop-section {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 10px 14px 16px 14px;
  margin-bottom: 0;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0.01) 100%);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-left: 3px solid var(--accent, rgba(255, 255, 255, 0.2));
  border-radius: 10px;
  box-shadow: 0 4px 16px -2px rgba(0, 0, 0, 0.15);
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
  overflow: hidden;
}

/* Theme colors - Pickup = Purple/Indigo, Drop = Orange (per user request) */
.job-details-dialog .pickup-drop-section.pickup-theme {
  --accent: #6366f1;
  --transport-accent: #6366f1;
  --transport-accent-soft: rgba(99, 102, 241, 0.12);
  --transport-accent-text: #a5b4fc;
}

.job-details-dialog .pickup-drop-section.drop-theme {
  --accent: #ff7850;
  --transport-accent: #ff7850;
  --transport-accent-soft: rgba(255, 120, 80, 0.12);
  --transport-accent-text: #ffb296;
}

/* Hover effects */
.job-details-dialog .pickup-drop-section:not(.transport-secondary):not(.transport-completed):not(.transport-history):hover {
  transform: translateY(-2px);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0.02) 100%);
  box-shadow: inset 0 0 20px rgba(255, 255, 255, 0.02), 0 12px 28px -4px rgba(0, 0, 0, 0.3), 0 0 0 1px var(--accent);
}

.job-details-dialog .pickup-drop-section.clickable {
  cursor: pointer;
}

/* Pickup Theme - Purple/Indigo accent (per user request) */
.job-details-dialog .pickup-drop-section.pickup-theme .section-label {
  color: #6366f1 !important;
}

.job-details-dialog .pickup-drop-section.pickup-theme .section-icon {
  border-color: rgba(99, 102, 241, 0.5) !important;
}

.job-details-dialog .pickup-drop-section.pickup-theme .section-icon mat-icon {
  color: #6366f1 !important;
}

.job-details-dialog .pickup-drop-section.pickup-theme .status-pill.pill-completed {
  background: rgba(99, 102, 241, 0.2) !important;
  color: #a5b4fc !important;
  border: 1px solid rgba(99, 102, 241, 0.4) !important;
}

.job-details-dialog .pickup-drop-section.pickup-theme .status-pill.pill-pending {
  background: rgba(99, 102, 241, 0.15) !important;
  color: #a5b4fc !important;
  border: 1px solid rgba(99, 102, 241, 0.3) !important;
}

.job-details-dialog .pickup-drop-section.pickup-theme .completed-check {
  color: #6366f1 !important;
}

.job-details-dialog .pickup-drop-section.pickup-theme .completed-label {
  color: #a5b4fc !important;
}

.job-details-dialog .pickup-drop-section.pickup-theme .completed-meta {
  color: rgba(165, 180, 252, 0.7) !important;
}

.job-details-dialog .pickup-drop-section.pickup-theme.transport-completed,
.job-details-dialog .pickup-drop-section.pickup-theme.transport-history {
  background: linear-gradient(135deg, rgba(99, 102, 241, 0.1) 0%, rgba(99, 102, 241, 0.02) 100%) !important;
  border-left-color: #6366f1 !important;
}

/* Drop Theme - Orange accent (per user request) */
.job-details-dialog .pickup-drop-section.drop-theme .section-label {
  color: #ff7850 !important;
}

.job-details-dialog .pickup-drop-section.drop-theme .section-icon {
  border-color: rgba(255, 120, 80, 0.5) !important;
}

.job-details-dialog .pickup-drop-section.drop-theme .section-icon mat-icon {
  color: #ff7850 !important;
}

.job-details-dialog .pickup-drop-section.drop-theme .status-pill.pill-pending {
  background: rgba(255, 120, 80, 0.15) !important;
  color: #ffb296 !important;
  border: 1px solid rgba(255, 120, 80, 0.3) !important;
}

.job-details-dialog .pickup-drop-section.drop-theme .status-pill.pill-completed {
  background: rgba(255, 120, 80, 0.2) !important;
  color: #ffb296 !important;
  border: 1px solid rgba(255, 120, 80, 0.4) !important;
}

.job-details-dialog .pickup-drop-section.drop-theme .completed-check {
  color: #ff7850 !important;
}

.job-details-dialog .pickup-drop-section.drop-theme .completed-label {
  color: #ffb296 !important;
}

.job-details-dialog .pickup-drop-section.drop-theme .completed-meta {
  color: rgba(255, 178, 150, 0.7) !important;
}

.job-details-dialog .pickup-drop-section.drop-theme .not-scheduled-card mat-icon {
  color: rgba(255, 178, 150, 0.5);
}

.job-details-dialog .pickup-drop-section.drop-theme .not-scheduled-card .quick-assign-btn {
  background: rgba(255, 120, 80, 0.15) !important;
  border-color: rgba(255, 120, 80, 0.5) !important;
  color: #ffb296 !important;
}

.job-details-dialog .pickup-drop-section.drop-theme .not-scheduled-card .quick-assign-btn mat-icon {
  color: #ffb296 !important;
}

.job-details-dialog .pickup-drop-section.drop-theme .not-scheduled-card .quick-assign-btn:hover {
  background: rgba(255, 120, 80, 0.3) !important;
  border-color: rgba(255, 120, 80, 0.7) !important;
  color: #fff !important;
}

/* Card Header */
.job-details-dialog .pickup-drop-header {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 4px;
}

/* Section Icon - Arrow style */
.job-details-dialog .section-icon {
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.06);
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.15);
}

.job-details-dialog .section-icon mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: rgba(255, 255, 255, 0.7);
}

/* Section Label */
.job-details-dialog .section-label {
  font-size: 11px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.9);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  flex: 1;
}

/* Status Badge - COMPLETED/PENDING */
.job-details-dialog .status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
  min-height: 18px;
  line-height: 1;
}

.job-details-dialog .status-pill.pill-completed {
  background: rgba(74, 222, 128, 0.2);
  color: #4ade80;
  border: 1px solid rgba(74, 222, 128, 0.4);
}

.job-details-dialog .status-pill.pill-pending {
  background: rgba(255, 160, 100, 0.2);
  color: #ffa064;
  border: 1px solid rgba(255, 160, 100, 0.4);
}

/* Completed State - Checkmark and details */
.job-details-dialog .transport-completed-info {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 4px 0;
}

.job-details-dialog .completed-check {
  color: #4ade80;
  font-size: 22px;
  width: 22px;
  height: 22px;
  margin-top: 2px;
}

.job-details-dialog .completed-details {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.job-details-dialog .completed-label {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
}

.job-details-dialog .completed-meta {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.4;
}

/* Not Scheduled State - Compact inline layout from backup */
.job-details-dialog .not-scheduled-card {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 12px;
  color: rgba(255, 255, 255, 0.45);
  font-size: 11px;
  font-weight: 500;
  font-style: italic;
  border: none;
  border-radius: 8px;
  background: transparent;
  text-align: center;
}

.job-details-dialog .not-scheduled-card mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: rgba(255, 255, 255, 0.3);
  flex-shrink: 0;
}

.job-details-dialog .not-scheduled-card > span {
  white-space: nowrap;
}

/* Quick Assign Button - Small & Pill-shaped from backup */
.job-details-dialog .not-scheduled-card .quick-assign-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 14px;
  background: rgba(255, 122, 61, 0.12);
  border: 1px solid rgba(255, 122, 61, 0.35);
  border-radius: 999px;
  color: #ff7a3d;
  font-size: 10px;
  font-weight: 600;
  font-style: normal;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.job-details-dialog .not-scheduled-card .quick-assign-btn mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
  color: #ff7a3d;
}

.job-details-dialog .not-scheduled-card .quick-assign-btn:hover {
  background: rgba(255, 122, 61, 0.22);
  border-color: rgba(255, 122, 61, 0.55);
  color: #ffb083;
  transform: translateY(-1px);
}

.job-details-dialog .not-scheduled-card .quick-assign-btn:hover mat-icon {
  color: #ffb083;
}

/* Secondary hint text */
.job-details-dialog .transport-secondary-hint {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px;
  background: rgba(0, 0, 0, 0.15);
  border-radius: 10px;
  border: 1px dashed rgba(255, 255, 255, 0.1);
}

.job-details-dialog .transport-secondary-hint mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 255, 255, 0.4);
}

.job-details-dialog .transport-secondary-hint span {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
}

/* Pickup/Drop Grid for scheduled info */
.job-details-dialog .pickup-drop-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px 8px;
  margin-top: 4px;
}

.job-details-dialog .grid-item {
  display: flex;
  flex-direction: column;
  gap: 0px;
}

.job-details-dialog .pickup-drop-grid .field-label {
  font-size: 8px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.45);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.job-details-dialog .pickup-drop-grid .field-value {
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
  line-height: 1.2;
}

/* Pickup/Drop Divider (vertical line between cards - not used in new grid) */
.job-details-dialog .pickup-drop-divider-vertical {
  display: none;
}

/* Actions row below cards */
.job-details-dialog .pickup-drop-actions-inline {
  display: flex;
  gap: 10px;
  margin-top: 16px;
  justify-content: flex-end;
}

/* Transport state modifiers */
.job-details-dialog .pickup-drop-section.transport-completed {
  background: linear-gradient(145deg, rgba(74, 180, 100, 0.12) 0%, rgba(50, 120, 70, 0.08) 100%);
  border-color: rgba(74, 200, 120, 0.25);
}

.job-details-dialog .pickup-drop-section.transport-history {
  opacity: 0.75;
}

.job-details-dialog .pickup-drop-section.transport-primary {
  /* Primary state uses default styling */
  opacity: 1;
}

/* SECONDARY: Visually disabled/muted - future action (Drop pending while Pickup is active) */
.job-details-dialog .pickup-drop-section.transport-secondary {
  opacity: 0.55;
  background: rgba(255, 255, 255, 0.01);
  border-color: rgba(255, 255, 255, 0.03);
  padding-top: 6px;
  padding-bottom: 6px;
}

.job-details-dialog .pickup-drop-section.transport-secondary .section-label {
  color: rgba(255, 255, 255, 0.45) !important;
}

.job-details-dialog .pickup-drop-section.transport-secondary .section-icon {
  opacity: 0.5;
  border-color: rgba(255, 255, 255, 0.15) !important;
}

.job-details-dialog .pickup-drop-section.transport-secondary .section-icon mat-icon {
  color: rgba(255, 255, 255, 0.35) !important;
}

.job-details-dialog .pickup-drop-section.transport-secondary .status-pill {
  opacity: 0.5;
}

/* ==========================================================================
   ACTIVITY PANEL - PIXEL PERFECT MATCH
   Reference: Dark card with compose input at top
   ========================================================================== */
.job-details-dialog .job-activity-panel {
  width: 100%;
  flex-shrink: 0;
}

.job-details-dialog .activity-card-v2 {
  width: 100%;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 18px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - 200px);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.2);
}

/* Activity Header with Activity/WhatsApp tabs */
.job-details-dialog .activity-header-v2 {
  padding: 16px 16px 0;
}

/* pill-tabs-container and pill-tab-btn styling removed - inherits from global pill-tabs.css */
/* Compose Field - Dark input with pencil icon */
.job-details-dialog .activity-compose-v2 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.job-details-dialog .activity-compose-v2 .remark-image-preview-strip {
  width: 100%;
  order: -1;
}

.job-details-dialog .compose-field-v2 {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  padding: 10px 14px;
}

.job-details-dialog .compose-field-v2 mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 255, 255, 0.4);
}

.job-details-dialog .compose-input-v2 {
  flex: 1;
  background: transparent !important;
  border: none !important;
  outline: none;
  color: rgba(255, 255, 255, 0.9) !important;
  font-size: 13px;
  font-weight: 500;
}

.job-details-dialog .compose-input-v2::placeholder {
  color: rgba(255, 255, 255, 0.4) !important;
}

/* Note idle state — subtle italic when saved and not focused */
.job-details-dialog .compose-input-v2.note-idle-input::placeholder {
  font-style: italic;
  color: rgba(255, 255, 255, 0.35) !important;
  font-size: 12px;
}

.job-details-dialog .note-saved-idle .ui-modal__inline-header {
  opacity: 0.6;
}

.job-details-dialog .note-saved-idle .compose-input-v2 {
  opacity: 0.5;
  cursor: pointer;
}

.job-details-dialog .enter-hint {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.35);
  white-space: nowrap;
}

.job-details-dialog .compose-send-v2 {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(200, 100, 60, 0.9) 0%, rgba(180, 80, 50, 0.9) 100%);
  border: none;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.job-details-dialog .compose-send-v2:disabled {
  background: rgba(100, 100, 100, 0.3);
  cursor: not-allowed;
}

.job-details-dialog .compose-send-v2 mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: #fff;
}

/* Activity Feed */
.job-details-dialog .activity-feed-v2 {
  flex: 1;
  overflow-y: auto;
  padding: 16px;
}

.job-details-dialog .activity-group-label {
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.45);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 12px;
}

.job-details-dialog .activity-event-v2 {
  display: flex;
  gap: 12px;
  padding: 14px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 12px;
  margin-bottom: 10px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.job-details-dialog .activity-event-v2:hover {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
}

.job-details-dialog .event-icon-v2 {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.25);
  border-radius: 8px;
  flex-shrink: 0;
}

.job-details-dialog .event-icon-v2 mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: rgba(255, 255, 255, 0.5);
}

.job-details-dialog .event-content-v2 {
  flex: 1;
  min-width: 0;
}

.job-details-dialog .event-top-v2 {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}

.job-details-dialog .event-author-v2 {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}

.job-details-dialog .event-type-v2 {
  font-size: 10px;
  font-weight: 600;
  color: #ffa064;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 2px 6px;
  background: rgba(255, 160, 100, 0.15);
  border-radius: 4px;
  margin-left: 6px;
}

.job-details-dialog .event-time-v2 {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
  white-space: nowrap;
}

.job-details-dialog .event-text-v2 {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.65);
  line-height: 1.5;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
}

.job-details-dialog .event-text-v2.expanded {
  -webkit-line-clamp: unset;
  line-clamp: unset;
  display: block;
}

.job-details-dialog .event-expand-v2 {
  background: none;
  border: none;
  padding: 4px 0;
  color: #ffb083;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  margin-top: 4px;
}

/* Compose Attach Button */
.job-details-dialog .compose-attach-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  min-width: 32px;
  background: transparent;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  padding: 0;
  transition: all 0.2s ease;
}

.job-details-dialog .compose-attach-btn:hover {
  background: rgba(255, 255, 255, 0.1);
}

.job-details-dialog .compose-attach-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 255, 255, 0.5);
  transform: rotate(-45deg);
}

/* ─── Mic / Voice Recording Button ───────────────────────────────────────── */
.job-details-dialog .compose-mic-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  min-width: 32px;
  background: transparent;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  padding: 0;
  transition: all 0.2s ease;
}

.job-details-dialog .compose-mic-btn:hover {
  background: rgba(255, 255, 255, 0.1);
}

.job-details-dialog .compose-mic-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 255, 255, 0.5);
  transition: color 0.2s ease;
}

.job-details-dialog .compose-mic-btn.recording mat-icon,
.job-details-dialog .compose-mic-btn:active mat-icon {
  color: #ff4d4d;
}

/* ─── Recording Indicator Row ────────────────────────────────────────────── */
.job-details-dialog .recording-indicator {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 10px 14px;
  background: rgba(255, 60, 60, 0.08);
  border: 1px solid rgba(255, 60, 60, 0.2);
  border-radius: 12px;
  animation: recordingFadeIn 0.2s ease-out;
}

@keyframes recordingFadeIn {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* Pulsing red dot */
.job-details-dialog .recording-dot {
  width: 10px;
  height: 10px;
  min-width: 10px;
  border-radius: 50%;
  background: #ff3b3b;
  box-shadow: 0 0 0 0 rgba(255, 59, 59, 0.4);
  animation: recordingPulse 1.2s ease-in-out infinite;
}

@keyframes recordingPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(255, 59, 59, 0.5);
  }
  70% {
    box-shadow: 0 0 0 8px rgba(255, 59, 59, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(255, 59, 59, 0);
  }
}
/* Timer text */
.job-details-dialog .recording-timer {
  font-size: 14px;
  font-weight: 600;
  color: #ff6b6b;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.04em;
  min-width: 36px;
}

/* Stop button */
.job-details-dialog .recording-stop-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-left: auto;
  padding: 6px 14px;
  background: rgba(255, 60, 60, 0.15);
  border: 1px solid rgba(255, 60, 60, 0.3);
  border-radius: 8px;
  color: #ff6b6b;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

.job-details-dialog .recording-stop-btn:hover {
  background: rgba(255, 60, 60, 0.25);
  border-color: rgba(255, 60, 60, 0.5);
}

.job-details-dialog .recording-stop-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: #ff5252;
}

/* ─── Audio Remark Player ─────────────────────────────────────────────────── */
.job-details-dialog .audio-remark-wrap {
  margin-top: 8px;
  width: 100%;
}

.job-details-dialog .audio-remark-player {
  display: block;
  width: 100%;
  height: 36px;
  border-radius: 10px;
  outline: none;
  /* Tint the native audio control to match dark theme */
  accent-color: #ff7a3d;
  background: rgba(0, 0, 0, 0.3);
  border: 1px solid rgba(255, 255, 255, 0.1);
  filter: invert(0.05) brightness(1.1);
}

/* Remark Image Preview Strip (compose area) */
.job-details-dialog .remark-image-preview-strip {
  display: flex;
  gap: 8px;
  padding: 8px 16px 0;
  flex-wrap: wrap;
  width: 100%;
}

.job-details-dialog .remark-preview-item {
  position: relative;
  width: 48px;
  height: 48px;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.15);
}

.job-details-dialog .remark-preview-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.job-details-dialog .remark-preview-remove {
  position: absolute;
  top: -2px;
  right: -2px;
  width: 18px;
  height: 18px;
  background: rgba(220, 50, 50, 0.9);
  border: none;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
}

.job-details-dialog .remark-preview-remove mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
  color: #fff;
}

/* Remark Image Thumbnails (activity feed) */
.job-details-dialog .remark-images-row {
  display: flex;
  gap: 6px;
  margin-top: 8px;
  flex-wrap: wrap;
}

.job-details-dialog .remark-thumb {
  width: 56px;
  height: 56px;
  object-fit: cover;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  cursor: pointer;
  transition: all 0.2s ease;
}

.job-details-dialog .remark-thumb:hover {
  border-color: rgba(255, 176, 131, 0.5);
  transform: scale(1.05);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

/* Event Actions */
.job-details-dialog .event-actions-v2 {
  display: flex;
  gap: 8px;
  margin-top: 8px;
}

.job-details-dialog .event-action-btn {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.job-details-dialog .event-action-btn:hover {
  background: rgba(255, 255, 255, 0.1);
}

.job-details-dialog .event-action-btn mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: rgba(255, 255, 255, 0.5);
}

/* ==========================================================================
   CUSTOM SELECT WRAPPER - DROPDOWN FIX
   Reference: Dark brown pill with orange text
   ========================================================================== */
.job-details-dialog .custom-select-wrapper {
  position: relative;
  display: inline-flex;
  align-items: center;
  cursor: pointer;
}

.job-details-dialog .custom-select-wrapper:hover .selected-text,
.job-details-dialog .custom-select-wrapper:hover .select-arrow {
  color: #ffcaa0 !important;
}

.job-details-dialog .custom-select-wrapper .selected-text {
  color: #ffb083;
  font-weight: 600;
  font-size: 14px;
  margin-right: 2px;
  pointer-events: none;
  white-space: nowrap;
}

.job-details-dialog .custom-select-wrapper .select-arrow {
  color: #ffb083;
  width: 20px;
  height: 20px;
  font-size: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.job-details-dialog .custom-select-wrapper .hidden-select {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  border: none;
  padding: 0;
  margin: 0;
}

/* Not applicable text styling */
.job-details-dialog .not-applicable-text {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.5);
  font-style: italic;
}

/* ==========================================================================
   LEFT TABBED CARD - From Backup
   ========================================================================== */
.job-details-dialog .left-tabbed-card {
  display: flex;
  flex-direction: column;
  padding: 0 !important;
  overflow: hidden;
  min-height: 200px;
}

.job-details-dialog .left-card-tabs {
  display: flex;
  background: rgba(0, 0, 0, 0.2);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  position: relative;
}

.job-details-dialog .left-tab-slider {
  display: none;
}

.job-details-dialog .left-tab {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 16px;
  min-height: 48px;
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.5);
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
  position: relative;
}

.job-details-dialog .left-tab mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.job-details-dialog .left-tab:hover {
  color: rgba(255, 255, 255, 0.8);
  background: rgba(255, 255, 255, 0.04);
}

.job-details-dialog .left-tab.active {
  color: #ffb083;
  background: rgba(255, 176, 131, 0.12);
  font-weight: 700;
}

.job-details-dialog .left-tab.active mat-icon {
  color: #ffb083 !important;
}

.job-details-dialog .left-card-content {
  padding: 16px 20px 12px;
  animation: tabContentFadeIn 0.25s ease-out;
  position: relative;
}

/* ==========================================================================
   REQUIREMENTS SECTION - From Backup
   ========================================================================== */
.job-details-dialog .requirements-card {
  display: flex;
  gap: 24px;
  align-items: flex-start;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  padding: 24px;
}

.job-details-dialog .requirements-form {
  flex: 0 0 32%;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.job-details-dialog .requirements-form__header {
  font-size: 16px;
  font-weight: 600;
  color: #fff;
}

.job-details-dialog .requirements-form__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.job-details-dialog .requirements-form__body textarea,
.job-details-dialog .requirements-form textarea,
.job-details-dialog .requirements-card textarea,
.job-details-dialog .requirements-form__body textarea.form-control {
  min-height: 120px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.03) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  color: rgba(255, 255, 255, 0.9) !important;
  padding: 12px 14px;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2);
}

.job-details-dialog .requirements-form__body .btn-careager {
  align-self: flex-start;
  padding: 10px 28px;
}

.job-details-dialog .requirements-table-wrapper {
  flex: 1;
}

.job-details-dialog .requirements-table {
  width: 100%;
  background: transparent;
  border: none;
}

.job-details-dialog .requirements-table thead th {
  color: rgba(255, 255, 255, 0.55) !important;
  letter-spacing: 0.08em;
  font-size: 12px;
  text-align: left;
  padding: 8px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.job-details-dialog .requirements-table tbody td {
  color: rgba(255, 255, 255, 0.9) !important;
  font-size: 14px;
  padding: 12px 8px !important;
  vertical-align: middle !important;
}

.job-details-dialog .requirements-table tbody {
  display: table-row-group !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.job-details-dialog .requirements-table tbody tr {
  display: table-row !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  min-height: 40px !important;
}

.job-details-dialog .requirements-table tbody tr + tr {
  border-top: 1px solid rgba(255, 255, 255, 0.04);
}

/* Fix double border in requirements section */
.job-details-dialog .requirements-table-wrapper .table-responsive {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

/* ==========================================================================
   TAB PANEL CONTENT - Bottom tabs content fix
   ========================================================================== */
.job-details-dialog .tab-panel-body {
  padding: 0 !important;
  margin: 0 !important;
}

.job-details-dialog .page-tab-navigation {
  justify-content: center;
}

/* Services tab fix */
.job-details-dialog .services-wrapper,
.job-details-dialog .services-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.job-details-dialog .service-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
}

/* ==========================================================================
   ACTIVITY PANEL V2 - From Backup
   ========================================================================== */
.job-details-dialog .activity-panel,
.job-details-dialog .job-activity-panel {
  display: flex;
  flex-direction: column;
  min-height: 0;
  min-width: 0;
  height: 100%;
}

.job-details-dialog .activity-card-v2 {
  padding: 6px;
  gap: 10px;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.job-details-dialog .activity-header-v2 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.job-details-dialog .activity-header-v2 .pill-tabs-container {
  display: inline-flex;
  padding: 4px;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(0, 0, 0, 0.45);
  gap: 0;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.3);
}

.job-details-dialog .activity-compose-v2 {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.02);
}

.job-details-dialog .compose-field-v2 {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 10px;
  border: none;
  background: transparent;
  position: relative;
  min-width: 0;
}

.job-details-dialog .compose-field-v2 mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: rgba(255, 255, 255, 0.5);
}

.job-details-dialog .compose-input-v2 {
  flex: 1;
  border: none !important;
  background: transparent !important;
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  outline: none;
  padding: 0 !important;
  box-shadow: none !important;
  height: auto !important;
  min-width: 0;
}

.job-details-dialog .compose-input-v2::placeholder {
  color: rgba(255, 255, 255, 0.35);
}

.job-details-dialog .enter-hint {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 10px;
  color: rgba(255, 255, 255, 0.3);
  pointer-events: none;
  font-weight: 600;
  letter-spacing: 0.02em;
  z-index: 5;
}

.job-details-dialog .activity-feed-v2 {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow-y: auto;
  padding-right: 4px;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 106, 58, 0.4) transparent;
}

.job-details-dialog .activity-feed-v2::-webkit-scrollbar {
  width: 6px;
}

.job-details-dialog .activity-feed-v2::-webkit-scrollbar-track {
  background: transparent;
}

.job-details-dialog .activity-feed-v2::-webkit-scrollbar-thumb {
  background: rgba(255, 106, 58, 0.35);
  border-radius: 10px;
}

.job-details-dialog .activity-group-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.5);
  padding-left: 6px;
}

/* Activity Event Card */
.job-details-dialog .activity-event-v2 {
  display: grid;
  grid-template-columns: 26px 1fr;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.01));
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.job-details-dialog .activity-event-v2:hover {
  border-color: rgba(255, 106, 58, 0.25);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.job-details-dialog .event-icon-v2 {
  width: 26px;
  height: 26px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.04);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.5);
  flex-shrink: 0;
}

.job-details-dialog .event-icon-v2 mat-icon {
  font-size: 13px;
  width: 13px;
  height: 13px;
}

.job-details-dialog .event-content-v2 {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.job-details-dialog .event-top-v2 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.job-details-dialog .event-author-v2 {
  font-size: 12px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 140px;
}

.job-details-dialog .event-type-v2 {
  font-size: 7px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  padding: 1px 4px;
  border-radius: 999px;
  border: none;
  background: rgba(255, 106, 58, 0.2);
  color: #ffb083;
  line-height: 1.2;
}

.job-details-dialog .event-time-v2 {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.5);
  white-space: nowrap;
}

.job-details-dialog .event-text-v2 {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.job-details-dialog .event-footer-v2 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 4px;
}

.job-details-dialog .event-pill-v2 {
  font-size: 8px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 1px 5px;
  border-radius: 999px;
  border: none;
  line-height: 1.2;
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.5);
}

.job-details-dialog .event-actions-v2 {
  display: flex;
  gap: 4px;
  opacity: 0.7;
  transition: opacity 0.15s;
}

.job-details-dialog .activity-event-v2:hover .event-actions-v2 {
  opacity: 1;
}

.job-details-dialog .event-action-btn-v2 {
  width: 22px;
  height: 22px;
  border-radius: 6px;
  border: none;
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.5);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.15s;
}

.job-details-dialog .event-action-btn-v2:hover:not(:disabled) {
  background: rgba(255, 106, 58, 0.15);
  color: #ffb083;
}

.job-details-dialog .event-action-btn-v2 mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

/* =======================
   EXPECTATIONS SECTION - Premium Redesign
   ======================= */
.job-details-dialog .expectations-section-wrapper {
  display: flex;
  gap: 24px;
  padding: 8px 0;
  width: 100%;
  min-width: 0;
  align-items: flex-start;
}

.job-details-dialog .expectations-left-column {
  flex: 0 0 280px;
  max-width: 280px;
  min-width: 0;
}

.job-details-dialog .expectations-right-column {
  flex: 1;
  min-width: 0;
  max-height: 400px;
  overflow-y: auto;
  padding-right: 4px;
}

.job-details-dialog .expectations-right-column::-webkit-scrollbar {
  width: 4px;
}

.job-details-dialog .expectations-right-column::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.1);
  border-radius: 4px;
}

@media (max-width: 1080px) {
  .job-details-dialog .expectations-section-wrapper {
    flex-direction: column;
    gap: 16px;
  }
  .job-details-dialog .expectations-left-column {
    flex: 1 1 auto;
    max-width: none;
    width: 100%;
  }
  .job-details-dialog .expectations-right-column {
    max-height: none;
    width: 100%;
    padding-right: 0;
  }
}
/* Add Expectation Panel */
.job-details-dialog .add-expectation-panel {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  padding: 16px 20px;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.job-details-dialog .add-expectation-panel:focus-within {
  border-color: rgba(255, 176, 131, 0.3);
  box-shadow: 0 0 0 3px rgba(255, 176, 131, 0.08);
}

.job-details-dialog .add-expectation-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  color: rgba(255, 255, 255, 0.5);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.job-details-dialog .add-expectation-header mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  opacity: 0.6;
}

.job-details-dialog .add-expectation-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.job-details-dialog .expectation-input {
  background: rgba(0, 0, 0, 0.2);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 12px;
  padding: 12px 16px;
  color: #fff;
  font-family: inherit;
  font-size: 13px;
  line-height: 1.5;
  resize: none;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.job-details-dialog .expectation-input::placeholder {
  color: rgba(255, 255, 255, 0.3);
}

.job-details-dialog .expectation-input:focus {
  outline: none;
  border-color: rgba(255, 176, 131, 0.4);
  background: rgba(0, 0, 0, 0.25);
}

/* Quick add hint text */
.job-details-dialog .quick-add-hint {
  display: block;
  font-size: 10px;
  color: rgba(255, 255, 255, 0.3);
  text-align: center;
  margin-top: 10px;
  font-style: italic;
  letter-spacing: 0.2px;
}

/* Expectations List */
.job-details-dialog .expectations-list-container {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* Expectation Card */
.job-details-dialog .expectation-card {
  display: flex;
  gap: 14px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 14px;
  padding: 14px 16px;
  transition: all 0.2s ease;
}

.job-details-dialog .expectation-card:hover {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
}

/* First row with description and badge */
.job-details-dialog .expectation-first-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}

.job-details-dialog .expectation-first-row .expectation-text {
  flex: 1;
  margin: 0;
}

/* Completed Badge - small inline pill */
.job-details-dialog .completed-badge {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 2px 6px;
  background: rgba(76, 175, 80, 0.2);
  border: 1px solid rgba(76, 175, 80, 0.35);
  border-radius: 8px;
  color: #81c784;
  font-size: 9px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.2px;
  flex-shrink: 0;
  white-space: nowrap;
}

.job-details-dialog .completed-badge mat-icon {
  font-size: 10px;
  width: 10px;
  height: 10px;
  color: #4caf50;
}

/* Green-themed completed card */
.job-details-dialog .expectation-card.is-completed {
  background: linear-gradient(135deg, rgba(76, 175, 80, 0.12), rgba(46, 125, 50, 0.08));
  border-color: rgba(76, 175, 80, 0.35);
  box-shadow: 0 0 15px rgba(76, 175, 80, 0.15), inset 0 0 20px rgba(76, 175, 80, 0.05);
}

.job-details-dialog .expectation-card.is-completed:hover {
  background: linear-gradient(135deg, rgba(76, 175, 80, 0.18), rgba(46, 125, 50, 0.12));
  border-color: rgba(76, 175, 80, 0.45);
}

.job-details-dialog .expectation-card.is-completed .checkmark {
  background: linear-gradient(135deg, #4caf50, #2e7d32) !important;
  border-color: #4caf50 !important;
}

.job-details-dialog .expectation-checkbox {
  flex-shrink: 0;
  padding-top: 2px;
}

/* Custom Checkbox */
.job-details-dialog .custom-checkbox {
  display: block;
  position: relative;
  padding-left: 0;
  cursor: pointer;
  -webkit-user-select: none;
          user-select: none;
}

.job-details-dialog .custom-checkbox input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}

.job-details-dialog .custom-checkbox .checkmark {
  position: relative;
  display: block;
  height: 20px;
  width: 20px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 6px;
  transition: all 0.2s ease;
}

.job-details-dialog .custom-checkbox:hover .checkmark {
  border-color: rgba(255, 176, 131, 0.4);
}

.job-details-dialog .custom-checkbox input:checked ~ .checkmark {
  background: linear-gradient(135deg, rgba(129, 199, 132, 0.7), rgba(76, 175, 80, 0.7));
  border-color: rgba(129, 199, 132, 0.5);
}

.job-details-dialog .custom-checkbox .checkmark:after {
  content: "";
  position: absolute;
  display: none;
  left: 6px;
  top: 2px;
  width: 5px;
  height: 10px;
  border: solid white;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.job-details-dialog .custom-checkbox input:checked ~ .checkmark:after {
  display: block;
}

.job-details-dialog .expectation-content {
  flex: 1;
  min-width: 0;
}

.job-details-dialog .expectation-text {
  color: rgba(255, 255, 255, 0.88);
  font-size: 13px;
  line-height: 1.5;
  margin: 0 0 8px 0;
  word-wrap: break-word;
  transition: all 0.2s ease;
}

.job-details-dialog .expectation-text.completed {
  color: rgba(255, 255, 255, 0.4);
  text-decoration: line-through;
}

.job-details-dialog .expectation-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.job-details-dialog .expectation-author {
  display: flex;
  align-items: center;
  gap: 6px;
}

.job-details-dialog .author-avatar {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(255, 140, 80, 0.3), rgba(220, 100, 60, 0.3));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 600;
  color: #ffb083;
}

.job-details-dialog .author-avatar.small {
  width: 20px;
  height: 20px;
  font-size: 9px;
}

.job-details-dialog .author-name {
  color: rgba(255, 255, 255, 0.6);
  font-size: 11px;
  font-weight: 500;
}

.job-details-dialog .expectation-date {
  color: rgba(255, 255, 255, 0.35);
  font-size: 10px;
  font-weight: 500;
}

/* Expectations Empty State */
.job-details-dialog .expectations-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 48px 24px;
  text-align: center;
}

.job-details-dialog .expectations-empty mat-icon {
  font-size: 48px;
  width: 48px;
  height: 48px;
  color: rgba(255, 255, 255, 0.15);
  margin-bottom: 16px;
}

.job-details-dialog .expectations-empty p {
  margin: 0;
  color: rgba(255, 255, 255, 0.4);
  font-size: 14px;
  font-weight: 500;
}

.job-details-dialog .expectations-empty span {
  color: rgba(255, 255, 255, 0.25);
  font-size: 12px;
  margin-top: 4px;
}

/* =======================================================================================
   PHASE 1: CRITICAL MISSING SECTIONS - RESTORED FROM BACKUP
   ======================================================================================= */
/* =======================
   TAB CONTENT CONTAINER & PANEL STYLING
   ======================= */
.job-details-dialog .tab-panel-body {
  padding: 0 !important;
  margin: 0 !important;
}

.job-details-dialog .tab-content-container {
  padding: 0;
  margin: 0;
}

.job-details-dialog .tab-panel {
  padding: 0;
  margin: 0;
  min-height: 200px;
}

/* Payment tab layout - ensure side-by-side display */
:host ::ng-deep .payment-tab-row {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  gap: 24px;
  align-items: flex-start;
  margin-right: -15px;
  margin-left: -15px;
}

:host ::ng-deep .payment-tab-row > .col-md-5 {
  flex: 0 0 calc(41.666667% - 12px) !important;
  max-width: calc(41.666667% - 12px) !important;
  width: calc(41.666667% - 12px) !important;
}

:host ::ng-deep .payment-tab-row > .col-md-7 {
  flex: 0 0 calc(58.333333% - 12px) !important;
  max-width: calc(58.333333% - 12px) !important;
  width: calc(58.333333% - 12px) !important;
}

/* =======================
   LEFT TABBED CARD  
   ======================= */
.job-details-dialog .left-tabbed-card {
  display: flex;
  flex-direction: column;
  padding: 0 !important;
  overflow: hidden;
  min-height: 200px;
}

/* Tab Header */
.job-details-dialog .left-card-tabs {
  display: flex;
  background: rgba(0, 0, 0, 0.2);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  position: relative;
}

/* Sliding Indicator */
.job-details-dialog .left-tab-slider {
  display: none;
}

.job-details-dialog .left-tab-slider.ready {
  opacity: 1;
}

.job-details-dialog .left-tab {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 16px;
  min-height: 48px;
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.5);
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
  position: relative;
}

.job-details-dialog .left-tab mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.job-details-dialog .left-tab:hover {
  color: rgba(255, 255, 255, 0.8);
  background: rgba(255, 255, 255, 0.04);
}

.job-details-dialog .left-tab.active {
  color: #ffb083;
  background: rgba(255, 176, 131, 0.12);
  font-weight: 700;
}

.job-details-dialog .left-tab.active mat-icon {
  color: #ffb083 !important;
}

/* Tab Content */
.job-details-dialog .left-card-content {
  padding: 16px 20px 12px;
  animation: tabContentFadeIn 0.25s ease-out;
  position: relative;
}

/* Customer content with corner button */
.job-details-dialog .left-card-content.customer-content {
  padding-top: 12px;
}

/* Customer action buttons row */
.job-details-dialog .customer-action-btns {
  display: flex;
  justify-content: flex-end;
  gap: 6px;
  margin-bottom: 4px;
}

/* View Profile / View Ledger pill buttons */
.job-details-dialog .view-profile-btn-corner {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 10px;
  background: rgba(255, 176, 131, 0.15);
  border: 1px solid rgba(255, 176, 131, 0.3);
  border-radius: 999px;
  color: #ffb083;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.job-details-dialog .view-profile-btn-corner mat-icon {
  font-size: 13px;
  width: 13px;
  height: 13px;
}

.job-details-dialog .view-profile-btn-corner:hover {
  background: rgba(255, 176, 131, 0.25);
  border-color: rgba(255, 176, 131, 0.5);
  color: #fff;
}

@keyframes tabContentFadeIn {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.job-details-dialog .left-card-content .content-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

.job-details-dialog .left-card-content .grid-item {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 14px 0;
  position: relative;
  transition: all 0.2s ease;
}

/* Divider lines removed for cleaner look */
.job-details-dialog .left-card-content .grid-item::after {
  display: none;
}

.job-details-dialog .left-card-content .content-grid .grid-item:nth-last-child(-n+2):not(.full-width)::after {
  display: none;
}

.job-details-dialog .left-card-content .content-grid .grid-item.full-width:last-child::after {
  display: none;
}

.job-details-dialog .left-card-content .grid-item.full-width {
  grid-column: span 2;
}

.job-details-dialog .left-card-content .field-label {
  font-size: 9px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(255, 255, 255, 0.3);
}

.job-details-dialog .left-card-content .field-value {
  font-size: 12px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.75);
  line-height: 1.35;
  word-break: break-word;
}

/* Claim Details Section */
.job-details-dialog .left-card-content .claim-details {
  margin-top: 12px;
}

.job-details-dialog .left-card-content .claim-divider {
  height: 1px;
  background: rgba(255, 255, 255, 0.08);
  margin-bottom: 12px;
}

.job-details-dialog .left-card-content .claim-header {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #ffb083;
  margin-bottom: 10px;
}

/* Section Divider */
.job-details-dialog .booking-section-divider {
  width: 100%;
  height: 1px;
  background: rgba(255, 255, 255, 0.08);
  margin: 24px 0;
}

/* Job Info Tab - Premium Grid Layout with Row Cards */
.job-details-dialog .job-info-content .job-info-grid-3col {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 12px 16px;
}

/* Row card container - groups 5 fields per row for full-width layout */
.job-details-dialog .job-info-content .job-info-row {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0 20px;
  padding: 8px 16px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 10px;
  transition: border-color 0.2s, background 0.2s;
}

.job-details-dialog .job-info-content .job-info-row:hover {
  background: rgba(255, 255, 255, 0.03);
  border-color: rgba(255, 255, 255, 0.08);
}

.job-details-dialog .job-info-content .job-info-item {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 4px 0;
  position: relative;
  transition: all 0.2s ease;
}

/* Remove the divider lines since we're using row cards now */
.job-details-dialog .job-info-content .job-info-item::after {
  display: none;
}

.job-details-dialog .job-info-content .job-info-label {
  font-size: 9px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(255, 255, 255, 0.3);
}

.job-details-dialog .job-info-content .job-info-value {
  font-size: 12px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.75);
  line-height: 1.35;
}

.job-details-dialog .job-info-content .job-info-value.status-accent {
  color: rgba(255, 176, 131, 0.85);
  font-weight: 500;
}

/* =======================
   DOCUMENTS SECTION
   ======================= */
.job-details-dialog .documents-card-body {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.job-details-dialog .documents-header {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding: 12px 16px !important;
}

/* Upload Queue */
.job-details-dialog .upload-queue {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px;
  background: linear-gradient(135deg, rgba(255, 122, 61, 0.08), rgba(255, 122, 61, 0.02));
  border: 1px solid rgba(255, 122, 61, 0.2);
  border-radius: 16px;
}

.job-details-dialog .upload-queue-header {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 176, 131, 0.9);
}

.job-details-dialog .upload-queue-header mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  animation: uploadBounce 1.5s ease-in-out infinite;
}

@keyframes uploadBounce {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-3px);
  }
}
.job-details-dialog .upload-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  background: rgba(0, 0, 0, 0.2);
  border-radius: 12px;
  transition: all 0.3s ease;
}

.job-details-dialog .upload-item.done {
  background: rgba(46, 125, 50, 0.15);
  border: 1px solid rgba(76, 175, 80, 0.3);
}

.job-details-dialog .upload-item.error {
  background: rgba(239, 68, 68, 0.12);
  border: 1px solid rgba(239, 68, 68, 0.3);
}

.job-details-dialog .upload-item-preview {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
}

.job-details-dialog .upload-preview-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 10px;
}

.job-details-dialog .upload-item-preview mat-icon {
  font-size: 22px;
  width: 22px;
  height: 22px;
  color: rgba(255, 176, 131, 0.85);
}

.job-details-dialog .upload-item-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.job-details-dialog .upload-item-name {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.9);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.job-details-dialog .upload-progress-bar {
  height: 4px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 2px;
  overflow: hidden;
}

.job-details-dialog .upload-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #ff7a3d, #ffb083);
  border-radius: 2px;
  transition: width 0.2s ease;
}

.job-details-dialog .upload-item.done .upload-progress-fill {
  background: linear-gradient(90deg, #4caf50, #81c784);
}

.job-details-dialog .upload-item.error .upload-progress-fill {
  background: linear-gradient(90deg, #ef4444, #f87171);
  width: 100% !important;
}

.job-details-dialog .upload-item-status {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
}

.job-details-dialog .upload-item.done .upload-item-status {
  color: #81c784;
}

.job-details-dialog .upload-item.error .upload-item-status {
  color: #f87171;
}

.job-details-dialog .upload-retry-btn {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: rgba(239, 68, 68, 0.2);
  border: none;
  color: #f87171;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
}

.job-details-dialog .upload-retry-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

/* Document Grid */
.job-details-dialog .document-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 16px;
}

.job-details-dialog .document-card-enhanced {
  display: flex;
  flex-direction: column;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  overflow: hidden;
  transition: all 0.25s ease;
}

.job-details-dialog .document-card-enhanced:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.15);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}

/* Image Preview */
.job-details-dialog .document-preview {
  position: relative;
  height: 120px;
  overflow: hidden;
  cursor: pointer;
}

.job-details-dialog .document-preview-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.job-details-dialog .document-card-enhanced:hover .document-preview-img {
  transform: scale(1.05);
}

.job-details-dialog .document-preview-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.2s ease;
}

.job-details-dialog .document-preview:hover .document-preview-overlay {
  opacity: 1;
}

.job-details-dialog .document-preview-overlay mat-icon {
  font-size: 32px;
  width: 32px;
  height: 32px;
  color: white;
}

/* File Icon for non-images */
.job-details-dialog .document-file-icon {
  height: 120px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: linear-gradient(160deg, rgba(255, 122, 61, 0.12), rgba(255, 122, 61, 0.04));
  position: relative;
}

.job-details-dialog .document-preview.clickable,
.job-details-dialog .document-file-icon.clickable {
  cursor: pointer;
}

.job-details-dialog .document-file-icon.clickable:hover {
  background: linear-gradient(160deg, rgba(255, 122, 61, 0.2), rgba(255, 122, 61, 0.08));
}

.job-details-dialog .file-open-hint {
  position: absolute;
  bottom: 8px;
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  color: rgba(255, 255, 255, 0.4);
  opacity: 0;
  transition: opacity 0.2s ease;
}

.job-details-dialog .document-file-icon.clickable:hover .file-open-hint {
  opacity: 1;
}

.job-details-dialog .file-open-hint mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

.job-details-dialog .document-file-icon mat-icon {
  font-size: 42px;
  width: 42px;
  height: 42px;
  color: rgba(255, 176, 131, 0.8);
}

.job-details-dialog .file-extension {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 2px 8px;
  border-radius: 4px;
  background: rgba(255, 122, 61, 0.2);
  color: rgba(255, 176, 131, 0.95);
}

/* Document Card Footer */
.job-details-dialog .document-card-footer {
  padding: 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.job-details-dialog .document-card-info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.job-details-dialog .document-card-name {
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.9);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.job-details-dialog .document-card-date {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.45);
}

.job-details-dialog .document-card-actions {
  display: flex;
  gap: 4px;
  flex-shrink: 0;
}

.job-details-dialog .doc-action-btn-sm {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.06);
  border: none;
  cursor: pointer;
  transition: all 0.2s ease;
  color: rgba(255, 255, 255, 0.6);
  text-decoration: none;
}

.job-details-dialog .doc-action-btn-sm:hover {
  background: rgba(255, 255, 255, 0.12);
  color: white;
}

.job-details-dialog .doc-action-btn-sm.delete:hover {
  background: rgba(239, 68, 68, 0.2);
  color: #ef4444;
}

.job-details-dialog .doc-action-btn-sm mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

/* Enhanced Empty State */
.job-details-dialog .documents-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 48px 24px;
  text-align: center;
}

.job-details-dialog .empty-state-icon {
  width: 80px;
  height: 80px;
  border-radius: 24px;
  background: linear-gradient(135deg, rgba(255, 122, 61, 0.15), rgba(255, 122, 61, 0.05));
  border: 1px solid rgba(255, 122, 61, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
}

.job-details-dialog .empty-state-icon mat-icon {
  font-size: 36px;
  width: 36px;
  height: 36px;
  color: rgba(255, 176, 131, 0.7);
}

.job-details-dialog .documents-empty-state .empty-title {
  font-size: 16px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
  margin: 0 0 8px 0;
}

.job-details-dialog .documents-empty-state .empty-description {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.5);
  margin: 0 0 20px 0;
}

.job-details-dialog .supported-formats {
  margin-top: 16px;
}

.job-details-dialog .supported-formats span {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.35);
}

/* Tab Count Badge */
.job-details-dialog .tab-count-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  margin-left: 6px;
  font-size: 10px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.85);
  background: rgba(255, 122, 61, 0.25);
  border-radius: 99px;
  line-height: 1;
}

.job-details-dialog .pill-tab-btn.active .tab-count-badge {
  background: rgba(255, 255, 255, 0.15);
  color: white;
}

/* =======================
   GALLERY SECTION
   ======================= */
.job-details-dialog .gallery-horizontal-container {
  width: 100%;
  overflow: hidden;
}

.job-details-dialog .gallery-horizontal-scroll {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 16px 8px;
  scroll-behavior: smooth;
  /* Custom scrollbar */
  scrollbar-width: thin;
  scrollbar-color: rgba(140, 70, 40, 0.4) transparent;
}

.job-details-dialog .gallery-horizontal-scroll::-webkit-scrollbar {
  height: 8px;
}

.job-details-dialog .gallery-horizontal-scroll::-webkit-scrollbar-track {
  background: transparent;
  border-radius: 10px;
}

.job-details-dialog .gallery-horizontal-scroll::-webkit-scrollbar-thumb {
  background: rgba(140, 70, 40, 0.4);
  border-radius: 10px;
  border: 2px solid transparent;
  background-clip: padding-box;
}

.job-details-dialog .gallery-horizontal-scroll::-webkit-scrollbar-thumb:hover {
  background: rgba(180, 90, 50, 0.6);
  background-clip: padding-box;
}

.job-details-dialog .gallery-image-item {
  flex-shrink: 0;
  position: relative;
  width: 280px;
  height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.job-details-dialog .gallery-image-link {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 12px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.1);
  transition: all 0.3s ease;
}

.job-details-dialog .gallery-image-link:hover {
  transform: scale(1.02);
  border-color: rgba(255, 122, 61, 0.4);
  box-shadow: 0 8px 24px rgba(255, 122, 61, 0.2);
}

.job-details-dialog .gallery-image-rotated {
  width: 100%;
  height: 100%;
  object-fit: cover;
  cursor: pointer;
  /* Rotate anti-clockwise (counter-clockwise) by 90 degrees */
  transform: rotate(-90deg);
  transform-origin: center center;
  /* Since we're rotating 90deg, we need to swap width/height perception */
  width: 200px;
  height: 280px;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -100px;
  /* -width/2 */
  margin-top: -140px;
  /* -height/2 */
}

.job-details-dialog .gallery-delete-icon {
  position: absolute;
  top: 8px;
  right: 8px;
  cursor: pointer;
  color: #ea4426 !important;
  background: rgba(0, 0, 0, 0.6);
  border-radius: 50%;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  z-index: 10;
  transition: all 0.2s ease;
}

.job-details-dialog .gallery-delete-icon:hover {
  background: rgba(234, 68, 38, 0.9);
  color: #fff !important;
  transform: scale(1.1);
}

/* Gallery Empty State */
.job-details-dialog .gallery-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 64px 32px;
  text-align: center;
  width: 100%;
  min-height: 320px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.01));
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
}

.job-details-dialog .gallery-empty-state .empty-icon {
  font-size: 72px;
  width: 72px;
  height: 72px;
  color: rgba(255, 122, 61, 0.4);
  margin-bottom: 20px;
}

.job-details-dialog .gallery-empty-state .empty-title {
  font-size: 20px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.9);
  margin: 0 0 8px 0;
  letter-spacing: -0.02em;
}

.job-details-dialog .gallery-empty-state .empty-description {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.5);
  margin: 0 0 28px 0;
  max-width: 320px;
}

.job-details-dialog .gallery-empty-state .btn-careager {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  font-size: 14px;
  font-weight: 600;
  border-radius: 999px;
  background: rgba(200, 90, 50, 0.85);
  border: 1px solid rgba(200, 90, 50, 0.5);
  color: #ffffff;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 4px 16px rgba(200, 90, 50, 0.25);
}

.job-details-dialog .gallery-empty-state .btn-careager:hover {
  background: rgba(220, 100, 55, 0.9);
  border-color: rgba(220, 100, 55, 0.6);
  box-shadow: 0 6px 20px rgba(200, 90, 50, 0.35);
  transform: translateY(-1px);
}

.job-details-dialog .gallery-empty-state .btn-careager mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
}

.job-details-dialog .btn-rounded {
  border-radius: 999px !important;
}

/* =======================
   PAYMENT SECTION
   ======================= */
.job-details-dialog .payment-section-wrapper {
  display: flex;
  gap: 24px;
  padding: 8px 0;
}

.job-details-dialog .payment-left-column {
  flex: 0 0 300px;
  max-width: 300px;
}

.job-details-dialog .payment-right-column {
  flex: 1;
  min-width: 0;
}

/* Payment Summary Card */
.job-details-dialog .payment-summary-card {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  padding: 16px 20px;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

.job-details-dialog .payment-summary-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
  color: rgba(255, 255, 255, 0.5);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.job-details-dialog .payment-summary-header mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  opacity: 0.6;
}

.job-details-dialog .payment-summary-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.job-details-dialog .summary-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 0;
}

.job-details-dialog .summary-label {
  color: rgba(255, 255, 255, 0.55);
  font-size: 12px;
  font-weight: 500;
  border-bottom: none;
  padding-bottom: 0;
  margin: 0;
}

.job-details-dialog .summary-value {
  color: rgba(255, 255, 255, 0.85);
  font-size: 12px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.job-details-dialog .summary-value.highlight {
  color: #ffb083;
  font-size: 14px;
  font-weight: 700;
}

.job-details-dialog .summary-value.success {
  color: rgba(129, 199, 132, 0.9);
}

.job-details-dialog .summary-value.warning {
  color: rgba(255, 183, 77, 0.9);
}

.job-details-dialog .summary-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
  margin: 8px 0;
}

/* Insurance / Customer bifurcation section headers */
.job-details-dialog .summary-section-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.45);
  margin: 4px 0 2px 0;
}

.job-details-dialog .summary-section-label mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  opacity: 0.7;
}

.job-details-dialog .summary-value.insurance-value {
  color: rgba(77, 208, 196, 0.9);
}

.job-details-dialog .summary-value.customer-value {
  color: rgba(255, 176, 131, 0.9);
}

/* Compact bifurcation grid */
.job-details-dialog .bifurcation-block {
  margin: 0;
}

.job-details-dialog .bifurcation-row {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: start;
  gap: 10px;
  padding: 3px 0;
}

.job-details-dialog .bifurcation-amounts {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 1px;
}

.job-details-dialog .bifurcation-label {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.45);
}

.job-details-dialog .bifurcation-label mat-icon {
  font-size: 13px;
  width: 13px;
  height: 13px;
  opacity: 0.6;
}

.job-details-dialog .bifurcation-paid {
  font-size: 10px;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  color: rgba(255, 255, 255, 0.5);
  opacity: 0.8;
}

.job-details-dialog .summary-total,
.job-details-dialog .summary-paid,
.job-details-dialog .summary-due {
  padding: 8px 0;
}

/* Payment History Card */
.job-details-dialog .payment-history-card {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.01));
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 16px;
  padding: 16px 20px;
  min-height: 200px;
}

.job-details-dialog .payment-history-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}

.job-details-dialog .history-title {
  display: flex;
  align-items: center;
  gap: 8px;
  color: rgba(255, 255, 255, 0.5);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.job-details-dialog .history-title mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  opacity: 0.6;
}

.job-details-dialog .history-actions {
  display: flex;
  gap: 8px;
}

.job-details-dialog .payment-action-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 12px;
  border: none;
  border-radius: 8px;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

.job-details-dialog .payment-action-btn mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.job-details-dialog .payment-action-btn.secondary {
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.75);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.job-details-dialog .payment-action-btn.secondary:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.15);
}

.job-details-dialog .payment-action-btn.primary {
  background: linear-gradient(135deg, rgba(255, 140, 80, 0.85), rgba(220, 100, 60, 0.85));
  color: #fff;
  box-shadow: 0 2px 8px rgba(255, 120, 60, 0.2);
}

.job-details-dialog .payment-action-btn.primary:hover:not(:disabled) {
  box-shadow: 0 4px 12px rgba(255, 120, 60, 0.3);
  transform: translateY(-1px);
}

/* Insurance payer button — teal/cyan to distinguish from customer (orange) */
.job-details-dialog .payment-action-btn.insurance {
  background: linear-gradient(135deg, rgba(56, 189, 180, 0.85), rgba(22, 140, 130, 0.85));
  color: #fff;
  box-shadow: 0 2px 8px rgba(38, 166, 154, 0.25);
}

.job-details-dialog .payment-action-btn.insurance:hover:not(:disabled) {
  box-shadow: 0 4px 12px rgba(38, 166, 154, 0.4);
  transform: translateY(-1px);
}

.job-details-dialog .payment-action-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* Transaction List */
.job-details-dialog .transaction-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-height: 320px;
  overflow-y: auto;
  padding-right: 4px;
}

.job-details-dialog .transaction-list::-webkit-scrollbar {
  width: 4px;
}

.job-details-dialog .transaction-list::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.1);
  border-radius: 4px;
}

/* Transaction Card */
.job-details-dialog .transaction-card {
  display: flex;
  align-items: center;
  gap: 16px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 12px;
  padding: 12px 14px;
  transition: all 0.2s ease;
}

.job-details-dialog .transaction-card:hover {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
}

.job-details-dialog .transaction-amount {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 90px;
}

.job-details-dialog .amount-value {
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.job-details-dialog .transaction-status {
  font-size: 9px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: rgba(255, 255, 255, 0.45);
}

.job-details-dialog .transaction-status.status-success {
  color: rgba(129, 199, 132, 0.85);
}

/* Payer attribution badge on transaction cards */
.job-details-dialog .txn-payer-badge {
  display: inline-block;
  font-size: 8px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 1px 6px;
  border-radius: 999px;
  line-height: 1.6;
  margin-top: 2px;
}

.job-details-dialog .txn-payer-customer {
  background: rgba(255, 140, 80, 0.18);
  color: #ffb083;
}

.job-details-dialog .txn-payer-insurance {
  background: rgba(56, 189, 180, 0.18);
  color: #4dd0c4;
}

.job-details-dialog .transaction-details {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  flex: 1;
}

.job-details-dialog .detail-item {
  display: flex;
  align-items: center;
  gap: 4px;
  color: rgba(255, 255, 255, 0.5);
  font-size: 11px;
}

.job-details-dialog .detail-item mat-icon {
  font-size: 13px;
  width: 13px;
  height: 13px;
  opacity: 0.5;
}

.job-details-dialog .txn-id {
  font-family: var(--ui-font-mono);
  font-size: 10px;
  color: rgba(255, 255, 255, 0.4);
}

.job-details-dialog .download-txn-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: none;
  border-radius: 6px;
  background: transparent;
  color: rgba(255, 255, 255, 0.3);
  cursor: pointer;
  transition: all 0.2s ease;
  margin-right: 4px;
}

.job-details-dialog .download-txn-btn:hover {
  background: rgba(33, 150, 243, 0.15);
  color: rgba(66, 165, 245, 0.85);
}

.job-details-dialog .download-txn-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.job-details-dialog .delete-txn-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: none;
  border-radius: 6px;
  background: transparent;
  color: rgba(255, 255, 255, 0.3);
  cursor: pointer;
  transition: all 0.2s ease;
}

.job-details-dialog .delete-txn-btn:hover {
  background: rgba(220, 53, 69, 0.15);
  color: rgba(255, 107, 122, 0.85);
}

.job-details-dialog .delete-txn-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

/* Payment Empty State */
.job-details-dialog .payment-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 48px 24px;
  text-align: center;
}

.job-details-dialog .payment-empty mat-icon {
  font-size: 48px;
  width: 48px;
  height: 48px;
  color: rgba(255, 255, 255, 0.15);
  margin-bottom: 16px;
}

.job-details-dialog .payment-empty p {
  margin: 0;
  color: rgba(255, 255, 255, 0.4);
  font-size: 14px;
  font-weight: 500;
}

.job-details-dialog .payment-empty span {
  color: rgba(255, 255, 255, 0.25);
  font-size: 12px;
  margin-top: 4px;
}

/* Fix black text issue in gallery asset labels */
.job-details-dialog .card-header {
  color: rgba(255, 255, 255, 0.9) !important;
}

.job-details-dialog mat-list-item,
.job-details-dialog .mat-list-item,
.job-details-dialog .mat-mdc-list-item {
  color: rgba(255, 255, 255, 0.85) !important;
}

.job-details-dialog .card-body {
  color: rgba(255, 255, 255, 0.85);
}

/* Force payment two-column layout with higher specificity */
.job-details-dialog .payment-section-wrapper {
  display: flex !important;
  flex-direction: row !important;
  gap: 24px !important;
  padding: 8px 0 !important;
}

.job-details-dialog .payment-left-column {
  flex: 0 0 300px !important;
  max-width: 300px !important;
}

.job-details-dialog .payment-right-column {
  flex: 1 !important;
  min-width: 0 !important;
}

/* =======================
   ACTIVITY V2 COMPLETE STYLES
   ======================= */
.job-details-dialog .activity-feed-v2 {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow-y: auto;
  padding-right: 4px;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 106, 58, 0.4) transparent;
}

.job-details-dialog .activity-feed-v2::-webkit-scrollbar {
  width: 6px;
}

.job-details-dialog .activity-feed-v2::-webkit-scrollbar-track {
  background: transparent;
}

.job-details-dialog .activity-feed-v2::-webkit-scrollbar-thumb {
  background: rgba(255, 106, 58, 0.35);
  border-radius: 10px;
}

.job-details-dialog .activity-group-v2 {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.job-details-dialog .activity-group-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.4);
  padding-left: 6px;
}

/* Activity Event Cards - Glass Style */
.job-details-dialog .activity-event-v2 {
  display: grid;
  grid-template-columns: 26px 1fr;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.job-details-dialog .activity-event-v2:hover {
  border-color: rgba(255, 106, 58, 0.25);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03));
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.job-details-dialog .event-icon-v2 {
  width: 26px;
  height: 26px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.04);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.5);
  flex-shrink: 0;
}

.job-details-dialog .event-icon-v2 mat-icon {
  font-size: 13px;
  width: 13px;
  height: 13px;
}

.job-details-dialog .event-content-v2 {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.job-details-dialog .event-top-v2 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.job-details-dialog .event-author-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.job-details-dialog .event-author-v2 {
  font-size: 12px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 140px;
}

.job-details-dialog .event-type-v2 {
  font-size: 7px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  padding: 1px 4px;
  border-radius: 999px;
  border: none;
  background: rgba(255, 122, 61, 0.2);
  color: #ffb083;
  line-height: 1.2;
}

.job-details-dialog .event-time-v2 {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.45);
  white-space: nowrap;
}

.job-details-dialog .event-text-v2 {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Event Pills */
.job-details-dialog .event-footer-v2 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 4px;
}

.job-details-dialog .event-meta-v2 {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.job-details-dialog .event-pill-v2 {
  font-size: 8px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 1px 5px;
  border-radius: 999px;
  border: none;
  line-height: 1.2;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.5);
}

.job-details-dialog .event-pill-v2.pill-source {
  background: rgba(38, 166, 154, 0.2);
  color: #4dd0c4;
}

.job-details-dialog .event-pill-v2.pill-status {
  background: rgba(255, 152, 0, 0.18);
  color: #ffb74d;
}

/* Event Action Buttons */
.job-details-dialog .event-actions-v2 {
  display: flex;
  gap: 4px;
  opacity: 0.7;
  transition: opacity 0.15s;
}

.job-details-dialog .activity-event-v2:hover .event-actions-v2 {
  opacity: 1;
}

.job-details-dialog .event-action-btn-v2 {
  width: 22px;
  height: 22px;
  border-radius: 6px;
  border: none;
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.5);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.15s;
}

.job-details-dialog .event-action-btn-v2:hover:not(:disabled) {
  background: rgba(255, 106, 58, 0.15);
  color: #ffb083;
}

.job-details-dialog .event-action-btn-v2 mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

/* FIX: Left card tabs - remove extra padding */
.job-details-dialog .left-card-tabs {
  display: flex !important;
  gap: 0 !important;
  padding: 0 !important;
  background: rgba(0, 0, 0, 0.2) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
}

.job-details-dialog .left-tab {
  flex: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  padding: 0 12px !important;
  min-height: 44px !important;
  max-height: 44px !important;
  background: transparent !important;
  border: none !important;
  color: rgba(255, 255, 255, 0.5) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
}

.job-details-dialog .left-tab mat-icon {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
}

.job-details-dialog .left-tab:hover {
  color: rgba(255, 255, 255, 0.8) !important;
  background: rgba(255, 255, 255, 0.04) !important;
}

.job-details-dialog .left-tab.active {
  color: #ffb083 !important;
  background: rgba(255, 176, 131, 0.12) !important;
  font-weight: 700 !important;
  flex: 1.4 !important;
}

.job-details-dialog .left-tab.active mat-icon {
  font-size: 17px !important;
  width: 17px !important;
  height: 17px !important;
}

/* =======================
   PICKUP/DROP THEME COLORS - FINAL OVERRIDES (Pickup=Purple, Drop=Orange)
   ======================= */
/* Pickup Theme - Purple/Indigo - Active & Prominent */
.job-details-dialog .pickup-drop-section.pickup-theme {
  background: linear-gradient(145deg, rgba(99, 102, 241, 0.15), rgba(99, 102, 241, 0.06)) !important;
  border: 1px solid rgba(99, 102, 241, 0.35) !important;
  opacity: 1 !important;
}

.job-details-dialog .pickup-drop-section.pickup-theme .section-label {
  color: #818cf8 !important;
}

.job-details-dialog .pickup-drop-section.pickup-theme .section-icon,
.job-details-dialog .pickup-drop-section.pickup-theme mat-icon.section-icon,
.job-details-dialog .pickup-drop-section.pickup-theme .section-icon mat-icon {
  color: #818cf8 !important;
  border-color: rgba(99, 102, 241, 0.5) !important;
}

.job-details-dialog .pickup-drop-section.pickup-theme .status-pill.pill-completed {
  background: rgba(99, 102, 241, 0.25) !important;
  color: #a5b4fc !important;
  border: 1px solid rgba(99, 102, 241, 0.4) !important;
}

.job-details-dialog .pickup-drop-section.pickup-theme .status-pill.pill-pending {
  background: rgba(99, 102, 241, 0.15) !important;
  color: #a5b4fc !important;
  border: 1px solid rgba(99, 102, 241, 0.3) !important;
}

.job-details-dialog .pickup-drop-section.pickup-theme .completed-check,
.job-details-dialog .pickup-drop-section.pickup-theme .check-icon {
  color: #818cf8 !important;
}

/* Drop Theme - Orange - SUBTLE/MUTED (pending state) */
.job-details-dialog .pickup-drop-section.drop-theme {
  background: rgba(255, 255, 255, 0.02) !important;
  border: 1px solid rgba(255, 255, 255, 0.06) !important;
  opacity: 0.55 !important;
}

.job-details-dialog .pickup-drop-section.drop-theme .section-label {
  color: rgba(255, 176, 131, 0.6) !important;
}

.job-details-dialog .pickup-drop-section.drop-theme .section-icon,
.job-details-dialog .pickup-drop-section.drop-theme mat-icon.section-icon,
.job-details-dialog .pickup-drop-section.drop-theme .section-icon mat-icon {
  color: rgba(255, 176, 131, 0.5) !important;
  border-color: rgba(255, 255, 255, 0.15) !important;
}

.job-details-dialog .pickup-drop-section.drop-theme .status-pill.pill-pending {
  background: rgba(100, 100, 110, 0.4) !important;
  color: rgba(255, 255, 255, 0.5) !important;
  border: none !important;
}

.job-details-dialog .pickup-drop-section.drop-theme .status-pill.pill-completed {
  background: rgba(255, 120, 80, 0.25) !important;
  color: #ffb296 !important;
  border: 1px solid rgba(255, 120, 80, 0.4) !important;
}

/* ASSIGN DRIVER button styling */
.job-details-dialog .pickup-drop-section .btn-assign-driver,
.job-details-dialog .pickup-drop-section .assign-driver-btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 8px 16px !important;
  background: rgba(255, 150, 80, 0.15) !important;
  border: 1px solid rgba(255, 150, 80, 0.4) !important;
  border-radius: 999px !important;
  color: #ffb083 !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
}

.job-details-dialog .pickup-drop-section .btn-assign-driver:hover,
.job-details-dialog .pickup-drop-section .assign-driver-btn:hover {
  background: rgba(255, 150, 80, 0.25) !important;
  border-color: rgba(255, 150, 80, 0.6) !important;
}

/* Pickup/Drop inline grid layout */
.job-details-dialog .pickup-drop-inline-grid {
  display: grid !important;
  grid-template-columns: 0.35fr 0.65fr !important;
  gap: 12px !important;
  align-items: stretch !important;
  width: 100% !important;
}

.job-details-dialog .pickup-drop-section {
  border-radius: 14px !important;
  padding: 14px 16px !important;
}

.job-details-dialog .pickup-drop-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  margin-bottom: 12px !important;
}

.job-details-dialog .section-label {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
}

.job-details-dialog .status-pill {
  padding: 4px 12px !important;
  border-radius: 999px !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  white-space: nowrap !important;
}

/* Fix status pill alignment - same row as label */
.job-details-dialog .pickup-drop-header {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 100% !important;
  gap: 8px !important;
}

.job-details-dialog .pickup-drop-header .section-label-wrap,
.job-details-dialog .pickup-drop-header .section-label {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex-shrink: 0 !important;
}

.job-details-dialog .pickup-drop-header .status-pill {
  margin-left: auto !important;
  flex-shrink: 0 !important;
}

/* Fix activity cards - darker glass effect, not whitish */
.job-details-dialog .activity-event-v2 {
  background: rgba(0, 0, 0, 0.25) !important;
  border: 1px solid rgba(255, 255, 255, 0.06) !important;
}

.job-details-dialog .activity-event-v2:hover {
  background: rgba(0, 0, 0, 0.3) !important;
  border-color: rgba(255, 106, 58, 0.2) !important;
}

/* Also fix the activity card container */
.job-details-dialog .activity-card-v2 {
  background: rgba(0, 0, 0, 0.3) !important;
  border: 1px solid rgba(255, 255, 255, 0.06) !important;
}

/* EXACT original activity card styling from backup */
.job-details-dialog .activity-event-v2 {
  display: grid !important;
  grid-template-columns: 26px 1fr !important;
  gap: 10px !important;
  padding: 10px 12px !important;
  border-radius: 12px !important;
  border: 1px solid rgba(255, 255, 255, 0.06) !important;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.01)) !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;
}

.job-details-dialog .activity-event-v2:hover {
  border-color: rgba(255, 106, 58, 0.25) !important;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
}

/* RESET: Activity card - exact backup styling (minimal) */
.job-details-dialog .activity-card-v2 {
  padding: 6px !important;
  gap: 10px !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Activity event cards - exact backup (subtle) */
.job-details-dialog .activity-event-v2 {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.01)) !important;
  border: 1px solid rgba(255, 255, 255, 0.06) !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;
}

.job-details-dialog .activity-event-v2:hover {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)) !important;
  border-color: rgba(255, 106, 58, 0.25) !important;
}

/* Activity rail wrapper is layout-only. Shared activity-panel contract owns
   the visible glass surface. */
.job-details-dialog .job-activity-panel {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Left-card tab - enterprise active state */
.job-details-dialog .left-tab.active {
  color: #ffb083 !important;
  background: rgba(255, 176, 131, 0.12) !important;
  border-radius: 0 !important;
  font-weight: 700 !important;
}

.job-details-dialog .left-tab.active mat-icon {
  color: #ffb083 !important;
}

/* Remove rounded corners from left tabs */
.job-details-dialog .left-tab {
  border-radius: 0 !important;
}

.job-details-dialog .left-tab.active {
  border-radius: 0 !important;
}

/* Pill tabs - inherit from global pill-tabs.scss contract
   DO NOT override padding/sizing here as it breaks slider positioning */
/* Activity header tabs - follow pill-tabs contract */
.job-details-dialog .activity-header-v2 .pill-tabs-container {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  padding: 4px !important;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 32px !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
}

.job-details-dialog .activity-header-v2 .pill-tab-btn {
  padding: 6px 14px !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  color: rgba(255, 255, 255, 0.5) !important;
  background: transparent !important;
  border: none !important;
  border-radius: 24px !important;
}

.job-details-dialog .activity-header-v2 .pill-tab-btn.active {
  color: #fff !important;
  font-weight: 600 !important;
}

.job-details-dialog .activity-header-v2 .pill-tab-btn mat-icon {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
}

/* Center align main pill tabs in job details */
.job-details-dialog .job-tab-shell .pill-tabs-container {
  margin: 0 auto !important;
}

.job-details-dialog .job-tab-shell {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}

/* Center align activity header tabs */
.job-details-dialog .activity-header-v2 {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}

.job-details-dialog .activity-header-v2 .pill-tabs-container {
  margin: 0 auto !important;
}

/* Remove padding around active left tab */
.job-details-dialog .left-tab.active {
  padding: 0 12px !important;
  margin: 0 !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
}

.job-details-dialog .left-card-tabs {
  padding: 0 !important;
  margin: 0 !important;
}

/* Fix activity header tabs - remove extra margins/borders */
.job-details-dialog .activity-header-v2 {
  padding: 8px 0 !important;
  margin: 0 !important;
  border: none !important;
}

.job-details-dialog .activity-header-v2 .pill-tabs-container {
  margin: 0 !important;
  padding: 3px !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  box-shadow: none !important;
}

/* Remove any extra wrapper borders */
.job-details-dialog .activity-card-v2 .activity-header-v2 {
  border-bottom: none !important;
}

/* Fix action buttons spacing - reduced and consistent */
.job-details-dialog .action-buttons-row,
.job-details-dialog .header-actions {
  gap: 4px !important;
}

.job-details-dialog .action-buttons-row .pill-tab-btn,
.job-details-dialog .header-actions button,
.job-details-dialog .action-btn {
  padding: 6px 12px !important;
  margin: 0 !important;
}

/* Timeline/Stepper - exact backup styling with scale */
.job-details-dialog .job-details-content-layout {
  --timeline-scale: 0.9;
}

.job-details-dialog .job-details-content-layout .arrow-steps {
  height: calc(40px * var(--timeline-scale)) !important;
}

.job-details-dialog .job-details-content-layout .arrow-steps .step {
  font-size: calc(11px * var(--timeline-scale)) !important;
  padding: 0 calc(18px * var(--timeline-scale)) !important;
  margin-left: calc(-9px * var(--timeline-scale)) !important;
  height: calc(40px * var(--timeline-scale)) !important;
}

.job-details-dialog .job-details-content-layout .arrow-steps .step:first-child {
  padding-left: calc(18px * var(--timeline-scale)) !important;
  border-top-left-radius: calc(20px * var(--timeline-scale)) !important;
  border-bottom-left-radius: calc(20px * var(--timeline-scale)) !important;
}

.job-details-dialog .job-details-content-layout .arrow-steps .step:last-child {
  padding-right: calc(18px * var(--timeline-scale)) !important;
  border-top-right-radius: calc(20px * var(--timeline-scale)) !important;
  border-bottom-right-radius: calc(20px * var(--timeline-scale)) !important;
}

.job-details-dialog .job-details-content-layout .job-date-label,
.job-details-dialog .job-details-content-layout .booking-date-label {
  font-size: calc(8px * var(--timeline-scale)) !important;
}

.job-details-dialog .job-details-content-layout .job-date-value,
.job-details-dialog .job-details-content-layout .booking-date-value {
  font-size: calc(11px * var(--timeline-scale)) !important;
}

.job-details-dialog .job-details-content-layout .promise-date-group {
  padding: calc(10px * var(--timeline-scale)) calc(14px * var(--timeline-scale)) calc(8px * var(--timeline-scale)) !important;
  border-radius: calc(14px * var(--timeline-scale)) !important;
  min-width: calc(100px * var(--timeline-scale)) !important;
}

.job-details-dialog .job-details-content-layout .promise-date-group::before {
  top: calc(-30px * var(--timeline-scale)) !important;
  height: calc(26px * var(--timeline-scale)) !important;
}

.job-details-dialog .job-details-content-layout .promise-date-group::after {
  top: calc(-36px * var(--timeline-scale)) !important;
  width: calc(8px * var(--timeline-scale)) !important;
  height: calc(8px * var(--timeline-scale)) !important;
}

/* Fix activity tabs - reduce margins to match hover size */
.job-details-dialog .activity-header-v2 .pill-tabs-container {
  padding: 2px !important;
  gap: 2px !important;
}

.job-details-dialog .activity-header-v2 .tab-slider {
  top: 2px !important;
  height: calc(100% - 4px) !important;
}

/* Remove internal black arrows from date markers */
.job-details-dialog .promise-date-group mat-icon,
.job-details-dialog .start-date-group mat-icon,
.job-details-dialog .job-date-group mat-icon,
.job-details-dialog .booking-date-group mat-icon,
.job-details-dialog [class*=date-group] mat-icon {
  display: none !important;
}

/* Fix activity tabs alignment - even padding */
.job-details-dialog .activity-header-v2 .pill-tab-btn {
  padding: 6px 12px !important;
  margin: 0 !important;
}

.job-details-dialog .activity-header-v2 .tab-slider {
  left: 2px !important;
}

.job-details-dialog .activity-header-v2 .pill-tabs-container {
  padding-left: 2px !important;
  padding-right: 2px !important;
}

/* Remove ALL arrows from date markers - including pseudo elements */
.job-details-dialog .request-date-group mat-icon,
.job-details-dialog .pickup-date-group mat-icon,
.job-details-dialog .drop-date-group mat-icon,
.job-details-dialog .date-marker mat-icon,
.job-details-dialog [class*=date] mat-icon.arrow,
.job-details-dialog .date-arrow,
.job-details-dialog .arrow-icon {
  display: none !important;
}

/* Hide the connector arrows/lines */
.job-details-dialog .request-date-group .connector-arrow,
.job-details-dialog .pickup-date-group .connector-arrow,
.job-details-dialog [class*=date-group] .arrow,
.job-details-dialog [class*=date-group] > mat-icon {
  display: none !important;
  visibility: hidden !important;
}

/* EXACT backup activity filter tabs styling */
.job-details-dialog .activity-filters-v2 {
  display: inline-flex !important;
  padding: 4px !important;
  border-radius: 14px !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  background: rgba(0, 0, 0, 0.45) !important;
  gap: 0 !important;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.3) !important;
}

.job-details-dialog .activity-filter-v2 {
  background: transparent !important;
  border: none !important;
  border-radius: 10px !important;
  padding: 8px 16px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  color: rgba(255, 255, 255, 0.5) !important;
  cursor: pointer !important;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
  white-space: nowrap !important;
}

.job-details-dialog .activity-filter-v2.active {
  background: linear-gradient(135deg, rgba(255, 106, 58, 0.2), rgba(255, 106, 58, 0.12)) !important;
  color: var(--accent) !important;
  box-shadow: 0 2px 6px rgba(255, 106, 58, 0.12) !important;
}

.job-details-dialog .activity-filter-v2:hover:not(.active) {
  color: rgba(255, 255, 255, 0.8) !important;
  background: rgba(255, 255, 255, 0.04) !important;
}

/* Fix pill-tabs in activity header - remove slider, use simpler styling */
.job-details-dialog .activity-header-v2 .pill-tabs-container .tab-slider {
  display: none !important;
}

.job-details-dialog .activity-header-v2 .pill-tabs-container {
  padding: 4px !important;
  border-radius: 14px !important;
  background: rgba(0, 0, 0, 0.45) !important;
  gap: 0 !important;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.3) !important;
}

.job-details-dialog .activity-header-v2 .pill-tab-btn.active {
  background: linear-gradient(135deg, rgba(255, 106, 58, 0.2), rgba(255, 106, 58, 0.12)) !important;
  color: var(--accent, #ff6a3a) !important;
  box-shadow: 0 2px 6px rgba(255, 106, 58, 0.12) !important;
  border-radius: 10px !important;
}

/* WhatsApp tab styling from backup */
.job-details-dialog .inline-whatsapp-panel {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  gap: 0;
}

.job-details-dialog .whatsapp-messages-inline {
  flex: 1;
  overflow-y: auto;
  padding: 4px 5px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-height: 0;
  scroll-behavior: smooth;
}

.job-details-dialog .whatsapp-messages-inline::-webkit-scrollbar {
  width: 4px;
}

.job-details-dialog .whatsapp-messages-inline::-webkit-scrollbar-thumb {
  background: rgba(37, 211, 102, 0.3);
  border-radius: 2px;
}

.job-details-dialog .wa-bubble {
  max-width: 80%;
  padding: 6px 10px;
  border-radius: 12px;
  position: relative;
}

.job-details-dialog .wa-bubble p {
  margin: 0;
  font-size: 12px;
  line-height: 1.35;
  word-break: break-word;
  color: rgba(255, 255, 255, 0.95);
}

.job-details-dialog .wa-bubble.sent {
  align-self: flex-end;
  background: linear-gradient(135deg, rgba(37, 211, 102, 0.35), rgba(37, 211, 102, 0.5));
  border-bottom-right-radius: 4px;
}

.job-details-dialog .wa-bubble.received {
  align-self: flex-start;
  background: rgba(255, 255, 255, 0.08);
  border-bottom-left-radius: 4px;
}

.job-details-dialog .wa-compose-bar {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 8px;
  margin: 4px;
  background: rgba(0, 0, 0, 0.25);
  border-radius: 24px;
}

.job-details-dialog .wa-text-input {
  flex: 1;
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  border-radius: 24px !important;
  padding: 6px 14px !important;
  color: rgba(255, 255, 255, 0.9) !important;
  font-size: 13px !important;
  outline: none !important;
}

.job-details-dialog .wa-action-icon {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.job-details-dialog .wa-send-icon {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: linear-gradient(135deg, #25D366, #128C7E);
  border: none;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(37, 211, 102, 0.3);
}

/* WhatsApp empty state */
.job-details-dialog .wa-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  gap: 12px;
  color: rgba(255, 255, 255, 0.5);
}

.job-details-dialog .wa-empty-state mat-icon {
  font-size: 48px;
  width: 48px;
  height: 48px;
  opacity: 0.4;
}

/* RESTORE sliding indicator for activity tabs */
.job-details-dialog .activity-header-v2 .pill-tabs-container .tab-slider {
  display: block !important;
  position: absolute !important;
  background: linear-gradient(145deg, rgba(255, 153, 102, 0.25), rgba(255, 120, 70, 0.15)) !important;
  border: 1px solid rgba(255, 153, 102, 0.35) !important;
  border-radius: 24px !important;
  box-shadow: 0 4px 20px rgba(255, 120, 70, 0.2) !important;
}

.job-details-dialog .activity-header-v2 .pill-tab-btn.active {
  background: transparent !important;
  box-shadow: none !important;
}

.job-details-dialog .activity-header-v2 .pill-tabs-container {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 32px !important;
  padding: 4px !important;
  gap: 4px !important;
  box-shadow: none !important;
}

/* Reduce gaps between job header action buttons */
.job-details-dialog .job-header-actions {
  display: flex !important;
  gap: 4px !important;
}

.job-details-dialog .job-header-actions .ui-btn {
  margin: 0 !important;
  margin-right: 0 !important;
  padding: 6px 10px !important;
}

.job-details-dialog .job-header-actions .mr-2 {
  margin-right: 4px !important;
}

.job-details-dialog .job-header-actions .ui-btn--pill {
  padding: 4px 10px !important;
  font-size: 11px !important;
}

.job-details-dialog .job-header-actions .ui-btn--pill mat-icon {
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
}

/* Fix activity tabs - precise alignment */
.job-details-dialog .activity-header-v2 .pill-tabs-container {
  padding: 3px !important;
  gap: 0 !important;
}

.job-details-dialog .activity-header-v2 .tab-slider {
  top: 3px !important;
  height: calc(100% - 6px) !important;
}

.job-details-dialog .activity-header-v2 .pill-tab-btn {
  padding: 6px 14px !important;
  margin: 0 !important;
  border-radius: 24px !important;
}

/* Consistent spacing between all header action buttons */
.job-details-dialog .job-header-actions {
  gap: 6px !important;
}

.job-details-dialog .job-header-actions .ui-btn {
  margin-right: 0 !important;
}

.job-details-dialog .job-header-actions .mr-2 {
  margin-right: 0 !important;
}

/* Hide black arrows inside date boxes */
.job-details-dialog .request-date-group mat-icon,
.job-details-dialog .pickup-status-group mat-icon,
.job-details-dialog .start-date-group mat-icon,
.job-details-dialog .promise-date-group mat-icon,
.job-details-dialog .booking-date-group mat-icon,
.job-details-dialog .drop-status-group mat-icon {
  display: none !important;
  visibility: hidden !important;
}

/* Also hide any arrows with specific classes */
.job-details-dialog .date-connector-arrow,
.job-details-dialog .connector-arrow,
.job-details-dialog .date-group-arrow {
  display: none !important;
}

/* HIDE the actual arrow elements - these use Unicode characters, not mat-icon */
.job-details-dialog .booking-date-arrow,
.job-details-dialog .job-date-arrow {
  display: none !important;
  visibility: hidden !important;
}

/* Hide ALL date arrows - booking, start, promise */
.job-details-dialog .start-date-arrow,
.job-details-dialog .promise-date-arrow {
  display: none !important;
  visibility: hidden !important;
}

/* Remove space taken by hidden arrows */
.job-details-dialog .start-date-arrow,
.job-details-dialog .promise-date-arrow,
.job-details-dialog .booking-date-arrow,
.job-details-dialog .job-date-arrow {
  height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  line-height: 0 !important;
  font-size: 0 !important;
}

/* Reduce padding in bottom date groups */
.job-details-dialog .start-date-group,
.job-details-dialog .promise-date-group {
  padding-bottom: 8px !important;
}

/* Exact backup styling for promise-date-group boxes */
.job-details-dialog .promise-date-group {
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
  padding: 10px 14px 8px !important;
  min-width: 100px !important;
}

/* Fix active pill tab text color - should be white, not orange */
.job-details-dialog .activity-header-v2 .pill-tab-btn.active {
  color: #ffffff !important;
}

.job-details-dialog .activity-header-v2 .pill-tab-btn.active mat-icon {
  color: #ffffff !important;
}

/* ==========================================================================
   SKELETON LOADER - Premium High-Fidelity Loading State
   Matches final UI 1:1 to prevent layout shift
   ========================================================================== */
/* Shimmer Animation - Slow, premium feel */
@keyframes skeleton-shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}
/* Base shimmer class */
.job-details-skeleton .shimmer {
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.03) 25%, rgba(255, 255, 255, 0.08) 50%, rgba(255, 255, 255, 0.03) 75%);
  background-size: 200% 100%;
  animation: skeleton-shimmer 2s ease-in-out infinite;
  border-radius: 6px;
}

/* Container matching dialog content */
.job-details-skeleton {
  background: linear-gradient(145deg, rgba(35, 30, 28, 0.98), rgba(28, 24, 22, 0.98));
  min-height: 80vh;
  max-height: 90vh;
  overflow: hidden;
}

/* ===== HEADER SKELETON ===== */
.job-details-skeleton .skeleton-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 28px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  position: sticky;
  top: 0;
  background: inherit;
  z-index: 10;
}

.job-details-skeleton .skeleton-title {
  width: 280px;
  height: 28px;
  border-radius: 8px;
}

.job-details-skeleton .skeleton-header-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.job-details-skeleton .skeleton-btn {
  width: 90px;
  height: 36px;
  border-radius: 999px;
}

.job-details-skeleton .skeleton-icon-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
}

/* ===== CONTENT WRAPPER ===== */
.job-details-skeleton .skeleton-content-wrapper {
  padding: 20px 28px;
  overflow: hidden;
}

/* ===== TIMELINE SKELETON ===== */
.job-details-skeleton .skeleton-timeline-section {
  margin-bottom: 20px;
  padding: 24px 0;
}

.job-details-skeleton .skeleton-timeline-dates-top,
.job-details-skeleton .skeleton-timeline-dates-bottom {
  display: flex;
  justify-content: space-between;
  padding: 0 60px;
  margin-bottom: 12px;
}

.job-details-skeleton .skeleton-timeline-dates-bottom {
  margin-top: 12px;
  margin-bottom: 0;
}

.job-details-skeleton .skeleton-date-badge {
  width: 110px;
  height: 50px;
  border-radius: 12px;
}

.job-details-skeleton .skeleton-arrow-stepper {
  display: flex;
  align-items: center;
  gap: 0;
  height: 42px;
}

.job-details-skeleton .skeleton-step {
  flex: 1;
  height: 100%;
  margin-right: -12px;
  clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%, 12px 50%);
  background: rgba(255, 255, 255, 0.04);
}

.job-details-skeleton .skeleton-step:first-child {
  margin-left: 0;
  clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%);
  border-radius: 8px 0 0 8px;
}

.job-details-skeleton .skeleton-step:last-child {
  margin-right: 0;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 12px 50%);
  border-radius: 0 8px 8px 0;
}

/* ===== MAIN GRID SKELETON ===== */
.job-details-skeleton .skeleton-main-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 20px;
  margin-bottom: 24px;
}

/* Left Column - Tabbed Card */
.job-details-skeleton .skeleton-left-column {
  display: flex;
  flex-direction: column;
}

.job-details-skeleton .skeleton-tabbed-card {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  overflow: hidden;
}

.job-details-skeleton .skeleton-card-tabs {
  display: flex;
  gap: 0;
  padding: 8px 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(0, 0, 0, 0.15);
}

.job-details-skeleton .skeleton-tab {
  width: 80px;
  height: 32px;
  border-radius: 8px;
  margin-right: 4px;
}

.job-details-skeleton .skeleton-tab.active {
  background: rgba(255, 120, 80, 0.15);
}

.job-details-skeleton .skeleton-tab-content-area {
  padding: 20px;
}

.job-details-skeleton .skeleton-info-row {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
  margin-bottom: 20px;
}

.job-details-skeleton .skeleton-info-item {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.job-details-skeleton .skeleton-info-label {
  width: 60px;
  height: 10px;
  border-radius: 4px;
}

.job-details-skeleton .skeleton-info-value {
  width: 100px;
  height: 16px;
  border-radius: 4px;
}

/* Pickup/Drop Grid */
.job-details-skeleton .skeleton-pickup-drop-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.job-details-skeleton .skeleton-pickup-drop-card {
  height: 120px;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.06);
}

/* Right Column - Activity Panel */
.job-details-skeleton .skeleton-right-column {
  display: flex;
  flex-direction: column;
}

.job-details-skeleton .skeleton-activity-panel {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.job-details-skeleton .skeleton-activity-toggle {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
  padding: 6px;
  background: rgba(0, 0, 0, 0.2);
  border-radius: 12px;
}

.job-details-skeleton .skeleton-toggle-btn {
  flex: 1;
  height: 32px;
  border-radius: 8px;
}

.job-details-skeleton .skeleton-toggle-btn.active {
  background: rgba(255, 120, 80, 0.2);
}

.job-details-skeleton .skeleton-activity-feed {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow: hidden;
}

.job-details-skeleton .skeleton-activity-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px;
  background: rgba(0, 0, 0, 0.15);
  border-radius: 12px;
}

.job-details-skeleton .skeleton-activity-icon {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  flex-shrink: 0;
}

.job-details-skeleton .skeleton-activity-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.job-details-skeleton .skeleton-activity-title {
  width: 180px;
  height: 14px;
  border-radius: 4px;
}

.job-details-skeleton .skeleton-activity-time {
  width: 100px;
  height: 10px;
  border-radius: 4px;
}

.job-details-skeleton .skeleton-compose-bar {
  height: 44px;
  border-radius: 22px;
  margin-top: auto;
}

/* ===== TABS SECTION SKELETON ===== */
.job-details-skeleton .skeleton-tabs-section {
  margin-bottom: 16px;
}

.job-details-skeleton .skeleton-pill-tabs {
  display: flex;
  gap: 8px;
}

.job-details-skeleton .skeleton-pill-tab {
  width: 100px;
  height: 36px;
  border-radius: 999px;
}

.job-details-skeleton .skeleton-pill-tab.active {
  background: rgba(255, 120, 80, 0.2);
  width: 120px;
}

/* ===== TAB CONTENT SKELETON ===== */
.job-details-skeleton .skeleton-tab-content {
  padding: 16px 0;
}

.job-details-skeleton .skeleton-content-row {
  margin-bottom: 12px;
}

.job-details-skeleton .skeleton-content-line {
  display: block;
  height: 14px;
  border-radius: 4px;
}

.job-details-skeleton .skeleton-content-row:nth-child(1) .skeleton-content-line {
  width: 90%;
}

.job-details-skeleton .skeleton-content-row:nth-child(2) .skeleton-content-line {
  width: 75%;
}

.job-details-skeleton .skeleton-content-row:nth-child(3) .skeleton-content-line {
  width: 60%;
}

/* ===== BOOKING VIEW SPECIFIC SKELETON ===== */
/* 3-Card Grid for Booking View */
.job-details-skeleton .skeleton-booking-cards-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-bottom: 20px;
}

.job-details-skeleton .skeleton-glass-card {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  padding: 18px 20px;
}

.job-details-skeleton .skeleton-card-title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.job-details-skeleton .skeleton-card-title-icon {
  width: 16px;
  height: 16px;
  border-radius: 4px;
}

.job-details-skeleton .skeleton-card-title-text {
  width: 120px;
  height: 12px;
  border-radius: 4px;
}

.job-details-skeleton .skeleton-card-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.job-details-skeleton .skeleton-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.job-details-skeleton .skeleton-field-label {
  width: 70px;
  height: 9px;
  border-radius: 3px;
}

.job-details-skeleton .skeleton-field-value {
  width: 100%;
  max-width: 120px;
  height: 14px;
  border-radius: 4px;
}

/* Highlighted field skeleton */
.job-details-skeleton .skeleton-field.highlighted .skeleton-field-value {
  background: linear-gradient(90deg, rgba(255, 120, 80, 0.08) 25%, rgba(255, 120, 80, 0.15) 50%, rgba(255, 120, 80, 0.08) 75%);
  background-size: 200% 100%;
  animation: skeleton-shimmer 2s ease-in-out infinite;
}

/* Pickup/Drop Card Skeleton */
.job-details-skeleton .skeleton-pickup-drop-section {
  padding: 10px 14px;
  margin-bottom: 12px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.job-details-skeleton .skeleton-pickup-drop-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}

.job-details-skeleton .skeleton-section-icon {
  width: 20px;
  height: 20px;
  border-radius: 50%;
}

.job-details-skeleton .skeleton-section-label {
  width: 60px;
  height: 12px;
  border-radius: 4px;
}

.job-details-skeleton .skeleton-status-pill {
  width: 70px;
  height: 18px;
  border-radius: 999px;
  margin-left: auto;
}

/* ==========================================================================
   TEAM + SERVICES TABS
   Shared card layout for service pricing and technician assignments.
   ========================================================================== */
.job-details-dialog .job-team-content {
  padding: 22px 28px 20px;
}

.job-details-dialog .job-team-content .job-info-grid-3col {
  padding: 0;
  gap: var(--ui-space-4);
}

.job-details-dialog .job-team-content .job-info-row {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ui-space-4);
  padding: 18px 20px;
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
}

.job-details-dialog .job-team-content .job-info-item {
  gap: var(--ui-space-2);
  min-width: 0;
}

.job-details-dialog .job-team-content .job-info-label {
  color: rgba(255, 255, 255, 0.38);
}

.job-details-dialog .job-team-content .job-info-value {
  font-size: 16px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.88);
}

.job-details-dialog .job-team-assignments,
.job-details-dialog .job-services-table {
  padding-inline: var(--ui-space-4);
}

.job-details-dialog .job-team-assignments {
  margin-top: var(--ui-space-5);
  padding-top: var(--ui-space-5);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.job-details-dialog .job-team-assignments .table-header,
.job-details-dialog .job-services-table .table-header {
  padding: 0 0 var(--ui-space-3);
  border-bottom-color: rgba(255, 255, 255, 0.08);
}

.job-details-dialog .job-team-assignments .table-title-block,
.job-details-dialog .job-services-table .table-title-block {
  gap: var(--ui-space-1);
}

.job-details-dialog .job-team-assignments .eyebrow,
.job-details-dialog .job-services-table .eyebrow {
  color: rgba(255, 255, 255, 0.42);
}

.job-details-dialog .job-team-assignments h3,
.job-details-dialog .job-services-table h3 {
  font-size: 18px;
}

.job-details-dialog .job-team-assignments .table-header-actions .ui-chip, .job-details-dialog .job-team-assignments .table-header-actions .ui-table .risk-badge, .job-details-dialog .job-team-assignments .table-header-actions .premium-table .risk-badge, .job-details-dialog .job-team-assignments .table-header-actions .glass-table .risk-badge, .ui-table .job-details-dialog .job-team-assignments .table-header-actions .risk-badge, .premium-table .job-details-dialog .job-team-assignments .table-header-actions .risk-badge, .glass-table .job-details-dialog .job-team-assignments .table-header-actions .risk-badge,
.job-details-dialog .job-services-table .table-header-actions .ui-chip,
.job-details-dialog .job-services-table .table-header-actions .ui-table .risk-badge,
.job-details-dialog .job-services-table .table-header-actions .premium-table .risk-badge,
.job-details-dialog .job-services-table .table-header-actions .glass-table .risk-badge,
.ui-table .job-details-dialog .job-services-table .table-header-actions .risk-badge,
.premium-table .job-details-dialog .job-services-table .table-header-actions .risk-badge,
.glass-table .job-details-dialog .job-services-table .table-header-actions .risk-badge {
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.job-details-dialog .service-count-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.52);
}

.job-details-dialog .service-count-total {
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}

.job-details-dialog .service-count-divider {
  color: rgba(255, 255, 255, 0.24);
  font-size: 8px;
}

.job-details-dialog .service-count-approved {
  color: #8fd7b8;
  font-weight: 600;
}

.job-details-dialog .job-team-service-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 420px));
  justify-content: flex-start;
  gap: var(--ui-space-3);
}

.job-details-dialog .job-team-service-card,
.job-details-dialog .service-card-row {
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
}

.job-details-dialog .job-team-service-card {
  padding: 14px 16px;
}

.job-details-dialog .job-team-service-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-3);
}

.job-details-dialog .job-team-service-title-block {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  min-width: 0;
}

.job-details-dialog .job-team-service-icon,
.job-details-dialog .service-card-status {
  width: 32px;
  height: 32px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: rgba(255, 176, 131, 0.12);
  border: 1px solid rgba(255, 176, 131, 0.22);
  color: #ffb083;
}

.job-details-dialog .job-team-service-icon mat-icon,
.job-details-dialog .service-card-status mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.job-details-dialog .job-team-service-copy,
.job-details-dialog .service-card-copy {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.job-details-dialog .job-team-service-name,
.job-details-dialog .service-card-name {
  font-size: 16px;
  line-height: 1.15;
  font-weight: 650;
  color: rgba(255, 255, 255, 0.94);
  letter-spacing: -0.01em;
  min-width: 0;
}

.job-details-dialog .job-team-service-meta {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.48);
}

.job-details-dialog .service-cards-list {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  margin-top: var(--ui-space-3);
}

.job-details-dialog .service-card-row {
  padding: 14px 16px;
  transition: border-color 0.18s ease, background 0.18s ease, transform 0.18s ease;
}

.job-details-dialog .service-card-row:hover,
.job-details-dialog .job-team-service-card:hover {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.024));
  border-color: rgba(255, 176, 131, 0.16);
}

.job-details-dialog .service-card-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
}

.job-details-dialog .service-card-title-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  flex: 1 1 auto;
}

.job-details-dialog .service-card-status {
  background: rgba(143, 215, 184, 0.12);
  border-color: rgba(143, 215, 184, 0.22);
  color: #8fd7b8;
}

.job-details-dialog .service-card-status.is-pending {
  background: rgba(255, 176, 131, 0.12);
  border-color: rgba(255, 176, 131, 0.22);
  color: #ffb083;
}

.job-details-dialog .service-card-meta-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
}

.job-details-dialog .service-card-amounts {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  min-width: 116px;
  padding: 8px 10px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.035);
  border: 1px solid rgba(255, 255, 255, 0.07);
}

.job-details-dialog .service-card-amount-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.34);
}

.job-details-dialog .service-card-total {
  font-size: 16px;
  font-weight: 800;
  color: rgba(255, 255, 255, 0.96);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
  white-space: nowrap;
}

.job-details-dialog .service-cost-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
  padding-left: 44px;
}

.job-details-dialog .cost-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 26px;
  padding: 3px 9px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.045);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.66);
}

.job-details-dialog .cost-chip--discount {
  background: rgba(255, 176, 131, 0.08);
  border-color: rgba(255, 176, 131, 0.16);
}

.job-details-dialog .cost-chip--muted {
  color: rgba(255, 255, 255, 0.46);
}

.job-details-dialog .cost-chip-label {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.38);
}

.job-details-dialog .cost-chip-value {
  font-size: 12px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.82);
  font-variant-numeric: tabular-nums;
}

.job-details-dialog .claim-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 26px;
  padding: 3px 9px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.58);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.job-details-dialog .claim-chip mat-icon {
  font-size: 13px;
  width: 13px;
  height: 13px;
}

.job-details-dialog .claim-chip--active {
  background: rgba(255, 176, 131, 0.12);
  border-color: rgba(255, 176, 131, 0.24);
  color: #ffc58f;
}

.job-details-dialog .claim-chip--active mat-icon {
  color: #ffc58f;
}

.job-details-dialog .job-assignee-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
  padding-left: 44px;
}

.job-details-dialog .job-assignee-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.045);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.78);
}

.job-details-dialog .job-assignee-chip__icon {
  width: 20px;
  height: 20px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 176, 131, 0.12);
  color: #ffb083;
  flex-shrink: 0;
}

.job-details-dialog .job-assignee-chip__icon mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

.job-details-dialog .job-assignee-chip__name {
  font-size: 12px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.88);
}

.job-details-dialog .job-assignee-chip__share {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 0 7px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.54);
  font-size: 11px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.job-details-dialog .job-assignee-empty.empty-state--inline {
  justify-content: flex-start;
  margin-top: 10px;
  padding: 2px 0 0 44px;
  gap: 8px;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.46);
}

.job-details-dialog .job-assignee-empty.empty-state--inline mat-icon {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
  color: rgba(255, 255, 255, 0.24);
}

.job-details-dialog .role-badge {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.52);
  border: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 9px;
  font-weight: 700;
}

.job-details-dialog .role-badge--lead {
  background: rgba(255, 176, 131, 0.12);
  color: #ffbf8d;
  border-color: rgba(255, 176, 131, 0.24);
}

.job-details-dialog .role-badge--support {
  background: rgba(255, 255, 255, 0.045);
  color: rgba(255, 255, 255, 0.68);
  border-color: rgba(255, 255, 255, 0.1);
}

.job-details-dialog .job-details-empty-state {
  margin-top: var(--ui-space-3);
  min-height: 180px;
}

@media (max-width: 1080px) {
  .job-details-dialog .job-team-content .job-info-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .job-details-dialog .job-team-service-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .job-details-dialog .service-card-main {
    flex-direction: column;
    align-items: flex-start;
  }
  .job-details-dialog .service-card-amounts {
    align-items: flex-start;
  }
}
@media (max-width: 768px) {
  .job-details-dialog .job-team-content .job-info-row {
    grid-template-columns: 1fr;
    gap: var(--ui-space-3);
  }
  .job-details-dialog .job-team-service-card,
  .job-details-dialog .service-card-row {
    padding: 16px;
  }
  .job-details-dialog .job-team-content {
    padding: 18px 20px 16px;
  }
  .job-details-dialog .job-team-service-name,
  .job-details-dialog .service-card-name {
    font-size: 15px;
  }
  .job-details-dialog .service-card-total {
    font-size: 15px;
  }
  .job-details-dialog .service-cost-chips,
  .job-details-dialog .job-assignee-list,
  .job-details-dialog .job-assignee-empty.empty-state--inline {
    padding-left: 0;
  }
  .job-details-dialog .job-team-assignments,
  .job-details-dialog .job-services-table {
    padding-inline: 0;
  }
}
/* ==========================================================================
   INCOMPLETE JOBCARD BANNER
   Shown when job status is Job Initiated / JobInitiated — the job card
   process was started on mobile but not completed.
   ========================================================================== */
.job-details-dialog .jobcard-incomplete-banner {
  margin: 0 0 16px 0;
  padding: 0;
}

.job-details-dialog .jobcard-incomplete-content {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: linear-gradient(145deg, rgba(255, 180, 50, 0.12), rgba(255, 140, 30, 0.06));
  border: 1px solid rgba(255, 180, 50, 0.25);
  border-radius: 12px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.job-details-dialog .jobcard-incomplete-icon {
  font-size: 22px !important;
  width: 22px !important;
  height: 22px !important;
  color: rgba(255, 190, 70, 0.9) !important;
  flex-shrink: 0;
}

.job-details-dialog .jobcard-incomplete-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 0;
}

.job-details-dialog .jobcard-incomplete-title {
  font-size: 13px;
  font-weight: 700;
  color: rgba(255, 200, 100, 0.95);
  letter-spacing: 0.01em;
}

.job-details-dialog .jobcard-incomplete-desc {
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.4;
}

.job-details-dialog .jobcard-incomplete-action {
  flex-shrink: 0;
  white-space: nowrap;
}

/* ==========================================================================
   QC REPORT PANEL
   Collapsible panel showing Quality Check results inside job detail modal
   ========================================================================== */
.job-details-dialog .qc-report-btn.active {
  background: linear-gradient(145deg, rgba(76, 175, 80, 0.25), rgba(56, 142, 60, 0.15)) !important;
  border-color: rgba(76, 175, 80, 0.4) !important;
  color: #81C784 !important;
}

.job-details-dialog .qc-report-btn mat-icon {
  color: #66BB6A !important;
}

.job-details-dialog .qc-fail-count-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  background: #E53935;
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  margin-left: 4px;
  box-shadow: 0 0 8px rgba(229, 57, 53, 0.4);
}

.job-details-dialog .qc-report-panel {
  padding: 0 28px 16px;
  animation: qcSlideDown 0.25s ease-out;
}

@keyframes qcSlideDown {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.job-details-dialog .qc-report-card {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  overflow: hidden;
}

.job-details-dialog .qc-report-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 20px;
  background: rgba(0, 0, 0, 0.15);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.job-details-dialog .qc-report-title {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
}

.job-details-dialog .qc-report-title mat-icon {
  color: #66BB6A;
  font-size: 20px;
  width: 20px;
  height: 20px;
}

.job-details-dialog .qc-report-title h3 {
  margin: 0;
  font-size: 14px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.9);
  letter-spacing: 0.01em;
}

.job-details-dialog .qc-report-stats {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}

.job-details-dialog .qc-stat {
  font-size: 11px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 999px;
  letter-spacing: 0.03em;
}

.job-details-dialog .qc-stat--total {
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.7);
}

.job-details-dialog .qc-stat--pass {
  background: rgba(76, 175, 80, 0.15);
  color: #81C784;
  border: 1px solid rgba(76, 175, 80, 0.25);
}

.job-details-dialog .qc-stat--fail {
  background: rgba(244, 67, 54, 0.15);
  color: #EF9A9A;
  border: 1px solid rgba(244, 67, 54, 0.25);
}

.job-details-dialog .qc-close-btn {
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.4);
  cursor: pointer;
  padding: 4px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.15s ease;
  margin-left: 8px;
}

.job-details-dialog .qc-close-btn:hover {
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.8);
}

.job-details-dialog .qc-report-body {
  padding: 12px 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-height: 320px;
  overflow-y: auto;
}

.job-details-dialog .qc-item {
  border-radius: 10px;
  padding: 8px 12px;
  transition: background 0.15s ease;
}

.job-details-dialog .qc-item:hover {
  background: rgba(255, 255, 255, 0.03);
}

.job-details-dialog .qc-item--fail {
  background: rgba(244, 67, 54, 0.04);
  border-left: 3px solid rgba(244, 67, 54, 0.4);
}

.job-details-dialog .qc-item-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.job-details-dialog .qc-item-index {
  font-size: 11px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.3);
  min-width: 20px;
  text-align: center;
}

.job-details-dialog .qc-item-point {
  flex: 1;
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.4;
}

.job-details-dialog .qc-chip {
  font-size: 10px;
  font-weight: 800;
  padding: 3px 10px;
  border-radius: 999px;
  letter-spacing: 0.06em;
  flex-shrink: 0;
}

.job-details-dialog .qc-chip--pass {
  background: rgba(76, 175, 80, 0.18);
  color: #81C784;
  border: 1px solid rgba(76, 175, 80, 0.3);
}

.job-details-dialog .qc-chip--fail {
  background: rgba(244, 67, 54, 0.18);
  color: #EF9A9A;
  border: 1px solid rgba(244, 67, 54, 0.3);
}

.job-details-dialog .qc-item-remark {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin-top: 6px;
  margin-left: 30px;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
  font-style: italic;
  line-height: 1.4;
}

.job-details-dialog .qc-item-remark mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: rgba(255, 255, 255, 0.3);
  flex-shrink: 0;
  margin-top: 1px;
}

/* =======================
   TOP-EDGE LOADING BAR
   YouTube-style — grows from left, slows near end
   ======================= */
.job-details-dialog .top-loading-bar {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  z-index: 100;
  pointer-events: none;
}

.job-details-dialog .top-loading-bar::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  background: linear-gradient(90deg, #ff7a3d, #ffb083);
  animation: ytBarGrow 10s linear forwards;
}

@keyframes ytBarGrow {
  0% {
    width: 0;
  }
  3% {
    width: 15%;
  }
  100% {
    width: 95%;
  }
}
/* =============================================================
   Job Details Modal – Layout‑only contract
   (Only structural rules: flex, grid, spacing, sizing, overflow)
   -------------------------------------------------------------
   All visual styling (colors, backgrounds, gradients, borders,
   shadows, border‑radius, etc.) must live in other contracts.
   ============================================================= */
/* --------------------
   Main dialog container
   -------------------- */
.job-details-dialog {
  display: flex !important;
  flex-direction: column !important;
  padding: 0 !important;
  height: 88vh !important;
  max-height: 88vh !important;
  overflow: hidden !important;
  border-radius: 24px !important;
  position: relative;
}

/* Header row – layout and visual */
.job-details-dialog .job-header-row,
.job-details-dialog .job-header-row.job-header-surface {
  flex-shrink: 0;
  z-index: 100;
  margin: 0 !important;
  width: 100%;
  padding: 12px 24px !important;
  display: flex !important;
  align-items: center !important;
  gap: 24px;
  /* Visual styling */
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
  border-radius: 24px 24px 0 0;
  backdrop-filter: blur(40px) saturate(180%);
  -webkit-backdrop-filter: blur(40px) saturate(180%);
}

.job-details-dialog .job-header-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 24px;
  flex: 1;
}

.job-details-dialog .job-header-left {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  white-space: nowrap;
}

/* Content wrapper – scrollable area after header */
.job-details-dialog .job-details-content-wrapper {
  flex: 1;
  display: flex;
  overflow: hidden;
  padding: 16px 24px 32px 24px;
  min-height: 0; /* Required for flex scroll */
  height: 100%;
  width: 100%;
}

/* 2‑column grid layout (main + activity panel) */
.job-details-dialog .job-details-content-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 12px;
  height: 100%;
  width: 100%;
  min-height: 0;
  flex: 1;
  align-items: stretch;
}

/* Main column (left side) */
.job-details-dialog .job-details-main {
  height: 100%;
  min-width: 0;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 4px;
}

/* Activity panel (right side) */
.job-details-dialog .job-activity-panel {
  min-width: 320px;
  max-width: 360px;
  height: 100%;
  min-height: 0;
}

/* --------------------
   Booking details grid
   -------------------- */
.job-details-dialog .booking-details-grid {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 16px;
  margin: 0 0 28px 0 !important;
  flex: 1;
}

.job-details-dialog .booking-left-column {
  flex: 0 0 100% !important;
  max-width: 100% !important;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.job-details-dialog .booking-left-column > .left-tabbed-card {
  flex: 1;
  min-height: 200px;
}

.job-details-dialog .booking-middle-column,
.job-details-dialog .booking-right-column {
  display: none !important;
}

/* --------------------
   Left tabbed card
   -------------------- */
.job-details-dialog .left-tabbed-card {
  display: flex;
  flex-direction: column;
}

.job-details-dialog .left-card-tabs {
  display: flex;
}

.job-details-dialog .left-tab {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 16px;
  cursor: pointer;
}

.job-details-dialog .left-tab.active {
  flex: 1.6;
}

.job-details-dialog .left-card-content {
  padding: 16px 20px 12px;
}

/* --------------------
   Job info grid (inside left tab)
   -------------------- */
.job-details-dialog .job-info-grid {
  display: grid;
  gap: 0;
}

.job-details-dialog .job-info-grid.job-info-grid-3col {
  grid-template-columns: 1fr;
}

.job-details-dialog .job-info-row {
  display: flex;
  padding: 10px 0;
  border-bottom: 1px solid transparent; /* placeholder */
}

.job-details-dialog .job-info-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  padding: 0 12px;
  border-right: 1px solid transparent;
}

.job-details-dialog .job-info-item:first-child {
  padding-left: 0;
}

.job-details-dialog .job-info-item:last-child {
  padding-right: 0;
  border-right: none;
}

/* --------------------
   Pickup & Drop sections
   -------------------- */
.job-details-dialog .pickup-drop-card {
  display: flex;
  flex-direction: column;
}

.job-details-dialog .pickup-drop-section {
  padding: 14px 18px 16px;
  cursor: pointer;
}

.job-details-dialog .pickup-drop-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}

.job-details-dialog .pickup-drop-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px 16px;
}

.job-details-dialog .pickup-drop-grid .grid-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.job-details-dialog .pickup-drop-grid .grid-item.full-width {
  grid-column: 1/-1;
}

/* --------------------
   Activity panel (right column)
   -------------------- */
.job-details-dialog .activity-panel {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.job-details-dialog .activity-panel-tabs {
  display: flex;
  gap: 8px;
}

.job-details-dialog .activity-feed {
  flex: 1;
  overflow-y: auto;
  padding: 12px;
}

.job-details-dialog .activity-event-v2 {
  padding: 12px;
  margin-bottom: 8px;
  border-radius: 12px;
}

/* --------------------
   Progress / Timeline
   -------------------- */
.job-details-dialog .job-progress-shell {
  margin: 20px 0 24px 0;
}

.job-details-dialog .unified-progress-container {
  margin-bottom: 24px;
}

/* --------------------
   Misc layout helpers (scrollbars, etc.)
   -------------------- */
.job-details-dialog {
  scrollbar-width: thin;
  scrollbar-color: transparent transparent;
}

.job-details-dialog:hover,
.job-details-dialog.is-scrolling {
  scrollbar-color: rgba(140, 70, 40, 0.4) transparent;
}

.job-details-dialog::-webkit-scrollbar {
  width: 8px;
}

.job-details-dialog::-webkit-scrollbar-track {
  background: transparent;
}

.job-details-dialog::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 10px;
}

.job-details-dialog:hover::-webkit-scrollbar-thumb,
.job-details-dialog.is-scrolling::-webkit-scrollbar-thumb {
  background: rgba(140, 70, 40, 0.4);
}

/* Close Button - positioned on right side of header */
.job-details-dialog .dialog-close-btn {
  position: absolute !important;
  top: 50%;
  transform: translateY(-50%);
  right: 20px;
  left: auto !important;
  color: rgba(255, 255, 255, 0.7) !important;
  background: transparent !important;
  transition: all 0.2s ease;
  z-index: 101;
}

.job-details-dialog .dialog-close-btn:hover {
  color: #ffffff !important;
  background: rgba(255, 255, 255, 0.1) !important;
  transform: translateY(-50%) scale(1.1);
}

.job-details-dialog .dialog-close-btn mat-icon {
  font-size: 24px;
  width: 24px;
  height: 24px;
}

/* ==========================================================================
   UI MODAL - JOB DETAILS TIMELINE
   ==========================================================================
   Arrow-step timeline and date pill styling for job details modal.
   Extracted from backup: details.component.css
   ========================================================================== */
/* =============================================
   UNIFIED PROGRESS CONTAINER
   ============================================= */
.job-details-dialog .unified-progress-container {
  padding: 0px 16px 0px;
  margin-bottom: 8px;
  position: relative;
  z-index: 1;
}

.job-details-dialog .combined-progress-shell {
  display: flex;
  flex-direction: column;
  gap: 0;
  width: 100%;
  min-width: 0;
  animation: timelineEnter 0.4s ease-out;
}

@keyframes timelineEnter {
  from {
    opacity: 0;
    transform: scale(0.98);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
/* =============================================
   ARROW STEPS - Main Timeline Bar
   ============================================= */
.job-details-dialog .arrow-steps {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 0;
  margin: 0 0 2px 0;
  padding: 0;
  position: relative;
  height: 40px;
  width: 100%;
  max-width: none;
  box-sizing: border-box;
  z-index: 5;
}

.job-details-dialog .arrow-steps .step {
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.45);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 0.03em;
  padding: 0 18px;
  white-space: nowrap;
  cursor: default;
  -webkit-user-select: none;
          user-select: none;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  margin: 0;
  margin-left: -9px;
  clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%, 12px 50%);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 1;
  height: 40px;
  flex: 1;
  min-width: 0;
  overflow: visible;
}

.job-details-dialog .arrow-steps .step:first-child {
  margin-left: 0;
  padding-left: 18px;
  clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%);
  border-top-left-radius: 20px;
  border-bottom-left-radius: 20px;
}

.job-details-dialog .arrow-steps .step:last-child {
  padding-right: 18px;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 12px 50%);
  border-top-right-radius: 20px;
  border-bottom-right-radius: 20px;
}

.job-details-dialog .arrow-steps .step:after,
.job-details-dialog .arrow-steps .step:before {
  display: none;
}

.job-details-dialog .arrow-steps .step:hover:not(.job-step.current) {
  color: rgba(255, 255, 255, 0.85);
  transform: translateY(-1px);
}

/* =============================================
   BOOKING STEPS - Gradient Colors
   ============================================= */
.job-details-dialog .combined-steps .step.booking-step {
  background: rgba(255, 255, 255, 0.05);
  color: rgba(255, 255, 255, 0.45);
}

.job-details-dialog .combined-steps .step.booking-step.current,
.job-details-dialog .combined-steps .step.booking-step.completed {
  color: #ffffff !important;
  font-weight: 700;
  animation: none;
  filter: none;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
}

.job-details-dialog .combined-steps .step.booking-step.current {
  font-weight: 800;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.6);
}

/* Warm orange gradient - dark to light (left to right) */
.job-details-dialog .combined-steps .step.booking-step.booking-index-0.completed,
.job-details-dialog .combined-steps .step.booking-step.booking-index-0.current {
  background: #b82a10 !important;
}

.job-details-dialog .combined-steps .step.booking-step.booking-index-1.completed,
.job-details-dialog .combined-steps .step.booking-step.booking-index-1.current {
  background: #d84a20 !important;
}

.job-details-dialog .combined-steps .step.booking-step.booking-index-2.completed,
.job-details-dialog .combined-steps .step.booking-step.booking-index-2.current {
  background: #e85a28 !important;
}

/* =============================================
   JOB STEPS - Gradient Colors
   ============================================= */
.job-details-dialog .arrow-steps .step.job-step.completed,
.job-details-dialog .arrow-steps .step.job-step.current {
  color: #ffffff !important;
  font-weight: 700;
  z-index: 2;
  position: relative;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
}

.job-details-dialog .arrow-steps .step.job-step.current {
  font-weight: 800;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.6);
  z-index: 3;
}

/* Job steps gradient - continues dark to light */
.job-details-dialog .combined-steps .step.job-step.job-index-0.completed,
.job-details-dialog .combined-steps .step.job-step.job-index-0.current {
  background: #f06830 !important;
}

.job-details-dialog .combined-steps .step.job-step.job-index-1.completed,
.job-details-dialog .combined-steps .step.job-step.job-index-1.current {
  background: #ff7a3d !important;
}

.job-details-dialog .combined-steps .step.job-step.job-index-2.completed,
.job-details-dialog .combined-steps .step.job-step.job-index-2.current {
  background: #ff8c50 !important;
}

.job-details-dialog .combined-steps .step.job-step.job-index-3.completed,
.job-details-dialog .combined-steps .step.job-step.job-index-3.current {
  background: #ff9f5a !important;
}

.job-details-dialog .combined-steps .step.job-step.job-index-4.completed,
.job-details-dialog .combined-steps .step.job-step.job-index-4.current {
  background: #ffb070 !important;
}

.job-details-dialog .combined-steps .step.job-step.job-index-5.completed,
.job-details-dialog .combined-steps .step.job-step.job-index-5.current {
  background: #ffc285 !important;
}

.job-details-dialog .combined-steps .step.job-step.job-index-6.completed,
.job-details-dialog .combined-steps .step.job-step.job-index-6.current {
  background: #ffd49a !important;
}

/* Clickable steps */
.job-details-dialog .arrow-steps .step.job-step.clickable {
  cursor: pointer;
  -webkit-user-select: none;
          user-select: none;
  pointer-events: auto !important;
  position: relative;
  z-index: 10;
}

.job-details-dialog .arrow-steps .step.job-step.clickable:hover {
  filter: brightness(1.1);
}

/* Dropdown icon in step */
.job-details-dialog .arrow-steps .step-dropdown-icon {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  margin-left: 4px;
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: #ffffff;
  opacity: 1 !important;
  pointer-events: none;
  vertical-align: middle;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
}

/* =============================================
   DATE CONTAINERS - Top (Booking Dates)
   ============================================= */
.job-details-dialog .booking-date-container {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  width: 100%;
  padding: 0;
  margin: 10px 0 40px 0;
  position: relative;
  box-sizing: border-box;
  min-height: 48px;
  z-index: 2;
  pointer-events: none;
}

.job-details-dialog .booking-date-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
  position: absolute;
  top: 0;
  transform: translateX(-50%);
  align-items: center;
  padding: 10px 14px 8px;
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 14px;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
  min-width: 100px;
  animation: markerDropIn 0.35s ease-out 0.2s both;
}

@keyframes markerDropIn {
  from {
    opacity: 0;
    transform: translateX(-50%) translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
}
/* Connector line from date pill to timeline */
.job-details-dialog .booking-date-group::before {
  content: "";
  position: absolute;
  bottom: -30px;
  left: 50%;
  transform: translateX(-50%);
  width: 2px;
  height: 26px;
  background: linear-gradient(to bottom, rgb(255, 176, 131), rgba(255, 176, 131, 0.1));
  border-radius: 2px;
}

/* Dot at connector end */
.job-details-dialog .booking-date-group::after {
  content: "";
  position: absolute;
  bottom: -36px;
  left: 50%;
  transform: translateX(-50%);
  width: 8px;
  height: 8px;
  background: radial-gradient(circle, #ffb083 30%, rgba(255, 176, 131, 0.4) 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(255, 176, 131, 0.5);
  animation: dateDotPulse 2s ease-in-out infinite;
}

@keyframes dateDotPulse {
  0%, 100% {
    opacity: 1;
    transform: translateX(-50%) scale(1);
  }
  50% {
    opacity: 0.7;
    transform: translateX(-50%) scale(1.2);
  }
}
.job-details-dialog .booking-date-label {
  font-size: 8px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(255, 255, 255, 0.5);
  line-height: 1;
  margin: 0;
  text-align: center;
}

.job-details-dialog .booking-date-value {
  font-size: 11px;
  font-weight: 700;
  color: #ffb083;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height: 1.2;
  margin: 0;
  text-align: center;
}

/* =============================================
   DATE CONTAINERS - Bottom (Promise Dates)
   ============================================= */
.job-details-dialog .promise-date-container {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  position: relative;
  margin: 40px 0 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  min-height: 65px;
  pointer-events: none;
}

.job-details-dialog .promise-date-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
  position: absolute;
  bottom: 0;
  transform: translateX(-50%);
  align-items: center;
  padding: 10px 14px 8px;
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 14px;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
  min-width: 100px;
  animation: markerRiseUp 0.35s ease-out 0.25s both;
}

@keyframes markerRiseUp {
  from {
    opacity: 0;
    transform: translateX(-50%) translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
}
/* Connector line from timeline to date pill */
.job-details-dialog .promise-date-group::before {
  content: "";
  position: absolute;
  top: -30px;
  left: 50%;
  transform: translateX(-50%);
  width: 2px;
  height: 26px;
  background: linear-gradient(to top, rgb(255, 176, 131), rgba(255, 176, 131, 0.1));
  border-radius: 2px;
}

/* Dot at connector end */
.job-details-dialog .promise-date-group::after {
  content: "";
  position: absolute;
  top: -36px;
  left: 50%;
  transform: translateX(-50%);
  width: 8px;
  height: 8px;
  background: radial-gradient(circle, #ffb083 30%, rgba(255, 176, 131, 0.4) 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(255, 176, 131, 0.5);
  animation: dateDotPulse 2s ease-in-out infinite;
}

/* =============================================
   DELIVERY STATUS BADGE
   ============================================= */
.job-details-dialog .delivery-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  background: linear-gradient(135deg, rgba(255, 176, 131, 0.2), rgba(255, 120, 80, 0.15));
  border: 1px solid rgba(255, 176, 131, 0.4);
  border-radius: 20px;
  color: #ffb083;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.job-details-dialog .delivery-status-badge.ready {
  background: linear-gradient(135deg, rgba(74, 222, 128, 0.2), rgba(34, 197, 94, 0.15));
  border-color: rgba(74, 222, 128, 0.4);
  color: #4ade80;
}

/* =============================================================================
   LEAD DETAILS MODAL - Premium Glassmorphic Design
   Restored from backup: lead-detail.component.css
   ============================================================================= */
/* =============================================================================
   MATDIALOG INTEGRATION - Ensure dialog container is transparent
   ============================================================================= */
/* Panel container transparency - so inner glass-modal-frosted shows */
body .cdk-overlay-pane.lead-details-dialog-panel,
body .cdk-overlay-pane.glass-modal-panel:has(.lead-details-modal) {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
}

/* Mat dialog container must be transparent for glassmorphic inner content */
.cdk-overlay-pane.lead-details-dialog-panel .mat-mdc-dialog-container,
.cdk-overlay-pane.lead-details-dialog-panel .mdc-dialog__container,
.cdk-overlay-pane.lead-details-dialog-panel .mdc-dialog__surface,
.cdk-overlay-pane.lead-details-dialog-panel .mat-mdc-dialog-surface,
body .cdk-overlay-pane.lead-details-dialog-panel .mat-mdc-dialog-container,
body .cdk-overlay-pane.lead-details-dialog-panel .mdc-dialog__container,
body .cdk-overlay-pane.lead-details-dialog-panel .mdc-dialog__surface,
body .cdk-overlay-pane.lead-details-dialog-panel .mat-mdc-dialog-surface {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border: none !important;
  border-radius: 24px !important;
  overflow: hidden !important;
  padding: 0 !important;
}

/* Backdrop blur for lead details - warm blur matching job-details - excludes dropdown/datepicker backdrops */
.cdk-overlay-container:has(.cdk-overlay-pane.lead-details-dialog-panel) .cdk-overlay-backdrop.cdk-overlay-backdrop-showing:not(.cdk-overlay-transparent-backdrop):not(.mat-overlay-transparent-backdrop),
.cdk-overlay-container:has(.cdk-overlay-pane.lead-details-dialog-panel) .cdk-overlay-backdrop.glass-modal-backdrop.cdk-overlay-backdrop-showing:not(.cdk-overlay-transparent-backdrop):not(.mat-overlay-transparent-backdrop),
body .cdk-overlay-container:has(.cdk-overlay-pane.lead-details-dialog-panel) .cdk-overlay-backdrop.cdk-overlay-backdrop-showing:not(.cdk-overlay-transparent-backdrop):not(.mat-overlay-transparent-backdrop) {
  background: rgba(8, 8, 8, 0.65) !important;
  backdrop-filter: blur(12px) saturate(150%) !important;
  -webkit-backdrop-filter: blur(12px) saturate(150%) !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

/* Center the dialog properly */
.cdk-global-overlay-wrapper:has(.lead-details-dialog-panel) {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}

/* =============================================================================
   CSS Custom Properties
   ============================================================================= */
/* CSS Custom Properties */
.lead-details-modal {
  --accent: #FF6A3A;
  --accent-soft: rgba(255, 106, 58, 0.15);
  --accent-glow: rgba(255, 106, 58, 0.4);
  --accent-light: #ffb083;
  --text-primary: rgba(255, 255, 255, 0.95);
  --text-secondary: rgba(255, 255, 255, 0.7);
  --text-muted: rgba(255, 255, 255, 0.45);
  --border-subtle: rgba(255, 255, 255, 0.08);
  --border-medium: rgba(255, 255, 255, 0.12);
  --surface-1: rgba(255, 255, 255, 0.03);
  --surface-2: rgba(255, 255, 255, 0.06);
  --surface-hover: rgba(255, 255, 255, 0.08);
  --success: #4ade80;
  --warning: #fbbf24;
  --danger: #f87171;
  --info: #ffb083;
}

/* =============================================================================
   MODAL CONTAINER
   ============================================================================= */
.lead-details-modal {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  max-height: 100%;
  font-family: var(--ui-font-primary);
  color: var(--text-primary);
  overflow: hidden;
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.01)) !important;
  backdrop-filter: blur(60px) saturate(200%) brightness(1.2) !important;
  -webkit-backdrop-filter: blur(60px) saturate(200%) brightness(1.2) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.38) !important;
  border-radius: 24px !important;
}

.lead-details-modal.modal-xl {
  width: 100%;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
}

/* =============================================================================
   HEADER
   ============================================================================= */
.lead-details-modal .glass-modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 20px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
  border-radius: 24px 24px 0 0;
  backdrop-filter: blur(40px) saturate(180%);
  -webkit-backdrop-filter: blur(40px) saturate(180%);
  flex-shrink: 0;
}

.lead-details-modal .header-left {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.lead-details-modal .lead-identity {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.lead-details-modal .lead-name {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 700;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  transition: color 0.2s;
}

.lead-details-modal .lead-name:hover {
  color: var(--accent);
}

.lead-details-modal .lead-name .edit-hint {
  font-size: 14px;
  opacity: 0;
  transition: opacity 0.2s;
}

.lead-details-modal .lead-name:hover .edit-hint {
  opacity: 0.5;
}

/* Status Pill */
.lead-details-modal .status-pill {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  min-height: 26px;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: var(--ui-text-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  background: var(--accent-soft);
  color: var(--accent);
  border: 1px solid rgba(255, 106, 58, 0.3);
}

.lead-details-modal .status-pill .pill-icon,
.lead-details-modal .lead-type-pill .pill-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

.lead-details-modal .status-pill.open {
  background: rgba(34, 197, 94, 0.15);
  color: var(--success);
  border-color: rgba(34, 197, 94, 0.3);
}

.lead-details-modal .status-pill.followup {
  background: rgba(251, 191, 36, 0.15);
  color: var(--warning);
  border-color: rgba(251, 191, 36, 0.3);
}

.lead-details-modal .status-pill.closed {
  background: rgba(255, 166, 102, 0.14);
  color: var(--info);
  border-color: rgba(255, 166, 102, 0.32);
}

.lead-details-modal .status-pill.lost {
  background: rgba(239, 68, 68, 0.15);
  color: var(--danger);
  border-color: rgba(239, 68, 68, 0.3);
}

/* Lead Type Pill */
.lead-details-modal .lead-type-pill {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  min-height: 26px;
  padding: 3px 10px;
  font-size: var(--ui-text-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  border-radius: 999px;
}

.lead-details-modal .lead-type-pill--new {
  background: rgba(34, 197, 94, 0.15);
  color: #22c55e;
  border: 1px solid rgba(34, 197, 94, 0.3);
}

.lead-details-modal .lead-type-pill--existing {
  background: rgba(255, 166, 102, 0.14);
  color: var(--accent-light);
  border: 1px solid rgba(255, 166, 102, 0.32);
}

/* Lead ID Badge */
.lead-details-modal .lead-id-badge {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 3px 10px;
  background: linear-gradient(135deg, rgba(255, 140, 80, 0.2), rgba(200, 90, 50, 0.15));
  border: 1px solid rgba(255, 140, 80, 0.4);
  border-radius: 6px;
  color: #ffb083;
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-xs);
  font-weight: 600;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: all 0.2s ease;
}

.lead-details-modal .lead-id-badge:hover {
  background: linear-gradient(135deg, rgba(255, 140, 80, 0.3), rgba(200, 90, 50, 0.25));
  border-color: rgba(255, 140, 80, 0.6);
}

/* Header Right */
.lead-details-modal .header-right {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.lead-details-modal .header-actions {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

/* Button Styles */
.lead-details-modal .header-actions .pill-btn-add,
.lead-details-modal .btn-glass {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  padding: 0 12px;
  height: 30px;
  background: var(--surface-1);
  border: 1px solid var(--border-medium);
  border-radius: 999px;
  color: var(--text-secondary);
  font-size: var(--ui-text-sm);
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
  white-space: nowrap;
}

.lead-details-modal .header-actions .pill-btn-add {
  min-width: auto;
  box-shadow: none;
}

.lead-details-modal .header-actions .pill-btn-add:hover {
  box-shadow: 0 0 14px rgba(255, 140, 90, 0.18);
}

.lead-details-modal .btn-glass:hover {
  background: var(--surface-hover);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.2);
}

.lead-details-modal .header-actions .pill-btn-add mat-icon,
.lead-details-modal .btn-glass mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.lead-details-modal .btn-danger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.25);
  border-radius: 999px;
  color: var(--danger);
  cursor: pointer;
  transition: all 0.2s;
}

.lead-details-modal .close-btn {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--surface-1);
  border: 1px solid var(--border-subtle);
  color: var(--text-muted);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s;
}

.lead-details-modal .close-btn mat-icon,
.lead-details-modal .btn-danger mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.lead-details-modal .close-btn:hover {
  background: var(--surface-hover);
  color: #fff;
}

/* =============================================================================
   MODAL BODY & LAYOUT
   ============================================================================= */
.lead-details-modal .modal-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 18px 22px;
  overscroll-behavior: contain;
}

/* 2-COLUMN LAYOUT */
.lead-details-modal .content-layout-v2 {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 18px;
  height: 100%;
  min-height: 0;
}

.lead-details-modal .info-panel {
  display: flex;
  flex-direction: column;
  gap: 16px;
  height: 100%;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.lead-details-modal .activity-panel {
  display: flex;
  flex-direction: column;
  min-height: 0;
  min-width: 0;
  height: 100%;
}

/* =============================================================================
   GLASS CARDS
   =============================================================================
   DEPRECATED: .glass-card visuals moved to ui/layout/card.scss
   Use .ui-card for card visuals.
   ============================================================================= */
/* .glass-card visuals → Single owner: ui/layout/card.scss */
.lead-details-modal .unified-lead-card {
  overflow: hidden;
}

.lead-details-modal .glass-panel {
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

/* Meta Strip */
.lead-details-modal .meta-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 20px;
  background: rgba(255, 255, 255, 0.02);
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.05);
}

.lead-details-modal .meta-pills {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.lead-details-modal .meta-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.7);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 999px;
}

.lead-details-modal .meta-pill mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

.lead-details-modal .meta-pill.clickable {
  cursor: pointer;
  transition: all 0.2s;
}

.lead-details-modal .meta-pill.clickable:hover {
  background: rgba(245, 158, 11, 0.15);
  border-color: rgba(245, 158, 11, 0.3);
  color: #f59e0b;
}

.lead-details-modal .meta-dates {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  color: rgba(255, 255, 255, 0.4);
}

.lead-details-modal .meta-dates .date-value {
  color: rgba(255, 255, 255, 0.85);
  font-weight: 500;
}

/* Lead Header Row */
.lead-details-modal .lead-header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  gap: 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.lead-details-modal .phone-section {
  display: flex;
  align-items: center;
  gap: 12px;
}

.lead-details-modal .phone-icon-wrap {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: var(--accent-soft);
  display: flex;
  align-items: center;
  justify-content: center;
}

.lead-details-modal .phone-icon-wrap mat-icon {
  font-size: 22px;
  color: var(--accent);
}

.lead-details-modal .phone-info {
  flex: 1;
}

.lead-details-modal .phone-label {
  display: block;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
  margin-bottom: 2px;
}

.lead-details-modal .phone-number {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 16px;
  font-weight: 700;
  color: #fff;
}

.lead-details-modal .phone-quick-actions {
  display: flex;
  gap: 6px;
}

.lead-details-modal .mini-action {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: transparent;
  border: 1px solid var(--border-subtle);
  color: var(--text-muted);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s;
}

.lead-details-modal .mini-action:hover {
  background: var(--surface-1);
  color: var(--accent);
  border-color: rgba(255, 106, 58, 0.3);
}

.lead-details-modal .mini-action mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

/* Header Controls */
.lead-details-modal .header-controls {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}

.lead-details-modal .control-compact {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.lead-details-modal .control-compact label {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-muted);
}

.lead-details-modal .dropdown-trigger-sm {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  padding: 6px 10px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 8px;
  color: var(--text-primary);
  font-size: 12px;
  cursor: pointer;
  min-width: 80px;
  transition: all 0.2s;
}

.lead-details-modal .dropdown-trigger-sm:hover {
  background: var(--surface-hover);
  border-color: var(--border-medium);
}

/* Lead Info Grid */
.lead-details-modal .lead-info-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  padding: 16px 20px;
}

.lead-details-modal .info-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 8px 12px 8px 0;
}

.lead-details-modal .info-field label {
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.4);
}

.lead-details-modal .info-field .field-value {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.85);
}

.lead-details-modal .info-field .field-value.accent {
  color: #f59e0b;
}

.lead-details-modal .info-field .field-input {
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  padding: 4px 0;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.85);
  outline: none;
}

.lead-details-modal .info-field .field-input:focus {
  border-bottom-color: #f59e0b;
}

/* Potential Options */
.lead-details-modal .potential-options {
  display: flex;
  gap: 8px;
  align-items: center;
}

.lead-details-modal .potential-btn {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s;
  opacity: 0.5;
}

.lead-details-modal .potential-btn img {
  width: 18px;
  height: 18px;
}

.lead-details-modal .potential-btn:hover {
  background: rgba(255, 255, 255, 0.1);
  opacity: 0.8;
}

.lead-details-modal .potential-btn.active {
  opacity: 1;
  background: rgba(245, 158, 11, 0.15);
  border-color: rgba(245, 158, 11, 0.4);
  box-shadow: 0 0 8px rgba(245, 158, 11, 0.3);
}

/* =============================================================================
   INSIGHTS SECTION
   ============================================================================= */
.lead-details-modal .insights-section {
  padding-bottom: 0;
}

.lead-details-modal .section-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--accent);
  padding-bottom: 10px;
  margin-bottom: 0;
  border-bottom: 1px solid var(--border-subtle);
  position: relative;
}

.lead-details-modal .section-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 60px;
  height: 2px;
  background: linear-gradient(90deg, var(--accent), transparent);
  border-radius: 1px;
}

.lead-details-modal .section-title mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.lead-details-modal .insights-row {
  display: flex;
  gap: 8px;
  margin-top: 8px;
  margin-bottom: 8px;
}

.lead-details-modal .insight-box {
  flex: 1;
  padding: 6px 8px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 6px;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.lead-details-modal .insight-box.score-box {
  flex: 2;
}

.lead-details-modal .insight-box .insight-label {
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
  line-height: 1.2;
}

.lead-details-modal .insight-box .insight-value {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary);
  line-height: 1.3;
}

.lead-details-modal .score-display {
  display: flex;
  align-items: center;
  gap: 6px;
}

.lead-details-modal .score-value {
  font-size: 28px;
  font-weight: 700;
  color: var(--accent);
  min-width: 40px;
}

.lead-details-modal .score-bar {
  flex: 1;
  height: 6px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 3px;
  overflow: hidden;
}

.lead-details-modal .score-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--accent), #fbbf24);
  border-radius: 3px;
  transition: width 0.5s ease;
}

/* =============================================================================
   TAGS
   ============================================================================= */
.lead-details-modal .tags-area {
  padding-top: 10px;
  padding-bottom: 6px;
  border-top: 1px solid var(--border-subtle);
}

.lead-details-modal .tags-header {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 6px;
}

.lead-details-modal .tags-label {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
}

.lead-details-modal .tags-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.lead-details-modal .tag {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  background: var(--accent-soft);
  border: 1px solid rgba(255, 106, 58, 0.2);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 500;
  color: var(--accent);
}

.lead-details-modal .tag-remove {
  background: none;
  border: none;
  padding: 0;
  color: inherit;
  cursor: pointer;
  display: flex;
  align-items: center;
}

.lead-details-modal .tag-remove mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

.lead-details-modal .no-tags {
  font-size: 11px;
  color: var(--text-muted);
  font-style: italic;
}

.lead-details-modal .tag-input-glass {
  display: flex;
  align-items: center;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 999px;
  padding: 4px 6px 4px 12px;
  width: 140px;
  transition: all 0.2s;
}

.lead-details-modal .tag-input-glass:focus-within {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
  width: 180px;
}

.lead-details-modal .tag-input-glass input {
  border: none;
  background: transparent;
  width: 100%;
  color: var(--text-primary);
  font-size: 11px;
  outline: none;
  padding: 0;
}

.lead-details-modal .tag-add-btn {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--accent);
  border: none;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
}

.lead-details-modal .tag-add-btn mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

/* Suggested Tags */
.lead-details-modal .suggested-tags-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dashed rgba(255, 255, 255, 0.06);
}

.lead-details-modal .suggested-label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-muted);
  margin-right: 4px;
}

.lead-details-modal .suggested-tag-chip {
  padding: 4px 10px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 999px;
  color: var(--text-secondary);
  font-size: 11px;
  cursor: pointer;
  transition: all 0.15s ease;
}

.lead-details-modal .suggested-tag-chip:hover {
  background: rgba(255, 106, 58, 0.1);
  border-color: rgba(255, 106, 58, 0.25);
  color: var(--accent);
}

/* =============================================================================
   ACTIVITY CARD V2
   ============================================================================= */
.lead-details-modal .activity-card-v2 {
  padding: 6px !important;
  gap: 10px !important;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.lead-details-modal .activity-header-v2 {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

/* Compose */
.lead-details-modal .activity-compose-v2 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 6px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.02);
}

.lead-details-modal .activity-compose-v2 .remark-image-preview-strip {
  width: 100%;
  order: -1;
}

.lead-details-modal .compose-field-v2 {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 10px;
  border: none;
  background: transparent;
  position: relative;
  min-width: 0;
}

.lead-details-modal .compose-field-v2 mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: var(--text-muted);
}

.lead-details-modal .compose-input-v2 {
  flex: 1;
  border: none !important;
  background: transparent !important;
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  outline: none;
  padding: 0 !important;
  box-shadow: none !important;
  height: auto !important;
  min-width: 0;
}

.lead-details-modal .compose-input-v2::placeholder {
  color: rgba(255, 255, 255, 0.35);
}

.lead-details-modal .enter-hint {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 10px;
  color: rgba(255, 255, 255, 0.3);
  pointer-events: none;
  font-weight: 600;
  letter-spacing: 0.02em;
  z-index: 5;
}

.lead-details-modal .compose-send-v2 {
  width: 36px;
  height: 36px;
  border-radius: 12px;
  border: none;
  background: var(--accent);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 4px 12px var(--accent-glow);
}

.lead-details-modal .compose-send-v2:disabled {
  background: rgba(255, 255, 255, 0.06);
  color: var(--text-muted);
  box-shadow: none;
}

/* Activity Feed */
.lead-details-modal .activity-feed-v2 {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow-y: auto;
  padding-right: 4px;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 106, 58, 0.4) transparent;
}

.lead-details-modal .activity-feed-v2::-webkit-scrollbar {
  width: 6px;
}

.lead-details-modal .activity-feed-v2::-webkit-scrollbar-track {
  background: transparent;
}

.lead-details-modal .activity-feed-v2::-webkit-scrollbar-thumb {
  background: rgba(255, 106, 58, 0.35);
  border-radius: 10px;
}

.lead-details-modal .activity-group-v2 {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.lead-details-modal .activity-group-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.5);
  padding-left: 6px;
}

.lead-details-modal .activity-event-v2 {
  display: grid;
  grid-template-columns: 26px 1fr;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.01));
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.lead-details-modal .activity-event-v2:hover {
  border-color: rgba(255, 106, 58, 0.25);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.lead-details-modal .activity-event-v2.is-selected {
  border-color: rgba(255, 106, 58, 0.4) !important;
}

.lead-details-modal .event-icon-v2 {
  width: 26px;
  height: 26px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.04);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.5);
  flex-shrink: 0;
}

.lead-details-modal .event-icon-v2 mat-icon {
  font-size: 13px;
  width: 13px;
  height: 13px;
}

.lead-details-modal .event-content-v2 {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.lead-details-modal .event-top-v2 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.lead-details-modal .event-author-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.lead-details-modal .event-author-v2 {
  font-size: 12px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 140px;
}

.lead-details-modal .event-type-v2 {
  font-size: 7px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  padding: 1px 4px;
  border-radius: 999px;
  background: rgba(255, 122, 61, 0.2);
  color: #ffb083;
  line-height: 1.2;
}

.lead-details-modal .event-time-v2 {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.45);
}

.lead-details-modal .event-text-v2 {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.lead-details-modal .event-text-v2.expanded {
  -webkit-line-clamp: unset;
  line-clamp: unset;
  display: block;
}

.lead-details-modal .event-expand-v2 {
  background: none;
  border: none;
  color: var(--accent);
  font-size: 11px;
  cursor: pointer;
  padding: 0;
}

/* Compose Attach Button */
.lead-details-modal .compose-attach-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  min-width: 28px;
  background: transparent;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  padding: 0;
  transition: all 0.2s ease;
}

.lead-details-modal .compose-attach-btn:hover {
  background: rgba(255, 255, 255, 0.1);
}

.lead-details-modal .compose-attach-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: var(--text-muted);
  transform: rotate(-45deg);
}

/* Remark Image Preview Strip (compose area) */
.lead-details-modal .remark-image-preview-strip {
  display: flex;
  gap: 6px;
  padding: 6px 8px 0;
  flex-wrap: wrap;
  width: 100%;
}

.lead-details-modal .remark-preview-item {
  position: relative;
  width: 40px;
  height: 40px;
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.15);
}

.lead-details-modal .remark-preview-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.lead-details-modal .remark-preview-remove {
  position: absolute;
  top: -2px;
  right: -2px;
  width: 16px;
  height: 16px;
  background: rgba(220, 50, 50, 0.9);
  border: none;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
}

.lead-details-modal .remark-preview-remove mat-icon {
  font-size: 10px;
  width: 10px;
  height: 10px;
  color: #fff;
}

/* Remark Image Thumbnails (activity feed) */
.lead-details-modal .remark-images-row {
  display: flex;
  gap: 6px;
  margin-top: 6px;
  flex-wrap: wrap;
}

.lead-details-modal .remark-thumb {
  width: 48px;
  height: 48px;
  object-fit: cover;
  border-radius: 6px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  cursor: pointer;
  transition: all 0.2s ease;
}

.lead-details-modal .remark-thumb:hover {
  border-color: rgba(255, 106, 58, 0.4);
  transform: scale(1.05);
}

.lead-details-modal .event-meta-v2 {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.lead-details-modal .event-pill-v2 {
  font-size: 8px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 1px 5px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.5);
  line-height: 1.2;
}

.lead-details-modal .event-actions-v2 {
  display: flex;
  gap: 4px;
  opacity: 0.7;
  transition: opacity 0.15s;
}

.lead-details-modal .activity-event-v2:hover .event-actions-v2 {
  opacity: 1;
}

.lead-details-modal .event-action-btn-v2 {
  width: 22px;
  height: 22px;
  border-radius: 6px;
  border: none;
  background: rgba(255, 255, 255, 0.04);
  color: var(--text-muted);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.lead-details-modal .event-action-btn-v2:hover:not(:disabled) {
  background: rgba(255, 106, 58, 0.15);
  color: var(--accent);
}

.lead-details-modal .event-action-btn-v2 mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

.lead-details-modal .activity-empty-v2 {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 40px 20px;
  color: var(--text-muted);
}

.lead-details-modal .activity-empty-v2 mat-icon {
  font-size: 36px;
  width: 36px;
  height: 36px;
  margin-bottom: 10px;
  opacity: 0.3;
}

/* =============================================================================
   WHATSAPP PANEL
   ============================================================================= */
.lead-details-modal .inline-whatsapp-panel {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.lead-details-modal .whatsapp-messages-inline {
  flex: 1;
  overflow-y: auto;
  padding: 4px 5px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.lead-details-modal .wa-bubble {
  max-width: 80%;
  padding: 6px 10px;
  border-radius: 12px;
}

.lead-details-modal .wa-bubble p {
  margin: 0;
  font-size: 12px;
  line-height: 1.35;
  color: rgba(255, 255, 255, 0.95);
}

.lead-details-modal .wa-bubble.sent {
  align-self: flex-end;
  background: linear-gradient(135deg, rgba(37, 211, 102, 0.35), rgba(37, 211, 102, 0.5));
  border-bottom-right-radius: 4px;
}

.lead-details-modal .wa-bubble.received {
  align-self: flex-start;
  background: rgba(255, 255, 255, 0.08);
  border-bottom-left-radius: 4px;
}

.lead-details-modal .wa-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 2px;
  justify-content: flex-end;
}

.lead-details-modal .wa-time {
  font-size: 9px;
  color: rgba(255, 255, 255, 0.45);
}

.lead-details-modal .wa-compose-bar {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 8px;
  margin: 4px;
  background: rgba(0, 0, 0, 0.25);
  border-radius: 24px;
}

.lead-details-modal .wa-text-input {
  flex: 1;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 24px;
  padding: 6px 14px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  outline: none;
}

.lead-details-modal .wa-action-icon {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.lead-details-modal .wa-send-icon {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: linear-gradient(135deg, #25D366, #128C7E);
  border: none;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.lead-details-modal .wa-send-icon:disabled {
  background: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.3);
}

.lead-details-modal .wa-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 30px 20px;
  color: var(--text-muted);
}

.lead-details-modal .wa-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 30px;
}

.lead-details-modal .wa-spinner {
  width: 20px;
  height: 20px;
  border: 2px solid rgba(37, 211, 102, 0.2);
  border-top-color: #25D366;
  border-radius: 50%;
  animation: wa-spin 1s linear infinite;
}

@keyframes wa-spin {
  to {
    transform: rotate(360deg);
  }
}
/* Unread Badge */
.lead-details-modal .unread-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  margin-left: 4px;
  font-size: 9px;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(135deg, #25D366, #128C7E);
  border-radius: 999px;
}

/* =============================================================================
   SKELETON LOADERS
   ============================================================================= */
.lead-details-modal .skeleton-line,
.lead-details-modal .skeleton-pill,
.lead-details-modal .skeleton-square,
.lead-details-modal .skeleton-block {
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.06));
  background-size: 220% 100%;
  animation: leadSkeletonShimmer 1.4s ease-in-out infinite;
}

.lead-details-modal .skeleton-line {
  height: 12px;
  border-radius: 6px;
}

.lead-details-modal .skeleton-pill {
  height: 24px;
  border-radius: 999px;
}

@keyframes leadSkeletonShimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
/* =============================================================================
   RESPONSIVE
   ============================================================================= */
@media (max-width: 1200px) {
  .lead-details-modal .content-layout-v2 {
    grid-template-columns: 1fr 340px;
  }
}
@media (max-width: 992px) {
  .lead-details-modal .content-layout-v2 {
    grid-template-columns: 1fr;
  }
  .lead-details-modal .activity-panel {
    max-height: 400px;
  }
  .lead-details-modal .lead-info-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
/* =============================================================================
   FOLLOW-UP CONTROLS
   ============================================================================= */
.lead-details-modal .inline-followup,
.lead-details-modal .inline-closing {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-left: 12px;
  border-left: 1px solid rgba(251, 191, 36, 0.3);
}

.lead-details-modal .pill-btn-sm {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 5px 10px;
  background: var(--surface-1);
  border: 1px solid var(--border-subtle);
  border-radius: 999px;
  color: var(--text-secondary);
  font-size: 11px;
  cursor: pointer;
  transition: all 0.2s;
}

.lead-details-modal .pill-btn-sm:hover {
  background: var(--surface-hover);
  border-color: var(--warning);
  color: var(--warning);
}

.lead-details-modal .pill-btn-sm mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

.lead-details-modal .btn-update-sm {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(34, 197, 94, 0.15);
  border: 1px solid rgba(34, 197, 94, 0.3);
  color: #22c55e;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.lead-details-modal .btn-update-sm:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.lead-details-modal .btn-update-sm mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.lead-details-modal .date-wrap {
  position: relative;
}

.lead-details-modal .hidden-input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

/* Name Edit Form */
.lead-details-modal .name-edit-form {
  display: flex;
  align-items: center;
  gap: 8px;
}

.lead-details-modal .name-input {
  background: var(--surface-1);
  border: 1px solid var(--border-medium);
  border-radius: 10px;
  padding: 8px 14px;
  font-size: 1.25rem;
  font-weight: 600;
  color: #fff;
  outline: none;
  min-width: 200px;
}

.lead-details-modal .name-input:focus {
  border-color: var(--accent);
}

.lead-details-modal .name-save-btn {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: var(--accent-soft);
  border: 1px solid rgba(255, 106, 58, 0.3);
  color: var(--accent);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.lead-details-modal .name-save-btn:hover {
  background: var(--accent);
  color: white;
}

.lead-details-modal .save-indicator {
  font-size: 12px;
  color: var(--accent);
  font-weight: 600;
}

/* Meta pill editing */
.lead-details-modal .meta-pill.editing {
  background: rgba(245, 158, 11, 0.1);
  border-color: rgba(245, 158, 11, 0.4);
}

.lead-details-modal .meta-pill-input {
  background: transparent;
  border: none;
  outline: none;
  color: rgba(255, 255, 255, 0.9);
  font-size: 11px;
  font-weight: 500;
  width: 100px;
  padding: 0 4px;
}

.lead-details-modal .pill-edit-hint {
  font-size: 11px !important;
  width: 11px !important;
  height: 11px !important;
  opacity: 0;
  transition: opacity 0.2s;
}

.lead-details-modal .meta-pill.clickable:hover .pill-edit-hint {
  opacity: 0.7;
}

/* Starred icon */
.lead-details-modal .starred {
  color: #fbbf24;
  font-size: 20px;
}

/* Info panel card */
.lead-details-modal .info-panel-card {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
}

/* Saving badge */
.lead-details-modal .saving-badge {
  font-size: 10px;
  color: var(--accent);
  font-weight: 500;
}

/* =============================================================================
   PHASE 25: ATTRIBUTION & SOURCE INTELLIGENCE
   ============================================================================= */
.lead-details-modal .attribution-card {
  gap: 12px;
}

.lead-details-modal .attribution-loading {
  padding: 16px;
  text-align: center;
}

.lead-details-modal .loading-dots {
  color: var(--text-muted);
  font-size: 12px;
}

/* Touchpoint Timeline */
.lead-details-modal .touchpoint-timeline {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.lead-details-modal .tp-chain {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  padding: 8px 0;
}

.lead-details-modal .tp-node {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}

.lead-details-modal .tp-icon {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

/* Source-specific colors */
.lead-details-modal .tp-source--facebook {
  background: rgba(66, 103, 178, 0.2);
  color: #8b9dc3;
  border-color: rgba(66, 103, 178, 0.3);
}

.lead-details-modal .tp-source--google {
  background: rgba(66, 133, 244, 0.2);
  color: #93baf5;
  border-color: rgba(66, 133, 244, 0.3);
}

.lead-details-modal .tp-source--instagram {
  background: rgba(225, 48, 108, 0.2);
  color: #f08db1;
  border-color: rgba(225, 48, 108, 0.3);
}

.lead-details-modal .tp-source--whatsapp {
  background: rgba(37, 211, 102, 0.2);
  color: #82e8ad;
  border-color: rgba(37, 211, 102, 0.3);
}

.lead-details-modal .tp-source--website {
  background: rgba(255, 106, 58, 0.2);
  color: #ffb899;
  border-color: rgba(255, 106, 58, 0.3);
}

.lead-details-modal .tp-source--justdial {
  background: rgba(0, 105, 225, 0.2);
  color: #79b8f5;
  border-color: rgba(0, 105, 225, 0.3);
}

.lead-details-modal .tp-source--walkIn, .lead-details-modal .tp-source--walkin {
  background: rgba(168, 85, 247, 0.2);
  color: #c9a5f7;
  border-color: rgba(168, 85, 247, 0.3);
}

.lead-details-modal .tp-source--call {
  background: rgba(34, 197, 94, 0.2);
  color: #7ae3a8;
  border-color: rgba(34, 197, 94, 0.3);
}

.lead-details-modal .tp-time {
  font-size: 9px;
  color: var(--text-muted);
}

.lead-details-modal .tp-arrow {
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
  color: rgba(255, 255, 255, 0.25);
}

/* Primary Source Highlight */
.lead-details-modal .primary-source {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  background: rgba(255, 106, 58, 0.08);
  border: 1px solid rgba(255, 106, 58, 0.15);
  border-radius: 8px;
}

.lead-details-modal .primary-label {
  font-size: 11px;
  color: var(--text-muted);
  font-weight: 500;
}

.lead-details-modal .primary-value {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.9);
  font-weight: 600;
}

.lead-details-modal .primary-time {
  font-weight: 400;
  color: var(--text-muted);
  font-size: 11px;
}

/* Revenue Attribution Breakdown */
.lead-details-modal .attribution-breakdown {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-top: 6px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.lead-details-modal .attribution-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.lead-details-modal .attr-title {
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.7);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.lead-details-modal .attr-model {
  font-size: 10px;
  color: var(--text-muted);
  background: rgba(255, 255, 255, 0.04);
  padding: 2px 6px;
  border-radius: 4px;
}

.lead-details-modal .attr-row {
  display: grid;
  grid-template-columns: 1fr 80px 60px 36px;
  align-items: center;
  gap: 6px;
  padding: 3px 0;
}

.lead-details-modal .attr-campaign {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.8);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lead-details-modal .attr-bar-track {
  height: 4px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 4px;
  overflow: hidden;
}

.lead-details-modal .attr-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--accent), #ff9d6c);
  border-radius: 4px;
  transition: width 0.3s ease;
}

.lead-details-modal .attr-value {
  text-align: right;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.8);
  font-weight: 600;
}

.lead-details-modal .attr-pct {
  text-align: right;
  font-size: 10px;
  color: var(--text-muted);
}

.lead-details-modal .attr-total {
  display: flex;
  justify-content: space-between;
  padding-top: 4px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 12px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.9);
}

/* =============================================================================
   DECISION BLOCK — First thing user sees after header
   ============================================================================= */
.lead-details-modal .decision-block {
  display: flex;
  align-items: center;
  gap: var(--ui-space-5);
  padding: var(--ui-space-3) var(--ui-space-6);
  background: linear-gradient(135deg, rgba(255, 120, 79, 0.06), var(--ui-surface-1));
  border-bottom: 1px solid rgba(255, 120, 79, 0.12);
  flex-shrink: 0;
  flex-wrap: wrap;
}

.lead-details-modal .decision-block__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ui-space-1);
}

.lead-details-modal .decision-block__label {
  font-size: 9px;
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ui-text-subtle);
}

.lead-details-modal .decision-block__value {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
}

.lead-details-modal .decision-block__value--revenue {
  color: var(--ui-success);
}

.lead-details-modal .decision-score-ring {
  width: var(--ui-space-12);
  height: var(--ui-space-12);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--ui-text-md);
  font-weight: 800;
  border: 3px solid var(--ui-border);
  transition: all var(--ui-transition-slow);
}

.lead-details-modal .decision-score-ring.ring--high {
  background: var(--ui-success-bg);
  color: var(--ui-success);
  border-color: var(--ui-success-border);
  box-shadow: 0 0 16px rgba(74, 222, 128, 0.2);
}

.lead-details-modal .decision-score-ring.ring--mid {
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
  border-color: var(--ui-warning-border);
  box-shadow: 0 0 16px rgba(251, 191, 36, 0.2);
}

.lead-details-modal .decision-score-ring.ring--low {
  background: var(--ui-danger-bg);
  color: var(--ui-danger);
  border-color: var(--ui-danger-border);
}

.lead-details-modal .decision-block__reason {
  flex: 1;
  min-width: 120px;
  align-items: flex-start;
}

.lead-details-modal .decision-block__reason-text {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  line-height: 1.4;
}

.lead-details-modal .decision-block__source {
  align-items: flex-end;
}

.lead-details-modal .decision-block__source-text {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  color: var(--ui-brand-light);
  padding: 3px var(--ui-space-3);
  background: rgba(255, 153, 102, 0.1);
  border-radius: var(--ui-radius-full);
  border: 1px solid rgba(255, 153, 102, 0.2);
}

/* Potential Badge */
.lead-details-modal .decision-block__potential-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  padding: var(--ui-space-1) var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.lead-details-modal .potential--hot {
  background: var(--ui-success-bg);
  color: var(--ui-success);
  border: 1.5px solid var(--ui-success-border);
}

.lead-details-modal .potential--warm {
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
  border: 1.5px solid var(--ui-warning-border);
}

.lead-details-modal .potential--cold {
  background: var(--ui-info-bg);
  color: var(--ui-info);
  border: 1.5px solid var(--ui-info-border);
}

/* =============================================================================
   VOICE INTELLIGENCE — CRM Conversational Intelligence Panel
   Enterprise audit-log style transcript viewer (Linear/Stripe aesthetic)
   ============================================================================= */
.lead-details-modal .voice-intelligence-card {
  border-left: 3px solid rgba(139, 92, 246, 0.5);
}

.lead-details-modal .voice-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #c4b5fd;
}

.lead-details-modal .voice-section-header::after {
  background: linear-gradient(90deg, rgba(139, 92, 246, 0.6), transparent);
}

.lead-details-modal .voice-header-left {
  display: flex;
  align-items: center;
  gap: 8px;
}

.lead-details-modal .voice-header-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: #a78bfa;
}

.lead-details-modal .voice-header-meta {
  display: flex;
  align-items: center;
  gap: 8px;
}

.lead-details-modal .voice-outcome-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  border-radius: 999px;
  background: rgba(139, 92, 246, 0.12);
  color: #c4b5fd;
  border: 1px solid rgba(139, 92, 246, 0.3);
}

.lead-details-modal .voice-outcome--lead_created {
  background: rgba(34, 197, 94, 0.12);
  color: #4ade80;
  border-color: rgba(34, 197, 94, 0.3);
}

.lead-details-modal .voice-outcome--human_escalation {
  background: rgba(251, 191, 36, 0.12);
  color: #fbbf24;
  border-color: rgba(251, 191, 36, 0.3);
}

.lead-details-modal .voice-outcome--spam {
  background: rgba(239, 68, 68, 0.12);
  color: #f87171;
  border-color: rgba(239, 68, 68, 0.3);
}

.lead-details-modal .voice-outcome--missed {
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.5);
  border-color: rgba(255, 255, 255, 0.1);
}

.lead-details-modal .voice-duration-badge {
  font-size: 10px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.6);
  font-family: var(--ui-font-mono);
}

/* AI Summary */
.lead-details-modal .voice-ai-summary {
  margin-top: 12px;
  padding: 12px 14px;
  background: linear-gradient(135deg, rgba(139, 92, 246, 0.08), rgba(99, 102, 241, 0.04));
  border: 1px solid rgba(139, 92, 246, 0.15);
  border-radius: 10px;
}

.lead-details-modal .voice-summary-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #a78bfa;
  margin-bottom: 6px;
}

.lead-details-modal .voice-summary-label mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.lead-details-modal .voice-summary-text {
  font-size: 13px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.5;
  margin: 0;
}

/* Call Metadata Strip */
.lead-details-modal .voice-metadata-strip {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 12px;
  padding: 10px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.lead-details-modal .voice-meta-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.lead-details-modal .voice-meta-label {
  font-size: 9px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: rgba(255, 255, 255, 0.4);
}

.lead-details-modal .voice-meta-value {
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.85);
}

.lead-details-modal .voice-status-pill {
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 600;
}

.lead-details-modal .voice-status--active {
  background: rgba(34, 197, 94, 0.12);
  color: #4ade80;
}

.lead-details-modal .voice-status--completed {
  background: rgba(139, 92, 246, 0.12);
  color: #c4b5fd;
}

.lead-details-modal .voice-status--failed {
  background: rgba(239, 68, 68, 0.12);
  color: #f87171;
}

/* Transcript Section */
.lead-details-modal .voice-transcript-section {
  margin-top: 12px;
}

.lead-details-modal .voice-transcript-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 0;
  cursor: pointer;
  transition: all 0.2s;
}

.lead-details-modal .voice-transcript-header:hover {
  color: #a78bfa;
}

.lead-details-modal .voice-transcript-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.7);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.lead-details-modal .voice-transcript-title mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: #a78bfa;
}

.lead-details-modal .voice-entry-count {
  font-size: 10px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.4);
  text-transform: none;
  letter-spacing: normal;
}

.lead-details-modal .voice-expand-icon {
  color: rgba(255, 255, 255, 0.4);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.lead-details-modal .voice-expand-icon.rotated {
  transform: rotate(180deg);
}

/* Transcript Table — Enterprise Audit Log */
.lead-details-modal .voice-transcript-body {
  max-height: 400px;
  overflow-y: auto;
  margin-top: 4px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.lead-details-modal .voice-transcript-table {
  width: 100%;
  border-collapse: collapse;
}

.lead-details-modal .voice-transcript-table thead tr {
  background: rgba(255, 255, 255, 0.03);
}

.lead-details-modal .voice-transcript-table th {
  padding: 6px 12px;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.4);
  text-align: left;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.lead-details-modal .vt-col-time {
  width: 70px;
}

.lead-details-modal .vt-col-speaker {
  width: 110px;
}

.lead-details-modal .vt-col-message { /* flex remaining */ }

.lead-details-modal .vt-row {
  border-bottom: 1px solid rgba(255, 255, 255, 0.03);
  transition: background 0.15s;
}

.lead-details-modal .vt-row:hover {
  background: rgba(255, 255, 255, 0.03);
}

.lead-details-modal .vt-time {
  padding: 8px 12px;
  font-size: 10px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.35);
  font-family: var(--ui-font-mono);
  vertical-align: top;
  white-space: nowrap;
}

.lead-details-modal .vt-speaker {
  padding: 8px 12px;
  vertical-align: top;
}

.lead-details-modal .vt-speaker-badge {
  display: inline-flex;
  padding: 2px 8px;
  font-size: 10px;
  font-weight: 600;
  border-radius: 4px;
  letter-spacing: 0.02em;
}

.lead-details-modal .vt-speaker--caller {
  background: rgba(59, 130, 246, 0.12);
  color: #93c5fd;
  border: 1px solid rgba(59, 130, 246, 0.25);
}

.lead-details-modal .vt-speaker--ai {
  background: rgba(139, 92, 246, 0.12);
  color: #c4b5fd;
  border: 1px solid rgba(139, 92, 246, 0.25);
}

.lead-details-modal .vt-speaker--agent {
  background: rgba(245, 158, 11, 0.12);
  color: #fbbf24;
  border: 1px solid rgba(245, 158, 11, 0.25);
}

.lead-details-modal .vt-speaker--supervisor {
  background: rgba(34, 197, 94, 0.12);
  color: #4ade80;
  border: 1px solid rgba(34, 197, 94, 0.25);
}

.lead-details-modal .vt-speaker--system {
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.lead-details-modal .vt-message {
  padding: 8px 12px;
  font-size: 12px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.5;
  vertical-align: top;
}

/* AI Action Events — Inline marker between transcript entries */
.lead-details-modal .vt-action-row {
  border-bottom: 1px solid rgba(255, 255, 255, 0.03);
}

.lead-details-modal .vt-action-cell {
  padding: 6px 12px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.lead-details-modal .vt-action-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: #fbbf24;
}

.lead-details-modal .vt-action-text {
  font-size: 11px;
  font-weight: 600;
  font-style: italic;
  color: rgba(251, 191, 36, 0.8);
}

/* Recording Player */
.lead-details-modal .voice-recording-player {
  margin-top: 12px;
  padding: 12px 14px;
  background: linear-gradient(135deg, rgba(34, 197, 94, 0.06), rgba(16, 185, 129, 0.03));
  border: 1px solid rgba(34, 197, 94, 0.15);
  border-radius: 10px;
}

.lead-details-modal .recording-header {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #4ade80;
  margin-bottom: 10px;
}

.lead-details-modal .recording-header mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.lead-details-modal .voice-audio-player {
  width: 100%;
  height: 36px;
  border-radius: 8px;
  outline: none;
  filter: invert(1) hue-rotate(180deg) brightness(0.8) contrast(1.1);
}

/* Recording Placeholder */
.lead-details-modal .voice-recording-placeholder {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  padding: 10px 14px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px dashed rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  color: rgba(255, 255, 255, 0.35);
  font-size: 11px;
  font-weight: 400;
}

.lead-details-modal .voice-recording-placeholder mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  opacity: 0.5;
}

/* Voice Loading */
.lead-details-modal .voice-loading {
  padding: 12px 0;
}

/* Attribution Touchpoint — Voice AI Source */
.lead-details-modal .tp-source--voice_ai {
  background: rgba(139, 92, 246, 0.12);
  color: #c4b5fd;
  border: 1px solid rgba(139, 92, 246, 0.3);
}

/* ==========================================================================
   UI CONTRACT — ACTIVITY PANEL (Lifecycle Timeline)
   ==========================================================================
   Single source of truth for Activity Panel visuals.
   Used by: Job Card Details, Lead Details, Invoice Details.

   All values use design tokens from tokens.scss.
   No hardcoded colors, spacing, or z-indices.
   ========================================================================== */
/* ═══════════════════════════════════════════════════════════════════
   Panel Container
   ═══════════════════════════════════════════════════════════════════ */
.activity-panel {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  width: 100%;
  height: 100%;
  min-height: 0;
}

.activity-panel .activity-card {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: 0;
  gap: 0;
  background: var(--ui-glass-light);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-xl);
  box-shadow: var(--ui-shadow-md);
  backdrop-filter: var(--ui-blur-sm);
  -webkit-backdrop-filter: var(--ui-blur-sm);
  isolation: isolate;
  overflow: hidden;
}

/* Job Details uses an outer rail wrapper for layout only.
   Keep that wrapper transparent so the shared activity card remains the
   single visible surface and can fill the full rail height. */
.job-details-dialog .job-activity-panel {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  padding: 0 !important;
}

.job-details-dialog .job-activity-panel > app-activity-panel {
  display: flex;
  flex: 1 1 auto;
  width: 100%;
  min-height: 0;
}

.job-details-dialog app-activity-panel .activity-panel {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  min-height: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  overflow: visible;
}

/* ═══════════════════════════════════════════════════════════════════
   Header — Pill Tabs
   ═══════════════════════════════════════════════════════════════════ */
.activity-panel .activity-header {
  display: flex;
  justify-content: center;
  padding: var(--ui-space-3) var(--ui-space-4);
  border-bottom: 1px solid var(--ui-border-light);
  backdrop-filter: var(--ui-blur-md);
  -webkit-backdrop-filter: var(--ui-blur-md);
  flex-shrink: 0;
}

.activity-panel .activity-header .pill-tabs-container {
  display: flex;
  gap: var(--ui-space-1);
  background: var(--ui-surface-1);
  border-radius: var(--ui-radius-full);
  padding: 3px;
  margin-inline: auto;
}

.activity-panel .activity-header .pill-tab-btn {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-4);
  border: none;
  border-radius: var(--ui-radius-full);
  background: transparent;
  color: var(--ui-text-muted);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  cursor: pointer;
  transition: all var(--ui-transition-base);
  flex: 1;
  justify-content: center;
}

.activity-panel .activity-header .pill-tab-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.activity-panel .activity-header .pill-tab-btn.active {
  background: var(--ui-brand);
  color: #ffffff;
  font-weight: var(--ui-font-semibold);
  box-shadow: var(--ui-shadow-sm);
}

.activity-panel .activity-header .pill-tab-btn:not(.active):hover {
  color: var(--ui-text-secondary);
  background: var(--ui-surface-hover);
}

/* ═══════════════════════════════════════════════════════════════════
   Highlights Section
   ═══════════════════════════════════════════════════════════════════ */
.activity-panel .activity-highlights {
  padding: var(--ui-space-3) var(--ui-space-4);
  border-bottom: 1px solid var(--ui-border-light);
  flex-shrink: 0;
}

.activity-panel .highlights-title {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ui-text-subtle);
  margin-bottom: var(--ui-space-2);
}

.activity-panel .highlights-grid {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
}

.activity-panel .highlight-item {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-1) var(--ui-space-3);
  background: var(--ui-surface-2);
  border-radius: var(--ui-radius-sm);
  border: 1px solid var(--ui-border-light);
  flex: 1;
  min-width: 120px;
}

.activity-panel .highlight-item .highlight-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: var(--ui-text-muted);
  flex-shrink: 0;
}

.activity-panel .highlight-content {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.activity-panel .highlight-label {
  font-size: 9px;
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ui-text-subtle);
  line-height: 1;
}

.activity-panel .highlight-value {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.activity-panel .highlight-success .highlight-icon {
  color: var(--ui-success);
}

.activity-panel .highlight-warning .highlight-icon {
  color: var(--ui-warning);
}

.activity-panel .highlight-danger .highlight-icon {
  color: var(--ui-danger);
}

/* ═══════════════════════════════════════════════════════════════════
   Next Actions
   ═══════════════════════════════════════════════════════════════════ */
.activity-panel .activity-next-actions {
  padding: var(--ui-space-2) var(--ui-space-4);
  border-bottom: 1px solid var(--ui-border-light);
  flex-shrink: 0;
}

.activity-panel .next-action-title {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ui-warning);
  margin-bottom: var(--ui-space-1);
}

.activity-panel .next-action-item {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-1) 0;
}

.activity-panel .next-action-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: var(--ui-warning);
}

.activity-panel .next-action-label {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

/* ═══════════════════════════════════════════════════════════════════
   Compose / Input Bar
   ═══════════════════════════════════════════════════════════════════ */
.activity-panel .activity-compose {
  display: flex;
  align-items: flex-end;
  column-gap: var(--ui-space-1);
  row-gap: 0;
  padding: var(--ui-space-3) var(--ui-space-4);
  border-bottom: 1px solid var(--ui-border-light);
  flex-shrink: 0;
  flex-wrap: wrap;
  position: relative;
  z-index: var(--z-modal-dropdown);
}

.activity-panel .compose-preview-strip {
  display: flex;
  gap: var(--ui-space-2);
  width: 100%;
  padding-bottom: var(--ui-space-2);
  overflow-x: auto;
}

.activity-panel .compose-preview-strip--docked {
  padding-bottom: 0;
  margin-bottom: -1px;
}

.activity-panel .compose-preview-strip--docked + .compose-field {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.activity-panel .compose-preview-item {
  position: relative;
  flex-shrink: 0;
}

.activity-panel .compose-recording-banner {
  width: 100%;
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-2) var(--ui-space-3);
  background: var(--ui-danger-bg);
  border: 1px solid color-mix(in srgb, var(--ui-danger) 30%, transparent);
  border-radius: var(--ui-radius-md);
}

.activity-panel .compose-preview-strip--docked .compose-recording-banner {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  border-bottom: none;
}

.activity-panel .compose-recording-copy {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.activity-panel .compose-recording-label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-danger);
}

.activity-panel .compose-recording-timer {
  font-size: 10px;
  color: var(--ui-text-subtle);
  font-family: var(--ui-font-mono);
}

.activity-panel .compose-recording-stop {
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
  margin-left: auto;
  background: none;
  border: none;
  color: var(--ui-danger);
  cursor: pointer;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
}

.activity-panel .compose-recording-stop mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
}

.activity-panel .compose-audio-preview {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-md);
}

.activity-panel .compose-preview-strip--docked .compose-audio-preview {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  border-bottom: none;
}

.activity-panel .compose-audio-header {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.activity-panel .compose-audio-meta {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  min-width: 0;
}

.activity-panel .compose-audio-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: var(--ui-brand);
  flex-shrink: 0;
}

.activity-panel .compose-audio-copy {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.activity-panel .compose-audio-label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.activity-panel .compose-audio-duration {
  font-size: 10px;
  color: var(--ui-text-subtle);
}

.activity-panel .compose-audio-remove {
  width: 24px;
  height: 24px;
  margin-left: auto;
  border-radius: 50%;
  background: none;
  border: none;
  color: var(--ui-text-muted);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: color var(--ui-transition-fast), background var(--ui-transition-fast);
}

.activity-panel .compose-audio-remove:hover:not(:disabled) {
  color: var(--ui-text-primary);
  background: var(--ui-surface-hover);
}

.activity-panel .compose-audio-remove:disabled {
  opacity: 0.4;
  cursor: default;
}

.activity-panel .compose-audio-remove mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.activity-panel .compose-audio-player {
  width: 100%;
  height: 32px;
  border-radius: var(--ui-radius-sm);
}

.activity-panel .compose-preview-thumb {
  width: 48px;
  height: 48px;
  border-radius: var(--ui-radius-sm);
  object-fit: cover;
  border: 1px solid var(--ui-border);
}

.activity-panel .compose-preview-remove {
  position: absolute;
  top: -6px;
  right: -6px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--ui-danger);
  border: none;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
}

.activity-panel .compose-preview-remove mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

.activity-panel .compose-field {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
  flex: 1;
  min-width: 0;
  background: var(--ui-surface-2);
  border-radius: var(--ui-radius-full);
  padding: 2px var(--ui-space-3) 2px var(--ui-space-1);
  border: 1px solid var(--ui-border-light);
  transition: border-color var(--ui-transition-base);
  overflow: visible;
}

.activity-panel .compose-field:focus-within {
  border-color: var(--ui-border-focus);
}

.activity-panel .compose-action-btn {
  background: none;
  border: none;
  color: var(--ui-text-muted);
  cursor: pointer;
  padding: var(--ui-space-1);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color var(--ui-transition-fast);
}

.activity-panel .compose-action-btn:hover {
  color: var(--ui-text-secondary);
  background: var(--ui-surface-hover);
}

.activity-panel .compose-action-btn:disabled {
  opacity: 0.35;
  cursor: default;
}

.activity-panel .compose-action-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.activity-panel .compose-expand-btn mat-icon {
  transition: transform 180ms ease;
}

.activity-panel .compose-expand-btn.is-expanded mat-icon {
  transform: rotate(45deg);
}

.activity-panel .compose-input {
  position: relative;
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  color: var(--ui-text-primary);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
  min-width: 0;
  padding: var(--ui-space-2) 0;
  /* Contenteditable: allow wrapping + constrain height */
  white-space: pre-wrap;
  word-wrap: break-word;
  overflow-wrap: break-word;
  max-height: 80px;
  overflow-y: auto;
  line-height: 1.4;
  cursor: text;
}

/* Placeholder via data-attribute (contenteditable has no ::placeholder) */
.activity-panel .compose-input.is-empty:before {
  content: attr(data-placeholder);
  color: var(--ui-text-subtle);
  pointer-events: none;
  position: absolute;
}

/* ── Mention Token (inline colored chip) ── */
.activity-panel .compose-input .mention-token {
  display: inline;
  padding: 1px 5px;
  margin: 0 1px;
  border-radius: var(--ui-radius-sm);
  background: color-mix(in srgb, var(--ui-brand) 18%, transparent);
  color: var(--ui-brand);
  font-weight: var(--ui-font-semibold);
  font-size: inherit;
  -webkit-user-select: all;
          user-select: all; /* Select entire token on click */
  cursor: default;
}

/* Timeline mention tag (rendered messages) — keep existing */
.activity-panel .compose-hint {
  font-size: 10px;
  color: var(--ui-text-subtle);
  white-space: nowrap;
}

.activity-panel .compose-send {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--ui-brand);
  border: none;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  transition: opacity var(--ui-transition-fast), transform var(--ui-transition-fast);
}

.activity-panel .compose-send:disabled {
  opacity: 0.3;
  cursor: default;
}

.activity-panel .compose-send:not(:disabled):hover {
  transform: scale(1.05);
}

.activity-panel .compose-send mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.activity-panel .ui-none {
  display: none;
}

/* ═══════════════════════════════════════════════════════════════════
   Recording Indicator
   ═══════════════════════════════════════════════════════════════════ */
.activity-panel .activity-recording {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
  border-bottom: 1px solid var(--ui-border-light);
  flex-shrink: 0;
  background: var(--ui-danger-bg);
}

.activity-panel .recording-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--ui-danger);
  animation: recordPulse 1s ease-in-out infinite;
}

@keyframes recordPulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.3;
  }
}
.activity-panel .recording-timer {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-danger);
  font-family: var(--ui-font-mono);
}

.activity-panel .recording-stop {
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
  background: none;
  border: none;
  color: var(--ui-danger);
  cursor: pointer;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  margin-left: auto;
}

.activity-panel .recording-stop mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
}

/* ═══════════════════════════════════════════════════════════════════
   Toolbar (Task + Log Toggle)
   ═══════════════════════════════════════════════════════════════════ */
.activity-panel .activity-toolbar {
  padding: var(--ui-space-1) var(--ui-space-4);
  flex-shrink: 0;
  display: flex;
  justify-content: flex-start;
  gap: var(--ui-space-2);
}

.activity-panel .toolbar-btn {
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
  background: none;
  border: none;
  color: var(--ui-text-subtle);
  font-size: 10px;
  font-weight: var(--ui-font-medium);
  cursor: pointer;
  padding: var(--ui-space-1) var(--ui-space-2);
  border-radius: var(--ui-radius-sm);
  transition: color var(--ui-transition-fast), background var(--ui-transition-fast);
  position: relative;
}

.activity-panel .toolbar-btn:hover {
  color: var(--ui-text-muted);
  background: var(--ui-surface-hover);
}

.activity-panel .toolbar-btn mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

.activity-panel .toolbar-btn.task-btn {
  color: var(--ui-brand);
}

.activity-panel .toolbar-btn.task-btn:hover {
  background: color-mix(in srgb, var(--ui-brand) 10%, transparent);
}

.activity-panel .task-count-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 14px;
  height: 14px;
  padding: 0 4px;
  border-radius: 7px;
  background: var(--ui-brand);
  color: #fff;
  font-size: 9px;
  font-weight: var(--ui-font-bold);
  line-height: 1;
}

/* Legacy log-toggle class kept for backward compatibility */
.activity-panel .activity-log-toggle {
  padding: 0 var(--ui-space-4) var(--ui-space-1);
  flex-shrink: 0;
  display: flex;
  justify-content: flex-end;
}

.activity-panel .log-toggle-btn {
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
  background: none;
  border: none;
  color: var(--ui-text-subtle);
  font-size: 10px;
  font-weight: var(--ui-font-medium);
  cursor: pointer;
  padding: var(--ui-space-1) var(--ui-space-2);
  border-radius: var(--ui-radius-sm);
  transition: color var(--ui-transition-fast), background var(--ui-transition-fast);
}

.activity-panel .log-toggle-btn:hover {
  color: var(--ui-text-muted);
  background: var(--ui-surface-hover);
}

.activity-panel .log-toggle-btn mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

/* ═══════════════════════════════════════════════════════════════════
   Create Task Form
   ═══════════════════════════════════════════════════════════════════ */
.activity-panel .create-task-form {
  padding: var(--ui-space-3) var(--ui-space-4);
  border-bottom: 1px solid var(--ui-border-light);
  flex-shrink: 0;
  background: color-mix(in srgb, var(--ui-brand) 4%, transparent);
  animation: taskFormSlide 0.2s ease-out;
}

@keyframes taskFormSlide {
  from {
    opacity: 0;
    max-height: 0;
  }
  to {
    opacity: 1;
    max-height: 300px;
  }
}
.activity-panel .task-form-header {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  margin-bottom: var(--ui-space-3);
}

.activity-panel .task-form-header mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: var(--ui-brand);
}

.activity-panel .task-title-input {
  width: 100%;
  padding: var(--ui-space-2) var(--ui-space-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface-1);
  color: var(--ui-text-primary);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
  outline: none;
  transition: border-color var(--ui-transition-fast);
}

.activity-panel .task-title-input:focus {
  border-color: var(--ui-brand);
}

.activity-panel .task-title-input::placeholder {
  color: var(--ui-text-subtle);
}

.activity-panel .task-form-row {
  display: flex;
  gap: var(--ui-space-2);
  margin-top: var(--ui-space-2);
}

.activity-panel .task-form-field {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.activity-panel .task-form-field label {
  font-size: 9px;
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ui-text-subtle);
}

.activity-panel .task-form-field--half {
  flex: 2;
}

.activity-panel .task-form-field--quarter {
  flex: 1;
}

.activity-panel .task-field-input,
.activity-panel .task-field-select {
  padding: var(--ui-space-1) var(--ui-space-2);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface-1);
  color: var(--ui-text-primary);
  font-family: var(--ui-font-primary);
  font-size: 11px;
  outline: none;
  transition: border-color var(--ui-transition-fast);
}

.activity-panel .task-field-input:focus,
.activity-panel .task-field-select:focus {
  border-color: var(--ui-brand);
}

/* ── Task Assignee Picker ── */
.activity-panel .task-assignee-picker {
  position: relative;
}

.activity-panel .task-assignee-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 20;
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
  max-height: 160px;
  overflow-y: auto;
  margin-top: 2px;
}

.activity-panel .task-assignee-option {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  cursor: pointer;
  transition: background 0.1s ease;
}

.activity-panel .task-assignee-option:hover {
  background: color-mix(in srgb, var(--ui-brand) 10%, transparent);
}

.activity-panel .task-assignee-avatar {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--ui-brand);
  color: #fff;
  font-size: 10px;
  font-weight: var(--ui-font-bold);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.activity-panel .task-assignee-name {
  font-size: 12px;
  color: var(--ui-text-primary);
  flex: 1;
}

.activity-panel .task-assignee-dept {
  font-size: 9px;
  padding: 1px 6px;
  border-radius: var(--ui-radius-full);
  background: color-mix(in srgb, var(--ui-brand) 10%, transparent);
  color: var(--ui-brand);
}

.activity-panel .task-submit-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-1);
  width: 100%;
  margin-top: var(--ui-space-3);
  padding: var(--ui-space-2) var(--ui-space-4);
  border: none;
  border-radius: var(--ui-radius-sm);
  background: var(--ui-brand);
  color: #ffffff;
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: opacity var(--ui-transition-fast), transform var(--ui-transition-fast);
}

.activity-panel .task-submit-btn:not(:disabled):hover {
  transform: translateY(-1px);
}

.activity-panel .task-submit-btn:disabled {
  opacity: 0.4;
  cursor: default;
}

.activity-panel .task-submit-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

/* ═══════════════════════════════════════════════════════════════════
   Entity Task List
   ═══════════════════════════════════════════════════════════════════ */
.activity-panel .entity-tasks {
  padding: var(--ui-space-2) var(--ui-space-4) var(--ui-space-3);
  border-bottom: 1px solid var(--ui-border-light);
  flex-shrink: 0;
}

.activity-panel .tasks-header {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ui-text-subtle);
  margin-bottom: var(--ui-space-2);
}

.activity-panel .tasks-header mat-icon {
  font-size: 13px;
  width: 13px;
  height: 13px;
  color: var(--ui-brand);
}

.activity-panel .tasks-summary {
  margin-left: auto;
  font-size: 10px;
  font-weight: var(--ui-font-medium);
  text-transform: none;
  letter-spacing: normal;
  color: var(--ui-text-muted);
}

.activity-panel .task-card {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border-light);
  margin-bottom: var(--ui-space-1);
  transition: border-color var(--ui-transition-fast), background var(--ui-transition-fast);
  animation: taskCardIn 0.2s ease-out;
}

@keyframes taskCardIn {
  from {
    opacity: 0;
    transform: translateX(-4px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.activity-panel .task-card:last-child {
  margin-bottom: 0;
}

.activity-panel .task-card:hover {
  border-color: var(--ui-border);
}

.activity-panel .task-card.task-done {
  opacity: 0.55;
}

.activity-panel .task-card.task-overdue {
  border-left: 3px solid var(--ui-danger);
}

.activity-panel .task-status-btn {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: none;
  border: 1.5px solid var(--ui-border);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  margin-top: 1px;
  transition: all var(--ui-transition-fast);
}

.activity-panel .task-status-btn mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.activity-panel .task-status-btn.status-open {
  border-color: var(--ui-text-muted);
  color: var(--ui-text-muted);
}

.activity-panel .task-status-btn.status-open:hover {
  border-color: var(--ui-brand);
  color: var(--ui-brand);
  background: color-mix(in srgb, var(--ui-brand) 10%, transparent);
}

.activity-panel .task-status-btn.status-progress {
  border-color: var(--ui-warning);
  color: var(--ui-warning);
  background: color-mix(in srgb, var(--ui-warning) 10%, transparent);
}

.activity-panel .task-status-btn.status-progress:hover {
  border-color: var(--ui-success);
  color: var(--ui-success);
  background: color-mix(in srgb, var(--ui-success) 10%, transparent);
}

.activity-panel .task-status-btn.status-done {
  border-color: var(--ui-success);
  color: var(--ui-success);
  background: color-mix(in srgb, var(--ui-success) 10%, transparent);
  cursor: default;
}

.activity-panel .task-card-body {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1;
}

.activity-panel .task-card-title {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-primary);
  line-height: 1.3;
  word-break: break-word;
}

.activity-panel .task-title-done {
  text-decoration: line-through;
  color: var(--ui-text-muted);
}

.activity-panel .task-card-meta {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.activity-panel .task-priority-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
}

.activity-panel .task-priority-dot.priority-high {
  background: var(--ui-danger);
}

.activity-panel .task-priority-dot.priority-normal {
  background: var(--ui-warning);
}

.activity-panel .task-priority-dot.priority-low {
  background: var(--ui-success);
}

.activity-panel .task-meta-text {
  font-size: 10px;
  color: var(--ui-text-subtle);
}

/* ═══════════════════════════════════════════════════════════════════
   Task Event Dot (Timeline)
   ═══════════════════════════════════════════════════════════════════ */
.activity-panel .event-dot.dot-task {
  background: color-mix(in srgb, var(--ui-brand) 15%, transparent);
  border: 1px solid color-mix(in srgb, var(--ui-brand) 30%, transparent);
}

.activity-panel .dot-task .event-dot-icon {
  color: var(--ui-brand);
}

/* ═══════════════════════════════════════════════════════════════════
   Timeline Feed
   ═══════════════════════════════════════════════════════════════════ */
.activity-panel .activity-feed {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  padding: 0 var(--ui-space-4) var(--ui-space-4);
  scroll-behavior: smooth;
}

.activity-panel .activity-feed::-webkit-scrollbar {
  width: 4px;
}

.activity-panel .activity-feed::-webkit-scrollbar-thumb {
  background: var(--ui-surface-3);
  border-radius: 2px;
}

/* ═══════════════════════════════════════════════════════════════════
   Timeline Group Labels
   ═══════════════════════════════════════════════════════════════════ */
.activity-panel .timeline-group-label {
  font-size: 10px;
  font-weight: var(--ui-font-bold);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ui-text-subtle);
  padding: var(--ui-space-3) 0 var(--ui-space-2);
  border-bottom: 1px solid var(--ui-border-light);
  margin-bottom: var(--ui-space-2);
}

.activity-panel .activity-feed > .timeline-group:first-child .timeline-group-label {
  padding-top: var(--ui-space-1);
}

/* ═══════════════════════════════════════════════════════════════════
   Timeline Event — Base Layout
   ═══════════════════════════════════════════════════════════════════ */
.activity-panel .timeline-event {
  display: flex;
  gap: var(--ui-space-3);
  padding: var(--ui-space-2) 0;
  position: relative;
  animation: eventSlideIn 0.2s ease-out;
}

@keyframes eventSlideIn {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* Timeline connector line */
.activity-panel .timeline-event::before {
  content: "";
  position: absolute;
  left: 14px;
  top: 34px;
  bottom: -8px;
  width: 1px;
  background: var(--ui-border-light);
}

.activity-panel .timeline-event:last-child::before {
  display: none;
}

/* ═══════════════════════════════════════════════════════════════════
   Event Dot (System Events)
   ═══════════════════════════════════════════════════════════════════ */
.activity-panel .event-dot {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--ui-surface-3);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  z-index: var(--z-base);
}

.activity-panel .event-dot.dot-success {
  background: var(--ui-success-bg);
}

.activity-panel .event-dot.dot-danger {
  background: var(--ui-danger-bg);
}

.activity-panel .event-dot.dot-action {
  background: var(--ui-info-bg);
}

.activity-panel .event-dot-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: var(--ui-text-muted);
}

.activity-panel .dot-success .event-dot-icon {
  color: var(--ui-success);
}

.activity-panel .dot-danger .event-dot-icon {
  color: var(--ui-danger);
}

.activity-panel .dot-action .event-dot-icon {
  color: var(--ui-info);
}

/* ═══════════════════════════════════════════════════════════════════
   Event Avatar (User Messages)
   ═══════════════════════════════════════════════════════════════════ */
.activity-panel .event-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--ui-brand);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: var(--ui-font-bold);
  flex-shrink: 0;
  z-index: var(--z-base);
  position: relative;
  overflow: hidden;
}
.activity-panel .event-avatar.has-photo {
  background: transparent;
}

.activity-panel .event-avatar-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}

.activity-panel .event-avatar-initials {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  font-size: 10px;
  font-weight: var(--ui-font-bold);
  background: var(--ui-brand);
  color: #ffffff;
  border-radius: 50%;
}

/* ═══════════════════════════════════════════════════════════════════
   Event Body — Shared
   ═══════════════════════════════════════════════════════════════════ */
.activity-panel .event-body {
  flex: 1;
  min-width: 0;
}

.activity-panel .event-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-2);
  margin-bottom: 2px;
}

.activity-panel .event-time {
  font-size: 10px;
  color: var(--ui-text-subtle);
  white-space: nowrap;
  flex-shrink: 0;
}

/* ═══════════════════════════════════════════════════════════════════
   System Event Body
   ═══════════════════════════════════════════════════════════════════ */
.activity-panel .system-body .event-label {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
}

.activity-panel .system-body .event-detail {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-subtle);
  margin-top: 2px;
}

.activity-panel .event-amount {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-bold);
  color: var(--ui-success);
  margin-top: var(--ui-space-1);
}

.activity-panel .payment-mode {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-normal);
  color: var(--ui-text-muted);
  margin-left: var(--ui-space-1);
}

/* ═══════════════════════════════════════════════════════════════════
   User Message Body
   ═══════════════════════════════════════════════════════════════════ */
.activity-panel .user-body {
  background: var(--ui-surface-2);
  border-radius: var(--ui-radius-sm);
  padding: var(--ui-space-2) var(--ui-space-3);
  border: 1px solid var(--ui-border-light);
}

.activity-panel .event-author {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.activity-panel .event-text {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  line-height: 1.5;
  word-break: break-word;
}

.activity-panel .event-edited {
  font-size: 10px;
  color: var(--ui-text-subtle);
  font-style: italic;
}

/* ═══════════════════════════════════════════════════════════════════
   Media Message
   ═══════════════════════════════════════════════════════════════════ */
.activity-panel .media-body {
  background: var(--ui-surface-2);
  border-radius: var(--ui-radius-sm);
  padding: var(--ui-space-2) var(--ui-space-3);
  border: 1px solid var(--ui-border-light);
}

.activity-panel .media-grid {
  display: grid;
  gap: var(--ui-space-1);
  margin-top: var(--ui-space-2);
  max-width: 200px; /* compact — never stretch full panel width */
}

.activity-panel .media-grid.grid-1 {
  grid-template-columns: 1fr;
}

.activity-panel .media-grid.grid-2 {
  grid-template-columns: 1fr 1fr;
}

.activity-panel .media-grid.grid-multi {
  grid-template-columns: 1fr 1fr;
}

.activity-panel .media-thumb {
  width: 100%;
  aspect-ratio: 1;
  max-height: 100px;
  object-fit: cover;
  border-radius: var(--ui-radius-sm);
  cursor: pointer;
  transition: transform var(--ui-transition-fast), opacity var(--ui-transition-fast);
}

.activity-panel .media-grid.grid-1 .media-thumb {
  aspect-ratio: 16/9;
  max-height: 140px;
}

.activity-panel .media-thumb:hover {
  transform: scale(1.02);
  opacity: 0.92;
}

.activity-panel .media-more {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--ui-surface-3);
  border-radius: var(--ui-radius-sm);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-bold);
}

/* ═══════════════════════════════════════════════════════════════════
   Audio Message
   ═══════════════════════════════════════════════════════════════════ */
.activity-panel .audio-body {
  background: var(--ui-surface-2);
  border-radius: var(--ui-radius-sm);
  padding: var(--ui-space-2) var(--ui-space-3);
  border: 1px solid var(--ui-border-light);
}

.activity-panel .audio-element {
  width: 100%;
  height: 32px;
  margin-top: var(--ui-space-1);
  border-radius: var(--ui-radius-sm);
}

/* ═══════════════════════════════════════════════════════════════════
   Action Message
   ═══════════════════════════════════════════════════════════════════ */
.activity-panel .action-body .event-label {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-info);
}

.activity-panel .action-body .event-detail {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  margin-top: 2px;
}

/* ═══════════════════════════════════════════════════════════════════
   Payment Event Accent
   ═══════════════════════════════════════════════════════════════════ */
.activity-panel .timeline-event.is-payment .event-dot {
  background: var(--ui-success-bg);
  border: 1px solid var(--ui-success-border);
}

/* ═══════════════════════════════════════════════════════════════════
   States: Empty, Loading, Error
   ═══════════════════════════════════════════════════════════════════ */
.activity-panel .activity-empty {
  display: flex;
  flex: 1 1 auto;
  min-height: 220px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--ui-space-12) var(--ui-space-4);
  color: var(--ui-text-subtle);
  text-align: center;
}

.activity-panel .activity-empty mat-icon {
  font-size: 40px;
  width: 40px;
  height: 40px;
  margin-bottom: var(--ui-space-3);
  opacity: 0.4;
}

.activity-panel .activity-empty p {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-medium);
  margin: 0 0 var(--ui-space-1);
  color: var(--ui-text-muted);
}

.activity-panel .activity-empty span {
  font-size: var(--ui-text-sm);
}

.activity-panel .activity-error {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: var(--ui-space-10);
  color: var(--ui-danger);
  text-align: center;
}

.activity-panel .activity-error mat-icon {
  font-size: 32px;
  width: 32px;
  height: 32px;
  margin-bottom: var(--ui-space-2);
}

.activity-panel .retry-btn {
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
  background: var(--ui-surface-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-full);
  color: var(--ui-text-secondary);
  padding: var(--ui-space-2) var(--ui-space-4);
  cursor: pointer;
  font-size: var(--ui-text-sm);
  margin-top: var(--ui-space-3);
  transition: background var(--ui-transition-fast);
}

.activity-panel .retry-btn:hover {
  background: var(--ui-surface-hover);
}

.activity-panel .retry-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

/* ════ Skeleton Loader ════ */
.activity-panel .activity-skeleton {
  padding: var(--ui-space-3) 0;
}

.activity-panel .skeleton-card {
  display: flex;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) 0;
}

.activity-panel .skeleton-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--ui-surface-3);
  flex-shrink: 0;
  animation: skeletonPulse 1.5s ease-in-out infinite;
}

.activity-panel .skeleton-lines {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.activity-panel .skeleton-line {
  height: 10px;
  border-radius: 4px;
  background: var(--ui-surface-3);
  animation: skeletonPulse 1.5s ease-in-out infinite;
}

.activity-panel .skeleton-line.short {
  width: 40%;
}

.activity-panel .skeleton-line.long {
  width: 80%;
}

@keyframes skeletonPulse {
  0%, 100% {
    opacity: 0.4;
  }
  50% {
    opacity: 0.8;
  }
}
/* ════ Load More ════ */
.activity-panel .load-more-indicator {
  display: flex;
  justify-content: center;
  padding: var(--ui-space-4);
}

.activity-panel .load-more-spinner {
  width: 24px;
  height: 24px;
  border: 2px solid var(--ui-surface-3);
  border-top-color: var(--ui-brand);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
/* ════ WhatsApp Placeholder ════ */
.activity-panel .whatsapp-placeholder {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
}

/* ═══════════════════════════════════════════════════════════════════
   @Mention Dropdown — Typeahead Suggestions
   ═══════════════════════════════════════════════════════════════════ */
.activity-panel .mention-dropdown {
  position: absolute;
  left: 0;
  top: calc(100% + var(--ui-space-2));
  bottom: auto;
  width: min(420px, 100%);
  margin: 0;
  background: var(--ui-glass-dropdown-surface);
  background-color: var(--ui-glass-dropdown-surface-solid);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  box-shadow: var(--ui-glass-dropdown-shadow);
  backdrop-filter: var(--ui-glass-dropdown-blur);
  -webkit-backdrop-filter: var(--ui-glass-dropdown-blur);
  max-height: 200px;
  overflow-y: auto;
  z-index: var(--z-modal-dropdown);
  animation: mentionSlideIn 0.15s ease-out;
}

@keyframes mentionSlideIn {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.activity-panel .mention-dropdown::-webkit-scrollbar {
  width: 3px;
}

.activity-panel .mention-dropdown::-webkit-scrollbar-thumb {
  background: var(--ui-surface-3);
  border-radius: 2px;
}

.activity-panel .mention-item {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-2) var(--ui-space-3);
  cursor: pointer;
  transition: background var(--ui-transition-fast);
}

.activity-panel .mention-item:hover {
  background: var(--ui-surface-hover);
}

.activity-panel .mention-item:not(:last-child) {
  border-bottom: 1px solid var(--ui-border-light);
}

.activity-panel .mention-item-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--ui-brand);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: var(--ui-font-bold);
  flex-shrink: 0;
  text-transform: uppercase;
}

.activity-panel .mention-item-info {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1;
}

.activity-panel .mention-item-name {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.activity-panel .mention-item-role {
  font-size: 10px;
  color: var(--ui-text-subtle);
  text-transform: capitalize;
}

.activity-panel .mention-item-dept {
  font-size: 10px;
  font-weight: var(--ui-font-medium);
  /* color + background set dynamically via [style] binding (getDeptColor) */
  padding: 2px 8px;
  border-radius: 10px;
  white-space: nowrap;
  flex-shrink: 0;
  text-transform: capitalize;
  letter-spacing: 0.02em;
}

/* ═══════════════════════════════════════════════════════════════════
   @Mention Tag — Highlighted mention in message content
   ═══════════════════════════════════════════════════════════════════ */
.mention-tag {
  color: var(--ui-brand);
  font-weight: var(--ui-font-semibold);
  background: color-mix(in srgb, var(--ui-brand) 10%, transparent);
  padding: 1px 4px;
  border-radius: 3px;
  cursor: default;
  white-space: nowrap;
}

/* ═══════════════════════════════════════════════════════════════════
   @Mention — Current User Highlight (YOU were mentioned)
   ═══════════════════════════════════════════════════════════════════ */
.activity-panel .timeline-event.is-mentioned {
  background: color-mix(in srgb, var(--ui-brand) 5%, transparent);
  border-radius: var(--ui-radius-sm);
  padding-left: var(--ui-space-2);
  padding-right: var(--ui-space-2);
  margin-left: calc(-1 * var(--ui-space-2));
  margin-right: calc(-1 * var(--ui-space-2));
  border-left: 3px solid var(--ui-brand);
}

/* ═══════════════════════════════════════════════════════════════════
   TASK ACTION BAR — Inline Execution Controls in Timeline
   ═══════════════════════════════════════════════════════════════════
   Renders inside task.created SYSTEM_EVENTs to allow status updates
   without leaving the timeline. Follows the "Activity = Context,
   Tasks = Execution" principle.
   ═══════════════════════════════════════════════════════════════════ */
.activity-panel .task-action-bar {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin-top: var(--ui-space-2);
  padding-top: var(--ui-space-2);
  border-top: 1px solid var(--ui-border-light);
}

/* Priority Pill (inside action bar) */
.activity-panel .task-priority-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 8px;
  border-radius: var(--ui-radius-full);
  font-size: 9px;
  font-weight: var(--ui-font-bold);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1;
}

.activity-panel .task-priority-pill.priority-high {
  background: color-mix(in srgb, var(--ui-danger) 12%, transparent);
  color: var(--ui-danger);
  border: 1px solid color-mix(in srgb, var(--ui-danger) 20%, transparent);
}

.activity-panel .task-priority-pill.priority-normal {
  background: color-mix(in srgb, var(--ui-warning) 10%, transparent);
  color: var(--ui-warning);
  border: 1px solid color-mix(in srgb, var(--ui-warning) 18%, transparent);
}

.activity-panel .task-priority-pill.priority-low {
  background: color-mix(in srgb, var(--ui-success) 10%, transparent);
  color: var(--ui-success);
  border: 1px solid color-mix(in srgb, var(--ui-success) 18%, transparent);
}

/* Inline Task Buttons */
.activity-panel .task-inline-btn {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 3px 10px;
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-2);
  color: var(--ui-text-muted);
  font-size: 11px;
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: all 0.15s ease;
  font-family: var(--ui-font-primary);
}

.activity-panel .task-inline-btn mat-icon {
  font-size: 13px;
  width: 13px;
  height: 13px;
}

/* Start Button */
.activity-panel .task-start-btn:hover {
  border-color: var(--ui-brand);
  color: var(--ui-brand);
  background: color-mix(in srgb, var(--ui-brand) 8%, transparent);
}

/* Done Button */
.activity-panel .task-done-btn:hover {
  border-color: var(--ui-success);
  color: var(--ui-success);
  background: color-mix(in srgb, var(--ui-success) 8%, transparent);
}

/* Task event visual accent — make task events stand out */
.activity-panel .timeline-event.is-system .task-action-bar {
  animation: taskActionFadeIn 0.3s ease backwards;
}

@keyframes taskActionFadeIn {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.cdk-overlay-pane.psf-detail-dialog-panel {
  background: transparent !important;
}

.psf-detail-dialog {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  color: var(--ui-text-primary);
}

.psf-detail-dialog .glass-modal-header {
  align-items: flex-start;
  padding: var(--ui-space-4) var(--ui-space-5);
}

.psf-detail-dialog .ui-modal__header-actions {
  flex-wrap: wrap;
}

.psf-detail-dialog__title-copy {
  min-width: 0;
}

.psf-detail-dialog__subtitle {
  margin: 6px 0 0;
  font-size: var(--ui-text-sm);
  line-height: 1.5;
  color: var(--ui-text-muted);
}

.psf-detail-dialog .ui-modal__meta {
  margin-top: var(--ui-space-3);
}

.psf-detail-dialog .ui-modal__meta-pill,
.psf-detail-dialog .ui-modal__badge,
.psf-detail-dialog .glass-modal-container .modal-badge,
.glass-modal-container .psf-detail-dialog .modal-badge {
  max-width: 100%;
}

.psf-detail-dialog .ui-modal__meta-pill {
  overflow-wrap: anywhere;
}

.psf-detail-dialog__status-badge {
  border: 1px solid transparent;
}

.psf-detail-dialog__status-badge mat-icon {
  width: 13px;
  height: 13px;
  font-size: 13px;
}

.psf-detail-dialog__status-badge--success {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.psf-detail-dialog__status-badge--warning {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.psf-detail-dialog__status-badge--danger {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
}

.psf-detail-dialog__status-badge--neutral {
  background: var(--ui-surface-2);
  border-color: var(--ui-border);
  color: var(--ui-text-secondary);
}

.psf-detail-dialog .glass-modal-body {
  padding: var(--ui-space-5);
}

.psf-detail-dialog__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: var(--ui-space-5);
  flex: 1 1 auto;
  min-height: 0;
}

.psf-detail-dialog__main {
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
  overflow-y: auto;
  padding-right: 4px;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 120, 79, 0.28) transparent;
}

.psf-detail-dialog__main::-webkit-scrollbar {
  width: 8px;
}

.psf-detail-dialog__main::-webkit-scrollbar-track {
  background: transparent;
}

.psf-detail-dialog__main::-webkit-scrollbar-thumb {
  background: rgba(255, 120, 79, 0.28);
  border-radius: var(--ui-radius-full);
}

.psf-detail-dialog__hero,
.psf-detail-dialog__card {
  padding: var(--ui-space-5);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.015)), rgba(11, 11, 11, 0.08);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-2xl);
  box-shadow: var(--ui-shadow-md);
}

.psf-detail-dialog__section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  margin-bottom: var(--ui-space-4);
}

.psf-detail-dialog__section-title {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  min-width: 0;
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.psf-detail-dialog__section-title mat-icon {
  width: 18px;
  height: 18px;
  font-size: 18px;
  color: var(--ui-brand-light);
}

.psf-detail-dialog__card-actions {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.psf-detail-dialog__hero-top {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(240px, 0.8fr);
  gap: var(--ui-space-5);
  align-items: stretch;
}

.psf-detail-dialog__question {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.psf-detail-dialog__question-text {
  margin: 0;
  font-size: var(--ui-text-base);
  line-height: 1.7;
  color: var(--ui-text-secondary);
}

.psf-detail-dialog__question-text--muted {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.psf-detail-dialog__score-panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--ui-space-4);
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-xl);
  border: 1px solid rgba(255, 120, 79, 0.16);
  background: radial-gradient(circle at top left, rgba(255, 120, 79, 0.16), transparent 60%), rgba(255, 255, 255, 0.03);
}

.psf-detail-dialog__score-ring {
  display: grid;
  place-items: center;
  width: 118px;
  height: 118px;
  border-radius: 50%;
  border: 2px solid var(--ui-border-hover);
  background: rgba(255, 255, 255, 0.02);
  box-shadow: inset 0 0 0 8px rgba(255, 255, 255, 0.02);
}

.psf-detail-dialog__score-ring.nps-promoter {
  border-color: var(--ui-success-border);
  box-shadow: inset 0 0 0 8px rgba(74, 222, 128, 0.08), 0 0 24px rgba(74, 222, 128, 0.12);
}

.psf-detail-dialog__score-ring.nps-passive {
  border-color: var(--ui-warning-border);
  box-shadow: inset 0 0 0 8px rgba(251, 191, 36, 0.08), 0 0 24px rgba(251, 191, 36, 0.1);
}

.psf-detail-dialog__score-ring.nps-detractor {
  border-color: var(--ui-danger-border);
  box-shadow: inset 0 0 0 8px rgba(248, 113, 113, 0.08), 0 0 24px rgba(248, 113, 113, 0.1);
}

.psf-detail-dialog__score-value {
  font-size: clamp(30px, 3vw, 42px);
  font-weight: 700;
  line-height: 1;
  color: var(--ui-text-primary);
}

.psf-detail-dialog__score-scale {
  margin-top: 4px;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-muted);
}

.psf-detail-dialog__score-copy {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.psf-detail-dialog__feedback-badge {
  width: fit-content;
  border: 1px solid transparent;
}

.psf-detail-dialog__feedback-badge.nps-promoter {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.psf-detail-dialog__feedback-badge.nps-passive {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.psf-detail-dialog__feedback-badge.nps-detractor {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
}

.psf-detail-dialog__pending-state {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
}

.psf-detail-dialog__pending-state mat-icon {
  width: 24px;
  height: 24px;
  font-size: 24px;
  color: var(--ui-warning);
}

.psf-detail-dialog__pending-title {
  margin: 0 0 2px;
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.psf-detail-dialog__hero-footer {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--ui-space-4);
  margin-top: var(--ui-space-5);
  padding-top: var(--ui-space-4);
  border-top: 1px solid var(--ui-border-light);
}

.psf-detail-dialog__feedback-notes {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  min-width: 0;
}

.psf-detail-dialog__feedback-note {
  margin: 0;
  font-size: var(--ui-text-sm);
  line-height: 1.6;
  color: var(--ui-text-secondary);
}

.psf-detail-dialog__supporting-copy {
  margin: 0;
  font-size: var(--ui-text-sm);
  line-height: 1.55;
  color: var(--ui-text-muted);
}

.psf-detail-dialog__hero-actions {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-shrink: 0;
}

.psf-detail-dialog__cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-4);
}

.psf-detail-dialog__field-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-4);
}

.psf-detail-dialog__field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.psf-detail-dialog__field--wide {
  grid-column: 1/-1;
}

.psf-detail-dialog__field-label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ui-text-subtle);
}

.psf-detail-dialog__field-value {
  font-size: var(--ui-text-base);
  line-height: 1.55;
  color: var(--ui-text-secondary);
  overflow-wrap: anywhere;
}

.psf-detail-dialog__field-value--strong {
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-semibold);
}

.psf-detail-dialog__field-value--mono {
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-sm);
}

.psf-detail-dialog__rail {
  min-height: 0;
}

.psf-detail-dialog__rail .activity-card {
  height: 100%;
}

.psf-detail-dialog__rail .activity-card-v2 {
  display: flex;
  flex-direction: column;
  min-height: 0;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.025), rgba(255, 255, 255, 0.01)), rgba(10, 10, 10, 0.12);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-2xl);
  overflow: hidden;
}

.psf-detail-dialog__rail .activity-header-v2 {
  padding: var(--ui-space-4);
  border-bottom: 1px solid var(--ui-border-light);
}

.psf-detail-dialog__rail .activity-header-v2 .pill-tabs-container {
  width: 100%;
}

.psf-detail-dialog__rail .activity-header-v2 .pill-tab-btn {
  flex: 1 1 0;
  justify-content: center;
}

.psf-detail-dialog__rail .activity-header-v2 .pill-tab-btn i {
  flex-shrink: 0;
}

.psf-detail-dialog__rail .unread-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 6px;
  border-radius: var(--ui-radius-full);
  background: var(--ui-danger-bg);
  color: var(--ui-danger);
  font-size: 10px;
  font-weight: var(--ui-font-semibold);
}

.psf-detail-dialog__rail .activity-compose-v2 {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-4);
  border-bottom: 1px solid var(--ui-border-light);
}

.psf-detail-dialog__rail .compose-field-v2 {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex: 1 1 auto;
  min-width: 0;
  padding: 0 var(--ui-space-3);
  min-height: 44px;
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
}

.psf-detail-dialog__rail .compose-field-v2 mat-icon {
  width: 16px;
  height: 16px;
  font-size: 16px;
  color: var(--ui-text-muted);
}

.psf-detail-dialog__rail .compose-input-v2 {
  flex: 1 1 auto;
  min-width: 0;
  background: transparent;
  border: 0;
  color: var(--ui-text-primary);
  font: inherit;
  outline: none;
}

.psf-detail-dialog__rail .compose-input-v2::placeholder {
  color: var(--ui-text-subtle);
}

.psf-detail-dialog__rail .enter-hint {
  flex-shrink: 0;
  font-size: var(--ui-text-xs);
  color: var(--ui-text-subtle);
}

.psf-detail-dialog__rail .compose-send-v2 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 50%;
  background: var(--ui-brand-gradient);
  color: #fff;
  box-shadow: 0 4px 16px rgba(233, 68, 36, 0.28);
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.psf-detail-dialog__rail .compose-send-v2:hover:not(:disabled) {
  transform: translateY(-1px);
}

.psf-detail-dialog__rail .compose-send-v2:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  box-shadow: none;
}

.psf-detail-dialog__rail .activity-feed-v2,
.psf-detail-dialog__rail .whatsapp-messages-inline {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: var(--ui-space-4);
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 120, 79, 0.24) transparent;
}

.psf-detail-dialog__rail .activity-feed-v2::-webkit-scrollbar,
.psf-detail-dialog__rail .whatsapp-messages-inline::-webkit-scrollbar {
  width: 8px;
}

.psf-detail-dialog__rail .activity-feed-v2::-webkit-scrollbar-thumb,
.psf-detail-dialog__rail .whatsapp-messages-inline::-webkit-scrollbar-thumb {
  background: rgba(255, 120, 79, 0.24);
  border-radius: var(--ui-radius-full);
}

.psf-detail-dialog__rail .activity-group-v2 + .activity-group-v2 {
  margin-top: var(--ui-space-4);
}

.psf-detail-dialog__rail .activity-group-label {
  margin-bottom: var(--ui-space-3);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ui-text-subtle);
}

.psf-detail-dialog__rail .activity-event-v2 {
  display: flex;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-lg);
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-1);
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.psf-detail-dialog__rail .activity-event-v2 + .activity-event-v2 {
  margin-top: var(--ui-space-3);
}

.psf-detail-dialog__rail .activity-event-v2:hover,
.psf-detail-dialog__rail .activity-event-v2.is-selected {
  border-color: rgba(255, 120, 79, 0.28);
  background: rgba(255, 255, 255, 0.05);
}

.psf-detail-dialog__rail .activity-event-v2.is-new {
  box-shadow: 0 0 0 1px rgba(255, 120, 79, 0.16);
}

.psf-detail-dialog__rail .event-icon-v2 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  border-radius: 50%;
  background: rgba(255, 120, 79, 0.12);
  color: var(--ui-brand-light);
}

.psf-detail-dialog__rail .event-icon-v2 mat-icon {
  width: 18px;
  height: 18px;
  font-size: 18px;
}

.psf-detail-dialog__rail .event-content-v2 {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  min-width: 0;
  flex: 1 1 auto;
}

.psf-detail-dialog__rail .event-top-v2,
.psf-detail-dialog__rail .event-footer-v2 {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-2);
}

.psf-detail-dialog__rail .event-author-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
}

.psf-detail-dialog__rail .event-author-v2 {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.psf-detail-dialog__rail .event-type-v2,
.psf-detail-dialog__rail .event-time-v2 {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-subtle);
}

.psf-detail-dialog__rail .event-text-v2 {
  font-size: var(--ui-text-sm);
  line-height: 1.6;
  color: var(--ui-text-secondary);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

.psf-detail-dialog__rail .event-text-v2.expanded {
  display: block;
  -webkit-line-clamp: unset;
}

.psf-detail-dialog__rail .event-expand-v2 {
  align-self: flex-start;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ui-brand-light);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
}

.psf-detail-dialog__rail .event-meta-v2,
.psf-detail-dialog__rail .event-actions-v2 {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.psf-detail-dialog__rail .event-pill-v2 {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
}

.psf-detail-dialog__rail .pill-status {
  color: var(--ui-warning);
}

.psf-detail-dialog__rail .event-action-btn-v2 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 1px solid var(--ui-border);
  border-radius: 50%;
  background: transparent;
  color: var(--ui-text-muted);
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.psf-detail-dialog__rail .event-action-btn-v2:hover:not(:disabled) {
  background: var(--ui-surface-2);
  color: var(--ui-text-secondary);
}

.psf-detail-dialog__rail .event-action-btn-v2:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.psf-detail-dialog__rail .event-action-btn-v2 mat-icon {
  width: 14px;
  height: 14px;
  font-size: 14px;
}

.psf-detail-dialog__rail .activity-empty-v2,
.psf-detail-dialog__rail .wa-empty,
.psf-detail-dialog__rail .wa-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-3);
  min-height: 240px;
  color: var(--ui-text-muted);
  text-align: center;
}

.psf-detail-dialog__rail .inline-whatsapp-panel {
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1 1 auto;
}

.psf-detail-dialog__rail .wa-bubble {
  max-width: 86%;
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-lg);
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border-light);
}

.psf-detail-dialog__rail .wa-bubble + .wa-bubble {
  margin-top: var(--ui-space-3);
}

.psf-detail-dialog__rail .wa-bubble.sent {
  margin-left: auto;
  background: rgba(255, 120, 79, 0.12);
  border-color: rgba(255, 120, 79, 0.22);
}

.psf-detail-dialog__rail .wa-bubble.received {
  margin-right: auto;
}

.psf-detail-dialog__rail .wa-bubble p {
  margin: 0;
  font-size: var(--ui-text-sm);
  line-height: 1.6;
  color: var(--ui-text-secondary);
}

.psf-detail-dialog__rail .wa-tag {
  display: inline-flex;
  align-items: center;
  margin-bottom: var(--ui-space-2);
  padding: 2px 8px;
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-3);
  color: var(--ui-text-subtle);
  font-size: 10px;
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.08em;
}

.psf-detail-dialog__rail .wa-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-2);
  margin-top: var(--ui-space-2);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-subtle);
}

.psf-detail-dialog__rail .wa-compose-bar {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-4);
  border-top: 1px solid var(--ui-border-light);
}

.psf-detail-dialog__rail .wa-text-input {
  flex: 1 1 auto;
  min-width: 0;
  height: 42px;
  padding: 0 var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-1);
  color: var(--ui-text-primary);
  font: inherit;
  outline: none;
}

.psf-detail-dialog__rail .wa-text-input::placeholder {
  color: var(--ui-text-subtle);
}

.psf-detail-dialog__rail .wa-action-icon,
.psf-detail-dialog__rail .wa-send-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border-radius: 50%;
  border: 1px solid var(--ui-border);
  background: transparent;
  color: var(--ui-text-muted);
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.psf-detail-dialog__rail .wa-send-icon {
  border-color: rgba(255, 120, 79, 0.28);
  background: rgba(255, 120, 79, 0.12);
  color: var(--ui-brand-light);
}

.psf-detail-dialog__rail .wa-action-icon:hover,
.psf-detail-dialog__rail .wa-send-icon:hover:not(:disabled) {
  background: var(--ui-surface-2);
  color: var(--ui-text-secondary);
}

.psf-detail-dialog__rail .wa-send-icon:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.psf-detail-dialog__rail .wa-spinner {
  width: 28px;
  height: 28px;
  border: 2px solid rgba(255, 255, 255, 0.15);
  border-top-color: var(--ui-brand-light);
  border-radius: 50%;
  animation: psf-detail-wa-spin 0.9s linear infinite;
}

.psf-detail-dialog__layout--loading .card-skeleton {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.psf-detail-dialog__rail-skeleton {
  padding: var(--ui-space-5);
}

@keyframes psf-detail-wa-spin {
  to {
    transform: rotate(360deg);
  }
}
@media (max-width: 1280px) {
  .psf-detail-dialog__layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .psf-detail-dialog__rail {
    min-height: 420px;
  }
}
@media (max-width: 960px) {
  .psf-detail-dialog .glass-modal-header {
    flex-direction: column;
  }
  .psf-detail-dialog .ui-modal__header-actions {
    width: 100%;
    margin-left: 0;
    justify-content: flex-start;
  }
  .psf-detail-dialog__hero-top,
  .psf-detail-dialog__cards,
  .psf-detail-dialog__field-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .psf-detail-dialog__hero-footer {
    flex-direction: column;
    align-items: stretch;
  }
  .psf-detail-dialog__hero-actions {
    width: 100%;
  }
  .psf-detail-dialog__hero-actions .pill-btn-primary {
    width: 100%;
  }
}
@media (max-width: 720px) {
  .psf-detail-dialog .glass-modal-header,
  .psf-detail-dialog .glass-modal-body {
    padding: var(--ui-space-4);
  }
  .psf-detail-dialog__hero,
  .psf-detail-dialog__card {
    padding: var(--ui-space-4);
  }
  .psf-detail-dialog__score-ring {
    width: 104px;
    height: 104px;
  }
  .psf-detail-dialog__rail .activity-compose-v2,
  .psf-detail-dialog__rail .activity-header-v2,
  .psf-detail-dialog__rail .wa-compose-bar {
    padding: var(--ui-space-3);
  }
  .psf-detail-dialog__rail .activity-feed-v2,
  .psf-detail-dialog__rail .whatsapp-messages-inline {
    padding: var(--ui-space-3);
  }
}
/* ==========================================================================
   UI MODALS - ACCOUNT SETTINGS
   ==========================================================================
   Modal styles for account settings page.
   Includes: Edit Leave Policy Modal, Rollover Confirmation Modal
   ========================================================================== */
/* Modal Overlay */
.modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  /* Dark backdrop with strong blur */
  background: rgba(0, 0, 0, 0.65);
  backdrop-filter: blur(12px) saturate(130%);
  -webkit-backdrop-filter: blur(12px) saturate(130%);
  animation: overlayFadeIn 0.2s ease-out;
}

@keyframes overlayFadeIn {
  from {
    opacity: 0;
    backdrop-filter: blur(0);
    -webkit-backdrop-filter: blur(0);
  }
  to {
    opacity: 1;
    backdrop-filter: blur(12px) saturate(130%);
    -webkit-backdrop-filter: blur(12px) saturate(130%);
  }
}
/* ==========================================================================
   EDIT LEAVE POLICY MODAL
   ========================================================================== */
/* Wide modal variant for 2-column layouts */
.edit-policy-modal.wide-modal {
  max-width: 680px;
}

/* 2-Column Form Layout */
.edit-policy-modal .form-2col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

.edit-policy-modal .form-col {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

/* Toggle box styling */
.edit-policy-modal .toggle-box {
  padding: 14px 16px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
}

@media (max-width: 600px) {
  .edit-policy-modal.wide-modal {
    max-width: calc(100vw - 32px);
  }
  .edit-policy-modal .form-2col {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
.edit-policy-modal {
  background: rgba(30, 26, 24, 0.7);
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  border: 1px solid rgba(255, 140, 80, 0.2);
  border-radius: 20px;
  width: 100%;
  max-width: 480px;
  max-height: 90vh;
  overflow: hidden;
  box-shadow: 0 25px 60px rgba(0, 0, 0, 0.4), 0 0 1px rgba(255, 140, 80, 0.3) inset, 0 1px 0 rgba(255, 255, 255, 0.08) inset;
  animation: modalSlideUp 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes modalSlideUp {
  from {
    opacity: 0;
    transform: translateY(20px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
.edit-policy-modal .modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  border-bottom: 1px solid rgba(255, 140, 80, 0.12);
  background: linear-gradient(180deg, rgba(255, 140, 80, 0.06) 0%, transparent 100%);
}

.edit-policy-modal .modal-header h3 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  color: #f5f5f7;
  letter-spacing: -0.01em;
}

.edit-policy-modal .modal-header h3 mat-icon {
  font-size: 22px;
  width: 22px;
  height: 22px;
  color: #ff8c50;
  filter: drop-shadow(0 0 8px rgba(255, 140, 80, 0.4));
}

.edit-policy-modal .modal-body {
  padding: 24px;
  overflow-y: auto;
  max-height: calc(90vh - 140px);
}

.edit-policy-modal .form-group {
  margin-bottom: 20px;
}

.edit-policy-modal .form-group label {
  display: block;
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 8px;
}

.edit-policy-modal .readonly-field {
  padding: 14px 16px;
  background: rgba(255, 140, 80, 0.05);
  border: 1px solid rgba(255, 140, 80, 0.12);
  border-radius: 12px;
  color: rgba(255, 255, 255, 0.6);
  font-size: 14px;
}

.edit-policy-modal .readonly-field strong {
  color: #ff9c60;
  font-weight: 600;
}

.edit-policy-modal .glass-input {
  width: 100%;
  padding: 14px 16px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  color: #f5f5f7;
  font-size: 14px;
  font-weight: 500;
  transition: all 0.2s ease;
  appearance: none;
  box-sizing: border-box;
}

.edit-policy-modal .glass-input::placeholder {
  color: rgba(255, 255, 255, 0.35);
}

.edit-policy-modal .glass-input:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.15);
}

.edit-policy-modal .glass-input:focus {
  outline: none;
  border-color: rgba(255, 140, 80, 0.5);
  background: rgba(255, 140, 80, 0.06);
  box-shadow: 0 0 0 3px rgba(255, 140, 80, 0.12);
}

.edit-policy-modal select.glass-input {
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='rgba(255,160,100,0.7)' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 44px;
}

.edit-policy-modal select.glass-input option {
  background: #1a1815;
  color: #f5f5f7;
  padding: 12px;
}

.edit-policy-modal .toggle-label {
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  -webkit-user-select: none;
          user-select: none;
  padding: 12px 0;
}

.edit-policy-modal .toggle-label input[type=checkbox] {
  width: 20px;
  height: 20px;
  accent-color: #ff8c50;
  cursor: pointer;
}

.edit-policy-modal .toggle-label span {
  font-size: 14px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.85);
}

.edit-policy-modal .field-hint {
  display: block;
  margin-top: 6px;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.45);
}

.edit-policy-modal .effective-notice {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  background: rgba(255, 180, 100, 0.08);
  border: 1px solid rgba(255, 180, 100, 0.2);
  border-radius: 12px;
  margin-top: 20px;
}

.edit-policy-modal .effective-notice mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: #ffc966;
  flex-shrink: 0;
}

.edit-policy-modal .effective-notice span {
  font-size: 13px;
  font-weight: 500;
  color: #ffc966;
}

.edit-policy-modal .modal-footer {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  padding: 20px 24px;
  border-top: 1px solid rgba(255, 140, 80, 0.1);
  background: rgba(0, 0, 0, 0.2);
}

.edit-policy-modal .modal-footer .btn-secondary {
  padding: 12px 20px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  color: rgba(255, 255, 255, 0.8);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

.edit-policy-modal .modal-footer .btn-secondary:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.2);
  color: #fff;
}

.edit-policy-modal .modal-footer .btn-primary {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
  background: linear-gradient(135deg, #e65a30 0%, #c94422 100%);
  border: none;
  border-radius: 10px;
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 4px 16px rgba(200, 70, 35, 0.35);
}

.edit-policy-modal .modal-footer .btn-primary:hover:not(:disabled) {
  background: linear-gradient(135deg, #f06538 0%, #d54c28 100%);
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(200, 70, 35, 0.45);
}

.edit-policy-modal .modal-footer .btn-primary:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  box-shadow: none;
}

.edit-policy-modal .modal-footer .btn-primary mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

/* Close button in modal header */
.edit-policy-modal .btn-icon {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
  color: rgba(255, 255, 255, 0.6);
  padding: 0;
}

.edit-policy-modal .btn-icon:hover {
  background: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.9);
  border-color: rgba(255, 255, 255, 0.2);
}

.edit-policy-modal .btn-icon mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

/* ==========================================================================
   ROLLOVER CONFIRMATION MODAL
   ========================================================================== */
.confirm-rollover-modal {
  background: linear-gradient(155deg, rgba(40, 28, 28, 0.97) 0%, rgba(30, 22, 22, 0.98) 50%, rgba(25, 18, 18, 0.97) 100%);
  border: 1px solid rgba(239, 68, 68, 0.2);
  border-radius: 20px;
  width: 100%;
  max-width: 440px;
  max-height: 90vh;
  overflow: hidden;
  box-shadow: 0 25px 60px rgba(0, 0, 0, 0.5), 0 0 1px rgba(239, 68, 68, 0.3) inset, 0 1px 0 rgba(255, 255, 255, 0.05) inset;
  animation: modalSlideUp 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.confirm-rollover-modal .modal-header.warning-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 20px 24px;
  border-bottom: 1px solid rgba(239, 68, 68, 0.15);
  background: linear-gradient(180deg, rgba(239, 68, 68, 0.08) 0%, transparent 100%);
}

.confirm-rollover-modal .modal-header.warning-header h3 {
  flex: 1;
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  color: #f5f5f7;
}

.confirm-rollover-modal .warning-icon {
  font-size: 24px;
  width: 24px;
  height: 24px;
  color: #fbbf24;
  filter: drop-shadow(0 0 8px rgba(251, 191, 36, 0.4));
}

.confirm-rollover-modal .modal-body {
  padding: 24px;
}

.rollover-warning-text {
  margin: 0 0 16px 0;
  font-size: 15px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.85);
}

.rollover-effects-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.rollover-effects-list li {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.rollover-effects-list li:last-child {
  border-bottom: none;
}

.rollover-effects-list .effect-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
}

.rollover-effects-list .effect-icon.positive {
  color: #4ade80;
}

.rollover-effects-list .effect-icon.negative {
  color: #f87171;
}

.rollover-effects-list .effect-icon.lock {
  color: #fbbf24;
}

.rollover-effects-list span {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.8);
}

.rollover-danger-notice {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 20px;
  padding: 14px 16px;
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.25);
  border-radius: 10px;
}

.rollover-danger-notice mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: #ef4444;
}

.rollover-danger-notice span {
  font-size: 13px;
  font-weight: 600;
  color: #f87171;
}

.confirm-rollover-modal .modal-footer {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  padding: 20px 24px;
  border-top: 1px solid rgba(239, 68, 68, 0.1);
  background: rgba(0, 0, 0, 0.2);
}

.confirm-rollover-modal .btn-secondary {
  padding: 12px 20px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  color: rgba(255, 255, 255, 0.8);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

.confirm-rollover-modal .btn-secondary:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.2);
  color: #fff;
}

.btn-danger {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
  background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
  border: none;
  border-radius: 10px;
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 4px 16px rgba(239, 68, 68, 0.35);
}

.btn-danger:hover:not(:disabled) {
  background: linear-gradient(135deg, #f55252 0%, #e53030 100%);
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(239, 68, 68, 0.45);
}

.btn-danger mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.btn-danger-outline {
  background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%) !important;
  color: #fff !important;
  box-shadow: 0 4px 16px rgba(239, 68, 68, 0.25) !important;
}

.btn-danger-outline:hover:not(:disabled) {
  background: linear-gradient(135deg, #f55252 0%, #e53030 100%) !important;
  box-shadow: 0 6px 20px rgba(239, 68, 68, 0.35) !important;
}

/* ==========================================================================
   UI MODALS - PACKAGE MODAL (LAYOUT ONLY)
   ==========================================================================
   Layout-specific styles for Package Create/Edit modal.

   COMPOSES FROM:
   - layout/modal.scss        → glass surface, backdrop, panel sizing
   - controls/section-title.scss → .ui-section-title
   - controls/pills.scss      → pill-btn, pill-btn-primary, pill-btn-secondary
   - modals/forms.scss        → form field styling, step indicators

   This file contains ONLY:
   - Modal-specific layout structure
   - Package-specific multi-select chips
   - Services table layout

   USAGE: Panel class: package-modal-panel
   ========================================================================== */
/* ==========================================================================
   PANEL REGISTRATION - CDK/Material integration
   ========================================================================== */
body .cdk-overlay-pane.package-modal-panel {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  height: 85vh !important;
}

body .cdk-overlay-pane.package-modal-panel .mat-mdc-dialog-container,
body .cdk-overlay-pane.package-modal-panel .mdc-dialog__container,
body .cdk-overlay-pane.package-modal-panel .mdc-dialog__surface,
body .cdk-overlay-pane.package-modal-panel .mat-mdc-dialog-surface {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border: none !important;
  padding: 0 !important;
  border-radius: 24px !important;
  overflow: hidden !important;
  height: 100% !important;
}

/* ==========================================================================
   MODAL CONTAINER - Glass surface from layout/modal.scss
   ========================================================================== */
.package-modal-container {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 75vh;
  max-height: 85vh;
  overflow: hidden;
  /* Glass surface - canonical values from layout/modal.scss */
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.01));
  backdrop-filter: blur(60px) saturate(200%) brightness(1.2);
  -webkit-backdrop-filter: blur(60px) saturate(200%) brightness(1.2);
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.38);
  border-radius: 24px;
}

/* ==========================================================================
   MODAL STRUCTURE - Header, Body, Footer
   ========================================================================== */
.package-modal-container .modal-header-fixed {
  flex-shrink: 0;
  padding: 16px 24px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(0, 0, 0, 0.15);
  backdrop-filter: blur(20px);
}

.package-modal-container .header-content {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  position: relative;
}

.package-modal-container .title-section {
  position: absolute;
  left: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.package-modal-container .modal-title {
  margin: 0;
  font-size: 1.3rem;
  font-weight: 600;
  color: #fff;
}

.package-modal-container .title-context {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.6);
}

.package-modal-container .selected-count {
  color: var(--ui-brand-light, #dc8250);
  font-weight: 500;
}

.package-modal-container .modal-body {
  flex: 1 1 auto;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 12px 24px 20px;
}

.package-modal-container .modal-footer-fixed {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(0, 0, 0, 0.2);
}

.package-modal-container .footer-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

/* ==========================================================================
   STEP INDICATORS - Uses step styles from forms.scss
   ========================================================================== */
.package-modal-container .steps-indicator-centered {
  display: flex;
  align-items: center;
  gap: 12px;
}

.package-modal-container .step-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  border-radius: var(--ui-radius-full, 999px);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
  transition: all 0.2s ease;
}

.package-modal-container .step-item.active {
  background: rgba(200, 90, 50, 0.25);
  border-color: rgba(200, 90, 50, 0.5);
}

.package-modal-container .step-number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  font-size: 12px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.7);
}

.package-modal-container .step-item.active .step-number {
  background: var(--ui-brand, #dc8250);
  color: #fff;
}

.package-modal-container .step-label {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.7);
}

.package-modal-container .step-item.active .step-label {
  color: #fff;
}

.package-modal-container .step-divider {
  width: 24px;
  height: 1px;
  background: rgba(255, 255, 255, 0.15);
}

.package-modal-container .header-right-actions {
  position: absolute;
  right: 0;
  display: flex;
  align-items: center;
  gap: 12px;
}

.package-modal-container .package-modal__header-tools {
  min-width: 0;
}

.package-modal-container .package-modal__search {
  min-width: 260px;
  width: 320px;
}

.package-modal-container .package-modal__search input {
  min-width: 0;
}

.package-modal-container .package-modal__category-filter {
  min-width: 220px;
}

.package-modal-container .package-modal__category-filter .mat-mdc-select {
  width: 100%;
}

.package-modal-container .package-modal__category-trigger {
  width: 100%;
  justify-content: flex-start;
}

.package-modal-container .package-modal__category-chevron {
  margin-left: auto;
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: var(--ui-text-muted);
}

/* ==========================================================================
   FORM LAYOUT
   ========================================================================== */
.package-modal-container .two-column-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.package-modal-container .form-column {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* Glass panel sections - uses forms.scss patterns */
.package-modal-container .glass-panel {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 20px;
  padding: 20px;
}

.package-modal-container .glass-panel.compact-card {
  padding: 14px 18px;
}

/* Package modal density adjustments on top of shared contracts */
.package-modal-container .ui-section-title {
  margin-bottom: 16px;
}

.package-modal-container .compact-card .ui-section-title {
  margin-bottom: 8px;
  padding-bottom: 6px;
}

/* Field Row - Grid Layout */
.package-modal-container .field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

/* Field Row with Flex - when using flex-1/flex-2 */
.package-modal-container .field-row:has(.flex-1),
.package-modal-container .field-row:has(.flex-2) {
  display: flex !important;
  flex-direction: row !important;
  gap: 12px;
}

/* Field container - ensures full width */
.package-modal-container .field {
  width: 100%;
  min-width: 0; /* Prevent flex overflow */
}

.package-modal-container .field.flex-1 {
  flex: 1 1 0%;
  min-width: 0;
}

.package-modal-container .field.flex-2 {
  flex: 2 1 0%;
  min-width: 0;
}

/* ==========================================================================
   FORM DENSITY - Shared ui-form contract with package-specific spacing only
   ========================================================================== */
.package-modal-container .ui-form .mat-mdc-form-field-subscript-wrapper {
  display: none !important;
}

/* ==========================================================================
   MULTI-SELECT CHIPS - Package-specific component
   ========================================================================== */
.package-modal-container .multi-select-chips {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  padding: 10px 14px;
  margin-bottom: 12px;
}

.package-modal-container .multi-select-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}

.package-modal-container .multi-select-label {
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.6);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.package-modal-container .multi-select-actions {
  display: flex;
  gap: 6px;
}

/* Small action chips - uses pill pattern */
.package-modal-container .chip-action {
  padding: 3px 8px;
  font-size: 10px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.4);
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--ui-radius-full, 999px);
  cursor: pointer;
  transition: all 0.15s ease;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}

.package-modal-container .chip-action:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.7);
}

.package-modal-container .chip-row {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 4px;
}

.package-modal-container .chip-option {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  min-width: 90px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--ui-radius-full, 999px);
  cursor: pointer;
  transition: all 0.2s ease;
  -webkit-user-select: none;
          user-select: none;
}

.package-modal-container .chip-option.selected {
  background: rgba(200, 90, 50, 0.15);
  border-color: rgba(200, 90, 50, 0.5);
  box-shadow: 0 0 12px rgba(200, 90, 50, 0.2);
}

.package-modal-container .chip-checkbox {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 255, 255, 0.4);
}

.package-modal-container .chip-option.selected .chip-checkbox {
  color: var(--ui-brand, #dc8250);
}

.package-modal-container .chip-label {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.75);
  white-space: nowrap;
}

.package-modal-container .chip-option.selected .chip-label {
  color: rgba(255, 255, 255, 0.95);
}

/* ==========================================================================
   CASHBACK ROW - Package-specific layout
   ========================================================================== */
.package-modal-container .cashback-combined-row {
  display: flex;
  gap: 16px;
  margin-bottom: 12px;
}

.package-modal-container .cashback-inline-row {
  flex: 0 0 calc(50% - 8px);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 18px 12px;
  height: 56px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
}

.package-modal-container .cashback-group {
  display: flex;
  align-items: stretch;
  height: 40px;
}

.package-modal-container .cashback-group .cashback-input {
  width: 70px;
  padding: 8px 12px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-right: none;
  border-radius: 8px 0 0 8px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 14px;
  font-weight: 500;
  text-align: center;
  outline: none;
}

.package-modal-container .cashback-group .cashback-select {
  width: 50px;
  padding: 8px 20px 8px 10px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 0 8px 8px 0;
  color: rgba(255, 255, 255, 0.9);
  font-size: 14px;
  cursor: pointer;
  appearance: none;
}

.package-modal-container .limit-group {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-left: 8px;
}

.package-modal-container .limit-input {
  width: 50px;
  padding: 8px 10px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 14px;
  text-align: center;
  outline: none;
}

.package-modal-container .section-disabled {
  opacity: 0.4;
  pointer-events: none;
}

/* ==========================================================================
   PACKAGE TYPE CONTAINER
   ========================================================================== */
.package-modal-container .package-type-container {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  padding: 12px;
}

.package-modal-container .segment-chips-inline {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

/* ==========================================================================
   MODEL CHIPS - Selected model display
   ========================================================================== */
.package-modal-container .selected-models-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 10px;
  background: rgba(255, 255, 255, 0.03);
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.package-modal-container .model-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 8px 4px 12px;
  background: rgba(255, 130, 90, 0.15);
  border: 1px solid rgba(255, 130, 90, 0.3);
  border-radius: var(--ui-radius-full, 999px);
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 200, 170, 0.95);
}

.package-modal-container .model-chip-remove {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  padding: 0;
  background: rgba(255, 100, 80, 0.2);
  border: none;
  border-radius: 50%;
  cursor: pointer;
}

.package-modal-container .model-chip-remove mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
  color: rgba(255, 100, 80, 0.9);
}

/* ==========================================================================
   SERVICES STEP - Shared glass-table contract with package-specific layout
   ========================================================================== */
.package-modal-container .services-step {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 16px;
  min-height: 0;
}

.package-modal-container .package-modal__table-section {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 0;
}

.package-modal-container .package-modal__table-section--fill {
  flex: 1 1 auto;
}

.package-modal-container .package-modal__section-header {
  padding: 0;
  margin-bottom: 0;
  border-bottom: 0;
}

.package-modal-container .package-modal__section-header .glass-table-title {
  font-size: 16px;
}

.package-modal-container .package-modal__section-header .glass-table-meta {
  font-size: 12px;
}

.package-modal-container .package-modal__table-card {
  min-height: 0;
}

.package-modal-container .package-modal__table-card--selected {
  max-height: 260px;
}

.package-modal-container .package-modal__table-card--available {
  flex: 1 1 auto;
}

.package-modal-container .package-modal__table-scroll {
  min-height: 0;
}

.package-modal-container .package-modal__table-scroll--available {
  flex: 1 1 auto;
}

.package-modal-container .package-modal__table {
  min-width: 960px;
}

.package-modal-container .package-modal__table--selected {
  min-width: 1020px;
}

.package-modal-container .package-modal__table--selected tbody {
  max-height: 190px;
}

.package-modal-container .package-modal__table--available tbody {
  max-height: calc(85vh - 390px);
  min-height: 320px;
}

.package-modal-container .package-modal__col-select {
  width: 72px;
}

.package-modal-container .package-modal__col-service {
  width: 24%;
}

.package-modal-container .package-modal__col-classification {
  width: 21%;
}

.package-modal-container .package-modal__col-segment {
  width: 14%;
}

.package-modal-container .package-modal__col-money {
  width: 11%;
}

.package-modal-container .package-modal__col-limit {
  width: 9%;
}

.package-modal-container .package-modal__col-discount {
  width: 15%;
}

.package-modal-container .package-modal__col-action {
  width: 72px;
}

.package-modal-container .package-modal__numeric-header,
.package-modal-container .package-modal__money-cell {
  text-align: right;
}

.package-modal-container .package-modal__money-cell {
  font-variant-numeric: tabular-nums;
  color: var(--gdt-text, rgba(255, 255, 255, 0.82));
}

.package-modal-container .package-modal__money-cell--strong {
  color: var(--gdt-text-strong, rgba(255, 255, 255, 0.95));
  font-weight: 600;
}

.package-modal-container .package-modal__selection-cell,
.package-modal-container .package-modal__action-cell {
  text-align: center;
}

.package-modal-container .package-modal__classification {
  gap: 4px;
}

.package-modal-container .package-modal__table-input {
  height: 36px;
  text-align: right;
}

.package-modal-container .package-modal__discount-editor {
  min-width: 0;
}

.package-modal-container .package-modal__discount-type {
  width: 56px;
  min-width: 56px;
  max-width: 56px;
  text-align: center;
}

.package-modal-container .package-modal__select-toggle {
  width: 32px;
  height: 32px;
}

.package-modal-container .package-modal__select-toggle--active {
  background: var(--gdt-accent-bg, rgba(255, 130, 90, 0.1));
  border-color: var(--gdt-accent-border, rgba(255, 130, 90, 0.2));
  color: var(--gdt-accent-light, rgba(255, 130, 90, 0.85));
}

.package-modal-container .package-modal__remove-btn {
  color: rgba(255, 126, 112, 0.82);
}

.package-modal-container .package-modal__remove-btn:hover {
  color: rgba(255, 170, 160, 0.98);
}

.package-modal-container .package-modal__service-row--selected {
  background: var(--ui-table-row-active);
  box-shadow: inset 2px 0 0 0 var(--ui-table-row-hover-accent);
}

.package-modal-container .package-modal__table .cell-chip,
.package-modal-container .package-modal__table .ui-chip,
.package-modal-container .package-modal__table .ui-table .risk-badge,
.package-modal-container .package-modal__table .premium-table .risk-badge,
.package-modal-container .package-modal__table .glass-table .risk-badge,
.ui-table .package-modal-container .package-modal__table .risk-badge,
.premium-table .package-modal-container .package-modal__table .risk-badge,
.glass-table .package-modal-container .package-modal__table .risk-badge {
  max-width: 100%;
}

/* ==========================================================================
   LOADING & EMPTY STATES
   ========================================================================== */
.package-modal-container .loading-state,
.package-modal-container .empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 60px 20px;
  color: rgba(255, 255, 255, 0.5);
  font-size: 13px;
  text-align: center;
}

/* ==========================================================================
   SCROLLBAR
   ========================================================================== */
.package-modal-container .modal-body::-webkit-scrollbar,
.package-modal-container .package-modal__table tbody::-webkit-scrollbar {
  width: 6px;
}

.package-modal-container .modal-body::-webkit-scrollbar-track,
.package-modal-container .package-modal__table tbody::-webkit-scrollbar-track {
  background: transparent;
}

.package-modal-container .modal-body::-webkit-scrollbar-thumb,
.package-modal-container .package-modal__table tbody::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.12);
  border-radius: 3px;
}

/* ==========================================================================
   UI MODALS - PACKAGE SELECTOR DIALOG
   ==========================================================================
   Contract for the estimation add-package selector modal.
   Uses shared modal, card, button, chip, search, and table contracts with
   scoped layout overrides only.
   ========================================================================== */
.package-selector-modal {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  overflow: hidden;
}

.package-selector-modal .ui-modal__header {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) minmax(320px, 420px) auto;
  align-items: center;
  gap: var(--ui-space-4);
}

.package-selector-modal__header-search {
  width: 100%;
}

.package-selector-modal__header-search .ui-search {
  width: 100%;
}

.package-selector-modal__header-search .ui-search input {
  min-width: 0;
}

.package-selector-modal__header-search .search-clear-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 0;
  border-radius: var(--ui-radius-full);
  background: transparent;
  color: var(--ui-text-muted);
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.package-selector-modal__header-search .search-clear-btn:hover {
  background: var(--ui-surface-2);
  color: var(--ui-text-primary);
}

.package-selector-modal__header-search .search-clear-btn mat-icon {
  width: 16px;
  height: 16px;
  font-size: 16px;
}

.package-selector-modal .ui-modal__body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: var(--ui-space-5) var(--ui-space-5) var(--ui-space-6);
}

.package-selector-modal__rail {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
  width: min(1180px, 100%);
  min-height: 0;
  margin: 0 auto;
}

.package-selector-modal__applied-card {
  gap: var(--ui-space-4);
  padding: var(--ui-space-5);
  border-color: var(--ui-success-border);
  background: linear-gradient(135deg, rgba(74, 222, 128, 0.08), rgba(74, 222, 128, 0.02)), var(--ui-surface-1);
}

.package-selector-modal__applied-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-4);
}

.package-selector-modal__applied-summary {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-4);
  min-width: 0;
}

.package-selector-modal__applied-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  border-radius: var(--ui-radius-full);
  background: var(--ui-success-bg);
  border: 1px solid var(--ui-success-border);
  color: var(--ui-success);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.package-selector-modal__applied-icon mat-icon {
  width: 20px;
  height: 20px;
  font-size: 20px;
}

.package-selector-modal__applied-title-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.package-selector-modal__applied-name {
  margin: 0;
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  line-height: 1.25;
}

.package-selector-modal__applied-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
}

.package-selector-modal__applied-meta .ui-chip, .package-selector-modal__applied-meta .ui-table .risk-badge, .package-selector-modal__applied-meta .premium-table .risk-badge, .package-selector-modal__applied-meta .glass-table .risk-badge, .ui-table .package-selector-modal__applied-meta .risk-badge, .premium-table .package-selector-modal__applied-meta .risk-badge, .glass-table .package-selector-modal__applied-meta .risk-badge {
  min-height: 28px;
}

.package-selector-modal__results {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  min-height: 0;
}

.package-selector-modal__results-header {
  margin: 0;
}

.package-selector-modal__state {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-4);
  min-height: 180px;
  text-align: left;
}

.package-selector-modal__state mat-icon {
  width: 32px;
  height: 32px;
  font-size: 32px;
  color: var(--ui-text-subtle);
  flex: 0 0 auto;
}

.package-selector-modal__state-title {
  display: block;
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.package-selector-modal__state--loading {
  display: grid;
  gap: var(--ui-space-3);
}

.package-selector-modal__state--loading .ui-skeleton {
  height: 68px;
  border-radius: var(--ui-radius-lg);
}

.package-selector-modal__table-card {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
}

.package-selector-modal__table {
  min-width: 1080px;
}

.package-selector-modal__table tbody {
  max-height: calc(92vh - 340px);
}

.package-selector-modal__col-package {
  width: 22%;
}

.package-selector-modal__col-target {
  width: 15%;
}

.package-selector-modal__col-benefits {
  width: 20%;
}

.package-selector-modal__col-pricing {
  width: 13%;
}

.package-selector-modal__col-discount {
  width: 16%;
}

.package-selector-modal__col-actions {
  width: 14%;
}

.package-selector-modal__stacked-cell {
  gap: var(--ui-space-1);
}

.package-selector-modal__benefits-cell {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ui-space-2);
}

.package-selector-modal__pricing-cell .cell-primary-name {
  color: var(--ui-success);
}

.package-selector-modal__action-cell {
  text-align: right;
}

.package-selector-modal__actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ui-space-2);
  width: 100%;
}

.package-selector-modal__services-menu .mat-mdc-menu-content {
  padding: 0;
}

.package-selector-modal__menu-content {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  min-width: 280px;
  max-width: 360px;
  padding: var(--ui-space-3);
}

.package-selector-modal__menu-content .ui-label, .package-selector-modal__menu-content .ui-filter-label {
  padding: 0 var(--ui-space-1) var(--ui-space-2);
}

.package-selector-modal__menu-content .mat-mdc-menu-item {
  min-height: 52px;
  border-radius: var(--ui-radius-md);
}

.package-selector-modal__menu-empty {
  padding: 0 var(--ui-space-1) var(--ui-space-1);
}

@media (max-width: 960px) {
  .package-selector-modal .ui-modal__header {
    grid-template-columns: 1fr auto;
    grid-template-areas: "title close" "search search";
    align-items: start;
  }
  .package-selector-modal .ui-modal__header > .ui-stack {
    grid-area: title;
  }
  .package-selector-modal__header-search {
    grid-area: search;
  }
  .package-selector-modal .ui-modal__close {
    grid-area: close;
    justify-self: end;
  }
  .package-selector-modal .ui-modal__body {
    padding: var(--ui-space-4);
  }
  .package-selector-modal__applied-head {
    flex-direction: column;
    align-items: stretch;
  }
  .package-selector-modal__applied-head .ui-btn {
    align-self: flex-start;
  }
}
@media (max-width: 640px) {
  .package-selector-modal__applied-summary {
    gap: var(--ui-space-3);
  }
  .package-selector-modal__applied-icon {
    width: 36px;
    height: 36px;
    flex-basis: 36px;
  }
  .package-selector-modal__state {
    flex-direction: column;
    text-align: center;
  }
}
/* ==========================================================================
   ASSIST SIDEBAR - PREMIUM UX POLISH
   ==========================================================================
   Extends ui-drawer--inline for Autroid Assist.

   Features:
   - Language selector (EN/हिंदी) in header
   - Breathing icon animation when idle
   - Ambient background gradient drift
   - Calm, intelligent empty state
   - FROSTED GLASS panel (matches page headers)
   ========================================================================== */
/* ==========================================================================
   FROSTED GLASS PANEL OVERRIDE
   Matches page header styling from stats-header.scss
   ========================================================================== */
.assist-sidebar-wrapper .assist-sidebar {
  /* Lighter frosted glass - matches erp-header-block styling */
  background: rgba(255, 255, 255, 0.03) !important;
  border: 1px solid rgba(255, 255, 255, 0.06) !important;
  backdrop-filter: blur(24px) !important;
  -webkit-backdrop-filter: blur(24px) !important;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04), -4px 0 32px rgba(0, 0, 0, 0.15) !important;
}

/* Slightly warmer header area */
.assist-sidebar .ui-drawer__header {
  background: rgba(255, 255, 255, 0.02);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
}

/* Footer also frosted */
.assist-sidebar .ui-drawer__footer {
  background: rgba(255, 255, 255, 0.02) !important;
  border-top: 1px solid rgba(255, 255, 255, 0.06) !important;
}

/* ==========================================================================
   AMBIENT BACKGROUND LAYER
   Very subtle gradient drift (10-15s loop) - barely noticeable
   ========================================================================== */
@keyframes assist-ambient-drift {
  0%, 100% {
    background-position: 0% 50%;
    opacity: 0.03;
  }
  50% {
    background-position: 100% 50%;
    opacity: 0.05;
  }
}
.assist-sidebar__ambient {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(135deg, rgba(255, 120, 80, 0.08) 0%, transparent 40%, transparent 60%, rgba(255, 120, 80, 0.06) 100%);
  background-size: 200% 200%;
  animation: assist-ambient-drift 12s ease-in-out infinite;
  border-radius: inherit;
}

/* Stop ambient animation when insight is shown */
.assist-sidebar.has-content .assist-sidebar__ambient {
  animation: none;
  opacity: 0;
}

/* ==========================================================================
   BREATHING ICON ANIMATION
   Very slow pulse (3-4s loop) - subconscious, not distracting
   ========================================================================== */
@keyframes assist-icon-breathe {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
    filter: drop-shadow(0 0 0 transparent);
  }
  50% {
    opacity: 0.85;
    transform: scale(1.03);
    filter: drop-shadow(0 0 8px rgba(255, 120, 80, 0.4));
  }
}
.assist-sidebar__icon {
  margin-right: var(--ui-space-2);
  width: 24px;
  height: 24px;
  display: block;
  object-fit: contain;
  opacity: 0.9;
  filter: sepia(1) saturate(1.45) hue-rotate(-18deg) brightness(1.04);
  flex-shrink: 0;
  transition: all 0.3s ease;
}

.assist-sidebar__icon.is-breathing {
  animation: assist-icon-breathe 3.5s ease-in-out infinite;
}

/* ==========================================================================
   HEADER POLISH
   ========================================================================== */
.assist-sidebar__header {
  position: relative;
  z-index: 2;
}

.assist-sidebar__title {
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
}

.assist-sidebar__title-text {
  font-weight: var(--ui-font-semibold);
  letter-spacing: -0.01em;
}

/* Flex column for title + subtitle */
.assist-sidebar__title-group {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.assist-sidebar__subtitle {
  font-size: 11px;
  font-weight: 400;
  color: var(--ui-text-muted);
  letter-spacing: 0.02em;
}

.assist-sidebar__header-actions {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
}

/* Close button — compact chevron-right icon in the header */
.assist-sidebar__close-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
  color: rgba(255, 255, 255, 0.4);
  cursor: pointer;
  transition: all 150ms ease;
  flex-shrink: 0;
}

.assist-sidebar__close-btn:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.8);
  transform: translateX(2px);
}

.assist-sidebar__close-btn i {
  font-size: 16px;
  line-height: 1;
}

/* "Continuing from quick assist" context label */
.assist-sidebar__context-label {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 16px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: rgba(255, 140, 80, 0.6);
  background: rgba(255, 140, 80, 0.04);
  border-bottom: 1px solid rgba(255, 140, 80, 0.08);
  animation: assistContextLabelFade 0.4s ease-out;
}
.assist-sidebar__context-label i {
  font-size: 12px;
}

@keyframes assistContextLabelFade {
  0% {
    opacity: 0;
    transform: translateY(-4px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
/* ==========================================================================
   LANGUAGE SELECTOR - Compact Dropdown
   Native select with custom styling for backend-driven languages
   ========================================================================== */
.assist-lang-dropdown {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.assist-lang-select {
  /* Native select styled to look compact */
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  padding: 4px 28px 4px 12px;
  font-size: 12px;
  font-weight: 500;
  color: var(--ui-text-primary);
  cursor: pointer;
  min-width: 60px;
  transition: all 0.2s ease;
}

.assist-lang-select:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
}

.assist-lang-select:focus {
  outline: none;
  border-color: rgba(255, 140, 80, 0.5);
  box-shadow: 0 0 0 2px rgba(255, 140, 80, 0.15);
}

.assist-lang-select option {
  background: var(--ui-surface-primary);
  color: var(--ui-text-primary);
  padding: 8px 12px;
}

.assist-lang-dropdown-icon {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 14px;
  color: var(--ui-text-muted);
  pointer-events: none;
}

/* Loading placeholder */
.assist-lang-loading {
  display: flex;
  align-items: center;
  padding: 4px 12px;
}

.assist-lang-loading-text {
  font-size: 12px;
  color: var(--ui-text-muted);
  animation: assist-lang-pulse 1.5s ease-in-out infinite;
}

@keyframes assist-lang-pulse {
  0%, 100% {
    opacity: 0.4;
  }
  50% {
    opacity: 1;
  }
}
/* ==========================================================================
   BODY & CONTENT POSITIONING
   ========================================================================== */
.assist-sidebar__body {
  position: relative;
  z-index: 1;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.assist-sidebar__content {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

/* Chat timeline layout (State B) */
.assist-sidebar__chat {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: var(--ui-space-3) 0 var(--ui-space-5);
}

/* Ensure Angular component hosts stack consistently */
.assist-sidebar__chat app-assist-chat-message {
  display: block;
  width: 100%;
}

/* ==========================================================================
   EMPTY STATE - Calm, Intelligent, Ready
   ========================================================================== */
.assist-sidebar__empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: var(--ui-space-8) var(--ui-space-4);
  flex: 1;
  min-height: 100%;
}

.assist-sidebar__empty-icon {
  width: 64px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--ui-space-5);
  font-size: 2rem;
  color: var(--ui-brand);
  opacity: 0.6;
  animation: assist-icon-breathe 3.5s ease-in-out infinite;
}

.assist-sidebar__empty-primary {
  margin: 0 0 var(--ui-space-2) 0;
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  letter-spacing: -0.01em;
}

.assist-sidebar__empty-secondary {
  margin: 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  max-width: 280px;
  line-height: 1.5;
}

/* Starter section for State A */
.assist-sidebar__starter-section {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ui-space-3);
  margin-top: var(--ui-space-6);
  width: 100%;
  max-width: 300px;
}

.assist-sidebar__starter-label {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Powered-by text inline in empty state */
.assist-sidebar__empty-state .assist-sidebar__powered {
  margin-top: auto;
  padding-top: var(--ui-space-8);
}

/* ==========================================================================
   FOOTER POLISH
   ========================================================================== */
.assist-sidebar__footer {
  position: relative;
  z-index: 2;
  justify-content: center;
  border-top-color: rgba(255, 255, 255, 0.04);
  background: transparent;
  padding-left: 0;
  padding-right: 0;
}

.assist-sidebar__powered {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-subtle);
  letter-spacing: 0.02em;
}

.assist-sidebar__powered strong {
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted); /* Slightly brighter than subtle */
}

/* Powered-by wrapper - sits at bottom of body */
.assist-sidebar__powered-wrapper {
  display: flex;
  justify-content: center;
  padding: var(--ui-space-4) var(--ui-space-4) var(--ui-space-6);
  margin-top: auto;
}

/* ==========================================================================
   PANEL STRUCTURE - Ensure proper stacking
   ========================================================================== */
.assist-sidebar {
  position: relative;
  overflow: hidden;
}

/* Ensure header/body/footer are above ambient layer */
.assist-sidebar .ui-drawer__header,
.assist-sidebar .ui-drawer__body,
.assist-sidebar .ui-drawer__footer {
  position: relative;
  z-index: 2;
}

/* ==========================================================================
   DRAG GESTURE STYLES
   Swipe-to-close interaction with smooth animations
   ========================================================================== */
.assist-sidebar {
  /* Enable hardware acceleration for smooth transforms */
  will-change: transform;
  /* Allow horizontal swipe on touch devices */
  touch-action: pan-y pinch-zoom;
  /* Grab cursor hint (subtle) */
  cursor: default;
}

/* During active drag - disable transitions for real-time tracking */
.assist-sidebar.is-dragging {
  transition: none !important;
  cursor: grabbing;
  /* Slight shadow reduction during drag */
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.02), -2px 0 16px rgba(0, 0, 0, 0.1) !important;
}

/* Prevent text selection during drag */
.assist-sidebar.is-dragging * {
  -webkit-user-select: none;
          user-select: none;
}

/* ==========================================================================
   LOADING STATE - State C
   Calm, pulsing loader with animated dots
   ========================================================================== */
@keyframes assist-loading-pulse {
  0%, 100% {
    opacity: 0.6;
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(1.08);
  }
}
@keyframes assist-loading-dots {
  0%, 80%, 100% {
    opacity: 0.3;
    transform: scale(0.8);
  }
  40% {
    opacity: 1;
    transform: scale(1);
  }
}
.assist-sidebar__loading-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: var(--ui-space-8) var(--ui-space-4);
}

.assist-sidebar__loading-icon {
  width: 64px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--ui-space-5);
  font-size: 2rem;
  color: var(--ui-brand);
  animation: assist-loading-pulse 2s ease-in-out infinite;
}

.assist-sidebar__state-icon {
  width: 42px;
  height: 42px;
  display: block;
  object-fit: contain;
  opacity: 0.9;
  filter: sepia(1) saturate(1.55) hue-rotate(-18deg) brightness(1.08) drop-shadow(0 0 10px rgba(255, 120, 80, 0.22));
}

.assist-sidebar__loading-text {
  margin: 0 0 var(--ui-space-3) 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  letter-spacing: 0.01em;
}

.assist-sidebar__loading-dots {
  display: flex;
  gap: 6px;
}
.assist-sidebar__loading-dots span {
  width: 6px;
  height: 6px;
  background: var(--ui-brand);
  border-radius: 50%;
  animation: assist-loading-dots 1.4s ease-in-out infinite;
}
.assist-sidebar__loading-dots span:nth-child(1) {
  animation-delay: 0s;
}
.assist-sidebar__loading-dots span:nth-child(2) {
  animation-delay: 0.2s;
}
.assist-sidebar__loading-dots span:nth-child(3) {
  animation-delay: 0.4s;
}

/* ==========================================================================
   INSIGHT STATE - State B
   Clean, readable insight content
   ========================================================================== */
.assist-sidebar__insight {
  padding: var(--ui-space-4);
  flex: 1;
  overflow-y: auto;
}

.assist-sidebar__insight-content {
  font-size: var(--ui-text-sm);
  line-height: 1.7;
  color: var(--ui-text-secondary);
  /* Markdown-like styling */
}
.assist-sidebar__insight-content h1, .assist-sidebar__insight-content h2, .assist-sidebar__insight-content h3, .assist-sidebar__insight-content h4 {
  color: var(--ui-text-primary);
  margin-top: var(--ui-space-4);
  margin-bottom: var(--ui-space-2);
}
.assist-sidebar__insight-content h1:first-child, .assist-sidebar__insight-content h2:first-child, .assist-sidebar__insight-content h3:first-child, .assist-sidebar__insight-content h4:first-child {
  margin-top: 0;
}
.assist-sidebar__insight-content h3 {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
}
.assist-sidebar__insight-content p {
  margin: 0 0 var(--ui-space-3) 0;
}
.assist-sidebar__insight-content ul, .assist-sidebar__insight-content ol {
  margin: 0 0 var(--ui-space-3) 0;
  padding-left: var(--ui-space-4);
}
.assist-sidebar__insight-content li {
  margin-bottom: var(--ui-space-1);
}
.assist-sidebar__insight-content strong {
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-semibold);
}
.assist-sidebar__insight-content code {
  background: rgba(255, 255, 255, 0.06);
  padding: 2px 6px;
  border-radius: var(--ui-radius-sm);
  font-size: 0.9em;
}

/* ==========================================================================
   ERROR STATE
   ========================================================================== */
.assist-sidebar__error-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: var(--ui-space-8) var(--ui-space-4);
}

.assist-sidebar__error-icon {
  width: 64px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--ui-space-4);
  font-size: 2rem;
  color: var(--ui-warning);
  opacity: 0.8;
}

.assist-sidebar__error-text {
  margin: 0 0 var(--ui-space-2) 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-medium);
}

.assist-sidebar__error-hint {
  margin: 0;
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

/* ==========================================================================
   STARTER QUESTIONS - State A
   Clickable chips to trigger initial insight
   ========================================================================== */
.assist-sidebar__starter-questions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
  justify-content: center;
  margin-top: var(--ui-space-5);
  max-width: 300px;
}

.assist-sidebar__starter-chip {
  padding: var(--ui-space-2) var(--ui-space-3);
  background: rgba(255, 140, 80, 0.08);
  border: 1px solid rgba(255, 140, 80, 0.2);
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-secondary);
  cursor: pointer;
  transition: all 0.2s ease;
  animation: assistChipEnter 0.3s ease-out both;
}
.assist-sidebar__starter-chip:hover {
  background: rgba(255, 140, 80, 0.15);
  border-color: rgba(255, 140, 80, 0.35);
  color: var(--ui-text-primary);
  transform: translateY(-1px);
}
.assist-sidebar__starter-chip:active {
  transform: translateY(0);
}

@keyframes assistChipEnter {
  0% {
    opacity: 0;
    transform: translateY(8px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
/* ==========================================================================
   FOOTER VARIANTS
   ========================================================================== */
.assist-sidebar__footer--powered {
  justify-content: center;
  border-top-color: rgba(255, 255, 255, 0.04);
  background: transparent;
}

/* ==========================================================================
   STARTER QUESTIONS - State B (above search bar)
   Animated chips with staggered entry
   ========================================================================== */
/* Footer variant with questions */
.assist-sidebar__footer--with-questions {
  flex-direction: column;
  align-items: stretch;
  gap: var(--ui-space-4);
  padding: var(--ui-space-4) var(--ui-space-4);
}

/* Section wrapper */
.assist-starter-section {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

/* Subtle label */
.assist-starter-label {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  letter-spacing: 0.02em;
  padding-left: var(--ui-space-1);
}

/* Chips container */
.assist-starter-chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
}

/* Staggered fade + slide up animation */
@keyframes assist-chip-enter {
  0% {
    opacity: 0;
    transform: translateY(10px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
/* Individual chip */
.assist-starter-chip {
  display: inline-flex;
  align-items: center;
  padding: var(--ui-space-2) var(--ui-space-3);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-secondary);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--ui-radius-full);
  cursor: pointer;
  transition: all 0.2s ease;
  opacity: 1;
}
.assist-starter-chip:hover {
  background: rgba(255, 140, 80, 0.12);
  border-color: rgba(255, 140, 80, 0.3);
  color: var(--ui-text-primary);
  transform: translateY(-1px);
}
.assist-starter-chip:active {
  transform: translateY(0);
  background: rgba(255, 140, 80, 0.18);
}

/* ==========================================================================
   UI MODAL - WORKSHOP PIPELINE DIALOG
   ==========================================================================
   Full-screen pipeline modal with header, stats, filters, and data table.
   Uses design tokens from tokens.scss.

   STRUCTURE:
   .pipeline-dialog
     ├── .close-btn
     ├── .dialog-header
     │   ├── .header-top-row (.title-group, .sort-control)
     │   └── .header-bottom-row (.filters-group, .stats-group)
     ├── .collapse-toggle-btn
     └── .glass-data-table-card

   Panel class: workshop-pipeline-dialog-panel
   ========================================================================== */
/* ==========================================================================
   PIPELINE DIALOG CONTAINER
   ========================================================================== */
.pipeline-dialog {
  width: 100%;
  max-width: 98vw;
  height: 92vh;
  min-height: 600px;
  max-height: 98vh;
  background: var(--ui-glass-light);
  backdrop-filter: blur(60px) saturate(200%) brightness(1.2);
  -webkit-backdrop-filter: blur(60px) saturate(200%) brightness(1.2);
  border-radius: var(--ui-radius-2xl);
  border: 1px solid var(--ui-border);
  box-shadow: var(--ui-shadow-xl);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  padding: 12px 20px 16px 20px;
  position: relative;
}

/* ==========================================================================
   CLOSE BUTTON
   ========================================================================== */
.pipeline-dialog .close-btn {
  position: absolute;
  top: 14px;
  right: 18px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 1px solid var(--ui-border-hover);
  background: var(--ui-surface-2);
  color: var(--ui-text-secondary);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--ui-transition-base);
  z-index: 100;
  backdrop-filter: var(--ui-blur-sm);
  -webkit-backdrop-filter: var(--ui-blur-sm);
}

.pipeline-dialog .close-btn:hover {
  background: linear-gradient(135deg, rgba(255, 120, 80, 0.9), rgba(255, 100, 56, 0.95));
  border-color: rgba(255, 120, 80, 0.5);
  color: var(--ui-text-primary);
  transform: scale(1.08) rotate(90deg);
  box-shadow: 0 8px 24px rgba(255, 120, 80, 0.4);
}

.pipeline-dialog .close-btn:active {
  transform: scale(0.95) rotate(90deg);
}

/* ==========================================================================
   DIALOG HEADER - TWO ROW LAYOUT
   ========================================================================== */
.pipeline-dialog .dialog-header {
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition: var(--ui-transition-slow);
  position: relative;
  z-index: 10;
  background: transparent;
  margin: -12px -20px 0 -20px;
  padding: 12px 20px 8px 20px;
}

/* Top Row: Title + Sort */
.pipeline-dialog .header-top-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.pipeline-dialog .dialog-title {
  margin: 0;
  font-size: 22px;
  font-weight: 700;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.7) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1.2;
  letter-spacing: -0.3px;
}

/* Bottom Row: Filters + Stats */
.pipeline-dialog .header-bottom-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

@keyframes pipeline-slideDown {
  from {
    opacity: 0;
    transform: translateY(-20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* ==========================================================================
   SORT CONTROL
   ========================================================================== */
.pipeline-dialog .sort-control {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  margin-right: 40px;
}

.pipeline-dialog .sort-control .search-action-btn {
  border: none;
  background: transparent;
  padding-left: 0;
}

.pipeline-dialog .control-label {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-muted);
  white-space: nowrap;
}

/* ==========================================================================
   FILTER GROUP
   ========================================================================== */
.pipeline-dialog .filters-group {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
}

.pipeline-dialog .filter-prefix {
  color: var(--ui-text-muted);
  font-weight: var(--ui-font-medium);
  margin-right: 4px;
  font-size: 11px;
}

.pipeline-dialog .filter-value-text {
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-semibold);
  font-size: 11px;
}

.pipeline-dialog .search-action-btn {
  border-radius: var(--ui-radius-full);
  padding: 0 12px;
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-1);
  color: var(--ui-text-secondary);
  backdrop-filter: var(--ui-blur-sm);
  font-size: 11px;
  transition: var(--ui-transition-base);
  height: 28px;
  cursor: pointer;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--ui-shadow-sm);
  font-family: inherit;
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.01em;
}

.pipeline-dialog .search-action-btn:hover {
  transform: translateY(-1px);
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
  color: var(--ui-text-primary);
}

.pipeline-dialog .search-action-btn svg {
  margin-left: 6px;
  opacity: 0.7;
}

/* Clear Filters Button */
.pipeline-dialog .clear-filters-btn {
  background: rgba(255, 120, 80, 0.1);
  color: var(--ui-brand);
  border: 1px solid rgba(255, 120, 80, 0.3);
  padding: 0 10px;
  height: 28px;
  border-radius: var(--ui-radius-full);
  font-size: 11px;
  font-weight: var(--ui-font-bold);
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  transition: var(--ui-transition-slow);
  backdrop-filter: var(--ui-blur-sm);
  -webkit-backdrop-filter: var(--ui-blur-sm);
  box-shadow: var(--ui-shadow-sm);
}

.pipeline-dialog .clear-filters-btn svg {
  margin: 0;
  opacity: 1;
}

.pipeline-dialog .clear-filters-btn:hover {
  background: rgba(255, 120, 80, 0.2);
  border-color: rgba(255, 120, 80, 0.5);
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(255, 120, 80, 0.25);
  color: var(--ui-text-primary);
}

.pipeline-dialog .clear-filters-btn:active {
  transform: translateY(0) scale(0.98);
}

/* ==========================================================================
   STATS GROUP - METRIC CARDS (Horizontal Row)
   ========================================================================== */
.pipeline-dialog .stats-group {
  display: flex;
  flex-direction: row;
  gap: 12px;
  align-items: stretch;
}

.pipeline-dialog .metric-card {
  flex: 0 0 auto;
  min-width: 140px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 10px 16px;
  border-radius: 16px;
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02));
  border: 1px solid var(--ui-border-hover);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
  backdrop-filter: var(--ui-blur-md);
  transition: var(--ui-transition-slow);
  cursor: pointer;
}

.pipeline-dialog .metric-card:hover {
  transform: translateY(-6px);
  border-color: rgba(255, 255, 255, 0.3);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.05));
  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.45);
}

.pipeline-dialog .metric-card.active {
  transform: translateY(-4px);
  border-color: rgba(255, 255, 255, 0.5);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0.06));
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.5);
}

/* Metric Card Variants */
.pipeline-dialog .metric-card--neutral {
  border-color: var(--ui-border-hover);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.02));
}

.pipeline-dialog .metric-card--alert {
  border-color: rgba(255, 120, 80, 0.32);
  background: linear-gradient(155deg, rgba(255, 120, 80, 0.18), rgba(255, 255, 255, 0.02));
}

.pipeline-dialog .metric-card--alert.active {
  border-color: rgba(255, 120, 80, 0.7);
  background: linear-gradient(155deg, rgba(255, 120, 80, 0.25), rgba(255, 255, 255, 0.04));
}

.pipeline-dialog .metric-card--positive {
  border-color: rgba(120, 220, 180, 0.28);
  background: linear-gradient(155deg, rgba(120, 220, 180, 0.18), rgba(255, 255, 255, 0.02));
}

.pipeline-dialog .metric-card--positive.active {
  border-color: rgba(120, 220, 180, 0.7);
  background: linear-gradient(155deg, rgba(120, 220, 180, 0.25), rgba(255, 255, 255, 0.04));
}

/* Metric Card Header */
.pipeline-dialog .metric-card__header {
  display: flex;
  align-items: center;
  gap: 10px;
}

.pipeline-dialog .metric-card__icon {
  width: 22px;
  height: 22px;
  filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.45));
}

.pipeline-dialog .metric-card__label {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  color: rgba(255, 255, 255, 0.75);
  letter-spacing: 0.02em;
  line-height: 1.2;
}

/* Metric Card Value - Full width bar */
.pipeline-dialog .metric-card__value {
  margin-top: 6px;
  min-height: 28px;
  border-radius: var(--ui-radius-full);
  background: rgba(255, 255, 255, 0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-secondary);
  letter-spacing: 0.03em;
  width: 100%;
}

.pipeline-dialog .metric-card__value--alert {
  background: rgba(255, 120, 80, 0.15);
  color: rgb(255, 162, 126);
  border: 1px solid rgba(255, 120, 80, 0.35);
}

.pipeline-dialog .metric-card__value--positive {
  background: rgba(96, 187, 132, 0.16);
  color: rgba(163, 241, 189, 0.95);
  border: 1px solid rgba(96, 187, 132, 0.32);
}

/* Collapse toggle removed — always visible header */
/* Strip the stats-strip container inside the pipeline dialog */
.pipeline-dialog .stats-strip {
  background: none;
  border: none;
  border-radius: 0;
  padding: 0;
  gap: 6px;
}

/* ==========================================================================
   TABLE SECTION - GLASS TABLE OVERRIDES
   ========================================================================== */
.pipeline-dialog .glass-data-table-card {
  padding: 0;
  overflow: hidden;
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  transition: var(--ui-transition-slow);
  max-height: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

.pipeline-dialog .glass-table-wrap {
  padding: 0;
  overflow-y: auto;
  flex: 1 1 auto;
  min-height: 0;
}

/* Table structure - standard layout */
.pipeline-dialog .glass-data-table {
  display: table;
  width: 100%;
  table-layout: fixed;
}

.pipeline-dialog .glass-data-table thead {
  display: table-header-group;
}

.pipeline-dialog .glass-data-table tbody {
  display: table-row-group;
}

.pipeline-dialog .glass-data-table thead tr,
.pipeline-dialog .glass-data-table tbody tr {
  display: table-row;
}

.pipeline-dialog .glass-data-table th,
.pipeline-dialog .glass-data-table td {
  display: table-cell;
  padding: 10px 12px;
}

/* Table header styling */
.pipeline-dialog .glass-data-table thead th {
  background: #424041;
  background-clip: padding-box;
  box-shadow: 0 18px 24px rgba(16, 14, 18, 0.55);
  padding-top: 14px;
  padding-bottom: 14px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 11px;
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-secondary);
}

/* Cell muted text */
.pipeline-dialog .glass-data-table .cell-muted {
  font-size: 9px;
  margin-top: 2px;
}

/* Column widths */
.pipeline-dialog .col-delivery {
  min-width: 160px;
  width: 160px;
}

.pipeline-dialog .col-whatsapp {
  width: 90px;
  max-width: 90px;
}

.pipeline-dialog .col-claim {
  width: 100px;
  max-width: 100px;
  text-align: center;
}

.pipeline-dialog .col-remarks {
  width: 140px;
}

/* ==========================================================================
   STATUS CHIPS
   ========================================================================== */
.pipeline-dialog .status-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 3px 8px;
  border-radius: 12px;
  font-size: 9px;
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.02em;
  text-transform: uppercase;
  border: 1px solid var(--ui-border-hover);
  background: var(--ui-surface-hover);
  color: var(--ui-text-secondary);
  white-space: nowrap;
}

/* Orange styling for currentStatus (On-Hold, Part Pending, etc.) */
.pipeline-dialog .chip-current-status {
  border: 1px solid rgba(255, 120, 79, 0.4);
  background: rgba(255, 120, 79, 0.12);
  color: var(--ui-brand);
}

.pipeline-dialog .chip-yes {
  background: rgba(74, 244, 177, 0.15);
  border-color: rgba(74, 244, 177, 0.4);
  color: #4af4b1;
}

.pipeline-dialog .chip-no {
  background: var(--ui-surface-1);
  border-color: var(--ui-border);
  color: var(--ui-text-subtle);
}

/* ==========================================================================
   STATUS STACK (Main + Sub Status)
   ========================================================================== */
.pipeline-dialog .status-stack {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}

.pipeline-dialog .status-stack--center {
  align-items: center;
}

.pipeline-dialog .sub-status-pill {
  display: inline-flex;
  align-items: center;
  padding: 2px 6px;
  border-radius: 4px;
  font-size: 8px;
  font-weight: var(--ui-font-medium);
  letter-spacing: 0.02em;
  background: var(--ui-surface-2);
  color: var(--ui-text-muted);
  border: 1px solid var(--ui-border);
}

/* ==========================================================================
   CASH JOB LABEL
   ========================================================================== */
.pipeline-dialog .cash-job-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 4px 12px;
  border-radius: var(--ui-radius-full);
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: var(--ui-surface-1);
  font-size: 9px;
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--ui-text-muted);
  white-space: nowrap;
}

.pipeline-dialog .cash-job-label svg {
  opacity: 0.7;
}

/* ==========================================================================
   ROW HIGHLIGHT (Delayed Jobs)
   ========================================================================== */
.pipeline-dialog .glass-data-table tbody tr.row-highlight {
  background: rgba(255, 95, 109, 0.12);
}

.pipeline-dialog .glass-data-table tbody tr.row-highlight:hover {
  background: rgba(255, 95, 109, 0.18);
}

/* ==========================================================================
   REMARKS TEXT
   ========================================================================== */
.pipeline-dialog .remarks-text {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 180px;
  color: rgba(255, 255, 255, 0.75);
  font-size: var(--ui-text-sm);
  line-height: 1.4;
}

/* ==========================================================================
   TEXT UTILITIES
   ========================================================================== */
.pipeline-dialog .text-center {
  text-align: center;
}

.pipeline-dialog .text-danger {
  color: var(--ui-danger);
}

.pipeline-dialog .cell-strong {
  display: inline-block;
  color: var(--ui-text-secondary);
  font-weight: var(--ui-font-semibold);
  font-size: var(--ui-text-sm);
  line-height: normal;
  vertical-align: middle;
}

/* ==========================================================================
   STATUS BADGE COLORS (for exactStatus)
   ========================================================================== */
.pipeline-dialog .status-red {
  color: var(--ui-danger);
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
}

.pipeline-dialog .status-green {
  color: var(--ui-success);
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
}

.pipeline-dialog .status-amber {
  color: var(--ui-warning);
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
}

.pipeline-dialog .status-light {
  color: var(--ui-text-muted);
  background: var(--ui-surface-2);
  border-color: var(--ui-border);
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1400px) {
  .pipeline-dialog {
    padding: 12px 18px 16px;
  }
  .pipeline-dialog .dialog-title {
    font-size: 20px;
  }
}
@media (max-width: 960px) {
  .pipeline-dialog {
    padding: 28px 32px 32px;
  }
  .pipeline-dialog .dialog-title {
    font-size: var(--ui-text-2xl);
  }
  .pipeline-dialog .header-bottom-row {
    flex-direction: column;
    gap: 16px;
  }
  .pipeline-dialog .filters-group,
  .pipeline-dialog .stats-group {
    width: 100%;
  }
}
@media (max-width: 640px) {
  .pipeline-dialog {
    padding: 24px 20px 24px;
    border-radius: var(--ui-radius-lg);
  }
  .pipeline-dialog .dialog-title {
    font-size: var(--ui-text-xl);
  }
  .pipeline-dialog .close-btn {
    top: 16px;
    right: 16px;
  }
}
/* ==========================================================================
   PRINT STYLES
   ========================================================================== */
@media print {
  .pipeline-dialog {
    background: white;
    box-shadow: none;
    max-height: none;
  }
  .pipeline-dialog .close-btn {
    display: none;
  }
  .pipeline-dialog .glass-data-table th,
  .pipeline-dialog .glass-data-table td {
    color: #000;
  }
}
/* ==========================================================================
   PICK-DROP DETAILS MODAL - UI Contract
   ==========================================================================
   Styles for Pick-Drop Movement Details Modal
   Used on: /console/wms/pick-drop

   Component: PickDropDetailsComponent
   Panel Class: pick-drop-details-panel, glass-dialog-panel
   Container Class: .glass-modal-container .pick-drop-modal

   ARCHITECTURE:
   - Base glass styling: inherited from .glass-modal-container (layout/modal.scss)
   - Feature styling: defined here (.pick-drop-modal)
   ========================================================================== */
/* ==========================================================================
   THEME DEFINITIONS
   Pickup = Orange (#ff7850), Drop = Indigo (#6366f1)
   ========================================================================== */
.pick-drop-modal {
  /* CSS Custom Properties for theming */
  --pd-accent: var(--ui-brand);
  --pd-accent-glow: rgba(255, 120, 80, 0.4);
  --pd-accent-bg: rgba(255, 120, 80, 0.12);
  --pd-border: rgba(255, 120, 80, 0.25);
  /* Override generic glass modal max-width (600px) for this details layout. */
  width: 100%;
  max-width: none;
  margin: 0 auto;
}

/* Keep this modal centered horizontally and slightly lower on screen. */
body .cdk-overlay-pane.pick-drop-details-panel.centered-modal {
  justify-content: center !important;
  align-items: flex-start !important;
  padding-top: 48px !important;
}

.pick-drop-modal.pickup-theme {
  --pd-accent: #ff7850;
  --pd-accent-glow: rgba(255, 120, 80, 0.4);
  --pd-accent-bg: rgba(255, 120, 80, 0.12);
  --pd-border: rgba(255, 120, 80, 0.25);
}

.pick-drop-modal.drop-theme {
  --pd-accent: #6366f1;
  --pd-accent-glow: rgba(99, 102, 241, 0.4);
  --pd-accent-bg: rgba(99, 102, 241, 0.12);
  --pd-border: rgba(99, 102, 241, 0.25);
}

/* ==========================================================================
   SCROLLBAR CUSTOMIZATION
   ========================================================================== */
.pick-drop-modal {
  scrollbar-width: thin;
  scrollbar-color: var(--pd-accent-glow) transparent;
}

.pick-drop-modal::-webkit-scrollbar {
  width: 6px;
}

.pick-drop-modal::-webkit-scrollbar-track {
  background: transparent;
}

.pick-drop-modal::-webkit-scrollbar-thumb {
  background: var(--pd-accent-glow);
  border-radius: 10px;
}

/* ==========================================================================
   HEADER
   ========================================================================== */
.pick-drop-modal .modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-5);
  margin-bottom: var(--ui-space-5);
  padding-bottom: var(--ui-space-4);
  border-bottom: 1px solid var(--ui-border);
}

.pick-drop-modal .glass-modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-5);
  margin-bottom: 0;
  padding-bottom: var(--ui-space-4);
  border-bottom: 1px solid var(--ui-border);
}

.pick-drop-modal .header-main {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-4);
}

.pick-drop-modal .header-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.pick-drop-modal .header-icon-hero {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: var(--ui-radius-lg);
  background: linear-gradient(135deg, var(--pd-accent-bg) 0%, rgba(0, 0, 0, 0.2) 100%);
  border: 1px solid var(--pd-border);
  box-shadow: 0 0 20px var(--pd-accent-glow), 0 4px 12px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1);
  animation: pd-icon-pulse 2s ease-in-out infinite;
}

.pick-drop-modal .header-icon-hero mat-icon {
  font-size: 28px;
  width: 28px;
  height: 28px;
  color: var(--pd-accent);
  filter: drop-shadow(0 0 6px var(--pd-accent-glow));
}

@keyframes pd-icon-pulse {
  0%, 100% {
    box-shadow: 0 0 20px var(--pd-accent-glow), 0 4px 12px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1);
  }
  50% {
    box-shadow: 0 0 30px var(--pd-accent-glow), 0 4px 16px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.1);
  }
}
.pick-drop-modal .header-eyebrow {
  display: inline-block;
  font-size: var(--ui-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: var(--ui-font-semibold);
  color: var(--pd-accent);
  margin: 0 0 10px;
  padding: 4px 10px;
  background: var(--pd-accent-bg);
  border: 1px solid var(--pd-border);
  border-radius: var(--ui-radius-sm);
}

.pick-drop-modal .header-title {
  margin: 0;
  font-size: var(--ui-text-2xl);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
}

.pick-drop-modal .header-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

/* ==========================================================================
   STATUS DROPDOWN
   ========================================================================== */
.pick-drop-modal .status-dropdown-container {
  position: relative;
}

.pick-drop-modal .status-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 36px;
  padding: 0 12px 0 16px;
  border-radius: var(--ui-radius-full);
  border: 1px solid rgba(255, 255, 255, 0.15);
  background: var(--ui-surface-2);
  color: var(--ui-text-secondary);
  font-weight: var(--ui-font-semibold);
  font-size: var(--ui-text-sm);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.pick-drop-modal .status-pill:hover {
  background: var(--ui-surface-active);
}

.pick-drop-modal .status-pill .dropdown-arrow {
  font-size: 18px;
  width: 18px;
  height: 18px;
  transition: transform var(--ui-transition-base);
}

.pick-drop-modal .status-pill.status-pending {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.pick-drop-modal .status-pill.status-in-progress {
  background: var(--ui-info-bg);
  border-color: var(--ui-info-border);
  color: var(--ui-info);
}

.pick-drop-modal .status-pill.status-completed {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.pick-drop-modal .status-pill.status-failed,
.pick-drop-modal .status-pill.status-cancelled {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
}

.pick-drop-modal .status-pill.status-manual {
  border-style: dashed;
}

.pick-drop-modal .status-pill .chip-source-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  line-height: 16px;
}

/* Source badge: Verified (driver app) / Manual (advisor console) */
.pick-drop-modal .source-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 24px;
  padding: 0 10px;
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.03em;
  text-transform: uppercase;
  cursor: default;
}

.pick-drop-modal .source-badge .chip-source-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  line-height: 14px;
}

.pick-drop-modal .source-badge.verified {
  background: var(--ui-success-bg);
  border: 1px solid var(--ui-success-border);
  color: var(--ui-success);
}

.pick-drop-modal .source-badge.manual {
  background: var(--ui-warning-bg);
  border: 1px solid var(--ui-warning-border);
  color: var(--ui-warning);
}

.pick-drop-modal .status-dropdown-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 160px;
  padding: 6px;
  background: linear-gradient(150deg, rgba(40, 35, 30, 0.98), rgba(30, 25, 20, 0.98));
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--ui-radius-md);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5);
  z-index: var(--z-dropdown);
}

.pick-drop-modal .status-option {
  display: block;
  width: 100%;
  padding: 10px 14px;
  border: none;
  background: transparent;
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-medium);
  text-align: left;
  border-radius: var(--ui-radius-sm);
  cursor: pointer;
  transition: var(--ui-transition-fast);
}

.pick-drop-modal .status-option:hover {
  background: var(--ui-surface-hover);
  color: var(--ui-text-primary);
}

.pick-drop-modal .status-option.active {
  background: rgba(255, 180, 150, 0.15);
  color: rgb(255, 180, 150);
}

.pick-drop-modal .dropdown-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: calc(var(--z-dropdown) - 1);
}

/* ==========================================================================
   CLOSE BUTTON
   ========================================================================== */
.pick-drop-modal .close-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 18px;
  border-radius: var(--ui-radius-full);
  border: 1px solid rgba(255, 255, 255, 0.15);
  background: var(--ui-surface-2);
  color: var(--ui-text-secondary);
  font-weight: var(--ui-font-semibold);
  font-size: var(--ui-text-base);
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.pick-drop-modal .close-btn.icon-only {
  width: 36px;
  height: 36px;
  padding: 0;
  border-radius: 50%;
}

.pick-drop-modal .close-btn.icon-only mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  line-height: 20px;
}

.pick-drop-modal .close-btn:hover {
  background: var(--ui-surface-active);
  border-color: rgba(255, 255, 255, 0.25);
  transform: rotate(90deg);
}

/* ==========================================================================
   SUMMARY GRID - 5 Column Strip
   ========================================================================== */
.pick-drop-modal .summary-grid {
  display: flex;
  gap: 0;
  margin-bottom: var(--ui-space-6);
  padding: var(--ui-space-4) var(--ui-space-5);
  border-radius: var(--ui-radius-lg);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02));
  backdrop-filter: var(--ui-blur-md);
  -webkit-backdrop-filter: var(--ui-blur-md);
  border: 1px solid var(--ui-border);
  box-shadow: var(--ui-shadow-md);
  border-left: 3px solid var(--pd-accent);
}

.pick-drop-modal .summary-grid.compact {
  padding: 14px 18px;
}

.pick-drop-modal .summary-grid article {
  flex: 1;
  padding: 0 var(--ui-space-5);
  border-left: 1px solid var(--ui-border);
}

.pick-drop-modal .summary-grid article:first-child {
  padding-left: 0;
  border-left: none;
}

.pick-drop-modal .summary-grid article:last-child {
  padding-right: 0;
}

.pick-drop-modal .summary-grid span {
  display: block;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ui-text-subtle);
  margin-bottom: 4px;
}

.pick-drop-modal .summary-grid strong {
  display: block;
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pick-drop-modal .delayed-alert strong {
  color: var(--ui-danger);
}

/* ==========================================================================
   DRIVER DROPDOWN
   ========================================================================== */
.pick-drop-modal .driver-dropdown-container {
  position: relative;
  display: inline-block;
}

.pick-drop-modal .driver-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: auto;
  line-height: inherit;
  padding: 0;
  border-radius: 0;
  border: none;
  background: transparent;
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-semibold);
  font-size: var(--ui-text-base);
  cursor: pointer;
  transition: opacity var(--ui-transition-base);
}

.pick-drop-modal .driver-pill:hover {
  opacity: 0.8;
}

.pick-drop-modal .driver-pill.no-driver {
  color: var(--ui-warning);
}

.pick-drop-modal .driver-pill .dropdown-arrow {
  font-size: 16px;
  width: 16px;
  height: 16px;
  transition: transform var(--ui-transition-base);
}

.pick-drop-modal .driver-dropdown-menu {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  min-width: 180px;
  max-height: 200px;
  overflow-y: auto;
  padding: 6px;
  background: linear-gradient(150deg, rgba(40, 35, 30, 0.98), rgba(30, 25, 20, 0.98));
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--ui-radius-md);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5);
  z-index: var(--z-dropdown);
}

.pick-drop-modal .driver-option {
  display: block;
  width: 100%;
  padding: 10px 14px;
  border: none;
  background: transparent;
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-medium);
  text-align: left;
  border-radius: var(--ui-radius-sm);
  cursor: pointer;
  transition: var(--ui-transition-fast);
}

.pick-drop-modal .driver-option:hover {
  background: var(--ui-surface-hover);
  color: var(--ui-text-primary);
}

.pick-drop-modal .driver-option.active {
  background: rgba(255, 180, 150, 0.15);
  color: rgb(255, 180, 150);
}

.pick-drop-modal .driver-empty {
  padding: 12px 14px;
  color: var(--ui-text-subtle);
  font-size: var(--ui-text-sm);
  text-align: center;
}

/* ==========================================================================
   CONTENT GRID - Two Column Layout
   ========================================================================== */
.pick-drop-modal .content-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: var(--ui-space-5);
  align-items: stretch;
}

.pick-drop-modal .content-grid > div {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
  min-width: 0;
}

.pick-drop-modal .bottom-grid {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: var(--ui-space-5);
  margin-top: var(--ui-space-5);
  align-items: start;
}

/* ==========================================================================
   CONTENT SECTION — defers to canonical ui-card / ui-card--subtle contract
   via .glass-modal-container normalization in layout/modal.scss.
   Only layout glue lives here.
   ========================================================================== */
.pick-drop-modal .content-section {
  text-align: left;
  width: 100%;
  box-sizing: border-box;
}

.pick-drop-modal .section-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 14px;
  border-radius: 999px;
  border: 1px solid rgba(255, 180, 150, 0.2);
  background: rgba(255, 180, 150, 0.08);
  color: rgba(255, 200, 170, 0.95);
  font-size: 10px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.25s ease;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.pick-drop-modal .section-btn mat-icon {
  font-size: 13px;
  width: 13px;
  height: 13px;
}

.pick-drop-modal .section-btn.subtle {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.7);
  font-size: 9px;
  padding: 5px 12px;
}

.pick-drop-modal .section-btn:hover:not(:disabled) {
  background: rgba(255, 180, 150, 0.16);
  border-color: rgba(255, 180, 150, 0.35);
  color: rgb(255, 220, 200);
  box-shadow: 0 2px 12px rgba(255, 120, 80, 0.2);
  transform: translateY(-1px);
}

.pick-drop-modal .section-btn:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

/* Section Divider - Invisible spacing divider */
.pick-drop-modal .section-divider {
  height: 0;
  background: transparent;
  margin: 16px 0;
  border: none;
}

/* ==========================================================================
   INFO GRID - Premium 3-Column Layout
   ========================================================================== */
.pick-drop-modal .info-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  background: transparent;
  border-radius: 0;
  overflow: visible;
  border: none;
}

.pick-drop-modal .info-item {
  position: relative;
  padding: 8px 16px 8px 0;
  background: transparent;
  border: none;
  transition: background 0.2s ease;
}

.pick-drop-modal .info-item:last-child {
  padding-right: 0;
}

.pick-drop-modal .info-item:hover {
  background: transparent;
}

/* Location Section - Address text styling */
.pick-drop-modal .content-section > .field-value {
  padding: 0;
  background: transparent;
  border-radius: 0;
  border: none;
  font-size: 14px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.8);
  margin-top: 4px;
}

.pick-drop-modal .content-section > .muted-text {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.4);
  margin-top: 6px;
  padding-left: 0;
}

.pick-drop-modal .field-label {
  display: block;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.4);
  margin-bottom: 6px;
}

.pick-drop-modal .field-value {
  font-size: 15px;
  font-weight: 600;
  margin: 0;
  color: var(--ui-text-primary);
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pick-drop-modal .muted-value {
  color: rgba(255, 255, 255, 0.35);
  font-style: italic;
  font-weight: 400;
}

.pick-drop-modal .muted-text {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  margin: 4px 0 0;
}

/* ==========================================================================
   VEHICLE INSPECTION - Polished Card Layout
   ========================================================================== */
.pick-drop-modal .inspection-row {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  margin-top: 8px;
}

.pick-drop-modal .inspection-field {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  transition: all 0.2s ease;
}

.pick-drop-modal .inspection-field:hover {
  background: transparent;
  transform: none;
}

.pick-drop-modal .inspection-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: rgba(255, 180, 150, 0.12);
  border: none;
  flex-shrink: 0;
  box-shadow: none;
}

.pick-drop-modal .inspection-icon mat-icon {
  font-size: 22px;
  width: 22px;
  height: 22px;
  color: rgb(255, 180, 150);
  filter: drop-shadow(0 2px 4px rgba(255, 120, 80, 0.3));
}

.pick-drop-modal .inspection-input-group {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.pick-drop-modal .inspection-input-group .field-label {
  margin-bottom: 0;
  font-size: 8px;
  color: rgba(255, 180, 150, 0.7);
}

.pick-drop-modal .field-input {
  width: 100%;
  padding: 10px 14px;
  margin-top: 6px;
  font-size: 15px;
  font-weight: 500;
  color: var(--ui-text-primary);
  background: rgba(0, 0, 0, 0.3);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  outline: none;
  transition: all 0.2s ease;
  font-family: var(--ui-font-primary);
}

.pick-drop-modal .field-input::placeholder {
  color: rgba(255, 255, 255, 0.3);
  font-weight: 400;
}

.pick-drop-modal .field-input:focus {
  background: rgba(0, 0, 0, 0.4);
  border-color: rgba(255, 180, 150, 0.4);
  box-shadow: 0 0 0 3px rgba(255, 180, 150, 0.1);
}

.pick-drop-modal .field-input:hover:not(:focus) {
  border-color: rgba(255, 255, 255, 0.18);
}

.pick-drop-modal .field-input[type=number]::-webkit-inner-spin-button,
.pick-drop-modal .field-input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.pick-drop-modal .field-input[type=number] {
  appearance: textfield;
  -moz-appearance: textfield;
}

.pick-drop-modal .inspection-input-group .field-input {
  margin-top: 0;
  padding: 10px 14px;
  font-size: 14px;
}

/* ==========================================================================
   VERIFICATION SECTION - Premium Card Grid
   ========================================================================== */
.pick-drop-modal .verification-row {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  background: transparent;
  border-radius: 0;
  overflow: visible;
  border: none;
}

.pick-drop-modal .otp-status-card,
.pick-drop-modal .signature-box,
.pick-drop-modal .verification-row .info-item {
  padding: 0;
  background: transparent;
  border: none;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.pick-drop-modal .otp-status-card .field-label,
.pick-drop-modal .signature-box .field-label {
  font-size: 9px;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.4);
  margin-bottom: 2px;
}

.pick-drop-modal .otp-status-card .muted-text {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.3);
  margin: 0;
  line-height: 1.4;
}

.pick-drop-modal .signature-box {
  align-items: flex-start;
}

.pick-drop-modal .signature-box .muted-text {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.3);
  margin: 0 0 6px;
  line-height: 1.4;
}

.pick-drop-modal .signature-box img {
  max-width: 90px;
  max-height: 44px;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  padding: 8px 12px;
  background: rgba(255, 255, 255, 0.06);
}

.pick-drop-modal .status-row {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 600;
  color: var(--ui-text-primary);
}

.pick-drop-modal .verify-icon {
  color: var(--ui-success);
  font-size: 20px;
  width: 20px;
  height: 20px;
  filter: drop-shadow(0 2px 4px rgba(46, 204, 113, 0.3));
}

.pick-drop-modal .fail-icon {
  color: var(--ui-danger);
  font-size: 20px;
  width: 20px;
  height: 20px;
  filter: drop-shadow(0 2px 4px rgba(231, 76, 60, 0.3));
}

.pick-drop-modal .pending-icon {
  color: var(--ui-warning);
  font-size: 20px;
  width: 20px;
  height: 20px;
  filter: drop-shadow(0 2px 4px rgba(241, 196, 15, 0.3));
}

.pick-drop-modal .failure-note {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--ui-danger);
  background: rgba(231, 76, 60, 0.12);
  padding: 10px 14px;
  border-radius: 10px;
  margin-top: 12px;
  border: 1px solid rgba(231, 76, 60, 0.2);
}

.pick-drop-modal .failure-note mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.pick-drop-modal .notes-text {
  line-height: 1.6;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.7);
  padding: 0;
  background: transparent;
  border-radius: 0;
  border: none;
  margin-top: 4px;
}

/* ==========================================================================
   MOVEMENT TIMELINE
   ========================================================================== */
.pick-drop-modal .timeline-section {
  max-height: 320px;
  display: flex;
  flex-direction: column;
}

.pick-drop-modal .timeline-section .timeline,
.pick-drop-modal .timeline-compact {
  flex: 1;
  overflow-y: auto;
  max-height: 240px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  width: 100%;
  scrollbar-width: thin;
  scrollbar-color: var(--pd-accent-glow) transparent;
}

.pick-drop-modal .timeline-item {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: var(--ui-space-3);
  padding: 8px 0;
  position: relative;
  width: 100%;
}

.pick-drop-modal .timeline-item:not(:last-child)::before {
  content: "";
  position: absolute;
  left: 11px;
  top: 36px;
  width: 2px;
  height: 20px;
  background: rgba(255, 255, 255, 0.15);
  pointer-events: none;
  z-index: 0;
}

.pick-drop-modal .timeline-item.current:not(:last-child)::before {
  background: rgba(255, 180, 150, 0.4);
}

.pick-drop-modal .timeline-marker-wrapper {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  position: relative;
  z-index: 1;
}

.pick-drop-modal .timeline-marker-icon {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--ui-surface-3);
  border: 1px solid rgba(255, 255, 255, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
}

.pick-drop-modal .timeline-item.current .timeline-marker-icon {
  background: rgba(255, 180, 150, 0.2);
  border-color: rgba(255, 180, 150, 0.5);
}

.pick-drop-modal .timeline-marker-icon mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: var(--ui-text-muted);
}

.pick-drop-modal .timeline-item.current .timeline-marker-icon mat-icon {
  color: rgb(255, 180, 150);
}

.pick-drop-modal .timeline-label {
  flex: 1;
  font-size: var(--ui-text-base);
  color: var(--ui-text-secondary);
  white-space: nowrap;
}

.pick-drop-modal .timeline-item.current .timeline-label {
  color: rgb(255, 180, 150);
  font-weight: var(--ui-font-semibold);
}

.pick-drop-modal .timeline-time {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-subtle);
  white-space: nowrap;
}

/* ==========================================================================
   EVIDENCE GALLERY
   ========================================================================== */
.pick-drop-modal .evidence-section {
  min-height: 200px;
}

.pick-drop-modal .evidence-groups {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.pick-drop-modal .evidence-group {
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
  padding: 10px;
}

.pick-drop-modal .evidence-group-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.pick-drop-modal .evidence-group-header mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: rgba(255, 180, 150, 0.7);
}

.pick-drop-modal .evidence-count {
  font-weight: var(--ui-font-normal);
  color: var(--ui-text-subtle);
}

.pick-drop-modal .gallery-mini {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
  gap: 8px;
}

.pick-drop-modal .gallery-mini figure {
  margin: 0;
  border-radius: var(--ui-radius-sm);
  overflow: hidden;
  border: 1px solid var(--ui-border-light);
  aspect-ratio: 1;
  cursor: pointer;
}

.pick-drop-modal .gallery-mini img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--ui-transition-base), opacity var(--ui-transition-base);
}

.pick-drop-modal .gallery-mini figure:hover img {
  transform: scale(1.08);
  opacity: 0.9;
}

.pick-drop-modal .empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--ui-space-8) var(--ui-space-4);
  text-align: center;
  color: var(--ui-text-subtle);
}

.pick-drop-modal .empty-state mat-icon {
  font-size: 36px;
  width: 36px;
  height: 36px;
  margin-bottom: 10px;
  opacity: 0.5;
}

.pick-drop-modal .empty-state p {
  margin: 0;
  font-size: var(--ui-text-base);
}

/* ==========================================================================
   LIGHTBOX OVERLAY
   ========================================================================== */
.pick-drop-modal .lightbox-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 10000;
  background: rgba(0, 0, 0, 0.85);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  display: flex;
  align-items: center;
  justify-content: center;
  animation: pd-lightboxFadeIn 0.2s ease-out;
}

@keyframes pd-lightboxFadeIn {
  from {
    opacity: 0;
    backdrop-filter: blur(0);
  }
  to {
    opacity: 1;
    backdrop-filter: blur(20px);
  }
}
.pick-drop-modal .lightbox-container {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  padding: 60px 80px 100px;
}

.pick-drop-modal .lightbox-close {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: var(--ui-surface-active);
  color: var(--ui-text-secondary);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--ui-transition-base);
  z-index: 10;
}

.pick-drop-modal .lightbox-close:hover {
  background: rgba(255, 255, 255, 0.2);
  transform: rotate(90deg);
}

.pick-drop-modal .lightbox-close mat-icon {
  font-size: 24px;
  width: 24px;
  height: 24px;
}

.pick-drop-modal .lightbox-tag {
  position: absolute;
  top: 24px;
  left: 50%;
  transform: translateX(-50%);
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 8px 20px;
  background: var(--ui-surface-active);
  border-radius: var(--ui-radius-full);
  border: 1px solid rgba(255, 255, 255, 0.15);
}

.pick-drop-modal .lightbox-image-container {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  overflow: hidden;
}

.pick-drop-modal .lightbox-image {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  border-radius: var(--ui-radius-md);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
  animation: pd-lightboxImageIn 0.25s ease-out;
}

@keyframes pd-lightboxImageIn {
  from {
    transform: scale(0.9);
    opacity: 0;
  }
  to {
    transform: scale(1);
    opacity: 1;
  }
}
.pick-drop-modal .lightbox-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 52px;
  height: 52px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: var(--ui-surface-active);
  color: var(--ui-text-secondary);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--ui-transition-base);
}

.pick-drop-modal .lightbox-nav:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.2);
  border-color: rgba(255, 255, 255, 0.3);
}

.pick-drop-modal .lightbox-nav:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

.pick-drop-modal .lightbox-nav mat-icon {
  font-size: 28px;
  width: 28px;
  height: 28px;
}

.pick-drop-modal .lightbox-prev {
  left: 20px;
}

.pick-drop-modal .lightbox-next {
  right: 20px;
}

.pick-drop-modal .lightbox-thumbnails {
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
  padding: 10px 16px;
  background: rgba(0, 0, 0, 0.5);
  border-radius: var(--ui-radius-lg);
  border: 1px solid var(--ui-border);
}

.pick-drop-modal .lightbox-thumbnails img {
  width: 56px;
  height: 56px;
  object-fit: cover;
  border-radius: var(--ui-radius-sm);
  border: 2px solid transparent;
  opacity: 0.5;
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.pick-drop-modal .lightbox-thumbnails img:hover {
  opacity: 0.8;
}

.pick-drop-modal .lightbox-thumbnails img.active {
  opacity: 1;
  border-color: rgba(255, 180, 150, 0.8);
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 900px) {
  .pick-drop-modal .content-grid,
  .pick-drop-modal .bottom-grid {
    grid-template-columns: 1fr;
    gap: var(--ui-space-3);
  }
  .pick-drop-modal .verification-row {
    grid-template-columns: 1fr 1fr;
  }
  .pick-drop-modal .verification-row > *:nth-child(2) {
    border-right: none;
  }
  .pick-drop-modal .verification-row .info-item {
    grid-column: 1/-1;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
  }
}
@media (max-width: 768px) {
  body .cdk-overlay-pane.pick-drop-details-panel.centered-modal {
    padding-top: 20px !important;
  }
  .pick-drop-modal .lightbox-container {
    padding: 60px 20px 100px;
  }
  .pick-drop-modal .lightbox-nav {
    width: 40px;
    height: 40px;
  }
  .pick-drop-modal .lightbox-prev {
    left: 10px;
  }
  .pick-drop-modal .lightbox-next {
    right: 10px;
  }
  .pick-drop-modal .lightbox-thumbnails img {
    width: 44px;
    height: 44px;
  }
  .pick-drop-modal .info-grid {
    grid-template-columns: 1fr;
  }
  .pick-drop-modal .info-item {
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  }
  .pick-drop-modal .info-item:last-child {
    border-bottom: none;
  }
  .pick-drop-modal .verification-row {
    grid-template-columns: 1fr;
  }
  .pick-drop-modal .verification-row > * {
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  }
  .pick-drop-modal .verification-row > *:last-child {
    border-bottom: none;
  }
}
@media (max-width: 600px) {
  .pick-drop-modal .summary-grid {
    flex-wrap: wrap;
  }
  .pick-drop-modal .summary-grid article {
    flex: 1 1 45%;
    border-left: none;
    padding: var(--ui-space-2);
    border-bottom: 1px solid var(--ui-border-light);
  }
  .pick-drop-modal .summary-grid article:last-child {
    border-bottom: none;
  }
  .pick-drop-modal {
    padding: 18px;
  }
  .pick-drop-modal .gallery-mini {
    grid-template-columns: repeat(2, 1fr);
  }
  .pick-drop-modal .inspection-row {
    grid-template-columns: 1fr;
  }
  .pick-drop-modal .inspection-field {
    padding: 12px 14px;
  }
}
/* ==========================================================================
   UI MODALS - SERVICE SELECTOR DIALOG
   ==========================================================================
   Full-screen service selector modal with category tabs, mode toggle, and
   custom service form. Migrated from component CSS to UI contract.

   Usage:
     <div class="glass-modal-container service-selector-modal">
       <header class="glass-modal-header">...</header>
       <div class="glass-modal-body">...</div>
     </div>
   ========================================================================== */
/* ==========================================================================
   DIALOG CONTENT RESET
   ========================================================================== */
.service-selector-dialog-content {
  display: block;
  height: 100%;
  min-height: 0;
  padding: 0 !important;
  margin: 0 !important;
  max-height: none !important;
  overflow: visible !important;
}

/* ==========================================================================
   MODAL CONTAINER SIZE
   ========================================================================== */
.service-selector-modal {
  width: 95vw;
  max-width: 1200px;
  height: 85vh;
  max-height: 85vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  margin: 0 auto;
  padding: 0;
  /* Glassmorphic surface */
  background: rgba(18, 18, 22, 0.95);
  backdrop-filter: blur(22px) saturate(120%);
  -webkit-backdrop-filter: blur(22px) saturate(120%);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 24px;
  box-shadow: 0 32px 64px rgba(0, 0, 0, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

/* ==========================================================================
   HEADER
   ========================================================================== */
.service-selector-modal .glass-modal-header {
  flex: 0 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 0 24px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  height: 69px;
  min-height: 69px;
  box-sizing: border-box;
  background: rgba(0, 0, 0, 0.1);
}

.service-selector-modal .header-text {
  flex: 0 0 280px;
  display: flex;
  align-items: center;
}

.service-selector-modal .glass-modal-title {
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
  color: #ffffff;
  margin: 0;
}

.service-selector-modal .glass-modal-subtitle {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.5);
  margin-top: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ==========================================================================
   HEADER SEARCH
   ========================================================================== */
.service-selector-modal .header-search {
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0 16px;
}

.service-selector-modal .header-search-field {
  width: 100%;
  max-width: 400px;
  height: 36px;
  display: block;
  margin: 0;
  position: relative;
}

.service-selector-modal .header-search-field .mat-mdc-text-field-wrapper {
  height: 100%;
  min-height: 100%;
  padding: 0 16px;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  align-items: center;
}

.service-selector-modal .header-search-field .mat-mdc-text-field-wrapper:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.15);
}

.service-selector-modal .header-search-field .mat-mdc-form-field-subscript-wrapper {
  display: none;
}

.service-selector-modal .header-search-field input {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.95);
}

.service-selector-modal .header-search-field input::placeholder {
  color: rgba(255, 255, 255, 0.5);
}

.service-selector-modal .header-search-field .mat-icon {
  color: rgba(255, 255, 255, 0.4);
  font-size: 20px;
  width: 20px;
  height: 20px;
}

/* ==========================================================================
   HEADER CONTROLS
   ========================================================================== */
.service-selector-modal .header-controls {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 280px;
  justify-content: flex-end;
}

.service-selector-modal--pricing .header-search {
  flex: 1 1 420px;
  min-width: 0;
}

.service-selector-modal--pricing .header-search-field {
  max-width: 480px;
}

.service-selector-modal--pricing .service-selector-header-controls {
  flex: 0 1 auto;
  min-width: 0;
  gap: 12px;
}

.service-selector-modal--pricing .selected-car-chip {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  max-width: 360px;
  min-width: 0;
  height: 36px;
  padding: 0 10px 0 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.82);
}

.service-selector-modal--pricing .selected-car-chip .mat-icon {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  font-size: 18px;
  color: rgba(255, 255, 255, 0.6);
}

.service-selector-modal--pricing .car-chip-text {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13px;
  font-weight: 600;
}

.service-selector-modal--pricing .car-chip-change {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: rgba(255, 255, 255, 0.55);
  cursor: pointer;
  transition: all 0.2s ease;
}

.service-selector-modal--pricing .car-chip-change:hover {
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.92);
}

/* ==========================================================================
   MODE TOGGLE (Standard/Custom)
   ========================================================================== */
.mode-toggle {
  display: flex;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 18px;
  padding: 3px;
  gap: 2px;
  height: 36px;
  box-sizing: border-box;
  align-items: center;
}

.toggle-btn {
  padding: 0 16px;
  height: 100%;
  display: flex;
  align-items: center;
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.6);
  background: transparent;
  border: none;
  border-radius: 15px;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.toggle-btn:hover {
  color: rgba(255, 255, 255, 0.9);
  background: rgba(255, 255, 255, 0.05);
}

.toggle-btn.active {
  color: #ffffff;
  background: linear-gradient(135deg, #FF5722, #E14125);
  box-shadow: 0 2px 8px rgba(225, 65, 37, 0.3);
}

/* ==========================================================================
   CLOSE BUTTON
   ========================================================================== */
.service-selector-modal .close-btn {
  width: 36px;
  height: 36px;
  min-width: 36px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.7);
  cursor: pointer;
  transition: all 0.2s ease;
  box-sizing: border-box;
}

.service-selector-modal .close-btn mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  line-height: 20px;
}

.service-selector-modal .close-btn:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff;
}

/* ==========================================================================
   HEADER ACTION BUTTONS (Custom Mode)
   ========================================================================== */
.service-selector-modal .header-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 20px;
  height: 36px;
  font-size: 13px;
  font-weight: 600;
  border-radius: 999px;
  cursor: pointer;
  transition: all 0.2s ease;
  border: none;
  white-space: nowrap;
}

.service-selector-modal .header-action-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.service-selector-modal .header-action-btn.primary {
  background: linear-gradient(135deg, #FF5722, #E14125);
  color: #ffffff;
  box-shadow: 0 2px 8px rgba(225, 65, 37, 0.3);
}

.service-selector-modal .header-action-btn.primary:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(225, 65, 37, 0.4);
}

.service-selector-modal .header-action-btn.primary:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

/* ==========================================================================
   MODAL BODY
   ========================================================================== */
.service-selector-modal .glass-modal-body {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0 24px;
  margin: 0;
  overflow: hidden;
  background: transparent;
  backdrop-filter: none;
  border-radius: 0 0 24px 24px;
}

.service-selector-modal .glass-modal-body.custom-mode {
  padding-bottom: 24px;
}

.service-selector-modal .glass-modal-body.scrollable-body {
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 140, 100, 0.4) transparent;
}

.service-selector-modal .glass-modal-body.scrollable-body::-webkit-scrollbar {
  width: 6px;
}

.service-selector-modal .glass-modal-body.scrollable-body::-webkit-scrollbar-track {
  background: transparent;
}

.service-selector-modal .glass-modal-body.scrollable-body::-webkit-scrollbar-thumb {
  background: rgba(255, 140, 100, 0.4);
  border-radius: 10px;
}

/* ==========================================================================
   VIEW PANEL
   ========================================================================== */
.service-selector-modal .view-panel {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  gap: 0;
  padding-bottom: 0;
  will-change: transform, opacity;
  backface-visibility: hidden;
  overflow: hidden;
}

/* ==========================================================================
   PILL TABS (Category Navigation) - Uses global pill-tabs.css
   ========================================================================== */
.service-selector-modal .page-tab-navigation {
  display: flex;
  justify-content: center;
  width: 100%;
  margin-top: 20px;
}
.service-selector-modal .page-tab-navigation .pill-tabs-container {
  margin: 0 auto;
}

/* ==========================================================================
   RESULTS SECTION
   ========================================================================== */
.service-selector-modal .results-shell {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
  padding: 20px 0 24px;
}

/* Skeleton Loading */
.service-selector-modal .skeleton-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 8px 24px;
  min-height: 350px;
}

.service-selector-modal .skeleton-row {
  height: 64px;
  border-radius: 12px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.04));
  background-size: 200% 100%;
  animation: service-skeleton-shimmer 1.5s ease infinite;
}

@keyframes service-skeleton-shimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
/* Empty State */
.service-selector-modal .empty-state {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 48px 16px;
  text-align: center;
  color: rgba(255, 255, 255, 0.5);
}

.service-selector-modal .empty-state mat-icon {
  font-size: 48px;
  width: 48px;
  height: 48px;
  margin-bottom: 16px;
  color: rgba(255, 255, 255, 0.3);
}

.service-selector-modal .empty-state p {
  font-size: 15px;
  margin: 0;
}

/* ==========================================================================
   TABLE STYLES
   ========================================================================== */
.service-selector-modal .glass-table-card {
  position: relative;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
  border-radius: 16px;
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  box-shadow: var(--ui-shadow-lg);
  overflow: hidden;
}

.service-selector-modal .glass-table-wrap {
  position: relative;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
  box-sizing: border-box;
  overflow: hidden;
}

.service-selector-modal .glass-table {
  margin-bottom: 0;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}

.service-selector-modal .glass-table thead {
  display: table;
  width: 100%;
  table-layout: fixed;
  flex-shrink: 0;
  padding-right: 6px;
}

.service-selector-modal .glass-table tbody {
  display: block;
  width: 100%;
  flex: 1 1 auto;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 140, 100, 0.3) rgba(255, 255, 255, 0.03);
}

.service-selector-modal .glass-table thead tr,
.service-selector-modal .glass-table tbody tr {
  display: table;
  width: 100%;
  table-layout: fixed;
}

.service-selector-modal .glass-table thead th {
  background: #5F463B;
  padding: 10px 14px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.7);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.service-selector-modal .glass-table thead th .header-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  margin-right: 5px;
  vertical-align: middle;
  opacity: 0.65;
}

/* ==========================================================================
   TABLE CELLS
   ========================================================================== */
.service-selector-modal .glass-table.compact-layout td {
  padding: 12px 14px;
}

.service-selector-modal .glass-table.compact-layout tbody tr {
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  cursor: pointer;
  transition: background 0.15s ease;
}

.service-selector-modal .glass-table.compact-layout tbody tr:hover {
  background: rgba(255, 140, 100, 0.06);
}

/* Column widths */
.service-selector-modal .col-service {
  width: 28%;
}

.service-selector-modal .col-category {
  width: 18%;
}

.service-selector-modal .col-segment {
  width: 17%;
  text-align: center;
}

.service-selector-modal .col-pricing {
  width: 18%;
}

.service-selector-modal .col-total {
  width: 12%;
  text-align: right;
}

.service-selector-modal .col-actions {
  width: 60px;
  text-align: center;
}

.service-selector-modal .col-checkbox {
  width: 56px;
  text-align: center;
}

.service-selector-modal .checkbox-cell {
  text-align: center;
}

.service-selector-modal .row-selected {
  background: rgba(255, 140, 100, 0.1);
}

/* Cell styling */
.service-selector-modal .cell-strong {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 4px;
}

.service-selector-modal .cell-muted {
  display: block;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
  line-height: 1.4;
}

.service-selector-modal .category-stack,
.service-selector-modal .pricing-stack {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.service-selector-modal .category-primary {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.85);
}

.service-selector-modal .category-secondary {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
}

.service-selector-modal .pricing-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.service-selector-modal .pricing-label {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
}

.service-selector-modal .pricing-value {
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.8);
}

/* Service badge */
.service-selector-modal .service-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  border-radius: 99px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.service-selector-modal .badge-standard {
  background: rgba(74, 222, 128, 0.12);
  color: #4ade80;
  border: 1px solid rgba(74, 222, 128, 0.25);
}

.service-selector-modal .badge-custom {
  background: rgba(255, 87, 34, 0.15);
  color: #ff8a65;
  border: 1px solid rgba(255, 87, 34, 0.3);
}

/* Total cell */
.service-selector-modal .total-value {
  font-size: 15px;
  font-weight: 700;
  color: #4ade80;
}

/* View details button */
.service-selector-modal .view-details-btn {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.6);
  cursor: pointer;
  transition: all 0.2s ease;
}

.service-selector-modal .view-details-btn:hover {
  background: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.9);
}

.service-selector-modal .view-details-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.service-selector-modal .selected-count {
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
}

/* ==========================================================================
   CUSTOM MODE - SERVICE FORM
   ========================================================================== */
.service-selector-modal .custom-view-panel {
  padding: 16px 0;
  overflow-y: auto;
  overflow-x: hidden;
}

.service-selector-modal .service-meta-section {
  margin-bottom: 24px;
}

.service-selector-modal .meta-split-layout {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 24px;
}

.service-selector-modal .meta-left {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* Service name field */
.service-selector-modal .service-name-field {
  width: 100%;
}

.service-selector-modal .service-name-field .mat-mdc-text-field-wrapper {
  min-height: 44px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
}

.service-selector-modal .service-name-field.mat-mdc-form-field {
  --mdc-outlined-text-field-container-shape: 12px;
}

.service-selector-modal .service-name-field .mdc-text-field {
  min-height: 44px;
}

/* Form rows */
.service-selector-modal .form-row-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.service-selector-modal .detail-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.service-selector-modal .detail-row > label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.5);
}

/* ==========================================================================
   MAT-FORM-FIELD TEXT COLOR OVERRIDES (dark background)
   ========================================================================== */
.service-selector-modal .mat-mdc-form-field {
  --mdc-filled-text-field-input-text-color: rgba(255, 255, 255, 0.9);
  --mdc-filled-text-field-label-text-color: rgba(255, 255, 255, 0.5);
  --mdc-filled-text-field-focus-label-text-color: rgba(255, 140, 100, 0.9);
  --mdc-filled-text-field-hover-label-text-color: rgba(255, 255, 255, 0.7);
  --mdc-filled-text-field-disabled-label-text-color: rgba(255, 255, 255, 0.3);
  --mdc-filled-text-field-placeholder-text-color: rgba(255, 255, 255, 0.35);
  --mat-select-trigger-text-color: rgba(255, 255, 255, 0.9);
  --mat-select-placeholder-text-color: rgba(255, 255, 255, 0.4);
  --mat-select-enabled-arrow-color: rgba(255, 255, 255, 0.4);
}

.service-selector-modal .mat-mdc-form-field input.mat-mdc-input-element {
  color: rgba(255, 255, 255, 0.9) !important;
}

.service-selector-modal .mat-mdc-form-field .mdc-floating-label {
  color: rgba(255, 255, 255, 0.5) !important;
}

.service-selector-modal .mat-mdc-form-field .mat-mdc-select-value-text {
  color: rgba(255, 255, 255, 0.9);
}

.service-selector-modal .disabled-field {
  opacity: 0.5;
  pointer-events: none;
}

/* Technicians section */
.service-selector-modal .technicians-section {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.service-selector-modal .technicians-header {
  display: flex;
  align-items: center;
}

.service-selector-modal .tech-label-group {
  display: flex;
  align-items: center;
  gap: 8px;
}

.service-selector-modal .section-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 255, 255, 0.5);
}

.service-selector-modal .section-label {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.6);
}

.service-selector-modal .technicians-grid {
  display: grid;
  grid-template-columns: 1fr 100px 1fr;
  gap: 12px;
}

.service-selector-modal .technician-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.service-selector-modal .technician-field > label {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.45);
}

/* Split field */
.service-selector-modal .split-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.service-selector-modal .split-field > label {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.45);
}

.service-selector-modal .split-display {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 40px;
}

.service-selector-modal .split-input-group {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 0 12px;
  height: 40px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
}

.service-selector-modal .split-input {
  width: 36px;
  height: 28px;
  text-align: center;
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  font-weight: 600;
}

.service-selector-modal .split-separator {
  color: rgba(255, 255, 255, 0.3);
  font-weight: 600;
}

.service-selector-modal .disabled-split {
  opacity: 0.4;
}

/* Financial summary */
.service-selector-modal .meta-right {
  display: flex;
  align-items: flex-start;
}

.service-selector-modal .financial-summary {
  width: 100%;
  padding: 20px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* .cost-item, .summary-divider → now in ui/data/cost-summary.scss */
/* .section-header, .section-title, .add-btn → owned by ui/controls/section-header.scss */
/* .custom-table, .table-input, .table-icon-btn, .action-cell, .final-amount → owned by ui/data/modal-table.scss */
/* .empty-table-state → owned by ui/data/empty-state.scss */
/* Hide mat-autocomplete host element inside table cells (Parts search) */
.service-selector-modal .custom-table td mat-autocomplete {
  display: block;
  height: 0;
  overflow: hidden;
  position: absolute;
}

@media (max-width: 1100px) {
  .service-selector-modal--pricing .glass-modal-header {
    height: auto;
    min-height: 69px;
    flex-wrap: wrap;
    align-items: stretch;
    padding: 16px 24px;
  }
  .service-selector-modal--pricing .header-text,
  .service-selector-modal--pricing .header-search,
  .service-selector-modal--pricing .service-selector-header-controls {
    flex: 1 1 100%;
  }
  .service-selector-modal--pricing .header-search {
    justify-content: flex-start;
    padding: 0;
  }
  .service-selector-modal--pricing .header-search-field {
    max-width: none;
  }
  .service-selector-modal--pricing .service-selector-header-controls {
    justify-content: space-between;
  }
}
/* ==========================================================================
   UI MODALS - EDIT SERVICE MODAL
   ==========================================================================
   Modal for editing service details (custom and standard services).
   Used by edit-custom-service component and labour edit-service component.
   Migrated from component CSS to UI contract.

   Usage:
     <div class="edit-service-modal">
       <header class="glass-modal-header">...</header>
       <div class="modal-body">...</div>
     </div>
   ========================================================================== */
/* ==========================================================================
   MODAL CONTAINER
   ========================================================================== */
.edit-service-modal {
  height: 100%;
  max-height: 100%;
  padding: 0;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 24px;
}

/* ==========================================================================
   HEADER
   ========================================================================== */
.edit-service-modal .glass-modal-header {
  flex: 0 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 24px;
  height: 64px;
  min-height: 64px;
  background: var(--ui-surface-1);
  border-bottom: 1px solid var(--ui-border-light);
  box-sizing: border-box;
}

.edit-service-modal .header-text {
  flex: 1;
  min-width: 0;
}

.edit-service-modal .title-row {
  display: flex;
  align-items: center;
  gap: 16px;
}

/* ==========================================================================
   IDENTITY NAME (Editable Service Name)
   ========================================================================== */
.edit-service-modal .identity-name {
  display: flex;
  align-items: center;
  cursor: pointer;
  transition: background 0.2s ease;
  padding: 6px 12px;
  border-radius: 8px;
  margin: -6px -12px;
}

.edit-service-modal .identity-name:hover {
  background: rgba(255, 255, 255, 0.06);
}

.edit-service-modal .identity-name.static {
  cursor: default;
}

.edit-service-modal .identity-name.static:hover {
  background: transparent;
}

.edit-service-modal .identity-name.empty span {
  color: rgba(255, 255, 255, 0.4);
  font-style: italic;
}

.edit-service-modal .name-display {
  display: flex;
  align-items: center;
  gap: 10px;
}

.edit-service-modal .name-display > span {
  font-size: 18px;
  font-weight: 700;
  color: #ffffff;
  line-height: 1.2;
}

.edit-service-modal .name-edit-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 6px;
  color: rgba(255, 255, 255, 0.6);
  cursor: pointer;
  transition: all 0.2s ease;
}

.edit-service-modal .name-edit-btn:hover {
  background: rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.9);
}

.edit-service-modal .name-edit-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.edit-service-modal .lock-icon-header {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: rgba(255, 255, 255, 0.35);
}

/* Smart input wrap for inline editing */
.edit-service-modal .smart-input-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
}

.edit-service-modal .name-input {
  font-size: 18px;
  font-weight: 700;
  color: #ffffff;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 140, 100, 0.4);
  border-radius: 8px;
  padding: 8px 12px;
  min-width: 240px;
  outline: none;
  transition: border-color 0.2s ease;
}

.edit-service-modal .name-input:focus {
  border-color: rgba(255, 140, 100, 0.7);
}

.edit-service-modal .save-indicator {
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 140, 100, 0.8);
  animation: pulse-glow 1.2s ease-in-out infinite;
}

@keyframes pulse-glow {
  0%, 100% {
    opacity: 0.6;
  }
  50% {
    opacity: 1;
  }
}
/* ==========================================================================
   BOOKING ID PILL
   ========================================================================== */
.edit-service-modal .booking-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 14px;
  border-radius: 99px;
  font-size: 12px;
  font-weight: 600;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.6);
}

.edit-service-modal .booking-pill .pill-label {
  letter-spacing: 0.5px;
}

/* ==========================================================================
   CLAIM PILL
   ========================================================================== */
.edit-service-modal .claim-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 99px;
  font-size: 12px;
  font-weight: 600;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.6);
  cursor: pointer;
  transition: all 0.2s ease;
}

.edit-service-modal .claim-pill:hover {
  background: rgba(255, 255, 255, 0.1);
}

.edit-service-modal .claim-pill.active {
  background: rgba(74, 222, 128, 0.15);
  border-color: rgba(74, 222, 128, 0.3);
  color: #4ade80;
}

.edit-service-modal .claim-pill .pill-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

/* ==========================================================================
   HEADER CONTROLS
   ========================================================================== */
.edit-service-modal .header-controls {
  display: flex;
  align-items: center;
  gap: 8px;
}

.edit-service-modal .close-btn {
  width: 36px;
  height: 36px;
  min-width: 36px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.7);
  cursor: pointer;
  transition: all 0.2s ease;
  box-sizing: border-box;
}

.edit-service-modal .close-btn mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  line-height: 20px;
}

.edit-service-modal .close-btn:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff;
}

/* ==========================================================================
   MODAL BODY
   ========================================================================== */
.edit-service-modal .modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 24px;
  /* Custom scrollbar */
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 140, 100, 0.3) transparent;
}

.edit-service-modal .modal-body::-webkit-scrollbar {
  width: 6px;
}

.edit-service-modal .modal-body::-webkit-scrollbar-track {
  background: transparent;
}

.edit-service-modal .modal-body::-webkit-scrollbar-thumb {
  background: rgba(255, 140, 100, 0.3);
  border-radius: 10px;
}

/* ==========================================================================
   SERVICE META SECTION
   ========================================================================== */
.edit-service-modal .service-meta {
  margin-bottom: 24px;
}

.edit-service-modal .meta-split-layout {
  display: grid;
  grid-template-columns: 1fr 260px;
  gap: 24px;
}

.edit-service-modal .meta-left {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.edit-service-modal .meta-right {
  display: flex;
  flex-direction: column;
}

/* ==========================================================================
   DETAILS GRID
   ========================================================================== */
.edit-service-modal .details-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.edit-service-modal .detail-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.edit-service-modal .detail-row > label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.5);
}

/* Clean field styling for dropdowns */
.edit-service-modal .clean-field {
  width: 100%;
}

.edit-service-modal .clean-field .mat-mdc-text-field-wrapper {
  height: 40px;
  min-height: 40px;
  padding: 0 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
}

/* Kill Angular Material's white hover/focus outlines */
.edit-service-modal .clean-field .mdc-notched-outline__leading,
.edit-service-modal .clean-field .mdc-notched-outline__notch,
.edit-service-modal .clean-field .mdc-notched-outline__trailing {
  border-color: transparent !important;
}

.edit-service-modal .clean-field .mat-mdc-text-field-wrapper:hover .mdc-notched-outline__leading,
.edit-service-modal .clean-field .mat-mdc-text-field-wrapper:hover .mdc-notched-outline__notch,
.edit-service-modal .clean-field .mat-mdc-text-field-wrapper:hover .mdc-notched-outline__trailing {
  border-color: transparent !important;
}

.edit-service-modal .clean-field.mat-focused .mdc-notched-outline__leading,
.edit-service-modal .clean-field.mat-focused .mdc-notched-outline__notch,
.edit-service-modal .clean-field.mat-focused .mdc-notched-outline__trailing {
  border-color: transparent !important;
}

.edit-service-modal .clean-field .mat-mdc-form-field-infix {
  padding-top: 0;
  padding-bottom: 0;
  min-height: 40px;
  display: flex;
  align-items: center;
}

.edit-service-modal .clean-field .mat-mdc-form-field-subscript-wrapper {
  display: none;
}

/* Standard service locked field */
.edit-service-modal .standard-service-field {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 40px;
  padding: 0 12px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 10px;
}

.edit-service-modal .standard-service-field .static-value {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.7);
}

.edit-service-modal .standard-service-field .lock-icon,
.edit-service-modal .lock-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: rgba(255, 255, 255, 0.3);
}

/* ==========================================================================
   TECHNICIANS SECTION
   ========================================================================== */
.edit-service-modal .technicians-section {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.edit-service-modal .technicians-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.edit-service-modal .section-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 255, 255, 0.5);
}

.edit-service-modal .section-label {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.6);
}

.edit-service-modal .technicians-grid {
  display: grid;
  grid-template-columns: 1fr 100px 1fr;
  gap: 12px;
}

.edit-service-modal .technician-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.edit-service-modal .technician-field > label {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.45);
}

.edit-service-modal .technician-field.highlight-error {
  animation: highlight-pulse 0.6s ease;
}

@keyframes highlight-pulse {
  0%, 100% {
    background: transparent;
  }
  50% {
    background: rgba(255, 87, 34, 0.15);
  }
}
.edit-service-modal .technician-select .mat-mdc-text-field-wrapper {
  height: 40px;
  min-height: 40px;
  padding: 0 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
}

/* Kill Angular Material's white hover/focus outlines on technician selects */
.edit-service-modal .technician-select .mdc-notched-outline__leading,
.edit-service-modal .technician-select .mdc-notched-outline__notch,
.edit-service-modal .technician-select .mdc-notched-outline__trailing {
  border-color: transparent !important;
}

.edit-service-modal .technician-select .mat-mdc-text-field-wrapper:hover .mdc-notched-outline__leading,
.edit-service-modal .technician-select .mat-mdc-text-field-wrapper:hover .mdc-notched-outline__notch,
.edit-service-modal .technician-select .mat-mdc-text-field-wrapper:hover .mdc-notched-outline__trailing {
  border-color: transparent !important;
}

.edit-service-modal .technician-select .mat-mdc-form-field-infix {
  padding-top: 0;
  padding-bottom: 0;
  min-height: 40px;
  display: flex;
  align-items: center;
}

.edit-service-modal .disabled-field {
  opacity: 0.5;
  pointer-events: none;
}

/* ==========================================================================
   SPLIT FIELD
   ========================================================================== */
.edit-service-modal .split-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.edit-service-modal .split-field > label {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.45);
}

.edit-service-modal .split-display {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 40px;
}

.edit-service-modal .split-input-group {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 0 12px;
  height: 40px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
}

.edit-service-modal .split-input-group.disabled-split {
  opacity: 0.4;
}

.edit-service-modal .split-input {
  width: 36px;
  height: 28px;
  text-align: center;
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.9);
  font-size: 14px;
  font-weight: 600;
}

.edit-service-modal .split-input:focus {
  outline: none;
}

.edit-service-modal .split-separator {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.4);
}

/* Split presets */
.edit-service-modal .split-presets {
  display: flex;
  gap: 6px;
  margin-top: 6px;
  justify-content: center;
}

.edit-service-modal .preset-chip {
  padding: 3px 10px;
  font-size: 10px;
  font-weight: 600;
  border-radius: 99px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.5);
  cursor: pointer;
  transition: all 0.2s ease;
}

.edit-service-modal .preset-chip:hover {
  background: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.8);
}

.edit-service-modal .preset-chip.active {
  background: rgba(255, 140, 100, 0.2);
  border-color: rgba(255, 140, 100, 0.4);
  color: #ff8a65;
}

/* ==========================================================================
   FINANCIAL SUMMARY
   ========================================================================== */
.edit-service-modal .financial-summary {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px 20px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
}

.edit-service-modal .financial-summary .cost-item.standard-price {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
}

.edit-service-modal .financial-summary .cost-item.standard-price strong {
  color: rgba(255, 255, 255, 0.5);
  font-weight: 500;
}

/* .cost-item, .summary-divider → now in ui/data/cost-summary.scss */
/* .glass-panel, .table-card → now in ui/layout/glass-panel.scss */
/* .section-header, .section-title, .add-btn → now in ui/controls/section-header.scss */
/* .custom-table → now in ui/data/modal-table.scss */
/* .table-input, select.table-input, .cust-dep-input → now in ui/data/modal-table.scss */
/* .discount-group → now in ui/data/modal-table.scss */
/* .final-amount-cell, .final-amount → now in ui/data/modal-table.scss */
/* .action-cell, .table-icon-btn, .green-btn → now in ui/data/modal-table.scss */
/* .empty-table-state → now in ui/data/empty-state.scss */
/* ==========================================================================
   PART INPUT ROW — flex wrapper so status icon sits inline left of input
   ========================================================================== */
.edit-service-modal .part-input-row {
  display: flex;
  align-items: center;
  gap: 6px;
}

.edit-service-modal .part-input-row .table-input {
  flex: 1;
  min-width: 0;
}

/* ==========================================================================
   RESPONSIVE ADJUSTMENTS
   ========================================================================== */
@media (max-width: 1024px) {
  .edit-service-modal .meta-split-layout {
    grid-template-columns: 1fr;
  }
  .edit-service-modal .meta-right {
    order: -1;
    margin-bottom: 16px;
  }
  .edit-service-modal .technicians-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .edit-service-modal .split-field {
    flex-direction: row;
    align-items: center;
    gap: 12px;
  }
}
/* ==========================================================================
   UI MODALS - CREATE SERVICE MODAL
   ==========================================================================
   Modal for creating new services (standard and custom).
   Used by custom-services component (labour/custom-services).

   Usage:
     <div class="create-service-modal">
       <div class="modal-header">...</div>
       <form class="service-form">
         <div class="glass-card">...</div>
       </form>
       <div class="form-actions">...</div>
     </div>
   ========================================================================== */
/* ==========================================================================
   MODAL CONTAINER
   ========================================================================== */
.create-service-modal {
  height: 100%;
  max-height: 100%;
  padding: 0;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 24px;
}

/* ==========================================================================
   HEADER
   ========================================================================== */
.create-service-modal .modal-header {
  flex: 0 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 24px;
  height: 64px;
  min-height: 64px;
  background: var(--ui-surface-1);
  border-bottom: 1px solid var(--ui-border-light);
  box-sizing: border-box;
}

.create-service-modal .modal-title {
  font-size: 18px;
  font-weight: 700;
  color: #ffffff;
  margin: 0;
}

.create-service-modal .close-btn {
  width: 36px;
  height: 36px;
  min-width: 36px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.7);
  cursor: pointer;
  transition: all 0.2s ease;
  box-sizing: border-box;
}

.create-service-modal .close-btn mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  line-height: 20px;
}

.create-service-modal .close-btn:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff;
}

/* ==========================================================================
   FORM BODY
   ========================================================================== */
.create-service-modal .service-form {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 140, 100, 0.3) transparent;
}

.create-service-modal .service-form::-webkit-scrollbar {
  width: 6px;
}

.create-service-modal .service-form::-webkit-scrollbar-track {
  background: transparent;
}

.create-service-modal .service-form::-webkit-scrollbar-thumb {
  background: rgba(255, 140, 100, 0.3);
  border-radius: 10px;
}

/* ==========================================================================
   SECTION HEADER (inside glass-cards)
   ========================================================================== */
.create-service-modal .section-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  margin-bottom: 4px;
}

.create-service-modal .section-header mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 140, 100, 0.7);
}

.create-service-modal .section-header span {
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.7);
}

/* ==========================================================================
   FIELD ROWS & GROUPS
   ========================================================================== */
.create-service-modal .field-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 16px;
}

.create-service-modal .service-info-row {
  grid-template-columns: 2fr 1fr 1fr;
}

.create-service-modal .pricing-row {
  grid-template-columns: 1fr 1fr auto;
}

.create-service-modal .field-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.create-service-modal .field-group > label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.5);
}

.create-service-modal .field-group .form-control {
  height: 40px;
  padding: 0 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 14px;
  outline: none;
  transition: border-color 0.2s ease;
  width: 100%;
  box-sizing: border-box;
}

.create-service-modal .field-group textarea.form-control {
  height: auto;
  padding: 10px 12px;
  resize: vertical;
  min-height: 60px;
}

.create-service-modal .field-group .form-control:focus {
  border-color: rgba(255, 140, 100, 0.5);
}

.create-service-modal .field-group select.form-control {
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.5)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 32px;
  cursor: pointer;
}

.create-service-modal .field-group select.form-control option {
  background: #1a1a20;
  color: rgba(255, 255, 255, 0.9);
}

/* Mat form field overrides inside the modal */
.create-service-modal .custom-material-input .mat-mdc-text-field-wrapper {
  height: 40px;
  min-height: 40px;
  padding: 0 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
}

.create-service-modal .custom-material-input .mat-mdc-form-field-infix {
  padding-top: 0;
  padding-bottom: 0;
  min-height: 40px;
  display: flex;
  align-items: center;
}

.create-service-modal .custom-material-input .mat-mdc-form-field-subscript-wrapper {
  display: none;
}

/* ==========================================================================
   TWO-COLUMN CARDS ROW
   ========================================================================== */
.create-service-modal .cards-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

/* ==========================================================================
   PRICING TOTAL FIELD
   ========================================================================== */
.create-service-modal .total-field {
  justify-content: flex-end;
}

.create-service-modal .price-value {
  font-size: 22px;
  font-weight: 700;
  color: #ff8a65;
  padding: 6px 0;
  letter-spacing: -0.01em;
}

/* ==========================================================================
   MEDIA GALLERY
   ========================================================================== */
/* .media-card-full inherits .glass-card styles — no additional overrides needed */
.create-service-modal .media-sections {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.create-service-modal .media-section-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}

.create-service-modal .media-section-header mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 255, 255, 0.5);
}

.create-service-modal .media-section-header span {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.7);
}

.create-service-modal .format-hint {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.35);
  margin-left: auto;
}

.create-service-modal .media-gallery {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.create-service-modal .media-item {
  position: relative;
  width: 120px;
  height: 90px;
  border-radius: 12px;
  overflow: hidden;
  border: 2px solid rgba(255, 255, 255, 0.08);
  transition: border-color 0.2s ease;
  cursor: pointer;
}

.create-service-modal .media-item:hover {
  border-color: rgba(255, 255, 255, 0.2);
}

.create-service-modal .media-item.is-primary {
  border-color: rgba(255, 140, 100, 0.6);
  box-shadow: 0 0 12px rgba(255, 140, 100, 0.15);
}

.create-service-modal .media-item img,
.create-service-modal .media-item .media-preview-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.create-service-modal .media-item .remove-btn {
  position: absolute;
  top: 4px;
  right: 4px;
  font-size: 16px;
  width: 22px;
  height: 22px;
  line-height: 22px;
  background: rgba(0, 0, 0, 0.6);
  border-radius: 50%;
  color: rgba(255, 255, 255, 0.8);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease;
  z-index: 2;
}

.create-service-modal .media-item .remove-btn:hover {
  background: rgba(239, 68, 68, 0.8);
}

.create-service-modal .primary-selector {
  position: absolute;
  bottom: 4px;
  left: 4px;
  cursor: pointer;
  z-index: 2;
}

.create-service-modal .primary-selector mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 255, 255, 0.6);
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.5));
}

.create-service-modal .media-item.is-primary .primary-selector mat-icon {
  color: #ff8a65;
}

.create-service-modal .primary-badge {
  position: absolute;
  bottom: 4px;
  right: 4px;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 2px 6px;
  border-radius: 4px;
  background: rgba(255, 140, 100, 0.85);
  color: #fff;
  z-index: 2;
}

/* Video overlay play button */
.create-service-modal .video-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.3);
  cursor: pointer;
  transition: background 0.2s ease;
}

.create-service-modal .video-overlay:hover {
  background: rgba(0, 0, 0, 0.15);
}

.create-service-modal .video-overlay mat-icon {
  font-size: 36px;
  width: 36px;
  height: 36px;
  color: rgba(255, 255, 255, 0.9);
}

/* Upload button card */
.create-service-modal .media-uploader {
  width: 120px;
  height: 90px;
  border-radius: 12px;
  border: 2px dashed rgba(255, 255, 255, 0.15);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  cursor: pointer;
  transition: all 0.2s ease;
  color: rgba(255, 255, 255, 0.4);
}

.create-service-modal .media-uploader:hover {
  border-color: rgba(255, 140, 100, 0.4);
  color: rgba(255, 140, 100, 0.8);
  background: rgba(255, 140, 100, 0.04);
}

.create-service-modal .media-uploader mat-icon {
  font-size: 28px;
  width: 28px;
  height: 28px;
}

.create-service-modal .media-uploader span {
  font-size: 11px;
  font-weight: 600;
}

/* ==========================================================================
   YOUTUBE VIDEO GALLERY
   ========================================================================== */
.create-service-modal .video-gallery {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.create-service-modal .video-card {
  position: relative;
  width: 180px;
  border-radius: 12px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  transition: border-color 0.2s ease;
}

.create-service-modal .video-card:hover {
  border-color: rgba(255, 255, 255, 0.16);
}

.create-service-modal .video-thumbnail {
  position: relative;
  width: 100%;
  height: 100px;
  cursor: pointer;
}

.create-service-modal .video-thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.create-service-modal .video-play-btn {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.25);
  transition: background 0.2s ease;
}

.create-service-modal .video-play-btn:hover {
  background: rgba(0, 0, 0, 0.1);
}

.create-service-modal .video-play-btn mat-icon {
  font-size: 32px;
  width: 32px;
  height: 32px;
  color: rgba(255, 255, 255, 0.9);
}

.create-service-modal .video-info {
  padding: 8px 10px;
}

.create-service-modal .video-title-text {
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.7);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.create-service-modal .video-remove {
  position: absolute;
  top: 4px;
  right: 4px;
  width: 22px;
  height: 22px;
  padding: 0;
  background: rgba(0, 0, 0, 0.6);
  border: none;
  border-radius: 50%;
  color: rgba(255, 255, 255, 0.8);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  transition: background 0.2s ease;
}

.create-service-modal .video-remove:hover {
  background: rgba(239, 68, 68, 0.8);
}

.create-service-modal .video-remove mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

/* Video URL input card */
.create-service-modal .video-input-card {
  position: relative;
  width: 180px;
  border-radius: 12px;
  padding: 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  gap: 8px;
  box-sizing: border-box;
}

.create-service-modal .video-input-inner {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  min-width: 0;
}

.create-service-modal .video-input-inner mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 255, 255, 0.4);
  flex-shrink: 0;
}

.create-service-modal .video-url-input {
  flex: 1;
  min-width: 0;
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.9);
  font-size: 12px;
  outline: none;
}

.create-service-modal .video-url-input::placeholder {
  color: rgba(255, 255, 255, 0.3);
}

/* Add video card */
.create-service-modal .video-add-card {
  width: 180px;
  height: 100px;
  border-radius: 12px;
  border: 2px dashed rgba(255, 255, 255, 0.12);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  cursor: pointer;
  transition: all 0.2s ease;
  color: rgba(255, 255, 255, 0.4);
}

.create-service-modal .video-add-card:hover {
  border-color: rgba(255, 140, 100, 0.4);
  color: rgba(255, 140, 100, 0.8);
  background: rgba(255, 140, 100, 0.04);
}

.create-service-modal .video-add-card mat-icon {
  font-size: 24px;
  width: 24px;
  height: 24px;
}

.create-service-modal .video-add-card span {
  font-size: 11px;
  font-weight: 600;
}

/* ==========================================================================
   FORM ACTIONS (Footer)
   ========================================================================== */
.create-service-modal .form-actions {
  flex: 0 0 auto;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 12px;
  padding: 16px 24px;
  background: var(--ui-surface-1);
  border-top: 1px solid var(--ui-border-light);
}

.create-service-modal .btn-save {
  height: 40px;
  padding: 0 28px;
  border-radius: 10px;
  border: none;
  background: linear-gradient(135deg, #ff8a65, #e65100);
  color: #ffffff;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  letter-spacing: 0.02em;
}

.create-service-modal .btn-save:hover:not(:disabled) {
  background: linear-gradient(135deg, #ff9a75, #f56b00);
  box-shadow: 0 4px 16px rgba(255, 138, 101, 0.3);
  transform: translateY(-1px);
}

.create-service-modal .btn-save:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.create-service-modal .btn-cancel {
  height: 40px;
  padding: 0 24px;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.7);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
}

.create-service-modal .btn-cancel:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.9);
}

/* ==========================================================================
   HELPER CLASSES
   ========================================================================== */
.create-service-modal .ui-invisible {
  visibility: hidden;
  width: 0;
  height: 0;
  overflow: hidden;
}

.create-service-modal .ui-absolute {
  position: absolute;
}

/* ==========================================================================
   mat-dialog-content RESET
   ========================================================================== */
/* When create-service-modal is inside a mat-dialog, remove default padding */
.cdk-overlay-pane:has(.create-service-modal) .mat-mdc-dialog-content {
  padding: 0;
  max-height: none;
  overflow: visible;
}

.cdk-overlay-pane:has(.create-service-modal) .mat-mdc-dialog-container .mdc-dialog__surface {
  background: var(--ui-surface-0, #111116);
  border-radius: 24px;
  overflow: hidden;
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 900px) {
  .create-service-modal .cards-row {
    grid-template-columns: 1fr;
  }
  .create-service-modal .service-info-row {
    grid-template-columns: 1fr;
  }
  .create-service-modal .pricing-row {
    grid-template-columns: 1fr 1fr;
  }
}
/* ==========================================================================
   EMPLOYEE MODAL
   ==========================================================================
   Feature modal contract for the Edit Employee modal (MemberAddComponent).
   Uses ui-modal--big UI contract for base modal styling.
   This file contains only feature-specific visual elements (hero header, etc.)
   ========================================================================== */
/* ==========================================================================
   VIEW MODE HEADER — Hero Profile Header
   ========================================================================== */
.member-add-modal .glass-modal-header--view {
  display: block;
  padding: 0 !important;
  border-bottom: 1px solid var(--ui-border-light);
}

/* View header is inside a flex-based .glass-modal-header.
   Force hero wrapper to occupy full header width so right actions can align to edge. */
.member-add-modal .glass-modal-header--view .hero-profile-header {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
}

.member-add-modal .glass-modal-header--view .hero-row-primary {
  width: 100%;
}

/* ==========================================================================
   EDIT MODE HEADER — Standard Modal Header
   ========================================================================== */
.glass-modal-container.member-add-modal > .glass-modal-header:not(.glass-modal-header--view) {
  padding: var(--ui-space-4) var(--ui-space-5);
  border-bottom: 1px solid var(--ui-border-light);
}

.member-add-modal .glass-modal-header .header-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-4);
}

.member-add-modal .glass-modal-header .header-left {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
}

.member-add-modal .glass-modal-header .header-icon-hero {
  width: var(--ui-space-10);
  height: var(--ui-space-10);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--ui-radius-lg);
  background: linear-gradient(135deg, rgba(255, 130, 90, 0.2), rgba(255, 100, 60, 0.1));
  border: 1px solid rgba(255, 130, 90, 0.3);
}

.member-add-modal .glass-modal-header .header-icon-hero mat-icon {
  font-size: var(--ui-text-2xl);
  width: var(--ui-text-2xl);
  height: var(--ui-text-2xl);
  color: var(--ui-brand);
}

.member-add-modal .glass-modal-header .modal-title {
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  margin: 0;
  line-height: 1.3;
}

.member-add-modal .glass-modal-header .header-subtitle {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  margin: 0;
  line-height: 1.4;
}

.member-add-modal .hero-profile-header {
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
}

.member-add-modal .hero-profile-header.loading .hero-row-primary {
  opacity: 0.4;
  pointer-events: none;
}

.member-add-modal .hero-row-primary {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
  transition: opacity 0.2s ease;
  width: 100%;
}

/* Compact header variant - reduced spacing */
.member-add-modal .hero-profile-header.hero-compact .hero-row-primary {
  padding: 10px var(--ui-space-5);
  gap: var(--ui-space-2);
}

.member-add-modal .hero-profile-header.hero-compact .hero-avatar {
  width: 48px;
  height: 48px;
}

/* Push status + tabs group to right edge */
.member-add-modal .hero-profile-header .hero-header-actions {
  margin-left: auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ui-space-3);
  flex-shrink: 0;
}

.member-add-modal .hero-profile-header .hero-status,
.member-add-modal .hero-profile-header .pill-tabs-container {
  margin-left: 0;
}

.member-add-modal .hero-profile-header .pill-tabs-container {
  flex-shrink: 0;
}

/* pill-tabs global contract sets margin-right:auto; disable it here so tabs can sit flush-right */
.member-add-modal .hero-profile-header .hero-header-actions .pill-tabs-container {
  margin-right: 0 !important;
}

/* Avatar */
.member-add-modal .hero-avatar {
  position: relative;
  width: 56px;
  height: 56px;
  flex-shrink: 0;
}

.member-add-modal .hero-avatar .avatar-ring {
  position: absolute;
  inset: -3px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(255, 130, 90, 0.4), rgba(255, 130, 90, 0.1));
  opacity: 0.6;
}

.member-add-modal .hero-avatar .avatar-inner {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: var(--ui-surface-2);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.member-add-modal .hero-avatar .avatar-inner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.member-add-modal .hero-avatar .avatar-initials {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-secondary);
  text-transform: uppercase;
}

.member-add-modal .hero-avatar .status-indicator {
  position: absolute;
  bottom: 2px;
  right: 2px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--ui-text-muted);
  border: 2px solid rgba(0, 0, 0, 0.5);
}

.member-add-modal .hero-avatar .status-indicator.active {
  background: var(--ui-success);
}

/* Identity - no flex grow, allow status to push right */
.member-add-modal .hero-identity {
  flex: 1 1 auto;
  min-width: 0;
}

.member-add-modal .hero-name-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.member-add-modal .hero-name {
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  margin: 0;
}

.member-add-modal .meta-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  background: var(--ui-surface-2);
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-secondary);
}

.member-add-modal .meta-pill mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

.member-add-modal .hero-subtitle {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin-top: 2px;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.member-add-modal .hero-subtitle .subtitle-divider {
  color: var(--ui-text-muted);
  opacity: 0.5;
}

/* Status Badges */
.member-add-modal .hero-status {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-shrink: 0;
}

.member-add-modal .status-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  background: rgba(255, 255, 255, 0.06);
  color: var(--ui-text-muted);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.member-add-modal .status-badge .status-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ui-text-muted);
}

.member-add-modal .status-badge.active {
  background: var(--ui-success-bg);
  color: var(--ui-success);
  border-color: rgba(74, 222, 128, 0.2);
}

.member-add-modal .status-badge.active .status-dot {
  background: var(--ui-success);
}

.member-add-modal .phase-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  padding: 4px 10px;
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
  border: 1px solid var(--ui-warning-border);
}

.member-add-modal .phase-badge mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

/* Header Tabs - positioned naturally by flex layout */
.member-add-modal .hero-profile-header .pill-tabs-container.header-tabs {
  flex-shrink: 0;
}

/* Loading Skeleton */
.member-add-modal .hero-skeleton {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  gap: var(--ui-space-4);
  padding: 10px var(--ui-space-5);
  background: inherit;
}

.member-add-modal .hero-skeleton .skel-avatar {
  width: var(--ui-space-10);
  height: var(--ui-space-10);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
}

.member-add-modal .hero-skeleton .skel-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.member-add-modal .hero-skeleton .skel-name {
  width: 140px;
  height: 20px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.08);
}

.member-add-modal .hero-skeleton .skel-meta {
  width: 200px;
  height: 14px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.06);
}

.member-add-modal .hero-skeleton .skel-badges {
  display: flex;
  gap: 8px;
}

.member-add-modal .hero-skeleton .skel-badge {
  width: 60px;
  height: 24px;
  border-radius: var(--ui-radius-full);
  background: rgba(255, 255, 255, 0.06);
}

.member-add-modal .skeleton-animate {
  animation: skeleton-pulse 1.5s ease-in-out infinite;
}

@keyframes skeleton-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}
/* Hidden while loading utility */
.member-add-modal .hidden-while-loading {
  transition: opacity 0.2s ease;
}

.member-add-modal .hero-profile-header.loading .hidden-while-loading {
  opacity: 0;
  pointer-events: none;
}

/* ==========================================================================
   TAB SLIDER POSITIONING (CSS-Only for 2-tab layout)
   Following pill-tabs-container UI contract pattern
   ========================================================================== */
.member-add-modal .hero-profile-header .pill-tabs-container .tab-slider {
  position: absolute;
  top: 4px;
  left: 4px;
  height: calc(100% - 8px);
  background: linear-gradient(145deg, rgba(255, 153, 102, 0.25), rgba(255, 120, 70, 0.15));
  border: 1px solid rgba(255, 153, 102, 0.35);
  border-radius: 24px;
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), width 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 0;
  pointer-events: none;
}

/* Profile tab active - first tab position */
.member-add-modal .hero-profile-header .pill-tabs-container.tab-profile .tab-slider {
  transform: translateX(0);
  width: 95px;
}

/* Leaves tab active - second tab position */
.member-add-modal .hero-profile-header .pill-tabs-container.tab-leave .tab-slider {
  transform: translateX(99px);
  width: 104px;
}

/* ==========================================================================
   MODAL BODY MIN HEIGHT - Equal Tab Heights
   ========================================================================== */
.glass-modal-container.member-add-modal .glass-modal-body {
  min-height: 520px;
}

/* ==========================================================================
   WORK MODE SECTION - Edit Mode Segmented Control
   ========================================================================== */
/* Label and hint for Work Mode inside glass-field */
.member-add-modal .glass-field-label {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  margin-bottom: var(--ui-space-1);
}

.member-add-modal .glass-field-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: var(--ui-text-secondary);
}

.member-add-modal .glass-field-hint {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  margin: 0 0 var(--ui-space-3) 0;
  pointer-events: none;
}

.member-add-modal .phase-helper {
  margin: var(--ui-space-1) 0 0;
  pointer-events: none;
}

.glass-modal-container.member-add-modal .work-mode-field {
  position: relative;
  z-index: 6;
}

.member-add-modal .work-mode-selector {
  position: relative;
  z-index: 7;
  display: flex;
  gap: var(--ui-space-2);
  padding: var(--ui-space-1);
  background: var(--ui-surface-2);
  border-radius: var(--ui-radius-lg);
  border: 1px solid var(--ui-border-light);
  pointer-events: auto;
}

.member-add-modal .work-mode-option {
  position: relative;
  z-index: 8;
  pointer-events: auto;
  -webkit-user-select: none;
          user-select: none;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ui-space-1);
  padding: var(--ui-space-2) var(--ui-space-3) var(--ui-space-1);
  background: transparent;
  border: 1px solid transparent;
  border-radius: var(--ui-radius-md);
  cursor: pointer;
  transition: all 0.2s ease;
}
.member-add-modal .work-mode-option mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: var(--ui-text-muted);
  transition: color 0.2s ease;
}
.member-add-modal .work-mode-option span {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-muted);
  transition: color 0.2s ease;
}
.member-add-modal .work-mode-option:hover:not(.active) {
  background: rgba(255, 255, 255, 0.04);
}
.member-add-modal .work-mode-option:hover:not(.active) mat-icon, .member-add-modal .work-mode-option:hover:not(.active) span {
  color: var(--ui-text-secondary);
}
.member-add-modal .work-mode-option.active {
  background: linear-gradient(145deg, rgba(255, 153, 102, 0.15), rgba(255, 120, 70, 0.1));
  border-color: rgba(255, 153, 102, 0.3);
}
.member-add-modal .work-mode-option.active mat-icon {
  color: var(--ui-brand);
}
.member-add-modal .work-mode-option.active span {
  color: var(--ui-text-primary);
}
.member-add-modal .work-mode-option:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.member-add-modal .work-mode-input {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
}

.member-add-modal .work-mode-info {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  font-size: var(--ui-text-xs);
  margin-top: var(--ui-space-1);
}
.member-add-modal .work-mode-info mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
.member-add-modal .work-mode-info.info-warning {
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
  border: 1px solid var(--ui-warning-border);
}
.member-add-modal .work-mode-info.info-info {
  background: var(--ui-info-bg);
  color: var(--ui-info);
  border: 1px solid var(--ui-info-border);
}
.member-add-modal .work-mode-info.info-success {
  background: var(--ui-success-bg);
  color: var(--ui-success);
  border: 1px solid rgba(74, 222, 128, 0.2);
}

.member-add-modal .work-mode-audit {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  margin-top: var(--ui-space-2);
  padding-left: var(--ui-space-1);
}
.member-add-modal .work-mode-audit strong {
  color: var(--ui-text-secondary);
}

/* ==========================================================================
   WORK MODE BADGE - View Mode Display
   ========================================================================== */
.member-add-modal .work-mode-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  padding: var(--ui-space-1) var(--ui-space-2);
  border-radius: var(--ui-radius-md);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
}
.member-add-modal .work-mode-badge mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}
.member-add-modal .work-mode-badge.badge-onsite {
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
  border: 1px solid var(--ui-warning-border);
}
.member-add-modal .work-mode-badge.badge-remote {
  background: var(--ui-info-bg);
  color: var(--ui-info);
  border: 1px solid var(--ui-info-border);
}
.member-add-modal .work-mode-badge.badge-hybrid {
  background: var(--ui-success-bg);
  color: var(--ui-success);
  border: 1px solid rgba(74, 222, 128, 0.2);
}

/* ==========================================================================
   PROFILE + DOCUMENTS (Edit Mode)
   ========================================================================== */
.glass-modal-container.member-add-modal .avatar-upload-container {
  width: 72px;
  display: flex;
  flex-shrink: 0;
  align-self: flex-start;
}

.glass-modal-container.member-add-modal .avatar-preview,
.glass-modal-container.member-add-modal .avatar-uploader {
  width: 72px;
  height: 72px;
  flex: 0 0 72px;
  border-radius: 50%;
}

.glass-modal-container.member-add-modal .avatar-preview {
  position: relative;
  display: block;
  overflow: hidden;
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-2);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.glass-modal-container.member-add-modal .avatar-preview img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.glass-modal-container.member-add-modal .avatar-uploader {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px dashed var(--ui-border-strong);
  background: var(--ui-surface-2);
  color: var(--ui-text-muted);
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.glass-modal-container.member-add-modal .avatar-uploader:hover {
  border-color: var(--ui-brand);
  background: var(--ui-surface-3);
  color: var(--ui-text-secondary);
}

.glass-modal-container.member-add-modal .avatar-uploader mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
}

.glass-modal-container.member-add-modal .avatar-remove-btn {
  position: absolute;
  top: 2px;
  right: 2px;
  width: 20px;
  height: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--ui-border-light);
  border-radius: 50%;
  background: rgba(18, 18, 18, 0.78);
  color: var(--ui-text-secondary);
  cursor: pointer;
}

.glass-modal-container.member-add-modal .avatar-remove-btn mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

.glass-modal-container.member-add-modal .doc-group {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.glass-modal-container.member-add-modal .doc-group + .doc-group {
  margin-top: var(--ui-space-3);
  padding-top: var(--ui-space-3);
  border-top: 1px solid var(--ui-border-subtle);
}

.glass-modal-container.member-add-modal .doc-group-label {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.glass-modal-container.member-add-modal .badge-required {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: var(--ui-radius-full);
  font-size: 10px;
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ui-warning);
  background: var(--ui-warning-bg);
  border: 1px solid var(--ui-warning-border);
}

.glass-modal-container.member-add-modal .doc-list {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.glass-modal-container.member-add-modal .doc-item {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2);
  border-radius: var(--ui-radius-md);
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-2);
}

.glass-modal-container.member-add-modal .doc-item.uploaded {
  border-color: rgba(74, 222, 128, 0.24);
  background: rgba(74, 222, 128, 0.08);
}

.glass-modal-container.member-add-modal .doc-icon {
  width: 26px;
  height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.glass-modal-container.member-add-modal .doc-icon mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
}

.glass-modal-container.member-add-modal .doc-icon.success mat-icon {
  color: var(--ui-success);
}

.glass-modal-container.member-add-modal .doc-icon.pending mat-icon,
.glass-modal-container.member-add-modal .doc-icon .warning-icon {
  color: var(--ui-warning);
}

.glass-modal-container.member-add-modal .doc-name {
  min-width: 0;
  flex: 1;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  line-height: 1.3;
}

.glass-modal-container.member-add-modal .doc-action {
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-md);
  background: transparent;
  color: var(--ui-text-muted);
  cursor: pointer;
  transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}

.glass-modal-container.member-add-modal label.doc-action {
  margin-left: auto;
}

.glass-modal-container.member-add-modal .doc-action.view:hover {
  color: var(--ui-info);
  border-color: var(--ui-info-border);
  background: var(--ui-info-bg);
}

.glass-modal-container.member-add-modal .doc-action.remove:hover {
  color: var(--ui-error);
  border-color: var(--ui-error-border, rgba(248, 113, 113, 0.4));
  background: var(--ui-error-bg, rgba(248, 113, 113, 0.12));
}

.glass-modal-container.member-add-modal .doc-action:not(.view):not(.remove):hover {
  color: var(--ui-brand);
  border-color: var(--ui-brand-faint, rgba(255, 130, 90, 0.45));
  background: rgba(255, 130, 90, 0.12);
}

.glass-modal-container.member-add-modal .doc-action mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

/* ==========================================================================
   EDIT MODE LAYOUT + POLICY CARDS
   ========================================================================== */
.glass-modal-container.member-add-modal .global-warnings-bar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
  margin-bottom: var(--ui-space-3);
}

.glass-modal-container.member-add-modal .ui-grid.member-edit-grid {
  --ui-grid-gap: var(--ui-space-3);
  align-items: stretch;
}

.glass-modal-container.member-add-modal .ui-grid.member-edit-grid > .ui-card, .glass-modal-container.member-add-modal .ui-grid.member-edit-grid > .glass-card,
.glass-modal-container.member-add-modal .ui-grid.member-edit-grid > .glass-panel,
.glass-modal-container.member-add-modal .ui-grid.member-edit-grid > .fd-glass,
.glass-modal-container.member-add-modal .ui-grid.member-edit-grid > .section-card,
.glass-modal-container.member-add-modal .ui-grid.member-edit-grid > .content-section,
.glass-modal-container.member-add-modal .ui-grid.member-edit-grid > .timeline-card,
.glass-modal-container.member-add-modal .ui-grid.member-edit-grid > .entry-section,
.glass-modal-container.member-add-modal .ui-grid.member-edit-grid > .attachments,
.glass-modal-container.member-add-modal .ui-grid.member-edit-grid > .summary-card,
.glass-modal-container.member-add-modal .ui-grid.member-edit-grid > .metric-card,
.glass-modal-container.member-add-modal .ui-grid.member-edit-grid > .review-card,
.glass-modal-container.member-add-modal .ui-grid.member-edit-grid > .config-section,
.glass-modal-container.member-add-modal .ui-grid.member-edit-grid > .panel-card {
  align-self: stretch;
  height: 100%;
}

.glass-modal-container.member-add-modal .ui-grid.additional-details-grid {
  --ui-grid-gap: var(--ui-space-3);
  align-items: stretch;
}

.glass-modal-container.member-add-modal .ui-grid.additional-details-grid > .ui-card, .glass-modal-container.member-add-modal .ui-grid.additional-details-grid > .glass-card,
.glass-modal-container.member-add-modal .ui-grid.additional-details-grid > .glass-panel,
.glass-modal-container.member-add-modal .ui-grid.additional-details-grid > .fd-glass,
.glass-modal-container.member-add-modal .ui-grid.additional-details-grid > .section-card,
.glass-modal-container.member-add-modal .ui-grid.additional-details-grid > .content-section,
.glass-modal-container.member-add-modal .ui-grid.additional-details-grid > .timeline-card,
.glass-modal-container.member-add-modal .ui-grid.additional-details-grid > .entry-section,
.glass-modal-container.member-add-modal .ui-grid.additional-details-grid > .attachments,
.glass-modal-container.member-add-modal .ui-grid.additional-details-grid > .summary-card,
.glass-modal-container.member-add-modal .ui-grid.additional-details-grid > .metric-card,
.glass-modal-container.member-add-modal .ui-grid.additional-details-grid > .review-card,
.glass-modal-container.member-add-modal .ui-grid.additional-details-grid > .config-section,
.glass-modal-container.member-add-modal .ui-grid.additional-details-grid > .panel-card {
  align-self: stretch;
  height: 100%;
}

.glass-modal-container.member-add-modal .member-helper-text {
  margin: 0;
  padding: 0;
  line-height: 1.45;
  color: var(--ui-text-muted);
}

.glass-modal-container.member-add-modal .policy-card {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.glass-modal-container.member-add-modal .policy-card .policy-card__body {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.glass-modal-container.member-add-modal .policy-toggle-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-1) 0;
}

.glass-modal-container.member-add-modal .policy-toggle-row .pill-toggle {
  flex-shrink: 0;
}

.glass-modal-container.member-add-modal .policy-toggle-label {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-secondary);
  line-height: 1.3;
}

.glass-modal-container.member-add-modal .policy-divider {
  height: 1px;
  margin: var(--ui-space-1) 0;
  background: var(--ui-border-subtle);
}

.glass-modal-container.member-add-modal .policy-helper-text {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-1);
  margin: calc(var(--ui-space-2) * -1) 0 0;
  line-height: 1.45;
  color: var(--ui-warning);
}

.glass-modal-container.member-add-modal .policy-helper-text.policy-helper-text--neutral {
  color: var(--ui-text-muted);
}

.glass-modal-container.member-add-modal .policy-helper-text .helper-icon {
  margin-top: 1px;
  font-size: 14px;
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.glass-modal-container.member-add-modal .policy-helper-text .helper-icon.warning {
  color: var(--ui-warning);
}

.glass-modal-container.member-add-modal .policy-helper-text .helper-icon.neutral {
  color: var(--ui-info);
}

.glass-modal-container.member-add-modal .policy-input-row {
  align-items: stretch;
  gap: var(--ui-space-3);
}

.glass-modal-container.member-add-modal .policy-input-row .glass-field {
  min-width: 0;
}

.glass-modal-container.member-add-modal .policy-static-box {
  height: 100%;
  min-height: 56px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--ui-space-1);
  padding: var(--ui-space-3);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-2);
}

.glass-modal-container.member-add-modal .policy-static-label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
}

.glass-modal-container.member-add-modal .policy-static-value {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  line-height: 1.4;
}

.glass-modal-container.member-add-modal .policy-info-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-3);
  padding: var(--ui-space-2) 0;
  border-bottom: 1px solid var(--ui-border-subtle);
}

.glass-modal-container.member-add-modal .policy-info-row:last-of-type {
  border-bottom: none;
}

.glass-modal-container.member-add-modal .policy-info-row .ui-info-label {
  margin: 0;
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.glass-modal-container.member-add-modal .policy-info-row .ui-info-value {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ui-space-1);
  font-size: var(--ui-text-sm);
  text-align: right;
  color: var(--ui-text-primary);
}

.glass-modal-container.member-add-modal .policy-status-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.glass-modal-container.member-add-modal .policy-status-icon.success {
  color: var(--ui-success);
}

.glass-modal-container.member-add-modal .policy-status-icon.warning {
  color: var(--ui-warning);
}

.glass-modal-container.member-add-modal .policy-warning-text {
  color: var(--ui-warning);
}

.glass-modal-container.member-add-modal .policy-info-tooltip-icon {
  margin-left: 6px;
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: var(--ui-text-muted);
  vertical-align: middle;
}

.glass-modal-container.member-add-modal .policy-footer-note {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-1);
  margin: var(--ui-space-1) 0 0;
  padding-top: var(--ui-space-2);
  border-top: 1px solid var(--ui-border-subtle);
  line-height: 1.45;
}

.glass-modal-container.member-add-modal .policy-footer-note mat-icon {
  margin-top: 1px;
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: var(--ui-text-muted);
}

/* ==========================================================================
   COMPENSATION MODEL
   ========================================================================== */
.glass-modal-container.member-add-modal .compensation-classification-badge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  gap: var(--ui-space-1);
  padding: 5px 10px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 999px;
  color: var(--ui-text-secondary);
  background: rgba(255, 255, 255, 0.04);
  font-size: var(--ui-text-xs);
  font-weight: 700;
  line-height: 1.2;
  text-transform: uppercase;
  white-space: nowrap;
}

.glass-modal-container.member-add-modal .compensation-classification-badge mat-icon {
  width: 14px;
  height: 14px;
  font-size: 14px;
}

.glass-modal-container.member-add-modal .compensation-classification-badge--direct {
  border-color: rgba(74, 222, 128, 0.35);
  color: var(--ui-success);
  background: rgba(74, 222, 128, 0.1);
}

.glass-modal-container.member-add-modal .compensation-classification-badge--indirect {
  border-color: rgba(255, 255, 255, 0.14);
  color: var(--ui-text-secondary);
  background: rgba(255, 255, 255, 0.05);
}

.glass-modal-container.member-add-modal .compensation-ux-hint {
  display: block;
  margin-top: 6px;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  line-height: 1.35;
}

.glass-modal-container.member-add-modal .compensation-classification-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  padding: var(--ui-space-2) var(--ui-space-3);
  border: 1px solid var(--ui-border-subtle);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.03);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
}

.glass-modal-container.member-add-modal .compensation-classification-card--direct {
  border-color: rgba(74, 222, 128, 0.24);
  background: rgba(74, 222, 128, 0.06);
}

.glass-modal-container.member-add-modal .compensation-history-mini {
  margin-top: var(--ui-space-4);
  padding-top: var(--ui-space-3);
  border-top: 1px solid var(--ui-border-subtle);
}

.glass-modal-container.member-add-modal .compensation-history-mini--edit {
  margin-top: var(--ui-space-2);
}

.glass-modal-container.member-add-modal .compensation-history-mini__header {
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
  margin-bottom: var(--ui-space-2);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-xs);
  font-weight: 700;
  text-transform: uppercase;
}

.glass-modal-container.member-add-modal .compensation-history-mini__header mat-icon {
  width: 15px;
  height: 15px;
  font-size: 15px;
  color: var(--ui-accent);
}

.glass-modal-container.member-add-modal .compensation-history-mini__row {
  display: grid;
  grid-template-columns: minmax(92px, auto) minmax(72px, auto) minmax(0, 1fr);
  gap: var(--ui-space-2);
  align-items: center;
  padding: 7px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
}

.glass-modal-container.member-add-modal .compensation-history-mini__row strong {
  color: var(--ui-text-primary);
  font-size: var(--ui-text-xs);
  font-weight: 700;
}

.glass-modal-container.member-add-modal .compensation-history-mini__row small {
  min-width: 0;
  overflow: hidden;
  color: var(--ui-text-muted);
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ==========================================================================
   COLLAPSIBLE SECTIONS (Edit Mode)
   ========================================================================== */
.glass-modal-container.member-add-modal .collapsible-section {
  margin-top: var(--ui-space-4);
}

.glass-modal-container.member-add-modal .collapsible-section .ui-card__toggle {
  margin-bottom: 0;
}

.glass-modal-container.member-add-modal .collapsible-section .ui-card__collapsible-content {
  margin-top: var(--ui-space-3);
}

/* ==========================================================================
   RESPONSIVE REFINEMENTS
   ========================================================================== */
@media (max-width: 1280px) {
  .glass-modal-container.member-add-modal .ui-grid.member-edit-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .glass-modal-container.member-add-modal .ui-grid.additional-details-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 900px) {
  .glass-modal-container.member-add-modal .ui-grid.member-edit-grid,
  .glass-modal-container.member-add-modal .ui-grid.additional-details-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .glass-modal-container.member-add-modal .policy-input-row {
    grid-template-columns: minmax(0, 1fr);
  }
  .glass-modal-container.member-add-modal .policy-info-row {
    flex-direction: column;
    align-items: flex-start;
  }
  .glass-modal-container.member-add-modal .policy-info-row .ui-info-value {
    justify-content: flex-start;
    text-align: left;
  }
}
/* ==========================================================================
   CORPORATE ACCESS SECTION (GROUP Mode)
   ========================================================================== */
.glass-modal-container.member-add-modal .corporate-access-section {
  margin-top: var(--ui-space-5);
  padding: var(--ui-space-4);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--ui-radius-lg);
  background: rgba(255, 255, 255, 0.03);
}

.glass-modal-container.member-add-modal .corporate-access-section .section-title {
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-semibold);
  margin: 0 0 var(--ui-space-4);
  color: var(--ui-text-primary);
}

.glass-modal-container.member-add-modal .corporate-access-section .full-width {
  width: 100%;
}

.glass-modal-container.member-add-modal .corporate-access-section .permissions-grid {
  margin-top: var(--ui-space-4);
}

.glass-modal-container.member-add-modal .corporate-access-section .permissions-grid h4 {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  margin: 0 0 var(--ui-space-2);
  color: var(--ui-text-primary);
}

.glass-modal-container.member-add-modal .corporate-access-section .permissions-hint {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  margin: 0 0 var(--ui-space-4);
}

.glass-modal-container.member-add-modal .corporate-access-section .permission-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-4);
  padding: var(--ui-space-2) 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.glass-modal-container.member-add-modal .corporate-access-section .permission-row:last-child {
  border-bottom: none;
}

.glass-modal-container.member-add-modal .corporate-access-section .permission-label {
  min-width: 100px;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-primary);
}

.glass-modal-container.member-add-modal .corporate-access-section mat-slide-toggle {
  font-size: var(--ui-text-xs);
}

/* ==========================================================================
   EXPENSE MODALS
   ==========================================================================
   Layout-only overrides for expense modals.
   Input styling is inherited from forms.scss via .glass-modal-container.
   ========================================================================== */
.expense-details-modal.glass-modal-container {
  height: auto;
  max-height: 94vh;
}

.expense-details-modal .glass-modal-body {
  flex: 0 1 auto;
  padding-bottom: 16px;
}

/* Compact spacing between form grid items */
.expense-details-modal.glass-modal-container .glass-form-grid {
  gap: 12px;
}

/* ==========================================================================
   BULK EXPENSE ACTION DIALOG
   ==========================================================================
   Approval/rejection flow for selected expenses.
   Uses shared modal, card, grid, and tables contracts with scoped layout fixes.
   ========================================================================== */
.expense-bulk-action-dialog.glass-modal-container {
  height: auto;
  max-height: 88vh;
}

.expense-bulk-action-dialog .glass-modal-body {
  gap: var(--ui-space-5);
}

.expense-bulk-action-dialog .ui-modal__helper-text, .expense-bulk-action-dialog .glass-modal-container .muted, .glass-modal-container .expense-bulk-action-dialog .muted,
.expense-bulk-action-dialog .glass-modal-container .helper-text,
.glass-modal-container .expense-bulk-action-dialog .helper-text,
.expense-bulk-action-dialog .glass-modal-container .hint,
.glass-modal-container .expense-bulk-action-dialog .hint,
.expense-bulk-action-dialog .glass-modal-container .confirm-message,
.glass-modal-container .expense-bulk-action-dialog .confirm-message {
  margin: 0;
}

.expense-bulk-action-dialog__top-grid {
  --ui-grid-columns: minmax(0, 1fr);
  --ui-grid-gap: var(--ui-space-4);
  align-items: start;
}

.expense-bulk-action-dialog__items-card {
  min-width: 0;
  width: 100%;
}

.expense-bulk-action-dialog__table-card {
  max-height: none;
  min-height: 0;
}

.expense-bulk-action-dialog__table {
  min-width: 0;
}

.expense-bulk-action-dialog__table tbody {
  max-height: none;
  overflow: visible;
}

.expense-bulk-action-dialog__table tbody tr {
  cursor: default;
}

.expense-bulk-action-dialog__col-expense {
  width: 42%;
}

.expense-bulk-action-dialog__col-category {
  width: 26%;
}

.expense-bulk-action-dialog__col-amount {
  width: 18%;
}

.expense-bulk-action-dialog__reason-card {
  margin-top: var(--ui-space-4);
}

.expense-bulk-action-dialog__expense-cell {
  min-width: 0;
}

.expense-bulk-action-dialog__truncate {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.expense-bulk-action-dialog__field {
  width: 100%;
}

.expense-bulk-action-dialog__notice {
  margin-top: 0;
}

/* ==========================================================================
   SUBMIT EXPENSE CONFIRMATION DIALOG
   ==========================================================================
   Compact approval-submit confirmation modal.
   ========================================================================== */
.expense-submit-dialog.glass-modal-container {
  height: auto;
  max-height: 82vh;
}

.expense-submit-dialog .ui-modal__header {
  padding-bottom: var(--ui-space-4);
}

.expense-submit-dialog__icon {
  color: rgba(255, 145, 104, 0.96);
}

.expense-submit-dialog__subtitle {
  margin: 6px 0 0;
  max-width: 44ch;
  font-size: 15px;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.68);
}

.expense-submit-dialog .ui-modal__body {
  gap: var(--ui-space-4);
}

.expense-submit-dialog__section {
  padding: 18px 20px;
}

.expense-submit-dialog__checklist {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.expense-submit-dialog__checklist-item {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  color: rgba(255, 255, 255, 0.82);
  font-size: 14px;
  line-height: 1.5;
}

.expense-submit-dialog__checklist-item mat-icon {
  width: 18px;
  height: 18px;
  font-size: 18px;
  color: rgba(255, 170, 129, 0.86);
}

.expense-submit-dialog__notice {
  margin-top: 0;
  font-size: 14px;
  line-height: 1.45;
}

.expense-submit-dialog .ui-modal__footer {
  padding-top: var(--ui-space-4);
}

@media (max-width: 1100px) {
  .expense-bulk-action-dialog__top-grid {
    --ui-grid-columns: 1fr;
  }
}
@media (max-width: 640px) {
  .expense-submit-dialog__section {
    padding: 16px;
  }
}
/* ==========================================================================
   UI MODAL VARIANT - ADVANCE
   ==========================================================================
   Advance modal styling contract. Extends the base modal system.
   Apply: .glass-modal-container with size class (.modal-sm, .modal-md, .modal-lg)
   ========================================================================== */
/* ==========================================================================
   MODAL SIZES
   ========================================================================== */
.glass-modal-container.modal-sm {
  width: 560px;
  max-width: 95vw;
}

.glass-modal-container.modal-md {
  width: 720px;
  max-width: 95vw;
}

.glass-modal-container.modal-lg {
  width: 1000px;
  max-width: 95vw;
}

.glass-modal-container.modal-xl {
  width: min(1600px, 94vw);
  max-width: none;
  max-height: 94vh;
  margin: 0 auto;
}

/* ==========================================================================
   HEADER ICON
   ========================================================================== */
.glass-modal-container .header-icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(255, 130, 90, 0.2), rgba(255, 90, 60, 0.1));
  border: 1px solid rgba(255, 130, 90, 0.3);
  border-radius: 14px;
  flex-shrink: 0;
}

.glass-modal-container .header-icon mat-icon {
  font-size: 24px;
  width: 24px;
  height: 24px;
  color: #ff8a65;
}

.glass-modal-container .glass-modal-header {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px 24px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(0, 0, 0, 0.1);
  flex-wrap: wrap;
}

/* Employee info integrated in header */
.glass-modal-container .header-employee {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding-right: var(--ui-space-4);
  border-right: 1px solid var(--ui-border);
}

.header-emp-avatar {
  width: 36px;
  height: 36px;
  border-radius: var(--ui-radius-full);
  background: var(--ui-brand-gradient);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: var(--ui-font-bold);
  font-size: var(--ui-text-base);
  color: var(--ui-text-primary);
  flex-shrink: 0;
  overflow: hidden;
}

.header-emp-avatar-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--ui-radius-full);
}

.header-emp-info {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.header-emp-name {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
}

.header-emp-code {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.glass-modal-container .header-content {
  margin-left: auto;
  display: flex;
  align-items: baseline;
  gap: var(--ui-space-3);
}

.glass-modal-container .header-content h2 {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
}

.glass-modal-container .header-subtitle {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
  margin-top: 0;
}

/* ==========================================================================
   MODAL BODY
   ========================================================================== */
.glass-modal-container .glass-modal-body {
  padding: 20px 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  overflow-y: auto;
}

/* ==========================================================================
   CARD TITLE
   ========================================================================== */
.glass-modal-container .card-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 14px;
}

.glass-modal-container .card-title .icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 176, 131, 0.8);
}

/* ==========================================================================
   EMPLOYEE SELECTION & DISPLAY
   ========================================================================== */
/* Employee option in autocomplete */
.emp-option {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: 4px 0;
}

.emp-option .emp-name {
  font-weight: 500;
  color: rgba(255, 255, 255, 0.9);
}

.emp-option .emp-code {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
  background: rgba(255, 255, 255, 0.08);
  padding: 2px 8px;
  border-radius: 4px;
}

/* Selected Employee Strip - compact inline */
.selected-employee-strip {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 20px;
  background: linear-gradient(135deg, rgba(255, 130, 90, 0.08), rgba(255, 90, 60, 0.04));
  border: 1px solid rgba(255, 130, 90, 0.15);
  border-radius: 14px;
}

.selected-employee-strip .emp-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: linear-gradient(135deg, #ff8a65, #e65100);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 14px;
  color: #fff;
  flex-shrink: 0;
}

.selected-employee-strip .emp-info {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 12px;
}

.selected-employee-strip .emp-info .emp-name {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
}

.selected-employee-strip .emp-info .emp-code-label {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
  background: rgba(255, 255, 255, 0.08);
  padding: 2px 8px;
  border-radius: 4px;
}

.selected-employee-strip .change-btn {
  padding: 6px 14px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  color: rgba(255, 255, 255, 0.8);
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
}

.selected-employee-strip .change-btn:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}

/* Selected Employee Card - for edit/view modes */
.selected-employee-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
}

.emp-avatar {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(255, 130, 90, 0.8), rgba(255, 100, 70, 0.7));
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  font-size: 16px;
  color: white;
  flex-shrink: 0;
}

.emp-info {
  flex: 1;
}

.emp-info h4 {
  margin: 0 0 2px 0;
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}

.emp-code-label {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
}

/* ==========================================================================
   STATUS BADGES
   ========================================================================== */
.status-badge {
  padding: 4px 12px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.status-badge.status-active {
  background: rgba(255, 160, 64, 0.15);
  border: 1px solid rgba(255, 160, 64, 0.35);
  color: #ffb347;
}

.status-badge.status-recovered {
  background: rgba(80, 200, 120, 0.15);
  border: 1px solid rgba(80, 200, 120, 0.35);
  color: #50c878;
}

.status-badge.status-cancelled {
  background: rgba(180, 80, 80, 0.15);
  border: 1px solid rgba(180, 80, 80, 0.35);
  color: #e07070;
}

/* ==========================================================================
   INFO PANEL - Active advance exists
   ========================================================================== */
.info-panel {
  background: rgba(59, 130, 246, 0.08);
  border: 1px solid rgba(59, 130, 246, 0.25);
  border-radius: 12px;
  padding: 16px;
}

.info-panel-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}

.info-panel-header mat-icon {
  color: rgba(96, 165, 250, 0.9);
  font-size: 20px;
  width: 20px;
  height: 20px;
}

.info-panel-header span {
  font-size: 14px;
  font-weight: 600;
  color: rgba(147, 197, 253, 0.95);
}

.info-panel-message {
  font-size: 13px;
  color: rgba(191, 219, 254, 0.85);
  line-height: 1.5;
  margin: 0 0 14px 0;
}

.existing-advance-summary {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  padding: 12px;
  background: rgba(255, 255, 255, 0.04);
  border-radius: 8px;
}

.existing-advance-summary .summary-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.existing-advance-summary label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: rgba(255, 255, 255, 0.5);
}

.existing-advance-summary .value {
  font-size: 15px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}

/* ==========================================================================
   BANNERS
   ========================================================================== */
.error-banner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 20px;
  background: rgba(239, 68, 68, 0.12);
  border-bottom: 1px solid rgba(239, 68, 68, 0.2);
  color: #f87171;
  font-size: 13px;
}

.error-banner mat-icon {
  color: #f87171;
  flex-shrink: 0;
}

.lock-banner {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 20px;
  background: rgba(99, 102, 241, 0.1);
  border-bottom: 1px solid rgba(99, 102, 241, 0.25);
  font-size: 13px;
  font-weight: 500;
  color: rgba(165, 180, 252, 0.95);
}

.lock-banner mat-icon {
  flex-shrink: 0;
  color: rgba(165, 180, 252, 0.8);
}

/* ==========================================================================
   FORM LAYOUTS
   ========================================================================== */
.advance-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 12px;
}

.form-two-column {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 16px;
}

@media (max-width: 500px) {
  .form-two-column {
    grid-template-columns: 1fr;
  }
}
.field-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

/* Large amount input in edit mode — matches the view-mode amount-value size */
.field-row .glass-field input[type=number],
.field-row .glass-field .mat-mdc-input-element {
  font-size: 20px;
  font-weight: 600;
}

/* ==========================================================================
   RECOVERY TIMING
   ========================================================================== */
.recovery-timing-section {
  padding: 14px 16px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
}

.recovery-timing-section .section-label {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: rgba(255, 255, 255, 0.6);
  margin-bottom: 12px;
}

.recovery-timing-group {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.recovery-timing-group.horizontal {
  flex-direction: row;
  gap: 24px;
  flex-wrap: wrap;
}

.recovery-timing-group mat-radio-button {
  --mdc-radio-selected-icon-color: #ff9060;
  --mdc-radio-unselected-icon-color: rgba(255, 255, 255, 0.4);
}

.lock-note {
  margin-top: 10px;
  padding: 8px 12px;
  background: rgba(255, 180, 100, 0.08);
  border: 1px solid rgba(255, 180, 100, 0.2);
  border-radius: 6px;
  font-size: 12px;
  color: rgba(255, 200, 150, 0.85);
}

/* ==========================================================================
   INFO NOTE
   ========================================================================== */
.info-note {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  background: rgba(99, 102, 241, 0.08);
  border: 1px solid rgba(99, 102, 241, 0.2);
  border-radius: 10px;
  font-size: 13px;
  color: rgba(165, 180, 252, 0.9);
  margin-top: 8px;
}

.info-note mat-icon {
  flex-shrink: 0;
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(165, 180, 252, 0.8);
}

.info-note.warning {
  background: rgba(255, 160, 64, 0.08);
  border-color: rgba(255, 160, 64, 0.25);
}

.info-note.warning mat-icon {
  color: rgba(255, 180, 100, 0.85);
}

.info-note.warning span {
  color: rgba(255, 200, 150, 0.9);
}

/* ==========================================================================
   VIEW DETAILS
   ========================================================================== */
.view-details {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 16px;
}

.detail-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

@media (max-width: 500px) {
  .detail-row {
    grid-template-columns: 1fr;
  }
}
.detail-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.detail-item.full {
  grid-column: 1/-1;
}

.detail-item label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.5);
}

.detail-item .value {
  font-size: 14px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.9);
}

.detail-item .value.amount {
  font-size: 18px;
  font-weight: 600;
  color: white;
}

.detail-item .value.success {
  color: #49d39e;
}

.detail-item .value.danger {
  color: #f87171;
}

.warning-text {
  color: #ffc078;
}

/* ==========================================================================
   AMOUNTS & TOTALS
   ========================================================================== */
.current-amount-display {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 14px 16px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  margin-bottom: 16px;
}

.current-amount-display label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.5);
}

.current-amount-display .amount-value {
  font-size: 20px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
}

.total-display {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 16px;
  background: rgba(80, 200, 120, 0.1);
  border: 1px solid rgba(80, 200, 120, 0.25);
  border-radius: 10px;
  margin-top: 12px;
}

.total-display label {
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: rgba(134, 239, 172, 0.9);
}

.total-display .total-value {
  font-size: 18px;
  font-weight: 700;
  color: #86efac;
}

/* ==========================================================================
   TWO COLUMN LAYOUTS
   ========================================================================== */
.two-column-layout {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 20px;
  align-items: start;
}

.add-existing-two-column {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  align-items: start;
}

.column-left {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.column-right {
  position: sticky;
  top: 0;
}

@media (max-width: 700px) {
  .two-column-layout,
  .add-existing-two-column {
    grid-template-columns: 1fr;
  }
  .column-right {
    position: static;
  }
}
/* ==========================================================================
   ADDITIONAL PAYMENT SECTION
   ========================================================================== */
.additional-payment-section {
  border: 1px solid rgba(255, 160, 64, 0.2);
  background: rgba(255, 160, 64, 0.04);
}

.additional-payment-section .card-title {
  color: rgba(255, 200, 130, 0.95);
}

.additional-payment-section .card-title .icon {
  color: rgba(255, 180, 100, 0.8);
}

/* ==========================================================================
   ADJUSTMENT PANEL
   ========================================================================== */
.advance-adjustment-panel {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  padding: var(--ui-space-5);
  border: 1px solid rgba(255, 160, 64, 0.2);
  border-radius: var(--ui-radius-lg);
  background: linear-gradient(135deg, rgba(255, 160, 64, 0.07), rgba(255, 255, 255, 0.03));
}

.advance-adjustment-panel__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-4);
  padding-bottom: var(--ui-space-3);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.advance-adjustment-panel__header .card-title {
  margin-bottom: 0;
  color: rgba(255, 200, 130, 0.95);
}

.advance-adjustment-panel__header .card-title .icon {
  color: rgba(255, 180, 100, 0.85);
}

.advance-adjustment-panel__balance {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  min-height: 32px;
  padding: 6px var(--ui-space-3);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--ui-radius-full);
  background: rgba(0, 0, 0, 0.16);
  white-space: nowrap;
}

.advance-adjustment-panel__balance span {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0;
}

.advance-adjustment-panel__balance strong {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
}

.advance-adjustment-form {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(240px, 1fr);
  gap: var(--ui-space-4);
}

.advance-adjustment-form > .glass-field.full-width {
  grid-column: auto;
  width: 100%;
  min-width: 0;
}

.advance-adjustment-form__notes {
  grid-column: 1/-1;
}

.advance-adjustment-preview {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ui-space-3);
  padding: var(--ui-space-4);
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: var(--ui-radius-md);
  background: rgba(0, 0, 0, 0.14);
}

.advance-adjustment-preview__item {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  min-width: 0;
}

.advance-adjustment-preview__item label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0;
}

.advance-adjustment-preview__item .preview-value {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  line-height: 1.35;
}

.advance-adjustment-preview__item--result .preview-value {
  color: #ffcf99;
}

.advance-adjustment-preview__item .preview-value.settled {
  color: #86efac;
}

.advance-adjustment-preview__notice {
  grid-column: 1/-1;
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-2);
  padding-top: var(--ui-space-3);
  border-top: 1px solid rgba(134, 239, 172, 0.16);
  color: rgba(187, 247, 208, 0.9);
  font-size: var(--ui-text-sm);
  line-height: 1.45;
}

.advance-adjustment-preview__notice mat-icon {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  font-size: 18px;
  color: #86efac;
}

.advance-adjustment-panel .btn-adjustment-submit {
  margin-top: 0;
}

@media (max-width: 700px) {
  .advance-adjustment-form {
    grid-template-columns: 1fr;
  }
  .advance-adjustment-panel__header {
    align-items: flex-start;
    flex-direction: column;
  }
  .advance-adjustment-preview {
    grid-template-columns: 1fr;
  }
}
/* ==========================================================================
   BUTTONS
   ========================================================================== */
.btn-back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  color: rgba(255, 255, 255, 0.7);
  font-size: 13px;
  cursor: pointer;
  transition: all 0.2s ease;
  margin-bottom: 8px;
}

.btn-back:hover {
  background: rgba(255, 255, 255, 0.06);
  color: white;
}

.btn-back mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.btn-add-amount {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 12px 20px;
  background: linear-gradient(135deg, rgba(255, 160, 64, 0.9), rgba(255, 130, 60, 0.85));
  border: none;
  border-radius: 10px;
  color: white;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  margin-top: 16px;
}

.btn-add-amount:hover:not(:disabled) {
  background: linear-gradient(135deg, rgba(255, 180, 80, 0.95), rgba(255, 150, 70, 0.9));
  transform: translateY(-1px);
}

.btn-add-amount:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.btn-cancel {
  padding: 10px 20px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 100px;
  color: rgba(255, 255, 255, 0.7);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
}

.btn-cancel:hover {
  background: rgba(255, 255, 255, 0.1);
  color: white;
}

.btn-create {
  padding: 10px 24px;
  background: linear-gradient(135deg, rgba(255, 120, 80, 0.9), rgba(225, 65, 37, 0.9));
  border: 1px solid rgba(255, 120, 80, 0.6);
  border-radius: 100px;
  color: white;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 140px;
}

.btn-create:hover:not(:disabled) {
  background: linear-gradient(135deg, rgb(255, 120, 80), rgb(225, 65, 37));
  transform: translateY(-1px);
}

.btn-create:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.btn-create.btn-secondary {
  background: rgba(59, 130, 246, 0.2);
  border: 1px solid rgba(59, 130, 246, 0.4);
  color: rgba(147, 197, 253, 0.95);
}

.btn-create.btn-secondary:hover {
  background: rgba(59, 130, 246, 0.3);
}

/* ==========================================================================
   EDIT MODE BANNER
   ========================================================================== */
.edit-mode-banner {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 24px;
  background: linear-gradient(135deg, rgba(59, 130, 246, 0.12), rgba(99, 102, 241, 0.08));
  border-bottom: 1px solid rgba(99, 102, 241, 0.25);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(165, 180, 252, 0.95);
}

.edit-mode-banner mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(147, 197, 253, 0.9);
}

/* ==========================================================================
   HEADER EDIT BUTTON (Pencil icon — top-right)
   ========================================================================== */
.header-edit-btn {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(59, 130, 246, 0.15), rgba(99, 102, 241, 0.1));
  border: 1px solid rgba(99, 102, 241, 0.3);
  border-radius: 14px;
  cursor: pointer;
  transition: all 0.2s ease;
  flex-shrink: 0;
}

.header-edit-btn mat-icon {
  font-size: 22px;
  width: 22px;
  height: 22px;
  color: rgba(147, 197, 253, 0.9);
}

.header-edit-btn:hover:not(:disabled) {
  background: linear-gradient(135deg, rgba(59, 130, 246, 0.25), rgba(99, 102, 241, 0.18));
  border-color: rgba(99, 102, 241, 0.5);
  transform: translateY(-1px);
}

.header-edit-btn:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

/* ==========================================================================
   EDITABLE BADGE
   ========================================================================== */
.editable-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  border-radius: 12px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: rgba(59, 130, 246, 0.12);
  border: 1px solid rgba(59, 130, 246, 0.25);
  color: rgba(147, 197, 253, 0.95);
  margin-left: 4px;
}

.editable-badge mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

/* ==========================================================================
   CHANGE HIGHLIGHT (Old → New)
   ========================================================================== */
.change-highlight {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  background: rgba(255, 160, 64, 0.06);
  border: 1px solid rgba(255, 160, 64, 0.2);
  border-radius: 10px;
}

.change-highlight > mat-icon:first-child {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 180, 100, 0.7);
}

.change-highlight .change-old {
  font-size: 14px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.45);
  text-decoration: line-through;
}

.change-highlight .change-arrow {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: rgba(255, 180, 100, 0.6);
}

.change-highlight .change-new {
  font-size: 15px;
  font-weight: 700;
  color: rgba(134, 239, 172, 0.95);
}

/* ==========================================================================
   REASON FIELD
   ========================================================================== */
.reason-field {
  padding: 16px;
  background: rgba(255, 160, 64, 0.04);
  border: 1px solid rgba(255, 160, 64, 0.15);
  border-radius: 12px;
  margin-top: 4px;
}

.reason-field .card-title {
  margin-bottom: 10px;
}

.reason-field .required-star {
  color: #f87171;
  font-weight: 700;
  margin-left: 2px;
}

/* ==========================================================================
   FIELD LOCK ICON (partial recovery)
   ========================================================================== */
.field-lock-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 180, 100, 0.6);
  cursor: help;
}

.field-lock-icon.inline {
  font-size: 14px;
  width: 14px;
  height: 14px;
  vertical-align: middle;
  margin-left: 4px;
}

/* ==========================================================================
   ADVANCE ACTIVITY LOG
   ========================================================================== */
.cdk-overlay-pane.advance-activity-log-panel {
  width: 100vw !important;
  max-width: 100vw !important;
  height: 100vh !important;
  max-height: 100vh !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  pointer-events: none !important;
}

.cdk-overlay-pane.advance-activity-log-panel .mat-mdc-dialog-container,
.cdk-overlay-pane.advance-activity-log-panel .mdc-dialog__container,
.cdk-overlay-pane.advance-activity-log-panel .mat-mdc-dialog-surface,
.cdk-overlay-pane.advance-activity-log-panel .mdc-dialog__surface {
  width: min(820px, 100vw - var(--ui-space-8));
  max-width: calc(100vw - var(--ui-space-8));
  pointer-events: auto;
}

.cdk-overlay-pane.advance-activity-log-panel .mat-mdc-dialog-surface {
  max-height: min(90vh, 760px);
}

.alm-shell {
  width: 100%;
  max-height: min(90vh, 760px);
  display: flex;
  flex-direction: column;
  font-family: var(--ui-font-primary);
}

.alm-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-4);
  padding: var(--ui-space-5) var(--ui-space-6);
  border-bottom: 1px solid var(--ui-border);
  background: var(--ui-surface-1);
  flex-shrink: 0;
}

.alm-header__left {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  min-width: 0;
}

.alm-header__icon {
  width: 40px;
  height: 40px;
  border-radius: var(--ui-radius-lg);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--ui-brand-light);
  background: var(--ui-table-accent-bg);
  border: 1px solid var(--ui-table-accent-border);
}

.alm-header__icon mat-icon {
  font-size: var(--ui-text-2xl);
  width: var(--ui-text-2xl);
  height: var(--ui-text-2xl);
}

.alm-header h2 {
  margin: 0;
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  line-height: 1.2;
}

.alm-count {
  display: block;
  margin-top: var(--ui-space-1);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.alm-close {
  flex-shrink: 0;
}

.alm-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--ui-border-hover) transparent;
}

.alm-body::-webkit-scrollbar {
  width: var(--ui-table-scrollbar-size);
}

.alm-body::-webkit-scrollbar-thumb {
  background: var(--ui-border-hover);
  border-radius: var(--ui-table-scrollbar-radius);
}

.alm-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(156px, auto) minmax(126px, auto);
  align-items: center;
  gap: var(--ui-space-5);
  padding: var(--ui-space-4) var(--ui-space-6);
  border-bottom: 1px solid var(--ui-border-light);
  transition: background var(--ui-transition-fast), border-color var(--ui-transition-fast);
}

.alm-row:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
}

.alm-row:last-child {
  border-bottom: 0;
}

.alm-row__left {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  min-width: 0;
}

.alm-row__avatar {
  width: 36px;
  height: 36px;
  border-radius: var(--ui-radius-full);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--ui-text-primary);
  background: var(--ui-surface-3);
  border: 1px solid var(--ui-border);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  text-transform: uppercase;
}

.alm-row__identity {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  min-width: 0;
}

.alm-row__name {
  font-size: var(--ui-text-base);
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-medium);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.alm-row__no {
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-subtle);
  white-space: nowrap;
}

.alm-row__amount {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--ui-space-1);
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-bold);
  white-space: nowrap;
  text-align: right;
  color: var(--ui-text-muted);
}

.alm-row__amount-value {
  line-height: 1.1;
}

.alm-row__amount--pos {
  color: var(--ui-success);
}

.alm-row__amount--neg {
  color: var(--ui-danger);
}

.alm-row__amount--zero {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-subtle);
}

.alm-row__meta {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  gap: var(--ui-space-2);
  min-width: 0;
}

.alm-row__time {
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-normal);
  color: var(--ui-text-subtle);
  white-space: nowrap;
  text-align: right;
}

.alm-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: max-content;
  max-width: 100%;
  min-height: 24px;
  padding: var(--ui-space-1) var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-1);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  text-transform: uppercase;
  white-space: nowrap;
}

.alm-pill--create,
.alm-pill--success {
  color: var(--ui-success);
  border-color: var(--ui-success-border);
  background: var(--ui-success-bg);
}

.alm-pill--danger {
  color: var(--ui-danger);
  border-color: var(--ui-danger-border);
  background: var(--ui-danger-bg);
}

.alm-pill--warn {
  color: var(--ui-warning);
  border-color: var(--ui-warning-border);
  background: var(--ui-warning-bg);
}

.alm-pill--info {
  color: var(--ui-info);
  border-color: var(--ui-info-border);
  background: var(--ui-info-bg);
}

.alm-pill--neutral {
  color: var(--ui-text-muted);
  border-color: var(--ui-border);
  background: var(--ui-surface-2);
}

.alm-row--skeleton {
  pointer-events: none;
}

.alm-row--skeleton:hover {
  background: transparent;
}

.sk {
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface-3);
  animation: alm-pulse 1.4s infinite;
}

.sk--line {
  height: var(--ui-space-5);
}

.sk--amount {
  height: var(--ui-space-6);
}

.sk--meta {
  height: var(--ui-space-6);
}

@keyframes alm-pulse {
  0%, 100% {
    opacity: 0.45;
  }
  50% {
    opacity: 0.9;
  }
}
.alm-state {
  min-height: 280px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-10) var(--ui-space-6);
  color: var(--ui-text-muted);
  text-align: center;
  font-size: var(--ui-text-base);
}

.alm-state mat-icon {
  font-size: var(--ui-text-3xl);
  width: var(--ui-text-3xl);
  height: var(--ui-text-3xl);
  color: var(--ui-text-subtle);
}

.alm-sentinel {
  height: 1px;
}

.alm-more {
  display: flex;
  justify-content: center;
  padding: var(--ui-space-4);
}

.alm-end {
  margin: 0;
  padding: var(--ui-space-4) var(--ui-space-6);
  text-align: center;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-subtle);
  border-top: 1px solid var(--ui-border-light);
}

@media (max-width: 640px) {
  .cdk-overlay-pane.advance-activity-log-panel {
    width: 100vw !important;
    max-width: 100vw !important;
  }
  .cdk-overlay-pane.advance-activity-log-panel .mat-mdc-dialog-container,
  .cdk-overlay-pane.advance-activity-log-panel .mdc-dialog__container,
  .cdk-overlay-pane.advance-activity-log-panel .mat-mdc-dialog-surface,
  .cdk-overlay-pane.advance-activity-log-panel .mdc-dialog__surface {
    width: calc(100vw - var(--ui-space-4));
    max-width: calc(100vw - var(--ui-space-4));
  }
  .alm-header {
    padding: var(--ui-space-4);
  }
  .alm-row {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: stretch;
    gap: var(--ui-space-3);
    padding: var(--ui-space-4);
  }
  .alm-row__left,
  .alm-row__meta {
    grid-column: 1;
  }
  .alm-row__amount {
    grid-column: 2;
    grid-row: 1/span 2;
    align-self: center;
    align-items: flex-end;
    text-align: right;
  }
  .alm-row__meta {
    align-items: flex-start;
  }
}
/* ==========================================================================
   UI MODAL VARIANT - PAYMENT OUT
   ==========================================================================
   Payment recording modal styling contract.
   Scope: .payment-out-modal
   ========================================================================== */
/* Compact header */
.payment-out-modal .glass-modal-header {
  padding: var(--ui-space-3) var(--ui-space-5);
}

.payment-out-modal .glass-modal-header .ui-stack--tight {
  gap: 2px;
}

.payment-out-modal .ui-modal__title {
  font-size: var(--ui-text-md);
  line-height: 1.2;
}

.payment-out-modal .ui-modal__subtitle, .payment-out-modal .glass-modal-container .header-subtitle, .glass-modal-container .payment-out-modal .header-subtitle,
.payment-out-modal .glass-modal-container .modal-subtitle,
.glass-modal-container .payment-out-modal .modal-subtitle {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  margin: 0;
}

/* Party strip — locked vendor display */
.payment-out-modal__party {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
  background: linear-gradient(135deg, rgba(255, 130, 90, 0.08), rgba(255, 90, 60, 0.04));
  border: 1px solid rgba(255, 130, 90, 0.15);
  border-radius: var(--ui-radius-md);
}

.payment-out-modal__party-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--ui-brand-gradient);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.payment-out-modal__party-avatar mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: #fff;
}

.payment-out-modal__party-info {
  flex: 1;
  min-width: 0;
}

.payment-out-modal__party-name {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: rgba(255, 255, 255, 0.95);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.payment-out-modal__party-phone {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  margin-top: 2px;
}

.payment-out-modal__party-lock {
  padding: 4px 10px;
  border-radius: var(--ui-radius-full);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid var(--ui-border);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-muted);
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
  flex-shrink: 0;
}

.payment-out-modal__party-lock mat-icon {
  font-size: 13px;
  width: 13px;
  height: 13px;
}

/* Hero amount field — prominent ₹ input */
.payment-out-modal__amount-hero .mat-mdc-text-field-wrapper,
.payment-out-modal__amount-hero .mdc-text-field--filled {
  min-height: 72px !important;
  padding-left: var(--ui-space-4) !important;
}

.payment-out-modal__amount-hero .mat-mdc-form-field-infix {
  min-height: 72px !important;
  padding-top: 24px !important;
  padding-bottom: 12px !important;
}

.payment-out-modal__amount-hero input.mat-mdc-input-element {
  font-size: var(--ui-text-2xl) !important;
  font-weight: var(--ui-font-semibold) !important;
  letter-spacing: -0.02em !important;
}

.payment-out-modal__amount-hero [matPrefix] {
  font-size: var(--ui-text-xl) !important;
  font-weight: var(--ui-font-normal) !important;
  opacity: 0.5;
}

/* Two-column row for compact fields */
.payment-out-modal__field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--ui-space-3);
}

@media (max-width: 500px) {
  .payment-out-modal__field-row {
    grid-template-columns: 1fr;
  }
}
/* Optional section toggle */
.payment-out-modal__optional-toggle {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-3) 0;
  border-top: 1px solid var(--ui-border-light);
  cursor: pointer;
  list-style: none;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  -webkit-user-select: none;
          user-select: none;
  transition: var(--ui-transition-base);
}

.payment-out-modal__optional-toggle:hover {
  color: var(--ui-text-secondary);
}

.payment-out-modal__optional-toggle mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  opacity: 0.5;
  transition: var(--ui-transition-base);
}

details[open] > .payment-out-modal__optional-toggle mat-icon {
  transform: rotate(45deg);
}

.payment-out-modal__optional-body {
  padding-top: var(--ui-space-4);
}

/* Subtle suffix icons inside form fields */
.payment-out-modal .glass-field [matSuffix] {
  opacity: 0.35;
  transition: opacity var(--ui-transition-base);
}

.payment-out-modal .glass-field:hover [matSuffix] {
  opacity: 0.55;
}

/* Datepicker toggle subtle */
.payment-out-modal .mat-datepicker-toggle {
  opacity: 0.35;
  transition: opacity var(--ui-transition-base);
}

.payment-out-modal .glass-field:hover .mat-datepicker-toggle {
  opacity: 0.55;
}

/* ==========================================================================
   RECEIPT UPLOAD ROW (More Options section)
   ========================================================================== */
.payment-v2-receipt-row {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.payment-v2-receipt-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  border-radius: var(--ui-radius-md, 8px);
  border: 1px dashed rgba(255, 255, 255, 0.15);
  background: rgba(255, 255, 255, 0.03);
  color: var(--ui-text-secondary, #94a3b8);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s, color 0.15s;
  font-family: inherit;
}
.payment-v2-receipt-btn mat-icon {
  font-size: 17px;
  width: 17px;
  height: 17px;
}

.payment-v2-receipt-btn:hover:not(:disabled) {
  border-color: var(--ui-accent, #e97748);
  background: rgba(233, 119, 72, 0.07);
  color: var(--ui-accent, #e97748);
}

.payment-v2-receipt-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.payment-v2-receipt-name {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  color: var(--ui-text-muted, #64748b);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: var(--ui-radius-sm, 6px);
  padding: 4px 8px;
  max-width: 220px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.payment-v2-receipt-name mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  color: var(--ui-accent, #e97748);
}

.payment-v2-receipt-clear {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border: none;
  background: transparent;
  color: var(--ui-text-muted, #64748b);
  cursor: pointer;
  border-radius: 50%;
  flex-shrink: 0;
  padding: 0;
  transition: color 0.15s;
}
.payment-v2-receipt-clear mat-icon {
  font-size: 13px;
  width: 13px;
  height: 13px;
}

.payment-v2-receipt-clear:hover {
  color: var(--ui-danger, #ef4444);
}

/* ==========================================================================
   EDIT MODE — Existing Amount Chip + New Amount Label
   ========================================================================== */
.payment-v2-existing-chip {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: var(--ui-radius-md, 8px);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  margin-bottom: 4px;
}

.payment-v2-existing-icon {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
  color: var(--ui-text-muted, #64748b);
  flex-shrink: 0;
}

.payment-v2-existing-label {
  font-size: 12px;
  color: var(--ui-text-muted, #64748b);
  font-weight: 500;
  flex: 1;
}

.payment-v2-existing-amount {
  font-size: 15px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.7);
  letter-spacing: -0.01em;
}

.payment-v2-existing-mode {
  font-size: 12px;
  color: var(--ui-text-muted, #64748b);
}

.payment-v2-new-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ui-accent, #e97748);
  margin-bottom: 4px;
  padding-left: 2px;
}

/* ==========================================================================
   UI MODAL - PRORATION BREAKDOWN (Salary Breakdown Modal)
   ==========================================================================
   Styles for the Salary Breakdown / Proration modal dialog.
   Scope: .proration-modal
   ========================================================================== */
/* ============================================
   Header Layout - Horizontal with All Info
   ============================================ */
.proration-modal .glass-modal-header {
  padding: 22px 28px 18px;
}

.proration-modal .header-content {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 16px;
}

.proration-modal .header-left {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  flex: 1;
}

.proration-modal .header-icon {
  font-size: 22px;
  width: 22px;
  height: 22px;
  color: #ff7a3d;
}

.proration-modal .glass-modal-title {
  font-size: 18px;
  font-weight: 600;
  margin: 0;
  color: #fff;
}

.proration-modal .header-divider {
  width: 1px;
  height: 20px;
  background: rgba(255, 255, 255, 0.15);
  margin: 0 4px;
}

.proration-modal .employee-name {
  font-size: 14px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.75);
}

.proration-modal .employee-code {
  font-size: 12px;
  padding: 3px 10px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 6px;
  color: rgba(255, 255, 255, 0.55);
  font-family: var(--ui-font-mono);
}

.proration-modal .period-badge {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.5);
  margin-left: auto;
}

/* Close Button */
.proration-modal .close-btn {
  width: 36px;
  height: 36px;
  min-width: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
  padding: 0;
}

.proration-modal .close-btn:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.9);
}

.proration-modal .close-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

/* ============================================
   Mid-Month Badge
   ============================================ */
.proration-modal .mid-month-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  background: rgba(255, 165, 0, 0.12);
  border: 1px solid rgba(255, 165, 0, 0.3);
  border-radius: 10px;
  margin-bottom: 20px;
  font-size: 13px;
  color: #ffb347;
}

.proration-modal .mid-month-badge mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

/* ============================================
   Calendar Stats Row
   ============================================ */
.proration-modal .calendar-stats {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 16px 20px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 12px;
  margin-bottom: 24px;
}

.proration-modal .stat-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
  text-align: center;
}

.proration-modal .stat-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.45);
  font-weight: 500;
  cursor: help;
}

.proration-modal .stat-value {
  font-size: 18px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
  font-family: var(--ui-font-mono);
}

.proration-modal .stat-value.sundays {
  color: #60a5fa;
}

.proration-modal .stat-divider {
  width: 1px;
  height: 32px;
  background: rgba(255, 255, 255, 0.1);
}

/* ============================================
   Table Styling
   ============================================ */
.proration-modal .breakdown-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 20px;
}

.proration-modal .breakdown-table th,
.proration-modal .breakdown-table td {
  padding: 14px 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.proration-modal .breakdown-table th {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.45);
  font-weight: 600;
  text-align: left;
}

.proration-modal .breakdown-table td {
  font-size: 14px;
}

.proration-modal .breakdown-table .text-center {
  text-align: center;
}

.proration-modal .breakdown-table .text-right {
  text-align: right;
}

.proration-modal .breakdown-table .period-pill {
  display: inline-block;
  padding: 5px 12px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
}

.proration-modal .breakdown-table .days-cell {
  color: rgba(255, 255, 255, 0.75);
  font-weight: 500;
}

.proration-modal .breakdown-table .monthly-cell,
.proration-modal .breakdown-table .prorated-cell {
  font-family: var(--ui-font-mono);
  color: rgba(255, 255, 255, 0.85);
  font-size: 14px;
  font-weight: 500;
}

.proration-modal .breakdown-table .segment-row {
  transition: background 0.15s ease;
}

.proration-modal .breakdown-table .segment-row:hover {
  background: rgba(255, 255, 255, 0.03);
}

.proration-modal .breakdown-table .total-row td {
  border-top: 2px solid rgba(255, 255, 255, 0.12);
  border-bottom: none;
  font-weight: 600;
  padding-top: 16px;
  color: rgba(255, 255, 255, 0.9);
}

.proration-modal .breakdown-table .total-row .total-amount {
  color: #4ade80;
  font-size: 16px;
  font-family: var(--ui-font-mono);
}

/* ============================================
   Calculation Note
   ============================================ */
.proration-modal .calculation-note {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 18px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 12px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.5);
}

.proration-modal .calculation-note mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 255, 255, 0.35);
}

/* ============================================
   Simple Gross Display (no proration)
   ============================================ */
.proration-modal .simple-gross-display {
  padding: 20px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 12px;
  margin-bottom: 20px;
}

.proration-modal .gross-row,
.proration-modal .payable-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 0;
}

.proration-modal .gross-row {
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.proration-modal .payable-row {
  padding-top: 14px;
}

.proration-modal .gross-label,
.proration-modal .payable-label {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.6);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 500;
}

.proration-modal .gross-value {
  font-size: 22px;
  font-weight: 700;
  color: #4ade80;
  font-family: var(--ui-font-mono);
}

.proration-modal .payable-value {
  font-size: 15px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
  font-family: var(--ui-font-mono);
}

/* ==========================================================================
   MODAL - PAYROLL PAYSLIP PREVIEW
   ==========================================================================
   Glass-shell PDF preview for payroll payslips.
   Keeps the PDF document white while the surrounding modal follows the
   Autroid glass contract.
   ========================================================================== */
body .cdk-overlay-pane.payroll-payslip-preview-panel {
  width: min(1040px, 90vw) !important;
  max-width: min(1040px, 90vw) !important;
  height: 92vh !important;
  max-height: calc(100vh - 24px) !important;
  margin: auto !important;
}

@supports (height: 100dvh) {
  body .cdk-overlay-pane.payroll-payslip-preview-panel {
    height: min(92dvh, 100dvh - 24px) !important;
    max-height: min(92dvh, 100dvh - 24px) !important;
  }
}
body .cdk-overlay-pane.payroll-payslip-preview-panel .mat-mdc-dialog-container,
body .cdk-overlay-pane.payroll-payslip-preview-panel .mdc-dialog__container,
body .cdk-overlay-pane.payroll-payslip-preview-panel .mdc-dialog__surface,
body .cdk-overlay-pane.payroll-payslip-preview-panel .mat-mdc-dialog-surface {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border: none !important;
  padding: 0 !important;
  border-radius: var(--ui-radius-2xl) !important;
  overflow: hidden !important;
  height: 100% !important;
}

body .cdk-overlay-pane.payroll-payslip-preview-panel .mdc-dialog__surface > *,
body .cdk-overlay-pane.payroll-payslip-preview-panel .mat-mdc-dialog-surface > * {
  display: block !important;
  height: 100% !important;
}

body .cdk-overlay-pane.payroll-payslip-preview-panel mat-dialog-content,
body .cdk-overlay-pane.payroll-payslip-preview-panel .mat-mdc-dialog-content,
body .cdk-overlay-pane.payroll-payslip-preview-panel .mdc-dialog__content,
body .cdk-overlay-pane.payroll-payslip-preview-panel .mat-mdc-dialog-component-host {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

.payroll-payslip-preview.glass-modal-container {
  width: 100%;
  max-width: none;
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 0;
  gap: 0;
  overflow: hidden;
}

.payroll-payslip-preview .glass-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-4);
  padding: var(--ui-space-4) var(--ui-space-5);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02)), rgba(18, 14, 12, 0.68);
  flex: 0 0 auto;
}

.payroll-payslip-preview__icon {
  color: #ff9a5f;
}

.payroll-payslip-preview__actions {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
  justify-content: flex-end;
  min-width: 0;
}

.payroll-payslip-preview__actions .ui-btn,
.payroll-payslip-preview__actions .ui-icon-btn {
  flex: 0 0 auto;
}

.payroll-payslip-preview__body {
  flex: 1 1 auto;
  min-height: 0;
  padding: 0;
  background: #ffffff;
  overflow: hidden;
}

.payroll-payslip-preview__state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-3);
  width: 100%;
  height: 100%;
  min-height: 420px;
  border-radius: 22px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(10, 10, 12, 0.28);
  text-align: center;
  padding: var(--ui-space-8);
}

.payroll-payslip-preview__state-title {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.92);
}

.payroll-payslip-preview__state-copy {
  margin: 0;
  max-width: 420px;
  font-size: 14px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.62);
}

.payroll-payslip-preview__state-icon {
  width: 44px;
  height: 44px;
  font-size: 44px;
  color: #ff8c78;
}

.payroll-payslip-preview__viewer {
  display: block;
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  height: 100%;
  background: #ffffff;
  overflow: auto;
}

.payroll-payslip-preview__viewer .ng2-pdf-viewer-container,
.payroll-payslip-preview__viewer #viewerContainer,
.payroll-payslip-preview__viewer .pdfViewer {
  height: 100% !important;
  overflow: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #ffffff !important;
}

.payroll-payslip-preview__viewer .page {
  margin: 0 auto !important;
  box-shadow: none !important;
  border-radius: 0;
  overflow: hidden;
  border: 0 !important;
  background: #ffffff !important;
}

.payroll-payslip-preview__viewer .pdfViewer.removePageBorders .page {
  margin: 0 auto !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
}

.payroll-payslip-preview__viewer .canvasWrapper,
.payroll-payslip-preview__viewer canvas {
  margin: 0 !important;
  background: #ffffff !important;
}

@media (max-width: 900px) {
  .payroll-payslip-preview .glass-modal-header {
    flex-wrap: wrap;
    align-items: flex-start;
  }
  .payroll-payslip-preview__actions {
    width: 100%;
    justify-content: flex-start;
  }
  .payroll-payslip-preview__body {
    padding: 0;
  }
}
/*
 * ============================================================================
 * PDF PREVIEW MODAL STYLES
 * ============================================================================
 * 
 * A glassmorphic modal design for PDF preview dialogs.
 * 
 * USAGE:
 * 1. Import this file in your component: 
 *    styleUrls: ['./your.component.css', 'src/styles/pdf-preview-modal.css']
 * 
 * 2. Use the class structure:
 *    - .pdf-modal-container (the modal wrapper)
 *    - .pdf-modal-header (header with title & action buttons)
 *    - .pdf-modal-body (scrollable content area)
 *    - .pdf-header-content (title section)
 *    - .pdf-header-actions (button container)
 * 
 * 3. Open dialog with:
 *    panelClass: 'glass-dialog-panel'
 *    backdropClass: 'glass-modal-backdrop-v2'
 * 
 * DEPENDENCIES:
 * - pill-controls.css for .pill-trigger button styling
 * - Font Awesome for icons
 * 
 * ============================================================================
 */
/* ==========================================================================
   1. Modal Container - The glass modal box
   ========================================================================== */
.pdf-modal-container {
  width: 100%;
  max-width: 850px;
  max-height: 90vh;
  border-radius: 24px;
  overflow: hidden;
  /* Glass effect */
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.01));
  backdrop-filter: blur(60px) saturate(200%) brightness(1.2);
  -webkit-backdrop-filter: blur(60px) saturate(200%) brightness(1.2);
  /* Border and shadow */
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.38);
  /* Layout */
  display: flex;
  flex-direction: column;
}

/* ==========================================================================
   2. Modal Header - Glass UI (matches payslip-preview-modal)
   ==========================================================================
   STANDARDIZED: All document preview modals use this glass header.
   Replaces the old navy/orange header with the Autroid UI Rulebook pattern.
   ========================================================================== */
.pdf-modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  flex-shrink: 0;
  background: rgba(255, 255, 255, 0.03);
  min-height: 56px;
  gap: 12px;
}

/* Order invoice modal should follow the print contract header (no blue bar). */
.order-invoice-modal .pdf-modal-header {
  background: transparent;
}

.order-invoice-modal .pdf-header-actions {
  position: relative;
}

.order-invoice-modal .pdf-share-menu {
  position: absolute;
  top: calc(100% + var(--ui-space-2));
  right: 0;
  z-index: var(--z-modal-dropdown);
  min-width: 210px;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  padding: var(--ui-space-2);
  border-radius: var(--ui-radius-md);
  background: var(--ui-glass-medium);
  border: 1px solid var(--ui-border);
  box-shadow: var(--ui-shadow-md);
}

.order-invoice-modal .pdf-share-item {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  width: 100%;
  border: 1px solid transparent;
  border-radius: var(--ui-radius-sm);
  background: transparent;
  color: var(--ui-text-secondary);
  cursor: pointer;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  padding: var(--ui-space-2) var(--ui-space-3);
  transition: var(--ui-transition-fast);
}

.order-invoice-modal .pdf-share-item:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
  color: var(--ui-text-primary);
}

.order-invoice-modal .pdf-share-item i {
  font-size: 13px;
}

/* Keep table headers readable in both screen and print output. */
.order-invoice-modal .receipt-table-head-row {
  background: #e5eaf3 !important;
}

.order-invoice-modal .receipt-table-head-row th {
  color: #111827 !important;
}

.pdf-header-content {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.pdf-header-content .header-icon {
  color: rgba(255, 255, 255, 0.5);
  font-size: 20px;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.pdf-header-content h2,
.pdf-header-content .header-title {
  margin: 0;
  font-size: 0.938rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.88);
  letter-spacing: 0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ==========================================================================
   3. Header Actions - Glass pill buttons (matches payslip-preview-modal)
   ========================================================================== */
.pdf-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  position: relative;
  flex-shrink: 0;
}

/* ---- Glass Pill Button Base ---- */
.pdf-header-actions .pill-trigger,
.pdf-header-actions .btn-secondary,
.pdf-header-actions .btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 32px;
  padding: 0 14px;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.02em;
  border-radius: 999px;
  cursor: pointer;
  transition: all 0.18s ease;
  white-space: nowrap;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

/* Secondary: subtle glass */
.pdf-header-actions .btn-secondary {
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.78) !important;
  border-color: rgba(255, 255, 255, 0.1);
}

.pdf-header-actions .btn-secondary:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #fff !important;
  border-color: rgba(255, 255, 255, 0.18);
}

/* Primary: accent tint — subtle, NOT orange/red */
.pdf-header-actions .btn-primary {
  background: rgba(99, 102, 241, 0.25);
  color: rgba(255, 255, 255, 0.92) !important;
  border-color: rgba(99, 102, 241, 0.3);
  box-shadow: none;
}

.pdf-header-actions .btn-primary:hover {
  background: rgba(99, 102, 241, 0.38);
  color: #fff !important;
  border-color: rgba(99, 102, 241, 0.45);
}

.pdf-header-actions .btn-primary i,
.pdf-header-actions .btn-secondary i {
  font-size: 12px;
  color: inherit !important;
}

/* ==========================================================================
   4. Button Hover Effects - Subtle, NOT bouncy
   ========================================================================== */
.pdf-header-actions .pill-trigger {
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.78) !important;
}

.pdf-header-actions .pill-trigger:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #fff !important;
  box-shadow: none;
  transform: none;
}

.pdf-header-actions .pill-trigger:active {
  transform: none;
  background: rgba(255, 255, 255, 0.16);
}

.pdf-header-actions .btn-primary:hover {
  transform: none;
  filter: none;
}

/* Disabled state */
.pdf-header-actions .pill-trigger:disabled,
.pdf-header-actions .btn-primary:disabled,
.pdf-header-actions .btn-secondary:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  pointer-events: none;
}

/* ==========================================================================
   4b. Share Dropdown Menu - Glass pattern (global)
   ========================================================================== */
.pdf-header-actions .pdf-share-menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: 1000;
  min-width: 200px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 6px;
  border-radius: 12px;
  background: rgba(30, 30, 45, 0.95);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
}

.pdf-header-actions .pdf-share-item {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: rgba(255, 255, 255, 0.75);
  cursor: pointer;
  font-size: 13px;
  font-weight: 500;
  padding: 8px 12px;
  transition: all 0.15s ease;
}

.pdf-header-actions .pdf-share-item:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
}

.pdf-header-actions .pdf-share-item mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: inherit !important;
}

.pdf-header-actions .pdf-share-item i {
  font-size: 16px;
  color: inherit !important;
}

/* ==========================================================================
   5. Modal Body - Scrollable content area
   ========================================================================== */
.pdf-modal-body {
  padding: 0;
  margin: 0;
  overflow-y: auto;
  overflow-x: hidden; /* Prevent scrollbar gutter from leaving right-side gap */
  max-height: calc(90vh - 70px);
  flex: 1;
}

/* Scrollbar styling */
.pdf-modal-body::-webkit-scrollbar {
  width: 8px;
}

.pdf-modal-body::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.05);
}

.pdf-modal-body::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.15);
  border-radius: 4px;
}

.pdf-modal-body::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.25);
}

/* ==========================================================================
   6. PDF Content Wrapper
   ========================================================================== */
/* The white PDF area - fills modal edge-to-edge */
.pdf-content-wrapper {
  background: white;
  color: #000000 !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 100%;
  box-sizing: border-box; /* Padding (with-padding) included in width — no overflow */
}

/* CRITICAL: Force ALL text inside PDF content to pure black.
   The global dark-theme sets html { color: var(--ui-text-primary) } = #fefefe (near-white).
   Without this reset, child elements inherit the near-white color, appearing faded
   against the white PDF background. */
.pdf-content-wrapper *,
#print-section *,
.pdf-content-loaded *,
#contentToConvert * {
  color: #000000 !important;
}

/* Standard internal padding for PDF documents */
.pdf-content-wrapper.with-padding {
  padding: 24px;
}

/* Print section container - must fill edge-to-edge */
#print-section,
.pdf-content-loaded {
  margin: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  background: white;
  color: #000000 !important;
}

/* PDF modal body children should fill edge-to-edge (no gap between white area and modal) */
.pdf-modal-body > #print-section,
.pdf-modal-body > .pdf-content-loaded,
.pdf-modal-body > .pdf-content-wrapper,
.pdf-modal-body #print-section,
.pdf-modal-body .pdf-content-loaded,
.pdf-modal-body .pdf-content-wrapper {
  margin: 0 !important;
  border-radius: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}

/* Nested content wrapper inside print-section - preserve internal padding */
#print-section > .pdf-content-wrapper,
.pdf-content-loaded > .pdf-content-wrapper,
#print-section #contentToConvert,
.pdf-content-loaded #contentToConvert {
  margin: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  color: #000000 !important;
  /* DO NOT override padding - let with-padding class handle internal spacing */
}

/* ==========================================================================
   7. Global Dialog Panel Class (for MatDialog panelClass)
   ========================================================================== */
/* Glass dialog panel overrides — now handled by ui-modal--print contract.
   Kept only for non-print modals that still use glass-dialog-panel alone. */
::ng-deep .glass-dialog-panel {
  border-radius: 24px !important;
  overflow: hidden !important;
}

::ng-deep .glass-dialog-panel .mat-mdc-dialog-container {
  background: transparent !important;
  padding: 0 !important;
  border-radius: 24px !important;
  overflow: hidden !important;
}

/* ==========================================================================
   8. Backdrop Class (for MatDialog backdropClass)
   ========================================================================== */
::ng-deep .glass-modal-backdrop-v2 {
  background: rgba(0, 0, 0, 0.25) !important;
  backdrop-filter: blur(20px) saturate(120%) !important;
  -webkit-backdrop-filter: blur(20px) saturate(120%) !important;
}

/* ==========================================================================
   9. Responsive
   ========================================================================== */
@media (max-width: 768px) {
  .pdf-modal-container {
    max-width: 100vw;
    max-height: 100vh;
    border-radius: 0;
  }
  .pdf-modal-header {
    padding: 12px 16px;
  }
  .pdf-header-content h2,
  .pdf-header-content .header-title {
    font-size: 1rem;
  }
  .pdf-header-actions {
    gap: 6px;
  }
  .pdf-header-actions .btn-primary,
  .pdf-header-actions .btn-secondary {
    height: 28px;
    padding: 0 10px;
    font-size: 12px;
  }
}
/* ==========================================================================
   10. Skeleton Loader - Premium PDF document skeleton
   ========================================================================== */
/* Fade in animation for content */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.pdf-content-loaded {
  animation: fadeIn 0.3s ease-out;
}

/* Main loader container - looks like a PDF document */
.pdf-document-loader {
  display: flex;
  flex-direction: column;
  background: white;
  min-height: 500px;
  padding: 32px 40px;
}

/* Shimmer animation */
@keyframes shimmer {
  0% {
    background-position: -1000px 0;
  }
  100% {
    background-position: 1000px 0;
  }
}
/* Skeleton base */
.skeleton {
  background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 37%, #f0f0f0 63%);
  background-size: 1000px 100%;
  animation: shimmer 1.8s infinite linear;
  border-radius: 4px;
}

/* Document header skeleton */
.skeleton-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding-bottom: 24px;
  margin-bottom: 24px;
  border-bottom: 2px solid #f0f0f0;
}

.skeleton-logo-block {
  display: flex;
  align-items: center;
  gap: 16px;
}

.skeleton-logo {
  width: 100px;
  height: 100px;
  border-radius: 12px;
}

.skeleton-brand {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.skeleton-brand-name {
  width: 140px;
  height: 20px;
}

.skeleton-brand-sub {
  width: 100px;
  height: 14px;
}

.skeleton-title-block {
  text-align: right;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}

.skeleton-doc-title {
  width: 180px;
  height: 28px;
}

.skeleton-doc-number {
  width: 120px;
  height: 16px;
}

/* Info cards skeleton */
.skeleton-info-row {
  display: flex;
  gap: 24px;
  margin-bottom: 32px;
}

.skeleton-info-card {
  flex: 1;
  background: #fafafa;
  border-radius: 8px;
  padding: 20px;
  border-left: 3px solid #e0e0e0;
}

.skeleton-info-label {
  width: 80px;
  height: 12px;
  margin-bottom: 12px;
}

.skeleton-info-value {
  width: 100%;
  height: 16px;
  margin-bottom: 8px;
}

.skeleton-info-value.short {
  width: 60%;
}

/* Table skeleton */
.skeleton-table {
  margin-top: 16px;
}

.skeleton-table-header {
  display: flex;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 2px solid #e0e0e0;
  margin-bottom: 8px;
}

.skeleton-th {
  height: 16px;
}

.skeleton-th:first-child {
  flex: 3;
}

.skeleton-th:nth-child(2) {
  flex: 1;
}

.skeleton-th:last-child {
  flex: 1;
}

.skeleton-table-row {
  display: flex;
  gap: 16px;
  padding: 14px 0;
  border-bottom: 1px solid #f5f5f5;
}

.skeleton-td {
  height: 14px;
}

.skeleton-td:first-child {
  flex: 3;
}

.skeleton-td:nth-child(2) {
  flex: 1;
}

.skeleton-td:last-child {
  flex: 1;
}

/* Footer skeleton */
.skeleton-footer {
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid #f0f0f0;
  display: flex;
  justify-content: space-between;
}

.skeleton-total-block {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}

.skeleton-total-row {
  display: flex;
  gap: 24px;
}

.skeleton-total-label {
  width: 80px;
  height: 14px;
}

.skeleton-total-value {
  width: 100px;
  height: 16px;
}

.skeleton-total-grand {
  width: 120px;
  height: 24px;
  margin-top: 8px;
}

/* Subtle pulse effect for premium feel */
@keyframes pulseGlow {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.02);
  }
  50% {
    box-shadow: 0 0 12px 2px rgba(255, 255, 255, 0.04);
  }
}
.pdf-document-loader {
  animation: pulseGlow 2s ease-in-out infinite;
}

/* ==========================================================================
   11. PAYSLIP PDF VIEWER STYLES
   Architecture: The backend generates a single PDF for preview, print, and
   download. The Angular modal is a thin viewer wrapper — no document layout
   CSS is needed here. The iframe displays the backend PDF directly.
   ========================================================================== */
/* Modal body for the PDF.js viewer */
.pdf-viewer-body {
  overflow-y: auto !important;
  overflow-x: hidden !important;
  display: flex;
  flex-direction: column;
  height: calc(90vh - 65px);
  padding: 0 !important;
  margin: 0 !important;
  background: white;
}

/* pdf-viewer element — override PDF.js CSS custom properties at the source.
   The library reads --page-margin, --pdfViewer-padding-bottom, --page-border
   via :host ::ng-deep. We override these variables so the library's own rules
   consume our zero values instead of its defaults. */
pdf-viewer,
pdf-viewer.pdf-viewer-iframe {
  --page-margin: 0 auto !important;
  --page-border: none !important;
  --page-border-image: none !important;
  --pdfViewer-padding-bottom: 0 !important;
  width: 100%;
  flex: 1;
  display: block;
  min-height: 0;
  padding: 0 !important;
  margin: 0 !important;
}

/* PDF.js internal containers — zero everything */
pdf-viewer .ng2-pdf-viewer-container {
  padding: 0 !important;
  margin: 0 !important;
  overflow: visible !important;
}

pdf-viewer .pdfViewer {
  padding: 0 !important;
  padding-bottom: 0 !important;
  margin: 0 !important;
}

/* Individual PDF page — flush, no border, no shadow */
pdf-viewer .pdfViewer .page {
  margin: 0 auto !important;
  padding: 0 !important;
  border: none !important;
  border-image: none !important;
  box-shadow: none !important;
}

/* Canvas fills container width */
pdf-viewer .pdfViewer .page canvas,
pdf-viewer .pdfViewer .canvasWrapper canvas {
  display: block;
}

/* Centered state container — used for loading skeleton and error state */
.pdf-viewer-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  height: 100%;
  overflow-y: auto;
  background: white;
  padding: 0;
}

/* Error state */
.pdf-viewer-error {
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 40px 24px;
  text-align: center;
  background: white;
}

.pdf-viewer-error .error-icon {
  font-size: 48px;
  width: 48px;
  height: 48px;
  color: #ef4444;
  opacity: 0.7;
}

.pdf-viewer-error .error-title {
  font-size: 16px;
  font-weight: 600;
  color: #1a1a2e;
  margin: 0;
}

.pdf-viewer-error .error-detail {
  font-size: 13px;
  color: #6b7280;
  max-width: 360px;
  line-height: 1.5;
  margin: 0;
}

/* Skeleton loader fills the viewer area */
.pdf-document-loader {
  width: 100%;
  min-height: 500px;
  padding: 32px 40px;
  background: white;
}

/* ==========================================================================
   12. PAYSLIP PRINT STYLES
   ========================================================================== */
@media print {
  .pdf-modal-header {
    display: none !important;
  }
  .pdf-modal-container {
    border: none !important;
    box-shadow: none !important;
    background: white !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border-radius: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    max-width: 100% !important;
    width: 100% !important;
  }
  .pdf-modal-body {
    max-height: none !important;
    overflow: visible !important;
  }
  .pdf-content-wrapper {
    padding: 16px !important;
    margin: 0 !important;
  }
  .company-logo,
  .company-logo-placeholder {
    display: block !important;
    visibility: visible !important;
    print-color-adjust: exact !important;
    overflow: visible !important;
  }
  .payslip-header {
    overflow: visible !important;
  }
  /* print-color-adjust → src/ui/print/print.scss */
  .net-pay-section {
    /* Colors handled by global print contract */
  }
  .provisional-watermark {
    /* Colors handled by global print contract */
  }
  .provisional-watermark span {
    color: rgba(220, 38, 38, 0.12);
  }
  /* Ensure all PDF text is pure black for estimates and proforma invoices */
  #print-section *,
  #contentToConvert *,
  .pdf-content-wrapper *,
  .pdf-content-loaded * {
    color: #000000 !important;
  }
  /* More specific targeting for all possible text containers */
  #print-section,
  #contentToConvert,
  .pdf-content-wrapper,
  .pdf-content-loaded {
    color: #000000 !important;
    /* All text elements with higher specificity */
    /* All heading levels */
    /* Bootstrap font weight classes */
    /* Table-specific elements */
    /* Common text utility classes */
  }
  #print-section p, #print-section span, #print-section div, #print-section td, #print-section th, #print-section li, #print-section a, #print-section label, #print-section strong, #print-section b, #print-section i, #print-section em, #print-section small,
  #contentToConvert p,
  #contentToConvert span,
  #contentToConvert div,
  #contentToConvert td,
  #contentToConvert th,
  #contentToConvert li,
  #contentToConvert a,
  #contentToConvert label,
  #contentToConvert strong,
  #contentToConvert b,
  #contentToConvert i,
  #contentToConvert em,
  #contentToConvert small,
  .pdf-content-wrapper p,
  .pdf-content-wrapper span,
  .pdf-content-wrapper div,
  .pdf-content-wrapper td,
  .pdf-content-wrapper th,
  .pdf-content-wrapper li,
  .pdf-content-wrapper a,
  .pdf-content-wrapper label,
  .pdf-content-wrapper strong,
  .pdf-content-wrapper b,
  .pdf-content-wrapper i,
  .pdf-content-wrapper em,
  .pdf-content-wrapper small,
  .pdf-content-loaded p,
  .pdf-content-loaded span,
  .pdf-content-loaded div,
  .pdf-content-loaded td,
  .pdf-content-loaded th,
  .pdf-content-loaded li,
  .pdf-content-loaded a,
  .pdf-content-loaded label,
  .pdf-content-loaded strong,
  .pdf-content-loaded b,
  .pdf-content-loaded i,
  .pdf-content-loaded em,
  .pdf-content-loaded small {
    color: #000000 !important;
  }
  #print-section h1, #print-section h2, #print-section h3, #print-section h4, #print-section h5, #print-section h6,
  #contentToConvert h1,
  #contentToConvert h2,
  #contentToConvert h3,
  #contentToConvert h4,
  #contentToConvert h5,
  #contentToConvert h6,
  .pdf-content-wrapper h1,
  .pdf-content-wrapper h2,
  .pdf-content-wrapper h3,
  .pdf-content-wrapper h4,
  .pdf-content-wrapper h5,
  .pdf-content-wrapper h6,
  .pdf-content-loaded h1,
  .pdf-content-loaded h2,
  .pdf-content-loaded h3,
  .pdf-content-loaded h4,
  .pdf-content-loaded h5,
  .pdf-content-loaded h6 {
    color: #000000 !important;
  }
  #print-section .font-weight-normal,
  #print-section .font-weight-bold,
  #print-section .font-weight-semibold,
  #print-section .fw-600,
  #print-section .fw-700,
  #contentToConvert .font-weight-normal,
  #contentToConvert .font-weight-bold,
  #contentToConvert .font-weight-semibold,
  #contentToConvert .fw-600,
  #contentToConvert .fw-700,
  .pdf-content-wrapper .font-weight-normal,
  .pdf-content-wrapper .font-weight-bold,
  .pdf-content-wrapper .font-weight-semibold,
  .pdf-content-wrapper .fw-600,
  .pdf-content-wrapper .fw-700,
  .pdf-content-loaded .font-weight-normal,
  .pdf-content-loaded .font-weight-bold,
  .pdf-content-loaded .font-weight-semibold,
  .pdf-content-loaded .fw-600,
  .pdf-content-loaded .fw-700 {
    color: #000000 !important;
  }
  #print-section table,
  #contentToConvert table,
  .pdf-content-wrapper table,
  .pdf-content-loaded table {
    color: #000000 !important;
    /* Specific table classes */
  }
  #print-section table thead, #print-section table tbody, #print-section table tfoot, #print-section table tr, #print-section table th, #print-section table td,
  #contentToConvert table thead,
  #contentToConvert table tbody,
  #contentToConvert table tfoot,
  #contentToConvert table tr,
  #contentToConvert table th,
  #contentToConvert table td,
  .pdf-content-wrapper table thead,
  .pdf-content-wrapper table tbody,
  .pdf-content-wrapper table tfoot,
  .pdf-content-wrapper table tr,
  .pdf-content-wrapper table th,
  .pdf-content-wrapper table td,
  .pdf-content-loaded table thead,
  .pdf-content-loaded table tbody,
  .pdf-content-loaded table tfoot,
  .pdf-content-loaded table tr,
  .pdf-content-loaded table th,
  .pdf-content-loaded table td {
    color: #000000 !important;
  }
  #print-section table.table-invoice,
  #contentToConvert table.table-invoice,
  .pdf-content-wrapper table.table-invoice,
  .pdf-content-loaded table.table-invoice {
    color: #000000 !important;
  }
  #print-section table.table-invoice thead, #print-section table.table-invoice tbody, #print-section table.table-invoice tfoot,
  #contentToConvert table.table-invoice thead,
  #contentToConvert table.table-invoice tbody,
  #contentToConvert table.table-invoice tfoot,
  .pdf-content-wrapper table.table-invoice thead,
  .pdf-content-wrapper table.table-invoice tbody,
  .pdf-content-wrapper table.table-invoice tfoot,
  .pdf-content-loaded table.table-invoice thead,
  .pdf-content-loaded table.table-invoice tbody,
  .pdf-content-loaded table.table-invoice tfoot {
    color: #000000 !important;
  }
  #print-section table.table-invoice thead tr, #print-section table.table-invoice thead th, #print-section table.table-invoice thead td, #print-section table.table-invoice tbody tr, #print-section table.table-invoice tbody th, #print-section table.table-invoice tbody td, #print-section table.table-invoice tfoot tr, #print-section table.table-invoice tfoot th, #print-section table.table-invoice tfoot td,
  #contentToConvert table.table-invoice thead tr,
  #contentToConvert table.table-invoice thead th,
  #contentToConvert table.table-invoice thead td,
  #contentToConvert table.table-invoice tbody tr,
  #contentToConvert table.table-invoice tbody th,
  #contentToConvert table.table-invoice tbody td,
  #contentToConvert table.table-invoice tfoot tr,
  #contentToConvert table.table-invoice tfoot th,
  #contentToConvert table.table-invoice tfoot td,
  .pdf-content-wrapper table.table-invoice thead tr,
  .pdf-content-wrapper table.table-invoice thead th,
  .pdf-content-wrapper table.table-invoice thead td,
  .pdf-content-wrapper table.table-invoice tbody tr,
  .pdf-content-wrapper table.table-invoice tbody th,
  .pdf-content-wrapper table.table-invoice tbody td,
  .pdf-content-wrapper table.table-invoice tfoot tr,
  .pdf-content-wrapper table.table-invoice tfoot th,
  .pdf-content-wrapper table.table-invoice tfoot td,
  .pdf-content-loaded table.table-invoice thead tr,
  .pdf-content-loaded table.table-invoice thead th,
  .pdf-content-loaded table.table-invoice thead td,
  .pdf-content-loaded table.table-invoice tbody tr,
  .pdf-content-loaded table.table-invoice tbody th,
  .pdf-content-loaded table.table-invoice tbody td,
  .pdf-content-loaded table.table-invoice tfoot tr,
  .pdf-content-loaded table.table-invoice tfoot th,
  .pdf-content-loaded table.table-invoice tfoot td {
    color: #000000 !important;
  }
  #print-section .text-left,
  #print-section .text-right,
  #print-section .text-center,
  #print-section .text-big,
  #print-section .text-dark,
  #print-section .mb-0, #print-section .mb-1, #print-section .mb-2, #print-section .mb-3,
  #print-section .mt-0, #print-section .mt-1, #print-section .mt-2, #print-section .mt-3, #print-section .mt-4, #print-section .mt-5,
  #contentToConvert .text-left,
  #contentToConvert .text-right,
  #contentToConvert .text-center,
  #contentToConvert .text-big,
  #contentToConvert .text-dark,
  #contentToConvert .mb-0,
  #contentToConvert .mb-1,
  #contentToConvert .mb-2,
  #contentToConvert .mb-3,
  #contentToConvert .mt-0,
  #contentToConvert .mt-1,
  #contentToConvert .mt-2,
  #contentToConvert .mt-3,
  #contentToConvert .mt-4,
  #contentToConvert .mt-5,
  .pdf-content-wrapper .text-left,
  .pdf-content-wrapper .text-right,
  .pdf-content-wrapper .text-center,
  .pdf-content-wrapper .text-big,
  .pdf-content-wrapper .text-dark,
  .pdf-content-wrapper .mb-0,
  .pdf-content-wrapper .mb-1,
  .pdf-content-wrapper .mb-2,
  .pdf-content-wrapper .mb-3,
  .pdf-content-wrapper .mt-0,
  .pdf-content-wrapper .mt-1,
  .pdf-content-wrapper .mt-2,
  .pdf-content-wrapper .mt-3,
  .pdf-content-wrapper .mt-4,
  .pdf-content-wrapper .mt-5,
  .pdf-content-loaded .text-left,
  .pdf-content-loaded .text-right,
  .pdf-content-loaded .text-center,
  .pdf-content-loaded .text-big,
  .pdf-content-loaded .text-dark,
  .pdf-content-loaded .mb-0,
  .pdf-content-loaded .mb-1,
  .pdf-content-loaded .mb-2,
  .pdf-content-loaded .mb-3,
  .pdf-content-loaded .mt-0,
  .pdf-content-loaded .mt-1,
  .pdf-content-loaded .mt-2,
  .pdf-content-loaded .mt-3,
  .pdf-content-loaded .mt-4,
  .pdf-content-loaded .mt-5 {
    color: #000000 !important;
  }
}
/* ==========================================================================
   12. INVOICE V2 — Enterprise Financial Workspace
   ==========================================================================
   Usage: .inv-v2 in order-invoice.component.html
   Flat surfaces, no glass, Autroid UI Rulebook compliant.
   ========================================================================== */
.inv-v2 {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-height: 90vh;
  border-radius: var(--ui-radius-lg);
  overflow: hidden;
  background: var(--ui-surface);
  border: 1px solid var(--ui-border);
}

/* ── ZONE 1: Control Strip ── */
.inv-v2-header {
  display: flex;
  align-items: center;
  gap: var(--ui-space-4);
  padding: var(--ui-space-3) var(--ui-space-5);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.02);
  flex-shrink: 0;
}

.inv-v2-header__left {
  flex-shrink: 0;
  min-width: 0;
}

.inv-v2-header__identity {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.inv-v2-header__invoice-no {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  white-space: nowrap;
}

.inv-v2-header__customer {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 200px;
}

/* ── Financial Snapshot (Center) ── */
.inv-v2-header__center {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  margin: 0 auto;
  flex-shrink: 0;
}

.inv-v2-header__metric {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
}

.inv-v2-header__metric-label {
  font-size: 10px;
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.inv-v2-header__metric-value {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  font-family: var(--ui-font-mono);
}

.inv-v2-header__metric-value.is-success {
  color: var(--ui-success);
}

.inv-v2-header__metric-value.is-danger {
  color: var(--ui-danger);
}

.inv-v2-header__metric-divider {
  width: 1px;
  height: 24px;
  background: rgba(255, 255, 255, 0.08);
}

/* ── Right: Status + Actions ── */
.inv-v2-header__right {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-shrink: 0;
  margin-left: auto;
  position: relative;
}

.inv-v2-header__actions {
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
}

/* ── Status Badges ── */
.inv-v2-status {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: var(--ui-radius-full);
  font-size: 10px;
  font-weight: var(--ui-font-bold);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
}

.inv-v2-status--paid {
  background: rgba(16, 185, 129, 0.12);
  color: #10b981;
  border: 1px solid rgba(16, 185, 129, 0.25);
}

.inv-v2-status--partial {
  background: rgba(245, 158, 11, 0.12);
  color: #f59e0b;
  border: 1px solid rgba(245, 158, 11, 0.25);
}

.inv-v2-status--overdue {
  background: rgba(239, 68, 68, 0.12);
  color: #ef4444;
  border: 1px solid rgba(239, 68, 68, 0.25);
}

.inv-v2-status--cancelled {
  background: rgba(148, 163, 184, 0.12);
  color: #94a3b8;
  border: 1px solid rgba(148, 163, 184, 0.25);
}

.inv-v2-status--unpaid {
  background: rgba(148, 163, 184, 0.08);
  color: #94a3b8;
  border: 1px solid rgba(148, 163, 184, 0.15);
}

/* ── Action Buttons ── */
.inv-v2-action {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 12px;
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: var(--ui-transition-fast);
  white-space: nowrap;
  border: 1px solid;
  outline: none;
  overflow: hidden;
}

.inv-v2-action mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.inv-v2-action--primary {
  background: linear-gradient(135deg, var(--ui-accent) 0%, hsl(20, 100%, 55%) 100%);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 2px 6px rgba(255, 120, 79, 0.25);
}

.inv-v2-action--primary:hover {
  box-shadow: 0 4px 12px rgba(255, 120, 79, 0.35);
  transform: translateY(-1px);
}

.inv-v2-action--secondary {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.1);
  color: var(--ui-text-secondary);
}

.inv-v2-action--secondary:hover {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.15);
  color: var(--ui-text-primary);
}

.inv-v2-action--ghost {
  background: transparent;
  border-color: transparent;
  color: var(--ui-text-muted);
  padding: 5px 8px;
}

.inv-v2-action--ghost:hover {
  background: rgba(255, 255, 255, 0.04);
  color: var(--ui-text-primary);
}

/* Invoice Lifecycle: Finalize button */
.inv-v2-action--finalize {
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 2px 6px rgba(245, 158, 11, 0.25);
  font-weight: 600;
}

.inv-v2-action--finalize:hover {
  box-shadow: 0 4px 14px rgba(245, 158, 11, 0.4);
  transform: translateY(-1px);
}

.inv-v2-action--finalize:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}

/* Send Payment Link — prominent CTA for collections */
.inv-v2-action--send-link {
  background: linear-gradient(135deg, #10b981 0%, #0ea5e9 100%);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 2px 6px rgba(16, 185, 129, 0.25);
}

.inv-v2-action--send-link:hover {
  box-shadow: 0 4px 14px rgba(16, 185, 129, 0.4);
  transform: translateY(-1px);
}

.inv-v2-action--send-link:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

/* Retry button — warning/error variant */
.inv-v2-action--retry {
  background: linear-gradient(135deg, #ef4444 0%, #f97316 100%);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 2px 6px rgba(239, 68, 68, 0.25);
  animation: inv-v2-shake 0.4s ease;
}

.inv-v2-action--retry:hover {
  box-shadow: 0 4px 14px rgba(239, 68, 68, 0.4);
  transform: translateY(-1px);
}

@keyframes inv-v2-shake {
  0%, 100% {
    transform: translateX(0);
  }
  25% {
    transform: translateX(-3px);
  }
  75% {
    transform: translateX(3px);
  }
}
/* Invoice Lifecycle Badge */
.inv-v2-lifecycle-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  border-radius: 12px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  margin-left: 10px;
  vertical-align: middle;
}

.inv-v2-lifecycle-badge--draft {
  background: rgba(245, 158, 11, 0.15);
  color: #f59e0b;
  border: 1px solid rgba(245, 158, 11, 0.3);
}

.inv-v2-lifecycle-badge--final {
  background: rgba(34, 197, 94, 0.15);
  color: #22c55e;
  border: 1px solid rgba(34, 197, 94, 0.3);
}

.inv-v2-lifecycle-badge--legacy {
  background: rgba(239, 68, 68, 0.15);
  color: #ef4444;
  border: 1px solid rgba(239, 68, 68, 0.3);
}

/* Persistent Legacy Invoice Warning Banner */
.inv-v2-legacy-warning {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 24px;
  background: rgba(245, 158, 11, 0.12);
  border-bottom: 1px solid rgba(245, 158, 11, 0.3);
  color: #f59e0b;
  font-size: 12px;
  font-weight: 500;
  flex-shrink: 0;
}

.inv-v2-legacy-warning mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: #f59e0b;
}

/* Out-of-sync Warning — red variant of legacy banner */
.inv-v2-sync-warning {
  background: rgba(239, 68, 68, 0.12);
  border-bottom-color: rgba(239, 68, 68, 0.3);
  color: hsl(0, 72%, 65%);
}

.inv-v2-sync-warning mat-icon {
  color: hsl(0, 72%, 65%);
}

.inv-v2-kbd {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 16px;
  padding: 0 4px;
  border-radius: 3px;
  font-size: 9px;
  font-weight: var(--ui-font-bold);
  font-family: var(--ui-font-mono);
  background: rgba(0, 0, 0, 0.2);
  color: inherit;
  opacity: 0.7;
}

/* ── Share Dropdown ── */
.inv-v2-dropdown {
  position: absolute;
  top: calc(100% + var(--ui-space-2));
  right: 0;
  z-index: var(--z-modal-dropdown, 100);
  min-width: 200px;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  padding: var(--ui-space-2);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface);
  border: 1px solid var(--ui-border);
  box-shadow: var(--ui-shadow-md);
}

.inv-v2-dropdown__item {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  width: 100%;
  border: none;
  border-radius: var(--ui-radius-sm);
  background: transparent;
  color: var(--ui-text-secondary);
  cursor: pointer;
  font-size: var(--ui-text-sm);
  padding: var(--ui-space-2) var(--ui-space-3);
  transition: var(--ui-transition-fast);
}

.inv-v2-dropdown__item:hover {
  background: var(--ui-surface-hover);
  color: var(--ui-text-primary);
}

.inv-v2-dropdown__item mat-icon,
.inv-v2-dropdown__item i {
  font-size: 16px;
  width: 16px;
}

/* ═══════════════════════════════════════════════════════════════════
   ZONE 2+3: Split Body
   ═══════════════════════════════════════════════════════════════════ */
.inv-v2-body {
  display: flex;
  flex: 1;
  overflow: hidden;
  max-height: calc(90vh - 60px);
}

/* Full-width mode (no sidebar) — document centered */
.inv-v2-body--full {
  justify-content: center;
}

.inv-v2-body--full .inv-v2-document {
  flex: 0 1 auto;
  max-width: 850px;
  width: 100%;
}

/* ── Document View (Left) ── */
.inv-v2-document {
  flex: 1 1 68%;
  overflow-y: auto;
  min-width: 0;
}

.inv-v2-document::-webkit-scrollbar {
  width: 6px;
}

.inv-v2-document::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.02);
}

.inv-v2-document::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.1);
  border-radius: 3px;
}

/* ── Finance Panel (Right) ── */
.inv-v2-finance {
  flex: 0 0 32%;
  max-width: 320px;
  min-width: 260px;
  border-left: 1px solid rgba(255, 255, 255, 0.06);
  padding: var(--ui-space-3);
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  overflow-y: auto;
  background: rgba(255, 255, 255, 0.015);
}

/* Compact card override for sidebar */
.inv-v2-finance__card.ui-card, .glass-modal-container .inv-v2-finance__card.glass-card,
.glass-modal-container .inv-v2-finance__card.glass-panel,
.glass-modal-container .inv-v2-finance__card.fd-glass,
.glass-modal-container .inv-v2-finance__card.section-card,
.glass-modal-container .inv-v2-finance__card.content-section,
.glass-modal-container .inv-v2-finance__card.timeline-card,
.glass-modal-container .inv-v2-finance__card.entry-section,
.glass-modal-container .inv-v2-finance__card.attachments,
.glass-modal-container .inv-v2-finance__card.summary-card,
.glass-modal-container .inv-v2-finance__card.metric-card,
.glass-modal-container .inv-v2-finance__card.review-card,
.glass-modal-container .inv-v2-finance__card.config-section,
.glass-modal-container .inv-v2-finance__card.panel-card {
  padding: var(--ui-space-3);
  gap: var(--ui-space-2);
  border-radius: var(--ui-radius-md);
}

.inv-v2-finance::-webkit-scrollbar {
  width: 4px;
}

.inv-v2-finance::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.08);
  border-radius: 2px;
}

.inv-v2-finance__divider {
  height: 1px;
  background: rgba(255, 255, 255, 0.06);
}

/* ── Status Banner ── */
.inv-v2-finance__status-banner {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
}

.inv-v2-finance__status-banner mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
}

.inv-v2-finance__status-banner--paid {
  background: rgba(16, 185, 129, 0.08);
  color: #10b981;
  border: 1px solid rgba(16, 185, 129, 0.15);
}

.inv-v2-finance__status-banner--partial {
  background: rgba(245, 158, 11, 0.08);
  color: #f59e0b;
  border: 1px solid rgba(245, 158, 11, 0.15);
}

.inv-v2-finance__status-banner--overdue {
  background: rgba(239, 68, 68, 0.08);
  color: #ef4444;
  border: 1px solid rgba(239, 68, 68, 0.15);
}

.inv-v2-finance__status-banner--cancelled {
  background: rgba(148, 163, 184, 0.06);
  color: #94a3b8;
  border: 1px solid rgba(148, 163, 184, 0.12);
}

.inv-v2-finance__status-banner--unpaid {
  background: rgba(148, 163, 184, 0.06);
  color: #94a3b8;
  border: 1px solid rgba(148, 163, 184, 0.12);
}

.inv-v2-finance__status-banner--clickable {
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
}

.inv-v2-finance__status-banner--clickable:hover {
  background: rgba(255, 140, 90, 0.1);
  border-color: rgba(255, 140, 90, 0.25);
  color: #ffb083;
  transform: translateY(-1px);
}

/* ── Payment Progress Bar ── */
.inv-v2-finance__progress {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
}

.inv-v2-finance__progress-bar {
  height: 6px;
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.06);
  overflow: hidden;
}

.inv-v2-finance__progress-fill {
  display: block;
  height: 100%;
  border-radius: 3px;
  background: linear-gradient(90deg, var(--ui-brand, #ff784f), var(--ui-brand-light, #ff9966));
  box-shadow: 0 0 10px rgba(255, 120, 79, 0.22);
  transition: width 0.4s ease;
}

.inv-v2-finance__progress-fill.is-full {
  background: #10b981;
}

.inv-v2-finance__progress-fill.is-danger {
  background: #ef4444;
}

.inv-v2-finance__progress-label {
  font-size: 11px;
  color: var(--ui-text-muted);
  text-align: right;
}

/* ── Financial Summary ── */
.inv-v2-finance__summary {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
}

.inv-v2-finance__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  padding: 3px 0;
}

.inv-v2-finance__row span:last-child {
  font-family: var(--ui-font-mono);
  font-weight: var(--ui-font-semibold);
}

.inv-v2-finance__row--total {
  padding: var(--ui-space-2) 0;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  margin: var(--ui-space-1) 0;
}

.inv-v2-finance__row--total span:first-child {
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  text-transform: uppercase;
  font-size: var(--ui-text-xs);
  letter-spacing: 0.05em;
}

.inv-v2-finance__row--total span:last-child {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
}

.inv-v2-finance__row .is-success {
  color: var(--ui-success);
}

.inv-v2-finance__row .is-danger {
  color: var(--ui-danger);
}

/* ── Quick Actions ── */
.inv-v2-finance__actions {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.inv-v2-finance__action {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-2);
  width: 100%;
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: var(--ui-transition-fast);
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: transparent;
  color: var(--ui-text-secondary);
}

.inv-v2-finance__action:hover {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.12);
  color: var(--ui-text-primary);
}

.inv-v2-finance__action mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.inv-v2-finance__action--primary {
  background: linear-gradient(135deg, var(--ui-accent) 0%, hsl(20, 100%, 55%) 100%);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 2px 6px rgba(255, 120, 79, 0.2);
}

.inv-v2-finance__action--primary:hover {
  box-shadow: 0 4px 12px rgba(255, 120, 79, 0.35);
  transform: translateY(-1px);
}

/* ── Last Payment ── */
.inv-v2-finance__last-payment {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
}

.inv-v2-finance__last-payment-label {
  font-size: 10px;
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-top: var(--ui-space-2);
}

.inv-v2-finance__last-payment-value {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

/* ── Payment History ── */
.inv-v2-finance__history {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
}

.inv-v2-finance__history-label {
  font-size: 10px;
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-top: var(--ui-space-2);
}

.inv-v2-finance__history-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
  max-height: 150px;
  overflow-y: auto;
}

.inv-v2-finance__history-item {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: 4px 0;
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.inv-v2-finance__history-no {
  width: 16px;
  flex-shrink: 0;
  opacity: 0.5;
}

.inv-v2-finance__history-amount {
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
  font-family: var(--ui-font-mono);
}

.inv-v2-finance__history-date {
  flex: 1;
}

.inv-v2-finance__history-mode {
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-secondary);
}

/* ==========================================================================
   12b. INVOICE V2.1 — Intelligence Enhancements
   ========================================================================== */
/* ── CTA Strip (Contextual Action Bar) ── */
.inv-v2-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--ui-space-2) var(--ui-space-5);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.015);
  flex-shrink: 0;
}

.inv-v2-cta__content {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

.inv-v2-cta__content mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: var(--ui-accent);
}

.inv-v2-cta__content strong {
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
}

.inv-v2-cta__content--danger {
  color: var(--ui-danger);
}

.inv-v2-cta__content--danger mat-icon {
  color: var(--ui-danger);
}

.inv-v2-cta__content--success {
  color: var(--ui-success);
}

.inv-v2-cta__content--success mat-icon {
  color: var(--ui-success);
}

.inv-v2-cta__action {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 12px;
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: var(--ui-transition-fast);
  border: 1px solid;
  background: linear-gradient(135deg, var(--ui-accent) 0%, hsl(20, 100%, 55%) 100%);
  border-color: transparent;
  color: #fff;
  outline: none;
}

.inv-v2-cta__action:hover {
  box-shadow: 0 4px 12px rgba(255, 120, 79, 0.35);
  transform: translateY(-1px);
}

.inv-v2-cta__action--danger {
  background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
}

.inv-v2-cta__action--danger:hover {
  box-shadow: 0 4px 12px rgba(239, 68, 68, 0.35);
}

/* ── Finance Panel: Hero Total ── */
.inv-v2-finance__hero {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.inv-v2-finance__hero-label {
  font-size: 10px;
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.inv-v2-finance__hero-value {
  font-size: 28px;
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  font-family: var(--ui-font-mono);
  letter-spacing: -0.5px;
}

/* ── Finance Panel: Due Block ── */
.inv-v2-finance__due-block {
  display: flex;
  align-items: baseline;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  background: rgba(239, 68, 68, 0.06);
  border: 1px solid rgba(239, 68, 68, 0.12);
}

.inv-v2-finance__due-label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: #ef4444;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.inv-v2-finance__due-value {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-bold);
  color: #ef4444;
  font-family: var(--ui-font-mono);
  margin-left: auto;
}

/* ── Dual Due System: Party Balance ── */
.sale-v2-due__party {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 12px;
  padding: 4px var(--ui-space-3);
  color: var(--ui-text-muted);
  opacity: 0.8;
}

.sale-v2-due__party span:last-child {
  font-family: var(--ui-font-mono);
  font-weight: var(--ui-font-semibold);
}

.sale-v2-due__party .advance {
  color: #22c55e;
}

.sale-v2-due__adjusted {
  font-size: 12px;
  padding: 2px var(--ui-space-3);
  color: #f59e0b;
  font-weight: var(--ui-font-medium);
}

.sale-v2-due__partial {
  font-size: 12px;
  padding: 2px var(--ui-space-3);
  color: #f59e0b;
  font-style: italic;
}

.sale-v2-last-payment {
  font-size: 11px;
  padding: 2px var(--ui-space-3) 4px;
  color: var(--ui-text-muted);
  opacity: 0.6;
}

/* ── Finance Panel: Utils ── */
.inv-v2-finance__utils {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

/* ── Overdue Pulse Animation ── */
@keyframes overduePulse {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.3);
  }
  50% {
    box-shadow: 0 0 8px 2px rgba(239, 68, 68, 0.2);
  }
}
.inv-v2-status--overdue {
  animation: overduePulse 2s ease-in-out infinite;
}

/* ── Lifecycle Timeline ── */
.inv-v2-lifecycle {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.inv-v2-lifecycle__label {
  font-size: 10px;
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.inv-v2-lifecycle__track {
  display: flex;
  align-items: center;
  gap: 0;
  position: relative;
}

.inv-v2-lifecycle__step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  flex: 1;
  position: relative;
}

.inv-v2-lifecycle__step span {
  font-size: 10px;
  color: var(--ui-text-muted);
  font-weight: var(--ui-font-medium);
}

.inv-v2-lifecycle__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  border: 2px solid rgba(255, 255, 255, 0.12);
  z-index: 1;
}

/* Connector line between dots */
.inv-v2-lifecycle__step:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 5px;
  left: calc(50% + 5px);
  right: calc(-50% + 5px);
  height: 2px;
  background: rgba(255, 255, 255, 0.06);
}

.inv-v2-lifecycle__step--done .inv-v2-lifecycle__dot {
  background: var(--ui-accent);
  border-color: var(--ui-accent);
}

.inv-v2-lifecycle__step--done span {
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-semibold);
}

.inv-v2-lifecycle__step--done:not(:last-child)::after {
  background: var(--ui-accent);
}

/* ── Empty State ── */
.inv-v2-finance__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-4) 0;
  text-align: center;
}

.inv-v2-finance__empty mat-icon {
  font-size: 28px;
  width: 28px;
  height: 28px;
  color: var(--ui-text-muted);
  opacity: 0.4;
}

.inv-v2-finance__empty span {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.inv-v2-finance__empty-hint {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  opacity: 0.6;
}

/* ── Passive Collect Hint (sidebar) ── */
.inv-v2-finance__collect-hint {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  background: rgba(255, 120, 79, 0.06);
  border: 1px solid rgba(255, 120, 79, 0.12);
  font-size: var(--ui-text-sm);
  color: var(--ui-accent);
}

.inv-v2-finance__collect-hint mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.inv-v2-finance__collect-hint strong {
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
}

/* ═══════════════════════════════════════════════════════════════════
   PRINT COMPATIBILITY — Hide workspace zones, keep only document
   ═══════════════════════════════════════════════════════════════════ */
@media print {
  .inv-v2-header,
  .inv-v2-cta,
  .inv-v2-finance {
    display: none !important;
  }
  .inv-v2 {
    max-height: none !important;
    border: none !important;
    border-radius: 0 !important;
    background: #fff !important;
  }
  .inv-v2-body {
    max-height: none !important;
    overflow: visible !important;
  }
  .inv-v2-document {
    flex: 1 !important;
    overflow: visible !important;
  }
  /* Hide eWay Bill interactive section in print */
  .inv-v2-eway {
    display: none !important;
  }
}
/* ==========================================================================
   eWay Bill Section (inside invoice document)
   ========================================================================== */
.inv-v2-eway {
  margin-top: 16px;
  border-top: 1px solid #e5e7eb;
  padding: 12px 20px 8px;
}

.inv-v2-eway__card {
  background: #f8fafb;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 12px 16px;
}

.inv-v2-eway__card--eligible {
  background: #fefce8;
  border-color: #fde68a;
}

.inv-v2-eway__card--cancelled {
  background: #fef2f2;
  border-color: #fecaca;
}

.inv-v2-eway__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.inv-v2-eway__title {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: #1a1a2e !important;
}

.inv-v2-eway__status {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 2px 8px;
  border-radius: 4px;
}

.inv-v2-eway__status--active {
  color: #059669 !important;
  background: #d1fae5;
}

.inv-v2-eway__status--expiring {
  color: #d97706 !important;
  background: #fef3c7;
}

.inv-v2-eway__status--expired {
  color: #dc2626 !important;
  background: #fee2e2;
}

.inv-v2-eway__status--cancelled {
  color: #dc2626 !important;
  background: #fee2e2;
}

.inv-v2-eway__status--pending {
  color: #2563eb !important;
  background: #dbeafe;
}

.inv-v2-eway__details {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 8px;
  margin-top: 8px;
}

.inv-v2-eway__detail {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.inv-v2-eway__label {
  font-size: 10px !important;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #888 !important;
  font-weight: 500;
  display: block;
  margin-bottom: 2px;
}

.inv-v2-eway__actions {
  display: flex;
  gap: 8px;
}

.inv-v2-eway__form {
  background: rgba(0, 0, 0, 0.02);
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  padding: 10px 12px;
}

.inv-v2-eway__input {
  width: 100%;
  padding: 6px 10px;
  font-size: 13px;
  border: 1px solid #d1d5db;
  border-radius: 4px;
  background: #fff;
  color: #111 !important;
  box-sizing: border-box;
}

.inv-v2-eway__input:focus {
  outline: none;
  border-color: #6366f1;
  box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.15);
}

/* Small action buttons inside eWay Bill section */
.inv-v2-action--sm {
  font-size: 12px !important;
  padding: 4px 10px !important;
  height: 28px !important;
  gap: 4px !important;
}

.inv-v2-action--sm mat-icon {
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
}

.inv-v2-action--danger {
  background: rgba(239, 68, 68, 0.1) !important;
  color: #ef4444 !important;
  border: 1px solid rgba(239, 68, 68, 0.3) !important;
}

.inv-v2-action--danger:hover {
  background: rgba(239, 68, 68, 0.2) !important;
}

/* eWay Bill icon sizing (inside __title) */
.inv-v2-eway__title mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

/* eWay Bill actions row spacing */
.inv-v2-eway__actions {
  display: flex;
  gap: 8px;
  margin-top: 8px;
}

/* eWay Bill form spacing */
.inv-v2-eway__form {
  background: rgba(0, 0, 0, 0.02);
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  padding: 10px 12px;
  margin-top: 8px;
}

/* eWay Bill form grid (2-column) */
.inv-v2-eway__form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

/* eWay Bill form row (flex with gap) */
.inv-v2-eway__form-row {
  display: flex;
  gap: 8px;
  align-items: flex-end;
}

/* eWay Bill form field wrapper */
.inv-v2-eway__field {
  flex: 1;
}

/* eWay Bill form actions row */
.inv-v2-eway__form-actions {
  display: flex;
  gap: 8px;
  margin-top: 8px;
}

/* Vehicle/GSTIN input uppercase */
.inv-v2-eway__input--uppercase {
  text-transform: uppercase;
}

/* Expired validity text */
.inv-v2-eway__value--expired {
  color: #ef4444;
}

/* Remaining hours hint */
.inv-v2-eway__hours-left {
  color: rgba(0, 0, 0, 0.4);
  font-size: 11px;
}

/* Cancelled EWB number strikethrough */
.inv-v2-eway__value--struck {
  text-decoration: line-through;
  color: rgba(0, 0, 0, 0.35);
}

/* Pending hint text */
.inv-v2-eway__hint {
  font-size: 12px;
  color: rgba(0, 0, 0, 0.5);
  margin: 4px 0 0;
}

/* Eligible description text */
.inv-v2-eway__description {
  font-size: 12px;
  color: rgba(0, 0, 0, 0.5);
  margin: 4px 0 8px;
}

/* ==========================================================================
   UI MODALS - INVENTORY FORMS (Create/Edit Item)
   ==========================================================================
   Layout contracts for inventory item modals.
   Migrated from backup component CSS to UI contracts.
   ========================================================================== */
/* ==========================================================================
   CDK OVERLAY PANE — create-item modal should inherit ui-modal--xlarge
   ========================================================================== */
.cdk-overlay-pane.ui-modal--xlarge:has(.create-item-modal) .mat-mdc-dialog-container,
.cdk-overlay-pane.ui-modal--xlarge:has(.create-item-modal) .mdc-dialog__container,
.cdk-overlay-pane.ui-modal--xlarge:has(.create-item-modal) .mdc-dialog__surface,
.cdk-overlay-pane.ui-modal--xlarge:has(.create-item-modal) .mat-mdc-dialog-surface {
  width: 100% !important;
  height: 100% !important;
  max-height: 100% !important;
  background: transparent !important;
  overflow: visible !important;
}

/* ==========================================================================
   FORM LAYOUT VARIANTS — Two Column Large Modal
   ========================================================================== */
.create-item-modal {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.create-item-modal .glass-modal-header {
  flex-shrink: 0;
  padding: 12px 20px;
  min-height: 0;
}

.create-item-modal .glass-modal-title {
  font-size: 15px;
  font-weight: 600;
  margin: 0;
  line-height: 1.2;
}

.create-item-modal .header-left {
  display: flex;
  align-items: center;
  gap: 10px;
}

.create-item-modal .header-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: #ff8a50;
  filter: drop-shadow(0 0 6px rgba(255, 138, 80, 0.4));
}

.create-item-modal .close-btn {
  width: 30px;
  height: 30px;
}

.create-item-modal .close-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.create-item-modal .glass-modal-body {
  flex: 1 1 auto;
  overflow-y: auto;
  overflow-x: hidden;
  min-height: 0;
  max-height: 100%;
  padding-bottom: 32px;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

/* ==========================================================================
   FORM LAYOUT — 2-column grid, cards at natural height
   ========================================================================== */
.create-item-modal .form-layout {
  grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
  max-width: 1600px;
  margin: 0 auto;
  align-items: start;
  padding-bottom: 24px;
  row-gap: 12px;
  column-gap: 12px;
}

/* Row 1: Identity — full width */
.create-item-modal .ci-row1 {
  grid-column: 1/-1;
  grid-row: 1;
}

/* Row 2: Pricing — full width */
.create-item-modal .ci-row2 {
  grid-column: 1/-1;
  grid-row: 2;
}

/* Row 3: two-column split */
.create-item-modal .ci-row3-col1 {
  grid-column: 1;
  grid-row: 3;
}

.create-item-modal .ci-row3-col2 {
  grid-column: 2;
  grid-row: 3;
}

/* Row 4: Notes — col 1 only (matches Classification width) */
.create-item-modal .ci-row4-col1 {
  grid-column: 1;
  grid-row: 4;
}

.create-item-modal .ci-row4 {
  grid-column: 1/-1;
  grid-row: 4;
}

/* Side group: flex column, stretches to full row height */
.create-item-modal .ci-side-group {
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-self: stretch;
}

/* Left column stack: Classification + Notes, stretches to match right stack */
.create-item-modal .ci-col1-stack {
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-self: stretch;
}

/* Bottom card in each stack grows to absorb remaining height */
.create-item-modal .ci-col1-stack .notes-panel {
  flex: 1 1 auto;
  padding-bottom: 20px;
}

.create-item-modal .ci-side-group .discount-panel {
  flex: 1 1 auto;
  padding-bottom: 20px;
}

/* ==========================================================================
   IDENTITY PANEL — Merged inline image zone
   ========================================================================== */
.identity-inner {
  display: flex;
  align-items: stretch;
  gap: 16px;
}

.identity-fields-block {
  flex: 1;
  min-width: 0;
}

.identity-image-zone {
  position: relative;
  width: 96px;
  height: 96px;
  max-height: 96px;
  flex-shrink: 0;
  align-self: flex-start;
  border-radius: 12px;
  border: 1.5px dashed rgba(255, 255, 255, 0.15);
  background: rgba(255, 255, 255, 0.03);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
  overflow: hidden;
}
.identity-image-zone:hover {
  border-color: rgba(var(--ui-color-primary-rgb, 232, 104, 44), 0.45);
  background: rgba(var(--ui-color-primary-rgb, 232, 104, 44), 0.05);
}

.identity-image-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  color: rgba(255, 255, 255, 0.3);
}
.identity-image-placeholder mat-icon {
  font-size: 22px;
  width: 22px;
  height: 22px;
}
.identity-image-placeholder span {
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.identity-image-preview {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 10px;
}

.identity-image-remove {
  position: absolute;
  top: 4px;
  right: 4px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: none;
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.2s;
}
.identity-image-remove mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.identity-image-zone:hover .identity-image-remove {
  opacity: 1;
}

/* ==========================================================================
   GLASS PANEL VARIANTS — Section-specific styling
   ========================================================================== */
.glass-panel.compact-panel {
  padding: 12px 14px;
}

.glass-panel.identity-panel {
  background: linear-gradient(145deg, rgba(255, 200, 150, 0.06), rgba(255, 255, 255, 0.025));
  border-color: rgba(255, 180, 130, 0.18);
  box-shadow: inset 0 1px 0 rgba(255, 200, 150, 0.08), 0 4px 20px rgba(0, 0, 0, 0.15);
}

.glass-panel.classification-panel {
  padding: 14px 16px 16px;
}

.glass-panel.notes-panel {
  padding: 12px 16px 14px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.015));
  border-color: rgba(255, 255, 255, 0.06);
}

.glass-panel.discount-panel {
  padding: 10px 14px 12px;
}

.glass-panel.image-panel {
  border-color: rgba(255, 180, 130, 0.12);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.025));
}

/* Tax (GST) chip-style field — visually distinct from plain text inputs */
.tax-chip-field .mat-mdc-text-field-wrapper,
.tax-chip-field .mdc-text-field--filled {
  background: rgba(80, 200, 120, 0.07) !important;
  border-color: rgba(80, 200, 120, 0.22) !important;
}

.tax-chip-field .mat-mdc-select-value {
  color: rgba(120, 220, 140, 0.9);
  font-weight: 600;
  font-size: var(--ui-text-sm, 13px);
}

.tax-chip-field .mat-mdc-form-field-label,
.tax-chip-field .mdc-floating-label {
  color: rgba(100, 200, 120, 0.65) !important;
  font-size: var(--ui-text-xs, 11px);
}

.tax-chip-field .mat-mdc-select-arrow {
  color: rgba(100, 200, 120, 0.5);
}

/* Warranty panel - conditional collapse */
.glass-panel.warranty-panel {
  border-color: rgba(255, 200, 150, 0.1);
}

.glass-panel.warranty-panel.warranty-disabled {
  padding: 10px 16px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.025), rgba(255, 255, 255, 0.01));
  border-color: rgba(255, 255, 255, 0.05);
}

.glass-panel.warranty-panel.warranty-tracking-disabled .warranty-content {
  opacity: 0.45;
  pointer-events: none;
}

.glass-panel.warranty-panel.warranty-disabled .warranty-duration-row,
.glass-panel.warranty-panel.warranty-disabled .warranty-terms-row {
  opacity: 0.4;
  pointer-events: none;
  max-height: 0;
  overflow: hidden;
  margin: 0;
  padding: 0;
  transition: all 0.3s ease;
}

.glass-panel.warranty-panel:not(.warranty-disabled) .warranty-duration-row,
.glass-panel.warranty-panel:not(.warranty-disabled) .warranty-terms-row {
  max-height: 200px;
  opacity: 1;
  transition: all 0.3s ease;
}

/* ==========================================================================
   SECTION TITLE VARIANTS
   ========================================================================== */
.glass-section-title.anchor {
  color: rgba(255, 180, 120, 0.95);
  font-size: 11px;
  letter-spacing: 0.12em;
  border-bottom-color: rgba(255, 180, 120, 0.15);
}

.glass-section-title.anchor mat-icon {
  color: #ff8a50;
  filter: drop-shadow(0 0 4px rgba(255, 138, 80, 0.3));
}

.glass-section-title.subtle {
  color: rgba(255, 255, 255, 0.5);
  font-size: 9px;
  margin-bottom: 10px;
  padding-bottom: 6px;
}

.glass-section-title.subtle mat-icon {
  color: rgba(255, 255, 255, 0.4);
}

.glass-section-title.muted {
  color: rgba(255, 255, 255, 0.55);
  font-size: 10px;
  margin-bottom: 8px;
  padding-bottom: 6px;
  border-bottom-color: rgba(255, 255, 255, 0.05);
}

.glass-section-title.muted mat-icon {
  color: rgba(255, 200, 150, 0.5);
}

/* ==========================================================================
   FORM ROW — Flexible row container
   ========================================================================== */
.form-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 6px;
}

.form-row:last-child {
  margin-bottom: 0;
}

/* ==========================================================================
   CLASSIFICATION GRID — 3-column layout
   ========================================================================== */
.classification-grid {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.classification-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

@media (max-width: 900px) {
  .classification-row {
    grid-template-columns: repeat(2, 1fr);
  }
}
/* ==========================================================================
   PRICING — Single-row layout (matching service modal)
   ========================================================================== */
.pricing-header-row {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  margin-bottom: 8px;
}

.pricing-header {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.55);
}

.pricing-header mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: rgba(255, 200, 150, 0.7);
}

.pricing-header-final {
  color: rgba(76, 175, 80, 0.85);
}

.pricing-header-final mat-icon {
  color: rgba(76, 175, 80, 0.85);
}

.pricing-values-row {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
}

.pricing-cell {
  min-width: 0 !important;
}

.pricing-cell-final {
  background: rgba(76, 175, 80, 0.06) !important;
  border-color: rgba(76, 175, 80, 0.15) !important;
}

.pricing-cell-final input {
  color: #4caf50 !important;
  font-weight: 600;
}

/* ==========================================================================
   FIELD SIZE MODIFIERS
   ========================================================================== */
.field-xs {
  flex: 0 0 70px;
  min-width: 70px;
}

.field-sm {
  flex: 0 0 100px;
  min-width: 100px;
}

.field-md {
  flex: 1 1 140px;
  min-width: 140px;
  max-width: 200px;
}

.field-lg {
  flex: 2 1 200px;
  min-width: 180px;
}

.field-xl {
  flex: 1 1 100%;
  width: 100%;
}

/* ==========================================================================
   DISCOUNT SECTION — Vertical layout with checkbox + hero amount field
   ========================================================================== */
.discount-content {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.discount-amount-field {
  width: 100%;
}

/* ==========================================================================
   WARRANTY SECTION
   ========================================================================== */
.warranty-content {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.warranty-toggle {
  display: flex;
  align-items: center;
}

/* Styled mat-checkbox for create-item panels */
.ci-checkbox.mat-mdc-checkbox {
  --mdc-checkbox-selected-checkmark-color: #fff;
  --mdc-checkbox-selected-focus-icon-color: var(--ui-color-primary, #e8682c);
  --mdc-checkbox-selected-hover-icon-color: var(--ui-color-primary, #e8682c);
  --mdc-checkbox-selected-icon-color: var(--ui-color-primary, #e8682c);
  --mdc-checkbox-selected-pressed-icon-color: var(--ui-color-primary, #e8682c);
  --mdc-checkbox-unselected-icon-color: rgba(255, 255, 255, 0.35);
  --mdc-checkbox-unselected-hover-icon-color: rgba(255, 255, 255, 0.6);
  --mdc-checkbox-unselected-focus-icon-color: rgba(255, 255, 255, 0.5);
}
.ci-checkbox.mat-mdc-checkbox .mdc-form-field {
  align-items: center;
}
.ci-checkbox.mat-mdc-checkbox .mdc-checkbox__background {
  border-radius: 6px;
  background-color: rgba(255, 255, 255, 0.05);
}
.ci-checkbox.mat-mdc-checkbox .mdc-label {
  color: rgba(255, 255, 255, 0.8);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  line-height: 1;
  padding-top: 0;
  padding-bottom: 0;
}

.warranty-coverage-text {
  color: rgba(255, 255, 255, 0.8);
  font-size: 13px;
  font-weight: 500;
}

.warranty-duration-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.warranty-field-label {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.warranty-duration-inputs {
  display: flex;
  gap: 8px;
}

.warranty-duration-input {
  width: 80px;
  height: 40px;
  padding: 0 12px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  outline: none;
  transition: all 0.2s ease;
}

.warranty-duration-input:focus {
  border-color: rgba(255, 122, 61, 0.5);
  background: rgba(255, 255, 255, 0.05);
}

.warranty-periodicity-select {
  height: 40px;
  padding: 0 12px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  cursor: pointer;
  transition: all 0.2s ease;
  outline: none;
}

.warranty-periodicity-select:focus {
  border-color: rgba(255, 122, 61, 0.5);
}

.warranty-periodicity-select option {
  background: #1a1a1a;
  color: #fff;
}

.warranty-validation-error {
  color: #ff6b6b;
  font-size: 11px;
  margin-top: 2px;
}

.warranty-terms-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.warranty-terms-textarea {
  width: 100%;
  min-height: 70px;
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  font-family: inherit;
  resize: vertical;
  outline: none;
  transition: all 0.2s ease;
}

.warranty-terms-textarea:focus {
  border-color: rgba(255, 122, 61, 0.5);
  background: rgba(255, 255, 255, 0.05);
}

/* ==========================================================================
   CURRENCY PREFIX STYLING
   ========================================================================== */
.currency-prefix {
  color: rgba(255, 255, 255, 0.6);
  font-size: 13px;
  font-weight: 500;
  margin-right: 2px;
}

.margin-prefix {
  display: inline-flex;
  align-items: center;
  margin-right: 4px;
  flex-shrink: 0;
}

.margin-select {
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.7);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  outline: none;
  padding: 0 2px;
  width: 36px;
}

.margin-select option {
  background: #1a1a1a;
  color: #fff;
}

/* ==========================================================================
   REQUIRED FIELD INDICATOR
   ========================================================================== */
.required-indicator {
  color: #ff6b6b;
  margin-left: 2px;
  font-size: 11px;
}

/* ==========================================================================
   VALIDATION ERROR
   ========================================================================== */
.validation-row {
  margin-top: 6px;
}

.validation-error {
  font-size: 11px;
  color: #f87171;
}

/* ==========================================================================
   IMAGE UPLOAD SECTION
   ========================================================================== */
.image-upload-section {
  display: flex;
  flex-direction: column;
}

.upload-area {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.image-container {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.image-preview {
  max-width: 100%;
  max-height: 100%;
  border-radius: 8px;
}

.image-placeholder {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.04);
  border: 1px dashed rgba(255, 255, 255, 0.15);
  border-radius: 8px;
}

.image-placeholder mat-icon {
  font-size: 24px;
  width: 24px;
  height: 24px;
  color: rgba(255, 255, 255, 0.3);
}

.upload-actions {
  display: flex;
  gap: 12px;
}

.upload-link {
  font-size: 12px;
  color: rgba(255, 180, 130, 0.85);
  cursor: pointer;
  transition: color 0.2s ease;
}

.upload-link:hover {
  color: #ff8a50;
}

.remove-link {
  font-size: 12px;
  color: rgba(248, 113, 113, 0.7);
  cursor: pointer;
  transition: color 0.2s ease;
}

.remove-link:hover {
  color: #f87171;
}

/* ==========================================================================
   TRACKING OPTION
   ========================================================================== */
.tracking-option {
  display: flex;
  align-items: center;
  gap: 10px;
}

.tracking-label {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.75);
}

/* ==========================================================================
   RESPONSIVE — Large modal breakpoints
   ========================================================================== */
@media (max-width: 1200px) {
  .create-item-modal .form-layout {
    grid-template-columns: minmax(0, 1fr) minmax(240px, 280px);
  }
}
@media (max-width: 900px) {
  .create-item-modal .form-layout {
    grid-template-columns: 1fr;
  }
  .create-item-modal .side-column {
    order: -1;
  }
}
/* ==========================================================================
   MANAGE BRANDS / CATEGORIES DIALOG — List & Form Layout
   ==========================================================================
   Scoped to .manage-brands-dialog and .manage-categories-dialog.
   Uses existing contracts: pill-btn-add, pill-btn-primary, pill-btn-secondary,
   glass-btn-icon from controls/pill-controls.scss and modals/forms.scss.
   ========================================================================== */
.manage-brands-dialog,
.manage-categories-dialog {
  /* Section container */
  /* Inline form layout */
  /* Form actions row */
  /* Items list */
  /* Individual list item row */
  /* Item info block (name + meta) */
  /* Item actions */
  /* Loading state */
}
.manage-brands-dialog .form-section,
.manage-brands-dialog .list-section,
.manage-categories-dialog .form-section,
.manage-categories-dialog .list-section {
  padding: 16px 0;
}
.manage-brands-dialog .form-section + .list-section,
.manage-categories-dialog .form-section + .list-section {
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.manage-brands-dialog .inline-form,
.manage-categories-dialog .inline-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.manage-brands-dialog .inline-form .form-field,
.manage-categories-dialog .inline-form .form-field {
  width: 100%;
}
.manage-brands-dialog .form-actions,
.manage-categories-dialog .form-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 4px;
}
.manage-brands-dialog .items-list,
.manage-categories-dialog .items-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.manage-brands-dialog .list-item,
.manage-categories-dialog .list-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 14px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid transparent;
  transition: all 0.2s ease;
}
.manage-brands-dialog .list-item:hover,
.manage-categories-dialog .list-item:hover {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.06);
}
.manage-brands-dialog .list-item.editing,
.manage-categories-dialog .list-item.editing {
  background: rgba(255, 180, 100, 0.06);
  border-color: rgba(255, 180, 100, 0.15);
}
.manage-brands-dialog .item-info,
.manage-categories-dialog .item-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1;
}
.manage-brands-dialog .item-name,
.manage-categories-dialog .item-name {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.9);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.manage-brands-dialog .item-meta,
.manage-categories-dialog .item-meta {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
  font-weight: 400;
}
.manage-brands-dialog .item-actions,
.manage-categories-dialog .item-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.manage-brands-dialog .loading-state,
.manage-categories-dialog .loading-state {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px 0;
  color: rgba(255, 255, 255, 0.5);
  font-size: 13px;
}

/* ==========================================================================
   DUPLICATE DETECTION BANNER
   ========================================================================== */
.duplicate-banner {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  flex-basis: 100%;
  padding: 8px 14px;
  margin-top: -2px;
  margin-bottom: 4px;
  background: rgba(255, 170, 50, 0.08);
  border: 1px solid rgba(255, 170, 50, 0.25);
  border-radius: 10px;
  animation: slideDown 0.25s ease;
}

@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.duplicate-banner-icon {
  color: #ffaa33;
  font-size: 20px;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.duplicate-banner-text {
  flex: 1;
  font-size: 12.5px;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.35;
}

.duplicate-banner-text strong {
  color: #ffcc66;
}

.duplicate-stock {
  color: rgba(255, 255, 255, 0.55);
  font-size: 12px;
}

.glass-btn-sm {
  padding: 4px 12px !important;
  font-size: 11.5px !important;
  min-height: 28px !important;
  height: 28px !important;
  line-height: 1 !important;
}

.glass-btn-warning {
  background: rgba(255, 170, 50, 0.15) !important;
  border-color: rgba(255, 170, 50, 0.35) !important;
  color: #ffcc66 !important;
}

.glass-btn-warning:hover {
  background: rgba(255, 170, 50, 0.25) !important;
}

.duplicate-dismiss-btn {
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.35);
  cursor: pointer;
  padding: 2px;
  display: flex;
  align-items: center;
  transition: color 0.2s;
}

.duplicate-dismiss-btn:hover {
  color: rgba(255, 255, 255, 0.7);
}

.duplicate-dismiss-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

/* Duplicate warning icon in part_no field */
.duplicate-warn-icon {
  color: #ffaa33 !important;
  font-size: 18px !important;
  width: 18px !important;
  height: 18px !important;
}

/* Spinning loader icon */
.spin-icon {
  animation: spin 1s linear infinite;
  font-size: 18px !important;
  width: 18px !important;
  height: 18px !important;
  color: rgba(255, 255, 255, 0.4) !important;
}

@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
/* ==========================================================================
   UI MODALS - SUPPLIER ADD
   ==========================================================================
   Contract for SupplierAddComponent dialog opened from supplier pages.
   - uses canonical modal overlay contracts from src/ui/layout/modal.scss
   - no supplier-specific overlay/pane positioning overrides
   - subtle card treatment aligned with modal contracts
   ========================================================================== */
.supplier-modal {
  display: flex;
  flex-direction: column;
  width: min(960px, 92vw);
  max-width: 100%;
  height: auto;
  max-height: min(86vh, 100vh - 40px);
  min-height: 0;
  margin: 0 auto;
}

.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal {
  width: min(1500px, 100vw - var(--ui-space-12));
  max-width: 100%;
  height: min(94vh, 100vh - 16px);
  max-height: min(94vh, 100vh - 16px);
}

.cdk-overlay-pane.supplier-detail-modal-panel {
  width: min(1500px, 100vw - var(--ui-space-12)) !important;
  max-width: min(1500px, 100vw - var(--ui-space-12)) !important;
  height: min(94vh, 100vh - 16px) !important;
  max-height: min(94vh, 100vh - 16px) !important;
  margin: auto !important;
  left: auto !important;
  right: auto !important;
  transform: none !important;
}

@supports (height: 100dvh) {
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal,
  .cdk-overlay-pane.supplier-detail-modal-panel {
    height: min(94dvh, 100dvh - 16px) !important;
    max-height: min(94dvh, 100dvh - 16px) !important;
  }
}
.cdk-global-overlay-wrapper:has(.supplier-detail-modal-panel) {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}

.cdk-overlay-pane.supplier-detail-modal-panel .mat-mdc-dialog-container,
.cdk-overlay-pane.supplier-detail-modal-panel .mdc-dialog__container,
.cdk-overlay-pane.supplier-detail-modal-panel .mdc-dialog__surface,
.cdk-overlay-pane.supplier-detail-modal-panel .mat-mdc-dialog-surface {
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
}

.cdk-overlay-pane.supplier-detail-modal-panel .mdc-dialog__surface > *,
.cdk-overlay-pane.supplier-detail-modal-panel .mat-mdc-dialog-surface > * {
  display: block !important;
  height: 100% !important;
}

.cdk-overlay-pane.supplier-detail-modal-panel mat-dialog-content,
.cdk-overlay-pane.supplier-detail-modal-panel .mat-mdc-dialog-content,
.cdk-overlay-pane.supplier-detail-modal-panel .mdc-dialog__content {
  max-height: none !important;
  min-height: 0 !important;
}

.cdk-overlay-pane.supplier-detail-modal-panel .glass-modal-container {
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  min-height: 0 !important;
}

.supplier-modal .glass-modal-header .header-content {
  min-width: 0;
  order: -1;
}

.supplier-modal .glass-modal-header {
  flex-direction: row;
  justify-content: space-between;
}

.supplier-modal .supplier-modal__body {
  flex: 1 1 auto;
  min-height: 0;
  margin: 0;
  padding: 24px;
  overflow-y: auto;
  overflow-x: hidden;
}

/* Detail modal spacing polish (scoped to supplier detail panel only). */
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__body {
  display: block !important;
  padding: 0 !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
}

.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-6);
  box-sizing: border-box;
  min-height: 100%;
  padding: var(--ui-space-8) var(--ui-space-10) var(--ui-space-10);
}

.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__body > .supplier-modal__sections:last-child {
  padding: var(--ui-space-8) var(--ui-space-10) var(--ui-space-10) !important;
}

.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.ui-card--subtle, .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card--subtle.glass-card, .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card--subtle.glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card--subtle.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card--subtle.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card--subtle.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card--subtle.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card--subtle.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card--subtle.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card--subtle.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card--subtle.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card--subtle.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card--subtle.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card--subtle.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card--subtle.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card--subtle.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card--subtle.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card--subtle.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card--subtle.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card--subtle.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card--subtle.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card--subtle.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card--subtle.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card--subtle.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card--subtle.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card--subtle.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card--subtle.panel-card, .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card.glass-card, .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.glass-card, .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-card, .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-panel.glass-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-panel.glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .fd-glass.glass-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .fd-glass.glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .section-card.glass-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .section-card.glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .content-section.glass-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .content-section.glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .timeline-card.glass-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .timeline-card.glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .entry-section.glass-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .entry-section.glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .attachments.glass-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .attachments.glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .summary-card.glass-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .summary-card.glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .metric-card.glass-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .metric-card.glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .review-card.glass-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .review-card.glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .config-section.glass-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .config-section.glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .panel-card.glass-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .panel-card.glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-card.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-card.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .fd-glass.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .fd-glass.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .section-card.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .section-card.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .content-section.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .content-section.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .timeline-card.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .timeline-card.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .entry-section.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .entry-section.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .attachments.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .attachments.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .summary-card.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .summary-card.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .metric-card.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .metric-card.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .review-card.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .review-card.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .config-section.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .config-section.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .panel-card.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .panel-card.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-card.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-card.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-panel.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-panel.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .section-card.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .section-card.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .content-section.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .content-section.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .timeline-card.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .timeline-card.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .entry-section.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .entry-section.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .attachments.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .attachments.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .summary-card.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .summary-card.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .metric-card.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .metric-card.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .review-card.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .review-card.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .config-section.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .config-section.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .panel-card.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .panel-card.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-card.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-card.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-panel.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-panel.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .fd-glass.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .fd-glass.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .content-section.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .content-section.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .timeline-card.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .timeline-card.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .entry-section.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .entry-section.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .attachments.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .attachments.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .summary-card.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .summary-card.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .metric-card.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .metric-card.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .review-card.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .review-card.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .config-section.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .config-section.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .panel-card.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .panel-card.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-card.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-card.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-panel.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-panel.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .fd-glass.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .fd-glass.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .section-card.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .section-card.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .timeline-card.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .timeline-card.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .entry-section.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .entry-section.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .attachments.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .attachments.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .summary-card.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .summary-card.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .metric-card.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .metric-card.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .review-card.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .review-card.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .config-section.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .config-section.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .panel-card.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .panel-card.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-card.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-card.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-panel.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-panel.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .fd-glass.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .fd-glass.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .section-card.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .section-card.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .content-section.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .content-section.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .entry-section.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .entry-section.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .attachments.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .attachments.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .summary-card.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .summary-card.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .metric-card.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .metric-card.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .review-card.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .review-card.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .config-section.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .config-section.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .panel-card.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .panel-card.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-card.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-card.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-panel.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-panel.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .fd-glass.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .fd-glass.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .section-card.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .section-card.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .content-section.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .content-section.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .timeline-card.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .timeline-card.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .attachments.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .attachments.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .summary-card.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .summary-card.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .metric-card.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .metric-card.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .review-card.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .review-card.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .config-section.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .config-section.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .panel-card.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .panel-card.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-card.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-card.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-panel.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-panel.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .fd-glass.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .fd-glass.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .section-card.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .section-card.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .content-section.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .content-section.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .timeline-card.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .timeline-card.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .entry-section.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .entry-section.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .summary-card.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .summary-card.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .metric-card.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .metric-card.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .review-card.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .review-card.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .config-section.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .config-section.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .panel-card.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .panel-card.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-card.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-card.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-panel.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-panel.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .fd-glass.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .fd-glass.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .section-card.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .section-card.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .content-section.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .content-section.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .timeline-card.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .timeline-card.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .entry-section.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .entry-section.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .attachments.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .attachments.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .metric-card.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .metric-card.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .review-card.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .review-card.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .config-section.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .config-section.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .panel-card.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .panel-card.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-card.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-card.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-panel.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-panel.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .fd-glass.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .fd-glass.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .section-card.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .section-card.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .content-section.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .content-section.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .timeline-card.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .timeline-card.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .entry-section.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .entry-section.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .attachments.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .attachments.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .summary-card.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .summary-card.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .review-card.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .review-card.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .config-section.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .config-section.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .panel-card.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .panel-card.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-card.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-card.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-panel.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-panel.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .fd-glass.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .fd-glass.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .section-card.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .section-card.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .content-section.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .content-section.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .timeline-card.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .timeline-card.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .entry-section.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .entry-section.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .attachments.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .attachments.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .summary-card.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .summary-card.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .metric-card.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .metric-card.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .config-section.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .config-section.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .panel-card.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .panel-card.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-card.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-card.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-panel.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-panel.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .fd-glass.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .fd-glass.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .section-card.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .section-card.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .content-section.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .content-section.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .timeline-card.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .timeline-card.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .entry-section.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .entry-section.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .attachments.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .attachments.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .summary-card.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .summary-card.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .metric-card.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .metric-card.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .review-card.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .review-card.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .panel-card.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .panel-card.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.panel-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-card.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-card.panel-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-panel.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-panel.panel-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .fd-glass.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .fd-glass.panel-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .section-card.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .section-card.panel-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .content-section.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .content-section.panel-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .timeline-card.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .timeline-card.panel-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .entry-section.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .entry-section.panel-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .attachments.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .attachments.panel-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .summary-card.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .summary-card.panel-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .metric-card.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .metric-card.panel-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .review-card.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .review-card.panel-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .config-section.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .config-section.panel-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .panel-card {
  margin: 0;
  border-radius: var(--ui-radius-xl);
  padding: var(--ui-space-6);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
}

.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .tab-content-container {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
  margin-top: var(--ui-space-5);
  padding: var(--ui-space-6);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-lg);
  background: var(--ui-surface-1);
}

.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .tab-content-container .ui-tab-content {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
  min-height: 0;
}

.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .tab-content-container .glass-table-card {
  border-radius: var(--ui-radius-lg);
}

.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .header-actions {
  display: flex;
  justify-content: flex-start;
  margin: 0;
}

.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid {
  --ui-grid-columns: 1fr;
  --ui-grid-gap: var(--ui-space-5);
}

.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .ui-card.ui-card--subtle, .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .ui-card--subtle.glass-card, .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .ui-card--subtle.glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .ui-card--subtle.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .ui-card--subtle.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .ui-card--subtle.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .ui-card--subtle.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .ui-card--subtle.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .ui-card--subtle.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .ui-card--subtle.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .ui-card--subtle.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .ui-card--subtle.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .ui-card--subtle.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .ui-card--subtle.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .ui-card--subtle.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .ui-card--subtle.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .ui-card--subtle.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .ui-card--subtle.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .ui-card--subtle.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .ui-card--subtle.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .ui-card--subtle.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .ui-card--subtle.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .ui-card--subtle.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .ui-card--subtle.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .ui-card--subtle.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .ui-card--subtle.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .ui-card--subtle.panel-card, .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .ui-card.glass-card, .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .ui-card.glass-card, .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .glass-card, .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .glass-panel.glass-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .glass-panel.glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .fd-glass.glass-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .fd-glass.glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .section-card.glass-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .section-card.glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .content-section.glass-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .content-section.glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .timeline-card.glass-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .timeline-card.glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .entry-section.glass-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .entry-section.glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .attachments.glass-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .attachments.glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .summary-card.glass-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .summary-card.glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .metric-card.glass-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .metric-card.glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .review-card.glass-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .review-card.glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .config-section.glass-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .config-section.glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .panel-card.glass-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .panel-card.glass-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .ui-card.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .ui-card.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .glass-card.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .glass-card.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .fd-glass.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .fd-glass.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .section-card.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .section-card.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .content-section.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .content-section.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .timeline-card.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .timeline-card.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .entry-section.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .entry-section.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .attachments.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .attachments.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .summary-card.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .summary-card.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .metric-card.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .metric-card.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .review-card.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .review-card.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .config-section.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .config-section.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .panel-card.glass-panel,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .panel-card.glass-panel,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .ui-card.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .ui-card.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .glass-card.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .glass-card.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .glass-panel.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .glass-panel.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .section-card.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .section-card.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .content-section.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .content-section.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .timeline-card.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .timeline-card.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .entry-section.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .entry-section.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .attachments.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .attachments.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .summary-card.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .summary-card.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .metric-card.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .metric-card.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .review-card.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .review-card.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .config-section.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .config-section.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .panel-card.fd-glass,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .panel-card.fd-glass,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .ui-card.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .ui-card.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .glass-card.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .glass-card.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .glass-panel.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .glass-panel.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .fd-glass.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .fd-glass.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .content-section.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .content-section.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .timeline-card.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .timeline-card.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .entry-section.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .entry-section.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .attachments.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .attachments.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .summary-card.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .summary-card.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .metric-card.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .metric-card.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .review-card.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .review-card.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .config-section.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .config-section.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .panel-card.section-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .panel-card.section-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .ui-card.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .ui-card.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .glass-card.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .glass-card.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .glass-panel.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .glass-panel.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .fd-glass.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .fd-glass.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .section-card.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .section-card.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .timeline-card.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .timeline-card.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .entry-section.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .entry-section.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .attachments.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .attachments.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .summary-card.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .summary-card.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .metric-card.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .metric-card.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .review-card.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .review-card.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .config-section.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .config-section.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .panel-card.content-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .panel-card.content-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .ui-card.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .ui-card.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .glass-card.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .glass-card.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .glass-panel.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .glass-panel.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .fd-glass.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .fd-glass.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .section-card.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .section-card.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .content-section.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .content-section.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .entry-section.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .entry-section.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .attachments.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .attachments.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .summary-card.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .summary-card.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .metric-card.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .metric-card.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .review-card.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .review-card.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .config-section.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .config-section.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .panel-card.timeline-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .panel-card.timeline-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .ui-card.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .ui-card.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .glass-card.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .glass-card.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .glass-panel.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .glass-panel.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .fd-glass.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .fd-glass.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .section-card.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .section-card.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .content-section.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .content-section.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .timeline-card.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .timeline-card.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .attachments.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .attachments.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .summary-card.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .summary-card.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .metric-card.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .metric-card.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .review-card.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .review-card.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .config-section.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .config-section.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .panel-card.entry-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .panel-card.entry-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .ui-card.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .ui-card.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .glass-card.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .glass-card.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .glass-panel.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .glass-panel.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .fd-glass.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .fd-glass.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .section-card.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .section-card.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .content-section.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .content-section.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .timeline-card.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .timeline-card.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .entry-section.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .entry-section.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .summary-card.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .summary-card.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .metric-card.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .metric-card.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .review-card.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .review-card.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .config-section.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .config-section.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .panel-card.attachments,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .panel-card.attachments,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .ui-card.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .ui-card.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .glass-card.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .glass-card.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .glass-panel.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .glass-panel.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .fd-glass.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .fd-glass.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .section-card.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .section-card.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .content-section.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .content-section.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .timeline-card.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .timeline-card.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .entry-section.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .entry-section.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .attachments.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .attachments.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .metric-card.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .metric-card.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .review-card.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .review-card.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .config-section.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .config-section.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .panel-card.summary-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .panel-card.summary-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .ui-card.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .ui-card.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .glass-card.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .glass-card.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .glass-panel.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .glass-panel.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .fd-glass.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .fd-glass.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .section-card.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .section-card.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .content-section.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .content-section.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .timeline-card.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .timeline-card.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .entry-section.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .entry-section.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .attachments.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .attachments.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .summary-card.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .summary-card.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .review-card.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .review-card.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .config-section.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .config-section.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .panel-card.metric-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .panel-card.metric-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .ui-card.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .ui-card.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .glass-card.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .glass-card.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .glass-panel.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .glass-panel.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .fd-glass.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .fd-glass.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .section-card.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .section-card.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .content-section.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .content-section.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .timeline-card.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .timeline-card.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .entry-section.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .entry-section.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .attachments.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .attachments.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .summary-card.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .summary-card.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .metric-card.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .metric-card.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .config-section.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .config-section.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .panel-card.review-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .panel-card.review-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .ui-card.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .ui-card.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .glass-card.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .glass-card.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .glass-panel.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .glass-panel.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .fd-glass.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .fd-glass.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .section-card.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .section-card.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .content-section.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .content-section.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .timeline-card.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .timeline-card.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .entry-section.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .entry-section.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .attachments.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .attachments.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .summary-card.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .summary-card.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .metric-card.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .metric-card.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .review-card.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .review-card.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .panel-card.config-section,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .panel-card.config-section,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .ui-card.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .ui-card.panel-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .glass-card.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .glass-card.panel-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .glass-panel.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .glass-panel.panel-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .fd-glass.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .fd-glass.panel-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .section-card.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .section-card.panel-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .content-section.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .content-section.panel-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .timeline-card.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .timeline-card.panel-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .entry-section.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .entry-section.panel-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .attachments.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .attachments.panel-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .summary-card.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .summary-card.panel-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .metric-card.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .metric-card.panel-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .review-card.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .review-card.panel-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .config-section.panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .config-section.panel-card,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .ui-modal__grid > .panel-card,
.glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .ui-modal__grid > .panel-card {
  min-height: calc(var(--ui-space-12) + var(--ui-space-8));
  padding: var(--ui-space-5) var(--ui-space-6);
  border-radius: var(--ui-radius-lg);
  background: var(--ui-surface-2);
  border-color: var(--ui-border-light);
}

.supplier-modal .supplier-modal__body > .glass-field-row {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  align-items: stretch;
}

.supplier-modal .supplier-modal__body > .glass-field-row > .glass-form-column {
  height: 100%;
}

.supplier-modal .page-tab-navigation {
  width: 100%;
  display: flex;
  justify-content: center;
}

.supplier-modal .page-tab-navigation .pill-tabs-container {
  margin-left: auto;
  margin-right: auto;
}

.supplier-modal .ui-form .form-section.ui-card.ui-card--subtle, .supplier-modal .ui-form .glass-modal-container .form-section.ui-card--subtle.glass-card, .glass-modal-container .supplier-modal .ui-form .form-section.ui-card--subtle.glass-card,
.supplier-modal .ui-form .glass-modal-container .form-section.ui-card--subtle.glass-panel,
.glass-modal-container .supplier-modal .ui-form .form-section.ui-card--subtle.glass-panel,
.supplier-modal .ui-form .glass-modal-container .form-section.ui-card--subtle.fd-glass,
.glass-modal-container .supplier-modal .ui-form .form-section.ui-card--subtle.fd-glass,
.supplier-modal .ui-form .glass-modal-container .form-section.ui-card--subtle.section-card,
.glass-modal-container .supplier-modal .ui-form .form-section.ui-card--subtle.section-card,
.supplier-modal .ui-form .glass-modal-container .form-section.ui-card--subtle.content-section,
.glass-modal-container .supplier-modal .ui-form .form-section.ui-card--subtle.content-section,
.supplier-modal .ui-form .glass-modal-container .form-section.ui-card--subtle.timeline-card,
.glass-modal-container .supplier-modal .ui-form .form-section.ui-card--subtle.timeline-card,
.supplier-modal .ui-form .glass-modal-container .form-section.ui-card--subtle.entry-section,
.glass-modal-container .supplier-modal .ui-form .form-section.ui-card--subtle.entry-section,
.supplier-modal .ui-form .glass-modal-container .form-section.ui-card--subtle.attachments,
.glass-modal-container .supplier-modal .ui-form .form-section.ui-card--subtle.attachments,
.supplier-modal .ui-form .glass-modal-container .form-section.ui-card--subtle.summary-card,
.glass-modal-container .supplier-modal .ui-form .form-section.ui-card--subtle.summary-card,
.supplier-modal .ui-form .glass-modal-container .form-section.ui-card--subtle.metric-card,
.glass-modal-container .supplier-modal .ui-form .form-section.ui-card--subtle.metric-card,
.supplier-modal .ui-form .glass-modal-container .form-section.ui-card--subtle.review-card,
.glass-modal-container .supplier-modal .ui-form .form-section.ui-card--subtle.review-card,
.supplier-modal .ui-form .glass-modal-container .form-section.ui-card--subtle.config-section,
.glass-modal-container .supplier-modal .ui-form .form-section.ui-card--subtle.config-section,
.supplier-modal .ui-form .glass-modal-container .form-section.ui-card--subtle.panel-card,
.glass-modal-container .supplier-modal .ui-form .form-section.ui-card--subtle.panel-card, .supplier-modal .ui-form .glass-modal-container .form-section.ui-card.glass-card, .glass-modal-container .supplier-modal .ui-form .form-section.ui-card.glass-card, .supplier-modal .ui-form .glass-modal-container .form-section.glass-card, .glass-modal-container .supplier-modal .ui-form .form-section.glass-card,
.supplier-modal .ui-form .glass-modal-container .form-section.glass-panel.glass-card,
.glass-modal-container .supplier-modal .ui-form .form-section.glass-panel.glass-card,
.supplier-modal .ui-form .glass-modal-container .form-section.fd-glass.glass-card,
.glass-modal-container .supplier-modal .ui-form .form-section.fd-glass.glass-card,
.supplier-modal .ui-form .glass-modal-container .form-section.section-card.glass-card,
.glass-modal-container .supplier-modal .ui-form .form-section.section-card.glass-card,
.supplier-modal .ui-form .glass-modal-container .form-section.content-section.glass-card,
.glass-modal-container .supplier-modal .ui-form .form-section.content-section.glass-card,
.supplier-modal .ui-form .glass-modal-container .form-section.timeline-card.glass-card,
.glass-modal-container .supplier-modal .ui-form .form-section.timeline-card.glass-card,
.supplier-modal .ui-form .glass-modal-container .form-section.entry-section.glass-card,
.glass-modal-container .supplier-modal .ui-form .form-section.entry-section.glass-card,
.supplier-modal .ui-form .glass-modal-container .form-section.attachments.glass-card,
.glass-modal-container .supplier-modal .ui-form .form-section.attachments.glass-card,
.supplier-modal .ui-form .glass-modal-container .form-section.summary-card.glass-card,
.glass-modal-container .supplier-modal .ui-form .form-section.summary-card.glass-card,
.supplier-modal .ui-form .glass-modal-container .form-section.metric-card.glass-card,
.glass-modal-container .supplier-modal .ui-form .form-section.metric-card.glass-card,
.supplier-modal .ui-form .glass-modal-container .form-section.review-card.glass-card,
.glass-modal-container .supplier-modal .ui-form .form-section.review-card.glass-card,
.supplier-modal .ui-form .glass-modal-container .form-section.config-section.glass-card,
.glass-modal-container .supplier-modal .ui-form .form-section.config-section.glass-card,
.supplier-modal .ui-form .glass-modal-container .form-section.panel-card.glass-card,
.glass-modal-container .supplier-modal .ui-form .form-section.panel-card.glass-card,
.supplier-modal .ui-form .glass-modal-container .form-section.ui-card.glass-panel,
.glass-modal-container .supplier-modal .ui-form .form-section.ui-card.glass-panel,
.supplier-modal .ui-form .glass-modal-container .form-section.glass-card.glass-panel,
.glass-modal-container .supplier-modal .ui-form .form-section.glass-card.glass-panel,
.supplier-modal .ui-form .glass-modal-container .form-section.glass-panel,
.glass-modal-container .supplier-modal .ui-form .form-section.glass-panel,
.supplier-modal .ui-form .glass-modal-container .form-section.fd-glass.glass-panel,
.glass-modal-container .supplier-modal .ui-form .form-section.fd-glass.glass-panel,
.supplier-modal .ui-form .glass-modal-container .form-section.section-card.glass-panel,
.glass-modal-container .supplier-modal .ui-form .form-section.section-card.glass-panel,
.supplier-modal .ui-form .glass-modal-container .form-section.content-section.glass-panel,
.glass-modal-container .supplier-modal .ui-form .form-section.content-section.glass-panel,
.supplier-modal .ui-form .glass-modal-container .form-section.timeline-card.glass-panel,
.glass-modal-container .supplier-modal .ui-form .form-section.timeline-card.glass-panel,
.supplier-modal .ui-form .glass-modal-container .form-section.entry-section.glass-panel,
.glass-modal-container .supplier-modal .ui-form .form-section.entry-section.glass-panel,
.supplier-modal .ui-form .glass-modal-container .form-section.attachments.glass-panel,
.glass-modal-container .supplier-modal .ui-form .form-section.attachments.glass-panel,
.supplier-modal .ui-form .glass-modal-container .form-section.summary-card.glass-panel,
.glass-modal-container .supplier-modal .ui-form .form-section.summary-card.glass-panel,
.supplier-modal .ui-form .glass-modal-container .form-section.metric-card.glass-panel,
.glass-modal-container .supplier-modal .ui-form .form-section.metric-card.glass-panel,
.supplier-modal .ui-form .glass-modal-container .form-section.review-card.glass-panel,
.glass-modal-container .supplier-modal .ui-form .form-section.review-card.glass-panel,
.supplier-modal .ui-form .glass-modal-container .form-section.config-section.glass-panel,
.glass-modal-container .supplier-modal .ui-form .form-section.config-section.glass-panel,
.supplier-modal .ui-form .glass-modal-container .form-section.panel-card.glass-panel,
.glass-modal-container .supplier-modal .ui-form .form-section.panel-card.glass-panel,
.supplier-modal .ui-form .glass-modal-container .form-section.ui-card.fd-glass,
.glass-modal-container .supplier-modal .ui-form .form-section.ui-card.fd-glass,
.supplier-modal .ui-form .glass-modal-container .form-section.glass-card.fd-glass,
.glass-modal-container .supplier-modal .ui-form .form-section.glass-card.fd-glass,
.supplier-modal .ui-form .glass-modal-container .form-section.glass-panel.fd-glass,
.glass-modal-container .supplier-modal .ui-form .form-section.glass-panel.fd-glass,
.supplier-modal .ui-form .glass-modal-container .form-section.fd-glass,
.glass-modal-container .supplier-modal .ui-form .form-section.fd-glass,
.supplier-modal .ui-form .glass-modal-container .form-section.section-card.fd-glass,
.glass-modal-container .supplier-modal .ui-form .form-section.section-card.fd-glass,
.supplier-modal .ui-form .glass-modal-container .form-section.content-section.fd-glass,
.glass-modal-container .supplier-modal .ui-form .form-section.content-section.fd-glass,
.supplier-modal .ui-form .glass-modal-container .form-section.timeline-card.fd-glass,
.glass-modal-container .supplier-modal .ui-form .form-section.timeline-card.fd-glass,
.supplier-modal .ui-form .glass-modal-container .form-section.entry-section.fd-glass,
.glass-modal-container .supplier-modal .ui-form .form-section.entry-section.fd-glass,
.supplier-modal .ui-form .glass-modal-container .form-section.attachments.fd-glass,
.glass-modal-container .supplier-modal .ui-form .form-section.attachments.fd-glass,
.supplier-modal .ui-form .glass-modal-container .form-section.summary-card.fd-glass,
.glass-modal-container .supplier-modal .ui-form .form-section.summary-card.fd-glass,
.supplier-modal .ui-form .glass-modal-container .form-section.metric-card.fd-glass,
.glass-modal-container .supplier-modal .ui-form .form-section.metric-card.fd-glass,
.supplier-modal .ui-form .glass-modal-container .form-section.review-card.fd-glass,
.glass-modal-container .supplier-modal .ui-form .form-section.review-card.fd-glass,
.supplier-modal .ui-form .glass-modal-container .form-section.config-section.fd-glass,
.glass-modal-container .supplier-modal .ui-form .form-section.config-section.fd-glass,
.supplier-modal .ui-form .glass-modal-container .form-section.panel-card.fd-glass,
.glass-modal-container .supplier-modal .ui-form .form-section.panel-card.fd-glass,
.supplier-modal .ui-form .glass-modal-container .form-section.ui-card.section-card,
.glass-modal-container .supplier-modal .ui-form .form-section.ui-card.section-card,
.supplier-modal .ui-form .glass-modal-container .form-section.glass-card.section-card,
.glass-modal-container .supplier-modal .ui-form .form-section.glass-card.section-card,
.supplier-modal .ui-form .glass-modal-container .form-section.glass-panel.section-card,
.glass-modal-container .supplier-modal .ui-form .form-section.glass-panel.section-card,
.supplier-modal .ui-form .glass-modal-container .form-section.fd-glass.section-card,
.glass-modal-container .supplier-modal .ui-form .form-section.fd-glass.section-card,
.supplier-modal .ui-form .glass-modal-container .form-section.section-card,
.glass-modal-container .supplier-modal .ui-form .form-section.section-card,
.supplier-modal .ui-form .glass-modal-container .form-section.content-section.section-card,
.glass-modal-container .supplier-modal .ui-form .form-section.content-section.section-card,
.supplier-modal .ui-form .glass-modal-container .form-section.timeline-card.section-card,
.glass-modal-container .supplier-modal .ui-form .form-section.timeline-card.section-card,
.supplier-modal .ui-form .glass-modal-container .form-section.entry-section.section-card,
.glass-modal-container .supplier-modal .ui-form .form-section.entry-section.section-card,
.supplier-modal .ui-form .glass-modal-container .form-section.attachments.section-card,
.glass-modal-container .supplier-modal .ui-form .form-section.attachments.section-card,
.supplier-modal .ui-form .glass-modal-container .form-section.summary-card.section-card,
.glass-modal-container .supplier-modal .ui-form .form-section.summary-card.section-card,
.supplier-modal .ui-form .glass-modal-container .form-section.metric-card.section-card,
.glass-modal-container .supplier-modal .ui-form .form-section.metric-card.section-card,
.supplier-modal .ui-form .glass-modal-container .form-section.review-card.section-card,
.glass-modal-container .supplier-modal .ui-form .form-section.review-card.section-card,
.supplier-modal .ui-form .glass-modal-container .form-section.config-section.section-card,
.glass-modal-container .supplier-modal .ui-form .form-section.config-section.section-card,
.supplier-modal .ui-form .glass-modal-container .form-section.panel-card.section-card,
.glass-modal-container .supplier-modal .ui-form .form-section.panel-card.section-card,
.supplier-modal .ui-form .glass-modal-container .form-section.ui-card.content-section,
.glass-modal-container .supplier-modal .ui-form .form-section.ui-card.content-section,
.supplier-modal .ui-form .glass-modal-container .form-section.glass-card.content-section,
.glass-modal-container .supplier-modal .ui-form .form-section.glass-card.content-section,
.supplier-modal .ui-form .glass-modal-container .form-section.glass-panel.content-section,
.glass-modal-container .supplier-modal .ui-form .form-section.glass-panel.content-section,
.supplier-modal .ui-form .glass-modal-container .form-section.fd-glass.content-section,
.glass-modal-container .supplier-modal .ui-form .form-section.fd-glass.content-section,
.supplier-modal .ui-form .glass-modal-container .form-section.section-card.content-section,
.glass-modal-container .supplier-modal .ui-form .form-section.section-card.content-section,
.supplier-modal .ui-form .glass-modal-container .form-section.content-section,
.glass-modal-container .supplier-modal .ui-form .form-section.content-section,
.supplier-modal .ui-form .glass-modal-container .form-section.timeline-card.content-section,
.glass-modal-container .supplier-modal .ui-form .form-section.timeline-card.content-section,
.supplier-modal .ui-form .glass-modal-container .form-section.entry-section.content-section,
.glass-modal-container .supplier-modal .ui-form .form-section.entry-section.content-section,
.supplier-modal .ui-form .glass-modal-container .form-section.attachments.content-section,
.glass-modal-container .supplier-modal .ui-form .form-section.attachments.content-section,
.supplier-modal .ui-form .glass-modal-container .form-section.summary-card.content-section,
.glass-modal-container .supplier-modal .ui-form .form-section.summary-card.content-section,
.supplier-modal .ui-form .glass-modal-container .form-section.metric-card.content-section,
.glass-modal-container .supplier-modal .ui-form .form-section.metric-card.content-section,
.supplier-modal .ui-form .glass-modal-container .form-section.review-card.content-section,
.glass-modal-container .supplier-modal .ui-form .form-section.review-card.content-section,
.supplier-modal .ui-form .glass-modal-container .form-section.config-section.content-section,
.glass-modal-container .supplier-modal .ui-form .form-section.config-section.content-section,
.supplier-modal .ui-form .glass-modal-container .form-section.panel-card.content-section,
.glass-modal-container .supplier-modal .ui-form .form-section.panel-card.content-section,
.supplier-modal .ui-form .glass-modal-container .form-section.ui-card.timeline-card,
.glass-modal-container .supplier-modal .ui-form .form-section.ui-card.timeline-card,
.supplier-modal .ui-form .glass-modal-container .form-section.glass-card.timeline-card,
.glass-modal-container .supplier-modal .ui-form .form-section.glass-card.timeline-card,
.supplier-modal .ui-form .glass-modal-container .form-section.glass-panel.timeline-card,
.glass-modal-container .supplier-modal .ui-form .form-section.glass-panel.timeline-card,
.supplier-modal .ui-form .glass-modal-container .form-section.fd-glass.timeline-card,
.glass-modal-container .supplier-modal .ui-form .form-section.fd-glass.timeline-card,
.supplier-modal .ui-form .glass-modal-container .form-section.section-card.timeline-card,
.glass-modal-container .supplier-modal .ui-form .form-section.section-card.timeline-card,
.supplier-modal .ui-form .glass-modal-container .form-section.content-section.timeline-card,
.glass-modal-container .supplier-modal .ui-form .form-section.content-section.timeline-card,
.supplier-modal .ui-form .glass-modal-container .form-section.timeline-card,
.glass-modal-container .supplier-modal .ui-form .form-section.timeline-card,
.supplier-modal .ui-form .glass-modal-container .form-section.entry-section.timeline-card,
.glass-modal-container .supplier-modal .ui-form .form-section.entry-section.timeline-card,
.supplier-modal .ui-form .glass-modal-container .form-section.attachments.timeline-card,
.glass-modal-container .supplier-modal .ui-form .form-section.attachments.timeline-card,
.supplier-modal .ui-form .glass-modal-container .form-section.summary-card.timeline-card,
.glass-modal-container .supplier-modal .ui-form .form-section.summary-card.timeline-card,
.supplier-modal .ui-form .glass-modal-container .form-section.metric-card.timeline-card,
.glass-modal-container .supplier-modal .ui-form .form-section.metric-card.timeline-card,
.supplier-modal .ui-form .glass-modal-container .form-section.review-card.timeline-card,
.glass-modal-container .supplier-modal .ui-form .form-section.review-card.timeline-card,
.supplier-modal .ui-form .glass-modal-container .form-section.config-section.timeline-card,
.glass-modal-container .supplier-modal .ui-form .form-section.config-section.timeline-card,
.supplier-modal .ui-form .glass-modal-container .form-section.panel-card.timeline-card,
.glass-modal-container .supplier-modal .ui-form .form-section.panel-card.timeline-card,
.supplier-modal .ui-form .glass-modal-container .form-section.ui-card.entry-section,
.glass-modal-container .supplier-modal .ui-form .form-section.ui-card.entry-section,
.supplier-modal .ui-form .glass-modal-container .form-section.glass-card.entry-section,
.glass-modal-container .supplier-modal .ui-form .form-section.glass-card.entry-section,
.supplier-modal .ui-form .glass-modal-container .form-section.glass-panel.entry-section,
.glass-modal-container .supplier-modal .ui-form .form-section.glass-panel.entry-section,
.supplier-modal .ui-form .glass-modal-container .form-section.fd-glass.entry-section,
.glass-modal-container .supplier-modal .ui-form .form-section.fd-glass.entry-section,
.supplier-modal .ui-form .glass-modal-container .form-section.section-card.entry-section,
.glass-modal-container .supplier-modal .ui-form .form-section.section-card.entry-section,
.supplier-modal .ui-form .glass-modal-container .form-section.content-section.entry-section,
.glass-modal-container .supplier-modal .ui-form .form-section.content-section.entry-section,
.supplier-modal .ui-form .glass-modal-container .form-section.timeline-card.entry-section,
.glass-modal-container .supplier-modal .ui-form .form-section.timeline-card.entry-section,
.supplier-modal .ui-form .glass-modal-container .form-section.entry-section,
.glass-modal-container .supplier-modal .ui-form .form-section.entry-section,
.supplier-modal .ui-form .glass-modal-container .form-section.attachments.entry-section,
.glass-modal-container .supplier-modal .ui-form .form-section.attachments.entry-section,
.supplier-modal .ui-form .glass-modal-container .form-section.summary-card.entry-section,
.glass-modal-container .supplier-modal .ui-form .form-section.summary-card.entry-section,
.supplier-modal .ui-form .glass-modal-container .form-section.metric-card.entry-section,
.glass-modal-container .supplier-modal .ui-form .form-section.metric-card.entry-section,
.supplier-modal .ui-form .glass-modal-container .form-section.review-card.entry-section,
.glass-modal-container .supplier-modal .ui-form .form-section.review-card.entry-section,
.supplier-modal .ui-form .glass-modal-container .form-section.config-section.entry-section,
.glass-modal-container .supplier-modal .ui-form .form-section.config-section.entry-section,
.supplier-modal .ui-form .glass-modal-container .form-section.panel-card.entry-section,
.glass-modal-container .supplier-modal .ui-form .form-section.panel-card.entry-section,
.supplier-modal .ui-form .glass-modal-container .form-section.ui-card.attachments,
.glass-modal-container .supplier-modal .ui-form .form-section.ui-card.attachments,
.supplier-modal .ui-form .glass-modal-container .form-section.glass-card.attachments,
.glass-modal-container .supplier-modal .ui-form .form-section.glass-card.attachments,
.supplier-modal .ui-form .glass-modal-container .form-section.glass-panel.attachments,
.glass-modal-container .supplier-modal .ui-form .form-section.glass-panel.attachments,
.supplier-modal .ui-form .glass-modal-container .form-section.fd-glass.attachments,
.glass-modal-container .supplier-modal .ui-form .form-section.fd-glass.attachments,
.supplier-modal .ui-form .glass-modal-container .form-section.section-card.attachments,
.glass-modal-container .supplier-modal .ui-form .form-section.section-card.attachments,
.supplier-modal .ui-form .glass-modal-container .form-section.content-section.attachments,
.glass-modal-container .supplier-modal .ui-form .form-section.content-section.attachments,
.supplier-modal .ui-form .glass-modal-container .form-section.timeline-card.attachments,
.glass-modal-container .supplier-modal .ui-form .form-section.timeline-card.attachments,
.supplier-modal .ui-form .glass-modal-container .form-section.entry-section.attachments,
.glass-modal-container .supplier-modal .ui-form .form-section.entry-section.attachments,
.supplier-modal .ui-form .glass-modal-container .form-section.attachments,
.glass-modal-container .supplier-modal .ui-form .form-section.attachments,
.supplier-modal .ui-form .glass-modal-container .form-section.summary-card.attachments,
.glass-modal-container .supplier-modal .ui-form .form-section.summary-card.attachments,
.supplier-modal .ui-form .glass-modal-container .form-section.metric-card.attachments,
.glass-modal-container .supplier-modal .ui-form .form-section.metric-card.attachments,
.supplier-modal .ui-form .glass-modal-container .form-section.review-card.attachments,
.glass-modal-container .supplier-modal .ui-form .form-section.review-card.attachments,
.supplier-modal .ui-form .glass-modal-container .form-section.config-section.attachments,
.glass-modal-container .supplier-modal .ui-form .form-section.config-section.attachments,
.supplier-modal .ui-form .glass-modal-container .form-section.panel-card.attachments,
.glass-modal-container .supplier-modal .ui-form .form-section.panel-card.attachments,
.supplier-modal .ui-form .glass-modal-container .form-section.ui-card.summary-card,
.glass-modal-container .supplier-modal .ui-form .form-section.ui-card.summary-card,
.supplier-modal .ui-form .glass-modal-container .form-section.glass-card.summary-card,
.glass-modal-container .supplier-modal .ui-form .form-section.glass-card.summary-card,
.supplier-modal .ui-form .glass-modal-container .form-section.glass-panel.summary-card,
.glass-modal-container .supplier-modal .ui-form .form-section.glass-panel.summary-card,
.supplier-modal .ui-form .glass-modal-container .form-section.fd-glass.summary-card,
.glass-modal-container .supplier-modal .ui-form .form-section.fd-glass.summary-card,
.supplier-modal .ui-form .glass-modal-container .form-section.section-card.summary-card,
.glass-modal-container .supplier-modal .ui-form .form-section.section-card.summary-card,
.supplier-modal .ui-form .glass-modal-container .form-section.content-section.summary-card,
.glass-modal-container .supplier-modal .ui-form .form-section.content-section.summary-card,
.supplier-modal .ui-form .glass-modal-container .form-section.timeline-card.summary-card,
.glass-modal-container .supplier-modal .ui-form .form-section.timeline-card.summary-card,
.supplier-modal .ui-form .glass-modal-container .form-section.entry-section.summary-card,
.glass-modal-container .supplier-modal .ui-form .form-section.entry-section.summary-card,
.supplier-modal .ui-form .glass-modal-container .form-section.attachments.summary-card,
.glass-modal-container .supplier-modal .ui-form .form-section.attachments.summary-card,
.supplier-modal .ui-form .glass-modal-container .form-section.summary-card,
.glass-modal-container .supplier-modal .ui-form .form-section.summary-card,
.supplier-modal .ui-form .glass-modal-container .form-section.metric-card.summary-card,
.glass-modal-container .supplier-modal .ui-form .form-section.metric-card.summary-card,
.supplier-modal .ui-form .glass-modal-container .form-section.review-card.summary-card,
.glass-modal-container .supplier-modal .ui-form .form-section.review-card.summary-card,
.supplier-modal .ui-form .glass-modal-container .form-section.config-section.summary-card,
.glass-modal-container .supplier-modal .ui-form .form-section.config-section.summary-card,
.supplier-modal .ui-form .glass-modal-container .form-section.panel-card.summary-card,
.glass-modal-container .supplier-modal .ui-form .form-section.panel-card.summary-card,
.supplier-modal .ui-form .glass-modal-container .form-section.ui-card.metric-card,
.glass-modal-container .supplier-modal .ui-form .form-section.ui-card.metric-card,
.supplier-modal .ui-form .glass-modal-container .form-section.glass-card.metric-card,
.glass-modal-container .supplier-modal .ui-form .form-section.glass-card.metric-card,
.supplier-modal .ui-form .glass-modal-container .form-section.glass-panel.metric-card,
.glass-modal-container .supplier-modal .ui-form .form-section.glass-panel.metric-card,
.supplier-modal .ui-form .glass-modal-container .form-section.fd-glass.metric-card,
.glass-modal-container .supplier-modal .ui-form .form-section.fd-glass.metric-card,
.supplier-modal .ui-form .glass-modal-container .form-section.section-card.metric-card,
.glass-modal-container .supplier-modal .ui-form .form-section.section-card.metric-card,
.supplier-modal .ui-form .glass-modal-container .form-section.content-section.metric-card,
.glass-modal-container .supplier-modal .ui-form .form-section.content-section.metric-card,
.supplier-modal .ui-form .glass-modal-container .form-section.timeline-card.metric-card,
.glass-modal-container .supplier-modal .ui-form .form-section.timeline-card.metric-card,
.supplier-modal .ui-form .glass-modal-container .form-section.entry-section.metric-card,
.glass-modal-container .supplier-modal .ui-form .form-section.entry-section.metric-card,
.supplier-modal .ui-form .glass-modal-container .form-section.attachments.metric-card,
.glass-modal-container .supplier-modal .ui-form .form-section.attachments.metric-card,
.supplier-modal .ui-form .glass-modal-container .form-section.summary-card.metric-card,
.glass-modal-container .supplier-modal .ui-form .form-section.summary-card.metric-card,
.supplier-modal .ui-form .glass-modal-container .form-section.metric-card,
.glass-modal-container .supplier-modal .ui-form .form-section.metric-card,
.supplier-modal .ui-form .glass-modal-container .form-section.review-card.metric-card,
.glass-modal-container .supplier-modal .ui-form .form-section.review-card.metric-card,
.supplier-modal .ui-form .glass-modal-container .form-section.config-section.metric-card,
.glass-modal-container .supplier-modal .ui-form .form-section.config-section.metric-card,
.supplier-modal .ui-form .glass-modal-container .form-section.panel-card.metric-card,
.glass-modal-container .supplier-modal .ui-form .form-section.panel-card.metric-card,
.supplier-modal .ui-form .glass-modal-container .form-section.ui-card.review-card,
.glass-modal-container .supplier-modal .ui-form .form-section.ui-card.review-card,
.supplier-modal .ui-form .glass-modal-container .form-section.glass-card.review-card,
.glass-modal-container .supplier-modal .ui-form .form-section.glass-card.review-card,
.supplier-modal .ui-form .glass-modal-container .form-section.glass-panel.review-card,
.glass-modal-container .supplier-modal .ui-form .form-section.glass-panel.review-card,
.supplier-modal .ui-form .glass-modal-container .form-section.fd-glass.review-card,
.glass-modal-container .supplier-modal .ui-form .form-section.fd-glass.review-card,
.supplier-modal .ui-form .glass-modal-container .form-section.section-card.review-card,
.glass-modal-container .supplier-modal .ui-form .form-section.section-card.review-card,
.supplier-modal .ui-form .glass-modal-container .form-section.content-section.review-card,
.glass-modal-container .supplier-modal .ui-form .form-section.content-section.review-card,
.supplier-modal .ui-form .glass-modal-container .form-section.timeline-card.review-card,
.glass-modal-container .supplier-modal .ui-form .form-section.timeline-card.review-card,
.supplier-modal .ui-form .glass-modal-container .form-section.entry-section.review-card,
.glass-modal-container .supplier-modal .ui-form .form-section.entry-section.review-card,
.supplier-modal .ui-form .glass-modal-container .form-section.attachments.review-card,
.glass-modal-container .supplier-modal .ui-form .form-section.attachments.review-card,
.supplier-modal .ui-form .glass-modal-container .form-section.summary-card.review-card,
.glass-modal-container .supplier-modal .ui-form .form-section.summary-card.review-card,
.supplier-modal .ui-form .glass-modal-container .form-section.metric-card.review-card,
.glass-modal-container .supplier-modal .ui-form .form-section.metric-card.review-card,
.supplier-modal .ui-form .glass-modal-container .form-section.review-card,
.glass-modal-container .supplier-modal .ui-form .form-section.review-card,
.supplier-modal .ui-form .glass-modal-container .form-section.config-section.review-card,
.glass-modal-container .supplier-modal .ui-form .form-section.config-section.review-card,
.supplier-modal .ui-form .glass-modal-container .form-section.panel-card.review-card,
.glass-modal-container .supplier-modal .ui-form .form-section.panel-card.review-card,
.supplier-modal .ui-form .glass-modal-container .form-section.ui-card.config-section,
.glass-modal-container .supplier-modal .ui-form .form-section.ui-card.config-section,
.supplier-modal .ui-form .glass-modal-container .form-section.glass-card.config-section,
.glass-modal-container .supplier-modal .ui-form .form-section.glass-card.config-section,
.supplier-modal .ui-form .glass-modal-container .form-section.glass-panel.config-section,
.glass-modal-container .supplier-modal .ui-form .form-section.glass-panel.config-section,
.supplier-modal .ui-form .glass-modal-container .form-section.fd-glass.config-section,
.glass-modal-container .supplier-modal .ui-form .form-section.fd-glass.config-section,
.supplier-modal .ui-form .glass-modal-container .form-section.section-card.config-section,
.glass-modal-container .supplier-modal .ui-form .form-section.section-card.config-section,
.supplier-modal .ui-form .glass-modal-container .form-section.content-section.config-section,
.glass-modal-container .supplier-modal .ui-form .form-section.content-section.config-section,
.supplier-modal .ui-form .glass-modal-container .form-section.timeline-card.config-section,
.glass-modal-container .supplier-modal .ui-form .form-section.timeline-card.config-section,
.supplier-modal .ui-form .glass-modal-container .form-section.entry-section.config-section,
.glass-modal-container .supplier-modal .ui-form .form-section.entry-section.config-section,
.supplier-modal .ui-form .glass-modal-container .form-section.attachments.config-section,
.glass-modal-container .supplier-modal .ui-form .form-section.attachments.config-section,
.supplier-modal .ui-form .glass-modal-container .form-section.summary-card.config-section,
.glass-modal-container .supplier-modal .ui-form .form-section.summary-card.config-section,
.supplier-modal .ui-form .glass-modal-container .form-section.metric-card.config-section,
.glass-modal-container .supplier-modal .ui-form .form-section.metric-card.config-section,
.supplier-modal .ui-form .glass-modal-container .form-section.review-card.config-section,
.glass-modal-container .supplier-modal .ui-form .form-section.review-card.config-section,
.supplier-modal .ui-form .glass-modal-container .form-section.config-section,
.glass-modal-container .supplier-modal .ui-form .form-section.config-section,
.supplier-modal .ui-form .glass-modal-container .form-section.panel-card.config-section,
.glass-modal-container .supplier-modal .ui-form .form-section.panel-card.config-section,
.supplier-modal .ui-form .glass-modal-container .form-section.ui-card.panel-card,
.glass-modal-container .supplier-modal .ui-form .form-section.ui-card.panel-card,
.supplier-modal .ui-form .glass-modal-container .form-section.glass-card.panel-card,
.glass-modal-container .supplier-modal .ui-form .form-section.glass-card.panel-card,
.supplier-modal .ui-form .glass-modal-container .form-section.glass-panel.panel-card,
.glass-modal-container .supplier-modal .ui-form .form-section.glass-panel.panel-card,
.supplier-modal .ui-form .glass-modal-container .form-section.fd-glass.panel-card,
.glass-modal-container .supplier-modal .ui-form .form-section.fd-glass.panel-card,
.supplier-modal .ui-form .glass-modal-container .form-section.section-card.panel-card,
.glass-modal-container .supplier-modal .ui-form .form-section.section-card.panel-card,
.supplier-modal .ui-form .glass-modal-container .form-section.content-section.panel-card,
.glass-modal-container .supplier-modal .ui-form .form-section.content-section.panel-card,
.supplier-modal .ui-form .glass-modal-container .form-section.timeline-card.panel-card,
.glass-modal-container .supplier-modal .ui-form .form-section.timeline-card.panel-card,
.supplier-modal .ui-form .glass-modal-container .form-section.entry-section.panel-card,
.glass-modal-container .supplier-modal .ui-form .form-section.entry-section.panel-card,
.supplier-modal .ui-form .glass-modal-container .form-section.attachments.panel-card,
.glass-modal-container .supplier-modal .ui-form .form-section.attachments.panel-card,
.supplier-modal .ui-form .glass-modal-container .form-section.summary-card.panel-card,
.glass-modal-container .supplier-modal .ui-form .form-section.summary-card.panel-card,
.supplier-modal .ui-form .glass-modal-container .form-section.metric-card.panel-card,
.glass-modal-container .supplier-modal .ui-form .form-section.metric-card.panel-card,
.supplier-modal .ui-form .glass-modal-container .form-section.review-card.panel-card,
.glass-modal-container .supplier-modal .ui-form .form-section.review-card.panel-card,
.supplier-modal .ui-form .glass-modal-container .form-section.config-section.panel-card,
.glass-modal-container .supplier-modal .ui-form .form-section.config-section.panel-card,
.supplier-modal .ui-form .glass-modal-container .form-section.panel-card,
.glass-modal-container .supplier-modal .ui-form .form-section.panel-card {
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-radius: var(--ui-radius-xl);
  padding: var(--ui-space-5) var(--ui-space-6);
}

.supplier-modal .glass-modal-footer {
  flex: 0 0 auto;
  padding: 16px 24px 20px;
}

.supplier-modal .glass-modal-footer .btn-cancel,
.supplier-modal .glass-modal-footer .btn-create {
  margin: 0;
}

@media (max-width: 1100px) {
  .supplier-modal .supplier-modal__body > .glass-field-row {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 768px) {
  .supplier-modal .supplier-modal__body {
    padding: 16px 18px 18px;
  }
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__body {
    padding: 0 !important;
  }
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections {
    gap: var(--ui-space-4);
    padding: var(--ui-space-4);
  }
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__body > .supplier-modal__sections:last-child {
    padding: var(--ui-space-4) !important;
  }
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.ui-card--subtle, .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card--subtle.glass-card, .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card--subtle.glass-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card--subtle.glass-panel,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card--subtle.glass-panel,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card--subtle.fd-glass,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card--subtle.fd-glass,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card--subtle.section-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card--subtle.section-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card--subtle.content-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card--subtle.content-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card--subtle.timeline-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card--subtle.timeline-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card--subtle.entry-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card--subtle.entry-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card--subtle.attachments,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card--subtle.attachments,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card--subtle.summary-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card--subtle.summary-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card--subtle.metric-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card--subtle.metric-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card--subtle.review-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card--subtle.review-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card--subtle.config-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card--subtle.config-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card--subtle.panel-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card--subtle.panel-card, .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card.glass-card, .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.glass-card, .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-card, .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-panel.glass-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-panel.glass-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .fd-glass.glass-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .fd-glass.glass-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .section-card.glass-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .section-card.glass-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .content-section.glass-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .content-section.glass-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .timeline-card.glass-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .timeline-card.glass-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .entry-section.glass-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .entry-section.glass-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .attachments.glass-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .attachments.glass-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .summary-card.glass-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .summary-card.glass-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .metric-card.glass-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .metric-card.glass-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .review-card.glass-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .review-card.glass-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .config-section.glass-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .config-section.glass-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .panel-card.glass-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .panel-card.glass-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card.glass-panel,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.glass-panel,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-card.glass-panel,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-card.glass-panel,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-panel,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-panel,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .fd-glass.glass-panel,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .fd-glass.glass-panel,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .section-card.glass-panel,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .section-card.glass-panel,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .content-section.glass-panel,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .content-section.glass-panel,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .timeline-card.glass-panel,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .timeline-card.glass-panel,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .entry-section.glass-panel,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .entry-section.glass-panel,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .attachments.glass-panel,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .attachments.glass-panel,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .summary-card.glass-panel,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .summary-card.glass-panel,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .metric-card.glass-panel,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .metric-card.glass-panel,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .review-card.glass-panel,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .review-card.glass-panel,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .config-section.glass-panel,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .config-section.glass-panel,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .panel-card.glass-panel,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .panel-card.glass-panel,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card.fd-glass,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.fd-glass,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-card.fd-glass,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-card.fd-glass,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-panel.fd-glass,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-panel.fd-glass,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .fd-glass,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .fd-glass,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .section-card.fd-glass,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .section-card.fd-glass,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .content-section.fd-glass,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .content-section.fd-glass,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .timeline-card.fd-glass,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .timeline-card.fd-glass,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .entry-section.fd-glass,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .entry-section.fd-glass,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .attachments.fd-glass,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .attachments.fd-glass,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .summary-card.fd-glass,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .summary-card.fd-glass,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .metric-card.fd-glass,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .metric-card.fd-glass,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .review-card.fd-glass,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .review-card.fd-glass,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .config-section.fd-glass,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .config-section.fd-glass,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .panel-card.fd-glass,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .panel-card.fd-glass,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card.section-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.section-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-card.section-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-card.section-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-panel.section-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-panel.section-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .fd-glass.section-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .fd-glass.section-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .section-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .section-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .content-section.section-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .content-section.section-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .timeline-card.section-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .timeline-card.section-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .entry-section.section-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .entry-section.section-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .attachments.section-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .attachments.section-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .summary-card.section-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .summary-card.section-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .metric-card.section-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .metric-card.section-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .review-card.section-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .review-card.section-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .config-section.section-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .config-section.section-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .panel-card.section-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .panel-card.section-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card.content-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.content-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-card.content-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-card.content-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-panel.content-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-panel.content-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .fd-glass.content-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .fd-glass.content-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .section-card.content-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .section-card.content-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .content-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .content-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .timeline-card.content-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .timeline-card.content-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .entry-section.content-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .entry-section.content-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .attachments.content-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .attachments.content-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .summary-card.content-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .summary-card.content-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .metric-card.content-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .metric-card.content-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .review-card.content-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .review-card.content-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .config-section.content-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .config-section.content-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .panel-card.content-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .panel-card.content-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card.timeline-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.timeline-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-card.timeline-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-card.timeline-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-panel.timeline-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-panel.timeline-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .fd-glass.timeline-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .fd-glass.timeline-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .section-card.timeline-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .section-card.timeline-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .content-section.timeline-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .content-section.timeline-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .timeline-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .timeline-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .entry-section.timeline-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .entry-section.timeline-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .attachments.timeline-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .attachments.timeline-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .summary-card.timeline-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .summary-card.timeline-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .metric-card.timeline-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .metric-card.timeline-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .review-card.timeline-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .review-card.timeline-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .config-section.timeline-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .config-section.timeline-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .panel-card.timeline-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .panel-card.timeline-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card.entry-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.entry-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-card.entry-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-card.entry-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-panel.entry-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-panel.entry-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .fd-glass.entry-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .fd-glass.entry-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .section-card.entry-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .section-card.entry-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .content-section.entry-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .content-section.entry-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .timeline-card.entry-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .timeline-card.entry-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .entry-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .entry-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .attachments.entry-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .attachments.entry-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .summary-card.entry-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .summary-card.entry-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .metric-card.entry-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .metric-card.entry-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .review-card.entry-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .review-card.entry-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .config-section.entry-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .config-section.entry-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .panel-card.entry-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .panel-card.entry-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card.attachments,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.attachments,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-card.attachments,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-card.attachments,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-panel.attachments,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-panel.attachments,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .fd-glass.attachments,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .fd-glass.attachments,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .section-card.attachments,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .section-card.attachments,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .content-section.attachments,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .content-section.attachments,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .timeline-card.attachments,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .timeline-card.attachments,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .entry-section.attachments,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .entry-section.attachments,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .attachments,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .attachments,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .summary-card.attachments,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .summary-card.attachments,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .metric-card.attachments,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .metric-card.attachments,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .review-card.attachments,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .review-card.attachments,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .config-section.attachments,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .config-section.attachments,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .panel-card.attachments,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .panel-card.attachments,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card.summary-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.summary-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-card.summary-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-card.summary-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-panel.summary-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-panel.summary-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .fd-glass.summary-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .fd-glass.summary-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .section-card.summary-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .section-card.summary-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .content-section.summary-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .content-section.summary-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .timeline-card.summary-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .timeline-card.summary-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .entry-section.summary-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .entry-section.summary-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .attachments.summary-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .attachments.summary-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .summary-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .summary-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .metric-card.summary-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .metric-card.summary-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .review-card.summary-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .review-card.summary-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .config-section.summary-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .config-section.summary-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .panel-card.summary-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .panel-card.summary-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card.metric-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.metric-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-card.metric-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-card.metric-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-panel.metric-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-panel.metric-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .fd-glass.metric-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .fd-glass.metric-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .section-card.metric-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .section-card.metric-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .content-section.metric-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .content-section.metric-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .timeline-card.metric-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .timeline-card.metric-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .entry-section.metric-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .entry-section.metric-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .attachments.metric-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .attachments.metric-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .summary-card.metric-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .summary-card.metric-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .metric-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .metric-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .review-card.metric-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .review-card.metric-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .config-section.metric-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .config-section.metric-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .panel-card.metric-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .panel-card.metric-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card.review-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.review-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-card.review-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-card.review-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-panel.review-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-panel.review-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .fd-glass.review-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .fd-glass.review-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .section-card.review-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .section-card.review-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .content-section.review-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .content-section.review-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .timeline-card.review-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .timeline-card.review-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .entry-section.review-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .entry-section.review-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .attachments.review-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .attachments.review-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .summary-card.review-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .summary-card.review-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .metric-card.review-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .metric-card.review-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .review-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .review-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .config-section.review-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .config-section.review-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .panel-card.review-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .panel-card.review-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card.config-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.config-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-card.config-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-card.config-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-panel.config-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-panel.config-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .fd-glass.config-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .fd-glass.config-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .section-card.config-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .section-card.config-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .content-section.config-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .content-section.config-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .timeline-card.config-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .timeline-card.config-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .entry-section.config-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .entry-section.config-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .attachments.config-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .attachments.config-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .summary-card.config-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .summary-card.config-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .metric-card.config-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .metric-card.config-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .review-card.config-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .review-card.config-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .config-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .config-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .panel-card.config-section,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .panel-card.config-section,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .ui-card.panel-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .ui-card.panel-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-card.panel-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-card.panel-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .glass-panel.panel-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .glass-panel.panel-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .fd-glass.panel-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .fd-glass.panel-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .section-card.panel-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .section-card.panel-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .content-section.panel-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .content-section.panel-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .timeline-card.panel-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .timeline-card.panel-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .entry-section.panel-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .entry-section.panel-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .attachments.panel-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .attachments.panel-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .summary-card.panel-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .summary-card.panel-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .metric-card.panel-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .metric-card.panel-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .review-card.panel-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .review-card.panel-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .config-section.panel-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .config-section.panel-card,
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .glass-modal-container .supplier-modal__sections > .panel-card,
  .glass-modal-container .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .supplier-modal__sections > .panel-card {
    padding: var(--ui-space-4);
  }
  .cdk-overlay-pane.supplier-detail-modal-panel .supplier-modal .tab-content-container {
    gap: var(--ui-space-4);
    margin-top: var(--ui-space-4);
    padding: var(--ui-space-4);
  }
  .cdk-overlay-pane.supplier-detail-modal-panel {
    width: calc(100vw - var(--ui-space-4)) !important;
    max-width: calc(100vw - var(--ui-space-4)) !important;
  }
}
/* ==========================================================================
   SUPPLIER MODAL — Odoo-style Outstanding Smart Button
   Displays in the modal header title group: vendor name → status pill → smart btn
   Three tones: warning (payable owed), success (advance/credit), settled (zero)
   ========================================================================== */
.supplier-smart-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px 6px 8px;
  border-radius: 20px;
  border: 1px solid transparent;
  cursor: pointer;
  background: transparent;
  transition: background 140ms ease, border-color 140ms ease, transform 120ms ease, box-shadow 120ms ease;
  text-decoration: none;
  white-space: nowrap;
  position: relative;
  overflow: hidden;
  /* —— Tone: warning (payable owed — amber) */
  /* —— Tone: success (advance / overpayment — green) */
  /* —— Tone: settled (zero balance — muted) */
  /* —— Loading state */
}
.supplier-smart-btn:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.supplier-smart-btn:active:not(:disabled) {
  transform: translateY(0);
  box-shadow: none;
}
.supplier-smart-btn:disabled {
  cursor: not-allowed;
  opacity: 0.85;
}
.supplier-smart-btn .supplier-smart-btn__icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}
.supplier-smart-btn .supplier-smart-btn__body {
  display: flex;
  flex-direction: column;
  gap: 1px;
  text-align: left;
}
.supplier-smart-btn .supplier-smart-btn__label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1;
  opacity: 0.7;
}
.supplier-smart-btn .supplier-smart-btn__value {
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
}
.supplier-smart-btn .supplier-smart-btn__value--skeleton {
  display: inline-block;
  width: 72px;
  height: 13px;
  border-radius: 4px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.08) 25%, rgba(255, 255, 255, 0.18) 50%, rgba(255, 255, 255, 0.08) 75%);
  background-size: 200% 100%;
  animation: supplier-skeleton-pulse 1.4s infinite ease-in-out;
}
.supplier-smart-btn .supplier-smart-btn__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  border-radius: 10px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  flex-shrink: 0;
}
.supplier-smart-btn.supplier-smart-btn--warning {
  background: rgba(245, 158, 11, 0.12);
  border-color: rgba(245, 158, 11, 0.3);
  color: #f59e0b;
}
.supplier-smart-btn.supplier-smart-btn--warning:hover:not(:disabled) {
  background: rgba(245, 158, 11, 0.2);
  border-color: rgba(245, 158, 11, 0.5);
}
.supplier-smart-btn.supplier-smart-btn--warning .supplier-smart-btn__count {
  background: rgba(245, 158, 11, 0.2);
  color: #fbbf24;
}
.supplier-smart-btn.supplier-smart-btn--success {
  background: rgba(16, 185, 129, 0.1);
  border-color: rgba(16, 185, 129, 0.28);
  color: #10b981;
}
.supplier-smart-btn.supplier-smart-btn--success:hover:not(:disabled) {
  background: rgba(16, 185, 129, 0.18);
  border-color: rgba(16, 185, 129, 0.45);
}
.supplier-smart-btn.supplier-smart-btn--success .supplier-smart-btn__count {
  background: rgba(16, 185, 129, 0.18);
  color: #34d399;
}
.supplier-smart-btn.supplier-smart-btn--settled {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.1);
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.45));
  cursor: default;
}
.supplier-smart-btn.supplier-smart-btn--settled:hover:not(:disabled) {
  transform: none;
  box-shadow: none;
}
.supplier-smart-btn.supplier-smart-btn--settled .supplier-smart-btn__count {
  background: rgba(255, 255, 255, 0.08);
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.45));
}
.supplier-smart-btn.supplier-smart-btn--loading {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.35));
}

@keyframes supplier-skeleton-pulse {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
/* On mobile, hide the smart button label text to save space */
@media (max-width: 600px) {
  .supplier-smart-btn .supplier-smart-btn__label {
    display: none;
  }
  .supplier-smart-btn {
    padding: 5px 8px;
  }
}
/* ==========================================================================
   USER PACKAGE DETAILS MODAL
   Scoped dialog sizing and layout for account details / package details flows.
   ========================================================================== */
body .cdk-overlay-pane.user-package-details-dialog-panel {
  width: min(1040px, 94vw) !important;
  max-width: 94vw !important;
}

.cdk-global-overlay-wrapper:has(.user-package-details-dialog-panel) {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  padding: 16px !important;
}

.user-package-details-modal {
  display: flex;
  flex-direction: column;
  width: min(1040px, 94vw);
  max-width: 94vw;
  max-height: calc(100vh - 32px);
  min-height: 0;
  background: radial-gradient(circle at top right, rgba(255, 120, 72, 0.16), transparent 30%), radial-gradient(circle at bottom left, rgba(62, 180, 120, 0.1), transparent 28%), linear-gradient(180deg, rgba(28, 22, 20, 0.96), rgba(17, 15, 17, 0.98));
}

@supports (height: 100dvh) {
  .user-package-details-modal {
    max-height: calc(100dvh - 32px);
  }
}
.user-package-details-modal .ui-modal__header {
  align-items: flex-start;
  gap: var(--ui-space-4);
  padding: var(--ui-space-5) var(--ui-space-6);
  background: radial-gradient(circle at top right, rgba(255, 140, 90, 0.18), transparent 38%), linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
}

.user-package-details-modal .ui-modal__title-group {
  gap: 6px 12px;
}

.user-package-details-modal .ui-modal__title {
  font-size: clamp(1.5rem, 1.15rem + 1vw, 2rem);
}

.user-package-details-modal .ui-modal__body {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
  padding: var(--ui-space-6);
  overflow: auto;
  min-height: 0;
  background: radial-gradient(circle at 15% 0%, rgba(255, 140, 90, 0.08), transparent 24%), radial-gradient(circle at 100% 10%, rgba(74, 222, 128, 0.05), transparent 20%);
}

.user-package-details-modal .ui-card__description {
  max-width: 36ch;
}

.user-package-details__hero {
  gap: var(--ui-space-5);
  padding: var(--ui-space-6);
  border-radius: var(--ui-radius-2xl);
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02)), linear-gradient(120deg, rgba(255, 140, 90, 0.12), rgba(74, 222, 128, 0.04));
  border-color: rgba(255, 255, 255, 0.12);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.user-package-details__hero-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  flex-wrap: wrap;
}

.user-package-details__hero-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.08);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ui-text-secondary);
}

.user-package-details__hero-badge mat-icon {
  width: 14px;
  height: 14px;
  font-size: 14px;
  color: var(--ui-brand-light);
}

.user-package-details__hero-main {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(220px, 0.8fr);
  gap: var(--ui-space-5);
  align-items: end;
}

.user-package-details__eyebrow {
  margin: 0;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ui-brand-light);
}

.user-package-details__hero-title {
  margin: 0;
  font-size: clamp(1.6rem, 1.3rem + 0.9vw, 2.35rem);
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: var(--ui-text-primary);
}

.user-package-details__hero-copy {
  margin: 0;
  max-width: 56ch;
  font-size: 13px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.68);
}

.user-package-details__hero-value {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--ui-space-1);
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-xl);
  background: rgba(8, 8, 10, 0.28);
  border: 1px solid rgba(255, 255, 255, 0.08);
  min-width: 0;
}

.user-package-details__hero-value-label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ui-text-muted);
}

.user-package-details__hero-value-amount {
  font-size: clamp(1.8rem, 1.45rem + 1vw, 2.8rem);
  font-weight: var(--ui-font-bold);
  line-height: 1;
  letter-spacing: -0.04em;
  color: var(--ui-text-primary);
}

.user-package-details__stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--ui-space-3);
}

.user-package-details__stat {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-xl);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
  min-width: 0;
}

.user-package-details__stat-label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ui-text-muted);
}

.user-package-details__stat-value {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  letter-spacing: -0.01em;
}

.user-package-details__action-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-3);
}

.user-package-details__history-table {
  max-height: none;
}

.user-package-details__history-table .ui-table-scroll, .user-package-details__history-table .table-scroll, .user-package-details__history-table .glass-table-scroll {
  max-height: 340px;
}

.user-package-details__state {
  align-items: center;
  padding: var(--ui-space-8) 0;
}

.user-package-details__impact {
  gap: var(--ui-space-4);
  padding: var(--ui-space-5);
  border-radius: var(--ui-radius-2xl);
  background: linear-gradient(135deg, rgba(74, 222, 128, 0.12), rgba(74, 222, 128, 0.03)), rgba(255, 255, 255, 0.03);
  border-color: rgba(74, 222, 128, 0.24);
  box-shadow: inset 4px 0 0 var(--ui-success);
}

.user-package-details__impact-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
}

.user-package-details__impact-title {
  margin: 0;
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.user-package-details__impact-total {
  font-size: clamp(1.35rem, 1.1rem + 0.7vw, 2rem);
  font-weight: var(--ui-font-bold);
  letter-spacing: -0.03em;
  color: var(--ui-success);
}

.user-package-details__impact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-3);
}

.user-package-details__impact-item {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  min-width: 0;
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-lg);
  background: rgba(0, 0, 0, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.05);
}

.user-package-details__impact-label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ui-text-muted);
}

.user-package-details__impact-value {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.user-package-details__impact-value--success {
  color: var(--ui-success);
}

.user-package-details__section-title {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin-bottom: 0;
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.user-package-details__empty-card {
  border-style: dashed;
  background: rgba(255, 255, 255, 0.02);
}

.user-package-details__table-card {
  max-height: none;
  border-radius: var(--ui-radius-2xl);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02)), rgba(255, 255, 255, 0.02);
  border-color: rgba(255, 255, 255, 0.08);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.24);
}

.user-package-details__table-scroll {
  overflow-x: hidden;
}

.user-package-details__table {
  min-width: 100%;
}

.user-package-details__table thead {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.05));
}

.user-package-details__table th {
  color: rgba(255, 255, 255, 0.7);
}

.user-package-details__table tbody tr:nth-child(odd) {
  background: rgba(255, 255, 255, 0.02);
}

.user-package-details__table tbody tr:hover {
  background: rgba(255, 140, 90, 0.06);
}

.user-package-details__col-service {
  width: 42%;
}

.user-package-details__col-service-wide {
  width: 38%;
}

.user-package-details__col-category {
  width: 24%;
}

.user-package-details__col-amount {
  width: 18%;
}

.user-package-details__col-discount {
  width: 20%;
}

.user-package-details__col-total {
  width: 20%;
}

.user-package-details__table th,
.user-package-details__table td {
  overflow-wrap: anywhere;
}

.user-package-details__table td {
  color: rgba(255, 255, 255, 0.84);
}

.user-package-details__payment-card {
  border-radius: var(--ui-radius-2xl);
  background: linear-gradient(135deg, rgba(96, 165, 250, 0.1), rgba(255, 255, 255, 0.02)), rgba(255, 255, 255, 0.03);
}

.user-package-details__mono {
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

@media (max-width: 720px) {
  .user-package-details-modal .ui-modal__header,
  .user-package-details-modal .ui-modal__body {
    padding: var(--ui-space-4);
  }
  .user-package-details__impact-grid {
    grid-template-columns: 1fr;
  }
  .user-package-details__hero-main {
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
  .user-package-details__hero-value {
    align-items: flex-start;
  }
  .user-package-details__impact-head {
    flex-direction: column;
    align-items: flex-start;
  }
  .user-package-details__stats {
    grid-template-columns: 1fr 1fr;
  }
  .user-package-details__action-row .ui-btn {
    width: 100%;
  }
  .user-package-details__history-table .ui-table-scroll, .user-package-details__history-table .table-scroll, .user-package-details__history-table .glass-table-scroll {
    max-height: 280px;
  }
}
/* ==========================================================================
   UI MODALS - USER ADD / SELECT CUSTOMER
   ==========================================================================
   Contract for UserAddComponent dialog used by sales/orders/jobs flows.
   All visual styling is centralized here (no component-level CSS).
   ========================================================================== */
.user-add-modal {
  display: flex;
  flex-direction: column;
  width: min(920px, 96vw);
  max-width: 100%;
  max-height: min(88vh, 100vh - 32px);
}

.user-add-modal .glass-modal-header {
  gap: var(--ui-space-3);
}

.user-add-modal .back-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  min-width: 36px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.65);
  cursor: pointer;
  transition: all 0.2s ease;
}

.user-add-modal .back-btn:hover {
  border-color: rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.95);
}

.user-add-modal .glass-modal-body {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  min-height: 0;
  padding: 20px 24px;
}

.user-add-modal .search-container {
  margin: 0;
}

.user-add-modal .search-form {
  margin: 0;
}

.user-add-modal .search-form .search-field {
  width: 100%;
}

.user-add-modal .search-form .search-field .mat-mdc-form-field-subscript-wrapper {
  display: none;
}

.user-add-modal .search-form .search-field .mat-mdc-form-field-infix {
  min-height: 46px;
}

.user-add-modal .add-new-btn-large {
  border-style: dashed;
  border-color: rgba(255, 255, 255, 0.22);
  color: rgba(255, 255, 255, 0.85);
  height: 42px;
}

.user-add-modal .add-new-btn-large:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.35);
  color: rgba(255, 255, 255, 0.95);
}

.user-add-modal .customer-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 0;
  max-height: calc(88vh - 240px);
  overflow-y: auto;
  padding-right: 2px;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.12) transparent;
}

.user-add-modal .customer-list::-webkit-scrollbar {
  width: 5px;
}

.user-add-modal .customer-list::-webkit-scrollbar-track {
  background: transparent;
}

.user-add-modal .customer-list::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.12);
  border-radius: 3px;
}

.user-add-modal .customer-list::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.22);
}

.user-add-modal .customer-item.ui-card, .user-add-modal .glass-modal-container .customer-item.glass-card, .glass-modal-container .user-add-modal .customer-item.glass-card,
.user-add-modal .glass-modal-container .customer-item.glass-panel,
.glass-modal-container .user-add-modal .customer-item.glass-panel,
.user-add-modal .glass-modal-container .customer-item.fd-glass,
.glass-modal-container .user-add-modal .customer-item.fd-glass,
.user-add-modal .glass-modal-container .customer-item.section-card,
.glass-modal-container .user-add-modal .customer-item.section-card,
.user-add-modal .glass-modal-container .customer-item.content-section,
.glass-modal-container .user-add-modal .customer-item.content-section,
.user-add-modal .glass-modal-container .customer-item.timeline-card,
.glass-modal-container .user-add-modal .customer-item.timeline-card,
.user-add-modal .glass-modal-container .customer-item.entry-section,
.glass-modal-container .user-add-modal .customer-item.entry-section,
.user-add-modal .glass-modal-container .customer-item.attachments,
.glass-modal-container .user-add-modal .customer-item.attachments,
.user-add-modal .glass-modal-container .customer-item.summary-card,
.glass-modal-container .user-add-modal .customer-item.summary-card,
.user-add-modal .glass-modal-container .customer-item.metric-card,
.glass-modal-container .user-add-modal .customer-item.metric-card,
.user-add-modal .glass-modal-container .customer-item.review-card,
.glass-modal-container .user-add-modal .customer-item.review-card,
.user-add-modal .glass-modal-container .customer-item.config-section,
.glass-modal-container .user-add-modal .customer-item.config-section,
.user-add-modal .glass-modal-container .customer-item.panel-card,
.glass-modal-container .user-add-modal .customer-item.panel-card {
  cursor: pointer;
  display: grid;
  grid-template-columns: 38px minmax(280px, 1fr) auto auto;
  align-items: center;
  gap: 10px 14px;
  padding: 12px 16px;
  transition: all 0.22s ease;
  position: relative;
  overflow: hidden;
}

.user-add-modal .customer-item.ui-card::before, .user-add-modal .glass-modal-container .customer-item.glass-card::before, .glass-modal-container .user-add-modal .customer-item.glass-card::before,
.user-add-modal .glass-modal-container .customer-item.glass-panel::before,
.glass-modal-container .user-add-modal .customer-item.glass-panel::before,
.user-add-modal .glass-modal-container .customer-item.fd-glass::before,
.glass-modal-container .user-add-modal .customer-item.fd-glass::before,
.user-add-modal .glass-modal-container .customer-item.section-card::before,
.glass-modal-container .user-add-modal .customer-item.section-card::before,
.user-add-modal .glass-modal-container .customer-item.content-section::before,
.glass-modal-container .user-add-modal .customer-item.content-section::before,
.user-add-modal .glass-modal-container .customer-item.timeline-card::before,
.glass-modal-container .user-add-modal .customer-item.timeline-card::before,
.user-add-modal .glass-modal-container .customer-item.entry-section::before,
.glass-modal-container .user-add-modal .customer-item.entry-section::before,
.user-add-modal .glass-modal-container .customer-item.attachments::before,
.glass-modal-container .user-add-modal .customer-item.attachments::before,
.user-add-modal .glass-modal-container .customer-item.summary-card::before,
.glass-modal-container .user-add-modal .customer-item.summary-card::before,
.user-add-modal .glass-modal-container .customer-item.metric-card::before,
.glass-modal-container .user-add-modal .customer-item.metric-card::before,
.user-add-modal .glass-modal-container .customer-item.review-card::before,
.glass-modal-container .user-add-modal .customer-item.review-card::before,
.user-add-modal .glass-modal-container .customer-item.config-section::before,
.glass-modal-container .user-add-modal .customer-item.config-section::before,
.user-add-modal .glass-modal-container .customer-item.panel-card::before,
.glass-modal-container .user-add-modal .customer-item.panel-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: linear-gradient(180deg, rgba(255, 127, 80, 0.8), rgba(255, 87, 34, 0.4));
  opacity: 0;
  transition: opacity 0.22s ease;
}

.user-add-modal .customer-item.ui-card:hover, .user-add-modal .glass-modal-container .customer-item.glass-card:hover, .glass-modal-container .user-add-modal .customer-item.glass-card:hover,
.user-add-modal .glass-modal-container .customer-item.glass-panel:hover,
.glass-modal-container .user-add-modal .customer-item.glass-panel:hover,
.user-add-modal .glass-modal-container .customer-item.fd-glass:hover,
.glass-modal-container .user-add-modal .customer-item.fd-glass:hover,
.user-add-modal .glass-modal-container .customer-item.section-card:hover,
.glass-modal-container .user-add-modal .customer-item.section-card:hover,
.user-add-modal .glass-modal-container .customer-item.content-section:hover,
.glass-modal-container .user-add-modal .customer-item.content-section:hover,
.user-add-modal .glass-modal-container .customer-item.timeline-card:hover,
.glass-modal-container .user-add-modal .customer-item.timeline-card:hover,
.user-add-modal .glass-modal-container .customer-item.entry-section:hover,
.glass-modal-container .user-add-modal .customer-item.entry-section:hover,
.user-add-modal .glass-modal-container .customer-item.attachments:hover,
.glass-modal-container .user-add-modal .customer-item.attachments:hover,
.user-add-modal .glass-modal-container .customer-item.summary-card:hover,
.glass-modal-container .user-add-modal .customer-item.summary-card:hover,
.user-add-modal .glass-modal-container .customer-item.metric-card:hover,
.glass-modal-container .user-add-modal .customer-item.metric-card:hover,
.user-add-modal .glass-modal-container .customer-item.review-card:hover,
.glass-modal-container .user-add-modal .customer-item.review-card:hover,
.user-add-modal .glass-modal-container .customer-item.config-section:hover,
.glass-modal-container .user-add-modal .customer-item.config-section:hover,
.user-add-modal .glass-modal-container .customer-item.panel-card:hover,
.glass-modal-container .user-add-modal .customer-item.panel-card:hover {
  border-color: rgba(255, 127, 80, 0.3);
  background: rgba(255, 255, 255, 0.06);
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
}

.user-add-modal .customer-item.ui-card:hover::before, .user-add-modal .glass-modal-container .customer-item.glass-card:hover::before, .glass-modal-container .user-add-modal .customer-item.glass-card:hover::before,
.user-add-modal .glass-modal-container .customer-item.glass-panel:hover::before,
.glass-modal-container .user-add-modal .customer-item.glass-panel:hover::before,
.user-add-modal .glass-modal-container .customer-item.fd-glass:hover::before,
.glass-modal-container .user-add-modal .customer-item.fd-glass:hover::before,
.user-add-modal .glass-modal-container .customer-item.section-card:hover::before,
.glass-modal-container .user-add-modal .customer-item.section-card:hover::before,
.user-add-modal .glass-modal-container .customer-item.content-section:hover::before,
.glass-modal-container .user-add-modal .customer-item.content-section:hover::before,
.user-add-modal .glass-modal-container .customer-item.timeline-card:hover::before,
.glass-modal-container .user-add-modal .customer-item.timeline-card:hover::before,
.user-add-modal .glass-modal-container .customer-item.entry-section:hover::before,
.glass-modal-container .user-add-modal .customer-item.entry-section:hover::before,
.user-add-modal .glass-modal-container .customer-item.attachments:hover::before,
.glass-modal-container .user-add-modal .customer-item.attachments:hover::before,
.user-add-modal .glass-modal-container .customer-item.summary-card:hover::before,
.glass-modal-container .user-add-modal .customer-item.summary-card:hover::before,
.user-add-modal .glass-modal-container .customer-item.metric-card:hover::before,
.glass-modal-container .user-add-modal .customer-item.metric-card:hover::before,
.user-add-modal .glass-modal-container .customer-item.review-card:hover::before,
.glass-modal-container .user-add-modal .customer-item.review-card:hover::before,
.user-add-modal .glass-modal-container .customer-item.config-section:hover::before,
.glass-modal-container .user-add-modal .customer-item.config-section:hover::before,
.user-add-modal .glass-modal-container .customer-item.panel-card:hover::before,
.glass-modal-container .user-add-modal .customer-item.panel-card:hover::before {
  opacity: 1;
}

/* Avatar initial circle */
.user-add-modal .user-add-customer__avatar {
  width: 38px;
  height: 38px;
  min-width: 38px;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(255, 127, 80, 0.22), rgba(255, 87, 34, 0.12));
  border: 1px solid rgba(255, 127, 80, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 700;
  color: rgba(255, 190, 155, 0.95);
  letter-spacing: 0.02em;
  flex-shrink: 0;
  transition: all 0.22s ease;
}

.user-add-modal .user-add-customer__avatar.business {
  background: linear-gradient(135deg, rgba(99, 102, 241, 0.22), rgba(79, 70, 229, 0.12));
  border-color: rgba(99, 102, 241, 0.25);
  color: #a5b4fc;
}

.user-add-modal .customer-item.ui-card:hover .user-add-customer__avatar, .user-add-modal .glass-modal-container .customer-item.glass-card:hover .user-add-customer__avatar, .glass-modal-container .user-add-modal .customer-item.glass-card:hover .user-add-customer__avatar,
.user-add-modal .glass-modal-container .customer-item.glass-panel:hover .user-add-customer__avatar,
.glass-modal-container .user-add-modal .customer-item.glass-panel:hover .user-add-customer__avatar,
.user-add-modal .glass-modal-container .customer-item.fd-glass:hover .user-add-customer__avatar,
.glass-modal-container .user-add-modal .customer-item.fd-glass:hover .user-add-customer__avatar,
.user-add-modal .glass-modal-container .customer-item.section-card:hover .user-add-customer__avatar,
.glass-modal-container .user-add-modal .customer-item.section-card:hover .user-add-customer__avatar,
.user-add-modal .glass-modal-container .customer-item.content-section:hover .user-add-customer__avatar,
.glass-modal-container .user-add-modal .customer-item.content-section:hover .user-add-customer__avatar,
.user-add-modal .glass-modal-container .customer-item.timeline-card:hover .user-add-customer__avatar,
.glass-modal-container .user-add-modal .customer-item.timeline-card:hover .user-add-customer__avatar,
.user-add-modal .glass-modal-container .customer-item.entry-section:hover .user-add-customer__avatar,
.glass-modal-container .user-add-modal .customer-item.entry-section:hover .user-add-customer__avatar,
.user-add-modal .glass-modal-container .customer-item.attachments:hover .user-add-customer__avatar,
.glass-modal-container .user-add-modal .customer-item.attachments:hover .user-add-customer__avatar,
.user-add-modal .glass-modal-container .customer-item.summary-card:hover .user-add-customer__avatar,
.glass-modal-container .user-add-modal .customer-item.summary-card:hover .user-add-customer__avatar,
.user-add-modal .glass-modal-container .customer-item.metric-card:hover .user-add-customer__avatar,
.glass-modal-container .user-add-modal .customer-item.metric-card:hover .user-add-customer__avatar,
.user-add-modal .glass-modal-container .customer-item.review-card:hover .user-add-customer__avatar,
.glass-modal-container .user-add-modal .customer-item.review-card:hover .user-add-customer__avatar,
.user-add-modal .glass-modal-container .customer-item.config-section:hover .user-add-customer__avatar,
.glass-modal-container .user-add-modal .customer-item.config-section:hover .user-add-customer__avatar,
.user-add-modal .glass-modal-container .customer-item.panel-card:hover .user-add-customer__avatar,
.glass-modal-container .user-add-modal .customer-item.panel-card:hover .user-add-customer__avatar {
  border-color: rgba(255, 127, 80, 0.4);
  background: linear-gradient(135deg, rgba(255, 127, 80, 0.3), rgba(255, 87, 34, 0.18));
}

.user-add-modal .customer-item.ui-card:hover .user-add-customer__avatar.business, .user-add-modal .glass-modal-container .customer-item.glass-card:hover .user-add-customer__avatar.business, .glass-modal-container .user-add-modal .customer-item.glass-card:hover .user-add-customer__avatar.business,
.user-add-modal .glass-modal-container .customer-item.glass-panel:hover .user-add-customer__avatar.business,
.glass-modal-container .user-add-modal .customer-item.glass-panel:hover .user-add-customer__avatar.business,
.user-add-modal .glass-modal-container .customer-item.fd-glass:hover .user-add-customer__avatar.business,
.glass-modal-container .user-add-modal .customer-item.fd-glass:hover .user-add-customer__avatar.business,
.user-add-modal .glass-modal-container .customer-item.section-card:hover .user-add-customer__avatar.business,
.glass-modal-container .user-add-modal .customer-item.section-card:hover .user-add-customer__avatar.business,
.user-add-modal .glass-modal-container .customer-item.content-section:hover .user-add-customer__avatar.business,
.glass-modal-container .user-add-modal .customer-item.content-section:hover .user-add-customer__avatar.business,
.user-add-modal .glass-modal-container .customer-item.timeline-card:hover .user-add-customer__avatar.business,
.glass-modal-container .user-add-modal .customer-item.timeline-card:hover .user-add-customer__avatar.business,
.user-add-modal .glass-modal-container .customer-item.entry-section:hover .user-add-customer__avatar.business,
.glass-modal-container .user-add-modal .customer-item.entry-section:hover .user-add-customer__avatar.business,
.user-add-modal .glass-modal-container .customer-item.attachments:hover .user-add-customer__avatar.business,
.glass-modal-container .user-add-modal .customer-item.attachments:hover .user-add-customer__avatar.business,
.user-add-modal .glass-modal-container .customer-item.summary-card:hover .user-add-customer__avatar.business,
.glass-modal-container .user-add-modal .customer-item.summary-card:hover .user-add-customer__avatar.business,
.user-add-modal .glass-modal-container .customer-item.metric-card:hover .user-add-customer__avatar.business,
.glass-modal-container .user-add-modal .customer-item.metric-card:hover .user-add-customer__avatar.business,
.user-add-modal .glass-modal-container .customer-item.review-card:hover .user-add-customer__avatar.business,
.glass-modal-container .user-add-modal .customer-item.review-card:hover .user-add-customer__avatar.business,
.user-add-modal .glass-modal-container .customer-item.config-section:hover .user-add-customer__avatar.business,
.glass-modal-container .user-add-modal .customer-item.config-section:hover .user-add-customer__avatar.business,
.user-add-modal .glass-modal-container .customer-item.panel-card:hover .user-add-customer__avatar.business,
.glass-modal-container .user-add-modal .customer-item.panel-card:hover .user-add-customer__avatar.business {
  border-color: rgba(99, 102, 241, 0.4);
  background: linear-gradient(135deg, rgba(99, 102, 241, 0.3), rgba(79, 70, 229, 0.18));
}

/* Name + type stack */
.user-add-modal .user-add-customer__info {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 2px;
  min-width: 0;
  width: 100%;
}

.user-add-modal .user-add-customer__name {
  font-size: 15px;
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  line-height: 1.3;
  word-break: normal;
  overflow-wrap: anywhere;
}

/* Branch badge — cross-branch origin indicator (blue, like global search) */
.user-add-modal .user-add-customer__branch {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  margin-top: 2px;
  font-size: 11px;
  font-weight: 500;
  color: #7ab8f5;
  line-height: 1;
}

.user-add-modal .user-add-customer__branch-icon {
  width: 12px !important;
  height: 12px !important;
  font-size: 12px !important;
  color: #7ab8f5;
}

/* Type pill badge — right-aligned between name and phone */
.user-add-modal .user-add-customer__type {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 20px;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
  flex-shrink: 0;
  /* Individual — warm amber */
  background: rgba(251, 191, 36, 0.12);
  border: 1px solid rgba(251, 191, 36, 0.22);
  color: rgba(251, 191, 36, 0.95);
  justify-self: start;
}

.user-add-modal .user-add-customer__type--business {
  /* Business — indigo/purple */
  background: rgba(99, 102, 241, 0.12);
  border: 1px solid rgba(99, 102, 241, 0.25);
  color: #a5b4fc;
}

.user-add-modal .customer-item.ui-card:hover .user-add-customer__type, .user-add-modal .glass-modal-container .customer-item.glass-card:hover .user-add-customer__type, .glass-modal-container .user-add-modal .customer-item.glass-card:hover .user-add-customer__type,
.user-add-modal .glass-modal-container .customer-item.glass-panel:hover .user-add-customer__type,
.glass-modal-container .user-add-modal .customer-item.glass-panel:hover .user-add-customer__type,
.user-add-modal .glass-modal-container .customer-item.fd-glass:hover .user-add-customer__type,
.glass-modal-container .user-add-modal .customer-item.fd-glass:hover .user-add-customer__type,
.user-add-modal .glass-modal-container .customer-item.section-card:hover .user-add-customer__type,
.glass-modal-container .user-add-modal .customer-item.section-card:hover .user-add-customer__type,
.user-add-modal .glass-modal-container .customer-item.content-section:hover .user-add-customer__type,
.glass-modal-container .user-add-modal .customer-item.content-section:hover .user-add-customer__type,
.user-add-modal .glass-modal-container .customer-item.timeline-card:hover .user-add-customer__type,
.glass-modal-container .user-add-modal .customer-item.timeline-card:hover .user-add-customer__type,
.user-add-modal .glass-modal-container .customer-item.entry-section:hover .user-add-customer__type,
.glass-modal-container .user-add-modal .customer-item.entry-section:hover .user-add-customer__type,
.user-add-modal .glass-modal-container .customer-item.attachments:hover .user-add-customer__type,
.glass-modal-container .user-add-modal .customer-item.attachments:hover .user-add-customer__type,
.user-add-modal .glass-modal-container .customer-item.summary-card:hover .user-add-customer__type,
.glass-modal-container .user-add-modal .customer-item.summary-card:hover .user-add-customer__type,
.user-add-modal .glass-modal-container .customer-item.metric-card:hover .user-add-customer__type,
.glass-modal-container .user-add-modal .customer-item.metric-card:hover .user-add-customer__type,
.user-add-modal .glass-modal-container .customer-item.review-card:hover .user-add-customer__type,
.glass-modal-container .user-add-modal .customer-item.review-card:hover .user-add-customer__type,
.user-add-modal .glass-modal-container .customer-item.config-section:hover .user-add-customer__type,
.glass-modal-container .user-add-modal .customer-item.config-section:hover .user-add-customer__type,
.user-add-modal .glass-modal-container .customer-item.panel-card:hover .user-add-customer__type,
.glass-modal-container .user-add-modal .customer-item.panel-card:hover .user-add-customer__type {
  background: rgba(251, 191, 36, 0.18);
  border-color: rgba(251, 191, 36, 0.32);
}

.user-add-modal .customer-item.ui-card:hover .user-add-customer__type--business, .user-add-modal .glass-modal-container .customer-item.glass-card:hover .user-add-customer__type--business, .glass-modal-container .user-add-modal .customer-item.glass-card:hover .user-add-customer__type--business,
.user-add-modal .glass-modal-container .customer-item.glass-panel:hover .user-add-customer__type--business,
.glass-modal-container .user-add-modal .customer-item.glass-panel:hover .user-add-customer__type--business,
.user-add-modal .glass-modal-container .customer-item.fd-glass:hover .user-add-customer__type--business,
.glass-modal-container .user-add-modal .customer-item.fd-glass:hover .user-add-customer__type--business,
.user-add-modal .glass-modal-container .customer-item.section-card:hover .user-add-customer__type--business,
.glass-modal-container .user-add-modal .customer-item.section-card:hover .user-add-customer__type--business,
.user-add-modal .glass-modal-container .customer-item.content-section:hover .user-add-customer__type--business,
.glass-modal-container .user-add-modal .customer-item.content-section:hover .user-add-customer__type--business,
.user-add-modal .glass-modal-container .customer-item.timeline-card:hover .user-add-customer__type--business,
.glass-modal-container .user-add-modal .customer-item.timeline-card:hover .user-add-customer__type--business,
.user-add-modal .glass-modal-container .customer-item.entry-section:hover .user-add-customer__type--business,
.glass-modal-container .user-add-modal .customer-item.entry-section:hover .user-add-customer__type--business,
.user-add-modal .glass-modal-container .customer-item.attachments:hover .user-add-customer__type--business,
.glass-modal-container .user-add-modal .customer-item.attachments:hover .user-add-customer__type--business,
.user-add-modal .glass-modal-container .customer-item.summary-card:hover .user-add-customer__type--business,
.glass-modal-container .user-add-modal .customer-item.summary-card:hover .user-add-customer__type--business,
.user-add-modal .glass-modal-container .customer-item.metric-card:hover .user-add-customer__type--business,
.glass-modal-container .user-add-modal .customer-item.metric-card:hover .user-add-customer__type--business,
.user-add-modal .glass-modal-container .customer-item.review-card:hover .user-add-customer__type--business,
.glass-modal-container .user-add-modal .customer-item.review-card:hover .user-add-customer__type--business,
.user-add-modal .glass-modal-container .customer-item.config-section:hover .user-add-customer__type--business,
.glass-modal-container .user-add-modal .customer-item.config-section:hover .user-add-customer__type--business,
.user-add-modal .glass-modal-container .customer-item.panel-card:hover .user-add-customer__type--business,
.glass-modal-container .user-add-modal .customer-item.panel-card:hover .user-add-customer__type--business {
  background: rgba(99, 102, 241, 0.18);
  border-color: rgba(99, 102, 241, 0.35);
}

/* Right-aligned meta badges */
.user-add-modal .user-add-customer__meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
  min-width: 0;
  max-width: 100%;
}

.user-add-modal .user-add-customer__meta-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border-radius: var(--ui-radius-full, 20px);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 11px;
  color: rgba(255, 255, 255, 0.7);
  white-space: nowrap;
  transition: all 0.2s ease;
  max-width: 100%;
}

.user-add-modal .user-add-customer__meta-badge span {
  overflow: hidden;
  text-overflow: ellipsis;
}

.user-add-modal .user-add-customer__meta-badge--gst {
  background: rgba(99, 102, 241, 0.08);
  border-color: rgba(99, 102, 241, 0.15);
  color: rgba(165, 180, 252, 0.9);
}

.user-add-modal .user-add-customer__meta-icon {
  width: 13px !important;
  height: 13px !important;
  font-size: 13px !important;
  opacity: 0.7;
}

.user-add-modal .customer-item.ui-card:hover .user-add-customer__meta-badge, .user-add-modal .glass-modal-container .customer-item.glass-card:hover .user-add-customer__meta-badge, .glass-modal-container .user-add-modal .customer-item.glass-card:hover .user-add-customer__meta-badge,
.user-add-modal .glass-modal-container .customer-item.glass-panel:hover .user-add-customer__meta-badge,
.glass-modal-container .user-add-modal .customer-item.glass-panel:hover .user-add-customer__meta-badge,
.user-add-modal .glass-modal-container .customer-item.fd-glass:hover .user-add-customer__meta-badge,
.glass-modal-container .user-add-modal .customer-item.fd-glass:hover .user-add-customer__meta-badge,
.user-add-modal .glass-modal-container .customer-item.section-card:hover .user-add-customer__meta-badge,
.glass-modal-container .user-add-modal .customer-item.section-card:hover .user-add-customer__meta-badge,
.user-add-modal .glass-modal-container .customer-item.content-section:hover .user-add-customer__meta-badge,
.glass-modal-container .user-add-modal .customer-item.content-section:hover .user-add-customer__meta-badge,
.user-add-modal .glass-modal-container .customer-item.timeline-card:hover .user-add-customer__meta-badge,
.glass-modal-container .user-add-modal .customer-item.timeline-card:hover .user-add-customer__meta-badge,
.user-add-modal .glass-modal-container .customer-item.entry-section:hover .user-add-customer__meta-badge,
.glass-modal-container .user-add-modal .customer-item.entry-section:hover .user-add-customer__meta-badge,
.user-add-modal .glass-modal-container .customer-item.attachments:hover .user-add-customer__meta-badge,
.glass-modal-container .user-add-modal .customer-item.attachments:hover .user-add-customer__meta-badge,
.user-add-modal .glass-modal-container .customer-item.summary-card:hover .user-add-customer__meta-badge,
.glass-modal-container .user-add-modal .customer-item.summary-card:hover .user-add-customer__meta-badge,
.user-add-modal .glass-modal-container .customer-item.metric-card:hover .user-add-customer__meta-badge,
.glass-modal-container .user-add-modal .customer-item.metric-card:hover .user-add-customer__meta-badge,
.user-add-modal .glass-modal-container .customer-item.review-card:hover .user-add-customer__meta-badge,
.glass-modal-container .user-add-modal .customer-item.review-card:hover .user-add-customer__meta-badge,
.user-add-modal .glass-modal-container .customer-item.config-section:hover .user-add-customer__meta-badge,
.glass-modal-container .user-add-modal .customer-item.config-section:hover .user-add-customer__meta-badge,
.user-add-modal .glass-modal-container .customer-item.panel-card:hover .user-add-customer__meta-badge,
.glass-modal-container .user-add-modal .customer-item.panel-card:hover .user-add-customer__meta-badge {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.14);
}

.user-add-modal .customer-item.ui-card:hover .user-add-customer__meta-badge--gst, .user-add-modal .glass-modal-container .customer-item.glass-card:hover .user-add-customer__meta-badge--gst, .glass-modal-container .user-add-modal .customer-item.glass-card:hover .user-add-customer__meta-badge--gst,
.user-add-modal .glass-modal-container .customer-item.glass-panel:hover .user-add-customer__meta-badge--gst,
.glass-modal-container .user-add-modal .customer-item.glass-panel:hover .user-add-customer__meta-badge--gst,
.user-add-modal .glass-modal-container .customer-item.fd-glass:hover .user-add-customer__meta-badge--gst,
.glass-modal-container .user-add-modal .customer-item.fd-glass:hover .user-add-customer__meta-badge--gst,
.user-add-modal .glass-modal-container .customer-item.section-card:hover .user-add-customer__meta-badge--gst,
.glass-modal-container .user-add-modal .customer-item.section-card:hover .user-add-customer__meta-badge--gst,
.user-add-modal .glass-modal-container .customer-item.content-section:hover .user-add-customer__meta-badge--gst,
.glass-modal-container .user-add-modal .customer-item.content-section:hover .user-add-customer__meta-badge--gst,
.user-add-modal .glass-modal-container .customer-item.timeline-card:hover .user-add-customer__meta-badge--gst,
.glass-modal-container .user-add-modal .customer-item.timeline-card:hover .user-add-customer__meta-badge--gst,
.user-add-modal .glass-modal-container .customer-item.entry-section:hover .user-add-customer__meta-badge--gst,
.glass-modal-container .user-add-modal .customer-item.entry-section:hover .user-add-customer__meta-badge--gst,
.user-add-modal .glass-modal-container .customer-item.attachments:hover .user-add-customer__meta-badge--gst,
.glass-modal-container .user-add-modal .customer-item.attachments:hover .user-add-customer__meta-badge--gst,
.user-add-modal .glass-modal-container .customer-item.summary-card:hover .user-add-customer__meta-badge--gst,
.glass-modal-container .user-add-modal .customer-item.summary-card:hover .user-add-customer__meta-badge--gst,
.user-add-modal .glass-modal-container .customer-item.metric-card:hover .user-add-customer__meta-badge--gst,
.glass-modal-container .user-add-modal .customer-item.metric-card:hover .user-add-customer__meta-badge--gst,
.user-add-modal .glass-modal-container .customer-item.review-card:hover .user-add-customer__meta-badge--gst,
.glass-modal-container .user-add-modal .customer-item.review-card:hover .user-add-customer__meta-badge--gst,
.user-add-modal .glass-modal-container .customer-item.config-section:hover .user-add-customer__meta-badge--gst,
.glass-modal-container .user-add-modal .customer-item.config-section:hover .user-add-customer__meta-badge--gst,
.user-add-modal .glass-modal-container .customer-item.panel-card:hover .user-add-customer__meta-badge--gst,
.glass-modal-container .user-add-modal .customer-item.panel-card:hover .user-add-customer__meta-badge--gst {
  background: rgba(99, 102, 241, 0.12);
  border-color: rgba(99, 102, 241, 0.22);
}

.user-add-modal .customer-list-empty {
  padding: 18px 12px;
  text-align: center;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}

.user-add-modal .glass-form {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.user-add-modal .no-match-badge,
.user-add-modal .match-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin-bottom: 8px;
}

.user-add-modal .no-match-badge {
  background: rgba(255, 180, 100, 0.14);
  border: 1px solid rgba(255, 180, 100, 0.25);
  color: #fbbf24;
}

.user-add-modal .match-badge {
  background: rgba(74, 222, 128, 0.14);
  border: 1px solid rgba(74, 222, 128, 0.28);
  color: #4ade80;
}

.user-add-modal .customer-tiles {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.user-add-modal .customer-tile.ui-card, .user-add-modal .glass-modal-container .customer-tile.glass-card, .glass-modal-container .user-add-modal .customer-tile.glass-card,
.user-add-modal .glass-modal-container .customer-tile.glass-panel,
.glass-modal-container .user-add-modal .customer-tile.glass-panel,
.user-add-modal .glass-modal-container .customer-tile.fd-glass,
.glass-modal-container .user-add-modal .customer-tile.fd-glass,
.user-add-modal .glass-modal-container .customer-tile.section-card,
.glass-modal-container .user-add-modal .customer-tile.section-card,
.user-add-modal .glass-modal-container .customer-tile.content-section,
.glass-modal-container .user-add-modal .customer-tile.content-section,
.user-add-modal .glass-modal-container .customer-tile.timeline-card,
.glass-modal-container .user-add-modal .customer-tile.timeline-card,
.user-add-modal .glass-modal-container .customer-tile.entry-section,
.glass-modal-container .user-add-modal .customer-tile.entry-section,
.user-add-modal .glass-modal-container .customer-tile.attachments,
.glass-modal-container .user-add-modal .customer-tile.attachments,
.user-add-modal .glass-modal-container .customer-tile.summary-card,
.glass-modal-container .user-add-modal .customer-tile.summary-card,
.user-add-modal .glass-modal-container .customer-tile.metric-card,
.glass-modal-container .user-add-modal .customer-tile.metric-card,
.user-add-modal .glass-modal-container .customer-tile.review-card,
.glass-modal-container .user-add-modal .customer-tile.review-card,
.user-add-modal .glass-modal-container .customer-tile.config-section,
.glass-modal-container .user-add-modal .customer-tile.config-section,
.user-add-modal .glass-modal-container .customer-tile.panel-card,
.glass-modal-container .user-add-modal .customer-tile.panel-card {
  position: relative;
  padding: 0;
  gap: 0;
  cursor: pointer;
  overflow: hidden;
  transition: border-color 0.2s ease, transform 0.2s ease;
}

.user-add-modal .customer-tile.ui-card .tile-glow, .user-add-modal .glass-modal-container .customer-tile.glass-card .tile-glow, .glass-modal-container .user-add-modal .customer-tile.glass-card .tile-glow,
.user-add-modal .glass-modal-container .customer-tile.glass-panel .tile-glow,
.glass-modal-container .user-add-modal .customer-tile.glass-panel .tile-glow,
.user-add-modal .glass-modal-container .customer-tile.fd-glass .tile-glow,
.glass-modal-container .user-add-modal .customer-tile.fd-glass .tile-glow,
.user-add-modal .glass-modal-container .customer-tile.section-card .tile-glow,
.glass-modal-container .user-add-modal .customer-tile.section-card .tile-glow,
.user-add-modal .glass-modal-container .customer-tile.content-section .tile-glow,
.glass-modal-container .user-add-modal .customer-tile.content-section .tile-glow,
.user-add-modal .glass-modal-container .customer-tile.timeline-card .tile-glow,
.glass-modal-container .user-add-modal .customer-tile.timeline-card .tile-glow,
.user-add-modal .glass-modal-container .customer-tile.entry-section .tile-glow,
.glass-modal-container .user-add-modal .customer-tile.entry-section .tile-glow,
.user-add-modal .glass-modal-container .customer-tile.attachments .tile-glow,
.glass-modal-container .user-add-modal .customer-tile.attachments .tile-glow,
.user-add-modal .glass-modal-container .customer-tile.summary-card .tile-glow,
.glass-modal-container .user-add-modal .customer-tile.summary-card .tile-glow,
.user-add-modal .glass-modal-container .customer-tile.metric-card .tile-glow,
.glass-modal-container .user-add-modal .customer-tile.metric-card .tile-glow,
.user-add-modal .glass-modal-container .customer-tile.review-card .tile-glow,
.glass-modal-container .user-add-modal .customer-tile.review-card .tile-glow,
.user-add-modal .glass-modal-container .customer-tile.config-section .tile-glow,
.glass-modal-container .user-add-modal .customer-tile.config-section .tile-glow,
.user-add-modal .glass-modal-container .customer-tile.panel-card .tile-glow,
.glass-modal-container .user-add-modal .customer-tile.panel-card .tile-glow {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255, 127, 80, 0.12), rgba(255, 87, 34, 0.06));
  opacity: 0;
  transition: opacity 0.2s ease;
  pointer-events: none;
}

.user-add-modal .customer-tile.ui-card .tile-content, .user-add-modal .glass-modal-container .customer-tile.glass-card .tile-content, .glass-modal-container .user-add-modal .customer-tile.glass-card .tile-content,
.user-add-modal .glass-modal-container .customer-tile.glass-panel .tile-content,
.glass-modal-container .user-add-modal .customer-tile.glass-panel .tile-content,
.user-add-modal .glass-modal-container .customer-tile.fd-glass .tile-content,
.glass-modal-container .user-add-modal .customer-tile.fd-glass .tile-content,
.user-add-modal .glass-modal-container .customer-tile.section-card .tile-content,
.glass-modal-container .user-add-modal .customer-tile.section-card .tile-content,
.user-add-modal .glass-modal-container .customer-tile.content-section .tile-content,
.glass-modal-container .user-add-modal .customer-tile.content-section .tile-content,
.user-add-modal .glass-modal-container .customer-tile.timeline-card .tile-content,
.glass-modal-container .user-add-modal .customer-tile.timeline-card .tile-content,
.user-add-modal .glass-modal-container .customer-tile.entry-section .tile-content,
.glass-modal-container .user-add-modal .customer-tile.entry-section .tile-content,
.user-add-modal .glass-modal-container .customer-tile.attachments .tile-content,
.glass-modal-container .user-add-modal .customer-tile.attachments .tile-content,
.user-add-modal .glass-modal-container .customer-tile.summary-card .tile-content,
.glass-modal-container .user-add-modal .customer-tile.summary-card .tile-content,
.user-add-modal .glass-modal-container .customer-tile.metric-card .tile-content,
.glass-modal-container .user-add-modal .customer-tile.metric-card .tile-content,
.user-add-modal .glass-modal-container .customer-tile.review-card .tile-content,
.glass-modal-container .user-add-modal .customer-tile.review-card .tile-content,
.user-add-modal .glass-modal-container .customer-tile.config-section .tile-content,
.glass-modal-container .user-add-modal .customer-tile.config-section .tile-content,
.user-add-modal .glass-modal-container .customer-tile.panel-card .tile-content,
.glass-modal-container .user-add-modal .customer-tile.panel-card .tile-content {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
}

.user-add-modal .customer-tile.ui-card .tile-avatar, .user-add-modal .glass-modal-container .customer-tile.glass-card .tile-avatar, .glass-modal-container .user-add-modal .customer-tile.glass-card .tile-avatar,
.user-add-modal .glass-modal-container .customer-tile.glass-panel .tile-avatar,
.glass-modal-container .user-add-modal .customer-tile.glass-panel .tile-avatar,
.user-add-modal .glass-modal-container .customer-tile.fd-glass .tile-avatar,
.glass-modal-container .user-add-modal .customer-tile.fd-glass .tile-avatar,
.user-add-modal .glass-modal-container .customer-tile.section-card .tile-avatar,
.glass-modal-container .user-add-modal .customer-tile.section-card .tile-avatar,
.user-add-modal .glass-modal-container .customer-tile.content-section .tile-avatar,
.glass-modal-container .user-add-modal .customer-tile.content-section .tile-avatar,
.user-add-modal .glass-modal-container .customer-tile.timeline-card .tile-avatar,
.glass-modal-container .user-add-modal .customer-tile.timeline-card .tile-avatar,
.user-add-modal .glass-modal-container .customer-tile.entry-section .tile-avatar,
.glass-modal-container .user-add-modal .customer-tile.entry-section .tile-avatar,
.user-add-modal .glass-modal-container .customer-tile.attachments .tile-avatar,
.glass-modal-container .user-add-modal .customer-tile.attachments .tile-avatar,
.user-add-modal .glass-modal-container .customer-tile.summary-card .tile-avatar,
.glass-modal-container .user-add-modal .customer-tile.summary-card .tile-avatar,
.user-add-modal .glass-modal-container .customer-tile.metric-card .tile-avatar,
.glass-modal-container .user-add-modal .customer-tile.metric-card .tile-avatar,
.user-add-modal .glass-modal-container .customer-tile.review-card .tile-avatar,
.glass-modal-container .user-add-modal .customer-tile.review-card .tile-avatar,
.user-add-modal .glass-modal-container .customer-tile.config-section .tile-avatar,
.glass-modal-container .user-add-modal .customer-tile.config-section .tile-avatar,
.user-add-modal .glass-modal-container .customer-tile.panel-card .tile-avatar,
.glass-modal-container .user-add-modal .customer-tile.panel-card .tile-avatar {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: rgba(255, 127, 80, 0.16);
  border: 1px solid rgba(255, 127, 80, 0.22);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.user-add-modal .customer-tile.ui-card .tile-avatar mat-icon, .user-add-modal .glass-modal-container .customer-tile.glass-card .tile-avatar mat-icon, .glass-modal-container .user-add-modal .customer-tile.glass-card .tile-avatar mat-icon,
.user-add-modal .glass-modal-container .customer-tile.glass-panel .tile-avatar mat-icon,
.glass-modal-container .user-add-modal .customer-tile.glass-panel .tile-avatar mat-icon,
.user-add-modal .glass-modal-container .customer-tile.fd-glass .tile-avatar mat-icon,
.glass-modal-container .user-add-modal .customer-tile.fd-glass .tile-avatar mat-icon,
.user-add-modal .glass-modal-container .customer-tile.section-card .tile-avatar mat-icon,
.glass-modal-container .user-add-modal .customer-tile.section-card .tile-avatar mat-icon,
.user-add-modal .glass-modal-container .customer-tile.content-section .tile-avatar mat-icon,
.glass-modal-container .user-add-modal .customer-tile.content-section .tile-avatar mat-icon,
.user-add-modal .glass-modal-container .customer-tile.timeline-card .tile-avatar mat-icon,
.glass-modal-container .user-add-modal .customer-tile.timeline-card .tile-avatar mat-icon,
.user-add-modal .glass-modal-container .customer-tile.entry-section .tile-avatar mat-icon,
.glass-modal-container .user-add-modal .customer-tile.entry-section .tile-avatar mat-icon,
.user-add-modal .glass-modal-container .customer-tile.attachments .tile-avatar mat-icon,
.glass-modal-container .user-add-modal .customer-tile.attachments .tile-avatar mat-icon,
.user-add-modal .glass-modal-container .customer-tile.summary-card .tile-avatar mat-icon,
.glass-modal-container .user-add-modal .customer-tile.summary-card .tile-avatar mat-icon,
.user-add-modal .glass-modal-container .customer-tile.metric-card .tile-avatar mat-icon,
.glass-modal-container .user-add-modal .customer-tile.metric-card .tile-avatar mat-icon,
.user-add-modal .glass-modal-container .customer-tile.review-card .tile-avatar mat-icon,
.glass-modal-container .user-add-modal .customer-tile.review-card .tile-avatar mat-icon,
.user-add-modal .glass-modal-container .customer-tile.config-section .tile-avatar mat-icon,
.glass-modal-container .user-add-modal .customer-tile.config-section .tile-avatar mat-icon,
.user-add-modal .glass-modal-container .customer-tile.panel-card .tile-avatar mat-icon,
.glass-modal-container .user-add-modal .customer-tile.panel-card .tile-avatar mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: rgba(255, 190, 155, 0.95);
}

.user-add-modal .customer-tile.ui-card .tile-avatar.business, .user-add-modal .glass-modal-container .customer-tile.glass-card .tile-avatar.business, .glass-modal-container .user-add-modal .customer-tile.glass-card .tile-avatar.business,
.user-add-modal .glass-modal-container .customer-tile.glass-panel .tile-avatar.business,
.glass-modal-container .user-add-modal .customer-tile.glass-panel .tile-avatar.business,
.user-add-modal .glass-modal-container .customer-tile.fd-glass .tile-avatar.business,
.glass-modal-container .user-add-modal .customer-tile.fd-glass .tile-avatar.business,
.user-add-modal .glass-modal-container .customer-tile.section-card .tile-avatar.business,
.glass-modal-container .user-add-modal .customer-tile.section-card .tile-avatar.business,
.user-add-modal .glass-modal-container .customer-tile.content-section .tile-avatar.business,
.glass-modal-container .user-add-modal .customer-tile.content-section .tile-avatar.business,
.user-add-modal .glass-modal-container .customer-tile.timeline-card .tile-avatar.business,
.glass-modal-container .user-add-modal .customer-tile.timeline-card .tile-avatar.business,
.user-add-modal .glass-modal-container .customer-tile.entry-section .tile-avatar.business,
.glass-modal-container .user-add-modal .customer-tile.entry-section .tile-avatar.business,
.user-add-modal .glass-modal-container .customer-tile.attachments .tile-avatar.business,
.glass-modal-container .user-add-modal .customer-tile.attachments .tile-avatar.business,
.user-add-modal .glass-modal-container .customer-tile.summary-card .tile-avatar.business,
.glass-modal-container .user-add-modal .customer-tile.summary-card .tile-avatar.business,
.user-add-modal .glass-modal-container .customer-tile.metric-card .tile-avatar.business,
.glass-modal-container .user-add-modal .customer-tile.metric-card .tile-avatar.business,
.user-add-modal .glass-modal-container .customer-tile.review-card .tile-avatar.business,
.glass-modal-container .user-add-modal .customer-tile.review-card .tile-avatar.business,
.user-add-modal .glass-modal-container .customer-tile.config-section .tile-avatar.business,
.glass-modal-container .user-add-modal .customer-tile.config-section .tile-avatar.business,
.user-add-modal .glass-modal-container .customer-tile.panel-card .tile-avatar.business,
.glass-modal-container .user-add-modal .customer-tile.panel-card .tile-avatar.business {
  background: rgba(99, 102, 241, 0.18);
  border-color: rgba(99, 102, 241, 0.3);
}

.user-add-modal .customer-tile.ui-card .tile-avatar.business mat-icon, .user-add-modal .glass-modal-container .customer-tile.glass-card .tile-avatar.business mat-icon, .glass-modal-container .user-add-modal .customer-tile.glass-card .tile-avatar.business mat-icon,
.user-add-modal .glass-modal-container .customer-tile.glass-panel .tile-avatar.business mat-icon,
.glass-modal-container .user-add-modal .customer-tile.glass-panel .tile-avatar.business mat-icon,
.user-add-modal .glass-modal-container .customer-tile.fd-glass .tile-avatar.business mat-icon,
.glass-modal-container .user-add-modal .customer-tile.fd-glass .tile-avatar.business mat-icon,
.user-add-modal .glass-modal-container .customer-tile.section-card .tile-avatar.business mat-icon,
.glass-modal-container .user-add-modal .customer-tile.section-card .tile-avatar.business mat-icon,
.user-add-modal .glass-modal-container .customer-tile.content-section .tile-avatar.business mat-icon,
.glass-modal-container .user-add-modal .customer-tile.content-section .tile-avatar.business mat-icon,
.user-add-modal .glass-modal-container .customer-tile.timeline-card .tile-avatar.business mat-icon,
.glass-modal-container .user-add-modal .customer-tile.timeline-card .tile-avatar.business mat-icon,
.user-add-modal .glass-modal-container .customer-tile.entry-section .tile-avatar.business mat-icon,
.glass-modal-container .user-add-modal .customer-tile.entry-section .tile-avatar.business mat-icon,
.user-add-modal .glass-modal-container .customer-tile.attachments .tile-avatar.business mat-icon,
.glass-modal-container .user-add-modal .customer-tile.attachments .tile-avatar.business mat-icon,
.user-add-modal .glass-modal-container .customer-tile.summary-card .tile-avatar.business mat-icon,
.glass-modal-container .user-add-modal .customer-tile.summary-card .tile-avatar.business mat-icon,
.user-add-modal .glass-modal-container .customer-tile.metric-card .tile-avatar.business mat-icon,
.glass-modal-container .user-add-modal .customer-tile.metric-card .tile-avatar.business mat-icon,
.user-add-modal .glass-modal-container .customer-tile.review-card .tile-avatar.business mat-icon,
.glass-modal-container .user-add-modal .customer-tile.review-card .tile-avatar.business mat-icon,
.user-add-modal .glass-modal-container .customer-tile.config-section .tile-avatar.business mat-icon,
.glass-modal-container .user-add-modal .customer-tile.config-section .tile-avatar.business mat-icon,
.user-add-modal .glass-modal-container .customer-tile.panel-card .tile-avatar.business mat-icon,
.glass-modal-container .user-add-modal .customer-tile.panel-card .tile-avatar.business mat-icon {
  color: #a5b4fc;
}

.user-add-modal .customer-tile.ui-card .tile-info, .user-add-modal .glass-modal-container .customer-tile.glass-card .tile-info, .glass-modal-container .user-add-modal .customer-tile.glass-card .tile-info,
.user-add-modal .glass-modal-container .customer-tile.glass-panel .tile-info,
.glass-modal-container .user-add-modal .customer-tile.glass-panel .tile-info,
.user-add-modal .glass-modal-container .customer-tile.fd-glass .tile-info,
.glass-modal-container .user-add-modal .customer-tile.fd-glass .tile-info,
.user-add-modal .glass-modal-container .customer-tile.section-card .tile-info,
.glass-modal-container .user-add-modal .customer-tile.section-card .tile-info,
.user-add-modal .glass-modal-container .customer-tile.content-section .tile-info,
.glass-modal-container .user-add-modal .customer-tile.content-section .tile-info,
.user-add-modal .glass-modal-container .customer-tile.timeline-card .tile-info,
.glass-modal-container .user-add-modal .customer-tile.timeline-card .tile-info,
.user-add-modal .glass-modal-container .customer-tile.entry-section .tile-info,
.glass-modal-container .user-add-modal .customer-tile.entry-section .tile-info,
.user-add-modal .glass-modal-container .customer-tile.attachments .tile-info,
.glass-modal-container .user-add-modal .customer-tile.attachments .tile-info,
.user-add-modal .glass-modal-container .customer-tile.summary-card .tile-info,
.glass-modal-container .user-add-modal .customer-tile.summary-card .tile-info,
.user-add-modal .glass-modal-container .customer-tile.metric-card .tile-info,
.glass-modal-container .user-add-modal .customer-tile.metric-card .tile-info,
.user-add-modal .glass-modal-container .customer-tile.review-card .tile-info,
.glass-modal-container .user-add-modal .customer-tile.review-card .tile-info,
.user-add-modal .glass-modal-container .customer-tile.config-section .tile-info,
.glass-modal-container .user-add-modal .customer-tile.config-section .tile-info,
.user-add-modal .glass-modal-container .customer-tile.panel-card .tile-info,
.glass-modal-container .user-add-modal .customer-tile.panel-card .tile-info {
  flex: 1;
  min-width: 0;
}

.user-add-modal .customer-tile.ui-card .tile-name, .user-add-modal .glass-modal-container .customer-tile.glass-card .tile-name, .glass-modal-container .user-add-modal .customer-tile.glass-card .tile-name,
.user-add-modal .glass-modal-container .customer-tile.glass-panel .tile-name,
.glass-modal-container .user-add-modal .customer-tile.glass-panel .tile-name,
.user-add-modal .glass-modal-container .customer-tile.fd-glass .tile-name,
.glass-modal-container .user-add-modal .customer-tile.fd-glass .tile-name,
.user-add-modal .glass-modal-container .customer-tile.section-card .tile-name,
.glass-modal-container .user-add-modal .customer-tile.section-card .tile-name,
.user-add-modal .glass-modal-container .customer-tile.content-section .tile-name,
.glass-modal-container .user-add-modal .customer-tile.content-section .tile-name,
.user-add-modal .glass-modal-container .customer-tile.timeline-card .tile-name,
.glass-modal-container .user-add-modal .customer-tile.timeline-card .tile-name,
.user-add-modal .glass-modal-container .customer-tile.entry-section .tile-name,
.glass-modal-container .user-add-modal .customer-tile.entry-section .tile-name,
.user-add-modal .glass-modal-container .customer-tile.attachments .tile-name,
.glass-modal-container .user-add-modal .customer-tile.attachments .tile-name,
.user-add-modal .glass-modal-container .customer-tile.summary-card .tile-name,
.glass-modal-container .user-add-modal .customer-tile.summary-card .tile-name,
.user-add-modal .glass-modal-container .customer-tile.metric-card .tile-name,
.glass-modal-container .user-add-modal .customer-tile.metric-card .tile-name,
.user-add-modal .glass-modal-container .customer-tile.review-card .tile-name,
.glass-modal-container .user-add-modal .customer-tile.review-card .tile-name,
.user-add-modal .glass-modal-container .customer-tile.config-section .tile-name,
.glass-modal-container .user-add-modal .customer-tile.config-section .tile-name,
.user-add-modal .glass-modal-container .customer-tile.panel-card .tile-name,
.glass-modal-container .user-add-modal .customer-tile.panel-card .tile-name {
  display: block;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.user-add-modal .customer-tile.ui-card .tile-type, .user-add-modal .glass-modal-container .customer-tile.glass-card .tile-type, .glass-modal-container .user-add-modal .customer-tile.glass-card .tile-type,
.user-add-modal .glass-modal-container .customer-tile.glass-panel .tile-type,
.glass-modal-container .user-add-modal .customer-tile.glass-panel .tile-type,
.user-add-modal .glass-modal-container .customer-tile.fd-glass .tile-type,
.glass-modal-container .user-add-modal .customer-tile.fd-glass .tile-type,
.user-add-modal .glass-modal-container .customer-tile.section-card .tile-type,
.glass-modal-container .user-add-modal .customer-tile.section-card .tile-type,
.user-add-modal .glass-modal-container .customer-tile.content-section .tile-type,
.glass-modal-container .user-add-modal .customer-tile.content-section .tile-type,
.user-add-modal .glass-modal-container .customer-tile.timeline-card .tile-type,
.glass-modal-container .user-add-modal .customer-tile.timeline-card .tile-type,
.user-add-modal .glass-modal-container .customer-tile.entry-section .tile-type,
.glass-modal-container .user-add-modal .customer-tile.entry-section .tile-type,
.user-add-modal .glass-modal-container .customer-tile.attachments .tile-type,
.glass-modal-container .user-add-modal .customer-tile.attachments .tile-type,
.user-add-modal .glass-modal-container .customer-tile.summary-card .tile-type,
.glass-modal-container .user-add-modal .customer-tile.summary-card .tile-type,
.user-add-modal .glass-modal-container .customer-tile.metric-card .tile-type,
.glass-modal-container .user-add-modal .customer-tile.metric-card .tile-type,
.user-add-modal .glass-modal-container .customer-tile.review-card .tile-type,
.glass-modal-container .user-add-modal .customer-tile.review-card .tile-type,
.user-add-modal .glass-modal-container .customer-tile.config-section .tile-type,
.glass-modal-container .user-add-modal .customer-tile.config-section .tile-type,
.user-add-modal .glass-modal-container .customer-tile.panel-card .tile-type,
.glass-modal-container .user-add-modal .customer-tile.panel-card .tile-type {
  display: block;
  margin-top: 2px;
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  text-transform: capitalize;
}

.user-add-modal .customer-tile.ui-card .selector-ring, .user-add-modal .glass-modal-container .customer-tile.glass-card .selector-ring, .glass-modal-container .user-add-modal .customer-tile.glass-card .selector-ring,
.user-add-modal .glass-modal-container .customer-tile.glass-panel .selector-ring,
.glass-modal-container .user-add-modal .customer-tile.glass-panel .selector-ring,
.user-add-modal .glass-modal-container .customer-tile.fd-glass .selector-ring,
.glass-modal-container .user-add-modal .customer-tile.fd-glass .selector-ring,
.user-add-modal .glass-modal-container .customer-tile.section-card .selector-ring,
.glass-modal-container .user-add-modal .customer-tile.section-card .selector-ring,
.user-add-modal .glass-modal-container .customer-tile.content-section .selector-ring,
.glass-modal-container .user-add-modal .customer-tile.content-section .selector-ring,
.user-add-modal .glass-modal-container .customer-tile.timeline-card .selector-ring,
.glass-modal-container .user-add-modal .customer-tile.timeline-card .selector-ring,
.user-add-modal .glass-modal-container .customer-tile.entry-section .selector-ring,
.glass-modal-container .user-add-modal .customer-tile.entry-section .selector-ring,
.user-add-modal .glass-modal-container .customer-tile.attachments .selector-ring,
.glass-modal-container .user-add-modal .customer-tile.attachments .selector-ring,
.user-add-modal .glass-modal-container .customer-tile.summary-card .selector-ring,
.glass-modal-container .user-add-modal .customer-tile.summary-card .selector-ring,
.user-add-modal .glass-modal-container .customer-tile.metric-card .selector-ring,
.glass-modal-container .user-add-modal .customer-tile.metric-card .selector-ring,
.user-add-modal .glass-modal-container .customer-tile.review-card .selector-ring,
.glass-modal-container .user-add-modal .customer-tile.review-card .selector-ring,
.user-add-modal .glass-modal-container .customer-tile.config-section .selector-ring,
.glass-modal-container .user-add-modal .customer-tile.config-section .selector-ring,
.user-add-modal .glass-modal-container .customer-tile.panel-card .selector-ring,
.glass-modal-container .user-add-modal .customer-tile.panel-card .selector-ring {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.25);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.user-add-modal .customer-tile.ui-card .selector-dot, .user-add-modal .glass-modal-container .customer-tile.glass-card .selector-dot, .glass-modal-container .user-add-modal .customer-tile.glass-card .selector-dot,
.user-add-modal .glass-modal-container .customer-tile.glass-panel .selector-dot,
.glass-modal-container .user-add-modal .customer-tile.glass-panel .selector-dot,
.user-add-modal .glass-modal-container .customer-tile.fd-glass .selector-dot,
.glass-modal-container .user-add-modal .customer-tile.fd-glass .selector-dot,
.user-add-modal .glass-modal-container .customer-tile.section-card .selector-dot,
.glass-modal-container .user-add-modal .customer-tile.section-card .selector-dot,
.user-add-modal .glass-modal-container .customer-tile.content-section .selector-dot,
.glass-modal-container .user-add-modal .customer-tile.content-section .selector-dot,
.user-add-modal .glass-modal-container .customer-tile.timeline-card .selector-dot,
.glass-modal-container .user-add-modal .customer-tile.timeline-card .selector-dot,
.user-add-modal .glass-modal-container .customer-tile.entry-section .selector-dot,
.glass-modal-container .user-add-modal .customer-tile.entry-section .selector-dot,
.user-add-modal .glass-modal-container .customer-tile.attachments .selector-dot,
.glass-modal-container .user-add-modal .customer-tile.attachments .selector-dot,
.user-add-modal .glass-modal-container .customer-tile.summary-card .selector-dot,
.glass-modal-container .user-add-modal .customer-tile.summary-card .selector-dot,
.user-add-modal .glass-modal-container .customer-tile.metric-card .selector-dot,
.glass-modal-container .user-add-modal .customer-tile.metric-card .selector-dot,
.user-add-modal .glass-modal-container .customer-tile.review-card .selector-dot,
.glass-modal-container .user-add-modal .customer-tile.review-card .selector-dot,
.user-add-modal .glass-modal-container .customer-tile.config-section .selector-dot,
.glass-modal-container .user-add-modal .customer-tile.config-section .selector-dot,
.user-add-modal .glass-modal-container .customer-tile.panel-card .selector-dot,
.glass-modal-container .user-add-modal .customer-tile.panel-card .selector-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: linear-gradient(135deg, #ff6f43, #ff4a2f);
}

.user-add-modal .customer-tile.ui-card:hover, .user-add-modal .glass-modal-container .customer-tile.glass-card:hover, .glass-modal-container .user-add-modal .customer-tile.glass-card:hover,
.user-add-modal .glass-modal-container .customer-tile.glass-panel:hover,
.glass-modal-container .user-add-modal .customer-tile.glass-panel:hover,
.user-add-modal .glass-modal-container .customer-tile.fd-glass:hover,
.glass-modal-container .user-add-modal .customer-tile.fd-glass:hover,
.user-add-modal .glass-modal-container .customer-tile.section-card:hover,
.glass-modal-container .user-add-modal .customer-tile.section-card:hover,
.user-add-modal .glass-modal-container .customer-tile.content-section:hover,
.glass-modal-container .user-add-modal .customer-tile.content-section:hover,
.user-add-modal .glass-modal-container .customer-tile.timeline-card:hover,
.glass-modal-container .user-add-modal .customer-tile.timeline-card:hover,
.user-add-modal .glass-modal-container .customer-tile.entry-section:hover,
.glass-modal-container .user-add-modal .customer-tile.entry-section:hover,
.user-add-modal .glass-modal-container .customer-tile.attachments:hover,
.glass-modal-container .user-add-modal .customer-tile.attachments:hover,
.user-add-modal .glass-modal-container .customer-tile.summary-card:hover,
.glass-modal-container .user-add-modal .customer-tile.summary-card:hover,
.user-add-modal .glass-modal-container .customer-tile.metric-card:hover,
.glass-modal-container .user-add-modal .customer-tile.metric-card:hover,
.user-add-modal .glass-modal-container .customer-tile.review-card:hover,
.glass-modal-container .user-add-modal .customer-tile.review-card:hover,
.user-add-modal .glass-modal-container .customer-tile.config-section:hover,
.glass-modal-container .user-add-modal .customer-tile.config-section:hover,
.user-add-modal .glass-modal-container .customer-tile.panel-card:hover,
.glass-modal-container .user-add-modal .customer-tile.panel-card:hover {
  border-color: var(--ui-border-hover);
  transform: translateY(-1px);
}

.user-add-modal .customer-tile.ui-card.active, .user-add-modal .glass-modal-container .customer-tile.active.glass-card, .glass-modal-container .user-add-modal .customer-tile.active.glass-card,
.user-add-modal .glass-modal-container .customer-tile.active.glass-panel,
.glass-modal-container .user-add-modal .customer-tile.active.glass-panel,
.user-add-modal .glass-modal-container .customer-tile.active.fd-glass,
.glass-modal-container .user-add-modal .customer-tile.active.fd-glass,
.user-add-modal .glass-modal-container .customer-tile.active.section-card,
.glass-modal-container .user-add-modal .customer-tile.active.section-card,
.user-add-modal .glass-modal-container .customer-tile.active.content-section,
.glass-modal-container .user-add-modal .customer-tile.active.content-section,
.user-add-modal .glass-modal-container .customer-tile.active.timeline-card,
.glass-modal-container .user-add-modal .customer-tile.active.timeline-card,
.user-add-modal .glass-modal-container .customer-tile.active.entry-section,
.glass-modal-container .user-add-modal .customer-tile.active.entry-section,
.user-add-modal .glass-modal-container .customer-tile.active.attachments,
.glass-modal-container .user-add-modal .customer-tile.active.attachments,
.user-add-modal .glass-modal-container .customer-tile.active.summary-card,
.glass-modal-container .user-add-modal .customer-tile.active.summary-card,
.user-add-modal .glass-modal-container .customer-tile.active.metric-card,
.glass-modal-container .user-add-modal .customer-tile.active.metric-card,
.user-add-modal .glass-modal-container .customer-tile.active.review-card,
.glass-modal-container .user-add-modal .customer-tile.active.review-card,
.user-add-modal .glass-modal-container .customer-tile.active.config-section,
.glass-modal-container .user-add-modal .customer-tile.active.config-section,
.user-add-modal .glass-modal-container .customer-tile.active.panel-card,
.glass-modal-container .user-add-modal .customer-tile.active.panel-card {
  border-color: rgba(255, 127, 80, 0.5);
}

.user-add-modal .customer-tile.ui-card.active .tile-glow, .user-add-modal .glass-modal-container .customer-tile.active.glass-card .tile-glow, .glass-modal-container .user-add-modal .customer-tile.active.glass-card .tile-glow,
.user-add-modal .glass-modal-container .customer-tile.active.glass-panel .tile-glow,
.glass-modal-container .user-add-modal .customer-tile.active.glass-panel .tile-glow,
.user-add-modal .glass-modal-container .customer-tile.active.fd-glass .tile-glow,
.glass-modal-container .user-add-modal .customer-tile.active.fd-glass .tile-glow,
.user-add-modal .glass-modal-container .customer-tile.active.section-card .tile-glow,
.glass-modal-container .user-add-modal .customer-tile.active.section-card .tile-glow,
.user-add-modal .glass-modal-container .customer-tile.active.content-section .tile-glow,
.glass-modal-container .user-add-modal .customer-tile.active.content-section .tile-glow,
.user-add-modal .glass-modal-container .customer-tile.active.timeline-card .tile-glow,
.glass-modal-container .user-add-modal .customer-tile.active.timeline-card .tile-glow,
.user-add-modal .glass-modal-container .customer-tile.active.entry-section .tile-glow,
.glass-modal-container .user-add-modal .customer-tile.active.entry-section .tile-glow,
.user-add-modal .glass-modal-container .customer-tile.active.attachments .tile-glow,
.glass-modal-container .user-add-modal .customer-tile.active.attachments .tile-glow,
.user-add-modal .glass-modal-container .customer-tile.active.summary-card .tile-glow,
.glass-modal-container .user-add-modal .customer-tile.active.summary-card .tile-glow,
.user-add-modal .glass-modal-container .customer-tile.active.metric-card .tile-glow,
.glass-modal-container .user-add-modal .customer-tile.active.metric-card .tile-glow,
.user-add-modal .glass-modal-container .customer-tile.active.review-card .tile-glow,
.glass-modal-container .user-add-modal .customer-tile.active.review-card .tile-glow,
.user-add-modal .glass-modal-container .customer-tile.active.config-section .tile-glow,
.glass-modal-container .user-add-modal .customer-tile.active.config-section .tile-glow,
.user-add-modal .glass-modal-container .customer-tile.active.panel-card .tile-glow,
.glass-modal-container .user-add-modal .customer-tile.active.panel-card .tile-glow {
  opacity: 1;
}

.user-add-modal .customer-tile.ui-card.active .selector-ring, .user-add-modal .glass-modal-container .customer-tile.active.glass-card .selector-ring, .glass-modal-container .user-add-modal .customer-tile.active.glass-card .selector-ring,
.user-add-modal .glass-modal-container .customer-tile.active.glass-panel .selector-ring,
.glass-modal-container .user-add-modal .customer-tile.active.glass-panel .selector-ring,
.user-add-modal .glass-modal-container .customer-tile.active.fd-glass .selector-ring,
.glass-modal-container .user-add-modal .customer-tile.active.fd-glass .selector-ring,
.user-add-modal .glass-modal-container .customer-tile.active.section-card .selector-ring,
.glass-modal-container .user-add-modal .customer-tile.active.section-card .selector-ring,
.user-add-modal .glass-modal-container .customer-tile.active.content-section .selector-ring,
.glass-modal-container .user-add-modal .customer-tile.active.content-section .selector-ring,
.user-add-modal .glass-modal-container .customer-tile.active.timeline-card .selector-ring,
.glass-modal-container .user-add-modal .customer-tile.active.timeline-card .selector-ring,
.user-add-modal .glass-modal-container .customer-tile.active.entry-section .selector-ring,
.glass-modal-container .user-add-modal .customer-tile.active.entry-section .selector-ring,
.user-add-modal .glass-modal-container .customer-tile.active.attachments .selector-ring,
.glass-modal-container .user-add-modal .customer-tile.active.attachments .selector-ring,
.user-add-modal .glass-modal-container .customer-tile.active.summary-card .selector-ring,
.glass-modal-container .user-add-modal .customer-tile.active.summary-card .selector-ring,
.user-add-modal .glass-modal-container .customer-tile.active.metric-card .selector-ring,
.glass-modal-container .user-add-modal .customer-tile.active.metric-card .selector-ring,
.user-add-modal .glass-modal-container .customer-tile.active.review-card .selector-ring,
.glass-modal-container .user-add-modal .customer-tile.active.review-card .selector-ring,
.user-add-modal .glass-modal-container .customer-tile.active.config-section .selector-ring,
.glass-modal-container .user-add-modal .customer-tile.active.config-section .selector-ring,
.user-add-modal .glass-modal-container .customer-tile.active.panel-card .selector-ring,
.glass-modal-container .user-add-modal .customer-tile.active.panel-card .selector-ring {
  border-color: #ff6f43;
}

.user-add-modal .contact-select-section {
  margin-bottom: 8px;
}

.user-add-modal .contact-select-label {
  margin-bottom: 10px;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: rgba(255, 180, 140, 0.85);
}

.user-add-modal .contact-tiles {
  display: flex;
  gap: 10px;
}

.user-add-modal .contact-tile {
  flex: 1;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  padding: 10px 12px;
  border-radius: var(--ui-radius-md);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-1);
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.user-add-modal .contact-tile:hover {
  border-color: var(--ui-border-hover);
  background: var(--ui-surface-2);
}

.user-add-modal .contact-tile.active {
  border-color: rgba(255, 127, 80, 0.5);
  background: rgba(255, 127, 80, 0.1);
}

.user-add-modal .contact-tile mat-icon {
  width: 18px;
  height: 18px;
  font-size: 18px;
  color: var(--ui-text-muted);
}

.user-add-modal .contact-tile span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--ui-text-secondary);
}

.user-add-modal .contact-check {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: linear-gradient(135deg, #ff6f43, #ff4a2f);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.user-add-modal .contact-check mat-icon {
  width: 14px;
  height: 14px;
  font-size: 14px;
  color: #fff;
}

.user-add-modal .match-actions {
  width: 100%;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.user-add-modal .match-btn {
  min-width: 130px;
}

.user-add-modal .match-btn-link {
  min-width: 96px;
}

@media (max-width: 768px) {
  .user-add-modal {
    width: calc(100vw - 16px);
    min-height: 0;
  }
  .user-add-modal .glass-modal-body {
    padding: 16px;
  }
  .user-add-modal .glass-modal-footer {
    padding: 14px 16px 16px;
  }
  .user-add-modal .contact-tiles {
    flex-direction: column;
  }
  .user-add-modal .match-actions {
    justify-content: stretch;
  }
  .user-add-modal .match-btn {
    width: 100%;
  }
}
@media (max-width: 860px) {
  .user-add-modal .customer-item.ui-card, .user-add-modal .glass-modal-container .customer-item.glass-card, .glass-modal-container .user-add-modal .customer-item.glass-card,
  .user-add-modal .glass-modal-container .customer-item.glass-panel,
  .glass-modal-container .user-add-modal .customer-item.glass-panel,
  .user-add-modal .glass-modal-container .customer-item.fd-glass,
  .glass-modal-container .user-add-modal .customer-item.fd-glass,
  .user-add-modal .glass-modal-container .customer-item.section-card,
  .glass-modal-container .user-add-modal .customer-item.section-card,
  .user-add-modal .glass-modal-container .customer-item.content-section,
  .glass-modal-container .user-add-modal .customer-item.content-section,
  .user-add-modal .glass-modal-container .customer-item.timeline-card,
  .glass-modal-container .user-add-modal .customer-item.timeline-card,
  .user-add-modal .glass-modal-container .customer-item.entry-section,
  .glass-modal-container .user-add-modal .customer-item.entry-section,
  .user-add-modal .glass-modal-container .customer-item.attachments,
  .glass-modal-container .user-add-modal .customer-item.attachments,
  .user-add-modal .glass-modal-container .customer-item.summary-card,
  .glass-modal-container .user-add-modal .customer-item.summary-card,
  .user-add-modal .glass-modal-container .customer-item.metric-card,
  .glass-modal-container .user-add-modal .customer-item.metric-card,
  .user-add-modal .glass-modal-container .customer-item.review-card,
  .glass-modal-container .user-add-modal .customer-item.review-card,
  .user-add-modal .glass-modal-container .customer-item.config-section,
  .glass-modal-container .user-add-modal .customer-item.config-section,
  .user-add-modal .glass-modal-container .customer-item.panel-card,
  .glass-modal-container .user-add-modal .customer-item.panel-card {
    grid-template-columns: 38px minmax(0, 1fr);
    align-items: start;
  }
  .user-add-modal .user-add-customer__avatar {
    grid-row: 1/span 3;
  }
  .user-add-modal .user-add-customer__info,
  .user-add-modal .user-add-customer__type,
  .user-add-modal .user-add-customer__meta {
    grid-column: 2;
  }
  .user-add-modal .user-add-customer__meta {
    justify-content: flex-start;
  }
}
/* ==========================================================================
   DUPLICATE DETECTION — suggestion panel in Add Business form
   ========================================================================== */
.dup-suggestions {
  margin: calc(-1 * var(--ui-space-2)) 0 var(--ui-space-2);
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-md, 10px);
  background: var(--ui-warning-bg);
  border: 1px solid var(--ui-warning-border);
}

.dup-suggestions__header {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin-bottom: var(--ui-space-2);
  font-size: var(--ui-text-xs, 11px);
  font-weight: var(--ui-font-semibold, 600);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ui-warning);
}

.dup-suggestions__header mat-icon {
  width: 16px;
  height: 16px;
  font-size: 16px;
  color: var(--ui-warning);
}

.dup-suggestion-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  padding: var(--ui-space-2) var(--ui-space-3);
  margin-bottom: var(--ui-space-1);
  border-radius: var(--ui-radius-sm, 8px);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  cursor: pointer;
  transition: all 0.2s ease;
}

.dup-suggestion-item:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
}

.dup-suggestion-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.dup-suggestion-name {
  font-size: var(--ui-text-sm, 13px);
  font-weight: var(--ui-font-semibold, 600);
  color: var(--ui-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dup-suggestion-meta {
  font-size: var(--ui-text-xs, 10px);
  color: var(--ui-text-muted);
  font-family: var(--ui-font-mono);
}

.dup-suggestion-score {
  font-size: var(--ui-text-xs, 10px);
  color: var(--ui-text-subtle);
}

.dup-use-btn {
  font-size: var(--ui-text-xs, 10px) !important;
  padding: 2px var(--ui-space-3) !important;
  min-width: 0 !important;
  height: 26px !important;
  line-height: 26px !important;
  border-color: var(--ui-border-hover) !important;
  color: var(--ui-text-secondary) !important;
  flex-shrink: 0;
}

.dup-dismiss-btn {
  display: block;
  width: 100%;
  margin-top: var(--ui-space-1);
  font-size: var(--ui-text-xs, 11px) !important;
  color: var(--ui-text-subtle) !important;
  text-align: center;
}

.dup-checking {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-1) 0;
  font-size: var(--ui-text-xs, 11px);
  color: var(--ui-text-subtle);
}

.dup-checking mat-spinner {
  --mdc-circular-progress-active-indicator-color: var(--ui-warning);
}

/* ==========================================================================
   GLOBAL COMPANY SUGGESTIONS — autocomplete from GlobalParty registry
   ========================================================================== */
.global-selected {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin: calc(-1 * var(--ui-space-2)) 0 var(--ui-space-2);
  padding: 8px var(--ui-space-3);
  border-radius: var(--ui-radius-md, 10px);
  background: rgba(74, 222, 128, 0.08);
  border: 1px solid rgba(74, 222, 128, 0.22);
  font-size: var(--ui-text-xs, 11px);
  font-weight: var(--ui-font-semibold, 600);
  color: #4ade80;
}

.global-selected__icon {
  width: 16px !important;
  height: 16px !important;
  font-size: 16px !important;
  color: #4ade80;
}

.global-selected__clear {
  margin-left: auto;
  width: 24px !important;
  height: 24px !important;
}

.global-selected__clear mat-icon {
  width: 14px !important;
  height: 14px !important;
  font-size: 14px !important;
  color: rgba(255, 255, 255, 0.5);
}

.global-suggestions {
  margin: calc(-1 * var(--ui-space-2)) 0 var(--ui-space-2);
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-md, 10px);
  background: rgba(99, 102, 241, 0.06);
  border: 1px solid rgba(99, 102, 241, 0.18);
}

.global-suggestions__header {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin-bottom: var(--ui-space-2);
  font-size: var(--ui-text-xs, 11px);
  font-weight: var(--ui-font-semibold, 600);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #a5b4fc;
}

.global-suggestions__header mat-icon {
  width: 16px;
  height: 16px;
  font-size: 16px;
  color: #a5b4fc;
}

.global-suggestion-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  padding: var(--ui-space-2) var(--ui-space-3);
  margin-bottom: var(--ui-space-1);
  border-radius: var(--ui-radius-sm, 8px);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  cursor: pointer;
  transition: all 0.2s ease;
}

.global-suggestion-item:hover {
  background: rgba(99, 102, 241, 0.1);
  border-color: rgba(99, 102, 241, 0.3);
}

.global-suggestion-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.global-suggestion-name {
  font-size: var(--ui-text-sm, 13px);
  font-weight: var(--ui-font-semibold, 600);
  color: var(--ui-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.global-suggestion-meta {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-xs, 10px);
  color: var(--ui-text-muted);
}

.global-suggestion-pan {
  font-family: var(--ui-font-mono);
}

.global-suggestion-type {
  padding: 1px 6px;
  border-radius: 4px;
  background: rgba(99, 102, 241, 0.12);
  color: #a5b4fc;
  font-size: 9px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.global-suggestion-tenants {
  flex-shrink: 0;
  padding: 2px 8px;
  border-radius: var(--ui-radius-full, 20px);
  background: rgba(99, 102, 241, 0.1);
  border: 1px solid rgba(99, 102, 241, 0.2);
  font-size: 10px;
  font-weight: 600;
  color: #a5b4fc;
  white-space: nowrap;
}

.global-dismiss-btn {
  display: block;
  width: 100%;
  margin-top: var(--ui-space-1);
  font-size: var(--ui-text-xs, 11px) !important;
  color: var(--ui-text-subtle) !important;
  text-align: center;
}

.global-checking {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-1) 0;
  font-size: var(--ui-text-xs, 11px);
  color: var(--ui-text-subtle);
}

.global-checking mat-spinner {
  --mdc-circular-progress-active-indicator-color: #a5b4fc;
}

/* ==========================================================================
   CUSTOMER TYPE TOGGLE — Individual / Business pill tabs
   ========================================================================== */
.user-add-modal .customer-type-toggle {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 3px;
  border-radius: var(--ui-radius-full, 20px);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  margin-bottom: 4px;
}

.user-add-modal .type-toggle-btn {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 16px;
  border: 1px solid transparent;
  border-radius: var(--ui-radius-full, 20px);
  background: transparent;
  color: rgba(255, 255, 255, 0.5);
  font-size: var(--ui-text-sm, 13px);
  font-weight: var(--ui-font-medium, 500);
  cursor: pointer;
  transition: all 0.25s ease;
  white-space: nowrap;
}

.user-add-modal .type-toggle-btn mat-icon {
  width: 18px;
  height: 18px;
  font-size: 18px;
  transition: color 0.25s ease;
}

.user-add-modal .type-toggle-btn:hover:not(.active) {
  color: rgba(255, 255, 255, 0.75);
  background: rgba(255, 255, 255, 0.04);
}

.user-add-modal .type-toggle-btn.active {
  background: rgba(255, 127, 80, 0.14);
  border-color: rgba(255, 127, 80, 0.3);
  color: rgba(255, 190, 155, 0.95);
  font-weight: var(--ui-font-semibold, 600);
}

.user-add-modal .type-toggle-btn.active mat-icon {
  color: rgba(255, 190, 155, 0.95);
}

/* Loading spinner inside primary button */
.user-add-modal .match-btn-primary mat-spinner {
  --mdc-circular-progress-active-indicator-color: #fff;
}

/* ==========================================================================
   ISSUE PARTS MODAL — SCOPED LAYOUT
   ==========================================================================
   Scoped under: .ui-modal--fullscreen .edit-parts-modal

   This file handles ONLY:
   - 4-zone layout (header, summary strip, scrollable content, footer)
   - Section spacing and grid definitions
   - Sticky header/footer behavior
   - Scroll containers

   NO colors, NO shadows, NO typography overrides, NO component visuals.
   Those come from existing UI contracts (glass-modal, ui-table, ui-btn).
   ========================================================================== */
/* --------------------------------------------------------------------------
   ZONE 2: Summary Strip — the service-meta + financial-summary section
   -------------------------------------------------------------------------- */
.ui-modal--fullscreen .edit-parts-modal .service-meta {
  flex-shrink: 0;
  padding: var(--ui-space-4) var(--ui-space-6);
  border-bottom: 1px solid var(--ui-border-light);
}

.ui-modal--fullscreen .edit-parts-modal .meta-split-layout {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: var(--ui-space-6);
  align-items: start;
}

.ui-modal--fullscreen .edit-parts-modal .meta-left {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.ui-modal--fullscreen .edit-parts-modal .details-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.ui-modal--fullscreen .edit-parts-modal .detail-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ui-modal--fullscreen .edit-parts-modal .detail-row > label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.5);
}

.ui-modal--fullscreen .edit-parts-modal .static-field {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 40px;
  padding: 0 12px;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.7);
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 10px;
}

.ui-modal--fullscreen .edit-parts-modal .static-field.disabled {
  opacity: 0.6;
}

.ui-modal--fullscreen .edit-parts-modal .lock-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: rgba(255, 255, 255, 0.3);
}

.ui-modal--fullscreen .edit-parts-modal .tech-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.ui-modal--fullscreen .edit-parts-modal .clean-field {
  width: 100%;
}

.ui-modal--fullscreen .edit-parts-modal .clean-field .mat-mdc-text-field-wrapper {
  height: 40px;
  min-height: 40px;
  padding: 0 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
}

.ui-modal--fullscreen .edit-parts-modal .clean-field .mat-mdc-form-field-subscript-wrapper {
  display: none;
}

@media (max-width: 768px) {
  .ui-modal--fullscreen .edit-parts-modal .meta-split-layout {
    grid-template-columns: 1fr;
  }
  .ui-modal--fullscreen .edit-parts-modal .details-grid,
  .ui-modal--fullscreen .edit-parts-modal .tech-grid {
    grid-template-columns: 1fr;
  }
}
/* --------------------------------------------------------------------------
   Financial summary within the strip
   -------------------------------------------------------------------------- */
.ui-modal--fullscreen .edit-parts-modal .financial-summary {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-lg);
  background: rgba(0, 0, 0, 0.18);
  border: 1px solid var(--ui-border-light);
  max-width: 380px;
  min-width: 320px;
  margin-left: auto;
}

.ui-modal--fullscreen .edit-parts-modal .summary-divider {
  height: 1px;
  background: var(--ui-border-light);
  margin: var(--ui-space-1) 0;
}

/* --------------------------------------------------------------------------
   ZONE 3: Scrollable body — form content
   --------------------------------------------------------------------------
   Strategy: The body is the ONLY scroll container. All inner elements
   (form, table-card, table-wrap) flow at natural/intrinsic height so
   the full table is visible without nested scrolling.
   -------------------------------------------------------------------------- */
.ui-modal--fullscreen .edit-parts-modal .glass-modal-body {
  padding: var(--ui-space-5) var(--ui-space-6);
}

.ui-modal--fullscreen .edit-parts-modal .glass-modal-body > form {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
}

/* --------------------------------------------------------------------------
   Table section within the body
   -------------------------------------------------------------------------- */
.ui-modal--fullscreen .edit-parts-modal .table-card {
  flex: 0 0 auto;
}

/* .section-header inherits from base UI contract */
/* Override the page-level .ui-table tbody max-height inside this modal */
.ui-modal--fullscreen .edit-parts-modal .ui-table tbody, .ui-modal--fullscreen .edit-parts-modal .premium-table tbody, .ui-modal--fullscreen .edit-parts-modal .glass-table tbody {
  max-height: none;
  overflow: visible;
}

/* --------------------------------------------------------------------------
   ZONE 4: Sticky Footer
   -------------------------------------------------------------------------- */
.ui-modal--fullscreen .edit-parts-modal .glass-modal-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ui-space-3);
  padding: var(--ui-space-4) var(--ui-space-6);
  border-top: 1px solid var(--ui-border);
  background: rgba(0, 0, 0, 0.2);
  flex-shrink: 0;
}

/* --------------------------------------------------------------------------
   Product Detail Button — inline icon inside item name input for issued parts
   -------------------------------------------------------------------------- */
.product-input-wrapper {
  position: relative;
}
.product-input-wrapper .table-input {
  width: 100%;
  padding-right: 30px;
}

.product-detail-btn {
  position: absolute;
  right: 4px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  min-width: 22px;
  padding: 0;
  border: none;
  border-radius: var(--ui-radius-sm);
  background: transparent;
  color: var(--ui-accent);
  cursor: pointer;
  opacity: 0.5;
  transition: opacity var(--ui-transition-base);
}
.product-detail-btn:hover {
  opacity: 1;
}
.product-detail-btn mat-icon {
  font-size: 16px;
  height: 16px;
  width: 16px;
}

/* ==========================================================================
   UI MODALS - SIDE NAVIGATION MODAL
   ==========================================================================
   Generic contract for modals with left-side navigation + right-side content.

   Usage:
   <div class="glass-modal-container ui-side-nav-modal">
     <div class="ui-side-nav-layout">
       <nav class="ui-side-nav">
         <a class="ui-side-nav-item is-active" href="#tab-1">
           <mat-icon>icon</mat-icon> Tab 1
         </a>
         <a class="ui-side-nav-item" href="#tab-2">
           <mat-icon>icon</mat-icon> Tab 2
         </a>
       </nav>
       <div class="ui-side-nav-content">
         <!-- content here -->
       </div>
     </div>
   </div>
   ========================================================================== */
/* Two-Column Grid Layout */
.ui-side-nav-layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: var(--ui-space-5);
  min-height: 500px;
}

/* XLarge/Edit-Info variant - fills modal height and prevents short content columns */
.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-layout,
.cdk-overlay-pane.ui-modal--xlarge .ui-side-nav-layout {
  grid-template-columns: clamp(260px, 24vw, 320px) minmax(0, 1fr);
  min-height: 0;
  height: 100%;
  align-items: stretch;
}

/* Left Navigation Panel */
.ui-side-nav {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  padding: var(--ui-space-5);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-lg);
  height: fit-content;
}

/* Navigation Item - WCAG AA Compliant */
.ui-side-nav-item {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  width: 100% !important;
  gap: var(--ui-space-3) !important;
  padding: var(--ui-space-3) var(--ui-space-4) !important;
  border: 1px solid transparent !important;
  border-radius: var(--ui-radius-md) !important;
  background: transparent !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  box-shadow: none !important;
  /* High contrast for readability - WCAG AA (4.5:1) */
  color: var(--ui-text-muted) !important; /* rgba(255,255,255,0.55) */
  font-size: var(--ui-text-base) !important;
  font-weight: var(--ui-font-medium) !important;
  font-family: inherit !important;
  text-align: left !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transition: var(--ui-transition-base) !important;
  margin-bottom: 0 !important;
}

/* Hover State */
.ui-side-nav-item:hover:not(.is-active) {
  background: var(--ui-surface-hover) !important;
  color: var(--ui-text-secondary) !important; /* Higher contrast on hover */
  border-color: var(--ui-border) !important;
}

/* Active State - Maximum Contrast */
.ui-side-nav-item.is-active,
.ui-side-nav-item.active,
.ui-side-nav-item.show {
  background: linear-gradient(145deg, rgba(255, 120, 70, 0.12), rgba(255, 153, 102, 0.08)) !important;
  border: 1px solid rgba(255, 153, 102, 0.25) !important;
  color: var(--ui-text-primary) !important; /* Maximum contrast - white */
  font-weight: var(--ui-font-semibold) !important;
  box-shadow: 0 2px 12px rgba(255, 120, 70, 0.15);
}

/* Focus State - Accessibility */
.ui-side-nav-item:focus-visible {
  outline: 2px solid var(--ui-brand-light) !important;
  outline-offset: 2px !important;
}

/* Icon Styling */
.ui-side-nav-item mat-icon,
.ui-side-nav-item .mat-icon,
.ui-side-nav-item .nav-icon {
  font-size: 20px !important;
  width: 20px !important;
  height: 20px !important;
  color: var(--ui-text-subtle) !important;
  transition: color var(--ui-transition-base) !important;
  flex-shrink: 0 !important;
}

/* Icon Hover State */
.ui-side-nav-item:hover mat-icon,
.ui-side-nav-item:hover .mat-icon,
.ui-side-nav-item:hover .nav-icon {
  color: var(--ui-text-muted) !important;
}

/* Icon Active State */
.ui-side-nav-item.is-active mat-icon,
.ui-side-nav-item.active mat-icon,
.ui-side-nav-item.show mat-icon,
.ui-side-nav-item.is-active .mat-icon,
.ui-side-nav-item.active .mat-icon,
.ui-side-nav-item.show .mat-icon,
.ui-side-nav-item.is-active .nav-icon,
.ui-side-nav-item.active .nav-icon,
.ui-side-nav-item.show .nav-icon {
  color: var(--ui-brand-light) !important;
}

/* Right Content Area */
.ui-side-nav-content {
  padding: var(--ui-space-5);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-lg);
  overflow-y: auto;
  max-height: 600px;
}

.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav,
.cdk-overlay-pane.ui-modal--xlarge .ui-side-nav {
  height: 100%;
}

.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content,
.cdk-overlay-pane.ui-modal--xlarge .ui-side-nav-content {
  max-height: none;
  min-height: 0;
  height: 100%;
}

/* Edit Job Details variant - remove unintended outline/frame artifacts */
.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content {
  border: none;
  box-shadow: none;
}

.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content > .tab-content,
.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content > .tab-content > .tab-pane {
  border: none;
  box-shadow: none;
}

/* Account Settings parity for Edit Job Details modal */
.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav {
  padding: var(--ui-space-3);
  gap: var(--ui-space-1);
  background: var(--ui-glass-light);
  border: 1px solid var(--ui-border-light);
  box-shadow: var(--ui-shadow-md);
  backdrop-filter: var(--ui-blur-sm);
  -webkit-backdrop-filter: var(--ui-blur-sm);
  border-radius: var(--ui-radius-xl);
}

.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-item {
  gap: var(--ui-space-3) !important;
  padding: var(--ui-space-3) var(--ui-space-4) !important;
  border-radius: var(--ui-radius-md) !important;
  color: var(--ui-text-secondary) !important;
  font-size: var(--ui-text-sm) !important;
  font-weight: var(--ui-font-semibold) !important;
  letter-spacing: 0.02em !important;
  text-transform: uppercase !important;
  position: relative !important;
}

.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-item:hover:not(.is-active) {
  background: var(--ui-surface-hover) !important;
  border-color: transparent !important;
  color: var(--ui-text-primary) !important;
}

.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-item.is-active,
.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-item.active,
.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-item.show {
  background: var(--ui-surface-hover) !important;
  border-color: var(--ui-border-hover) !important;
  color: var(--ui-brand-light) !important;
}

.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-item.is-active::before,
.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-item.active::before,
.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-item.show::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 22px;
  background: var(--ui-brand);
  border-radius: 0 var(--ui-radius-xs) var(--ui-radius-xs) 0;
}

.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .glass-card-inner.ui-card.ui-card--solid, .cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .glass-modal-container .glass-card-inner.ui-card--solid.glass-card, .glass-modal-container .cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .glass-card-inner.ui-card--solid.glass-card,
.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .glass-modal-container .glass-card-inner.ui-card--solid.glass-panel,
.glass-modal-container .cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .glass-card-inner.ui-card--solid.glass-panel,
.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .glass-modal-container .glass-card-inner.ui-card--solid.fd-glass,
.glass-modal-container .cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .glass-card-inner.ui-card--solid.fd-glass,
.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .glass-modal-container .glass-card-inner.ui-card--solid.section-card,
.glass-modal-container .cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .glass-card-inner.ui-card--solid.section-card,
.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .glass-modal-container .glass-card-inner.ui-card--solid.content-section,
.glass-modal-container .cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .glass-card-inner.ui-card--solid.content-section,
.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .glass-modal-container .glass-card-inner.ui-card--solid.timeline-card,
.glass-modal-container .cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .glass-card-inner.ui-card--solid.timeline-card,
.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .glass-modal-container .glass-card-inner.ui-card--solid.entry-section,
.glass-modal-container .cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .glass-card-inner.ui-card--solid.entry-section,
.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .glass-modal-container .glass-card-inner.ui-card--solid.attachments,
.glass-modal-container .cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .glass-card-inner.ui-card--solid.attachments,
.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .glass-modal-container .glass-card-inner.ui-card--solid.summary-card,
.glass-modal-container .cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .glass-card-inner.ui-card--solid.summary-card,
.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .glass-modal-container .glass-card-inner.ui-card--solid.metric-card,
.glass-modal-container .cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .glass-card-inner.ui-card--solid.metric-card,
.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .glass-modal-container .glass-card-inner.ui-card--solid.review-card,
.glass-modal-container .cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .glass-card-inner.ui-card--solid.review-card,
.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .glass-modal-container .glass-card-inner.ui-card--solid.config-section,
.glass-modal-container .cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .glass-card-inner.ui-card--solid.config-section,
.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .glass-modal-container .glass-card-inner.ui-card--solid.panel-card,
.glass-modal-container .cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .glass-card-inner.ui-card--solid.panel-card {
  margin-bottom: var(--ui-space-4);
  padding: var(--ui-space-5) var(--ui-space-6);
  border-radius: var(--ui-radius-xl);
}

/* Match Settings page field treatment (same visual contract values) */
.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .mat-mdc-form-field {
  width: 100%;
}

.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .mat-mdc-text-field-wrapper {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  padding: 0 14px;
  min-height: 48px;
  height: 48px;
  transition: all 0.2s ease;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .mat-mdc-form-field-flex {
  min-height: 48px;
  height: 48px;
  align-items: center;
}

.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .mat-mdc-form-field-infix {
  padding-top: 20px;
  padding-bottom: 6px;
  min-height: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  border-top: 0;
}

.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .mat-mdc-floating-label {
  top: 26px;
  color: rgba(255, 255, 255, 0.5);
  font-size: 14px;
  font-weight: 400;
}

.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .mat-mdc-floating-label--float-above {
  transform: translateY(-120%) scale(0.75);
  color: rgba(255, 255, 255, 0.6);
}

.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .mat-mdc-text-field-wrapper:hover {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.12);
}

.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .mat-mdc-form-field.mat-focused .mat-mdc-text-field-wrapper {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 140, 80, 0.45);
  box-shadow: 0 0 0 3px rgba(255, 140, 80, 0.12);
}

.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .mat-mdc-input-element {
  color: rgba(255, 255, 255, 0.92);
  font-size: 14px;
  font-weight: 500;
  caret-color: #ff8c50;
}

.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content textarea.mat-mdc-input-element {
  min-height: 80px;
  resize: vertical;
}

.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .mat-mdc-form-field:has(textarea) .mat-mdc-text-field-wrapper {
  height: auto;
  min-height: 100px;
}

.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .mat-mdc-form-field:has(textarea) .mat-mdc-form-field-flex {
  min-height: 100px;
  height: auto;
  align-items: flex-start;
}

.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .mat-mdc-form-field:has(textarea) .mat-mdc-form-field-infix {
  min-height: 100px;
  height: auto;
  padding-top: 22px;
  padding-bottom: 12px;
  align-items: flex-start;
}

/* Keep vertical breathing room equal on top/bottom in Edit Job Details */
.cdk-overlay-pane.activity-edit-info-panel .glass-modal-body {
  padding-bottom: var(--ui-space-6) !important;
}

/* Custom Scrollbar for Content */
.ui-side-nav-content::-webkit-scrollbar {
  width: 8px;
}

.ui-side-nav-content::-webkit-scrollbar-track {
  background: transparent;
}

.ui-side-nav-content::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.1);
  border-radius: 4px;
}

.ui-side-nav-content::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.15);
}

/* Content Inner Sections */
.ui-side-nav-content .glass-card-inner {
  padding: var(--ui-space-6);
  margin-bottom: var(--ui-space-6);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-md);
}

.ui-side-nav-content .glass-card-inner:last-child {
  margin-bottom: 0;
}

.ui-side-nav-content .glass-card-inner .card-title {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  margin: 0 0 var(--ui-space-5) 0;
  padding-bottom: var(--ui-space-3);
  border-bottom: 1px solid var(--ui-border-light);
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
}

.ui-side-nav-content .glass-card-inner .card-title mat-icon,
.ui-side-nav-content .glass-card-inner .card-title .mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: var(--ui-brand-light);
}

/* Form Grid Layout */
.ui-side-nav-content .form-grid {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

/* Section Divider — separates sub-sections within a card */
.ui-side-nav-content .ui-section-divider {
  margin: var(--ui-space-4) 0 var(--ui-space-3) 0;
  padding-top: var(--ui-space-4);
  border-top: 1px solid var(--ui-border-light);
}

.ui-side-nav-content .ui-section-subtitle {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin: 0 0 var(--ui-space-1) 0;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.ui-side-nav-content .ui-section-icon {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
  color: var(--ui-brand-light);
}

.ui-side-nav-content .ui-section-hint {
  margin: 0;
  font-size: var(--ui-text-xs);
  color: var(--ui-text-subtle);
  font-weight: var(--ui-font-normal);
  padding-bottom: var(--ui-space-2);
}

/* Convert to Business action link */
.ui-side-nav-content .convert-business-action {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin: var(--ui-space-4) 0 0 0;
  padding: var(--ui-space-2) var(--ui-space-4);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  color: var(--ui-brand-light);
  cursor: pointer;
  border: 1px dashed rgba(var(--ui-brand-rgb, 255, 152, 0), 0.35);
  border-radius: var(--ui-radius-sm);
  transition: all 0.2s ease;
  letter-spacing: 0.02em;
}
.ui-side-nav-content .convert-business-action mat-icon {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
  opacity: 0.8;
}
.ui-side-nav-content .convert-business-action:hover {
  background: rgba(var(--ui-brand-rgb, 255, 152, 0), 0.08);
  border-color: rgba(var(--ui-brand-rgb, 255, 152, 0), 0.5);
  color: var(--ui-brand);
}

/* Form Actions */
.ui-side-nav-content .form-actions {
  display: flex;
  justify-content: flex-end;
  gap: var(--ui-space-3);
  margin-top: var(--ui-space-5);
  padding-top: var(--ui-space-5);
  border-top: 1px solid var(--ui-border-light);
}

.cdk-overlay-pane.activity-edit-info-panel .ui-side-nav-content .form-actions {
  justify-content: flex-start;
}

/* ==========================================================================
   RESPONSIVE BEHAVIOR
   ========================================================================== */
/* Tablets and below */
@media (max-width: 900px) {
  .ui-side-nav-layout {
    grid-template-columns: 1fr;
    gap: var(--ui-space-4);
  }
  .ui-side-nav {
    padding: var(--ui-space-4);
    flex-direction: row;
    flex-wrap: wrap;
    gap: var(--ui-space-2);
  }
  .ui-side-nav-item {
    flex: 0 0 auto;
    font-size: var(--ui-text-sm) !important;
    padding: var(--ui-space-2) var(--ui-space-3) !important;
  }
  .ui-side-nav-item mat-icon,
  .ui-side-nav-item .mat-icon,
  .ui-side-nav-item .nav-icon {
    font-size: 18px !important;
    width: 18px !important;
    height: 18px !important;
  }
  .ui-side-nav-content {
    max-height: 500px;
  }
}
/* Mobile */
@media (max-width: 600px) {
  .ui-side-nav {
    flex-direction: column;
  }
  .ui-side-nav-item {
    flex: 1 1 auto;
  }
  .ui-side-nav-content .glass-card-inner {
    padding: var(--ui-space-4);
  }
}
/* ==========================================================================
   ADDRESS CARD LIST — Customer Address section in Edit Jobcard
   ========================================================================== */
.address-card-list {
  margin-bottom: var(--ui-space-4);
}

.address-radio-group {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
}

.address-card {
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--ui-radius-md, 10px);
  background: rgba(255, 255, 255, 0.02);
  transition: all 0.2s ease;
  overflow: hidden;
}

.address-card:hover {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.12);
}

.address-card--selected {
  background: rgba(255, 120, 70, 0.06) !important;
  border-color: rgba(255, 140, 80, 0.35) !important;
  box-shadow: 0 0 0 1px rgba(255, 140, 80, 0.1);
}

.address-card .address-radio {
  width: 100%;
}

.address-card .address-radio .mdc-form-field,
.address-card .address-radio .mat-mdc-radio-button {
  width: 100% !important;
}

.address-card .address-radio label {
  width: 100% !important;
  padding: 12px 14px !important;
  margin: 0 !important;
  cursor: pointer;
}

.address-card__body {
  display: flex;
  flex-direction: column;
  gap: 3px;
  white-space: normal;
}

.address-card__line1 {
  font-size: 14px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.92);
  line-height: 1.4;
}

.address-card__line2 {
  font-size: 12px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.4;
}

.address-card__gstin {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 4px;
  padding: 2px 8px;
  background: rgba(255, 140, 80, 0.08);
  border: 1px solid rgba(255, 140, 80, 0.18);
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 170, 110, 0.9);
  letter-spacing: 0.03em;
  width: fit-content;
}

.address-card__gstin-icon {
  font-size: 13px !important;
  width: 13px !important;
  height: 13px !important;
  color: rgba(255, 140, 80, 0.6) !important;
}

.address-card__row {
  display: flex;
  align-items: center;
  gap: 4px;
}

.address-card__row .address-radio {
  flex: 1;
  min-width: 0;
}

.address-card__edit {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: none;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.35);
  cursor: pointer;
  transition: all 0.2s ease;
}
.address-card__edit mat-icon, .address-card__edit .mat-icon {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
}
.address-card__edit:hover {
  background: rgba(255, 140, 80, 0.1);
  color: rgba(255, 170, 110, 0.9);
}

.address-card__delete {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin-left: 6px;
  margin-right: 10px;
  border: none;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.35);
  cursor: pointer;
  transition: all 0.2s ease;
}
.address-card__delete mat-icon, .address-card__delete .mat-icon {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
}
.address-card__delete:hover {
  background: rgba(244, 67, 54, 0.1);
  color: rgba(244, 67, 54, 0.9);
}

/* ==========================================================================
   MODAL - ORG POLICIES
   ==========================================================================
   Organization-level default permission management dialog.
   Owns sizing and layout for the org policies workspace while composing with
   the shared modal contract from layout/modal.scss.
   ========================================================================== */
/* ==========================================================================
   PANEL REGISTRATION
   ========================================================================== */
body .cdk-overlay-pane.org-policies-dialog-panel {
  width: min(1120px, 100vw - var(--ui-space-12)) !important;
  max-width: min(1120px, 100vw - var(--ui-space-12)) !important;
  height: min(88vh, 100vh - var(--ui-space-12)) !important;
  max-height: min(88vh, 100vh - var(--ui-space-12)) !important;
  margin: auto !important;
}

@supports (height: 100dvh) {
  body .cdk-overlay-pane.org-policies-dialog-panel {
    height: min(88dvh, 100dvh - var(--ui-space-12)) !important;
    max-height: min(88dvh, 100dvh - var(--ui-space-12)) !important;
  }
}
body .cdk-overlay-pane.org-policies-dialog-panel .mat-mdc-dialog-container,
body .cdk-overlay-pane.org-policies-dialog-panel .mdc-dialog__container,
body .cdk-overlay-pane.org-policies-dialog-panel .mdc-dialog__surface,
body .cdk-overlay-pane.org-policies-dialog-panel .mat-mdc-dialog-surface {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border: none !important;
  padding: 0 !important;
  border-radius: var(--ui-radius-2xl) !important;
  overflow: hidden !important;
  height: 100% !important;
}

body .cdk-overlay-pane.org-policies-dialog-panel .mdc-dialog__surface > *,
body .cdk-overlay-pane.org-policies-dialog-panel .mat-mdc-dialog-surface > * {
  display: block !important;
  height: 100% !important;
}

/* ==========================================================================
   MODAL SHELL
   ========================================================================== */
.org-policies-dialog.ui-modal__panel, .org-policies-dialog.glass-modal-container {
  width: 100%;
  max-width: none;
  max-height: none;
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
}

.org-policies-dialog .ui-modal__header {
  align-items: flex-start;
  gap: var(--ui-space-4);
  padding: var(--ui-space-5) var(--ui-space-6);
}

.org-policies-dialog .ui-modal__header-actions {
  gap: var(--ui-space-3);
}

.org-policies-dialog__icon {
  width: 48px;
  height: 48px;
  border-radius: var(--ui-radius-lg);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--ui-warning-bg), var(--ui-surface-2));
  border: 1px solid var(--ui-warning-border);
  color: var(--ui-brand);
  box-shadow: var(--ui-shadow-sm);
  flex: 0 0 auto;
}

.org-policies-dialog__icon mat-icon {
  font-size: 22px;
  width: 22px;
  height: 22px;
}

.org-policies-dialog__title-block {
  min-width: 0;
}

.org-policies-dialog__header-stats {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.org-policies-dialog__stat-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-1);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  white-space: nowrap;
  cursor: default;
}

.org-policies-dialog__stat-chip strong {
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-lg);
}

.org-policies-dialog__stat-chip--risk {
  border-color: var(--ui-warning-border);
  background: var(--ui-warning-bg);
}

.org-policies-dialog__stat-chip--risk strong {
  color: var(--ui-brand);
}

/* ==========================================================================
   SUMMARY STRIP
   ========================================================================== */
.org-policies-dialog .org-policies-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ui-space-3);
  padding: var(--ui-space-4) var(--ui-space-6);
  border-bottom: 1px solid var(--ui-border);
  background: linear-gradient(180deg, var(--ui-surface-1), transparent);
}

.org-policies-dialog .org-policies-summary__stat {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-lg);
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-1);
}

.org-policies-dialog .org-policies-summary__stat--risk {
  background: linear-gradient(135deg, var(--ui-warning-bg), var(--ui-surface-1));
  border-color: var(--ui-warning-border);
}

.org-policies-dialog .org-policies-summary__label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ui-text-muted);
}

.org-policies-dialog .org-policies-summary__value {
  font-size: var(--ui-text-2xl);
  line-height: 1;
  color: var(--ui-text-primary);
}

.org-policies-dialog .org-policies-summary__meta {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.org-policies-dialog .org-policies-summary__note {
  grid-column: 1/-1;
  margin: 0;
  padding: var(--ui-space-3) var(--ui-space-4);
  border-radius: var(--ui-radius-lg);
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-1);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  line-height: 1.5;
}

/* ==========================================================================
   BODY + CATEGORY STACK
   ========================================================================== */
.org-policies-dialog .ui-modal__body {
  gap: 0;
  padding: var(--ui-space-5) var(--ui-space-6);
  min-height: 0;
}

.org-policies-dialog .org-policies-list {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  min-height: 0;
}

.org-policies-dialog .org-policies-domain {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  padding: 0;
  border-radius: var(--ui-radius-lg);
  border: 1px solid var(--ui-border-light);
  background: linear-gradient(180deg, var(--ui-surface-1), transparent);
  transition: border-color var(--ui-transition-base), background var(--ui-transition-base), box-shadow var(--ui-transition-base);
  cursor: pointer;
}

.org-policies-dialog .org-policies-domain.has-selection {
  border-color: var(--ui-border-hover);
  background: linear-gradient(180deg, var(--ui-surface-2), transparent);
}

.org-policies-dialog .org-policies-domain:not(.has-selection):not(.is-expanded) {
  opacity: 0.5;
}

.org-policies-dialog .org-policies-domain:not(.has-selection):not(.is-expanded):hover {
  opacity: 0.8;
}

.org-policies-dialog .org-policies-domain.is-expanded {
  box-shadow: var(--ui-shadow-sm);
}

.org-policies-dialog .org-policies-domain-header {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
}

.org-policies-dialog .org-policies-domain-toggle {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-4);
  padding: var(--ui-space-2) var(--ui-space-4);
  border: none;
  border-radius: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  transition: background var(--ui-transition-base);
}

.org-policies-dialog .org-policies-domain:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border);
}

.org-policies-dialog .domain-name {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  min-width: 0;
}

.org-policies-dialog .domain-icon-shell {
  width: 40px;
  height: 40px;
  border-radius: var(--ui-radius-md);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border);
  color: var(--ui-brand);
  flex: 0 0 auto;
}

.org-policies-dialog .domain-icon-shell mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
}

.org-policies-dialog .domain-name__text {
  min-width: 0;
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.org-policies-dialog .domain-meta {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-3);
  flex: 0 0 auto;
}

.org-policies-dialog .domain-count {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  min-height: 32px;
  padding: 0 var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-1);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  white-space: nowrap;
}

.org-policies-dialog .domain-count .active-count {
  color: var(--ui-brand);
  font-weight: var(--ui-font-semibold);
}

.org-policies-dialog .domain-chevron {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: var(--ui-text-muted);
  transition: transform var(--ui-transition-base);
}

.org-policies-dialog .domain-chevron.expanded {
  transform: rotate(180deg);
}

.org-policies-dialog .domain-select-all-btn {
  flex: 0 0 auto;
  min-height: 32px;
  padding: 0 var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-1);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  white-space: nowrap;
  transition: background var(--ui-transition-base), border-color var(--ui-transition-base), color var(--ui-transition-base);
}

.org-policies-dialog .domain-select-all-btn:hover {
  background: var(--ui-surface-3);
  border-color: var(--ui-border-hover);
  color: var(--ui-text-primary);
}

.org-policies-dialog .org-policies-subgroup-label {
  margin: 0 var(--ui-space-2);
  padding: 0 var(--ui-space-2);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: var(--ui-space-2) var(--ui-space-3) var(--ui-space-1);
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
}

.org-policies-dialog .org-policies-subgroup-label.self-service {
  color: var(--ui-accent);
}

.org-policies-dialog .org-policies-subgroup-label.self-service mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.org-policies-dialog .org-policies-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ui-space-3);
  padding: 0 var(--ui-space-2) var(--ui-space-2);
}

/* ==========================================================================
   PERMISSION ROWS
   ========================================================================== */
.org-policies-dialog .org-policies-perm {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  min-height: 56px;
  padding: var(--ui-space-3) var(--ui-space-4);
  border-radius: var(--ui-radius-lg);
  border: 1px solid transparent;
  background: var(--ui-surface-1);
  cursor: pointer;
  transition: background var(--ui-transition-base), border-color var(--ui-transition-base), transform var(--ui-transition-fast);
}

.org-policies-dialog .org-policies-perm:hover {
  background: var(--ui-surface-2);
  border-color: var(--ui-border);
}

.org-policies-dialog .org-policies-perm.is-selected {
  background: linear-gradient(135deg, var(--ui-surface-active), var(--ui-surface-2));
  border-color: var(--ui-border-hover);
}

.org-policies-dialog .org-policies-perm mat-checkbox {
  flex: 0 0 auto;
}

.org-policies-dialog .org-policies-perm .perm-label {
  flex: 1 1 auto;
  min-width: 0;
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-secondary);
  line-height: 1.45;
}

.org-policies-dialog .org-policies-perm.is-selected .perm-label {
  color: var(--ui-text-primary);
}

.org-policies-dialog .org-policies-perm .perm-risk {
  flex: 0 0 auto;
  min-width: 68px;
  padding: 6px var(--ui-space-2);
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border-light);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.08em;
  text-align: center;
  text-transform: uppercase;
}

.org-policies-dialog .org-policies-perm .perm-risk.risk-low {
  background: var(--ui-surface-2);
  color: var(--ui-text-muted);
}

.org-policies-dialog .org-policies-perm .perm-risk.risk-medium {
  background: rgba(255, 120, 117, 0.12);
  border-color: rgba(255, 120, 117, 0.3);
  color: #ff7875;
}

.org-policies-dialog .org-policies-perm .perm-risk.risk-high {
  background: rgba(255, 77, 79, 0.15);
  border-color: rgba(255, 77, 79, 0.4);
  color: #ff4d4f;
}

.org-policies-dialog .org-policies-perm .perm-risk.risk-critical {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.org-policies-dialog .ui-modal__footer {
  padding: var(--ui-space-4) var(--ui-space-6);
}

.org-policies-dialog .org-policies-footer-note {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1080px) {
  .org-policies-dialog .org-policies-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .org-policies-dialog .org-policies-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 760px) {
  body .cdk-overlay-pane.org-policies-dialog-panel {
    width: calc(100vw - var(--ui-space-6)) !important;
    max-width: calc(100vw - var(--ui-space-6)) !important;
    height: calc(100vh - var(--ui-space-6)) !important;
    max-height: calc(100vh - var(--ui-space-6)) !important;
  }
  @supports (height: 100dvh) {
    body .cdk-overlay-pane.org-policies-dialog-panel {
      height: calc(100dvh - var(--ui-space-6)) !important;
      max-height: calc(100dvh - var(--ui-space-6)) !important;
    }
  }
  .org-policies-dialog .ui-modal__header,
  .org-policies-dialog .org-policies-summary,
  .org-policies-dialog .ui-modal__body,
  .org-policies-dialog .ui-modal__footer {
    padding-left: var(--ui-space-4);
    padding-right: var(--ui-space-4);
  }
  .org-policies-dialog .ui-modal__header {
    flex-direction: column;
  }
  .org-policies-dialog .ui-modal__header-actions {
    width: 100%;
    justify-content: space-between;
  }
  .org-policies-dialog .org-policies-summary {
    grid-template-columns: 1fr;
  }
  .org-policies-dialog .org-policies-domain-header {
    flex-direction: column;
    align-items: stretch;
  }
  .org-policies-dialog .org-policies-domain-toggle {
    padding: var(--ui-space-3);
  }
  .org-policies-dialog .domain-meta {
    gap: var(--ui-space-2);
  }
  .org-policies-dialog .domain-select-all-btn {
    width: 100%;
  }
  .org-policies-dialog .org-policies-grid {
    grid-template-columns: 1fr;
  }
  .org-policies-dialog .ui-modal__footer {
    flex-direction: column;
    align-items: stretch;
  }
  .org-policies-dialog .ui-modal__footer .footer-left,
  .org-policies-dialog .ui-modal__footer .footer-right {
    width: 100%;
  }
  .org-policies-dialog .ui-modal__footer .footer-right {
    justify-content: flex-start;
  }
  .org-policies-dialog .ui-modal__footer .footer-right > * {
    flex: 1 1 0;
    justify-content: center;
  }
}
/* ==========================================================================
   MODAL - TEMPLATE DETAIL
   ==========================================================================
   Wide permission blueprint viewer opened from the Permissions page template
   catalog. Owns panel sizing and dense permission-group layout.
   ========================================================================== */
body .cdk-overlay-pane.template-detail-dialog-panel {
  width: min(1240px, 100vw - var(--ui-space-10)) !important;
  max-width: min(1240px, 100vw - var(--ui-space-10)) !important;
  height: min(88vh, 100vh - var(--ui-space-10)) !important;
  max-height: min(88vh, 100vh - var(--ui-space-10)) !important;
  margin: auto !important;
}

@supports (height: 100dvh) {
  body .cdk-overlay-pane.template-detail-dialog-panel {
    height: min(88dvh, 100dvh - var(--ui-space-10)) !important;
    max-height: min(88dvh, 100dvh - var(--ui-space-10)) !important;
  }
}
body .cdk-overlay-pane.template-detail-dialog-panel .mat-mdc-dialog-container,
body .cdk-overlay-pane.template-detail-dialog-panel .mdc-dialog__container,
body .cdk-overlay-pane.template-detail-dialog-panel .mdc-dialog__surface,
body .cdk-overlay-pane.template-detail-dialog-panel .mat-mdc-dialog-surface {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border: none !important;
  padding: 0 !important;
  border-radius: var(--ui-radius-2xl) !important;
  overflow: hidden !important;
  height: 100% !important;
}

body .cdk-overlay-pane.template-detail-dialog-panel .mdc-dialog__surface > *,
body .cdk-overlay-pane.template-detail-dialog-panel .mat-mdc-dialog-surface > * {
  display: block !important;
  height: 100% !important;
}

.template-detail-dialog.ui-modal__panel, .template-detail-dialog.glass-modal-container {
  width: 100%;
  max-width: none;
  max-height: none;
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
}

.template-detail-dialog .ui-modal__header {
  align-items: flex-start;
  gap: var(--ui-space-4);
  padding: var(--ui-space-4) var(--ui-space-5);
}

.template-detail-dialog .ui-modal__header-actions {
  gap: var(--ui-space-3);
}

.template-detail-dialog .tpl-detail__icon-wrapper {
  width: 48px;
  height: 48px;
  border-radius: var(--ui-radius-lg);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(255, 122, 61, 0.18), rgba(255, 122, 61, 0.06));
  border: 1px solid rgba(255, 122, 61, 0.16);
  color: var(--ui-brand);
  flex: 0 0 auto;
}

.template-detail-dialog .tpl-detail__icon-wrapper mat-icon {
  width: 22px;
  height: 22px;
  font-size: 22px;
}

.template-detail-dialog .tpl-detail__title-block {
  min-width: 0;
}

.template-detail-dialog .ui-modal__title {
  font-size: clamp(1.5rem, 1vw + 1rem, 2rem);
  line-height: 1.1;
}

.template-detail-dialog .tpl-detail__subtitle {
  margin: 6px 0 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  line-height: 1.5;
}

.template-detail-dialog .ui-modal__body {
  padding: var(--ui-space-4) var(--ui-space-5) var(--ui-space-5);
  gap: var(--ui-space-4);
  min-height: 0;
  overflow: hidden;
}

.template-detail-dialog .tpl-detail__toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
  align-items: stretch;
  gap: var(--ui-space-3);
}

.template-detail-dialog .tpl-detail__stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--ui-space-3);
  min-width: 0;
}

.template-detail-dialog .tpl-detail__stat-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  min-height: 84px;
  padding: 14px 16px;
  border-radius: var(--ui-radius-lg);
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-1);
}

.template-detail-dialog .tpl-detail__stat-card--danger {
  background: rgba(239, 83, 80, 0.09);
  border-color: rgba(239, 83, 80, 0.18);
}

.template-detail-dialog .tpl-detail__stat-value {
  font-size: clamp(1.45rem, 0.6vw + 1.1rem, 1.95rem);
  font-weight: var(--ui-font-bold);
  line-height: 1;
  color: var(--ui-text-primary);
}

.template-detail-dialog .tpl-detail__stat-value--high {
  color: var(--ui-danger);
}

.template-detail-dialog .tpl-detail__stat-value--medium {
  color: var(--ui-warning);
}

.template-detail-dialog .tpl-detail__stat-label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ui-text-muted);
}

.template-detail-dialog .tpl-detail__search {
  min-width: 0;
  height: 100%;
  min-height: 84px;
  padding-inline: 18px;
  border-radius: var(--ui-radius-lg);
  align-self: stretch;
}

.template-detail-dialog .tpl-detail__search mat-icon {
  width: 18px;
  height: 18px;
  font-size: 18px;
}

.template-detail-dialog .tpl-detail__search input {
  flex: 1 1 auto;
  min-width: 0;
  font-size: var(--ui-text-base);
}

.template-detail-dialog .tpl-detail__search-clear {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: none;
  border-radius: var(--ui-radius-md);
  background: transparent;
  color: var(--ui-text-muted);
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.template-detail-dialog .tpl-detail__search-clear:hover {
  background: var(--ui-surface-hover);
  color: var(--ui-text-primary);
}

.template-detail-dialog .tpl-detail__search-clear mat-icon {
  width: 16px;
  height: 16px;
  font-size: 16px;
}

.template-detail-dialog .tpl-detail__domains {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding-right: 4px;
  scrollbar-gutter: stable;
}

.template-detail-dialog .tpl-detail__domain {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  flex: 0 0 auto;
  min-height: max-content;
  border-radius: var(--ui-radius-lg);
  border: 1px solid var(--ui-border-light);
  background: linear-gradient(180deg, var(--ui-surface-1), rgba(255, 255, 255, 0.01));
  overflow: hidden;
}

.template-detail-dialog .tpl-detail__domain-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  width: 100%;
  padding: var(--ui-space-3) var(--ui-space-4);
  border: 0;
  background: transparent;
  color: inherit;
  font-family: inherit;
  cursor: pointer;
  transition: background var(--ui-transition-base);
}

.template-detail-dialog .tpl-detail__domain-header:hover {
  background: var(--ui-surface-hover);
}

.template-detail-dialog .tpl-detail__domain-left,
.template-detail-dialog .tpl-detail__domain-right {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  min-width: 0;
}

.template-detail-dialog .tpl-detail__domain-left mat-icon {
  width: 18px;
  height: 18px;
  font-size: 18px;
  color: var(--ui-brand);
}

.template-detail-dialog .tpl-detail__domain-name {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.template-detail-dialog .tpl-detail__domain-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 30px;
  padding: 0 var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  background: rgba(255, 122, 61, 0.1);
  border: 1px solid rgba(255, 122, 61, 0.18);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  color: var(--ui-brand);
}

.template-detail-dialog .tpl-detail__domain-chevron {
  width: 18px;
  height: 18px;
  font-size: 18px;
  color: var(--ui-text-subtle);
  transition: transform 0.2s ease;
}

.template-detail-dialog .tpl-detail__domain-chevron--open {
  transform: rotate(180deg);
}

.template-detail-dialog .tpl-detail__perm-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-content: start;
  grid-auto-rows: minmax(60px, auto);
  gap: var(--ui-space-2);
  padding: 0 var(--ui-space-4) var(--ui-space-4);
}

.template-detail-dialog .tpl-detail__subgroup-header {
  grid-column: 1/-1;
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-2) var(--ui-space-1);
  min-height: auto;
}

.template-detail-dialog .tpl-detail__subgroup-header:first-child {
  padding-top: 0;
}

.template-detail-dialog .tpl-detail__subgroup-label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ui-text-subtle);
  white-space: nowrap;
}

.template-detail-dialog .tpl-detail__subgroup-label::after {
  content: "";
  display: block;
  margin-top: 6px;
  width: 100%;
  height: 1px;
  background: var(--ui-border-light);
}

.template-detail-dialog .tpl-detail__subgroup-count {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  flex-shrink: 0;
}

.template-detail-dialog .tpl-detail__perm-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-2);
  min-width: 0;
  min-height: 60px;
  padding: 10px 12px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: calc(var(--ui-radius-xl) + 2px);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02));
  transition: background var(--ui-transition-base), border-color var(--ui-transition-base), transform var(--ui-transition-base);
}

.template-detail-dialog .tpl-detail__perm-row:hover {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.03));
  border-color: rgba(255, 255, 255, 0.1);
}

.template-detail-dialog .tpl-detail__perm-info {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-width: 0;
}

.template-detail-dialog .tpl-detail__perm-label {
  font-size: 0.9rem;
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  line-height: 1.2;
}

.template-detail-dialog .tpl-detail__perm-risk {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 22px;
  padding: 0 8px;
  border-radius: var(--ui-radius-full);
  font-size: 0.58rem;
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
  flex-shrink: 0;
  line-height: 1;
}

.template-detail-dialog .tpl-detail__perm-risk--low {
  background: var(--ui-success-bg);
  border: 1px solid var(--ui-success-border);
  color: var(--ui-success);
}

.template-detail-dialog .tpl-detail__perm-risk--medium {
  background: var(--ui-warning-bg);
  border: 1px solid var(--ui-warning-border);
  color: var(--ui-warning);
}

.template-detail-dialog .tpl-detail__perm-risk--high,
.template-detail-dialog .tpl-detail__perm-risk--critical {
  background: var(--ui-danger-bg);
  border: 1px solid var(--ui-danger-border);
  color: var(--ui-danger);
}

.template-detail-dialog .tpl-detail__loading,
.template-detail-dialog .tpl-detail__error,
.template-detail-dialog .tpl-detail__no-results {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-8) var(--ui-space-6);
  color: var(--ui-text-muted);
}

.template-detail-dialog .tpl-detail__spinner {
  width: 28px;
  height: 28px;
  font-size: 28px;
  color: var(--ui-brand);
  animation: template-detail-spin 1s linear infinite;
}

@keyframes template-detail-spin {
  to {
    transform: rotate(360deg);
  }
}
.template-detail-dialog .tpl-detail__error mat-icon,
.template-detail-dialog .tpl-detail__no-results mat-icon {
  width: 36px;
  height: 36px;
  font-size: 36px;
}

.template-detail-dialog .tpl-detail__error mat-icon {
  color: var(--ui-danger);
}

@media (max-width: 1024px) {
  body .cdk-overlay-pane.template-detail-dialog-panel {
    width: min(960px, 100vw - var(--ui-space-8)) !important;
    max-width: min(960px, 100vw - var(--ui-space-8)) !important;
  }
  .template-detail-dialog .tpl-detail__toolbar {
    grid-template-columns: 1fr;
  }
  .template-detail-dialog .tpl-detail__stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .template-detail-dialog .tpl-detail__search {
    min-height: 56px;
  }
  .template-detail-dialog .tpl-detail__perm-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 720px) {
  body .cdk-overlay-pane.template-detail-dialog-panel {
    width: calc(100vw - var(--ui-space-6)) !important;
    max-width: calc(100vw - var(--ui-space-6)) !important;
    height: min(92vh, 100vh - var(--ui-space-6)) !important;
    max-height: min(92vh, 100vh - var(--ui-space-6)) !important;
  }
  .template-detail-dialog .ui-modal__header,
  .template-detail-dialog .ui-modal__body {
    padding-left: var(--ui-space-4);
    padding-right: var(--ui-space-4);
  }
  .template-detail-dialog .ui-modal__header {
    gap: var(--ui-space-3);
  }
  .template-detail-dialog .ui-modal__title-group {
    align-items: flex-start;
  }
  .template-detail-dialog .tpl-detail__stats {
    grid-template-columns: 1fr;
  }
  .template-detail-dialog .tpl-detail__stat-card,
  .template-detail-dialog .tpl-detail__search {
    min-height: 72px;
  }
  .template-detail-dialog .tpl-detail__perm-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 560px) {
  .template-detail-dialog .tpl-detail__perm-list {
    grid-template-columns: 1fr;
  }
}
.reimbursement-detail-modal .ui-modal__timeline,
.reimbursement-payment-modal .ui-modal__timeline {
  max-height: 320px;
  padding-right: var(--ui-space-1);
}
.reimbursement-detail-modal .ui-modal__timeline-entry,
.reimbursement-payment-modal .ui-modal__timeline-entry {
  align-items: flex-start;
}
.reimbursement-detail-modal .ui-modal__timeline-action,
.reimbursement-payment-modal .ui-modal__timeline-action {
  color: var(--ui-text-primary);
}
.reimbursement-detail-modal .ui-modal__timeline-details,
.reimbursement-payment-modal .ui-modal__timeline-details {
  line-height: 1.55;
  white-space: normal;
}
.reimbursement-detail-modal .ui-modal__timeline-meta,
.reimbursement-payment-modal .ui-modal__timeline-meta {
  gap: var(--ui-space-2) var(--ui-space-3);
}
.reimbursement-detail-modal .ui-modal__timeline-meta > span,
.reimbursement-payment-modal .ui-modal__timeline-meta > span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}
.reimbursement-detail-modal .ui-modal__timeline-meta mat-icon,
.reimbursement-detail-modal .ui-modal__timeline-indicator mat-icon,
.reimbursement-payment-modal .ui-modal__timeline-meta mat-icon,
.reimbursement-payment-modal .ui-modal__timeline-indicator mat-icon {
  width: 14px;
  height: 14px;
  font-size: 14px;
}

.reimbursement-payment-modal .reimbursement-history-card,
.reimbursement-payment-modal .reimbursement-audit-card {
  padding: 18px 20px;
}
.reimbursement-payment-modal .reimbursement-history-card .card-header-row {
  align-items: center;
  margin-bottom: var(--ui-space-3);
}
.reimbursement-payment-modal .reimbursement-history-card .ui-modal__badge, .reimbursement-payment-modal .reimbursement-history-card .glass-modal-container .modal-badge, .glass-modal-container .reimbursement-payment-modal .reimbursement-history-card .modal-badge {
  flex-shrink: 0;
}
.reimbursement-payment-modal .reimbursement-history-timeline {
  max-height: 236px;
}

.reimbursement-timeline-skeleton,
.reimbursement-payment-skeleton {
  display: block;
  border-radius: 999px;
}

.reimbursement-timeline-skeleton--title {
  width: 34%;
  height: 14px;
}

.reimbursement-timeline-skeleton--detail {
  width: 72%;
  height: 12px;
}

.reimbursement-timeline-skeleton--meta-primary {
  width: 118px;
  height: 12px;
}

.reimbursement-timeline-skeleton--meta-secondary {
  width: 136px;
  height: 12px;
}

.reimbursement-timeline-skeleton--meta-tertiary {
  width: 48%;
  height: 11px;
}

.reimbursement-timeline-skeleton--spaced {
  margin-top: 8px;
}

.reimbursement-payment-skeleton--icon {
  width: 24px;
  height: 24px;
  border-radius: 50%;
}

.reimbursement-payment-skeleton--amount {
  width: 92px;
  height: 14px;
}

.reimbursement-payment-skeleton--method {
  width: 72px;
  height: 12px;
}

.reimbursement-payment-skeleton--date {
  width: 96px;
  height: 12px;
}

.reimbursement-payment-skeleton--by {
  width: 84px;
  height: 12px;
}

/* ==========================================================================
   MODAL - BILL VIEW
   ==========================================================================
   Purchase Bill dialog contract. Mirrors the enterprise split-layout pattern
   used in Sales modal while staying bill-specific.
   ========================================================================== */
/* ==========================================================================
   PANEL REGISTRATION
   ========================================================================== */
body .cdk-overlay-pane.bill-view-dialog-panel {
  width: 94vw !important;
  max-width: 94vw !important;
  height: 92vh !important;
  max-height: calc(100vh - 24px) !important;
  margin: auto !important;
}

@supports (height: 100dvh) {
  body .cdk-overlay-pane.bill-view-dialog-panel {
    height: min(92dvh, 100dvh - 24px) !important;
    max-height: min(92dvh, 100dvh - 24px) !important;
  }
}
body .cdk-overlay-pane.bill-view-dialog-panel .mat-mdc-dialog-container,
body .cdk-overlay-pane.bill-view-dialog-panel .mdc-dialog__container,
body .cdk-overlay-pane.bill-view-dialog-panel .mdc-dialog__surface,
body .cdk-overlay-pane.bill-view-dialog-panel .mat-mdc-dialog-surface {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border: none !important;
  padding: 0 !important;
  border-radius: var(--ui-radius-2xl) !important;
  overflow: hidden !important;
  height: 100% !important;
}

body .cdk-overlay-pane.bill-view-dialog-panel .mdc-dialog__surface > *,
body .cdk-overlay-pane.bill-view-dialog-panel .mat-mdc-dialog-surface > * {
  display: block !important;
  height: 100% !important;
}

body .cdk-overlay-pane.bill-view-dialog-panel mat-dialog-content,
body .cdk-overlay-pane.bill-view-dialog-panel .mat-mdc-dialog-content,
body .cdk-overlay-pane.bill-view-dialog-panel .mdc-dialog__content {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

body .cdk-overlay-pane.bill-view-dialog-panel .mat-mdc-dialog-component-host {
  display: block !important;
  height: 100% !important;
  min-height: 0 !important;
}

/* ==========================================================================
   MODAL SHELL
   ========================================================================== */
.bill-view-dialog.ui-modal__panel, .bill-view-dialog.glass-modal-container {
  width: 100%;
  max-width: none;
  max-height: none;
  height: 100%;
  min-height: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  padding: 0;
  gap: 0;
  overflow: hidden;
}

/* ==========================================================================
   TOP BAR
   ========================================================================== */
.bill-view-dialog__topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-5);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  flex: 0 0 auto;
}

.bill-view-dialog__topbar-left {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  min-width: 0;
}

.bill-view-dialog__topbar-title {
  margin: 0;
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  white-space: nowrap;
}

.bill-view-dialog__topbar-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: var(--ui-radius-full);
  background: rgba(255, 255, 255, 0.06);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.04em;
}

.bill-view-dialog__topbar-right {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  min-width: 0;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.bill-view-dialog__topbar-meta {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  padding: 4px 10px;
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-1);
}

.bill-view-dialog__topbar-meta mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.bill-view-dialog__topbar-actions {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  min-width: 0;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.bill-view-dialog__header-action.ui-btn {
  min-height: 36px;
  padding-inline: 12px;
}

.bill-view-dialog__header-action.ui-btn mat-icon {
  width: 16px;
  height: 16px;
  font-size: 16px;
}

.bill-view-dialog__icon-btn,
.bill-view-dialog__close {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid var(--ui-border-light);
  background: transparent;
  color: var(--ui-text-muted);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.bill-view-dialog__icon-btn mat-icon,
.bill-view-dialog__close mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.bill-view-dialog__icon-btn:disabled {
  opacity: 0.35;
  cursor: not-allowed;
  pointer-events: none;
}

.bill-view-dialog__icon-btn:hover:not(:disabled) {
  background: var(--ui-surface-hover);
  color: var(--ui-text-primary);
}

.bill-view-dialog__close:hover {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
}

/* ==========================================================================
   VENDOR STRIP
   ========================================================================== */
.bill-view-dialog__vendor-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-4);
  padding: var(--ui-space-2) var(--ui-space-5);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.02);
  flex: 0 0 auto;
}

.bill-view-dialog__vendor-main {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  min-width: 0;
}

.bill-view-dialog__vendor-mark {
  width: 36px;
  height: 36px;
  border-radius: var(--ui-radius-lg);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  background: linear-gradient(135deg, rgba(233, 125, 72, 0.2), rgba(233, 68, 36, 0.1));
  border: 1px solid rgba(233, 125, 72, 0.34);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  letter-spacing: 0.05em;
}

.bill-view-dialog__vendor-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.bill-view-dialog__vendor-name {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.bill-view-dialog__vendor-meta {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  min-width: 0;
  flex-wrap: wrap;
}

.bill-view-dialog__vendor-meta-item {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-secondary);
  white-space: nowrap;
  font-family: var(--ui-font-mono);
}

.bill-view-dialog__vendor-meta-item::before {
  content: "•";
  display: inline-block;
  margin-right: var(--ui-space-2);
  color: rgba(255, 255, 255, 0.28);
}

.bill-view-dialog__vendor-meta-item:first-child::before {
  display: none;
}

.bill-view-dialog__vendor-meta-item--muted {
  color: var(--ui-text-muted);
  font-family: inherit;
}

/* ── Vendor Quick-Access Actions (Profile + Ledger) ─────────────────── */
.bill-view-dialog__vendor-actions {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin-left: var(--ui-space-2);
  flex-shrink: 0;
}

.bill-view-dialog__vendor-action-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px 4px 8px;
  border-radius: var(--ui-radius-full);
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.04);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: var(--ui-transition-base);
  letter-spacing: 0.01em;
  white-space: nowrap;
}
.bill-view-dialog__vendor-action-btn mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}
.bill-view-dialog__vendor-action-btn:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
  color: var(--ui-text-primary);
}
.bill-view-dialog__vendor-action-btn--ledger {
  border-color: rgba(99, 102, 241, 0.25);
  background: rgba(99, 102, 241, 0.06);
  color: rgba(129, 140, 248, 0.85);
}
.bill-view-dialog__vendor-action-btn--ledger mat-icon {
  color: rgba(129, 140, 248, 0.85);
}
.bill-view-dialog__vendor-action-btn--ledger:hover {
  background: rgba(99, 102, 241, 0.14);
  border-color: rgba(99, 102, 241, 0.4);
  color: #a5b4fc;
}
.bill-view-dialog__vendor-action-btn--ledger:hover mat-icon {
  color: #a5b4fc;
}

.bill-view-dialog__vendor-address {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  min-width: 0;
  max-width: 44%;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
}

.bill-view-dialog__vendor-address mat-icon {
  font-size: 15px;
  width: 15px;
  height: 15px;
  color: var(--ui-text-subtle);
  flex-shrink: 0;
}

.bill-view-dialog__vendor-address span {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.bill-view-dialog__edit-details-btn.bill-view-dialog__icon-btn {
  width: 26px;
  height: 26px;
  min-width: 26px;
  flex-shrink: 0;
  margin-left: 4px;
}
.bill-view-dialog__edit-details-btn.bill-view-dialog__icon-btn mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}
.bill-view-dialog__edit-details-btn.bill-view-dialog__icon-btn--disabled {
  opacity: 0.35;
  cursor: not-allowed;
  pointer-events: auto;
}
.bill-view-dialog__edit-details-btn.bill-view-dialog__icon-btn--disabled mat-icon {
  color: rgba(255, 160, 100, 0.7);
}

/* ==========================================================================
   ACTION MENU
   ========================================================================== */
.bill-view-dialog__more-btn {
  width: 36px;
  min-width: 36px;
  min-height: 36px;
  padding-inline: 0;
  justify-content: center;
}

body .bill-view-dialog__menu-panel.mat-mdc-menu-panel {
  min-width: 248px;
  padding: 8px;
  border-radius: 24px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: linear-gradient(180deg, rgb(27, 22, 21), rgb(18, 16, 18)), radial-gradient(circle at top right, rgba(255, 120, 79, 0.12), transparent 54%);
  backdrop-filter: blur(26px);
  box-shadow: 0 32px 64px rgba(0, 0, 0, 0.46), inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

body .bill-view-dialog__menu-panel .mat-mdc-menu-item {
  border-radius: 16px;
  margin: 2px 0;
  min-height: 46px;
}

/* ==========================================================================
   BODY LAYOUT
   ========================================================================== */
.bill-view-dialog__body {
  flex: 1 1 0;
  min-height: 0;
  overflow-y: auto !important;
  overflow-x: hidden;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding: var(--ui-space-4) var(--ui-space-5);
}
.bill-view-dialog__body::-webkit-scrollbar {
  width: 4px;
}
.bill-view-dialog__body::-webkit-scrollbar-track {
  background: transparent;
}
.bill-view-dialog__body::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.08);
  border-radius: 4px;
}

.bill-view-dialog__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: var(--ui-space-5);
  align-items: start;
}

.bill-view-dialog__main,
.bill-view-dialog__aside {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.bill-view-dialog__aside {
  position: sticky;
  top: 0;
  max-height: none;
  overflow: visible;
  padding-right: 0;
}

.bill-view-dialog__details-card.ui-card, .glass-modal-container .bill-view-dialog__details-card.glass-card,
.glass-modal-container .bill-view-dialog__details-card.glass-panel,
.glass-modal-container .bill-view-dialog__details-card.fd-glass,
.glass-modal-container .bill-view-dialog__details-card.section-card,
.glass-modal-container .bill-view-dialog__details-card.content-section,
.glass-modal-container .bill-view-dialog__details-card.timeline-card,
.glass-modal-container .bill-view-dialog__details-card.entry-section,
.glass-modal-container .bill-view-dialog__details-card.attachments,
.glass-modal-container .bill-view-dialog__details-card.summary-card,
.glass-modal-container .bill-view-dialog__details-card.metric-card,
.glass-modal-container .bill-view-dialog__details-card.review-card,
.glass-modal-container .bill-view-dialog__details-card.config-section,
.glass-modal-container .bill-view-dialog__details-card.panel-card,
.bill-view-dialog__summary-card.ui-card,
.glass-modal-container .bill-view-dialog__summary-card.glass-card,
.glass-modal-container .bill-view-dialog__summary-card.glass-panel,
.glass-modal-container .bill-view-dialog__summary-card.fd-glass,
.glass-modal-container .bill-view-dialog__summary-card.section-card,
.glass-modal-container .bill-view-dialog__summary-card.content-section,
.glass-modal-container .bill-view-dialog__summary-card.timeline-card,
.glass-modal-container .bill-view-dialog__summary-card.entry-section,
.glass-modal-container .bill-view-dialog__summary-card.attachments,
.glass-modal-container .bill-view-dialog__summary-card.summary-card,
.glass-modal-container .bill-view-dialog__summary-card.metric-card,
.glass-modal-container .bill-view-dialog__summary-card.review-card,
.glass-modal-container .bill-view-dialog__summary-card.config-section,
.glass-modal-container .bill-view-dialog__summary-card.panel-card,
.bill-view-dialog__tax-card.ui-card,
.glass-modal-container .bill-view-dialog__tax-card.glass-card,
.glass-modal-container .bill-view-dialog__tax-card.glass-panel,
.glass-modal-container .bill-view-dialog__tax-card.fd-glass,
.glass-modal-container .bill-view-dialog__tax-card.section-card,
.glass-modal-container .bill-view-dialog__tax-card.content-section,
.glass-modal-container .bill-view-dialog__tax-card.timeline-card,
.glass-modal-container .bill-view-dialog__tax-card.entry-section,
.glass-modal-container .bill-view-dialog__tax-card.attachments,
.glass-modal-container .bill-view-dialog__tax-card.summary-card,
.glass-modal-container .bill-view-dialog__tax-card.metric-card,
.glass-modal-container .bill-view-dialog__tax-card.review-card,
.glass-modal-container .bill-view-dialog__tax-card.config-section,
.glass-modal-container .bill-view-dialog__tax-card.panel-card {
  border-radius: var(--ui-radius-md);
  padding: var(--ui-space-4);
  gap: var(--ui-space-3);
}

.bill-view-dialog__action-panel {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-md);
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.015)), radial-gradient(circle at top left, rgba(99, 102, 241, 0.09), transparent 55%);
}

.bill-view-dialog__action-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-2);
}

.bill-view-dialog__action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  border-radius: var(--ui-radius-md);
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  transition: var(--ui-transition-base);
}

.bill-view-dialog__action-btn:hover {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.14);
}

.bill-view-dialog__action-btn--credit mat-icon {
  color: #10b981;
}

.bill-view-dialog__action-btn--debit mat-icon {
  color: #f59e0b;
}

/* ==========================================================================
   SUMMARY RAIL
   ========================================================================== */
.bill-view-dialog__summary-label {
  font-size: var(--ui-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ui-text-muted);
  font-weight: var(--ui-font-semibold);
}

.bill-view-dialog__summary-value {
  margin: 0;
  font-size: clamp(2rem, 1.5rem + 0.8vw, 2.5rem);
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-bold);
}

.bill-view-dialog__summary-chip {
  margin: 0;
  width: fit-content;
  padding: 2px 10px;
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border-light);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.bill-view-dialog__summary-list {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.bill-view-dialog__summary-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-3);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

.bill-view-dialog__summary-row strong {
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-semibold);
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.bill-view-dialog__summary-row--grand {
  margin-top: var(--ui-space-1);
  padding-top: var(--ui-space-2);
  border-top: 1px solid var(--ui-border-light);
  font-size: var(--ui-text-base);
}

/* ==========================================================================
   TABLE
   ========================================================================== */
.bill-view-dialog__table-card {
  overflow: hidden;
}

.bill-view-dialog .glass-table-header {
  padding: var(--ui-space-3) var(--ui-space-4);
  margin-bottom: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.bill-view-dialog .glass-table-wrap {
  padding: 0 var(--ui-space-4) var(--ui-space-4);
}

.bill-view-dialog__add-item-btn.ui-btn,
.bill-view-dialog__empty-add-item-btn.ui-btn {
  min-height: 36px;
}

.bill-view-dialog__empty-add-item-btn.ui-btn {
  margin-top: var(--ui-space-3);
}

.bill-view-dialog__items-table th,
.bill-view-dialog__items-table td {
  padding-top: var(--ui-space-3);
  padding-bottom: var(--ui-space-3);
}

.bill-view-dialog__items-table th:nth-child(1),
.bill-view-dialog__items-table td:nth-child(1) {
  width: 46px;
}

.bill-view-dialog__item-cell {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 220px;
}

.bill-view-dialog__item-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px var(--ui-space-2);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.bill-view-dialog__item-meta span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.bill-view-dialog__item-meta span::before {
  content: "";
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.28);
}

.bill-view-dialog__item-meta span:first-child::before {
  display: none;
}

.bill-view-dialog__stacked-value {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.bill-view-dialog .empty-table-state--carded {
  margin: 0 var(--ui-space-4) var(--ui-space-4);
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1200px) {
  .bill-view-dialog__layout {
    grid-template-columns: 1fr;
  }
  .bill-view-dialog__aside {
    position: static;
    max-height: none;
    overflow: visible;
  }
}
@media (max-width: 900px) {
  body .cdk-overlay-pane.bill-view-dialog-panel {
    width: min(100vw - var(--ui-space-6), 100vw) !important;
    max-width: min(100vw - var(--ui-space-6), 100vw) !important;
    height: min(94vh, 100vh - var(--ui-space-6)) !important;
    max-height: min(94vh, 100vh - var(--ui-space-6)) !important;
  }
  .bill-view-dialog__topbar {
    padding: var(--ui-space-3) var(--ui-space-4);
    flex-wrap: wrap;
  }
  .bill-view-dialog__topbar-right {
    width: 100%;
    justify-content: flex-start;
  }
  .bill-view-dialog__topbar-actions {
    width: 100%;
    justify-content: flex-start;
    order: 3;
  }
  .bill-view-dialog__close {
    margin-left: auto;
  }
  .bill-view-dialog__vendor-strip {
    padding: var(--ui-space-3) var(--ui-space-4);
    flex-wrap: wrap;
    align-items: flex-start;
  }
  .bill-view-dialog__vendor-address {
    max-width: 100%;
  }
  .bill-view-dialog__body {
    padding: var(--ui-space-4);
  }
  .bill-view-dialog .glass-table-header,
  .bill-view-dialog .glass-table-wrap {
    padding-left: var(--ui-space-3);
    padding-right: var(--ui-space-3);
  }
  .bill-view-dialog .empty-table-state--carded {
    margin-left: var(--ui-space-3);
    margin-right: var(--ui-space-3);
  }
}
@media (max-width: 640px) {
  .bill-view-dialog__topbar-title {
    font-size: var(--ui-text-base);
  }
  .bill-view-dialog__topbar-meta {
    display: none;
  }
  .bill-view-dialog__topbar-actions {
    gap: var(--ui-space-1);
  }
  .bill-view-dialog__header-action.ui-btn {
    min-height: 34px;
    padding-inline: 10px;
    font-size: var(--ui-text-xs);
  }
  .bill-view-dialog__more-btn {
    width: 34px;
    min-width: 34px;
    min-height: 34px;
  }
  .bill-view-dialog__vendor-main {
    align-items: flex-start;
  }
  .bill-view-dialog__vendor-name {
    white-space: normal;
  }
  .bill-view-dialog__action-row {
    grid-template-columns: 1fr;
  }
  .bill-view-dialog__item-cell {
    min-width: 180px;
  }
}
/* ═══════════════════════════════════════════════════════════════════════
 *  FINANCIAL UX UPGRADE — Additions
 * ═══════════════════════════════════════════════════════════════════════ */
/* ── Financial Status Badge ─────────────────────────────────────────── */
.bill-view-dialog__fin-status {
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  border-radius: var(--ui-radius-full, 999px);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height: 1.4;
  margin-left: 6px;
}
.bill-view-dialog__fin-status.fin-status--settled {
  background: rgba(16, 185, 129, 0.14);
  color: #10b981;
  border: 1px solid rgba(16, 185, 129, 0.25);
}
.bill-view-dialog__fin-status.fin-status--pending {
  background: rgba(245, 158, 11, 0.14);
  color: #f59e0b;
  border: 1px solid rgba(245, 158, 11, 0.25);
}
.bill-view-dialog__fin-status.fin-status--advance {
  background: rgba(59, 130, 246, 0.14);
  color: #3b82f6;
  border: 1px solid rgba(59, 130, 246, 0.25);
}

.bill-view-dialog__lifecycle-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 2px 10px;
  border-radius: var(--ui-radius-full, 999px);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height: 1.4;
}
.bill-view-dialog__lifecycle-chip mat-icon {
  width: 13px;
  height: 13px;
  font-size: 13px;
}
.bill-view-dialog__lifecycle-chip--success {
  background: rgba(16, 185, 129, 0.14);
  color: #10b981;
  border: 1px solid rgba(16, 185, 129, 0.25);
}
.bill-view-dialog__lifecycle-chip--warning {
  background: rgba(245, 158, 11, 0.14);
  color: #f59e0b;
  border: 1px solid rgba(245, 158, 11, 0.25);
}
.bill-view-dialog__lifecycle-chip--muted {
  background: rgba(148, 163, 184, 0.12);
  color: rgba(226, 232, 240, 0.8);
  border: 1px solid rgba(148, 163, 184, 0.2);
}

/* ── Payment Summary Card ───────────────────────────────────────────── */
.bill-view-dialog__payment-card .bill-view-dialog__summary-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.bill-view-dialog__payment-card .bill-view-dialog__summary-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: var(--ui-text-sm, 13px);
  color: var(--ui-text-secondary, #94a3b8);
  padding: 3px 0;
}
.bill-view-dialog__payment-card .bill-view-dialog__summary-row strong {
  color: var(--ui-text-primary, #e2e8f0);
  font-weight: 600;
}
.bill-view-dialog__payment-card .bill-view-dialog__summary-row--grand {
  margin-top: 6px;
  padding-top: 8px;
  border-top: 1px solid var(--ui-border-subtle, rgba(255, 255, 255, 0.06));
  font-size: var(--ui-text-base, 14px);
}
.bill-view-dialog__payment-card .bill-view-dialog__summary-row--grand strong {
  font-size: 15px;
  font-weight: 700;
}

/* ── Progress Bar (Dual: paid + adjusted) ───────────────────────────── */
.bill-view-dialog__progress {
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.bill-view-dialog__progress-bar {
  width: 100%;
  height: 6px;
  border-radius: 3px;
  background: var(--ui-bg-inset, rgba(255, 255, 255, 0.04));
  overflow: hidden;
  display: flex;
}

.bill-view-dialog__progress-fill {
  height: 100%;
  transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1);
  min-width: 0;
}
.bill-view-dialog__progress-fill--paid {
  background: linear-gradient(90deg, #e87740, #f4a261);
  border-radius: 3px 0 0 3px;
}
.bill-view-dialog__progress-fill--adjusted {
  background: linear-gradient(90deg, #10b981, #34d399);
  border-radius: 0 3px 3px 0;
}

.bill-view-dialog__progress-footer {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}

.bill-view-dialog__progress-legend {
  display: flex;
  gap: 12px;
  font-size: 11px;
  color: var(--ui-text-tertiary, #64748b);
}

.bill-view-dialog__legend-item {
  display: flex;
  align-items: center;
  gap: 4px;
}

.bill-view-dialog__legend-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}
.bill-view-dialog__legend-dot--paid {
  background: #6366f1;
}
.bill-view-dialog__legend-dot--adjusted {
  background: #10b981;
}

.bill-view-dialog__progress-label {
  font-size: 11px;
  color: var(--ui-text-tertiary, #64748b);
  text-align: right;
}

/* ── Settlement Micro-Label ─────────────────────────────────────────── */
.bill-view-dialog__settlement-label {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-top: 8px;
  padding: 6px 8px;
  border-radius: var(--ui-radius-sm, 6px);
  background: rgba(255, 255, 255, 0.03);
  font-size: 11px;
  font-weight: 500;
  color: var(--ui-text-tertiary, #64748b);
  line-height: 1.3;
}
.bill-view-dialog__settlement-label mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: var(--ui-text-tertiary, #64748b);
  opacity: 0.7;
}

/* ── Lock Badge ─────────────────────────────────────────────────────── */
.bill-view-dialog__lock-badge {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 2px 8px;
  border-radius: var(--ui-radius-full, 999px);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  background: rgba(239, 68, 68, 0.12);
  color: #ef4444;
  border: 1px solid rgba(239, 68, 68, 0.22);
  margin-left: 6px;
  cursor: help;
}
.bill-view-dialog__lock-badge mat-icon {
  font-size: 13px;
  width: 13px;
  height: 13px;
}

.sale-v2-table-header__meta {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: var(--ui-radius-full);
  background: rgba(255, 255, 255, 0.06);
  color: rgba(226, 232, 240, 0.7);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.bill-line-item-head {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.bill-line-item-field {
  flex: 1;
  min-width: 0;
}

.bill-line-item-head .status-icon {
  flex: 0 0 auto;
  margin-top: 3px;
  cursor: help;
}

/* ── MRP Strikethrough ──────────────────────────────────────────────── */
.bill-view-dialog__mrp-cell--struck {
  text-decoration: line-through;
  opacity: 0.55;
}

/* ── Section Count Badge ────────────────────────────────────────────── */
.bill-view-dialog__section-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 9px;
  font-size: 10px;
  font-weight: 700;
  background: rgba(99, 102, 241, 0.2);
  color: #818cf8;
  margin-left: 6px;
  vertical-align: middle;
}

/* ── Empty Section State ────────────────────────────────────────────── */
.bill-view-dialog__empty-section {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 0;
  font-size: 13px;
  color: var(--ui-text-tertiary, #64748b);
}
.bill-view-dialog__empty-section mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  opacity: 0.5;
}

/* ── Links List (Connected Section) ─────────────────────────────────── */
.bill-view-dialog__links-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.bill-view-dialog__links-list .bill-view-dialog__link-item {
  margin: 0 -12px;
  border-radius: 0;
  border-bottom: 1px solid var(--ui-border-subtle, rgba(255, 255, 255, 0.04));
}
.bill-view-dialog__links-list .bill-view-dialog__link-item:first-child {
  margin-top: 4px;
}
.bill-view-dialog__links-list .bill-view-dialog__link-item:last-child {
  border-bottom: none;
  margin-bottom: -12px;
  border-radius: 0 0 var(--ui-radius-md, 10px) var(--ui-radius-md, 10px);
}

/* ── Color Utilities ────────────────────────────────────────────────── */
.adj-credit {
  color: #10b981 !important;
}

.adj-debit {
  color: #f59e0b !important;
}

.fin-settled {
  color: #10b981 !important;
}

.fin-advance {
  color: #3b82f6 !important;
}

.cell-muted {
  color: var(--ui-text-tertiary, #64748b);
}

/* ==========================================================================
   PAYMENT HISTORY LIST
   ========================================================================== */
.bill-view-dialog__payment-history-card {
  border-radius: var(--ui-radius-md);
  padding: var(--ui-space-4);
}

.bill-view-dialog__payment-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.bill-view-dialog__payment-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  padding: 10px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}
.bill-view-dialog__payment-row:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.bill-view-dialog__payment-row:first-child {
  padding-top: 4px;
}

.bill-view-dialog__payment-info {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  min-width: 0;
  flex: 1;
}

/* Right cluster: mode chip + payer badge + amount */
.bill-view-dialog__payment-right {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-shrink: 0;
}

.bill-view-dialog__payment-date {
  font-size: var(--ui-text-sm, 13px);
  color: var(--ui-text-secondary, #94a3b8);
  white-space: nowrap;
}

.bill-view-dialog__payment-mode {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: var(--ui-radius-full, 999px);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  background: rgba(255, 255, 255, 0.05);
  color: var(--ui-text-muted, #64748b);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.bill-view-dialog__payment-amount {
  font-size: var(--ui-text-sm, 13px);
  font-weight: var(--ui-font-semibold, 600);
  color: var(--ui-text-primary, #e2e8f0);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* ── Payer type badge: Company / Employee ── */
.bill-view-dialog__payment-by {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: var(--ui-radius-full, 999px);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  white-space: nowrap;
}
.bill-view-dialog__payment-by--company {
  background: rgba(255, 255, 255, 0.05);
  color: var(--ui-text-muted, #64748b);
  border: 1px solid rgba(255, 255, 255, 0.06);
}
.bill-view-dialog__payment-by--employee {
  background: rgba(99, 102, 241, 0.14);
  color: #818cf8;
  border: 1px solid rgba(99, 102, 241, 0.25);
}

/* ── Employee name / remarks in history ── */
.bill-view-dialog__payment-remark {
  font-size: 11px;
  color: var(--ui-text-tertiary, #64748b);
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ── "View Receipt" link in section title ── */
.bill-view-dialog__receipt-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: auto;
  padding: 3px 10px;
  border-radius: var(--ui-radius-full, 999px);
  border: 1px solid rgba(255, 120, 79, 0.28);
  background: rgba(255, 120, 79, 0.08);
  color: var(--ui-accent, #e97748);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.03em;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.15s, border-color 0.15s;
}
.bill-view-dialog__receipt-link mat-icon {
  font-size: 13px;
  width: 13px;
  height: 13px;
}
.bill-view-dialog__receipt-link:hover {
  background: rgba(255, 120, 79, 0.16);
  border-color: var(--ui-accent, #e97748);
}

/* ── Per-payment "Receipt" chip ── */
.bill-view-dialog__payment-receipt-chip {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 2px 7px;
  border-radius: var(--ui-radius-full, 999px);
  border: 1px solid rgba(56, 189, 248, 0.2);
  background: rgba(56, 189, 248, 0.07);
  color: hsl(197, 71%, 73%);
  font-size: 10px;
  font-weight: 600;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  cursor: pointer;
  transition: background 0.15s;
}
.bill-view-dialog__payment-receipt-chip mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}
.bill-view-dialog__payment-receipt-chip:hover {
  background: rgba(56, 189, 248, 0.14);
}

/* ==========================================================================
   ADJUSTMENTS LIST
   ========================================================================== */
.bill-view-dialog__adjustments-list-card {
  border-radius: var(--ui-radius-md);
  padding: var(--ui-space-4);
}

.bill-view-dialog__adj-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.bill-view-dialog__adj-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  padding: 10px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}
.bill-view-dialog__adj-row:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.bill-view-dialog__adj-row:first-child {
  padding-top: 4px;
}

.bill-view-dialog__adj-info {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  min-width: 0;
  flex: 1;
}

.bill-view-dialog__adj-number {
  font-size: var(--ui-text-xs, 11px);
  font-weight: var(--ui-font-semibold, 600);
  color: var(--ui-text-secondary, #94a3b8);
  font-family: var(--ui-font-mono);
  white-space: nowrap;
}

.bill-view-dialog__adj-reason {
  font-size: var(--ui-text-sm, 13px);
  color: var(--ui-text-muted, #64748b);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.bill-view-dialog__adj-amount {
  font-size: var(--ui-text-sm, 13px);
  font-weight: var(--ui-font-semibold, 600);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* ==========================================================================
   OVERALL DISCOUNT — Premium Glassmorphic UI
   ========================================================================== */
/* ── "Apply Overall Discount" Trigger ────────────────────────────────── */
.bill-view-dialog__discount-trigger {
  padding: 2px 0 0;
}

.bill-view-dialog__discount-apply-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  width: 100%;
  justify-content: center;
  padding: 7px 12px;
  border-radius: var(--ui-radius-full, 999px);
  border: 1px dashed rgba(99, 102, 241, 0.35);
  background: rgba(99, 102, 241, 0.06);
  color: #818cf8;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: all 0.2s ease;
}
.bill-view-dialog__discount-apply-btn mat-icon {
  font-size: 15px;
  width: 15px;
  height: 15px;
}
.bill-view-dialog__discount-apply-btn:hover {
  background: rgba(99, 102, 241, 0.14);
  border-color: rgba(99, 102, 241, 0.5);
  transform: translateY(-1px);
}

/* ── Active Discount Row ─────────────────────────────────────────────── */
.bill-view-dialog__discount-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
  width: 100%;
  align-self: stretch;
  box-sizing: border-box;
  margin: 2px 0;
  padding: 8px 10px !important;
  border: 1px solid rgba(16, 185, 129, 0.16);
  border-radius: var(--ui-radius-md, 10px);
  background: linear-gradient(180deg, rgba(16, 185, 129, 0.08), rgba(16, 185, 129, 0.04));
}

.bill-view-dialog__discount-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
}

.bill-view-dialog__discount-label {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  flex: 1 1 auto;
  font-size: 13px;
  color: var(--ui-text-secondary, #94a3b8);
}

.bill-view-dialog__discount-title {
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.bill-view-dialog__discount-icon {
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
  color: #10b981;
}

.bill-view-dialog__discount-pct {
  flex: 0 0 auto;
  padding: 2px 8px;
  border-radius: var(--ui-radius-full, 999px);
  background: rgba(16, 185, 129, 0.16);
  color: #10b981;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.bill-view-dialog__discount-amount {
  white-space: nowrap;
}

.bill-view-dialog__discount-value {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 2px;
  flex: 0 0 auto;
  white-space: nowrap;
}

.bill-view-dialog__discount-meta {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 8px;
  justify-items: start;
  min-height: 24px;
  width: 100%;
  min-width: 0;
  padding-left: 22px;
}

.bill-view-dialog__discount-note {
  min-width: 0;
  font-size: 11px;
  font-weight: 500;
  color: rgba(226, 232, 240, 0.62);
  justify-self: start;
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.bill-view-dialog__discount-actions-inline {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  justify-self: end;
  flex: 0 0 auto;
}

.bill-view-dialog__discount-edit-btn,
.bill-view-dialog__discount-clear-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: none;
  background: transparent;
  cursor: pointer;
  transition: all 0.15s ease;
  padding: 0;
}
.bill-view-dialog__discount-edit-btn mat-icon,
.bill-view-dialog__discount-clear-btn mat-icon {
  font-size: 13px;
  width: 13px;
  height: 13px;
  color: rgba(255, 255, 255, 0.35);
  transition: color 0.15s ease;
}
.bill-view-dialog__discount-edit-btn:hover,
.bill-view-dialog__discount-clear-btn:hover {
  background: rgba(255, 255, 255, 0.06);
}
.bill-view-dialog__discount-edit-btn:hover mat-icon,
.bill-view-dialog__discount-clear-btn:hover mat-icon {
  color: rgba(255, 255, 255, 0.85);
}
.bill-view-dialog__discount-edit-btn:disabled,
.bill-view-dialog__discount-clear-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.bill-view-dialog__discount-clear-btn:hover {
  background: rgba(239, 68, 68, 0.12);
}
.bill-view-dialog__discount-clear-btn:hover mat-icon {
  color: #ef4444;
}

/* ── Discount Editor Panel ───────────────────────────────────────────── */
.bill-view-dialog__discount-editor {
  margin: 4px 0 2px;
  padding: 10px;
  border-radius: var(--ui-radius-md, 10px);
  background: rgba(99, 102, 241, 0.05);
  border: 1px solid rgba(99, 102, 241, 0.15);
  display: flex;
  flex-direction: column;
  gap: 8px;
  animation: discountEditorSlideIn 0.2s ease-out;
}

@keyframes discountEditorSlideIn {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.bill-view-dialog__discount-editor-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}

.bill-view-dialog__discount-editor-label {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.45);
}
.bill-view-dialog__discount-editor-label mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: #818cf8;
}

/* ── Preset Buttons ──────────────────────────────────────────────────── */
.bill-view-dialog__discount-presets {
  display: inline-flex;
  gap: 6px;
  flex-wrap: wrap;
}

.bill-view-dialog__discount-preset-btn {
  min-width: 42px;
  padding: 5px 8px;
  border-radius: var(--ui-radius-sm, 6px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.75);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
  text-align: center;
}
.bill-view-dialog__discount-preset-btn:hover {
  background: rgba(99, 102, 241, 0.12);
  border-color: rgba(99, 102, 241, 0.35);
  color: #c4b5fd;
}
.bill-view-dialog__discount-preset-btn--active {
  background: rgba(99, 102, 241, 0.2);
  border-color: rgba(99, 102, 241, 0.5);
  color: #818cf8;
  box-shadow: 0 0 8px rgba(99, 102, 241, 0.15);
}
.bill-view-dialog__discount-preset-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.bill-view-dialog__discount-editor-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 8px;
}

/* ── Custom Input ────────────────────────────────────────────────────── */
.bill-view-dialog__discount-custom {
  display: flex;
  align-items: center;
  gap: 0;
  position: relative;
}

.bill-view-dialog__discount-input {
  flex: 1;
  padding: 7px 28px 7px 10px;
  border-radius: var(--ui-radius-sm, 6px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.04);
  color: var(--ui-text-primary, #e2e8f0);
  font-size: 14px;
  font-weight: 600;
  font-family: var(--ui-font-mono);
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  width: 100%;
  -moz-appearance: textfield;
}
.bill-view-dialog__discount-input::-webkit-inner-spin-button, .bill-view-dialog__discount-input::-webkit-outer-spin-button {
  -webkit-appearance: none;
}
.bill-view-dialog__discount-input:focus {
  border-color: rgba(99, 102, 241, 0.5);
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);
}
.bill-view-dialog__discount-input::placeholder {
  color: rgba(255, 255, 255, 0.25);
  font-weight: 400;
}

.bill-view-dialog__discount-input-suffix {
  position: absolute;
  right: 10px;
  font-size: 14px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.35);
  pointer-events: none;
}

/* ── Live Preview ────────────────────────────────────────────────────── */
.bill-view-dialog__discount-preview {
  font-size: 12px;
  font-weight: 600;
  color: #10b981;
  text-align: left;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  animation: discountPreviewFade 0.2s ease;
}

@keyframes discountPreviewFade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/* ── Action Buttons ──────────────────────────────────────────────────── */
.bill-view-dialog__discount-actions {
  display: inline-flex;
  gap: 6px;
}

.bill-view-dialog__discount-action-btn {
  padding: 6px 10px;
  border-radius: var(--ui-radius-sm, 6px);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
  text-align: center;
}
.bill-view-dialog__discount-action-btn--apply {
  background: rgba(99, 102, 241, 0.2);
  color: #818cf8;
  border: 1px solid rgba(99, 102, 241, 0.35);
}
.bill-view-dialog__discount-action-btn--apply:hover {
  background: rgba(99, 102, 241, 0.3);
}
.bill-view-dialog__discount-action-btn--cancel {
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.bill-view-dialog__discount-action-btn--cancel:hover {
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.75);
}
.bill-view-dialog__discount-action-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* ── Saving Spinner ──────────────────────────────────────────────────── */
.bill-view-dialog__discount-saving {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 0;
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.45);
}
.bill-view-dialog__discount-saving mat-icon {
  font-size: 15px;
  width: 15px;
  height: 15px;
  color: #818cf8;
}

@keyframes bill-view-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.bill-view-spin {
  animation: bill-view-spin 1s linear infinite;
}

@media (max-width: 720px) {
  .bill-view-dialog__discount-label {
    align-items: flex-start;
  }
  .bill-view-dialog__discount-top {
    align-items: flex-start;
  }
  .bill-view-dialog__discount-editor-body {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .bill-view-dialog__discount-preview {
    text-align: right;
  }
  .bill-view-dialog__discount-actions {
    justify-content: flex-end;
  }
  .bill-view-dialog__discount-meta {
    display: flex;
    padding-left: 0;
    flex-wrap: wrap;
    row-gap: 6px;
  }
  .bill-view-dialog__discount-actions-inline {
    justify-self: auto;
  }
}
/* ==========================================================================
   CREATE NEW PART — Autocomplete Option
   ========================================================================== */
.create-new-part-option {
  border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
  margin-top: 4px !important;
  position: sticky;
  bottom: 0;
  background: rgba(15, 15, 25, 0.95) !important;
  backdrop-filter: blur(12px);
  z-index: 1;
}
.create-new-part-option:hover, .create-new-part-option.mat-mdc-option-active {
  background: rgba(99, 102, 241, 0.12) !important;
}
.create-new-part-option[aria-disabled=true] {
  opacity: 0.5;
  pointer-events: none;
}

.create-new-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 2px 0;
}

.create-new-item__icon {
  font-size: 20px !important;
  width: 20px !important;
  height: 20px !important;
  color: #818cf8;
  flex-shrink: 0;
}

.create-new-item__text {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.create-new-item__title {
  font-size: 13px;
  font-weight: 600;
  color: #818cf8;
  letter-spacing: 0.01em;
}

.create-new-item__subtitle {
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.45);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 220px;
  font-style: italic;
}

/* ==========================================================================
   MODAL: SUPPLIER SELECT
   ==========================================================================
   Contract for supplier selection modal (SuppliersListComponent).
   All selectors prefixed with .supplier-select-.
   Uses ONLY --ui-* design tokens. NO hardcoded colours.
   OWNER: src/ui/modals/supplier-select.scss
   ========================================================================== */
/* ── Panel reset ───────────────────────────────────────────────────────────── */
@media (max-width: 600px) {
  body .cdk-overlay-pane.supplier-select-dialog-panel {
    width: 100vw !important;
    max-width: 100vw !important;
    max-height: 100dvh !important;
    border-radius: 0 !important;
  }
}
body .cdk-overlay-pane.supplier-select-dialog-panel .mat-mdc-dialog-container,
body .cdk-overlay-pane.supplier-select-dialog-panel .mdc-dialog__container,
body .cdk-overlay-pane.supplier-select-dialog-panel .mdc-dialog__surface,
body .cdk-overlay-pane.supplier-select-dialog-panel .mat-mdc-dialog-surface {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
  padding: 0 !important;
  border-radius: 24px !important;
  overflow: visible !important;
}

body .cdk-overlay-pane.supplier-select-dialog-panel mat-dialog-content,
body .cdk-overlay-pane.supplier-select-dialog-panel .mat-mdc-dialog-content,
body .cdk-overlay-pane.supplier-select-dialog-panel .mdc-dialog__content {
  padding: 0 !important;
  margin: 0 !important;
  max-height: none !important;
  overflow: visible !important;
}

/* ── Modal container ──────────────────────────────────────────────────────── */
.supplier-select-modal {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: none;
  height: 100%;
  max-height: none;
  min-height: 0;
  overflow: hidden;
}

/* ── Header ───────────────────────────────────────────────────────────────── */
.supplier-select-header {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  flex: 0 0 auto;
}

.supplier-select-search-wrap {
  flex: 1;
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--ui-radius-lg);
  padding: var(--ui-space-2) var(--ui-space-3);
  transition: border-color 0.2s ease;
}

.supplier-select-search-wrap:focus-within {
  border-color: var(--ui-accent, #ff784f);
  background: rgba(255, 255, 255, 0.06);
}

.supplier-select-search-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: var(--ui-text-muted);
  flex-shrink: 0;
}

.supplier-select-search {
  flex: 1;
  border: none;
  background: transparent;
  color: var(--ui-text-primary);
  font-family: inherit;
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-medium);
  outline: none;
  min-width: 0;
}

.supplier-select-search::placeholder {
  color: var(--ui-text-muted);
  font-weight: var(--ui-font-regular, 400);
}

.supplier-select-search-clear {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border: none;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 50%;
  color: var(--ui-text-muted);
  cursor: pointer;
  transition: var(--ui-transition-base);
  flex-shrink: 0;
}

.supplier-select-search-clear mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.supplier-select-search-clear:hover {
  background: rgba(255, 255, 255, 0.15);
  color: var(--ui-text-primary);
}

.supplier-select-search-hint {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  font-size: 11px;
  color: var(--ui-text-muted);
  opacity: 0.5;
}

.supplier-select-search-hint kbd {
  display: inline-block;
  padding: 1px 5px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 4px;
  font-family: var(--ui-font-mono);
  font-size: 10px;
  line-height: 1.4;
  margin-right: 3px;
}

.supplier-select-header-actions {
  flex-shrink: 0;
  gap: var(--ui-space-2) !important;
}

/* ── Body ─────────────────────────────────────────────────────────────────── */
.supplier-select-body {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: var(--ui-space-3) var(--ui-space-4) !important;
}

.supplier-select-body::-webkit-scrollbar {
  width: 4px;
}

.supplier-select-body::-webkit-scrollbar-track {
  background: transparent;
}

.supplier-select-body::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.08);
  border-radius: 4px;
}

/* ── Section Headers ──────────────────────────────────────────────────────── */
.supplier-select-section-title {
  display: flex;
  align-items: center;
  gap: var(--ui-space-1);
  margin: 0 0 var(--ui-space-3) 0;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ui-text-muted);
}

.supplier-select-section-title mat-icon {
  font-size: 15px;
  width: 15px;
  height: 15px;
  color: var(--ui-accent, #ff784f);
}

/* ── Recommended Cards ────────────────────────────────────────────────────── */
.supplier-select-recommended {
  display: flex;
  gap: var(--ui-space-3);
  overflow-x: auto;
  padding: var(--ui-space-1) var(--ui-space-1) var(--ui-space-2);
  margin-top: calc(var(--ui-space-1) * -1);
  margin-inline: calc(var(--ui-space-1) * -1);
  scroll-snap-type: x mandatory;
}

.supplier-select-recommended::-webkit-scrollbar {
  height: 3px;
}

.supplier-select-recommended::-webkit-scrollbar-track {
  background: transparent;
}

.supplier-select-recommended::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.06);
  border-radius: 3px;
}

.supplier-select-card {
  flex: 0 0 220px;
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-lg);
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  cursor: pointer;
  transition: all 0.2s ease;
}

.supplier-select-card:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: var(--ui-accent, #ff784f);
  box-shadow: 0 0 0 1px rgba(255, 120, 79, 0.15), 0 8px 24px rgba(0, 0, 0, 0.2);
  transform: translateY(-2px);
}

.supplier-select-card--skeleton {
  pointer-events: none;
}

.supplier-select-card__top {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.supplier-select-card__avatar {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(255, 120, 79, 0.2), rgba(255, 120, 79, 0.08));
  color: var(--ui-accent, #ff784f);
  font-size: 12px;
  font-weight: var(--ui-font-bold);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  letter-spacing: 0.04em;
}

.supplier-select-card__info {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.supplier-select-card__name {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.supplier-select-card__meta {
  font-size: 11px;
  color: var(--ui-text-muted);
}

.supplier-select-card__stats {
  display: flex;
  gap: var(--ui-space-3);
}

.supplier-select-card__stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.supplier-select-card__stat-label {
  font-size: 10px;
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ui-text-muted);
}

.supplier-select-card__stat-value {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  font-family: var(--ui-font-mono);
}

.supplier-select-card__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 100%;
  padding: 6px 0;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--ui-radius-md);
  background: transparent;
  color: var(--ui-text-secondary);
  font-family: inherit;
  font-size: 12px;
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: all 0.15s ease;
}

.supplier-select-card__cta mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.supplier-select-card:hover .supplier-select-card__cta {
  background: var(--ui-accent, #ff784f);
  border-color: var(--ui-accent, #ff784f);
  color: #fff;
}

/* ── Divider ──────────────────────────────────────────────────────────────── */
.supplier-select-divider {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  margin: var(--ui-space-4) 0 var(--ui-space-3) 0;
}

.supplier-select-divider__line {
  flex: 1;
  height: 1px;
  background: rgba(255, 255, 255, 0.06);
}

.supplier-select-divider__label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ui-text-muted);
  white-space: nowrap;
}

/* ── Results label ────────────────────────────────────────────────────────── */
.supplier-select-results-label {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  margin-bottom: var(--ui-space-2);
  padding: 0 var(--ui-space-1);
}

/* ── Supplier Rows ────────────────────────────────────────────────────────── */
.supplier-select-row {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(400px, 0.9fr);
  align-items: center;
  gap: 12px;
  padding: 12px var(--ui-space-4);
  border-radius: var(--ui-radius-lg);
  cursor: pointer;
  transition: background 0.12s ease, border-color 0.12s ease, box-shadow 0.18s ease;
  border: 1px solid transparent;
}

.supplier-select-row:hover,
.supplier-select-row.is-highlighted {
  background: rgba(255, 255, 255, 0.035);
  border-color: rgba(255, 255, 255, 0.08);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02);
}

.supplier-select-row.is-highlighted {
  background: rgba(255, 120, 79, 0.06);
  border-color: rgba(255, 120, 79, 0.15);
}

.supplier-select-row--skeleton {
  pointer-events: none;
  height: 56px;
}

.supplier-select-row__left {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  align-self: center;
  padding-right: var(--ui-space-2);
}

.supplier-select-row__avatar {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(255, 120, 79, 0.18), rgba(255, 255, 255, 0.02)), rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: #ff9b72;
  font-size: 13px;
  font-weight: var(--ui-font-bold);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  letter-spacing: 0.04em;
}

.supplier-select-row.is-highlighted .supplier-select-row__avatar {
  background: rgba(255, 120, 79, 0.12);
  border-color: rgba(255, 120, 79, 0.2);
  color: var(--ui-accent, #ff784f);
}

.supplier-select-row__info {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.supplier-select-row__name {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.supplier-select-row__meta {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  color: var(--ui-text-muted);
  flex-wrap: wrap;
}

.supplier-select-row__gstin {
  font-family: var(--ui-font-mono);
  font-size: 10px;
  letter-spacing: 0.02em;
  opacity: 0.6;
}

.supplier-select-row__dot {
  opacity: 0.3;
}

.supplier-select-row__meta-rail {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.supplier-select-row__meta-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
  padding: 4px 9px;
  border-radius: var(--ui-radius-full);
  background: rgba(255, 255, 255, 0.035);
  border: 1px solid rgba(255, 255, 255, 0.07);
  color: var(--ui-text-secondary);
  font-size: 9px;
  line-height: 1;
}

.supplier-select-row__meta-pill mat-icon {
  width: 12px;
  height: 12px;
  font-size: 12px;
  color: var(--ui-text-muted);
}

.supplier-select-row__meta-pill--gst {
  background: rgba(255, 120, 79, 0.09);
  border-color: rgba(255, 120, 79, 0.18);
}

.supplier-select-row__meta-pill--gst mat-icon {
  color: #ff9b72;
}

.supplier-select-row__meta-pill--risk {
  font-weight: var(--ui-font-semibold);
}

.supplier-select-row__meta-pill--risk-low {
  background: rgba(74, 222, 128, 0.1);
  border-color: rgba(74, 222, 128, 0.25);
  color: #6ee7a2;
}

.supplier-select-row__meta-pill--risk-low mat-icon {
  color: #6ee7a2;
}

.supplier-select-row__meta-pill--risk-medium {
  background: rgba(245, 158, 11, 0.12);
  border-color: rgba(245, 158, 11, 0.25);
  color: #fbbf24;
}

.supplier-select-row__meta-pill--risk-medium mat-icon {
  color: #fbbf24;
}

.supplier-select-row__meta-pill--risk-high {
  background: rgba(239, 68, 68, 0.12);
  border-color: rgba(239, 68, 68, 0.25);
  color: #f87171;
}

.supplier-select-row__meta-pill--risk-high mat-icon {
  color: #f87171;
}

.supplier-select-row__meta-pill--risk-new {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
  color: var(--ui-text-muted);
}

.supplier-select-row__meta-pill--risk-new mat-icon {
  color: var(--ui-text-muted);
}

.supplier-select-row__meta-pill-text {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ── Row Right (financial) ────────────────────────────────────────────────── */
.supplier-select-row__right {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  width: 100%;
  justify-self: stretch;
}

.supplier-select-row:hover .supplier-select-row__right,
.supplier-select-row.is-highlighted .supplier-select-row__right {
  box-shadow: none;
}

.supplier-select-row__financial {
  display: grid;
  grid-template-columns: repeat(2, minmax(120px, 1fr));
  gap: 8px;
  align-items: stretch;
  min-width: 0;
  flex: 1;
}

.supplier-select-row__metric {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
  padding: 7px 10px;
  border-radius: 10px;
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02);
}

.supplier-select-row__metric-label {
  font-size: 9px;
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ui-text-muted);
}

.supplier-select-row__metric-value {
  font-size: calc(var(--ui-text-base) + 1px);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  font-family: var(--ui-font-mono);
  white-space: nowrap;
}

.supplier-select-row__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-width: 0;
  padding: 0;
  border-left: 0;
  flex-shrink: 0;
}

.supplier-select-row__actions-label {
  display: none;
}

.supplier-select-row__risk {
  min-width: 0;
  max-width: 190px;
}

/* ── Risk Badges ──────────────────────────────────────────────────────────── */
.risk-high {
  color: var(--ui-danger, #ef4444) !important;
}

.risk-medium {
  color: var(--ui-warning, #f59e0b) !important;
}

.risk-low {
  color: var(--ui-success, #4ade80) !important;
}

.supplier-select-risk-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: auto;
  max-width: 190px;
  min-height: 30px;
  padding: 4px 10px;
  border-radius: var(--ui-radius-full);
  font-size: 10px;
  font-weight: var(--ui-font-bold);
  letter-spacing: 0.04em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.supplier-select-risk-badge mat-icon {
  font-size: 11px;
  width: 11px;
  height: 11px;
  flex: 0 0 auto;
}

.supplier-select-risk-badge.risk-high {
  background: var(--ui-danger-bg, rgba(239, 68, 68, 0.12));
  border: 1px solid var(--ui-danger-border, rgba(239, 68, 68, 0.25));
}

.supplier-select-risk-badge.risk-medium {
  background: var(--ui-warning-bg, rgba(245, 158, 11, 0.12));
  border: 1px solid var(--ui-warning-border, rgba(245, 158, 11, 0.25));
}

.supplier-select-risk-badge.risk-low {
  background: var(--ui-success-bg, rgba(74, 222, 128, 0.08));
  border: 1px solid var(--ui-success-border, rgba(74, 222, 128, 0.2));
}

.supplier-select-risk-badge.risk-new {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: var(--ui-text-muted);
}

/* ── Select Button ────────────────────────────────────────────────────────── */
.supplier-select-row__select {
  width: 104px;
  min-width: 0;
  padding: 8px 12px;
  border-radius: var(--ui-radius-md);
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: transparent;
  color: var(--ui-text-secondary);
  font-family: inherit;
  font-size: 11px;
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
}

.supplier-select-row:hover .supplier-select-row__select,
.supplier-select-row.is-highlighted .supplier-select-row__select {
  background: var(--ui-accent, #ff784f);
  border-color: var(--ui-accent, #ff784f);
  color: #fff;
}

/* ── Empty States ─────────────────────────────────────────────────────────── */
.supplier-select-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--ui-space-8) var(--ui-space-4);
  text-align: center;
}

.supplier-select-empty__icon {
  font-size: 48px;
  width: 48px;
  height: 48px;
  color: rgba(255, 255, 255, 0.12);
  margin-bottom: var(--ui-space-3);
}

.supplier-select-empty__title {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  margin-bottom: 4px;
}

.supplier-select-empty__subtitle {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.supplier-select-empty__action {
  margin-top: var(--ui-space-4);
}

/* ── Footer ───────────────────────────────────────────────────────────────── */
.supplier-select-footer {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  padding: var(--ui-space-2) var(--ui-space-4) !important;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  flex: 0 0 auto;
}

.supplier-select-footer__hints {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
}

.supplier-select-kbd-hint {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: var(--ui-text-muted);
  opacity: 0.5;
}

.supplier-select-kbd-hint kbd {
  display: inline-block;
  padding: 1px 5px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 4px;
  font-family: var(--ui-font-mono);
  font-size: 10px;
  line-height: 1.4;
}

.supplier-select-footer__count {
  font-size: 11px;
  color: var(--ui-text-muted);
  opacity: 0.6;
}

/* ── Skeleton Animations ──────────────────────────────────────────────────── */
.supplier-select-card--skeleton .skeleton-line,
.supplier-select-row--skeleton .skeleton-line {
  border-radius: 4px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.04) 25%, rgba(255, 255, 255, 0.08) 50%, rgba(255, 255, 255, 0.04) 75%);
  background-size: 200% 100%;
  animation: supplier-select-shimmer 1.5s infinite;
}

@media (max-width: 1240px) {
  .supplier-select-row {
    grid-template-columns: minmax(0, 1fr) minmax(360px, 0.95fr);
  }
}
@media (max-width: 960px) {
  .supplier-select-row {
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
  }
  .supplier-select-row__left {
    padding-right: 0;
  }
  .supplier-select-row__right {
    width: 100%;
  }
}
@media (max-width: 760px) {
  .supplier-select-row__right {
    flex-direction: column;
    align-items: stretch;
  }
  .supplier-select-row__financial {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .supplier-select-row__actions {
    justify-content: flex-end;
    padding: 8px 0 0;
    border-left: 0;
  }
  .supplier-select-row__risk {
    max-width: none;
  }
  .supplier-select-risk-badge {
    max-width: none;
  }
  .supplier-select-row__select {
    width: auto;
  }
}
@media (max-width: 560px) {
  .supplier-select-row {
    padding: 10px 12px;
  }
  .supplier-select-row__left {
    flex-direction: row;
    align-items: flex-start;
  }
  .supplier-select-row__financial {
    grid-template-columns: 1fr;
  }
  .supplier-select-row__actions {
    flex-wrap: wrap;
  }
  .supplier-select-row__select {
    width: 100%;
  }
  .supplier-select-footer {
    flex-direction: column !important;
    align-items: flex-start;
    gap: var(--ui-space-2);
  }
  .supplier-select-footer__hints {
    flex-wrap: wrap;
  }
}
@keyframes supplier-select-shimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
/* ==========================================================================
   MODAL - PARTY STATEMENT
   ==========================================================================
   Dedicated ledger modal for party statements.
   ========================================================================== */
body .cdk-overlay-pane.party-statement-dialog-panel {
  width: min(1400px, 100vw - var(--ui-space-10)) !important;
  max-width: min(1400px, 100vw - var(--ui-space-10)) !important;
  height: min(90vh, 100vh - var(--ui-space-10)) !important;
  max-height: min(90vh, 100vh - var(--ui-space-10)) !important;
  margin: auto !important;
}

@supports (height: 100dvh) {
  body .cdk-overlay-pane.party-statement-dialog-panel {
    height: min(90dvh, 100dvh - var(--ui-space-10)) !important;
    max-height: min(90dvh, 100dvh - var(--ui-space-10)) !important;
  }
}
body .cdk-overlay-pane.party-statement-dialog-panel .mat-mdc-dialog-container,
body .cdk-overlay-pane.party-statement-dialog-panel .mdc-dialog__container,
body .cdk-overlay-pane.party-statement-dialog-panel .mdc-dialog__surface,
body .cdk-overlay-pane.party-statement-dialog-panel .mat-mdc-dialog-surface {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border: none !important;
  padding: 0 !important;
  border-radius: var(--ui-radius-2xl) !important;
  overflow: hidden !important;
  height: 100% !important;
}

body .cdk-overlay-pane.party-statement-dialog-panel .mdc-dialog__surface > *,
body .cdk-overlay-pane.party-statement-dialog-panel .mat-mdc-dialog-surface > * {
  display: block !important;
  height: 100% !important;
}

body .cdk-overlay-pane.party-statement-dialog-panel mat-dialog-content,
body .cdk-overlay-pane.party-statement-dialog-panel .mat-mdc-dialog-content,
body .cdk-overlay-pane.party-statement-dialog-panel .mdc-dialog__content {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

body .cdk-overlay-pane.party-statement-dialog-panel .mat-mdc-dialog-component-host {
  display: block !important;
  height: 100% !important;
  min-height: 0 !important;
}

.party-statement-dialog.ui-modal__panel, .party-statement-dialog.glass-modal-container {
  width: 100%;
  max-width: none;
  max-height: none;
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
  overflow: hidden;
}

.party-statement-dialog .ui-modal__header {
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-5);
}

.party-statement-dialog__title-block {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
}

.party-statement-dialog .ui-modal__title {
  font-size: clamp(1.75rem, 1.45rem + 0.72vw, 2.2rem);
  line-height: 1.04;
  letter-spacing: -0.03em;
}

.party-statement-dialog__subtitle {
  margin: 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.party-statement-dialog__title-group {
  min-width: 0;
}

.party-statement-dialog .ui-modal__header-actions {
  gap: var(--ui-space-2);
  flex-wrap: nowrap;
  min-width: 0;
}

.party-statement-dialog__date-filter {
  display: flex;
  align-items: center;
  flex: 1 1 260px;
  min-width: 0;
  max-width: 300px;
}

.party-statement-dialog__date-filter app-date-filter {
  display: block;
  width: 100%;
}

.party-statement-dialog__date-filter app-date-filter .pill-trigger {
  width: 100%;
  min-height: 36px;
  padding-inline: var(--ui-space-4);
  min-width: 0;
}

.party-statement-dialog__date-filter .pill-label,
.party-statement-dialog__header-actions .ui-btn {
  white-space: nowrap;
}

.party-statement-dialog__date-filter .pill-label {
  overflow: hidden;
  text-overflow: ellipsis;
}

.party-statement-dialog .ui-modal__body {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: var(--ui-space-5) var(--ui-space-6) var(--ui-space-6);
  gap: var(--ui-space-5);
}

.party-statement-dialog__summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ui-space-4);
  align-items: stretch;
}

.party-statement-dialog__summary-card {
  min-width: 0;
  height: 100%;
}

.party-statement-dialog__card-body {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  height: 100%;
}

.party-statement-dialog__card-main {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.party-statement-dialog__party-name {
  margin: 0;
  font-size: var(--ui-text-2xl);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  line-height: 1.2;
}

.party-statement-dialog__card-copy {
  margin: 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  line-height: 1.55;
}

.party-statement-dialog__metric-list {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.party-statement-dialog__metric-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-4);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

.party-statement-dialog__metric-row strong {
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-semibold);
}

.party-statement-dialog__balance-label {
  margin: 0;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ui-text-muted);
}

.party-statement-dialog__balance-value {
  margin: 0;
  font-size: clamp(2rem, 1.6rem + 0.8vw, 2.8rem);
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--ui-success);
}

.party-statement-dialog__balance-value.is-negative {
  color: var(--ui-danger);
}

.party-statement-dialog__summary-action {
  margin-top: auto;
}

.party-statement-dialog__table-card {
  padding: 0;
  gap: 0;
  overflow: hidden;
  flex: 0 0 auto;
}

.party-statement-dialog .glass-table-header {
  padding: var(--ui-space-5) var(--ui-space-6) var(--ui-space-4);
  margin-bottom: 0;
}

.party-statement-dialog .glass-table-wrap {
  padding: 0 var(--ui-space-6) var(--ui-space-6);
  overflow-x: auto;
  overflow-y: visible;
}

.party-statement-dialog__table {
  min-width: 1080px;
}

.party-statement-dialog__table td,
.party-statement-dialog__table th {
  vertical-align: middle;
}

.party-statement-dialog__stacked-cell {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.party-statement-dialog .ui-table-pagination, .party-statement-dialog .glass-pagination {
  margin: var(--ui-space-4) 0 0;
  overflow: hidden;
  flex-shrink: 0;
}

.party-statement-dialog .ui-table-pagination .pagination-info, .party-statement-dialog .glass-pagination .pagination-info {
  min-width: max-content;
  padding-left: var(--ui-space-1);
}

@media (max-width: 1180px) {
  .party-statement-dialog__summary-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 900px) {
  body .cdk-overlay-pane.party-statement-dialog-panel {
    width: min(100vw - var(--ui-space-6), 100vw) !important;
    max-width: min(100vw - var(--ui-space-6), 100vw) !important;
    height: min(94vh, 100vh - var(--ui-space-6)) !important;
    max-height: min(94vh, 100vh - var(--ui-space-6)) !important;
  }
  .party-statement-dialog .ui-modal__header,
  .party-statement-dialog .ui-modal__body {
    padding-inline: var(--ui-space-4);
  }
  .party-statement-dialog .ui-modal__header {
    align-items: flex-start;
  }
  .party-statement-dialog .ui-modal__header-actions {
    flex-wrap: wrap;
    justify-content: flex-end;
  }
  .party-statement-dialog__date-filter {
    flex: 1 1 100%;
    max-width: 100%;
  }
  .party-statement-dialog .glass-table-header,
  .party-statement-dialog .glass-table-wrap {
    padding-left: var(--ui-space-4);
    padding-right: var(--ui-space-4);
  }
  .party-statement-dialog .ui-table-pagination, .party-statement-dialog .glass-pagination {
    margin-top: var(--ui-space-3);
  }
}
/* ── Entity-Type Aware Menu Hints ───────────────────────────── */
.menu-hint {
  display: block;
  font-size: var(--ui-text-xs, 11px);
  color: var(--ui-text-muted, #999);
  font-weight: 400;
  line-height: 1.3;
  margin-top: 2px;
}

/* ==========================================================================
   MODAL - PARTY LEDGER DIALOG
   ==========================================================================
   Employee/vendor party ledger quick-view opened from payables.
   Extends the shared glass modal contract with scoped ledger styling.
   ========================================================================== */
body .cdk-overlay-pane.party-ledger-dialog-panel {
  width: min(1520px, 100vw - 24px) !important;
  max-width: min(1520px, 100vw - 24px) !important;
  height: min(92vh, 100vh - 24px) !important;
  max-height: min(92vh, 100vh - 24px) !important;
  margin: auto !important;
}

@supports (height: 100dvh) {
  body .cdk-overlay-pane.party-ledger-dialog-panel {
    height: min(92dvh, 100dvh - 24px) !important;
    max-height: min(92dvh, 100dvh - 24px) !important;
  }
}
body .cdk-overlay-pane.party-ledger-dialog-panel .mat-mdc-dialog-container,
body .cdk-overlay-pane.party-ledger-dialog-panel .mdc-dialog__container,
body .cdk-overlay-pane.party-ledger-dialog-panel .mdc-dialog__surface,
body .cdk-overlay-pane.party-ledger-dialog-panel .mat-mdc-dialog-surface {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border: none !important;
  padding: 0 !important;
  border-radius: var(--ui-radius-2xl) !important;
  overflow: hidden !important;
  width: 100% !important;
  max-width: 100% !important;
}

.cdk-global-overlay-wrapper:has(.party-ledger-dialog-panel) {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}

.party-ledger-dialog.glass-modal-container {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 100%;
  min-height: 0;
  height: min(92vh, 100vh - 24px);
  max-height: min(92vh, 100vh - 24px);
  background: linear-gradient(180deg, rgba(46, 28, 20, 0.9) 0%, rgba(15, 17, 22, 0.96) 100%), radial-gradient(circle at top right, rgba(255, 133, 74, 0.14) 0%, transparent 38%);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--ui-radius-2xl);
  box-shadow: 0 32px 80px rgba(0, 0, 0, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.04);
  backdrop-filter: blur(28px) saturate(145%);
  -webkit-backdrop-filter: blur(28px) saturate(145%);
}

@supports (height: 100dvh) {
  .party-ledger-dialog.glass-modal-container {
    height: min(92dvh, 100dvh - 24px);
    max-height: min(92dvh, 100dvh - 24px);
  }
}
.party-ledger-dialog .ui-modal__header {
  align-items: flex-start;
  gap: var(--ui-space-4);
}

.party-ledger-dialog__title-copy {
  min-width: 0;
}

.party-ledger-dialog__avatar {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(255, 160, 112, 0.18), rgba(255, 123, 74, 0.26));
  border: 1px solid rgba(255, 170, 129, 0.22);
  display: grid;
  place-items: center;
  font-size: 17px;
  font-weight: 700;
  color: rgba(255, 221, 205, 0.96);
  flex-shrink: 0;
}

.party-ledger-dialog__subtitle {
  margin: 4px 0 0;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.56);
}

/* ── Role badge chips (SAP-style party classification) ─────────────── */
.party-ledger-dialog__role-badge {
  display: inline-flex;
  align-items: center;
  align-self: center;
  height: 24px;
  padding: 0 10px;
  border-radius: 6px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
  border: 1px solid;
  transition: opacity 180ms ease;
}

.party-ledger-dialog__role-badge--employee {
  color: #5ee9c5;
  background: rgba(94, 233, 197, 0.08);
  border-color: rgba(94, 233, 197, 0.22);
}

.party-ledger-dialog__role-badge--customer {
  color: #7db8ff;
  background: rgba(125, 184, 255, 0.08);
  border-color: rgba(125, 184, 255, 0.22);
}

.party-ledger-dialog__role-badge--vendor {
  color: #ffb86c;
  background: rgba(255, 184, 108, 0.08);
  border-color: rgba(255, 184, 108, 0.22);
}

.party-ledger-dialog__role-badge--insurance {
  color: #c4a4ff;
  background: rgba(196, 164, 255, 0.08);
  border-color: rgba(196, 164, 255, 0.22);
}

.party-ledger-dialog__role-badge--dealer {
  color: #ff8fa3;
  background: rgba(255, 143, 163, 0.08);
  border-color: rgba(255, 143, 163, 0.22);
}

.party-ledger-dialog__role-badge--corporate {
  color: #a0d4ff;
  background: rgba(160, 212, 255, 0.08);
  border-color: rgba(160, 212, 255, 0.22);
}

.party-ledger-dialog__role-badge--internal {
  color: rgba(255, 255, 255, 0.5);
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.1);
}

.party-ledger-dialog__header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
  margin-left: auto;
}

.party-ledger-dialog__duration-filter {
  flex: 0 1 auto;
}

.party-ledger-dialog__duration-filter app-date-filter {
  display: block;
}

.party-ledger-dialog__duration-filter .pill-trigger {
  min-height: 40px;
  padding-inline: 14px;
  border-radius: var(--ui-radius-full);
  background: rgba(255, 255, 255, 0.045);
  border-color: rgba(255, 255, 255, 0.08);
  box-shadow: none;
}

.party-ledger-dialog__duration-filter .pill-trigger:hover {
  background: rgba(255, 255, 255, 0.065);
}

.party-ledger-dialog__duration-filter .pill-label {
  min-width: 0;
}

.party-ledger-dialog__duration-filter .pill-single-title {
  white-space: nowrap;
}

.party-ledger-dialog__header-btn {
  width: 36px;
  height: 36px;
  border-radius: var(--ui-radius-full);
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.05);
  color: rgba(255, 255, 255, 0.62);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease;
}

.party-ledger-dialog__header-btn:hover {
  background: rgba(255, 133, 74, 0.1);
  border-color: rgba(255, 133, 74, 0.2);
  color: rgba(255, 218, 198, 0.96);
}

.party-ledger-dialog .ui-modal__body {
  display: block;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  scroll-behavior: smooth;
  padding: var(--ui-space-5);
}

/* (dock bar removed — simple scroll) */
.party-ledger-dialog__info-toggle {
  display: flex;
  justify-content: flex-start;
  margin-bottom: 8px;
}

.party-ledger-dialog__info-trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--ui-radius-full);
  padding: 6px 14px;
  color: rgba(255, 255, 255, 0.55);
  font-size: 12px;
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.party-ledger-dialog__info-trigger:hover {
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.8);
  border-color: rgba(255, 255, 255, 0.15);
}

.party-ledger-dialog__info-trigger mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.party-ledger-dialog__info-trigger--header {
  flex: 0 0 auto;
  min-height: 36px;
  padding-inline: 12px;
  white-space: nowrap;
}

.party-ledger-dialog__info-panel {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 10px;
  padding: 14px 18px;
  margin-bottom: 12px;
}

.party-ledger-dialog__info-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 10px 24px;
}

.party-ledger-dialog__info-label {
  display: block;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.35);
  margin-bottom: 2px;
}

.party-ledger-dialog__info-value {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.8);
}

.party-ledger-dialog__summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: var(--ui-space-5);
}

.party-ledger-dialog__summary-card {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 92px;
  padding: 14px 16px;
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.028));
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
}

.party-ledger-dialog__summary-card--highlight {
  background: linear-gradient(180deg, rgba(74, 183, 255, 0.08), rgba(255, 255, 255, 0.025));
  border-color: rgba(95, 180, 255, 0.2);
}

.party-ledger-dialog__summary .summary-label {
  font-size: 10px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.44);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.party-ledger-dialog__summary .summary-value {
  font-size: 28px;
  font-weight: 700;
  font-family: var(--ui-font-mono);
  line-height: 1.1;
  color: rgba(255, 255, 255, 0.92);
}

.party-ledger-dialog__summary .summary-value--debit {
  color: #ff918f;
}

.party-ledger-dialog__summary .summary-value--credit {
  color: #7be4a6;
}

/* ------------------------------------------------------------------ *
 * LEDGER SECTION — Two-phase scroll architecture                      *
 * Phase 1 (default):  tbody overflow disabled, modal body scrolls     *
 * Phase 2 (--docked): ledger section fills viewport, glass-table      *
 *                     internal scroll takes over                      *
 * ------------------------------------------------------------------ */
.party-ledger-dialog__ledger-section {
  display: flex;
  flex-direction: column;
  padding: 0;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.018) !important;
  border-color: rgba(255, 255, 255, 0.06) !important;
}

.party-ledger-dialog__ledger-section .ui-card__header, .party-ledger-dialog__ledger-section .glass-modal-container .card-header, .glass-modal-container .party-ledger-dialog__ledger-section .card-header,
.party-ledger-dialog__ledger-section .glass-modal-container .section-header,
.glass-modal-container .party-ledger-dialog__ledger-section .section-header,
.party-ledger-dialog__ledger-section .glass-modal-container .entry-header,
.glass-modal-container .party-ledger-dialog__ledger-section .entry-header,
.party-ledger-dialog__ledger-section .glass-modal-container .timeline-card > header,
.glass-modal-container .party-ledger-dialog__ledger-section .timeline-card > header,
.party-ledger-dialog__ledger-section .glass-modal-container .attachments > header,
.glass-modal-container .party-ledger-dialog__ledger-section .attachments > header,
.party-ledger-dialog__ledger-section .glass-modal-container .review-header,
.glass-modal-container .party-ledger-dialog__ledger-section .review-header,
.party-ledger-dialog__ledger-section .glass-modal-container .modal-header,
.glass-modal-container .party-ledger-dialog__ledger-section .modal-header {
  padding: 18px 24px 12px;
  margin-bottom: 0;
  flex: 0 0 auto;
}

.party-ledger-dialog__ledger-section .ui-card__header::after, .party-ledger-dialog__ledger-section .glass-modal-container .card-header::after, .glass-modal-container .party-ledger-dialog__ledger-section .card-header::after,
.party-ledger-dialog__ledger-section .glass-modal-container .section-header::after,
.glass-modal-container .party-ledger-dialog__ledger-section .section-header::after,
.party-ledger-dialog__ledger-section .glass-modal-container .entry-header::after,
.glass-modal-container .party-ledger-dialog__ledger-section .entry-header::after,
.party-ledger-dialog__ledger-section .glass-modal-container .timeline-card > header::after,
.glass-modal-container .party-ledger-dialog__ledger-section .timeline-card > header::after,
.party-ledger-dialog__ledger-section .glass-modal-container .attachments > header::after,
.glass-modal-container .party-ledger-dialog__ledger-section .attachments > header::after,
.party-ledger-dialog__ledger-section .glass-modal-container .review-header::after,
.glass-modal-container .party-ledger-dialog__ledger-section .review-header::after,
.party-ledger-dialog__ledger-section .glass-modal-container .modal-header::after,
.glass-modal-container .party-ledger-dialog__ledger-section .modal-header::after {
  display: none;
}

.party-ledger-dialog__ledger-section .ui-card__title, .party-ledger-dialog__ledger-section .glass-modal-container .card-header h3, .glass-modal-container .card-header .party-ledger-dialog__ledger-section h3,
.party-ledger-dialog__ledger-section .glass-modal-container .section-title,
.glass-modal-container .party-ledger-dialog__ledger-section .section-title,
.party-ledger-dialog__ledger-section .glass-modal-container .card-title,
.glass-modal-container .party-ledger-dialog__ledger-section .card-title,
.party-ledger-dialog__ledger-section .glass-modal-container .entry-header h3,
.glass-modal-container .entry-header .party-ledger-dialog__ledger-section h3,
.party-ledger-dialog__ledger-section .glass-modal-container .timeline-card h3,
.glass-modal-container .timeline-card .party-ledger-dialog__ledger-section h3,
.party-ledger-dialog__ledger-section .glass-modal-container .review-title,
.glass-modal-container .party-ledger-dialog__ledger-section .review-title,
.party-ledger-dialog__ledger-section .glass-modal-container .modal-title h2,
.glass-modal-container .modal-title .party-ledger-dialog__ledger-section h2 {
  color: rgba(255, 214, 191, 0.88);
}

.party-ledger-dialog__header-right {
  display: flex;
  align-items: center;
  gap: 12px;
}

.party-ledger-dialog__header-right app-pill-tabs {
  display: inline-flex;
  flex: 0 0 auto;
}

.party-ledger-dialog__body {
  display: block;
  padding-top: 0;
}

.party-ledger-dialog__body .glass-table {
  border: none;
  border-radius: 0;
}

.party-ledger-dialog__body .glass-table thead {
  border-radius: 0;
}

.party-ledger-dialog__body > ledger-viewer {
  display: block;
}

.party-ledger-table {
  display: block;
}

.party-ledger-table__scroll {
  overflow-x: auto;
  overflow-y: visible;
  padding: 0;
}

/* Phase 1: disable glass-table internal scroll.
   Rows flow in the modal body so wheel events propagate to it. */
.party-ledger-dialog .party-ledger-table__table.glass-table tbody {
  max-height: none !important;
  overflow-y: visible !important;
}

/* Phase 2 (docked): Ledger section sticks, tbody gets explicit height.
   No complex flex chain — just a direct max-height on tbody.
   Budget: 92vh modal − 80px header − 20px body-pad-top − 56px ledger bar
           − 44px thead − 20px body-pad-bottom − 20px card border/buffer = 260px */
.party-ledger-dialog--docked .party-ledger-dialog__ledger-section {
  position: sticky;
  top: 0;
  z-index: 4;
}

.party-ledger-dialog--docked .party-ledger-table__table.glass-table tbody {
  max-height: calc(92vh - 260px) !important;
  overflow-y: auto !important;
}

.party-ledger-table__table {
  min-width: 1024px;
  table-layout: fixed;
}

.party-ledger-table__table th {
  padding-top: 14px;
  padding-bottom: 14px;
  font-size: 11px;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.46);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.party-ledger-table__table td {
  padding-top: 16px;
  padding-bottom: 16px;
  border-bottom-color: rgba(255, 255, 255, 0.045);
  vertical-align: top;
}

.party-ledger-table__table tbody tr:hover,
.party-ledger-table__table .data-row:hover {
  background: rgba(255, 255, 255, 0.04);
  box-shadow: inset 2px 0 0 0 rgba(255, 214, 191, 0.22);
}

.party-ledger-table__table tbody tr:active,
.party-ledger-table__table .data-row:active {
  background: rgba(255, 255, 255, 0.042);
  box-shadow: inset 2px 0 0 0 rgba(255, 214, 191, 0.22);
}

.party-ledger-table__col-date {
  width: 13%;
}

.party-ledger-table__col-entry {
  width: 16%;
}

.party-ledger-table__col-details {
  width: 39%;
}

.party-ledger-table__col-money {
  width: 10.5%;
}

.party-ledger-table__row {
  cursor: pointer;
}

.party-ledger-table__entry-no {
  font-family: var(--ui-font-mono);
  display: inline-block;
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 214, 191, 0.82);
  line-height: 1.45;
  word-break: break-word;
}

.party-ledger-table__details {
  display: grid;
  gap: 10px;
}

.party-ledger-table__description {
  display: block;
  font-size: 15px;
  color: rgba(255, 255, 255, 0.8);
  line-height: 1.55;
  word-break: break-word;
}

.party-ledger-table__meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.party-ledger-table__meta-text {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.46);
}

.party-ledger-table__table .type-pill {
  background: rgba(255, 255, 255, 0.032);
  border-color: rgba(255, 255, 255, 0.065);
  color: rgba(255, 222, 205, 0.68);
}

.party-ledger-table__table .finance-report__row-value {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.45;
  white-space: nowrap;
}

.party-ledger-table__table .finance-report__row-value--debit {
  color: #ff9a97;
}

.party-ledger-table__table .finance-report__row-value--credit {
  color: #7ee3a4;
}

.party-ledger-table__empty {
  text-align: center;
  padding: 48px 16px !important;
  background: transparent;
}

.party-ledger-table__table .finance-placeholder__title {
  font-size: 16px;
  color: rgba(255, 255, 255, 0.74);
}

@media (max-width: 1180px) {
  .party-ledger-dialog__summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .party-ledger-dialog__header-right {
    width: 100%;
    justify-content: space-between;
    flex-wrap: wrap;
  }
}
@media (max-width: 960px) {
  .party-ledger-dialog .ui-modal__header {
    flex-direction: column;
  }
  .party-ledger-dialog__header-actions {
    width: 100%;
    justify-content: flex-start;
    margin-left: 0;
  }
  .party-ledger-dialog__duration-filter {
    width: 100%;
  }
  .party-ledger-dialog__info-trigger--header {
    width: 100%;
    justify-content: center;
  }
  .party-ledger-dialog__duration-filter .pill-trigger {
    width: 100%;
    justify-content: space-between;
  }
  .party-ledger-table__table {
    min-width: 860px;
  }
}
@media (max-width: 640px) {
  body .cdk-overlay-pane.party-ledger-dialog-panel {
    width: calc(100vw - 16px) !important;
    max-width: calc(100vw - 16px) !important;
  }
  .party-ledger-dialog__summary {
    grid-template-columns: 1fr;
  }
  .party-ledger-dialog__duration-filter,
  .party-ledger-dialog__duration-filter app-date-filter {
    width: 100%;
  }
}
/* ==========================================================================
   MODAL - USER PROFILE
   ==========================================================================
   Profile quick-view opened from CRM, ledgers, sales, and payables.
   Uses the same modal rhythm as party-ledger-dialog: one glass surface,
   compact header, summary strip, and a single scroll body.
   ========================================================================== */
body .cdk-overlay-pane.user-profile-modal {
  width: min(1520px, 100vw - 24px) !important;
  max-width: min(1520px, 100vw - 24px) !important;
  height: min(92vh, 100vh - 24px) !important;
  max-height: min(92vh, 100vh - 24px) !important;
  margin: auto !important;
}

@supports (height: 100dvh) {
  body .cdk-overlay-pane.user-profile-modal {
    height: min(92dvh, 100dvh - 24px) !important;
    max-height: min(92dvh, 100dvh - 24px) !important;
  }
}
body .cdk-overlay-pane.user-profile-modal .mat-mdc-dialog-container,
body .cdk-overlay-pane.user-profile-modal .mdc-dialog__container,
body .cdk-overlay-pane.user-profile-modal .mdc-dialog__surface,
body .cdk-overlay-pane.user-profile-modal .mat-mdc-dialog-surface {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border: none !important;
  padding: 0 !important;
  border-radius: var(--ui-radius-2xl) !important;
  overflow: hidden !important;
  width: 100% !important;
  max-width: 100% !important;
}

.cdk-global-overlay-wrapper:has(.user-profile-modal) {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}

.cdk-overlay-pane.user-profile-modal .glass-modal-container {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 100%;
  min-height: 0;
  height: min(92vh, 100vh - 24px);
  max-height: min(92vh, 100vh - 24px);
  background: linear-gradient(180deg, rgba(46, 28, 20, 0.9) 0%, rgba(15, 17, 22, 0.96) 100%), radial-gradient(circle at top right, rgba(255, 133, 74, 0.14) 0%, transparent 38%);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--ui-radius-2xl);
  box-shadow: 0 32px 80px rgba(0, 0, 0, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.04);
  backdrop-filter: blur(28px) saturate(145%);
  -webkit-backdrop-filter: blur(28px) saturate(145%);
}

@supports (height: 100dvh) {
  .cdk-overlay-pane.user-profile-modal .glass-modal-container {
    height: min(92dvh, 100dvh - 24px);
    max-height: min(92dvh, 100dvh - 24px);
  }
}
.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  padding: 0;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 133, 74, 0.36) transparent;
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode::-webkit-scrollbar {
  width: 6px;
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode::-webkit-scrollbar-track {
  background: transparent;
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode::-webkit-scrollbar-thumb {
  background: rgba(255, 133, 74, 0.36);
  border-radius: var(--ui-radius-full);
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .profile-hero {
  display: block;
  padding: 20px 88px 18px 28px;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .hero-content-row {
  display: block;
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .hero-main {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  align-items: start;
  gap: var(--ui-space-3);
  max-width: calc(100% - 460px);
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .hero-avatar {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(255, 160, 112, 0.18), rgba(255, 123, 74, 0.26));
  border: 1px solid rgba(255, 170, 129, 0.22);
  box-shadow: none;
  font-size: 18px;
  color: rgba(255, 221, 205, 0.96);
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .eyebrow {
  margin: 0 0 4px;
  font-size: 11px;
  letter-spacing: 0;
  text-transform: none;
  color: rgba(255, 255, 255, 0.56);
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .hero-title {
  gap: var(--ui-space-2);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.25;
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .hero-title .ui-chip, .cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .hero-title .ui-table .risk-badge, .cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .hero-title .premium-table .risk-badge, .cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .hero-title .glass-table .risk-badge, .ui-table .cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .hero-title .risk-badge, .premium-table .cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .hero-title .risk-badge, .glass-table .cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .hero-title .risk-badge {
  min-height: 22px;
  padding: 2px 9px;
  border-radius: var(--ui-radius-md);
  font-size: 9px;
  letter-spacing: 0.06em;
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .hero-sub {
  margin: 2px 0 0;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.56);
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .hero-contact-person {
  margin-top: 6px;
  margin-bottom: 0;
  background: rgba(255, 255, 255, 0.035);
  border-color: rgba(255, 255, 255, 0.065);
  color: rgba(255, 222, 205, 0.72);
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .hero-actions {
  top: 22px;
  right: 78px;
  gap: var(--ui-space-2);
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .category-select {
  min-width: 180px;
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .category-select .mat-mdc-text-field-wrapper {
  min-height: 40px !important;
  padding: 5px 14px !important;
  background: rgba(255, 255, 255, 0.045) !important;
  border-color: rgba(255, 255, 255, 0.08) !important;
  box-shadow: none !important;
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .ui-icon-btn.hero-edit,
.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .ui-icon-btn.modal-close-btn {
  width: 40px;
  height: 40px;
  min-width: 40px;
  border-radius: var(--ui-radius-full);
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .ui-icon-btn.hero-edit mat-icon,
.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .ui-icon-btn.modal-close-btn mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .modal-close-btn {
  position: absolute;
  top: 22px;
  right: 28px;
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .hero-meta {
  display: flex;
  align-items: center;
  gap: var(--ui-space-5);
  margin-top: var(--ui-space-3);
  flex-wrap: wrap;
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .meta-item {
  min-width: 0;
  min-height: 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .meta-item label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.44);
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .meta-value {
  font-size: 15px;
  font-family: var(--ui-font-mono);
  font-weight: 600;
  line-height: 1.15;
  color: rgba(255, 255, 255, 0.8);
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .meta-value--branches {
  max-width: none;
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .branch-badge--profile {
  background: rgba(255, 255, 255, 0.032);
  border-color: rgba(255, 255, 255, 0.065);
  color: rgba(255, 222, 205, 0.68);
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .reward-points-card,
.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .stat-cards-row--compact {
  display: none;
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .profile-tabs {
  margin: 0;
  padding: var(--ui-space-4) var(--ui-space-5) var(--ui-space-5);
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .page-tab-navigation--profile {
  display: flex;
  justify-content: center;
  width: 100%;
  margin-bottom: var(--ui-space-4);
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .page-tab-navigation--profile app-pill-tabs,
.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .page-tab-navigation--profile .pill-tabs-nav {
  display: flex;
  justify-content: center;
  width: 100%;
  max-width: 100%;
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .pill-tabs-container--profile {
  margin: 0 auto;
  max-width: 100%;
  overflow-x: auto;
  scrollbar-width: none;
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .pill-tabs-container--profile::-webkit-scrollbar {
  display: none;
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .pill-tabs-container--profile .pill-tab-btn {
  min-height: 34px;
  padding: 6px 13px;
  font-size: 12px;
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .pill-tabs-container--profile .tab-badge {
  min-width: 16px;
  height: 16px;
  font-size: 10px;
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .tab-content-container {
  min-height: 0;
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .overview-grid {
  gap: var(--ui-space-5);
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .overview-panels {
  grid-template-columns: minmax(280px, 0.62fr) minmax(520px, 1.38fr);
  gap: var(--ui-space-4);
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .summary-panel {
  padding: 16px 20px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.018) !important;
  border-color: rgba(255, 255, 255, 0.06) !important;
  box-shadow: none;
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .summary-panel__title {
  margin-bottom: var(--ui-space-4);
  color: rgba(255, 214, 191, 0.82);
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .summary-grid {
  grid-template-columns: 1fr;
  gap: var(--ui-space-2);
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .summary-cell {
  display: grid;
  grid-template-columns: 24px 1fr auto;
  align-items: center;
  min-height: 46px;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.028);
  border-color: rgba(255, 255, 255, 0.055);
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .summary-cell mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .summary-cell__label {
  justify-self: start;
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .summary-cell__value {
  font-size: 18px;
  font-family: var(--ui-font-mono);
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .summary-empty {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  min-height: 46px;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.024);
  border: 1px solid rgba(255, 255, 255, 0.05);
  color: rgba(255, 255, 255, 0.46);
  font-size: var(--ui-text-sm);
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .summary-empty mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .finance-row {
  padding: 12px 0;
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .finance-row__value {
  font-family: var(--ui-font-mono);
}

.cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .finance-row__note {
  font-family: var(--ui-font-primary);
}

@media (max-width: 1180px) {
  .cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .hero-main {
    max-width: none;
    padding-right: 360px;
  }
  .cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .hero-meta {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 960px) {
  .cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .profile-hero {
    padding: 20px 20px 18px;
  }
  .cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .hero-main {
    padding-right: 0;
  }
  .cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .hero-actions,
  .cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .modal-close-btn {
    position: static;
  }
  .cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .hero-actions {
    justify-content: flex-start;
    margin-bottom: var(--ui-space-4);
    padding-right: 48px;
  }
  .cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .modal-close-btn {
    position: absolute;
    top: 16px;
    right: 16px;
  }
  .cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .overview-panels {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 640px) {
  body .cdk-overlay-pane.user-profile-modal {
    width: calc(100vw - 16px) !important;
    max-width: calc(100vw - 16px) !important;
  }
  .cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .hero-main {
    align-items: flex-start;
  }
  .cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .hero-meta {
    grid-template-columns: 1fr;
  }
  .cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .profile-tabs {
    padding: var(--ui-space-4);
  }
  .cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .page-tab-navigation--profile {
    justify-content: flex-start;
  }
  .cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .page-tab-navigation--profile app-pill-tabs,
  .cdk-overlay-pane.user-profile-modal .user-profile-shell.modal-mode .page-tab-navigation--profile .pill-tabs-nav {
    justify-content: flex-start;
  }
}
/* ==========================================================================
   UI MODALS - BRANCH TRANSFER DIALOG
   ==========================================================================
   Contract for the customer branch-transfer modal.
   Uses shared modal contract as base (glass-modal-container, ui-modal__*,
   glass-btn, glass-label). Only branch-transfer-specific patterns live here.

   CLASS OWNERSHIP:
     layout/modal.scss  → glass-modal-container, glass-modal-header,
                          glass-modal-body, ui-modal__footer, ui-modal__close
     modals/forms.scss  → glass-btn, glass-btn-primary, glass-btn-secondary,
                          glass-btn-danger, glass-label
     branch-transfer.scss (this file) → brd-summary*, brd-notice*,
                          brd-booking*, brd-executing, brd-select-field
   ========================================================================== */
/* ── Customer / branch summary card ──────────────────────────────────────── */
.branch-transfer-dialog .brd-summary {
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  padding: var(--ui-space-3) var(--ui-space-4);
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.branch-transfer-dialog .brd-summary__row {
  display: flex;
  align-items: baseline;
  gap: var(--ui-space-3);
}

.branch-transfer-dialog .brd-summary__label {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  min-width: 120px;
  flex-shrink: 0;
}

.branch-transfer-dialog .brd-summary__value {
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
}

/* ── Branch select field ─────────────────────────────────────────────────── */
.branch-transfer-dialog .brd-select-field {
  width: 100%;
}

/* ── NOTICE BANNERS ──────────────────────────────────────────────────────── */
.branch-transfer-dialog .brd-notice {
  display: flex;
  gap: var(--ui-space-3);
  align-items: flex-start;
  padding: var(--ui-space-3) var(--ui-space-4);
  border-radius: var(--ui-radius-md);
  font-size: var(--ui-text-sm);
  line-height: 1.5;
}

.branch-transfer-dialog .brd-notice mat-icon {
  flex-shrink: 0;
  font-size: 18px;
  width: 18px;
  height: 18px;
  margin-top: 2px;
}

.branch-transfer-dialog .brd-notice--info {
  background: rgba(59, 130, 246, 0.1);
  border: 1px solid rgba(59, 130, 246, 0.2);
  color: rgba(147, 197, 253, 0.9);
}

.branch-transfer-dialog .brd-notice--info mat-icon {
  color: #60a5fa;
}

.branch-transfer-dialog .brd-notice--warn {
  background: rgba(245, 158, 11, 0.1);
  border: 1px solid rgba(245, 158, 11, 0.2);
  color: rgba(253, 230, 138, 0.9);
}

.branch-transfer-dialog .brd-notice--warn mat-icon {
  color: #fbbf24;
}

.branch-transfer-dialog .brd-notice--error {
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.2);
  color: rgba(252, 165, 165, 0.9);
}

.branch-transfer-dialog .brd-notice--error mat-icon {
  color: #f87171;
}

.branch-transfer-dialog .brd-notice--success {
  background: rgba(34, 197, 94, 0.1);
  border: 1px solid rgba(34, 197, 94, 0.2);
  color: rgba(134, 239, 172, 0.9);
}

.branch-transfer-dialog .brd-notice--success mat-icon {
  color: #4ade80;
}

/* ── ACTIVE BOOKINGS LIST ────────────────────────────────────────────────── */
.branch-transfer-dialog .brd-booking-list {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: 160px;
  overflow-y: auto;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
}

.branch-transfer-dialog .brd-booking-list li {
  display: flex;
  gap: var(--ui-space-3);
  align-items: center;
  padding: var(--ui-space-2) var(--ui-space-3);
  border-bottom: 1px solid var(--ui-border);
  font-size: var(--ui-text-xs);
}

.branch-transfer-dialog .brd-booking-list li:last-child {
  border-bottom: none;
}

.branch-transfer-dialog .brd-booking-id {
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  min-width: 90px;
}

.branch-transfer-dialog .brd-booking-status {
  color: var(--ui-text-secondary);
  flex: 1;
}

.branch-transfer-dialog .brd-booking-date {
  color: var(--ui-text-muted);
}

/* ── EXECUTING STATE ─────────────────────────────────────────────────────── */
.branch-transfer-dialog .brd-executing {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  justify-content: center;
  padding: var(--ui-space-5);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
}

/* ==========================================================================
   BULK BRANCH TRANSFER MODAL
   ==========================================================================
   Scoped under .bulk-branch-transfer.
   Re-uses brd-notice* banners from above.
   ========================================================================== */
/* ── Info card (top summary) ─────────────────────────────────────────────── */
.bulk-branch-transfer .bbt-info-card {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  font-weight: var(--ui-font-semibold);
}

.bulk-branch-transfer .bbt-info-card mat-icon {
  color: var(--ui-text-muted);
  font-size: 20px;
  width: 20px;
  height: 20px;
}

/* ── Branch select field ─────────────────────────────────────────────────── */
.bulk-branch-transfer .bbt-select-field {
  width: 100%;
}

/* ── Notice banners (reuse brd-notice pattern) ───────────────────────────── */
.bulk-branch-transfer .brd-notice {
  display: flex;
  gap: var(--ui-space-3);
  align-items: flex-start;
  padding: var(--ui-space-3) var(--ui-space-4);
  border-radius: var(--ui-radius-md);
  font-size: var(--ui-text-sm);
  line-height: 1.5;
}

.bulk-branch-transfer .brd-notice mat-icon {
  flex-shrink: 0;
  font-size: 18px;
  width: 18px;
  height: 18px;
  margin-top: 2px;
}

.bulk-branch-transfer .brd-notice--warn {
  background: rgba(245, 158, 11, 0.1);
  border: 1px solid rgba(245, 158, 11, 0.2);
  color: rgba(253, 230, 138, 0.9);
}

.bulk-branch-transfer .brd-notice--warn mat-icon {
  color: #fbbf24;
}

.bulk-branch-transfer .brd-notice--error {
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.2);
  color: rgba(252, 165, 165, 0.9);
}

.bulk-branch-transfer .brd-notice--error mat-icon {
  color: #f87171;
}

/* ── Progress bar ────────────────────────────────────────────────────────── */
.bulk-branch-transfer .bbt-progress-section {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.bulk-branch-transfer .bbt-progress-label {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.bulk-branch-transfer .bbt-progress-bar {
  width: 100%;
  height: 6px;
  background: var(--ui-surface-2);
  border-radius: 3px;
  overflow: hidden;
}

.bulk-branch-transfer .bbt-progress-fill {
  height: 100%;
  background: var(--ui-info);
  border-radius: 3px;
  transition: width 0.3s ease;
}

.bulk-branch-transfer .bbt-progress-fill--execute {
  background: linear-gradient(135deg, rgba(255, 120, 80, 0.9), rgba(225, 65, 37, 0.9));
}

/* ── Preview summary ─────────────────────────────────────────────────────── */
.bulk-branch-transfer .bbt-preview-summary {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.bulk-branch-transfer .bbt-preview-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
}

.bulk-branch-transfer .bbt-preview-row mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.bulk-branch-transfer .bbt-preview-row--ready {
  background: rgba(34, 197, 94, 0.1);
  border: 1px solid rgba(34, 197, 94, 0.2);
  color: #4ade80;
}

.bulk-branch-transfer .bbt-preview-row--blocked {
  background: rgba(245, 158, 11, 0.1);
  border: 1px solid rgba(245, 158, 11, 0.2);
  color: #fbbf24;
}

.bulk-branch-transfer .bbt-preview-row--failed {
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.2);
  color: #f87171;
}

/* ── Force toggle ────────────────────────────────────────────────────────── */
.bulk-branch-transfer .bbt-force-toggle {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  padding: var(--ui-space-3) var(--ui-space-4);
  background: rgba(245, 158, 11, 0.06);
  border: 1px solid rgba(245, 158, 11, 0.15);
  border-radius: var(--ui-radius-md);
}

.bulk-branch-transfer .bbt-force-note {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  padding-left: 48px;
}

/* ── Customer results list ───────────────────────────────────────────────── */
.bulk-branch-transfer .bbt-customer-list {
  display: flex;
  flex-direction: column;
  max-height: 220px;
  overflow-y: auto;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
}

.bulk-branch-transfer .bbt-customer-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--ui-space-2) var(--ui-space-3);
  border-bottom: 1px solid var(--ui-border-light);
  font-size: var(--ui-text-sm);
}

.bulk-branch-transfer .bbt-customer-row:last-child {
  border-bottom: none;
}

.bulk-branch-transfer .bbt-customer-name {
  color: var(--ui-text-secondary);
  font-weight: var(--ui-font-medium);
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ── Status badges ───────────────────────────────────────────────────────── */
.bulk-branch-transfer .bbt-status {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: var(--ui-text-xs);
  flex-shrink: 0;
}

.bulk-branch-transfer .bbt-status mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.bulk-branch-transfer .bbt-status--ready {
  color: #4ade80;
}

.bulk-branch-transfer .bbt-status--blocked {
  color: #fbbf24;
}

.bulk-branch-transfer .bbt-status--error {
  color: #f87171;
}

.bulk-branch-transfer .bbt-status--pending {
  color: var(--ui-text-muted);
}

.bulk-branch-transfer .bbt-status--executing {
  color: var(--ui-info);
}

.bulk-branch-transfer .bbt-status--done {
  color: #4ade80;
}

.bulk-branch-transfer .bbt-status--failed {
  color: #f87171;
}

.bulk-branch-transfer .bbt-status--cancelled {
  color: var(--ui-text-muted);
}

.bulk-branch-transfer .bbt-status mat-spinner {
  display: inline-block;
}

/* ── Result summary (done step) ──────────────────────────────────────────── */
.bulk-branch-transfer .bbt-result-summary {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.bulk-branch-transfer .bbt-result-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
}

.bulk-branch-transfer .bbt-result-row mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.bulk-branch-transfer .bbt-result-row--success {
  background: rgba(34, 197, 94, 0.1);
  border: 1px solid rgba(34, 197, 94, 0.2);
  color: #4ade80;
}

.bulk-branch-transfer .bbt-result-row--skipped {
  background: rgba(251, 191, 36, 0.08);
  border: 1px solid rgba(251, 191, 36, 0.2);
  color: #fbbf24;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.bulk-branch-transfer .bbt-rerun-btn {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 12px;
  border-radius: 20px;
  border: 1px solid rgba(251, 191, 36, 0.5);
  background: rgba(251, 191, 36, 0.12);
  color: #fbbf24;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}
.bulk-branch-transfer .bbt-rerun-btn mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}
.bulk-branch-transfer .bbt-rerun-btn:hover:not(:disabled) {
  background: rgba(251, 191, 36, 0.25);
}
.bulk-branch-transfer .bbt-rerun-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.bulk-branch-transfer .bbt-result-row--failed {
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.2);
  color: #f87171;
}

.bulk-branch-transfer .bbt-result-row--clickable {
  cursor: pointer;
  -webkit-user-select: none;
          user-select: none;
  justify-content: space-between;
  transition: background 0.15s;
}
.bulk-branch-transfer .bbt-result-row--clickable:hover {
  background: rgba(239, 68, 68, 0.18);
}
.bulk-branch-transfer .bbt-result-row--clickable .bbt-expand-icon {
  margin-left: auto;
  opacity: 0.7;
  font-size: 18px;
}

/* Failure details expandable panel */
.bulk-branch-transfer .bbt-failure-details {
  border: 1px solid rgba(239, 68, 68, 0.2);
  border-radius: var(--ui-radius-md);
  background: rgba(239, 68, 68, 0.05);
  overflow: hidden;
  max-height: 220px;
  overflow-y: auto;
}

.bulk-branch-transfer .bbt-failure-loading {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  color: var(--ui-text-muted);
  font-size: 13px;
}

.bulk-branch-transfer .bbt-failure-summary {
  padding: 10px 16px 6px;
  border-bottom: 1px solid rgba(239, 68, 68, 0.15);
}

.bulk-branch-transfer .bbt-failure-summary-row {
  display: flex;
  gap: 10px;
  align-items: baseline;
  padding: 3px 0;
}
.bulk-branch-transfer .bbt-failure-summary-row .bbt-failure-count {
  font-size: 12px;
  font-weight: 700;
  color: #f87171;
  min-width: 28px;
}
.bulk-branch-transfer .bbt-failure-summary-row .bbt-failure-reason {
  font-size: 13px;
  color: var(--ui-text-secondary);
}

.bulk-branch-transfer .bbt-failure-list {
  padding: 6px 0;
}

.bulk-branch-transfer .bbt-failure-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 5px 16px;
  gap: 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}
.bulk-branch-transfer .bbt-failure-item:last-child {
  border-bottom: none;
}
.bulk-branch-transfer .bbt-failure-item .bbt-failure-name {
  font-size: 13px;
  color: var(--ui-text-primary);
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bulk-branch-transfer .bbt-failure-item .bbt-failure-error {
  font-size: 12px;
  color: #f87171;
  flex-shrink: 0;
  text-align: right;
}

.bulk-branch-transfer .bbt-result-row--cancelled {
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  color: var(--ui-text-muted);
}

/* ── Glass modal body gap for step content ───────────────────────────────── */
.bulk-branch-transfer .glass-modal-body {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

/* ==========================================================================
   JOB MODE  — styles for server-side bulk transfer jobs
   ========================================================================== */
/* ── Large info card (job mode) ──────────────────────────────────────────── */
.bulk-branch-transfer .bbt-info-card--large {
  flex-direction: column;
  align-items: flex-start;
  background: rgba(59, 130, 246, 0.06);
  border-color: rgba(59, 130, 246, 0.2);
}

.bulk-branch-transfer .bbt-info-card--large mat-icon {
  color: #60a5fa;
  font-size: 24px;
  width: 24px;
  height: 24px;
}

.bulk-branch-transfer .bbt-info-card-text {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
}

.bulk-branch-transfer .bbt-info-card-main {
  color: var(--ui-text-primary);
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
}

.bulk-branch-transfer .bbt-info-card-sub {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-normal);
}

/* ── Notice: info ────────────────────────────────────────────────────────── */
.bulk-branch-transfer .brd-notice--info {
  background: rgba(59, 130, 246, 0.1);
  border: 1px solid rgba(59, 130, 246, 0.2);
  color: rgba(147, 197, 253, 0.9);
}

.bulk-branch-transfer .brd-notice--info mat-icon {
  color: #60a5fa;
}

/* ── Job confirm panel ───────────────────────────────────────────────────── */
.bulk-branch-transfer .bbt-job-confirm {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.bulk-branch-transfer .bbt-job-confirm-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: rgba(59, 130, 246, 0.12);
  margin: 0 auto;
}

.bulk-branch-transfer .bbt-job-confirm-icon mat-icon {
  font-size: 28px;
  width: 28px;
  height: 28px;
  color: #60a5fa;
}

.bulk-branch-transfer .bbt-job-confirm-title {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  margin: 0;
  text-align: center;
}

.bulk-branch-transfer .bbt-job-confirm-details {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  overflow: hidden;
}

.bulk-branch-transfer .bbt-job-confirm-row {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
  border-bottom: 1px solid var(--ui-border-light);
  font-size: var(--ui-text-sm);
}

.bulk-branch-transfer .bbt-job-confirm-row:last-child {
  border-bottom: none;
}

.bulk-branch-transfer .bbt-jcr-label {
  color: var(--ui-text-muted);
  min-width: 120px;
  flex-shrink: 0;
}

.bulk-branch-transfer .bbt-jcr-value {
  color: var(--ui-text-secondary);
  font-weight: var(--ui-font-medium);
  flex: 1;
}

.bulk-branch-transfer .bbt-jcr-value--warn {
  color: #fbbf24;
}

.bulk-branch-transfer .bbt-jcr-value--mono {
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

/* ── Job progress section ────────────────────────────────────────────────── */
.bulk-branch-transfer .bbt-progress-bar--large {
  height: 10px;
  border-radius: 5px;
}

.bulk-branch-transfer .bbt-job-progress {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.bulk-branch-transfer .bbt-job-status-header {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
  background: rgba(59, 130, 246, 0.06);
  border: 1px solid rgba(59, 130, 246, 0.15);
  border-radius: var(--ui-radius-md);
}

.bulk-branch-transfer .bbt-job-status-icon {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.bulk-branch-transfer .bbt-job-status-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.bulk-branch-transfer .bbt-job-status-label {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.bulk-branch-transfer .bbt-job-status-sub {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

/* ── Job counter cards ───────────────────────────────────────────────────── */
.bulk-branch-transfer .bbt-job-counters {
  display: flex;
  gap: var(--ui-space-3);
}

.bulk-branch-transfer .bbt-job-counter {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ui-space-1);
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-1);
}

.bulk-branch-transfer .bbt-job-counter mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
}

.bulk-branch-transfer .bbt-job-counter-val {
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-bold);
  line-height: 1;
}

.bulk-branch-transfer .bbt-job-counter-lbl {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.bulk-branch-transfer .bbt-job-counter--success {
  border-color: rgba(34, 197, 94, 0.2);
  background: rgba(34, 197, 94, 0.06);
}

.bulk-branch-transfer .bbt-job-counter--success mat-icon,
.bulk-branch-transfer .bbt-job-counter--success .bbt-job-counter-val {
  color: #4ade80;
}

.bulk-branch-transfer .bbt-job-counter--skip {
  border-color: rgba(245, 158, 11, 0.2);
  background: rgba(245, 158, 11, 0.06);
}

.bulk-branch-transfer .bbt-job-counter--skip mat-icon,
.bulk-branch-transfer .bbt-job-counter--skip .bbt-job-counter-val {
  color: #fbbf24;
}

.bulk-branch-transfer .bbt-job-counter--fail {
  border-color: rgba(239, 68, 68, 0.2);
  background: rgba(239, 68, 68, 0.06);
}

.bulk-branch-transfer .bbt-job-counter--fail mat-icon,
.bulk-branch-transfer .bbt-job-counter--fail .bbt-job-counter-val {
  color: #f87171;
}

/* ── Job result audit row ────────────────────────────────────────────────── */
.bulk-branch-transfer .bbt-result-audit {
  margin-top: var(--ui-space-2);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
}

.bulk-branch-transfer .bbt-result-icon {
  display: flex;
  justify-content: center;
}

.bulk-branch-transfer .bbt-result-icon mat-icon {
  font-size: 40px;
  width: 40px;
  height: 40px;
}

.bulk-branch-transfer .bbt-result-icon--success mat-icon {
  color: #4ade80;
}

.bulk-branch-transfer .bbt-result-icon--fail mat-icon {
  color: #f87171;
}

/* ==========================================================================
   IN-PAGE JOB STATUS BANNER  (contacts shell)
   ==========================================================================
   Shown when a bulk transfer job is running/done on the server.
   Auto-appears on page load if any PENDING/RUNNING job exists for this group.
   ========================================================================== */
.contacts-job-banner {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
  background: rgba(59, 130, 246, 0.08);
  border: 1px solid rgba(59, 130, 246, 0.25);
  border-radius: var(--ui-radius-md);
  margin-bottom: var(--ui-space-3);
  font-size: var(--ui-text-sm);
  animation: banner-in 0.3s ease;
}

@keyframes banner-in {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* Spinning sync icon while running */
.contacts-job-banner-icon {
  color: #60a5fa;
  flex-shrink: 0;
  animation: banner-spin 2s linear infinite;
}

.contacts-job-banner--done .contacts-job-banner-icon {
  animation: none;
}

@keyframes banner-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
/* Body: text + progress bar stacked */
.contacts-job-banner-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.contacts-job-banner-text {
  color: var(--ui-text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.contacts-job-banner-progress {
  width: 100%;
  height: 4px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 2px;
  overflow: hidden;
}

.contacts-job-banner-fill {
  height: 100%;
  background: #60a5fa;
  border-radius: 2px;
  transition: width 0.6s ease;
}

.contacts-job-banner-status {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  color: #60a5fa;
  flex-shrink: 0;
  min-width: 36px;
  text-align: right;
}

/* Dismiss button */
.contacts-job-banner-dismiss {
  background: none;
  border: none;
  cursor: pointer;
  padding: 2px;
  border-radius: var(--ui-radius-sm);
  color: var(--ui-text-muted);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: color 0.15s;
}

.contacts-job-banner-dismiss:hover {
  color: var(--ui-text-primary);
}

.contacts-job-banner-dismiss mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

/* Done / Partial */
.contacts-job-banner--done {
  background: rgba(34, 197, 94, 0.08);
  border-color: rgba(34, 197, 94, 0.25);
}

.contacts-job-banner--done .contacts-job-banner-icon {
  color: #4ade80;
}

.contacts-job-banner--done .contacts-job-banner-fill {
  background: #4ade80;
}

.contacts-job-banner--done .contacts-job-banner-status {
  color: #4ade80;
}

/* ==========================================================================
   UI MODALS - CREATE JOURNAL ENTRY
   ==========================================================================
   The create-journal component is mounted inline and centers its panel with
   fixed positioning plus translate(-50%, -50%). The shared glass modal class
   inherits the base modal entrance animation, which also animates transform.
   Keep this modal opt-out scoped so its first paint is already centered.
   ========================================================================== */
create-journal-modal .cje-panel.glass-modal-container {
  animation: none !important;
  transform: translate(-50%, -50%) !important;
}

/* ==========================================================================
   Apply Rules Preview Modal
   Owner: src/ui/modals/apply-rules-preview.scss
   ========================================================================== */
.arp-modal {
  width: min(960px, 96vw);
  max-width: 96vw;
}

.arp-body {
  display: grid;
  gap: var(--ui-space-4);
  max-height: min(68vh, 720px);
  overflow: auto;
}

.arp-outcome {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--ui-space-3);
  align-items: center;
  padding: var(--ui-space-4);
  border: 1px solid var(--ui-success-border);
  border-radius: var(--ui-radius-lg);
  background: linear-gradient(135deg, var(--ui-success-bg), var(--ui-surface-1));
}

.arp-outcome--empty {
  border-color: var(--ui-info-border);
  background: linear-gradient(135deg, var(--ui-info-bg), var(--ui-surface-1));
}

.arp-outcome__icon {
  width: 32px;
  height: 32px;
  font-size: 32px;
  color: var(--ui-success);
}

.arp-outcome--empty .arp-outcome__icon {
  color: var(--ui-info);
}

.arp-outcome__copy h3 {
  margin: 0;
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  letter-spacing: 0;
}

.arp-outcome__copy p {
  margin: var(--ui-space-1) 0 0;
  font-size: var(--ui-text-sm);
  line-height: 1.45;
  color: var(--ui-text-muted);
}

.arp-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--ui-space-3);
}

.arp-stat {
  display: grid;
  gap: var(--ui-space-2);
  min-height: 82px;
  padding: var(--ui-space-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
}

.arp-stat span {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: var(--ui-table-header-spacing);
}

.arp-stat strong {
  align-self: end;
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  letter-spacing: 0;
}

.arp-stat--matched {
  border-color: var(--ui-success-border);
  background: var(--ui-success-bg);
}

.arp-stat--matched strong {
  color: var(--ui-success);
}

.arp-stat--source {
  border-color: var(--ui-info-border);
  background: var(--ui-info-bg);
}

.arp-stat--source strong {
  color: var(--ui-info);
}

.arp-stat--muted strong {
  color: var(--ui-text-muted);
}

.arp-stat--money strong {
  font-size: var(--ui-text-lg);
}

.arp-alert-stack {
  display: grid;
  gap: var(--ui-space-2);
}

.arp-alert {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--ui-space-2);
  align-items: start;
  padding: var(--ui-space-3);
  border: 1px solid var(--ui-warning-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-warning-bg);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  line-height: 1.45;
}

.arp-alert mat-icon {
  width: 18px;
  height: 18px;
  font-size: 18px;
  color: var(--ui-warning);
}

.arp-alert--danger {
  border-color: var(--ui-danger-border);
  background: var(--ui-danger-bg);
}

.arp-alert--danger mat-icon {
  color: var(--ui-danger);
}

.arp-empty {
  display: grid;
  justify-items: center;
  gap: var(--ui-space-2);
  min-height: 176px;
  padding: var(--ui-space-8) var(--ui-space-4);
  border: 1px dashed var(--ui-border-hover);
  border-radius: var(--ui-radius-lg);
  background: var(--ui-surface-1);
  text-align: center;
}

.arp-empty mat-icon {
  width: 42px;
  height: 42px;
  font-size: 42px;
  color: var(--ui-info);
}

.arp-empty h3 {
  margin: 0;
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-bold);
  color: var(--ui-text-primary);
  letter-spacing: 0;
}

.arp-empty p {
  max-width: 420px;
  margin: 0;
  font-size: var(--ui-text-sm);
  line-height: 1.5;
  color: var(--ui-text-muted);
}

.arp-group-list {
  display: grid;
  gap: var(--ui-space-3);
}

.arp-group {
  overflow: hidden;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-lg);
  background: var(--ui-surface-1);
}

.arp-group--high {
  border-color: var(--ui-danger-border);
}

.arp-group__head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  gap: var(--ui-space-3);
  align-items: center;
  width: 100%;
  padding: var(--ui-space-3) var(--ui-space-4);
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.arp-group__head:hover {
  background: var(--ui-surface-hover);
}

.arp-group__main {
  display: grid;
  gap: var(--ui-space-1);
  min-width: 0;
}

.arp-group__name {
  overflow: hidden;
  color: var(--ui-text-primary);
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.arp-group__meta {
  overflow: hidden;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.arp-group__nums {
  color: var(--ui-text-secondary);
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-sm);
  white-space: nowrap;
}

.arp-group__chev {
  color: var(--ui-text-muted);
}

.arp-badge {
  min-width: 64px;
  padding: var(--ui-space-1) var(--ui-space-2);
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  letter-spacing: var(--ui-table-header-spacing);
  text-align: center;
}

.arp-badge--high {
  background: var(--ui-danger-bg);
  color: var(--ui-danger);
}

.arp-badge--medium {
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
}

.arp-badge--low {
  background: var(--ui-success-bg);
  color: var(--ui-success);
}

.arp-group__warn {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--ui-space-2);
  padding: 0 var(--ui-space-4) var(--ui-space-3);
  color: var(--ui-warning);
  font-size: var(--ui-text-sm);
}

.arp-group__warn mat-icon {
  width: 16px;
  height: 16px;
  font-size: 16px;
}

.arp-samples {
  padding: 0 var(--ui-space-4) var(--ui-space-4);
}

.arp-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: var(--ui-text-sm);
}

.arp-table th {
  padding: var(--ui-space-2);
  border-top: 1px solid var(--ui-border-light);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  letter-spacing: var(--ui-table-header-spacing);
  text-align: left;
  text-transform: uppercase;
}

.arp-table td {
  padding: var(--ui-space-2);
  border-top: 1px solid var(--ui-border-light);
  color: var(--ui-text-secondary);
  line-height: 1.35;
}

.arp-table__amount {
  text-align: right;
  font-family: var(--ui-font-mono);
}

.arp-narr {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.arp-sample-note {
  margin: var(--ui-space-2) 0 0;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
}

.arp-footer {
  display: grid;
  gap: var(--ui-space-3);
}

.arp-confirm {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--ui-space-2);
  align-items: start;
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  line-height: 1.45;
}

.arp-confirm input {
  width: 16px;
  height: 16px;
  margin: 2px 0 0;
  accent-color: var(--ui-brand);
}

.arp-actions {
  display: flex;
  justify-content: flex-end;
  gap: var(--ui-space-2);
}

@media (max-width: 760px) {
  .arp-body {
    max-height: 70vh;
  }
  .arp-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .arp-group__head {
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .arp-badge,
  .arp-group__nums {
    justify-self: start;
  }
  .arp-group__chev {
    grid-column: 2;
    grid-row: 1;
  }
  .arp-actions {
    flex-direction: column-reverse;
  }
}
/* ==========================================================================
   Bank Reconciliation Workspace Modal
   Owner: src/ui/modals/bank-recon-workspace.scss
   ========================================================================== */
.cdk-overlay-pane.bank-recon-workspace-dialog-panel {
  width: 96vw;
  max-width: 96vw;
  height: 92vh;
  max-height: 92vh;
}

.cdk-overlay-pane.bank-recon-workspace-dialog-panel .mat-mdc-dialog-container,
.cdk-overlay-pane.bank-recon-workspace-dialog-panel .mdc-dialog__container,
.cdk-overlay-pane.bank-recon-workspace-dialog-panel .mdc-dialog__surface,
.cdk-overlay-pane.bank-recon-workspace-dialog-panel .mat-mdc-dialog-surface {
  background: transparent;
  box-shadow: none;
  border: 0;
  padding: 0;
  border-radius: var(--ui-radius-2xl);
  overflow: hidden;
}

.bank-recon-workspace-modal {
  display: flex;
  flex-direction: column;
  width: 96vw;
  height: 92vh;
  max-width: 96vw;
  max-height: 92vh;
}

.bank-recon-workspace-modal__header {
  flex: 0 0 auto;
}

.bank-recon-workspace-modal__actions {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.bank-recon-workspace-modal__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: var(--ui-space-3);
  min-height: 0;
  overflow: auto;
  padding: var(--ui-space-4);
}

.bank-recon-workspace-modal .recon-grid {
  min-height: 0;
}

.bank-recon-workspace-modal .recon-panel .glass-table-card {
  max-height: none;
  height: calc(92vh - 440px);
  min-height: 320px;
}

.bank-recon-workspace-modal .recon-panel .glass-table tbody {
  max-height: calc(92vh - 505px);
  min-height: 252px;
}

.bank-recon-workspace-modal .recon-side-panel,
.bank-recon-workspace-modal .recon-analytics,
.bank-recon-workspace-modal .recon-brs-panel {
  flex: 0 0 auto;
}

@media (max-width: 1100px) {
  .bank-recon-workspace-modal,
  .cdk-overlay-pane.bank-recon-workspace-dialog-panel {
    width: 98vw;
    max-width: 98vw;
    height: 94vh;
    max-height: 94vh;
  }
  .bank-recon-workspace-modal .recon-panel .glass-table-card,
  .bank-recon-workspace-modal .recon-panel .glass-table tbody {
    height: auto;
    max-height: none;
  }
}
/* ==========================================================================
   UI MODALS - CHART OF ACCOUNTS
   ==========================================================================
   Add/Edit account modal. Uses the canonical ui-modal backdrop and
   glass-modal-container contract; this file owns only modal-specific layout.
   ========================================================================== */
.cdk-overlay-pane.coa-account-dialog-panel {
  width: min(560px, 100vw - 32px) !important;
}

.coa-account-modal {
  width: 100%;
}

.coa-account-modal__body {
  padding: var(--ui-space-5);
}

.coa-account-modal__form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-4);
}

.coa-account-modal__field {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  min-width: 0;
}

.coa-account-modal__field--full {
  grid-column: 1/-1;
}

.coa-account-modal__label {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
}

.coa-account-modal__input {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface-1);
  color: var(--ui-text-primary);
  font: inherit;
  padding: 0 var(--ui-space-3);
  outline: none;
  transition: border-color var(--ui-transition-fast), background var(--ui-transition-fast);
}

.coa-account-modal__input::placeholder {
  color: var(--ui-text-subtle);
}

.coa-account-modal__input:hover {
  background: var(--ui-surface-2);
}

.coa-account-modal__input:focus {
  border-color: var(--ui-border-focus);
  background: var(--ui-surface-2);
}

.coa-account-modal__input option {
  background: var(--ui-bg);
  color: var(--ui-text-primary);
}

@media (max-width: 560px) {
  .coa-account-modal__form {
    grid-template-columns: 1fr;
  }
}
/* ==========================================================================
   UI MODALS - RECURRING JOURNAL
   ==========================================================================
   Create / manage recurring journal template modal.
   Uses the canonical modal surface (glass-modal-container) from layout/modal.scss.
   This file owns only the recurring-journal-specific layout and controls.

   Naming: BEM block = recurring-journal-modal  (prefix: rjm → canonical class)
   Z-index: uses --z-modal-dropdown for the account picker floating panel.
   ========================================================================== */
/* ── Overlay pane sizing ─────────────────────────────────────────── */
.cdk-overlay-pane.recurring-journal-dialog-panel {
  width: min(860px, 100vw - 32px) !important;
}

/* ── Root panel ──────────────────────────────────────────────────── */
.recurring-journal-modal {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-height: min(82vh, 760px);
}

/* ── Body ────────────────────────────────────────────────────────── */
.recurring-journal-modal__body {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  min-height: 0;
  padding: var(--ui-space-4);
  overflow-y: auto;
}

/* ── Rows & fields ───────────────────────────────────────────────── */
.recurring-journal-modal__row {
  display: flex;
  gap: var(--ui-space-3);
  align-items: flex-end;
}

.recurring-journal-modal__field {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  min-width: 0;
}

.recurring-journal-modal__field--grow {
  flex: 1;
}

.recurring-journal-modal__field--narrow {
  flex: 0 0 auto;
}

.recurring-journal-modal__label {
  color: var(--ui-text-muted);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
}

.recurring-journal-modal__required {
  color: var(--ui-danger);
}

/* ── Inputs & selects ────────────────────────────────────────────── */
.recurring-journal-modal__input {
  width: 100%;
  min-height: 38px;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface-1);
  color: var(--ui-text-primary);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
  padding: var(--ui-space-2) var(--ui-space-3);
  outline: none;
  box-sizing: border-box;
  transition: border-color var(--ui-transition-fast), background var(--ui-transition-fast);
}

.recurring-journal-modal__input::placeholder {
  color: var(--ui-text-subtle);
}

.recurring-journal-modal__input:hover {
  background: var(--ui-surface-2);
}

.recurring-journal-modal__input:focus {
  border-color: var(--ui-border-focus);
  background: var(--ui-surface-2);
}

.recurring-journal-modal__input option {
  background: var(--ui-surface-base);
  color: var(--ui-text-primary);
}

.recurring-journal-modal__input--narrow {
  width: 120px;
  text-align: right;
  /* Hide browser spinner arrows */
  -moz-appearance: textfield;
}
.recurring-journal-modal__input--narrow::-webkit-inner-spin-button, .recurring-journal-modal__input--narrow::-webkit-outer-spin-button {
  -webkit-appearance: none;
}

.recurring-journal-modal__input--amount {
  width: 100%;
  text-align: right;
  font-variant-numeric: tabular-nums;
  -moz-appearance: textfield;
}
.recurring-journal-modal__input--amount::-webkit-inner-spin-button, .recurring-journal-modal__input--amount::-webkit-outer-spin-button {
  -webkit-appearance: none;
}

/* ── Journal lines ───────────────────────────────────────────────── */
.recurring-journal-modal__lines {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  margin-top: var(--ui-space-1);
}

.recurring-journal-modal__lines-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.recurring-journal-modal__line-head,
.recurring-journal-modal__line {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(96px, 124px) minmax(96px, 124px) 40px;
  gap: var(--ui-space-2);
  align-items: center;
  padding: var(--ui-space-1) 0;
}

.recurring-journal-modal__line {
  border-bottom: 1px solid var(--ui-border-light);
}

.recurring-journal-modal__line-head {
  color: var(--ui-text-muted);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--ui-border);
  padding-bottom: var(--ui-space-2);
}

.recurring-journal-modal__remove {
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  color: var(--ui-danger);
  opacity: 0.5;
  cursor: pointer;
  padding: var(--ui-space-1);
  border-radius: var(--ui-radius-full);
  transition: opacity var(--ui-transition-fast), background var(--ui-transition-fast);
}
.recurring-journal-modal__remove mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}
.recurring-journal-modal__remove:hover:not(:disabled) {
  opacity: 1;
  background: var(--ui-danger-bg);
}
.recurring-journal-modal__remove:disabled {
  opacity: 0.2;
  cursor: default;
}

/* ── Totals row ──────────────────────────────────────────────────── */
.recurring-journal-modal__totals {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(96px, 124px) minmax(96px, 124px) 40px;
  gap: var(--ui-space-2);
  align-items: center;
  padding: var(--ui-space-3) 0 var(--ui-space-1);
  border-top: 2px solid var(--ui-border-hover);
  margin-top: var(--ui-space-1);
  font-weight: var(--ui-font-semibold);
  font-size: var(--ui-text-sm);
}

.recurring-journal-modal__totals-label {
  color: var(--ui-text-muted);
}

.recurring-journal-modal__total-val {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.recurring-journal-modal__balance-icon {
  display: flex;
  align-items: center;
  justify-content: center;
}
.recurring-journal-modal__balance-icon mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
}

.recurring-journal-modal__balance-msg {
  font-size: var(--ui-text-xs);
  color: var(--ui-danger);
  margin-top: var(--ui-space-1);
}

.recurring-journal-modal__loading {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-subtle);
  padding: var(--ui-space-2) 0;
}

/* ── Account picker — custom searchable dropdown ─────────────────── */
/*
 * Replaces the native <select> + <optgroup> which auto-scrolls to the
 * bottom in long grouped lists when the user moves the cursor.
 * Uses position:fixed for the dropdown panel so it escapes the modal
 * body's overflow-y:auto clipping context.
 */
.recurring-journal-modal__acct-picker {
  position: relative;
  width: 100%;
}

.recurring-journal-modal__acct-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 38px;
  padding: var(--ui-space-2) var(--ui-space-2) var(--ui-space-2) var(--ui-space-3);
  box-sizing: border-box;
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  color: var(--ui-text-subtle);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
  cursor: pointer;
  text-align: left;
  transition: border-color var(--ui-transition-fast), background var(--ui-transition-fast);
  gap: var(--ui-space-2);
}
.recurring-journal-modal__acct-trigger:hover {
  background: var(--ui-surface-2);
  border-color: var(--ui-border-hover);
}

.recurring-journal-modal__acct-trigger--open {
  background: var(--ui-surface-2);
  border-color: var(--ui-border-focus);
}

.recurring-journal-modal__acct-trigger--filled {
  color: var(--ui-text-primary);
}

.recurring-journal-modal__acct-trigger-text {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.recurring-journal-modal__acct-caret {
  font-size: 18px;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  opacity: 0.45;
  transition: transform var(--ui-transition-fast);
}
.recurring-journal-modal__acct-trigger--open .recurring-journal-modal__acct-caret {
  transform: rotate(180deg);
}

/* Dropdown panel — rendered into CDK overlay container at the document
   root, so no position:fixed or z-index needed here. CDK handles placement
   above all modal backdrop-filter stacking contexts automatically. */
.recurring-journal-modal__acct-dropdown {
  background: var(--ui-glass-dropdown-surface-solid);
  background: var(--ui-glass-dropdown-surface);
  backdrop-filter: var(--ui-glass-dropdown-blur);
  -webkit-backdrop-filter: var(--ui-glass-dropdown-blur);
  border: 1px solid var(--ui-border-hover);
  border-radius: var(--ui-radius-md);
  box-shadow: var(--ui-glass-dropdown-shadow);
  display: flex;
  flex-direction: column;
  max-height: 320px;
  overflow: hidden;
}

.recurring-journal-modal__acct-search {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-3);
  border-bottom: 1px solid var(--ui-border-light);
  flex-shrink: 0;
}

.recurring-journal-modal__acct-search-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: var(--ui-text-subtle);
  flex-shrink: 0;
}

.recurring-journal-modal__acct-search-input {
  flex: 1;
  background: none;
  border: none;
  outline: none;
  color: var(--ui-text-primary);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
}
.recurring-journal-modal__acct-search-input::placeholder {
  color: var(--ui-text-subtle);
}

.recurring-journal-modal__acct-list {
  overflow-y: auto;
  flex: 1;
  scrollbar-width: thin;
  scrollbar-color: var(--ui-border-hover) transparent;
}
.recurring-journal-modal__acct-list::-webkit-scrollbar {
  width: 4px;
}
.recurring-journal-modal__acct-list::-webkit-scrollbar-thumb {
  background: var(--ui-border-hover);
  border-radius: var(--ui-radius-full);
}

.recurring-journal-modal__acct-group {
  position: sticky;
  top: 0;
  padding: var(--ui-space-2) var(--ui-space-3) var(--ui-space-1);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ui-brand-light);
  opacity: 0.7;
  background: var(--ui-glass-dropdown-surface-solid);
}

.recurring-journal-modal__acct-opt {
  display: flex;
  align-items: baseline;
  gap: var(--ui-space-2);
  width: 100%;
  padding: var(--ui-space-2) var(--ui-space-3);
  text-align: left;
  background: none;
  border: none;
  color: var(--ui-text-secondary);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
  cursor: pointer;
  transition: background var(--ui-transition-fast);
}
.recurring-journal-modal__acct-opt:hover {
  background: var(--ui-surface-hover);
}

.recurring-journal-modal__acct-opt--selected {
  background: rgba(255, 130, 90, 0.1);
  color: var(--ui-brand-light);
}
.recurring-journal-modal__acct-opt--selected:hover {
  background: rgba(255, 130, 90, 0.15);
}

.recurring-journal-modal__acct-opt-code {
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  flex-shrink: 0;
  min-width: 44px;
}
.recurring-journal-modal__acct-opt--selected .recurring-journal-modal__acct-opt-code {
  color: var(--ui-brand-light);
}

.recurring-journal-modal__acct-opt-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.recurring-journal-modal__acct-empty {
  padding: var(--ui-space-5) var(--ui-space-3);
  text-align: center;
  font-size: var(--ui-text-xs);
  color: var(--ui-text-subtle);
}

/* ── Responsive ──────────────────────────────────────────────────── */
@media (max-width: 600px) {
  .recurring-journal-modal__row {
    flex-wrap: wrap;
  }
  .recurring-journal-modal__field--narrow {
    flex: 1 1 100%;
  }
  .recurring-journal-modal__line-head {
    display: none;
  }
  .recurring-journal-modal__line,
  .recurring-journal-modal__totals {
    grid-template-columns: 1fr 1fr 32px;
    grid-template-rows: auto auto;
  }
  .recurring-journal-modal__line > :first-child,
  .recurring-journal-modal__totals > :first-child {
    grid-column: 1/-1;
  }
}
/* ==========================================================================
   MODAL - CONVERSION DETAILS (Refactored — Attribution-First)
   ==========================================================================
   Attribution explanation tool with timeline, model switcher, explanation
   box, and collapsible manual override.
   ========================================================================== */
/* ── Panel sizing ──────────────────────────────────────────────────── */
body .cdk-overlay-pane.conversion-details-dialog-panel {
  width: min(720px, 100vw - var(--ui-space-10, 40px)) !important;
  max-width: min(720px, 100vw - var(--ui-space-10, 40px)) !important;
  max-height: min(88vh, 100vh - var(--ui-space-10, 40px)) !important;
  margin: auto !important;
}

body .cdk-overlay-pane.conversion-details-dialog-panel .mat-mdc-dialog-container,
body .cdk-overlay-pane.conversion-details-dialog-panel .mdc-dialog__container,
body .cdk-overlay-pane.conversion-details-dialog-panel .mdc-dialog__surface,
body .cdk-overlay-pane.conversion-details-dialog-panel .mat-mdc-dialog-surface {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
  padding: 0 !important;
  border-radius: 20px !important;
  overflow: hidden !important;
}

body .cdk-overlay-pane.conversion-details-dialog-panel .mat-mdc-dialog-content,
body .cdk-overlay-pane.conversion-details-dialog-panel .mdc-dialog__content,
body .cdk-overlay-pane.conversion-details-dialog-panel mat-dialog-content {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  max-height: none !important;
  overflow: hidden !important;
}

/* ── Container ─────────────────────────────────────────────────────── */
.cd-refactored {
  display: flex;
  flex-direction: column;
  max-height: 88vh;
}

/* ── Header ────────────────────────────────────────────────────────── */
.cd-header {
  align-items: flex-start;
  gap: 12px;
}

.cd-header-sub {
  margin: 2px 0 0;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.45);
}

.cd-revenue {
  color: #d4a24e;
  font-weight: 600;
}

.cd-sep {
  margin: 0 2px;
  opacity: 0.5;
}

.cd-model-label {
  text-transform: capitalize;
}

/* ── Body ──────────────────────────────────────────────────────────── */
.cd-body {
  overflow-y: auto;
  padding: 0 24px 24px !important;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* ── Model Switcher ────────────────────────────────────────────────── */
.cd-model-switcher {
  display: flex;
  gap: 6px;
  padding: 16px 0 0;
}

.cd-model-btn {
  padding: 5px 14px;
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: transparent;
  color: rgba(255, 255, 255, 0.45);
  font-size: 12px;
  cursor: pointer;
  transition: all 0.2s;
}

.cd-model-btn:hover {
  border-color: rgba(212, 162, 78, 0.3);
  color: #d4a24e;
}

.cd-model-btn.active {
  background: rgba(212, 162, 78, 0.12);
  border-color: rgba(212, 162, 78, 0.35);
  color: #d4a24e;
}

/* ── Loading Skeleton ──────────────────────────────────────────────── */
.cd-loading {
  padding: 16px 0;
}

.cd-skeleton-timeline {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.cd-skeleton-node {
  display: flex;
  align-items: center;
  gap: 12px;
}

.skeleton-circle {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  flex-shrink: 0;
}

/* ── Section Title ─────────────────────────────────────────────────── */
.cd-section-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  color: #e0e0e0;
  margin: 0 0 14px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.cd-section-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: #d4a24e;
}

/* ── Timeline ──────────────────────────────────────────────────────── */
.cd-timeline {
  padding: 0;
}

.cd-timeline-item {
  display: flex;
  gap: 14px;
}

.cd-timeline-connector {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 20px;
  flex-shrink: 0;
}

.cd-timeline-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 2px solid #636e72;
  background: #1c1c1e;
  flex-shrink: 0;
  z-index: 1;
  transition: border-color 0.3s, box-shadow 0.3s;
}

.cd-timeline-item:hover .cd-timeline-dot {
  box-shadow: 0 0 6px rgba(212, 162, 78, 0.3);
}

.cd-timeline-line {
  width: 2px;
  flex: 1;
  background: rgba(255, 255, 255, 0.06);
  margin: 2px 0;
}

.cd-dot-conversion {
  border-color: #00b894 !important;
  background: #00b894 !important;
}

.cd-timeline-content {
  flex: 1;
  padding-bottom: 20px;
  transition: background 0.2s;
  border-radius: 8px;
}

.cd-timeline-item:hover .cd-timeline-content {
  background: rgba(255, 255, 255, 0.02);
}

/* ── Touchpoint Header ─────────────────────────────────────────────── */
.cd-tp-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 6px;
}

.cd-tp-campaign {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.cd-tp-name {
  font-size: 13px;
  font-weight: 500;
  color: #f0f0f0;
}

.cd-tp-badge {
  font-size: 10px;
  padding: 1px 7px;
  border-radius: 3px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.cd-badge-channel {
  color: #fff;
}

.cd-badge-source {
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.5);
  text-transform: capitalize;
}

/* ── Weight Bar ────────────────────────────────────────────────────── */
.cd-tp-weight {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 100px;
}

.cd-weight-bar-bg {
  width: 60px;
  height: 5px;
  background: rgba(255, 255, 255, 0.06);
  border-radius: 3px;
  overflow: hidden;
}

.cd-weight-bar {
  height: 100%;
  border-radius: 3px;
  transition: width 0.4s ease;
}

.cd-weight-pct {
  font-size: 12px;
  font-weight: 600;
  color: #f0f0f0;
  min-width: 36px;
  text-align: right;
}

/* ── Touchpoint Details ────────────────────────────────────────────── */
.cd-tp-details {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.4);
}

.cd-tp-revenue {
  color: #d4a24e;
  font-weight: 500;
}

.cd-tp-platform {
  text-transform: capitalize;
}

.cd-tp-gap {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  color: rgba(255, 255, 255, 0.22);
  margin-top: 8px;
  padding-left: 2px;
}

.cd-gap-icon {
  font-size: 12px !important;
  width: 12px !important;
  height: 12px !important;
}

/* ── Conversion Event ──────────────────────────────────────────────── */
.cd-conversion-event {
  display: flex;
  gap: 14px;
}

.cd-conversion-content {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  background: rgba(0, 184, 148, 0.06);
  border: 1px solid rgba(0, 184, 148, 0.15);
  border-radius: 10px;
  flex: 1;
}

.cd-conv-icon {
  font-size: 18px !important;
  width: 18px !important;
  height: 18px !important;
  color: #00b894;
}

.cd-conv-text {
  font-size: 13px;
  font-weight: 500;
  color: #00b894;
}

.cd-conv-date {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.3);
  margin-left: auto;
}

/* ── Empty State ───────────────────────────────────────────────────── */
.cd-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 40px 24px;
  text-align: center;
}

.cd-empty-icon {
  font-size: 44px !important;
  width: 44px !important;
  height: 44px !important;
  color: rgba(255, 255, 255, 0.12);
}

.cd-empty-title {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.5);
  margin: 0;
}

.cd-empty-desc {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.3);
  margin: 0;
}

.cd-empty-reasons {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin-top: 6px;
}

.cd-empty-reason {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.22);
}

.cd-empty-cta {
  margin-top: 10px;
  padding: 6px 18px;
  border: 1px solid rgba(212, 162, 78, 0.3);
  border-radius: 8px;
  background: rgba(212, 162, 78, 0.08);
  color: #d4a24e;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}

.cd-empty-cta:hover {
  background: rgba(212, 162, 78, 0.15);
  border-color: rgba(212, 162, 78, 0.5);
}

/* ── Explanation Box ───────────────────────────────────────────────── */
.cd-explanation {
  padding: 14px 16px;
  background: rgba(212, 162, 78, 0.05);
  border: 1px solid rgba(212, 162, 78, 0.12);
  border-radius: 12px;
}

.cd-explanation-header {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: #d4a24e;
  margin-bottom: 6px;
}

.cd-explanation-icon {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
}

.cd-explanation-text {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.45);
  line-height: 1.6;
  margin: 0;
}

/* ── Attribution Type Badge ────────────────────────────────────────── */
.cd-attr-type {
  display: flex;
  align-items: center;
  gap: 10px;
}

.cd-attr-type-label {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.35);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.cd-type-badge {
  font-size: 11px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 6px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.cd-badge-auto {
  background: rgba(0, 184, 148, 0.12);
  color: #00b894;
  border: 1px solid rgba(0, 184, 148, 0.2);
}

.cd-badge-manual {
  background: rgba(253, 203, 110, 0.12);
  color: #fdcb6e;
  border: 1px solid rgba(253, 203, 110, 0.2);
}

.cd-badge-unattributed {
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.4);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

/* ── Snapshots ─────────────────────────────────────────────────────── */
.cd-snapshots {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.cd-snap-card {
  padding: 14px 16px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 12px;
}

.cd-snap-title {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin: 0 0 10px;
}

.cd-snap-icon {
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
  color: rgba(255, 255, 255, 0.3);
}

.cd-snap-grid {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.cd-snap-item {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.cd-snap-label {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.3);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.cd-snap-value {
  font-size: 13px;
  color: #e0e0e0;
}

/* ── Override Section ──────────────────────────────────────────────── */
.cd-override-section {
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  padding-top: 12px;
}

.cd-override-toggle {
  display: flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.4);
  font-size: 12px;
  cursor: pointer;
  padding: 4px 0;
  transition: color 0.2s;
}

.cd-override-toggle:hover {
  color: rgba(255, 255, 255, 0.6);
}

.cd-override-toggle mat-icon {
  font-size: 18px !important;
  width: 18px !important;
  height: 18px !important;
}

.cd-override-body {
  padding: 14px 0 4px;
  animation: cdFadeIn 0.2s ease;
}

.cd-override-form {
  display: flex;
  align-items: flex-end;
  gap: 12px;
}

.cd-override-field {
  flex: 1;
}

.cd-override-save {
  flex-shrink: 0;
  height: 42px;
}

.cd-override-note {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.25);
  margin: 8px 0 0;
  font-style: italic;
}

/* ── Animation ─────────────────────────────────────────────────────── */
@keyframes cdFadeIn {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.cd-timeline-item {
  animation: cdFadeIn 0.3s ease both;
}

.cd-timeline-item:nth-child(2) {
  animation-delay: 0.05s;
}

.cd-timeline-item:nth-child(3) {
  animation-delay: 0.1s;
}

.cd-timeline-item:nth-child(4) {
  animation-delay: 0.15s;
}

.cd-timeline-item:nth-child(5) {
  animation-delay: 0.2s;
}

/* ── Responsive ────────────────────────────────────────────────────── */
@media (max-width: 640px) {
  .cd-snapshots {
    grid-template-columns: 1fr;
  }
  .cd-tp-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }
  .cd-override-form {
    flex-direction: column;
    align-items: stretch;
  }
}
/* ==========================================================================
   CALL FLOW — Full-Screen Execution Modal (Phase 3)
   ========================================================================== */
/* Dialog override — full screen, dark glass */
.call-flow-dialog .mat-mdc-dialog-container {
  max-width: 100vw !important;
  max-height: 100vh !important;
  width: 100vw !important;
  height: 100vh !important;
  border-radius: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

.call-flow {
  display: flex;
  flex-direction: column;
  height: 100vh;
  background: var(--ui-surface-0);
  color: var(--ui-text-primary);
  font-family: var(--ui-font-primary);
  overflow: hidden;
}

/* ═══ HEADER ═══ */
.call-flow__header {
  display: flex;
  align-items: center;
  gap: var(--ui-space-4);
  padding: var(--ui-space-4) var(--ui-space-6);
  background: var(--ui-glass-light);
  border-bottom: 1px solid var(--ui-border-light);
  backdrop-filter: var(--ui-blur-md);
  flex-shrink: 0;
}

.call-flow__header-left {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
}

.call-flow__mode {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-bold);
  letter-spacing: -0.01em;
}

.call-flow__progress-text {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-subtle);
  font-weight: var(--ui-font-semibold);
  background: var(--ui-surface-1);
  padding: 2px 10px;
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border-light);
}

.call-flow__progress-bar {
  flex: 1;
  height: 4px;
  background: var(--ui-surface-2);
  border-radius: var(--ui-radius-full);
  overflow: hidden;
}

.call-flow__progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--ui-brand), var(--ui-brand-light));
  border-radius: var(--ui-radius-full);
  transition: width 0.5s ease;
}

.call-flow__end-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  border: 1px solid var(--ui-border-hover);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-1);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  cursor: pointer;
  transition: all var(--ui-transition-base);
}
.call-flow__end-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}
.call-flow__end-btn:hover {
  background: var(--ui-danger-bg);
  color: var(--ui-danger);
  border-color: var(--ui-danger-border);
}

/* ═══ LOADING ═══ */
.call-flow__loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1;
  gap: var(--ui-space-3);
  color: var(--ui-text-subtle);
}
.call-flow__loading mat-icon {
  font-size: 40px;
  width: 40px;
  height: 40px;
  animation: spin 1.2s linear infinite;
}
.call-flow__loading span {
  font-size: var(--ui-text-md);
}

@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
/* ═══ EMPTY / COMPLETE ═══ */
.call-flow__empty,
.call-flow__complete {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1;
  gap: var(--ui-space-3);
  text-align: center;
  padding: var(--ui-space-6);
}
.call-flow__empty mat-icon,
.call-flow__complete mat-icon {
  font-size: 56px;
  width: 56px;
  height: 56px;
  color: var(--ui-success);
}
.call-flow__empty h2,
.call-flow__complete h2 {
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-bold);
  margin: 0;
}
.call-flow__empty p,
.call-flow__complete p {
  color: var(--ui-text-subtle);
  font-size: var(--ui-text-md);
  max-width: 400px;
  margin: 0;
}

.call-flow__close-btn {
  padding: var(--ui-space-3) var(--ui-space-6);
  background: var(--ui-brand);
  color: #fff;
  border: none;
  border-radius: var(--ui-radius-md);
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-bold);
  cursor: pointer;
  transition: all var(--ui-transition-base);
  margin-top: var(--ui-space-3);
}
.call-flow__close-btn:hover {
  background: var(--ui-brand-light);
  transform: translateY(-1px);
}

.call-flow__final-stats {
  display: flex;
  gap: var(--ui-space-5);
  margin-top: var(--ui-space-4);
}

.final-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}

.final-stat__value {
  font-size: 28px;
  font-weight: 800;
  color: var(--ui-text-primary);
}

.final-stat__label {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* ═══ LEAD CARD BODY ═══ */
.call-flow__body {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: var(--ui-space-6);
  flex: 1;
  padding: var(--ui-space-6) var(--ui-space-8);
  align-items: center;
  transition: all 0.3s ease;
  opacity: 1;
  transform: translateX(0);
}

.call-flow__body--exit {
  opacity: 0;
  transform: translateX(-40px);
}

/* ─── Primary (Left) ─── */
.call-flow__lead-primary {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.call-flow__bucket {
  display: inline-flex;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-subtle);
  background: var(--ui-surface-1);
  padding: 2px 10px;
  border-radius: var(--ui-radius-full);
  width: fit-content;
  border: 1px solid var(--ui-border-light);
}

.call-flow__lead-name {
  font-size: 32px;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin: 0;
  line-height: 1.1;
}

.call-flow__phone {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: 22px;
  font-weight: var(--ui-font-bold);
  color: var(--ui-brand-light);
}
.call-flow__phone mat-icon {
  font-size: 22px;
  width: 22px;
  height: 22px;
}

.call-flow__score-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.call-flow__score-badge {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 800;
  color: #fff;
}

.score--high {
  background: linear-gradient(135deg, #22c55e, #16a34a);
  box-shadow: 0 0 12px rgba(34, 197, 94, 0.3);
}

.score--mid {
  background: linear-gradient(135deg, #eab308, #ca8a04);
  box-shadow: 0 0 12px rgba(234, 179, 8, 0.3);
}

.score--low {
  background: linear-gradient(135deg, #ef4444, #dc2626);
  box-shadow: 0 0 12px rgba(239, 68, 68, 0.3);
}

.call-flow__score-label {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.call-flow__potential {
  padding: 2px 8px;
  border-radius: var(--ui-radius-sm);
  font-size: 11px;
  font-weight: var(--ui-font-bold);
  text-transform: uppercase;
  background: rgba(168, 85, 247, 0.12);
  color: #c084fc;
}

.call-flow__reason {
  font-size: var(--ui-text-md);
  color: var(--ui-text-subtle);
  margin: 0;
}

.call-flow__revenue {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-success);
}
.call-flow__revenue mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

/* ─── Secondary (Right) ─── */
.call-flow__lead-secondary {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
  padding: var(--ui-space-5);
  background: var(--ui-glass-light);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-lg);
  backdrop-filter: var(--ui-blur-sm);
}

.call-flow__attribution {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.call-flow__attr-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.call-flow__attr-label {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  min-width: 70px;
}

.call-flow__attr-value {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.call-flow__insight {
  font-size: var(--ui-text-sm);
  color: var(--ui-success);
  font-weight: var(--ui-font-semibold);
  margin-top: var(--ui-space-1);
}

.call-flow__email,
.call-flow__prob {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-sm);
  color: var(--ui-text-subtle);
}
.call-flow__email mat-icon,
.call-flow__prob mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

/* ═══ ACTION BAR ═══ */
.call-flow__actions {
  display: flex;
  justify-content: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-4) var(--ui-space-6);
  background: var(--ui-glass-light);
  border-top: 1px solid var(--ui-border-light);
  backdrop-filter: var(--ui-blur-md);
  flex-shrink: 0;
}

.call-flow__action-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-3) var(--ui-space-5);
  border-radius: var(--ui-radius-md);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  cursor: pointer;
  transition: all var(--ui-transition-base);
  border: 1.5px solid;
  background: transparent;
}
.call-flow__action-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}
.call-flow__action-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.call-flow__action-btn:not(:disabled):hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}

.call-flow__action-btn--called {
  background: rgba(34, 197, 94, 0.1);
  color: var(--ui-success);
  border-color: rgba(34, 197, 94, 0.3);
}
.call-flow__action-btn--called:not(:disabled):hover {
  background: rgba(34, 197, 94, 0.2);
}

.call-flow__action-btn--no-answer {
  background: rgba(239, 68, 68, 0.1);
  color: var(--ui-danger);
  border-color: rgba(239, 68, 68, 0.3);
}
.call-flow__action-btn--no-answer:not(:disabled):hover {
  background: rgba(239, 68, 68, 0.2);
}

.call-flow__action-btn--follow-up {
  background: rgba(234, 179, 8, 0.1);
  color: var(--ui-warning);
  border-color: rgba(234, 179, 8, 0.3);
}
.call-flow__action-btn--follow-up:not(:disabled):hover {
  background: rgba(234, 179, 8, 0.2);
}

.call-flow__action-btn--converted {
  background: rgba(59, 130, 246, 0.1);
  color: #60a5fa;
  border-color: rgba(59, 130, 246, 0.3);
}
.call-flow__action-btn--converted:not(:disabled):hover {
  background: rgba(59, 130, 246, 0.2);
}

.call-flow__action-btn--skip {
  background: var(--ui-surface-1);
  color: var(--ui-text-muted);
  border-color: var(--ui-border-light);
}
.call-flow__action-btn--skip:not(:disabled):hover {
  background: var(--ui-surface-2);
}

/* ═══ REMAINING COUNTER ═══ */
.call-flow__remaining {
  text-align: center;
  padding: var(--ui-space-2);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
  flex-shrink: 0;
}

/* ==========================================================================
   SMARTFLO INTEGRATION — Call Flow Modal
   ========================================================================== */
/* Smartflo click-to-call button positioning in lead card */
.call-flow__smartflo-btn {
  margin-left: var(--ui-space-2);
}
/* Live call state indicator bar */
.call-flow__call-state {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-1) var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  width: fit-content;
  margin-top: var(--ui-space-2);
  transition: all 0.3s ease;
}
.call-flow__call-state .call-state__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

/* Idle — hidden by default via *ngIf="callState !== 'idle'" in template */
/* Calling / Ringing — amber */
.call-state--calling,
.call-state--ringing {
  background: rgba(245, 158, 11, 0.1);
  border: 1px solid rgba(245, 158, 11, 0.25);
  color: #d97706;
}
.call-state--calling .call-state__dot,
.call-state--ringing .call-state__dot {
  background: #d97706;
  animation: callPulse 1s ease-in-out infinite;
}

/* Answered — green */
.call-state--answered {
  background: rgba(34, 197, 94, 0.1);
  border: 1px solid rgba(34, 197, 94, 0.25);
  color: var(--ui-success);
}
.call-state--answered .call-state__dot {
  background: var(--ui-success);
  animation: callPulse 1.5s ease-in-out infinite;
}

/* Completed — green solid */
.call-state--completed {
  background: rgba(34, 197, 94, 0.12);
  border: 1px solid rgba(34, 197, 94, 0.3);
  color: var(--ui-success);
}
.call-state--completed .call-state__dot {
  background: var(--ui-success);
}

/* Missed / Failed — red */
.call-state--missed,
.call-state--failed {
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.25);
  color: var(--ui-danger);
}
.call-state--missed .call-state__dot,
.call-state--failed .call-state__dot {
  background: var(--ui-danger);
}

@keyframes callPulse {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.5;
    transform: scale(0.8);
  }
}
/* Verified badge on action buttons — green glow when Smartflo confirmed */
.call-flow__action-btn--verified {
  box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.25);
}

/* Manual badge on Called button when used without Smartflo */
.call-flow__action-btn--manual {
  border-color: rgba(245, 158, 11, 0.4) !important;
}

/* Verified / Manual badge icons inside buttons */
.call-flow__verify-badge,
.call-flow__manual-badge {
  font-style: normal;
  font-size: 14px;
  line-height: 1;
}

/* ==========================================================================
   UI MODALS - MARK INACTIVE
   ==========================================================================
   Duration picker dialog for employee/advisor inactive status.
   Visual ownership is scoped to .mark-inactive-dialog and composes with the
   shared modal and form contracts.
   ========================================================================== */
body .cdk-overlay-pane.mark-inactive-dialog-panel {
  width: min(880px, 100vw - var(--ui-space-8)) !important;
  max-width: min(880px, 100vw - var(--ui-space-8)) !important;
  height: min(720px, 100vh - var(--ui-space-8)) !important;
  max-height: min(720px, 100vh - var(--ui-space-8)) !important;
  margin: auto !important;
}

.cdk-global-overlay-wrapper:has(.cdk-overlay-pane.mark-inactive-dialog-panel) {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}

@supports (height: 100dvh) {
  body .cdk-overlay-pane.mark-inactive-dialog-panel {
    height: min(720px, 100dvh - var(--ui-space-8)) !important;
    max-height: min(720px, 100dvh - var(--ui-space-8)) !important;
  }
}
body .cdk-overlay-pane.mark-inactive-dialog-panel .mat-mdc-dialog-container,
body .cdk-overlay-pane.mark-inactive-dialog-panel .mdc-dialog__container,
body .cdk-overlay-pane.mark-inactive-dialog-panel .mdc-dialog__surface,
body .cdk-overlay-pane.mark-inactive-dialog-panel .mat-mdc-dialog-surface {
  height: 100% !important;
  max-height: none !important;
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border: none !important;
  padding: 0 !important;
  border-radius: var(--ui-radius-2xl) !important;
  overflow: hidden !important;
}

body .cdk-overlay-pane.mark-inactive-dialog-panel .mdc-dialog__surface > *,
body .cdk-overlay-pane.mark-inactive-dialog-panel .mat-mdc-dialog-surface > * {
  display: block !important;
  height: 100% !important;
}

body .cdk-overlay-pane.mark-inactive-dialog-panel mat-dialog-content,
body .cdk-overlay-pane.mark-inactive-dialog-panel .mat-mdc-dialog-content,
body .cdk-overlay-pane.mark-inactive-dialog-panel .mdc-dialog__content {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

body .cdk-overlay-pane.mark-inactive-dialog-panel .mat-mdc-dialog-component-host {
  display: block !important;
  height: 100% !important;
  min-height: 0 !important;
}

.mark-inactive-dialog.ui-modal__panel, .mark-inactive-dialog.glass-modal-container {
  width: 100%;
  max-width: none;
  height: 100%;
  max-height: none;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
  overflow: hidden;
}

.mark-inactive-dialog .ui-modal__header {
  padding: var(--ui-space-6);
}

.mark-inactive-dialog .header-content {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-4);
}

.mark-inactive-dialog .ui-modal__title {
  margin: 0;
}

.mark-inactive-dialog .ui-modal__body {
  flex: 1 1 0;
  min-height: 0;
  padding: var(--ui-space-6);
  overflow-y: auto !important;
  overflow-x: hidden !important;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

.mark-inactive-dialog .glass-form {
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-4);
}

.mark-inactive-dialog__section {
  padding: var(--ui-space-5);
  border-radius: var(--ui-radius-xl);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02)), rgba(18, 18, 24, 0.36);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.mark-inactive-dialog__options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ui-space-3);
}

.mark-inactive-dialog__option {
  min-height: 92px;
  width: 100%;
  padding: var(--ui-space-4);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-2);
  border-radius: var(--ui-radius-xl);
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02)), rgba(18, 18, 24, 0.3);
  color: var(--ui-text-primary);
  text-align: left;
  cursor: pointer;
  transition: border-color var(--ui-transition-base), background var(--ui-transition-base), transform var(--ui-transition-base), box-shadow var(--ui-transition-base);
}

.mark-inactive-dialog__option:hover {
  transform: translateY(-1px);
  border-color: rgba(255, 138, 80, 0.28);
  background: linear-gradient(180deg, rgba(255, 138, 80, 0.08), rgba(255, 255, 255, 0.03)), rgba(18, 18, 24, 0.34);
}

.mark-inactive-dialog__option.active {
  border-color: rgba(255, 138, 80, 0.45);
  background: linear-gradient(180deg, rgba(255, 138, 80, 0.18), rgba(255, 255, 255, 0.04)), rgba(18, 18, 24, 0.4);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.mark-inactive-dialog .time-label {
  display: block;
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  line-height: 1.3;
}

.mark-inactive-dialog .time-until {
  display: block;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
  line-height: 1.4;
}

.mark-inactive-dialog .glass-field-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-3);
}

.mark-inactive-dialog .glass-field {
  min-width: 0;
}

.mark-inactive-dialog .clickable-field {
  cursor: pointer;
}

.mark-inactive-dialog .clickable-field .mat-mdc-form-field-flex,
.mark-inactive-dialog .clickable-field .mat-mdc-text-field-wrapper {
  cursor: pointer;
}

.mark-inactive-dialog .ui-modal__footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ui-space-3);
  padding: var(--ui-space-5) var(--ui-space-6);
}

.mark-inactive-dialog .footer-left {
  display: none;
}

.mark-inactive-dialog .footer-right {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ui-space-3);
}

@media (max-width: 768px) {
  .mark-inactive-dialog .ui-modal__header,
  .mark-inactive-dialog .ui-modal__body,
  .mark-inactive-dialog .ui-modal__footer {
    padding: var(--ui-space-5);
  }
  .mark-inactive-dialog__options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 560px) {
  body .cdk-overlay-pane.mark-inactive-dialog-panel {
    width: calc(100vw - var(--ui-space-4)) !important;
    max-width: calc(100vw - var(--ui-space-4)) !important;
    height: min(720px, 100vh - var(--ui-space-4)) !important;
    max-height: min(720px, 100vh - var(--ui-space-4)) !important;
  }
  @supports (height: 100dvh) {
    body .cdk-overlay-pane.mark-inactive-dialog-panel {
      height: min(720px, 100dvh - var(--ui-space-4)) !important;
      max-height: min(720px, 100dvh - var(--ui-space-4)) !important;
    }
  }
  .mark-inactive-dialog.ui-modal__panel, .mark-inactive-dialog.glass-modal-container {
    width: min(100vw - var(--ui-space-4), 100%);
    max-width: min(100vw - var(--ui-space-4), 100%);
  }
  .mark-inactive-dialog__options,
  .mark-inactive-dialog .glass-field-row {
    grid-template-columns: 1fr;
  }
  .mark-inactive-dialog .footer-right {
    width: 100%;
  }
  .mark-inactive-dialog .footer-right .ui-btn {
    flex: 1 1 0;
  }
}
/* ==========================================================================
   PROGRESS REPORT MODALS
   ==========================================================================
   Service advisor performance dialogs opened from the console header.
   Scoped to dialog root classes only. No reusable modal primitives here.
   ========================================================================== */
/* Dedicated pane owner for the advisor progress dialog.
   This modal must own the pane/host/content height chain explicitly rather than
   relying on descendant :has selectors. */
body .cdk-overlay-pane.advisor-progress-dialog-panel {
  width: min(1100px, 100vw - var(--ui-space-8)) !important;
  max-width: min(1100px, 100vw - var(--ui-space-8)) !important;
  height: min(90vh, 100vh - var(--ui-space-8)) !important;
  max-height: min(90vh, 100vh - var(--ui-space-8)) !important;
  margin: auto !important;
}

@supports (height: 100dvh) {
  body .cdk-overlay-pane.advisor-progress-dialog-panel {
    height: min(90dvh, 100dvh - var(--ui-space-8)) !important;
    max-height: min(90dvh, 100dvh - var(--ui-space-8)) !important;
  }
}
body .cdk-overlay-pane.advisor-progress-dialog-panel .mat-mdc-dialog-container,
body .cdk-overlay-pane.advisor-progress-dialog-panel .mdc-dialog__container,
body .cdk-overlay-pane.advisor-progress-dialog-panel .mdc-dialog__surface,
body .cdk-overlay-pane.advisor-progress-dialog-panel .mat-mdc-dialog-surface,
.cdk-overlay-pane:has(.advisor-progress-dialog) .mat-mdc-dialog-container,
.cdk-overlay-pane:has(.advisor-progress-dialog) .mdc-dialog__container,
.cdk-overlay-pane:has(.advisor-progress-dialog) .mdc-dialog__surface,
.cdk-overlay-pane:has(.advisor-progress-dialog) .mat-mdc-dialog-surface {
  height: 100% !important;
  overflow: hidden !important;
}

/* Component host element (Angular renders inline by default) */
.cdk-overlay-pane.advisor-progress-dialog-panel .mdc-dialog__surface > *,
.cdk-overlay-pane.advisor-progress-dialog-panel .mat-mdc-dialog-surface > *,
.cdk-overlay-pane:has(.advisor-progress-dialog) .mdc-dialog__surface > *,
.cdk-overlay-pane:has(.advisor-progress-dialog) .mat-mdc-dialog-surface > * {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  min-height: 0 !important;
}

body .cdk-overlay-pane.advisor-progress-dialog-panel mat-dialog-content,
body .cdk-overlay-pane.advisor-progress-dialog-panel .mat-mdc-dialog-content,
body .cdk-overlay-pane.advisor-progress-dialog-panel .mdc-dialog__content {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}

body .cdk-overlay-pane.advisor-progress-dialog-panel .mat-mdc-dialog-component-host {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  min-height: 0 !important;
}

.advisor-progress-dialog {
  width: 100%;
  max-width: none;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  max-height: none;
  gap: 0;
  padding: 0;
  overflow: hidden;
}

.advisor-progress-dialog .glass-modal-header {
  padding: 18px 24px;
  flex: 0 0 auto;
}

.advisor-progress-dialog__header-content {
  align-items: flex-start;
  gap: 20px;
}

.advisor-progress-dialog__title-group {
  align-items: flex-start;
}

.advisor-progress-dialog__title-copy {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.advisor-progress-dialog__header-actions {
  align-items: flex-start;
  gap: 16px;
}

.advisor-progress-dialog .advisor-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  min-width: 0;
  text-align: right;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.72);
}

.advisor-progress-dialog .advisor-meta strong {
  color: rgba(255, 255, 255, 0.96);
  font-weight: 600;
}

.advisor-progress-dialog .ui-modal__close svg {
  width: 18px;
  height: 18px;
}

.advisor-progress-dialog .glass-modal-body.ui-modal__body {
  /* IMPORTANT: display:block (not grid/flex) is required here.
     This element is a flex-child of .advisor-progress-dialog (flex-col).
     display:grid would create its own formatting context and expand to 
     full content height, ignoring flex-basis:0 — so overflow never triggers.
     display:block respects the flex sizing from the parent, constraining 
     this element's height and enabling internal scroll. */
  display: block !important;
  padding: 24px !important;
  flex: 1 1 0% !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

/* Children inside the body need explicit layout since parent is display:block */
.advisor-progress-dialog .glass-modal-body > * {
  width: 100%;
  box-sizing: border-box;
}

.advisor-progress-dialog .glass-modal-body > * + * {
  margin-top: 18px;
}

.advisor-progress-dialog__chart-card {
  display: flex;
  flex-direction: column;
  gap: 18px;
  min-height: 0;
  padding: 20px;
  position: relative;
}

.advisor-progress-dialog__performance {
  display: flex;
  flex-direction: column;
  gap: 18px;
  min-height: auto;
  padding: 20px;
  position: relative;
}

.advisor-progress-dialog .glass-panel.advisor-progress-dialog__chart-card {
  min-height: auto;
  overflow: visible !important;
}

.advisor-progress-dialog .chart-card__header {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}

.advisor-progress-dialog .chart-card__body {
  min-height: 372px;
  display: flex;
  align-items: stretch;
  justify-content: stretch;
}

.advisor-progress-dialog .chart-card__body apx-chart,
.advisor-progress-dialog .chart-card__body .chart-skeleton {
  flex: 1 1 auto;
  width: 100%;
  min-height: 372px;
}

.advisor-progress-dialog .chart-card__legend {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  align-items: center;
}

.advisor-progress-dialog .legend-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.72);
}

.advisor-progress-dialog .legend-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.06);
  flex-shrink: 0;
}

/* ── Metric Selector (Checkbox-style) ───────────────────── */
.advisor-progress-dialog .chart-card__metric-selector {
  display: flex;
  align-items: center;
  gap: 2px;
  flex: 1;
  min-width: 0;
}

.advisor-progress-dialog .metric-selector__groups {
  display: flex;
  flex-wrap: wrap;
  gap: 2px;
  align-items: center;
}

.advisor-progress-dialog .metric-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 8px 4px 4px;
  border-radius: 6px;
  border: none;
  background: transparent;
  cursor: pointer;
  transition: background 0.18s ease;
  outline: none;
}

.advisor-progress-dialog .metric-checkbox:hover {
  background: rgba(255, 255, 255, 0.06);
}

.advisor-progress-dialog .metric-checkbox--active {
  background: transparent;
}

.advisor-progress-dialog .metric-checkbox__box {
  width: 14px;
  height: 14px;
  border-radius: 3px;
  border: 1.5px solid rgba(255, 255, 255, 0.25);
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.18s ease;
  flex-shrink: 0;
}

.advisor-progress-dialog .metric-checkbox__box svg {
  width: 9px;
  height: 9px;
  animation: checkIn 0.15s ease-out;
}

@keyframes checkIn {
  from {
    transform: scale(0);
    opacity: 0;
  }
  to {
    transform: scale(1);
    opacity: 1;
  }
}
.advisor-progress-dialog .metric-checkbox__dot {
  width: 7px;
  height: 7px;
  border-radius: 999px;
  flex-shrink: 0;
}

.advisor-progress-dialog .metric-checkbox__label {
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.4);
  white-space: nowrap;
  transition: color 0.18s;
}

.advisor-progress-dialog .metric-checkbox--active .metric-checkbox__label {
  color: rgba(255, 255, 255, 0.88);
}

/* Hide apexcharts built-in legend (we use our own) */
.advisor-progress-dialog .apexcharts-legend {
  display: none !important;
}

.advisor-progress-dialog .performance-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.advisor-progress-dialog .performance-title {
  font-size: 16px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.96);
  letter-spacing: -0.02em;
}

.advisor-progress-dialog .period-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.04);
}

.advisor-progress-dialog .toggle-pill {
  border: 1px solid transparent;
  background: transparent;
  color: rgba(255, 255, 255, 0.72);
  border-radius: 999px;
  padding: 8px 14px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.01em;
  transition: all 0.2s ease;
}

.advisor-progress-dialog .toggle-pill:hover {
  color: rgba(255, 255, 255, 0.95);
  background: rgba(255, 255, 255, 0.06);
}

.advisor-progress-dialog .toggle-pill.is-active {
  color: #ffffff;
  background: rgba(255, 140, 80, 0.16);
  border-color: rgba(255, 140, 80, 0.28);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.advisor-progress-dialog .metrics-grid-v2 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.advisor-progress-dialog .gauge-card {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  min-height: 172px;
  padding: 18px;
  border-radius: 22px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 14px 36px rgba(0, 0, 0, 0.18);
}

.advisor-progress-dialog .gauge-card--primary {
  border-color: rgba(255, 140, 80, 0.16);
  background: radial-gradient(circle at top right, rgba(255, 140, 80, 0.14), transparent 44%), linear-gradient(155deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.02));
}

.advisor-progress-dialog .gauge-visual {
  position: relative;
  width: 112px;
  height: 112px;
}

.advisor-progress-dialog .gauge-svg {
  width: 112px;
  height: 112px;
}

.advisor-progress-dialog .gauge-progress-arc {
  transition: stroke-dasharray 0.28s ease, stroke 0.28s ease;
}

.advisor-progress-dialog .gauge-center {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  text-align: center;
}

.advisor-progress-dialog .gauge-value {
  font-size: 24px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.98);
  line-height: 1;
}

.advisor-progress-dialog .gauge-percent {
  font-size: 12px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.56);
}

.advisor-progress-dialog .gauge-info {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

.advisor-progress-dialog .gauge-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.96);
}

.advisor-progress-dialog .gauge-icon {
  font-size: 16px;
  line-height: 1;
}

.advisor-progress-dialog .gauge-goal {
  font-size: 12px;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.62);
}

.advisor-progress-dialog .gauge-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  align-self: flex-start;
  border-radius: 999px;
  padding: 7px 10px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.05);
  color: rgba(255, 255, 255, 0.84);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.advisor-progress-dialog .status-indicator {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: currentColor;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.05);
}

.advisor-progress-dialog .gauge-status[data-status=ahead] {
  color: #28e4be;
  border-color: rgba(40, 228, 190, 0.22);
  background: rgba(40, 228, 190, 0.1);
}

.advisor-progress-dialog .gauge-status[data-status=on-track] {
  color: #ffb36b;
  border-color: rgba(255, 179, 107, 0.22);
  background: rgba(255, 179, 107, 0.1);
}

.advisor-progress-dialog .gauge-status[data-status=behind] {
  color: #ff7e7e;
  border-color: rgba(255, 126, 126, 0.24);
  background: rgba(255, 126, 126, 0.1);
}

.advisor-progress-dialog .gauge-status[data-status=not-started] {
  color: rgba(255, 255, 255, 0.54);
  border-color: rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.04);
}

.advisor-progress-dialog .blurred-state .performance-toolbar,
.advisor-progress-dialog .blurred-state .metrics-grid-v2 {
  filter: blur(4px);
  opacity: 0.34;
  pointer-events: none;
  -webkit-user-select: none;
          user-select: none;
}

.advisor-progress-dialog .goals-needed-overlay {
  position: absolute;
  inset: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(20, 14, 12, 0.68);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.advisor-progress-dialog .glass-modal-footer.ui-modal__footer {
  flex: 0 0 auto;
}

.advisor-progress-dialog .goals-message-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  text-align: center;
}

.advisor-progress-dialog .goals-message-content h3 {
  margin: 0;
  font-size: 20px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.98);
}

.advisor-progress-dialog .goals-message-content p {
  margin: 0;
  max-width: 280px;
  color: rgba(255, 255, 255, 0.68);
}

.advisor-progress-dialog .chart-skeleton,
.advisor-progress-dialog .gauge-card--skeleton {
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
}

.advisor-progress-dialog .chart-skeleton {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 16px;
  padding: 16px;
}

.advisor-progress-dialog .skeleton-line,
.advisor-progress-dialog .skeleton-ring,
.advisor-progress-dialog .skeleton-text,
.advisor-progress-dialog .skeleton-pill {
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.06));
  background-size: 220% 100%;
  animation: advisor-progress-shimmer 1.4s ease-in-out infinite;
}

.advisor-progress-dialog .skeleton-line {
  height: 14px;
  border-radius: 999px;
}

.advisor-progress-dialog .skeleton-line--wide {
  width: 76%;
}

.advisor-progress-dialog .skeleton-line--narrow {
  width: 44%;
}

.advisor-progress-dialog .gauge-card--skeleton {
  grid-template-columns: 112px minmax(0, 1fr);
}

.advisor-progress-dialog .skeleton-ring {
  width: 96px;
  height: 96px;
  border-radius: 999px;
}

.advisor-progress-dialog .skeleton-text {
  height: 12px;
  border-radius: 999px;
}

.advisor-progress-dialog .skeleton-text--title {
  width: 72%;
}

.advisor-progress-dialog .skeleton-text--subtitle {
  width: 56%;
}

.advisor-progress-dialog .skeleton-pill {
  width: 92px;
  height: 28px;
  border-radius: 999px;
}

@keyframes advisor-progress-shimmer {
  0% {
    background-position: 100% 0;
  }
  100% {
    background-position: -100% 0;
  }
}
@media (max-width: 1024px) {
  .advisor-progress-dialog .metrics-grid-v2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 768px) {
  body .cdk-overlay-pane.advisor-progress-dialog-panel {
    width: min(100vw - var(--ui-space-5), 1100px) !important;
    max-width: min(100vw - var(--ui-space-5), 1100px) !important;
    height: min(92vh, 100vh - var(--ui-space-5)) !important;
    max-height: min(92vh, 100vh - var(--ui-space-5)) !important;
  }
  @supports (height: 100dvh) {
    body .cdk-overlay-pane.advisor-progress-dialog-panel {
      height: min(92dvh, 100dvh - var(--ui-space-5)) !important;
      max-height: min(92dvh, 100dvh - var(--ui-space-5)) !important;
    }
  }
  .advisor-progress-dialog__header-content,
  .advisor-progress-dialog__header-actions {
    width: 100%;
    flex-wrap: wrap;
  }
  .advisor-progress-dialog .advisor-meta {
    align-items: flex-start;
    text-align: left;
  }
  .advisor-progress-dialog .performance-toolbar {
    flex-direction: column;
    align-items: stretch;
  }
  .advisor-progress-dialog .metrics-grid-v2 {
    grid-template-columns: minmax(0, 1fr);
  }
  .advisor-progress-dialog__chart-card {
    min-height: 420px;
  }
  .advisor-progress-dialog .chart-card__body,
  .advisor-progress-dialog .chart-card__body apx-chart,
  .advisor-progress-dialog .chart-card__body .chart-skeleton {
    min-height: 320px;
  }
  .advisor-progress-dialog .gauge-card,
  .advisor-progress-dialog .gauge-card--skeleton {
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    text-align: center;
  }
  .advisor-progress-dialog .gauge-info {
    align-items: center;
  }
  .advisor-progress-dialog .gauge-status {
    align-self: center;
  }
}
/* ==========================================================================
   PAYMENT LINK ACTION SHEET
   ==========================================================================
   Contract for: PaymentLinkSheetComponent
   Selector ownership: .pls-sheet, .pls-sheet__*, .pls-dialog
   Uses CSS custom properties from tokens.scss (no @use needed).
   ========================================================================== */
/* ── Dialog override ─────────────────────────────────────────────── */
.pls-dialog .mat-mdc-dialog-container {
  background: transparent !important;
  padding: 0 !important;
  box-shadow: none !important;
}
.pls-dialog .mdc-dialog__surface {
  background: transparent !important;
  box-shadow: none !important;
}

/* ── Sheet container ─────────────────────────────────────────────── */
.pls-sheet {
  background: rgba(18, 18, 24, 0.92);
  backdrop-filter: blur(24px);
  border-radius: var(--ui-radius-2xl, 16px);
  border: 1px solid rgba(255, 255, 255, 0.06);
  padding: var(--ui-space-6, 24px);
  text-align: center;
  position: relative;
}

/* ── Header ──────────────────────────────────────────────────────── */
.pls-sheet__header {
  margin-bottom: var(--ui-space-4, 16px);
}

.pls-sheet__icon-wrap {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: rgba(255, 120, 79, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto var(--ui-space-3, 12px);
}

.pls-sheet__icon {
  font-size: 28px;
  width: 28px;
  height: 28px;
  color: var(--ui-accent, #ff784f);
}

.pls-sheet__title {
  font-size: var(--ui-text-lg, 18px);
  font-weight: 600;
  color: var(--ui-text-primary, #f0f0f0);
  margin: 0 0 var(--ui-space-1, 4px);
}

.pls-sheet__subtitle {
  font-size: var(--ui-text-sm, 13px);
  color: var(--ui-text-muted, #8b8b9a);
  margin: 0;
}

.pls-sheet__close {
  position: absolute;
  top: var(--ui-space-3, 12px);
  right: var(--ui-space-3, 12px);
  background: none;
  border: none;
  color: var(--ui-text-muted, #8b8b9a);
  cursor: pointer;
  padding: var(--ui-space-1, 4px);
  border-radius: var(--ui-radius-sm, 6px);
  transition: background 0.15s ease;
}
.pls-sheet__close:hover {
  background: rgba(255, 255, 255, 0.06);
  color: var(--ui-text-primary, #f0f0f0);
}

/* ── Link URL box ────────────────────────────────────────────────── */
.pls-sheet__link-box {
  background: rgba(0, 0, 0, 0.25);
  border-radius: var(--ui-radius-md, 8px);
  padding: var(--ui-space-2, 8px) var(--ui-space-3, 12px);
  margin-bottom: var(--ui-space-4, 16px);
  border: 1px solid rgba(255, 255, 255, 0.04);
  overflow: hidden;
}

.pls-sheet__link-url {
  font-size: var(--ui-text-xs, 12px);
  color: var(--ui-accent, #ff784f);
  word-break: break-all;
  font-family: var(--ui-font-mono);
  letter-spacing: 0.2px;
}

/* ── Action buttons ──────────────────────────────────────────────── */
.pls-sheet__actions {
  display: flex;
  gap: var(--ui-space-2, 8px);
  margin-bottom: var(--ui-space-3, 12px);
}

.pls-sheet__action {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ui-space-1, 4px);
  padding: var(--ui-space-3, 12px) var(--ui-space-2, 8px);
  border-radius: var(--ui-radius-lg, 12px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
  color: var(--ui-text-primary, #f0f0f0);
  cursor: pointer;
  transition: all 0.2s ease;
  font-size: var(--ui-text-xs, 12px);
  font-weight: 500;
}
.pls-sheet__action .mat-icon {
  font-size: 22px;
  width: 22px;
  height: 22px;
}
.pls-sheet__action:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.12);
  transform: translateY(-1px);
}
.pls-sheet__action:active {
  transform: translateY(0);
}

/* Copy button — primary accent */
.pls-sheet__action--copy {
  border-color: rgba(255, 120, 79, 0.2);
  background: rgba(255, 120, 79, 0.06);
}
.pls-sheet__action--copy .mat-icon {
  color: var(--ui-accent, #ff784f);
}
.pls-sheet__action--copy:hover {
  background: rgba(255, 120, 79, 0.12);
  border-color: rgba(255, 120, 79, 0.3);
}

.pls-sheet__action--copied {
  border-color: rgba(76, 175, 80, 0.3) !important;
  background: rgba(76, 175, 80, 0.08) !important;
}
.pls-sheet__action--copied .mat-icon {
  color: #4caf50 !important;
}

/* WhatsApp — brand green */
.pls-sheet__action--whatsapp .mat-icon {
  color: #25D366;
}
.pls-sheet__action--whatsapp:hover {
  background: rgba(37, 211, 102, 0.08);
  border-color: rgba(37, 211, 102, 0.2);
}

/* SMS — blue */
.pls-sheet__action--sms .mat-icon {
  color: #42a5f5;
}
.pls-sheet__action--sms:hover {
  background: rgba(66, 165, 245, 0.08);
  border-color: rgba(66, 165, 245, 0.2);
}

/* ── Hint text ───────────────────────────────────────────────────── */
.pls-sheet__hint {
  font-size: var(--ui-text-xs, 12px);
  color: rgba(139, 139, 154, 0.6);
  margin: 0;
}

/* ── Sent State Feedback ─────────────────────────────────────────── */
.pls-sheet__icon-wrap--sent {
  background: rgba(76, 175, 80, 0.15);
  animation: pls-pulse 0.4s ease;
}

.pls-sheet__icon-wrap--sent .pls-sheet__icon {
  color: #4caf50;
}

.pls-sheet__sent-via {
  font-size: var(--ui-text-xs, 12px);
  color: #4caf50;
  margin: var(--ui-space-1, 4px) 0 0;
  font-weight: 500;
}

/* ── Link Badge (reused link) ────────────────────────────────────── */
.pls-sheet__link-badge {
  display: inline-block;
  margin-top: var(--ui-space-1, 4px);
  font-size: 10px;
  color: rgba(139, 139, 154, 0.7);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-weight: 600;
}

/* ── Action Sent State ───────────────────────────────────────────── */
.pls-sheet__action--sent {
  border-color: rgba(76, 175, 80, 0.3) !important;
  background: rgba(76, 175, 80, 0.08) !important;
}
.pls-sheet__action--sent .mat-icon {
  color: #4caf50 !important;
}

/* ── Pulse animation ─────────────────────────────────────────────── */
@keyframes pls-pulse {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.08);
  }
  100% {
    transform: scale(1);
  }
}
/* ==========================================================================
   Monthly Attendance Overview Modal
   Owner: src/ui/modals/monthly-attendance-overview.scss
   ========================================================================== */
.monthly-overview-modal,
.monthly-overview-drawer-overlay {
  --attendance-surface: var(--ui-surface-1);
  --attendance-surface-raised: var(--ui-surface-2);
  --attendance-surface-soft: color-mix(in srgb, var(--ui-surface-1) 70%, transparent);
  --attendance-surface-wash: color-mix(in srgb, var(--ui-surface-1) 45%, transparent);
  --attendance-present: var(--ui-success);
  --attendance-present-bg: var(--ui-success-bg);
  --attendance-present-border: var(--ui-success-border);
  --attendance-absent: var(--ui-danger);
  --attendance-absent-bg: var(--ui-danger-bg);
  --attendance-absent-border: var(--ui-danger-border);
  --attendance-halfday: var(--ui-warning);
  --attendance-halfday-bg: var(--ui-warning-bg);
  --attendance-halfday-border: var(--ui-warning-border);
  --attendance-leave: var(--ui-info);
  --attendance-leave-bg: var(--ui-info-bg);
  --attendance-leave-border: var(--ui-info-border);
  --attendance-holiday: var(--ui-brand-light);
  --attendance-holiday-bg: var(--ui-table-accent-bg);
  --attendance-holiday-border: var(--ui-table-accent-border);
  --attendance-muted-bg: var(--ui-surface-1);
  --attendance-glass-blur: var(--ui-blur-lg) saturate(140%);
  --attendance-sticky-surface: linear-gradient(
    150deg,
    var(--ui-surface-2),
    var(--ui-surface-1)
  );
  --attendance-sticky-surface-strong: linear-gradient(
    150deg,
    var(--ui-surface-3),
    var(--ui-surface-2)
  );
  --attendance-sticky-blur: var(--ui-blur-xl) saturate(170%);
  --attendance-stat-width: 52px;
}

.monthly-overview-modal {
  display: flex;
  flex-direction: column;
  height: 100%;
  max-height: 100%;
  overflow: hidden;
}

.monthly-overview-header.glass-modal-header {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  padding: 0;
  background: linear-gradient(180deg, var(--attendance-surface-raised), var(--attendance-surface));
  border-bottom: 1px solid var(--ui-border);
  backdrop-filter: var(--attendance-glass-blur);
  -webkit-backdrop-filter: var(--attendance-glass-blur);
}

.monthly-overview-header__main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: var(--ui-space-4);
  padding: var(--ui-space-5) var(--ui-space-6) var(--ui-space-4);
}

.monthly-overview-header .header-left {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  min-width: 0;
}

.monthly-overview-header .header-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  font-size: 24px;
  color: var(--ui-brand-light);
  background: var(--ui-table-accent-bg);
  border: 1px solid var(--ui-table-accent-border);
  border-radius: var(--ui-radius-md);
}

.monthly-overview-header .glass-modal-title {
  margin: 0;
  color: var(--ui-text-primary);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-semibold);
  line-height: 1.2;
}

.monthly-overview-header .header-subtitle {
  margin: var(--ui-space-1) 0 0;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  line-height: 1.35;
}

.month-navigator {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  min-width: 300px;
  padding: var(--ui-space-1);
  background: var(--attendance-surface-raised);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  backdrop-filter: var(--attendance-glass-blur);
  -webkit-backdrop-filter: var(--attendance-glass-blur);
}

.month-navigator .nav-btn,
.monthly-overview-header .close-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  color: var(--ui-text-secondary);
  background: var(--attendance-surface);
  border-radius: var(--ui-radius-full);
  cursor: pointer;
  transition: background var(--ui-transition-fast), color var(--ui-transition-fast);
}

.month-navigator .nav-btn {
  width: 38px;
  height: 38px;
}

.monthly-overview-header .close-btn {
  width: 40px;
  height: 40px;
}

.month-navigator .nav-btn:hover:not(:disabled),
.monthly-overview-header .close-btn:hover {
  color: var(--ui-text-primary);
  background: var(--ui-surface-hover);
}

.month-navigator .nav-btn:disabled {
  color: var(--ui-text-disabled);
  cursor: default;
}

.month-navigator mat-icon,
.monthly-overview-header .close-btn mat-icon {
  width: 20px;
  height: 20px;
  font-size: 20px;
}

.month-label {
  flex: 1;
  color: var(--ui-text-primary);
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  text-align: center;
  line-height: 1;
}

.monthly-overview-header__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-4);
  padding: var(--ui-space-3) var(--ui-space-6);
  background: linear-gradient(90deg, var(--attendance-surface), var(--attendance-surface-wash));
  border-top: 1px solid var(--ui-border-light);
  backdrop-filter: var(--attendance-glass-blur);
  -webkit-backdrop-filter: var(--attendance-glass-blur);
}

.monthly-overview-header__meta .calendar-context {
  flex: 1 1 auto;
  min-width: 260px;
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-medium);
}

.attendance-status-key {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.attendance-status-key__item {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  min-height: 28px;
  padding: 0 var(--ui-space-2);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  background: var(--attendance-surface);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-full);
  backdrop-filter: var(--ui-blur-sm);
  -webkit-backdrop-filter: var(--ui-blur-sm);
}

.attendance-status-key__swatch {
  width: 10px;
  height: 10px;
  border-radius: var(--ui-radius-sm);
  border: 1px solid currentColor;
}

.monthly-overview-body.glass-modal-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  background: linear-gradient(180deg, var(--attendance-surface-soft), transparent);
}

.overview-loading,
.overview-empty {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-4);
  color: var(--ui-text-muted);
}

.overview-loading .loading-label,
.overview-empty span {
  font-size: var(--ui-text-base);
}

.overview-empty mat-icon {
  width: 56px;
  height: 56px;
  color: var(--ui-text-disabled);
  font-size: 56px;
}

.overview-grid-container {
  flex: 1;
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-color: var(--ui-surface-active) transparent;
  scrollbar-width: thin;
}

.overview-grid-container::-webkit-scrollbar,
.overview-days-scroll::-webkit-scrollbar {
  width: var(--ui-table-scrollbar-size);
  height: var(--ui-table-scrollbar-size);
}

.overview-grid-container::-webkit-scrollbar-track,
.overview-grid-container::-webkit-scrollbar-corner,
.overview-days-scroll::-webkit-scrollbar-track,
.overview-days-scroll::-webkit-scrollbar-corner {
  background: transparent;
}

.overview-grid-container::-webkit-scrollbar-thumb,
.overview-days-scroll::-webkit-scrollbar-thumb {
  background: var(--ui-surface-active);
  border-radius: var(--ui-table-scrollbar-radius);
}

.overview-grid-layout {
  display: grid;
  grid-template-columns: minmax(210px, 240px) minmax(0, 1fr) calc(var(--attendance-stat-width) * 4);
  min-width: 100%;
  align-items: start;
}

.overview-fixed-pane {
  min-width: 0;
}

.overview-employee-pane,
.overview-stats-pane {
  background: var(--attendance-sticky-surface);
  background-clip: padding-box;
  backdrop-filter: var(--attendance-sticky-blur);
  -webkit-backdrop-filter: var(--attendance-sticky-blur);
}

.overview-employee-pane {
  box-shadow: inset -1px 0 0 var(--ui-border);
}

.overview-stats-pane {
  box-shadow: inset 1px 0 0 var(--ui-border);
}

.overview-days-scroll {
  min-width: 0;
  overflow-x: auto;
  overflow-y: visible;
  scrollbar-color: var(--ui-surface-active) transparent;
  scrollbar-width: thin;
}

.overview-grid {
  width: max-content;
  min-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-family: var(--ui-font-primary);
}

.overview-days-grid thead,
.overview-pane-header,
.monthly-overview-modal .stats-header-row {
  position: sticky;
  top: 0;
  z-index: var(--z-header);
}

.monthly-overview-modal .emp-header,
.monthly-overview-modal .day-header,
.monthly-overview-modal .stats-header {
  height: 46px;
  color: var(--ui-table-header-color);
  font-size: var(--ui-table-header-font);
  font-weight: var(--ui-table-header-weight);
  text-transform: uppercase;
  vertical-align: middle;
  background: var(--attendance-surface-raised);
  border-bottom: 1px solid var(--ui-border);
  backdrop-filter: var(--attendance-glass-blur);
  -webkit-backdrop-filter: var(--attendance-glass-blur);
}

.emp-header {
  display: flex;
  align-items: center;
  height: 46px;
  padding: 0 var(--ui-space-4);
  text-align: left;
  letter-spacing: var(--ui-table-header-spacing);
  background: var(--attendance-sticky-surface-strong);
  backdrop-filter: var(--attendance-sticky-blur);
  -webkit-backdrop-filter: var(--attendance-sticky-blur);
}

.day-header {
  min-width: 44px;
  padding: var(--ui-space-2) var(--ui-space-1);
  text-align: center;
  border-left: 1px solid var(--ui-border-light);
}

.day-header .day-num,
.day-header .day-name {
  display: block;
  line-height: 1.2;
}

.day-header .day-num {
  color: var(--ui-text-primary);
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
}

.day-header .day-name {
  margin-top: 2px;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
}

.day-header.weekend-header,
.weekend-col {
  background: var(--attendance-surface);
}

.day-header.weekend-header .day-num {
  color: var(--ui-text-muted);
}

.day-header.today-header,
.today-col {
  background: var(--ui-table-accent-bg);
}

.day-header.today-header .day-num {
  color: var(--ui-brand-light);
}

.day-header.holiday-header,
.holiday-col {
  background: var(--attendance-holiday-bg);
}

.day-header.holiday-header .day-num {
  color: var(--attendance-holiday);
}

.overview-grid tbody tr {
  transition: background var(--ui-transition-fast);
}

.overview-grid tbody tr:hover {
  background: var(--ui-table-row-hover);
}

.emp-cell {
  display: flex;
  align-items: center;
  height: 56px;
  padding: 0 var(--ui-space-4);
  border-bottom: 1px solid var(--ui-table-row-border);
}

.emp-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.emp-name {
  max-width: 190px;
  overflow: hidden;
  color: var(--ui-text-primary);
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-medium);
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.emp-code {
  color: var(--ui-text-muted);
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-sm);
  line-height: 1.2;
}

.day-cell {
  min-width: 44px;
  height: 56px;
  padding: var(--ui-space-1);
  text-align: center;
  vertical-align: middle;
  border-bottom: 1px solid var(--ui-table-row-border);
  border-left: 1px solid var(--ui-border-light);
}

.cell-text {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  line-height: 1;
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-sm);
  transition: transform var(--ui-transition-fast), border-color var(--ui-transition-fast);
}

.cell-present .cell-text,
.attendance-status-key__swatch.cell-present {
  color: var(--attendance-present);
  background: var(--attendance-present-bg);
  border-color: var(--attendance-present-border);
}

.cell-absent .cell-text,
.attendance-status-key__swatch.cell-absent {
  color: var(--attendance-absent);
  background: var(--attendance-absent-bg);
  border-color: var(--attendance-absent-border);
}

.cell-halfday .cell-text,
.attendance-status-key__swatch.cell-halfday {
  color: var(--attendance-halfday);
  background: var(--attendance-halfday-bg);
  border-color: var(--attendance-halfday-border);
}

.cell-leave .cell-text,
.attendance-status-key__swatch.cell-leave {
  color: var(--attendance-leave);
  background: var(--attendance-leave-bg);
  border-color: var(--attendance-leave-border);
}

.cell-weekoff .cell-text,
.attendance-status-key__swatch.cell-weekoff {
  color: var(--ui-text-muted);
  background: var(--attendance-muted-bg);
  border-color: var(--ui-border-hover);
}

.cell-holiday .cell-text,
.attendance-status-key__swatch.cell-holiday {
  color: var(--attendance-holiday);
  background: var(--attendance-holiday-bg);
  border-color: var(--attendance-holiday-border);
}

.cell-incomplete .cell-text {
  color: var(--attendance-halfday);
  background: var(--attendance-halfday-bg);
  border-color: var(--attendance-halfday-border);
}

.cell-empty .cell-text {
  color: var(--ui-text-disabled);
  background: transparent;
  border-color: var(--ui-border-light);
}

/* ── Anomaly: Shared Device (fraud) ─────────────────────────────── */
.cell-anomaly-fraud {
  position: relative;
}

.cell-anomaly-fraud .cell-text {
  outline: 2px solid #f97316;
  outline-offset: 1px;
}

/* Pulsing dot in top-right corner */
.cell-anomaly-fraud::after {
  content: "";
  position: absolute;
  top: 4px;
  right: 4px;
  width: 6px;
  height: 6px;
  background: #f97316;
  border-radius: 50%;
  animation: anomaly-pulse 1.8s ease-in-out infinite;
  pointer-events: none;
}

/* Swatch for legend */
.attendance-status-key__swatch.cell-anomaly-fraud {
  outline: 2px solid #f97316;
  outline-offset: 1px;
  background: rgba(249, 115, 22, 0.15);
  border-color: #f97316;
}

/* ── Anomaly: Device Changed ─────────────────────────────────────── */
.cell-anomaly-device {
  position: relative;
}

.cell-anomaly-device .cell-text {
  outline: 2px solid #eab308;
  outline-offset: 1px;
}

.cell-anomaly-device::after {
  content: "";
  position: absolute;
  top: 4px;
  right: 4px;
  width: 6px;
  height: 6px;
  background: #eab308;
  border-radius: 50%;
  pointer-events: none;
}

.attendance-status-key__swatch.cell-anomaly-device {
  outline: 2px solid #eab308;
  outline-offset: 1px;
  background: rgba(234, 179, 8, 0.15);
  border-color: #eab308;
}

@keyframes anomaly-pulse {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.4;
    transform: scale(0.7);
  }
}
.monthly-overview-modal .stats-header,
.monthly-overview-modal .stats-cell {
  min-width: var(--attendance-stat-width);
  text-align: center;
  border-bottom: 1px solid var(--ui-table-row-border);
  border-left: 1px solid var(--ui-border);
}

.monthly-overview-modal .stats-header-row,
.monthly-overview-modal .stats-row {
  display: grid;
  grid-template-columns: repeat(4, var(--attendance-stat-width));
}

.monthly-overview-modal .stats-header,
.monthly-overview-modal .stats-cell {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 var(--ui-space-2);
}

.monthly-overview-modal .stats-cell {
  height: 56px;
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-bold);
}

.stat-p,
.stat-p-val {
  color: var(--attendance-present);
}

.stat-a,
.stat-a-val {
  color: var(--attendance-absent);
}

.stat-h,
.stat-h-val {
  color: var(--attendance-halfday);
}

.stat-l,
.stat-l-val {
  color: var(--attendance-leave);
}

@media (max-width: 900px) {
  .monthly-overview-header__main {
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .month-navigator {
    grid-column: 1/-1;
    grid-row: 2;
    width: 100%;
    min-width: 0;
  }
  .monthly-overview-header .close-btn {
    grid-column: 2;
    grid-row: 1;
  }
  .monthly-overview-header__meta {
    align-items: flex-start;
    flex-direction: column;
  }
  .attendance-status-key {
    justify-content: flex-start;
  }
}
/* ==========================================================================
   Clickable cell affordance
   ========================================================================== */
.monthly-overview-modal .day-cell.cell-clickable {
  cursor: pointer;
}

/* ==========================================================================
   Punch Photo Drawer
   Uses the stock drawer contract: stock-drawer-overlay + glass-sidenav +
   glass-drawer.drawer-hosted. The overlay is intentionally viewport-fixed so
   the punch drawer is page-level, not clipped to the attendance modal.
   ========================================================================== */
.monthly-overview-drawer-overlay.stock-drawer-overlay.mat-drawer-container {
  position: fixed !important;
  inset: 0 !important;
  z-index: var(--z-modal-dropdown);
  pointer-events: none;
  background: transparent !important;
}

.monthly-overview-drawer-overlay.stock-drawer-overlay.mat-drawer-container-has-open {
  pointer-events: auto;
}

.monthly-overview-drawer-overlay .mat-drawer-backdrop {
  pointer-events: auto;
}

.monthly-overview-drawer-overlay.stock-drawer-overlay.mat-drawer-container:has(.monthly-overview-sidenav) .mat-drawer-backdrop.mat-drawer-shown {
  position: fixed !important;
  inset: 0 !important;
  z-index: var(--z-drawer-backdrop) !important;
  background: rgba(8, 8, 8, 0.55) !important;
  backdrop-filter: blur(12px) saturate(140%) !important;
  -webkit-backdrop-filter: blur(12px) saturate(140%) !important;
}

.monthly-overview-drawer-overlay.stock-drawer-overlay.mat-drawer-container:has(.monthly-overview-sidenav) .mat-drawer.glass-sidenav.monthly-overview-sidenav {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: auto !important;
  width: 640px !important;
  max-width: 94vw !important;
  height: 100vh !important;
  max-height: 100vh !important;
  z-index: var(--z-drawer-panel) !important;
}

@supports (height: 100dvh) {
  .monthly-overview-drawer-overlay.stock-drawer-overlay.mat-drawer-container:has(.monthly-overview-sidenav) .mat-drawer.glass-sidenav.monthly-overview-sidenav {
    height: 100dvh !important;
    max-height: 100dvh !important;
  }
}
.monthly-punch-drawer__header.glass-drawer-header {
  justify-content: flex-start;
  gap: var(--ui-space-3);
}

.monthly-punch-drawer__title-block {
  flex: 1 1 auto;
}

.monthly-punch-drawer__title-block .drawer-item-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.monthly-punch-drawer__title-block .drawer-item-meta {
  color: rgba(255, 255, 255, 0.45);
}

.monthly-punch-drawer__body.glass-drawer-body {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-3);
}

.monthly-punch-drawer__status-section.drawer-section {
  margin-bottom: 0;
  padding: var(--ui-space-3) var(--ui-space-4);
}

.ppp-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  border: 1px solid currentColor;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.ppp-badge-present {
  color: var(--attendance-present);
  background: var(--attendance-present-bg);
  border-color: var(--attendance-present-border);
}

.ppp-badge-absent {
  color: var(--attendance-absent);
  background: var(--attendance-absent-bg);
  border-color: var(--attendance-absent-border);
}

.ppp-badge-half_day {
  color: var(--attendance-halfday);
  background: var(--attendance-halfday-bg);
  border-color: var(--attendance-halfday-border);
}

.ppp-badge-paid_leave,
.ppp-badge-unpaid_leave {
  color: var(--attendance-leave);
  background: var(--attendance-leave-bg);
  border-color: var(--attendance-leave-border);
}

.ppp-badge-incomplete {
  color: var(--attendance-halfday);
  background: var(--attendance-halfday-bg);
  border-color: var(--attendance-halfday-border);
}

.ppp-photos-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--ui-space-3);
}

.ppp-photo-card.drawer-section {
  margin-bottom: 0;
}

.drawer-section .section-header.ppp-photo-label {
  align-items: center;
  margin-bottom: var(--ui-space-3);
}

.drawer-section .section-header.ppp-photo-label .ppp-time,
.drawer-section .section-header.ppp-photo-label .ppp-time-none {
  margin-left: auto;
  color: rgba(255, 255, 255, 0.9);
  font-family: var(--ui-font-mono);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: none;
}

.drawer-section .section-header.ppp-photo-label .ppp-time-none {
  color: rgba(255, 255, 255, 0.25);
}

.ppp-photo-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 3/4;
  background: rgba(0, 0, 0, 0.3);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 10px;
  overflow: hidden;
}

.ppp-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.ppp-photo-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  height: 100%;
  color: rgba(255, 255, 255, 0.2);
  font-size: 11px;
  font-weight: 500;
  text-align: center;
  padding: 12px;
}

.ppp-photo-empty mat-icon {
  width: 36px;
  height: 36px;
  font-size: 36px;
  opacity: 0.3;
}

.ppp-anomaly-section.drawer-section {
  margin-bottom: 0;
}

.ppp-anomaly-row {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.ppp-anomaly {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 12px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
}

.ppp-anomaly mat-icon {
  width: 18px;
  height: 18px;
  font-size: 18px;
  flex-shrink: 0;
  margin-top: 1px;
}

.ppp-anomaly-fraud {
  color: #f97316;
  background: rgba(249, 115, 22, 0.1);
  border: 1px solid rgba(249, 115, 22, 0.25);
}

.ppp-anomaly-device {
  color: #eab308;
  background: rgba(234, 179, 8, 0.1);
  border: 1px solid rgba(234, 179, 8, 0.25);
}

@media (max-width: 640px) {
  .ppp-photos-grid {
    grid-template-columns: 1fr;
  }
}
/* ==========================================================================
   RECEIVE STOCK MODAL
   ==========================================================================
   Owner: src/ui/modals/receive-stock.scss
   Scoped under: .receive-stock-modal
   ========================================================================== */
.cdk-overlay-pane.receive-stock-dialog-panel {
  width: min(1180px, 96vw) !important;
  max-width: 96vw !important;
}

.receive-stock-modal {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-height: min(78vh, 720px);
  overflow: hidden;
}

.receive-stock-modal__header {
  padding: var(--ui-space-4) var(--ui-space-5);
}

.receive-stock-modal__header .dialog-icon {
  color: var(--ui-success);
}

.receive-stock-modal__body {
  padding: 0;
  max-height: none;
  overflow: hidden;
}

.receive-stock-modal__table-wrap {
  box-sizing: border-box;
  width: 100%;
  max-height: min(58vh, 520px);
  overflow-x: hidden;
  overflow-y: auto;
  padding: 0 var(--ui-space-5) var(--ui-space-2);
}

.receive-stock-modal__table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
}

.receive-stock-modal__table th,
.receive-stock-modal__table td {
  border-bottom: 1px solid var(--ui-border-light);
  vertical-align: middle;
}

.receive-stock-modal__table th {
  position: sticky;
  top: 0;
  z-index: var(--z-base);
  padding: var(--ui-space-3) var(--ui-space-2);
  background: var(--ui-glass-dark);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0;
  text-align: left;
  text-transform: uppercase;
}

.receive-stock-modal__table td {
  height: 58px;
  padding: var(--ui-space-3) var(--ui-space-2);
  color: var(--ui-text-secondary);
}

.receive-stock-modal__table th:first-child,
.receive-stock-modal__table td:first-child {
  width: 32%;
  padding-left: var(--ui-space-4);
}

.receive-stock-modal__table th:nth-child(2),
.receive-stock-modal__table td:nth-child(2) {
  width: 17%;
}

.receive-stock-modal__number-col {
  width: 11%;
  text-align: center;
}

.receive-stock-modal__input-col {
  width: 18%;
  text-align: right;
}

.receive-stock-modal__item-name {
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-semibold);
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.receive-stock-modal__part-no {
  color: var(--ui-text-subtle);
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-sm);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.receive-stock-modal__zero {
  color: var(--ui-success);
  font-weight: var(--ui-font-semibold);
}

.receive-stock-modal__row--complete td {
  color: var(--ui-text-disabled);
}

.receive-stock-modal__input {
  width: 88px;
  height: 38px;
  border: 1px solid var(--ui-border-hover);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface-2);
  color: var(--ui-text-primary);
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-medium);
  text-align: center;
  outline: none;
  transition: border-color var(--ui-transition-base), background var(--ui-transition-base);
}

.receive-stock-modal__input:focus {
  border-color: var(--ui-success-border);
  background: var(--ui-surface-3);
}

.receive-stock-modal__input:disabled {
  color: var(--ui-text-disabled);
  cursor: not-allowed;
}

.receive-stock-modal__footer {
  padding: var(--ui-space-4) var(--ui-space-5);
}

.receive-stock-modal__fill-btn {
  border-radius: var(--ui-radius-md);
}

.receive-stock-modal__submit-btn mat-spinner {
  width: 18px;
  height: 18px;
}

@media (max-width: 720px) {
  .receive-stock-modal {
    max-height: 84vh;
  }
  .receive-stock-modal__header,
  .receive-stock-modal__footer {
    padding-right: var(--ui-space-4);
    padding-left: var(--ui-space-4);
  }
  .receive-stock-modal__table-wrap {
    padding-right: var(--ui-space-4);
    padding-left: var(--ui-space-4);
  }
  .receive-stock-modal__footer {
    align-items: stretch;
    flex-direction: column;
  }
  .receive-stock-modal__footer .footer-left,
  .receive-stock-modal__footer .footer-right {
    width: 100%;
    margin: 0;
  }
  .receive-stock-modal__footer .footer-left button,
  .receive-stock-modal__footer .footer-right button {
    flex: 1;
  }
}
/* ==========================================================================
   5. HEADERS & STATS
   ========================================================================== */
/* ==========================================================================
   UI PAGE HEADER - Unified Page Header Styles
   ==========================================================================
   Provides consistent page header styling with filters bar, search, and actions.

   Structure:
   .ui-page-header
     .ui-page-header__filters
       .ui-page-header__search (glass-chip with search)
       .ui-page-header__metrics (revenue/count display)
       .ui-page-header__actions (date filter, dropdowns)
   ========================================================================== */
/* ==================== MAIN CONTAINER ==================== */
.ui-page-header {
  position: relative;
  z-index: 1000;
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-3);
  margin-bottom: var(--ui-space-4);
  flex-wrap: wrap;
  overflow: visible;
}

.ui-page-header__info {
  flex: 1 1 280px;
  min-width: 0;
}

.ui-page-header__filters {
  margin-left: auto;
  min-width: 0;
  max-width: 100%;
}

.ui-page-header__filters .ui-inline {
  flex-wrap: wrap;
}

@media (max-width: 960px) {
  .ui-page-header__filters {
    width: 100%;
    margin-left: 0;
  }
}
/* Filters bar layout */
.filters-bar {
  position: relative;
  z-index: 1000;
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 32px;
  flex-wrap: wrap;
  overflow: visible;
}

/* ==================== GLASS CHIP BASE ==================== */
.glass-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 32px;
  min-height: 32px;
  padding: 0 16px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  color: rgba(255, 255, 255, 0.8);
  font-size: 13px;
  transition: all 0.2s ease;
}
.glass-chip:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
  transform: translateY(-1px);
}

/* ==================== SEARCH CHIP ==================== */
.search-chip,
.ui-page-header__search {
  flex: 0 1 320px;
  padding-right: 12px;
  overflow: hidden;
}
.search-chip .icon,
.ui-page-header__search .icon {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.6);
}
.search-chip input,
.ui-page-header__search input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.9);
  padding: 0;
}
.search-chip input::placeholder,
.ui-page-header__search input::placeholder {
  color: rgba(255, 255, 255, 0.45);
}
.search-chip .clear,
.ui-page-header__search .clear {
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.55);
  font-size: 14px;
  cursor: pointer;
  padding: 0;
  transition: color 0.2s ease;
}
.search-chip .clear:hover,
.ui-page-header__search .clear:hover {
  color: rgba(255, 255, 255, 0.85);
}

/* Hide native search clear */
input[type=search]::-webkit-search-cancel-button {
  appearance: none;
  display: none;
}

/* ==================== METRICS CHIP ==================== */
.metrics-chip,
.ui-page-header__metrics {
  margin-left: auto;
  gap: 0;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.75);
}
.metrics-chip strong,
.ui-page-header__metrics strong {
  color: rgba(255, 255, 255, 0.9);
  font-weight: 600;
}

.metric-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

.divider {
  color: rgba(255, 255, 255, 0.36);
  -webkit-user-select: none;
          user-select: none;
  padding: 0 10px;
}

/* ==================== FILTER CHIP ==================== */
.filter-chip,
.ui-page-header__filter {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.78);
  cursor: pointer;
  white-space: nowrap;
  background: transparent;
}
.filter-chip .icon,
.ui-page-header__filter .icon {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.65);
}
.filter-chip .chevron,
.ui-page-header__filter .chevron {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.6);
  transition: transform 0.2s ease;
}
.filter-chip .chevron.rotated,
.ui-page-header__filter .chevron.rotated {
  transform: rotate(180deg);
}
.filter-chip.active,
.ui-page-header__filter.active {
  background: rgba(255, 120, 79, 0.12);
  border-color: rgba(255, 120, 79, 0.35);
  color: #ff784f;
}

/* ==================== DATE FILTER PILL ==================== */
.date-filter-pill,
.ui-page-header__date {
  display: flex;
  align-items: center;
  min-height: 32px;
}
.date-filter-pill app-date-filter,
.ui-page-header__date app-date-filter {
  display: inline-flex;
}

/* ==================== FILTER DROPDOWN ==================== */
.filter-dropdown,
.ui-page-header__dropdown {
  position: relative;
  display: inline-block;
  z-index: 200;
  overflow: visible;
}

.dropdown-menu {
  position: absolute;
  display: flex;
  flex-direction: column;
  border: none;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  padding: 0;
  margin: 0;
  border-radius: 0;
  top: calc(100% + 8px);
  left: auto;
  right: 0;
  min-width: 240px;
  max-width: 320px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  pointer-events: none;
  transition: opacity 200ms cubic-bezier(0.2, 0.8, 0.2, 1), transform 200ms cubic-bezier(0.2, 0.8, 0.2, 1), visibility 0s linear 200ms;
}
.dropdown-menu.menu-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
  transition: opacity 200ms cubic-bezier(0.2, 0.8, 0.2, 1), transform 200ms cubic-bezier(0.2, 0.8, 0.2, 1), visibility 0s linear 0s;
}

.dropdown-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 16px 10px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.5);
}
.dropdown-header .clear-btn {
  background: none;
  border: none;
  color: #ff784f;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 6px;
  transition: background 0.2s ease;
}
.dropdown-header .clear-btn:hover {
  background: rgba(255, 120, 79, 0.15);
}

.dropdown-list {
  max-height: 280px;
  overflow-y: auto;
  padding: 8px;
}
.dropdown-list::-webkit-scrollbar {
  width: 6px;
}
.dropdown-list::-webkit-scrollbar-track {
  background: transparent;
}
.dropdown-list::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.15);
  border-radius: 3px;
}
.dropdown-list::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.25);
}

.dropdown-item {
  display: flex;
  align-items: center;
  gap: 12px;
  text-align: left;
  border: none;
  width: 100%;
  margin: 0;
  background: transparent;
}
.dropdown-item.hq-item {
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  margin-bottom: 4px;
  padding-bottom: 14px;
}

.dropdown-empty {
  padding: 24px 16px;
  text-align: center;
  color: rgba(255, 255, 255, 0.45);
  font-size: 13px;
}

/* ==================== BRANCH DROPDOWN ==================== */
.branch-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.branch-name {
  font-weight: 500;
  color: rgba(255, 255, 255, 0.9);
}

.branch-type {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.branch-type.primary {
  color: #ff784f;
}

.company-avatar-small {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(255, 211, 126, 0.8), rgba(255, 120, 79, 0.9));
  color: rgba(14, 14, 16, 0.88);
  font-weight: 600;
  font-size: 12px;
  flex-shrink: 0;
}

/* ==================== PAGE HEADER (GENERIC) ==================== */
.page-header {
  border-radius: 0;
  background: transparent;
  border: none;
  padding: 0 0 24px 0;
  box-shadow: none;
  backdrop-filter: none;
  margin-bottom: 0;
  position: relative;
  z-index: 2;
}

/* Controls bar layout */
.controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
}

.spacer {
  flex: 1;
}

/* Right-aligned controls */
.right-controls {
  display: flex;
  align-items: center;
  gap: 4px;
}

/* Search input container */
.search {
  display: flex;
  align-items: center;
  border-radius: 50px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.18);
  overflow: hidden;
  backdrop-filter: blur(14px);
  transition: border 0.2s ease, box-shadow 0.2s ease;
  flex-grow: 1;
  max-width: 400px;
  position: relative;
}

.search:focus-within {
  border-color: rgba(255, 170, 80, 0.55);
  box-shadow: 0 0 0 4px rgba(255, 170, 80, 0.24);
}

.search .ico {
  background: rgba(255, 255, 255, 0.04);
  height: 40px;
  width: 40px;
  display: grid;
  place-items: center;
  color: rgba(255, 255, 255, 0.65);
  font-size: 16px;
  border-radius: 50%;
  margin-left: 4px;
}

.search input {
  background: transparent;
  border: none;
  padding: 0 16px;
  height: 40px;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.86);
  flex-grow: 1;
}

.search input::placeholder {
  color: rgba(255, 255, 255, 0.46);
}

.search input:focus {
  outline: none;
  box-shadow: none;
  background: transparent;
}

.search .clear {
  background: rgba(59, 130, 246, 0.15);
  border: 1px solid rgba(59, 130, 246, 0.3);
  color: rgb(96, 165, 250);
  font-size: 16px;
  font-weight: 600;
  padding: 0;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: all 0.2s ease;
  margin-right: 4px;
}

.search .clear:hover {
  background: rgba(59, 130, 246, 0.25);
  border-color: rgba(59, 130, 246, 0.5);
  color: rgb(147, 197, 253);
  transform: scale(1.05);
}

/* Smaller pill variant */
.pill-sm {
  transform: scale(0.925);
  transform-origin: center center;
}

/* Export button styling */
.export-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  font-size: 12px;
  min-height: 36px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  color: rgba(255, 255, 255, 0.8);
  cursor: pointer;
  transition: all 0.2s ease;
}

.export-btn:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
}

.pill-icon {
  font-size: 14px;
}

.pill-label {
  white-space: nowrap;
}

@media (max-width: 1200px) {
  .search {
    max-width: 100%;
  }
}
/* ==========================================================================
   UI HEADERS - STATS HEADER (CANONICAL CONTRACT)
   ==========================================================================
   Provides consistent stats header styling with:
   - Stats header container
   - ERP header block
   - Header card with inline stats
   - Filter bar and search
   - Stat cards row layout

   Usage:
     .stats-header or .erp-header-block as container
     .stat-cards-row for KPI cards row
     .stats-header__filters for filter bar
   ========================================================================== */
/* ==========================================================================
   1. STATS HEADER CONTAINER
   ========================================================================== */
.stats-header {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 20px;
  margin-bottom: 16px;
  overflow: hidden;
}

/* ==========================================================================
   1b. STATS HEADER BODY (Layout-only)
   ========================================================================== */
.stats-header__body {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-5);
  padding: var(--ui-space-5) var(--ui-space-6);
}

/* ==========================================================================
   2. ERP HEADER BLOCK
   ========================================================================== */
.erp-header-block {
  position: relative;
  z-index: 10;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 20px;
  margin-bottom: 16px;
  overflow: hidden;
}

/* Page Header inside ERP Header Block */
.erp-header-block .page-header {
  padding: 24px 24px 16px !important;
  border-bottom: none !important;
  background: transparent !important;
}

.erp-header-block .page-header__info {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
}

.erp-header-block .page-title {
  font-size: 26px !important;
  font-weight: 700 !important;
  color: rgba(255, 255, 255, 0.95) !important;
  margin: 0 !important;
  line-height: 1.2 !important;
}

.erp-header-block .page-subtitle {
  font-size: 14px !important;
  font-weight: 400 !important;
  color: rgba(255, 255, 255, 0.5) !important;
  margin: 0 !important;
}

/* Primary Header Row */
.erp-header-primary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 24px;
  border-bottom: none;
}

.erp-header-primary .header-left {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.erp-header-primary .header-right {
  display: flex;
  align-items: center;
  gap: 12px;
}

.erp-header-primary .erp-category {
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.5);
}

.erp-header-primary .erp-title {
  font-size: 28px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.95);
  margin: 0;
  line-height: 1.2;
}

.erp-header-primary .erp-subtitle {
  font-size: 14px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.5);
  margin: 0;
  line-height: 1.4;
}

/* Breadcrumb links inside erp-category — drill-down pages (e.g. account-ledger) */
.erp-breadcrumb-link {
  cursor: pointer;
  color: rgba(255, 150, 100, 0.85);
  text-decoration: none;
  transition: color 0.15s ease;
}
.erp-breadcrumb-link:hover {
  color: rgba(255, 200, 160, 0.95);
}

.erp-breadcrumb-sep {
  margin: 0 4px;
  color: rgba(255, 255, 255, 0.3);
}

/* Filter Bar */
.erp-filter-bar {
  position: relative;
  padding: 8px 18px;
  background: rgba(255, 255, 255, 0.04);
  border-radius: 0 0 14px 14px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.erp-filter-bar::before {
  content: "";
  position: absolute;
  top: 0;
  left: 5%;
  right: 5%;
  height: 1px;
  background: linear-gradient(to right, transparent 0%, rgba(255, 130, 90, 0.35) 30%, rgba(255, 130, 90, 0.35) 70%, transparent 100%);
  pointer-events: none;
}

.filter-row {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  flex-wrap: wrap;
}

.filter-search {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 180px;
  flex: 1;
  max-width: 260px;
  cursor: text;
}

.search-icon-sm {
  color: rgba(255, 255, 255, 0.28);
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.search-input-sm {
  background: transparent;
  border: none;
  outline: none;
  color: rgba(255, 255, 255, 0.85);
  font-size: 13px;
  width: 100%;
  height: 100%;
}

.search-input-sm::placeholder {
  color: rgba(255, 255, 255, 0.28);
}

.filter-group {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  width: fit-content;
  margin-left: auto;
}

/* Stat Cards Row inside ERP Header Block */
.erp-header-block .stat-cards-row,
.erp-header-block .stat-cards-row--compact {
  padding: 20px 24px 16px !important;
  margin: 0 !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* ==========================================================================
   3. HEADER CARD WITH INLINE STATS
   ========================================================================== */
.header-card {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 20px;
  margin-bottom: 16px;
  overflow: hidden;
}

/* Claims page uses inline absolute dropdown menus inside header filters.
   Keep this scoped so other header-card pages retain clipping behavior. */
.claims-page .header-card {
  position: relative;
  z-index: var(--z-dropdown);
  overflow: visible;
}

.claims-page .header-card__bottom,
.claims-page .filter-row,
.claims-page .filter-group,
.claims-page .filter-dropdown {
  overflow: visible;
}

.claims-page .filter-dropdown {
  z-index: var(--z-dropdown);
}

.claims-page .filter-dropdown .dropdown-menu {
  z-index: calc(var(--z-dropdown) + 1);
}

.claims-page .header-card__top .stat-cards-row--header {
  flex: 1 1 auto;
  margin-left: auto;
  justify-content: flex-end;
}

/* Inline Pill Tabs — compact tab toggle for filter bars */
.pill-tabs-inline {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 3px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  margin-left: auto;
}

.pill-tab-sm {
  padding: 5px 14px;
  border: none;
  border-radius: 999px;
  background: transparent;
  color: rgba(255, 255, 255, 0.5);
  font: inherit;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.pill-tab-sm:hover {
  color: rgba(255, 255, 255, 0.8);
  background: rgba(255, 255, 255, 0.06);
}

.pill-tab-sm.active {
  background: rgba(255, 140, 90, 0.18);
  color: rgba(255, 200, 160, 0.95);
  border: 1px solid rgba(255, 140, 90, 0.35);
}

.header-card__top {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 20px 24px;
  gap: 24px;
  flex-wrap: wrap;
}

.header-card__title-block {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 200px;
}

.header-card__category {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 150, 100, 0.9);
}

.header-card__title {
  font-size: 26px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.95);
  margin: 0;
  line-height: 1.2;
  letter-spacing: -0.01em;
}

.header-card__stats {
  display: flex;
  align-items: stretch;
  gap: 14px;
  flex-wrap: wrap;
  margin-left: auto;
}

/* Inline Header Stat */
.header-stat {
  min-width: 100px;
  padding: 10px 16px;
  border-radius: 14px;
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.1);
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.header-stat:hover {
  transform: translateY(-2px);
  border-color: rgba(255, 255, 255, 0.18);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
}

.header-stat.active {
  border-color: rgba(255, 140, 90, 0.6);
  box-shadow: 0 0 16px rgba(255, 120, 80, 0.2);
}

.header-stat__label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.6);
}

.header-stat__label mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: rgba(255, 255, 255, 0.5);
}

.header-stat__value {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 4px 14px;
  border-radius: 999px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.02em;
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

/* Header Stat Variants */
.header-stat--default {
  border-color: rgba(100, 180, 255, 0.25);
}

.header-stat--default .header-stat__label mat-icon {
  color: rgba(100, 180, 255, 0.8);
}

.header-stat--default .header-stat__value {
  background: rgba(100, 180, 255, 0.1);
  border-color: rgba(100, 180, 255, 0.25);
  color: rgba(160, 200, 255, 0.95);
}

.header-stat--success {
  border-color: rgba(120, 220, 180, 0.3);
}

.header-stat--success .header-stat__label mat-icon {
  color: rgba(120, 220, 180, 0.9);
}

.header-stat--success .header-stat__value {
  background: rgba(96, 187, 132, 0.12);
  border-color: rgba(96, 187, 132, 0.3);
  color: rgba(163, 241, 189, 0.95);
}

.header-stat--warning {
  border-color: rgba(255, 176, 131, 0.35);
}

.header-stat--warning .header-stat__label mat-icon {
  color: rgba(255, 176, 131, 0.95);
}

.header-stat--warning .header-stat__value {
  background: rgba(255, 176, 131, 0.1);
  border-color: rgba(255, 176, 131, 0.3);
  color: rgba(255, 200, 160, 0.95);
}

.header-stat--danger {
  border-color: rgba(255, 100, 100, 0.35);
}

.header-stat--danger .header-stat__label mat-icon {
  color: rgba(255, 100, 100, 0.9);
}

.header-stat--danger .header-stat__value {
  background: rgba(255, 80, 80, 0.12);
  border-color: rgba(255, 80, 80, 0.35);
  color: rgba(255, 150, 150, 0.95);
}

.header-stat--muted {
  border-color: rgba(255, 255, 255, 0.1);
}

.header-stat--muted .header-stat__label mat-icon {
  color: rgba(255, 255, 255, 0.4);
}

.header-stat--muted .header-stat__value {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.6);
}

/* Header Card Bottom Row */
.header-card__bottom {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 14px 24px;
  gap: 16px;
  flex-wrap: nowrap;
  background: rgba(255, 255, 255, 0.02);
}

.header-card__bottom::before {
  content: "";
  position: absolute;
  top: 0;
  left: 5%;
  right: 5%;
  height: 1px;
  background: linear-gradient(to right, transparent 0%, rgba(255, 130, 90, 0.35) 30%, rgba(255, 130, 90, 0.35) 70%, transparent 100%);
  pointer-events: none;
}

.header-card__search {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 200px;
  max-width: 320px;
  flex: 1;
  padding: 10px 16px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 999px;
  transition: all 0.2s ease;
}

.header-card__search:focus-within {
  border-color: rgba(255, 176, 131, 0.4);
  background: rgba(255, 255, 255, 0.06);
}

.header-card__search mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 255, 255, 0.35);
  flex-shrink: 0;
}

.header-card__search input {
  background: transparent;
  border: none;
  outline: none;
  width: 100%;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.9);
}

.header-card__search input::placeholder {
  color: rgba(255, 255, 255, 0.35);
}

.header-card__actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
  flex-wrap: nowrap;
  margin-left: auto;
}

.header-card__count {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.6);
  padding-right: 12px;
  border-right: 1px solid rgba(255, 255, 255, 0.1);
}

.header-card__status {
  display: flex;
  align-items: center;
  margin-left: auto;
}

/* Info Note - Inline status messages */
.info-note {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  border-radius: 12px;
  background: rgba(100, 180, 255, 0.08);
  border: 1px solid rgba(100, 180, 255, 0.2);
  font-size: 13px;
  font-weight: 500;
  color: rgba(160, 200, 255, 0.9);
}

.info-note mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(100, 180, 255, 0.8);
}

.info-note--inline {
  background: rgba(100, 180, 255, 0.06);
  border-color: rgba(100, 180, 255, 0.15);
}

.info-note--success {
  background: rgba(96, 187, 132, 0.08);
  border-color: rgba(96, 187, 132, 0.2);
  color: rgba(163, 241, 189, 0.9);
}

.info-note--success mat-icon {
  color: rgba(96, 187, 132, 0.9);
}

/* Glass section label */
.glass-section-label {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(255, 176, 131, 0.8);
  margin-right: 12px;
}

/* Info Banner - Full-width notification banners */
.info-banner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 20px;
  margin: 0 0 16px;
  border-radius: 14px;
  font-size: 13px;
  font-weight: 500;
}

.info-banner mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.info-banner span {
  flex: 1;
}

.info-banner__dismiss {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4px;
  margin: -4px -8px -4px 4px;
  background: transparent;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  transition: background 0.2s ease;
}

.info-banner__dismiss mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 255, 255, 0.5);
}

.info-banner__dismiss:hover {
  background: rgba(255, 255, 255, 0.1);
}

.info-banner__dismiss:hover mat-icon {
  color: rgba(255, 255, 255, 0.8);
}

/* Info Banner Variants */
.info-banner--info {
  background: rgba(100, 180, 255, 0.08);
  border: 1px solid rgba(100, 180, 255, 0.2);
  color: rgba(160, 200, 255, 0.9);
}

.info-banner--info mat-icon {
  color: rgba(100, 180, 255, 0.8);
}

.info-banner--warning {
  background: rgba(245, 158, 11, 0.1);
  border: 1px solid rgba(245, 158, 11, 0.25);
  color: rgba(251, 191, 36, 0.95);
}

.info-banner--warning mat-icon {
  color: rgba(251, 191, 36, 0.9);
}

.info-banner--success {
  background: rgba(96, 187, 132, 0.08);
  border: 1px solid rgba(96, 187, 132, 0.2);
  color: rgba(163, 241, 189, 0.9);
}

.info-banner--success mat-icon {
  color: rgba(96, 187, 132, 0.9);
}

.info-banner--error {
  background: rgba(255, 80, 80, 0.1);
  border: 1px solid rgba(255, 80, 80, 0.25);
  color: rgba(255, 150, 150, 0.95);
}

.info-banner--error mat-icon {
  color: rgba(255, 80, 80, 0.9);
}

/* ==========================================================================
   4. STATS HEADER TITLE ROW
   ========================================================================== */
.stats-header__title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 20px 24px 16px;
  gap: 24px;
  flex-wrap: wrap;
}

.stats-header__title-row .header-left {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.stats-header__title-row .erp-category {
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.5);
}

.stats-header__title-row .erp-title {
  font-size: 28px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.95);
  margin: 0;
  line-height: 1.2;
}

.stats-header__title-row .erp-subtitle {
  font-size: 14px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.5);
  margin: 4px 0 0;
  line-height: 1.4;
}

.stats-header__title-row .header-right {
  display: flex;
  align-items: center;
  gap: 12px;
}

.stats-header__title-row--tabs {
  align-items: center;
}

.stats-header__title-row--tabs .header-right {
  margin-left: auto;
  align-self: center;
}

.stats-header__title-row--tabs .pill-tabs-nav {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
}

.stats-header__title-row--tabs .pill-tabs-container {
  margin-right: 0;
}

.stats-header__title-row--with-cards {
  align-items: stretch;
  padding-bottom: 20px;
}

.stats-header__title-row--with-cards .header-right--cards {
  display: flex;
  align-items: stretch;
  gap: 14px;
  flex-wrap: wrap;
}

/* ==========================================================================
   5. STATS CARDS ROW (Layout Only)
   ========================================================================== */
.stats-header__cards {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 20px 24px 20px;
  overflow-x: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.18) transparent;
}

.stats-header__spacer {
  flex: 1;
  min-width: 20px;
}

.pill-filter--right {
  flex-shrink: 0;
  margin-left: auto;
}

.stats-header__cards::-webkit-scrollbar {
  height: 4px;
}

.stats-header__cards::-webkit-scrollbar-track {
  background: transparent;
}

.stats-header__cards::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 999px;
}

.stats-header__cards:hover::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.15);
}

.stats-header__cards--secondary {
  padding-top: 0;
  padding-bottom: 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.04);
  margin-top: 0;
}

/* ==========================================================================
   6. FILTER BAR
   ========================================================================== */
.stats-header__filters {
  position: relative;
  padding: 14px 18px;
  background: rgba(255, 255, 255, 0.03);
  border-radius: 0 0 14px 14px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.stats-header__filters::before {
  content: "";
  position: absolute;
  top: 0;
  left: 5%;
  right: 5%;
  height: 1px;
  background: linear-gradient(to right, transparent 0%, rgba(255, 130, 90, 0.35) 30%, rgba(255, 130, 90, 0.35) 70%, transparent 100%);
  pointer-events: none;
}

/* ==========================================================================
   7. SEARCH FIELD
   ========================================================================== */
.stats-header__search {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 310px;
  flex: 0 0 auto;
  max-width: 410px;
  height: 36px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 999px;
  padding: 0 16px;
  cursor: text;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.stats-header__search:focus-within {
  border-color: rgba(255, 176, 131, 0.4);
  background: rgba(255, 255, 255, 0.08);
}

.stats-header__search-icon {
  color: rgba(255, 255, 255, 0.35);
  font-size: 16px;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  margin-top: 2px;
}

.stats-header__search-input {
  background: transparent;
  border: none;
  outline: none;
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  width: 100%;
}

.stats-header__search-input::placeholder {
  color: rgba(255, 255, 255, 0.35);
}

.stats-header__search-clear {
  color: rgba(255, 255, 255, 0.5);
  font-size: 16px;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  cursor: pointer;
  transition: color 0.2s ease;
}

.stats-header__search-clear:hover {
  color: rgba(255, 140, 90, 0.9);
}

/* ==========================================================================
   8. LEFT/ACTIONS CONTAINERS
   ========================================================================== */
.stats-header__left {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
  flex-wrap: wrap;
}

.stats-header__actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  flex-wrap: wrap;
  margin-left: auto;
}

/* ==========================================================================
   10. HEADER FILTER DROPDOWNS - Compact 36px height per UI Contract
   ========================================================================== */
.header-filter {
  /* Remove default margins and underline */
  margin: 0 !important;
  /* Compact width for filter dropdowns */
  width: auto !important;
  min-width: 120px !important;
  max-width: 150px !important;
  /* Target the form field wrapper */
  /* Remove the notch/outline */
  /* Flex container alignment */
  /* Infix container */
  /* Select trigger text */
  /* Arrow icon */
  /* Remove subscript/hint space */
}
.header-filter .mat-mdc-text-field-wrapper {
  height: 36px !important;
  padding: 0 12px !important;
  border-radius: 100px !important;
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  transition: all 0.2s ease !important;
}
.header-filter .mat-mdc-text-field-wrapper:hover {
  background: rgba(255, 255, 255, 0.1) !important;
  border-color: rgba(255, 255, 255, 0.2) !important;
}
.header-filter .mdc-notched-outline,
.header-filter .mat-mdc-form-field-focus-overlay {
  display: none !important;
}
.header-filter .mat-mdc-form-field-flex {
  height: 36px !important;
  align-items: center !important;
  padding: 0 !important;
}
.header-filter .mat-mdc-form-field-infix {
  min-height: 36px !important;
  height: 36px !important;
  padding: 0 !important;
  border: none !important;
  display: flex !important;
  align-items: center !important;
}
.header-filter .mat-mdc-select-trigger {
  height: 36px !important;
  display: flex !important;
  align-items: center !important;
}
.header-filter .mat-mdc-select-value {
  font-size: 13px !important;
  font-weight: 500 !important;
  color: rgba(255, 255, 255, 0.85) !important;
}
.header-filter .mat-mdc-select-placeholder {
  font-size: 13px !important;
  font-weight: 500 !important;
  color: rgba(255, 255, 255, 0.6) !important;
}
.header-filter .mat-mdc-select-arrow-wrapper {
  height: 20px !important;
}
.header-filter .mat-mdc-select-arrow {
  color: rgba(255, 255, 255, 0.6) !important;
}
.header-filter .mat-mdc-form-field-subscript-wrapper {
  display: none !important;
}

/* ==========================================================================
   9. RESPONSIVE BEHAVIOR
   ========================================================================== */
@media (max-width: 900px) {
  .header-card__top {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }
  .header-card__stats {
    width: 100%;
    justify-content: flex-start;
  }
}
@media (max-width: 768px) {
  .erp-header-block {
    border-radius: 16px;
  }
  .erp-header-primary {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    padding: 16px 18px;
  }
  .erp-header-primary .header-right {
    width: 100%;
    justify-content: flex-end;
  }
  .erp-filter-bar {
    padding: 12px 14px;
  }
  .filter-row {
    flex-wrap: wrap;
  }
  .filter-search {
    max-width: 100%;
    min-width: 100%;
    margin-bottom: 8px;
  }
  .filter-group {
    justify-content: flex-start;
    width: 100%;
    flex-wrap: wrap;
    gap: 6px;
  }
  .stats-header__cards {
    gap: 12px;
    padding: 12px 12px 10px;
  }
  .stats-header__body {
    padding: var(--ui-space-4);
    gap: var(--ui-space-4);
  }
  .stats-header__filters {
    flex-direction: column;
    align-items: stretch;
    padding: 12px;
  }
  .stats-header__search {
    max-width: none;
    width: 100%;
  }
  .stats-header__actions {
    justify-content: flex-end;
    width: 100%;
  }
}
@media (max-width: 600px) {
  .header-card__bottom {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }
  .header-card__search {
    max-width: none;
  }
  .header-card__actions {
    justify-content: flex-end;
  }
  .header-card__count {
    border-right: none;
    padding-right: 0;
  }
}
@media (max-width: 480px) {
  .stats-header {
    border-radius: 14px;
  }
  .stats-header__cards {
    padding: 10px;
  }
  .stats-header__body {
    padding: var(--ui-space-3);
  }
  .stats-header__actions {
    flex-wrap: wrap;
    justify-content: center;
  }
}
/* ==========================================================================
   10. BACKWARDS COMPATIBILITY ALIASES
   ========================================================================== */
/* Map stat-cards-row inside erp-header-block */
.erp-header-block .stat-cards-row,
.erp-header-block .stat-cards-row--compact {
  padding: 16px 16px 12px;
}

.erp-header-block:has(.stat-cards-row) .erp-filter-bar,
.erp-header-block:has(.stat-cards-row--compact) .erp-filter-bar {
  border-radius: 0 0 14px 14px;
}

/* UI wrapper class */
.ui-stats-header {
  display: block;
}

/* ==========================================================================
   11. PAYROLL STATUS BADGES
   ========================================================================== */
.payroll-status-badge {
  display: inline-flex;
  align-items: center;
  padding: 5px 14px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.payroll-status-badge.status-not-started {
  background: rgba(156, 163, 175, 0.15);
  border: 1px solid rgba(156, 163, 175, 0.25);
  color: #9ca3af;
}

.payroll-status-badge.status-draft {
  background: rgba(245, 158, 11, 0.15);
  border: 1px solid rgba(245, 158, 11, 0.3);
  color: #fbbf24;
}

.payroll-status-badge.status-finalized {
  background: linear-gradient(135deg, rgba(255, 140, 100, 0.15) 0%, rgba(180, 120, 80, 0.08) 100%);
  border: 1px solid rgba(255, 140, 100, 0.35);
  color: rgba(255, 160, 100, 0.95);
}

.payroll-status-badge.status-paid {
  background: rgba(34, 197, 94, 0.15);
  border: 1px solid rgba(34, 197, 94, 0.25);
  color: #4ade80;
}

/* ==========================================================================
   12. HR ATTENDANCE FILTER ALIGNMENT
   ========================================================================== */
.hr-attendance-page .header-card__top .stat-cards-row--header {
  margin-left: auto;
}

.hr-attendance-page .header-card__bottom .filter-row {
  width: 100%;
  justify-content: flex-end;
}

.hr-attendance-page .header-card__bottom .filter-search {
  flex: 0 0 auto;
  margin-left: auto;
}

.hr-attendance-page .header-card__bottom .filter-group {
  margin-left: auto;
}

/* ==========================================================================
   UI HEADERS - STAT CARDS (Contract)
   ==========================================================================
   Consolidated stat cards styling - all legacy stat-cards.css merged here.
   Apply: .stat-cards-row to container, .stat-card to individual cards

   Dependencies: None (standalone)
   ========================================================================== */
/* ==========================================================================
   1. STAT CARDS ROW - Horizontal Scrollable Container
   ========================================================================== */
.stat-cards-row {
  display: flex;
  gap: 18px;
  overflow-x: auto;
  padding: 12px 16px 20px;
  margin-top: 8px;
  margin-bottom: 32px;
  /* Extend to edges (adjust margin based on parent padding) */
  margin-left: -40px;
  margin-right: -40px;
  width: calc(100% + 80px);
  /* Custom scrollbar - thin, auto-hide */
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.18) transparent;
}

.stat-cards-row::-webkit-scrollbar {
  height: 4px;
}

.stat-cards-row::-webkit-scrollbar-track {
  background: transparent;
}

.stat-cards-row::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 999px;
}

.stat-cards-row:hover::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.15);
}

/* Compact row without edge extension */
.stat-cards-row--compact {
  display: flex;
  gap: 18px;
  overflow-x: auto;
  margin-left: 0;
  margin-right: 0;
  margin-top: 8px;
  margin-bottom: 12px;
  width: 100%;
  padding: 12px 0 8px 16px;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.18) transparent;
}

.stat-cards-row--compact::-webkit-scrollbar {
  height: 4px;
}

.stat-cards-row--compact::-webkit-scrollbar-track {
  background: transparent;
}

.stat-cards-row--compact::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 999px;
}

.stat-cards-row--compact:hover::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.15);
}

/* Stats Summary Row - Flex container for inline stat cards */
.stats-summary-row {
  display: flex;
  gap: 16px;
  margin-bottom: 20px;
  padding-left: 24px;
  flex-wrap: wrap;
  align-items: stretch;
}

/* Compact stat cards for summary rows */
.stat-card--compact {
  flex: 0 0 auto;
  min-width: 140px;
}

/* Readonly stat cards (non-interactive, but values show tooltips) */
.stat-card--readonly {
  cursor: default;
  pointer-events: none;
}

.stat-card--readonly .stat-card__value,
.stat-card--readonly .stat-card__header {
  pointer-events: auto;
  cursor: default;
}

.stat-card--readonly:hover {
  transform: none;
  border-color: inherit;
  background: inherit;
}

/* Header row variant - inline within page headers */
.stat-cards-row--header {
  display: flex;
  gap: 14px;
  overflow-x: auto;
  margin: 0;
  padding: 0;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.18) transparent;
}

.stat-cards-row--header::-webkit-scrollbar {
  height: 4px;
}

.stat-cards-row--header::-webkit-scrollbar-track {
  background: transparent;
}

.stat-cards-row--header::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 999px;
}

.stat-cards-row--header:hover::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.15);
}

/* ==========================================================================
   2. STAT CARD - Base Card Container
   ========================================================================== */
.stat-card,
.metric-card {
  /* Sizing */
  flex: 0 0 140px;
  min-width: 140px;
  /* Layout */
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 12px 14px;
  /* Visual - Glassmorphic */
  border-radius: 18px;
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.32);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  /* Interaction */
  transition: transform 0.2s ease, background 0.2s ease, border 0.2s ease, box-shadow 0.2s ease;
  cursor: pointer;
  -webkit-user-select: none;
          user-select: none;
  outline: none;
  will-change: transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.stat-card:hover,
.metric-card:hover {
  border-color: rgba(255, 255, 255, 0.2);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.04));
}

.stat-card:focus-visible,
.metric-card:focus-visible {
  box-shadow: 0 0 0 2px rgba(255, 176, 131, 0.45), 0 16px 36px rgba(0, 0, 0, 0.32);
}

.stat-card > *,
.metric-card > * {
  pointer-events: none;
}

/* Active State */
.stat-card--active,
.stat-card.active,
.metric-card--active {
  border-color: rgba(255, 140, 90, 0.6);
  box-shadow: 0 0 20px rgba(255, 120, 80, 0.25);
}

/* Compact Variant */
.stat-card--compact {
  min-width: 150px;
  max-width: 180px;
  padding: 12px 14px;
  cursor: default;
}

.stat-card--compact .stat-card__header {
  margin-bottom: 6px;
}

.stat-card--compact .stat-card__value {
  min-height: 28px;
  padding: 4px 10px;
  font-size: 16px;
}

.stat-card--compact .stat-card__icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.stat-card--compact .stat-card__label {
  font-size: 11px;
}

.stat-card--compact:hover {
  transform: none;
}

/* Wide Variant */
.stat-card--wide {
  flex: 0 0 161px;
  min-width: 161px;
}

/* ==========================================================================
   3. STAT CARD HEADER - Icon + Label
   ========================================================================== */
.stat-card__header,
.metric-card__header {
  display: flex;
  align-items: center;
  gap: 10px;
}

.stat-card__icon,
.metric-card__icon {
  width: 20px;
  height: 20px;
  font-size: 20px;
  line-height: 1;
  overflow: visible;
  flex-shrink: 0;
  color: rgba(255, 255, 255, 0.7);
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.35));
}

.stat-card__label,
.metric-card__label {
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.75);
  letter-spacing: 0.02em;
}

/* ==========================================================================
   4. STAT CARD VALUE - Number/Count Display
   ========================================================================== */
.stat-card__value,
.metric-card__value {
  margin-top: 10px;
  min-height: 40px;
  padding: 6px 14px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.92);
  letter-spacing: 0.03em;
}

.stat-card__info-value {
  font-size: 12px;
  margin-left: 4px;
  opacity: 0.5;
  cursor: help;
  vertical-align: middle;
}

.stat-card__subtitle {
  display: block;
  margin-top: 6px;
  font-size: 11px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.38);
  letter-spacing: 0.01em;
  text-align: center;
}

/* ==========================================================================
   5. STAT CARD VARIANTS - Color Modifiers
   ========================================================================== */
/* Danger / Alert (Red) */
.stat-card--danger,
.metric-card--alert {
  border-color: rgba(255, 59, 59, 0.38);
  background: linear-gradient(155deg, rgba(255, 59, 59, 0.2), rgba(255, 255, 255, 0.02));
}

.stat-card--danger .stat-card__icon,
.metric-card--alert .metric-card__icon {
  color: rgba(255, 74, 74, 0.92);
}

.stat-card__value--danger,
.metric-card__value--alert {
  background: rgba(255, 59, 59, 0.14);
  color: rgba(255, 140, 140, 0.98);
  border: 1px solid rgba(255, 59, 59, 0.38);
}

/* Success / Positive (Green) */
.stat-card--success,
.metric-card--positive {
  border-color: rgba(120, 220, 180, 0.28);
  background: linear-gradient(155deg, rgba(120, 220, 180, 0.18), rgba(255, 255, 255, 0.02));
}

.stat-card--success .stat-card__icon,
.metric-card--positive .metric-card__icon {
  color: rgba(120, 220, 180, 0.9);
}

.stat-card__value--success,
.metric-card__value--positive {
  background: rgba(96, 187, 132, 0.14);
  color: rgba(163, 241, 189, 0.95);
  border: 1px solid rgba(96, 187, 132, 0.32);
}

/* Pickup (Purple/Blue) */
.metric-card--pickup {
  border-color: rgba(120, 110, 255, 0.38);
  background: linear-gradient(155deg, rgba(120, 110, 255, 0.2), rgba(255, 255, 255, 0.02));
}

.metric-card--pickup .metric-card__icon {
  color: rgba(140, 130, 255, 0.92);
}

.metric-card__value--pickup {
  background: rgba(120, 110, 255, 0.14);
  color: rgba(175, 170, 255, 0.98);
  border: 1px solid rgba(120, 110, 255, 0.38);
}

/* Drop (Warm Orange) */
.metric-card--drop {
  border-color: rgba(255, 160, 100, 0.38);
  background: linear-gradient(155deg, rgba(255, 160, 100, 0.2), rgba(255, 255, 255, 0.02));
}

.metric-card--drop .metric-card__icon {
  color: rgba(255, 170, 110, 0.92);
}

.metric-card__value--drop {
  background: rgba(255, 160, 100, 0.14);
  color: rgba(255, 200, 160, 0.98);
  border: 1px solid rgba(255, 160, 100, 0.38);
}

/* Default / Neutral */
.stat-card--default,
.metric-card--neutral {
  border-color: rgba(255, 255, 255, 0.14);
}

.stat-card--default .stat-card__icon,
.metric-card--neutral .metric-card__icon {
  color: rgba(255, 255, 255, 0.8);
}

/* Warning (Orange/Amber) */
.stat-card--warning {
  border-color: rgba(255, 176, 131, 0.35);
  background: linear-gradient(155deg, rgba(255, 176, 131, 0.2), rgba(255, 255, 255, 0.02));
}

.stat-card--warning .stat-card__icon {
  color: rgba(255, 176, 131, 0.95);
}

.stat-card__value--warning {
  background: rgba(255, 176, 131, 0.22);
  color: rgba(255, 200, 160, 0.98);
  border: 1px solid rgba(255, 176, 131, 0.4);
}

/* Info (Blue) */
.stat-card--info {
  border-color: rgba(100, 180, 255, 0.3);
  background: linear-gradient(155deg, rgba(100, 180, 255, 0.18), rgba(255, 255, 255, 0.02));
}

.stat-card--info .stat-card__icon {
  color: rgba(100, 180, 255, 0.9);
}

.stat-card__value--info {
  background: rgba(100, 180, 255, 0.22);
  color: rgba(150, 200, 255, 0.95);
  border: 1px solid rgba(100, 180, 255, 0.4);
}

/* Muted / Secondary */
.stat-card--muted {
  border-color: rgba(148, 163, 184, 0.25);
  background: linear-gradient(155deg, rgba(148, 163, 184, 0.12), rgba(255, 255, 255, 0.02));
  opacity: 0.85;
}

.stat-card--muted .stat-card__icon {
  color: rgba(148, 163, 184, 0.75);
}

.stat-card--muted .stat-card__label {
  color: rgba(148, 163, 184, 0.8);
}

.stat-card__value--muted {
  background: rgba(148, 163, 184, 0.1);
  color: rgba(180, 195, 210, 0.9);
  border: 1px solid rgba(148, 163, 184, 0.25);
}

/* Amber */
.stat-card--amber {
  border-color: rgba(245, 158, 11, 0.35);
  background: linear-gradient(155deg, rgba(245, 158, 11, 0.18), rgba(255, 255, 255, 0.02));
}

.stat-card--amber .stat-card__icon {
  color: rgba(251, 191, 36, 0.92);
}

.stat-card__value--amber {
  background: rgba(245, 158, 11, 0.12);
  border-color: rgba(245, 158, 11, 0.35);
  color: rgba(251, 191, 36, 0.95);
}

/* ==========================================================================
   6. STAT CARD ACTIVE STATE
   ========================================================================== */
.stat-card--active {
  border-color: rgba(255, 176, 131, 0.85);
  box-shadow: 0 12px 40px rgba(255, 176, 131, 0.35);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.2), rgba(255, 111, 60, 0.08));
}

.stat-card--active .stat-card__value {
  box-shadow: inset 0 0 0 1px rgba(255, 176, 131, 0.35);
}

.stat-card--danger.stat-card--active {
  border-color: rgba(255, 74, 74, 0.9);
  box-shadow: 0 12px 40px rgba(255, 74, 74, 0.35);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.2), rgba(255, 59, 59, 0.12));
}

.stat-card--success.stat-card--active {
  border-color: rgba(120, 220, 180, 0.85);
  box-shadow: 0 12px 40px rgba(120, 220, 180, 0.35);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.2), rgba(120, 220, 180, 0.12));
}

.stat-card--warning.stat-card--active {
  border-color: rgba(255, 176, 131, 0.85);
  box-shadow: 0 12px 40px rgba(255, 176, 131, 0.35);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.2), rgba(255, 176, 131, 0.12));
}

/* Explicit clickable cursor */
.stat-card--clickable {
  cursor: pointer;
}

/* ==========================================================================
   7. STAT CARDS SEPARATOR
   ========================================================================== */
.stat-cards-separator {
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.4);
  padding: 0;
  margin: 0 -10px;
  align-self: center;
  flex-shrink: 0;
}

.stat-cards-separator svg {
  width: 20px;
  height: 20px;
}

.stat-cards-separator--bar {
  width: 1px;
  height: 40px;
  background: linear-gradient(to bottom, transparent 0%, rgba(255, 255, 255, 0.15) 25%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 100%);
  margin: 0 4px;
}

/* ==========================================================================
   8. STAT FILTER BANNER
   ========================================================================== */
.stat-filter-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0 0 16px;
  padding: 10px 16px;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(20, 20, 20, 0.75);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.35);
  gap: 12px;
}

.stat-filter-banner__label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.82);
}
.stat-filter-banner__label mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  line-height: 1;
}

.stat-filter-banner__summary {
  margin-left: 8px;
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 176, 131, 0.9);
}

.stat-filter-banner__clear {
  border: none;
  border-radius: 999px;
  padding: 6px 14px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  background: rgba(255, 176, 131, 0.18);
  color: rgba(255, 176, 131, 0.95);
  transition: background 0.2s ease, transform 0.2s ease;
}

.stat-filter-banner__clear:hover {
  background: rgba(255, 176, 131, 0.28);
  transform: translateY(-1px);
}

/* Warning Variant - For staleness/outdated indicators */
.stat-filter-banner--warning {
  background: rgba(245, 158, 11, 0.12);
  border: 1px solid rgba(245, 158, 11, 0.3);
}

.stat-filter-banner--warning .stat-filter-banner__label {
  color: #fbbf24;
}

.stat-filter-banner--warning .warning-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: #f59e0b;
}

/* Block Layout - Left-aligned content */
.stat-filter-banner--block {
  justify-content: flex-start;
}

/* Error Variant - For readiness blockers (red) */
.stat-filter-banner--error {
  background: rgba(244, 67, 54, 0.12);
  border: 1px solid rgba(244, 67, 54, 0.35);
}

.stat-filter-banner--error .stat-filter-banner__label {
  color: #ef5350;
}

/* Info Variant - For informational notices (blue) */
.stat-filter-banner--info {
  background: rgba(33, 150, 243, 0.1);
  border: 1px solid rgba(33, 150, 243, 0.25);
}

.stat-filter-banner--info .stat-filter-banner__label {
  color: rgba(100, 180, 255, 0.9);
}

/* LWP Variant (existing) */
.stat-filter-banner--lwp {
  background: rgba(156, 39, 176, 0.1);
  border: 1px solid rgba(156, 39, 176, 0.25);
}

.stat-filter-banner--lwp .stat-filter-banner__label {
  color: rgba(186, 104, 200, 0.9);
}

/* Calendar Context Label */
.calendar-context {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.55);
}

.calendar-context strong {
  color: rgba(255, 255, 255, 0.85);
  font-weight: 600;
}

/* ==========================================================================
   9. SKELETON LOADING STATES
   ========================================================================== */
.stat-card--skeleton {
  pointer-events: none;
}

.stat-card--skeleton .stat-card__header {
  opacity: 0;
}

.stat-card--skeleton .stat-card__value {
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.12) 50%, rgba(255, 255, 255, 0.06) 100%);
  background-size: 200% 100%;
  animation: stat-card-shimmer 1.5s infinite ease-in-out;
}

@keyframes stat-card-shimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
.stat-card--skeleton .skeleton-line {
  height: 12px;
  width: 80px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.08);
}

.stat-card--skeleton .skeleton-line.short {
  width: 60px;
}

/* ==========================================================================
   10. SIZE VARIANTS
   ========================================================================== */
/* Small */
.stat-card--sm {
  flex: 0 0 110px;
  min-width: 110px;
  padding: 10px 12px;
  border-radius: 14px;
}

.stat-card--sm .stat-card__icon {
  width: 16px;
  height: 16px;
  font-size: 16px;
}

.stat-card--sm .stat-card__label {
  font-size: 11px;
}

.stat-card--sm .stat-card__value {
  min-height: 32px;
  font-size: 18px;
  margin-top: 8px;
}

/* Large */
.stat-card--lg {
  flex: 0 0 180px;
  min-width: 180px;
  padding: 16px 18px;
  border-radius: 22px;
}

.stat-card--lg .stat-card__icon {
  width: 24px;
  height: 24px;
  font-size: 24px;
}

.stat-card--lg .stat-card__label {
  font-size: 13px;
}

.stat-card--lg .stat-card__value {
  min-height: 52px;
  font-size: 28px;
  margin-top: 12px;
}

/* Financial */
.stat-card--financial {
  flex: 0 0 180px;
  min-width: 180px;
  padding: 14px 16px;
}

.stat-card--financial .stat-card__value {
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0.01em;
  min-height: 38px;
}

.stat-card--financial .stat-card__label {
  font-size: 11px;
}

/* Financial row variant */
.stat-cards-row--financial {
  gap: 14px;
  margin-left: 0;
  margin-right: 0;
  width: 100%;
  padding: 12px 0 20px;
}

.stat-cards-row--financial .stat-card {
  flex: 0 0 180px;
  min-width: 180px;
  contain: layout style paint;
}

.stat-cards-row--financial .stat-card__value {
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0.01em;
  min-height: 38px;
}

/* ==========================================================================
   11. OPTIONAL ELEMENTS
   ========================================================================== */
.stat-card__trend {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 6px;
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.6);
}

.stat-card__trend--up {
  color: rgba(120, 220, 180, 0.9);
}

.stat-card__trend--down {
  color: rgba(255, 100, 100, 0.9);
}

/* Count Badge - Separated from value */
.stat-card__count-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  margin-left: 8px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.12);
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.75);
  letter-spacing: 0;
}

/* Count badge color variants */
.count-badge--danger {
  background: rgba(255, 59, 59, 0.2);
  color: rgba(255, 140, 140, 0.95);
}

.count-badge--success {
  background: rgba(120, 220, 180, 0.2);
  color: rgba(163, 241, 189, 0.95);
}

.count-badge--warning {
  background: rgba(255, 176, 131, 0.2);
  color: rgba(255, 200, 160, 0.95);
}

.count-badge--info {
  background: rgba(100, 180, 255, 0.2);
  color: rgba(150, 200, 255, 0.95);
}

.count-badge--muted,
.count-badge--default {
  background: rgba(148, 163, 184, 0.15);
  color: rgba(180, 195, 210, 0.9);
}

/* ==========================================================================
   12. GRID VARIANT (from original SCSS)
   ========================================================================== */
.ui-stat-cards-row {
  display: flex;
}

/* Currency symbol styling */
.stats-header .currency-symbol,
::ng-deep .stats-header .currency-symbol,
.stat-card .currency-symbol {
  font-size: 0.65em;
  opacity: 0.8;
  margin-right: 2px;
  vertical-align: baseline;
}

/* ==========================================================================
   13. STATS STRIP — Compact Inline Chip Variant
   ==========================================================================
   Horizontal row of glassmorphic chips: icon + label + count badge.
   Designed for dense pages (Kanban boards) where vertical space is premium.
   ========================================================================== */
.stats-strip {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  overflow-x: auto;
  scrollbar-width: none;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.01));
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.06);
}
.stats-strip::-webkit-scrollbar {
  display: none;
}

/* Individual chip */
.stats-strip__chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 14px;
  border-radius: 12px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  cursor: pointer;
  -webkit-user-select: none;
          user-select: none;
  transition: all 0.25s ease;
  white-space: nowrap;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
.stats-strip__chip:hover {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0.04));
  border-color: rgba(255, 255, 255, 0.22);
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
}

/* Active state */
.stats-strip__chip--active {
  border-color: rgba(255, 140, 90, 0.55) !important;
  background: linear-gradient(145deg, rgba(255, 140, 90, 0.18), rgba(255, 100, 60, 0.06)) !important;
  box-shadow: 0 0 16px rgba(255, 120, 80, 0.2), 0 2px 8px rgba(0, 0, 0, 0.15) !important;
}

/* Icon */
.stats-strip__icon {
  font-size: 15px !important;
  width: 15px !important;
  height: 15px !important;
  color: rgba(255, 255, 255, 0.5);
  flex-shrink: 0;
  filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.25));
}

/* Label */
.stats-strip__label {
  font-size: 11.5px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.55);
  letter-spacing: 0.02em;
}

/* Count badge */
.stats-strip__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 24px;
  padding: 0 7px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 13px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.92);
  letter-spacing: 0.02em;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

/* Chevron separator between groups */
.stats-strip__separator {
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.3);
  flex-shrink: 0;
  margin: 0 1px;
}
.stats-strip__separator svg {
  width: 16px;
  height: 16px;
}

/* --- Color Variants --- */
/* Alert (Red) */
.stats-strip__chip--alert {
  border-color: rgba(255, 59, 59, 0.22);
  background: linear-gradient(145deg, rgba(255, 59, 59, 0.12), rgba(255, 59, 59, 0.03));
}
.stats-strip__chip--alert .stats-strip__icon {
  color: rgba(255, 85, 85, 0.9);
}
.stats-strip__chip--alert .stats-strip__label {
  color: rgba(255, 160, 160, 0.7);
}
.stats-strip__chip--alert:hover {
  border-color: rgba(255, 59, 59, 0.35);
  background: linear-gradient(145deg, rgba(255, 59, 59, 0.18), rgba(255, 59, 59, 0.06));
}

.stats-strip__chip--alert.stats-strip__chip--active {
  border-color: rgba(255, 59, 59, 0.6) !important;
  background: linear-gradient(145deg, rgba(255, 59, 59, 0.22), rgba(255, 59, 59, 0.08)) !important;
  box-shadow: 0 0 16px rgba(255, 59, 59, 0.2), 0 2px 8px rgba(0, 0, 0, 0.15) !important;
}

.stats-strip__count--alert {
  background: rgba(255, 59, 59, 0.18);
  color: rgba(255, 140, 140, 0.98);
  border-color: rgba(255, 59, 59, 0.3);
  box-shadow: 0 0 8px rgba(255, 59, 59, 0.12), inset 0 1px 0 rgba(255, 120, 120, 0.08);
}

/* Positive (Green) */
.stats-strip__chip--positive {
  border-color: rgba(120, 220, 180, 0.2);
  background: linear-gradient(145deg, rgba(120, 220, 180, 0.1), rgba(120, 220, 180, 0.02));
}
.stats-strip__chip--positive .stats-strip__icon {
  color: rgba(120, 220, 180, 0.9);
}
.stats-strip__chip--positive .stats-strip__label {
  color: rgba(163, 241, 200, 0.65);
}
.stats-strip__chip--positive:hover {
  border-color: rgba(120, 220, 180, 0.32);
  background: linear-gradient(145deg, rgba(120, 220, 180, 0.16), rgba(120, 220, 180, 0.04));
}

.stats-strip__chip--positive.stats-strip__chip--active {
  border-color: rgba(120, 220, 180, 0.6) !important;
  background: linear-gradient(145deg, rgba(120, 220, 180, 0.2), rgba(120, 220, 180, 0.06)) !important;
  box-shadow: 0 0 16px rgba(120, 220, 180, 0.2), 0 2px 8px rgba(0, 0, 0, 0.15) !important;
}

.stats-strip__count--positive {
  background: rgba(96, 187, 132, 0.18);
  color: rgba(163, 241, 189, 0.98);
  border-color: rgba(96, 187, 132, 0.3);
  box-shadow: 0 0 8px rgba(120, 220, 180, 0.1), inset 0 1px 0 rgba(120, 220, 180, 0.08);
}

/* Neutral */
.stats-strip__chip--neutral {
  border-color: rgba(255, 255, 255, 0.12);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02));
}
.stats-strip__chip--neutral .stats-strip__icon {
  color: rgba(255, 255, 255, 0.7);
}

/* ── NPS Stat Card — sentiment-coded variant ───────────────────── */
.stat-card--nps {
  cursor: default;
  position: relative;
}

.stat-card--nps .stat-card__sub {
  font-size: 9px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  opacity: 0.75;
  margin-top: 2px;
}

.stat-card--nps .stat-card__unit {
  font-size: 10px;
  opacity: 0.6;
  font-weight: 500;
}

/* Promoter (9-10) — green */
.stat-card--nps.promoter {
  background: linear-gradient(145deg, rgba(73, 211, 158, 0.14), rgba(73, 211, 158, 0.04)) !important;
  border-color: rgba(73, 211, 158, 0.35) !important;
  color: #5debb5;
}

.stat-card--nps.promoter .stat-card__icon {
  color: #5debb5 !important;
}

/* Passive (7-8) — amber */
.stat-card--nps.passive {
  background: linear-gradient(145deg, rgba(255, 190, 50, 0.13), rgba(255, 190, 50, 0.04)) !important;
  border-color: rgba(255, 190, 50, 0.35) !important;
  color: #ffc55a;
}

.stat-card--nps.passive .stat-card__icon {
  color: #ffc55a !important;
}

/* Detractor (0-6) — red */
.stat-card--nps.detractor {
  background: linear-gradient(145deg, rgba(239, 83, 80, 0.14), rgba(239, 83, 80, 0.04)) !important;
  border-color: rgba(239, 83, 80, 0.35) !important;
  color: #ff7b79;
}

.stat-card--nps.detractor .stat-card__icon {
  color: #ff7b79 !important;
}

/* ==========================================================================
   6. CONTROLS
   ========================================================================== */
/* ==========================================================================
   UI CONTROLS - BUTTONS
   ==========================================================================
   Button system using design tokens.
   ========================================================================== */
/* Base button */
.ui-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-4);
  height: 36px;
  border-radius: var(--ui-radius-md);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  font-family: inherit;
  cursor: pointer;
  border: none;
  transition: var(--ui-transition-base);
  white-space: nowrap;
  -webkit-text-fill-color: initial;
  background-clip: border-box;
  -webkit-background-clip: border-box;
}

.ui-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Primary button - brand gradient */
.ui-btn--primary {
  background: var(--ui-brand-gradient);
  color: #fff;
  box-shadow: 0 4px 16px rgba(233, 68, 36, 0.35);
}

.ui-btn--primary:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(233, 68, 36, 0.45);
}

/* Secondary button - ghost */
.ui-btn--secondary {
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  color: var(--ui-text-secondary);
}

.ui-btn--secondary:hover:not(:disabled) {
  background: var(--ui-surface-3);
  border-color: var(--ui-border-hover);
}

/* Danger button */
.ui-btn--danger {
  background: var(--ui-danger-bg);
  border: 1px solid var(--ui-danger-border);
  color: var(--ui-danger);
}

.ui-btn--danger:hover:not(:disabled) {
  background: rgba(248, 113, 113, 0.25);
}

/* Success button */
.ui-btn--success {
  background: var(--ui-success-bg);
  border: 1px solid var(--ui-success-border);
  color: var(--ui-success);
}

.ui-btn--success:hover:not(:disabled) {
  background: rgba(74, 222, 128, 0.25);
}

/* Ghost button - transparent with subtle text, reveals on hover */
.ui-btn--ghost {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.6);
}

.ui-btn--ghost:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.9);
}

.ui-btn--ghost:disabled {
  color: rgba(255, 255, 255, 0.2);
  border-color: transparent;
}

/* Pill button - full rounded */
.ui-btn--pill {
  border-radius: 999px;
}

/* Icon-only button */
.ui-btn--icon {
  width: 36px;
  padding: 0;
}

/* Small button */
.ui-btn--sm {
  height: 36px;
  padding: 0 20px;
  font-size: var(--ui-text-sm);
  border-radius: 999px;
}

/* Large button */
.ui-btn--lg {
  height: 44px;
  padding: 0 var(--ui-space-6);
  font-size: var(--ui-text-base);
}

/* Block button - full width */
.ui-btn--block {
  width: 100%;
}

/* Add button - primary CTA with solid gradient (matches backup pill-btn-add) */
.ui-btn--add {
  background: linear-gradient(135deg, #d8603a 0%, #a04020 100%);
  color: #fff;
  border: 1px solid rgba(180, 80, 50, 0.5);
  box-shadow: 0 4px 12px rgba(160, 64, 32, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.15);
}

.ui-btn--add:hover:not(:disabled) {
  background: linear-gradient(135deg, #e87050 0%, #b85030 100%);
  box-shadow: 0 6px 18px rgba(180, 80, 50, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.2);
  transform: translateY(-1px);
}

/* Button icon sizing */
.ui-btn mat-icon,
.ui-btn .mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.ui-btn--sm mat-icon,
.ui-btn--sm .mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

/* ==========================================================================
   ICON BUTTONS - Circular action buttons
   ==========================================================================
   For row/card actions like edit, delete, view, etc.
   ========================================================================== */
/* Base icon button */
.ui-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border-radius: 50%;
  border: 1px solid transparent;
  background: transparent;
  color: var(--ui-text-muted);
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.ui-icon-btn:hover:not(:disabled) {
  background: var(--ui-surface-2);
  color: var(--ui-text-secondary);
}

.ui-icon-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.ui-icon-btn mat-icon,
.ui-icon-btn .mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

/* Small icon button */
.ui-icon-btn--sm {
  width: 28px;
  height: 28px;
}

.ui-icon-btn--sm mat-icon,
.ui-icon-btn--sm .mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

/* Ghost icon button - subtle with hover reveal */
.ui-icon-btn--ghost {
  color: rgba(255, 255, 255, 0.4);
}

.ui-icon-btn--ghost:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.85);
}

/* ==========================================================================
   SEMANTIC ACTION BUTTONS - Edit, Delete, View
   ========================================================================== */
/* Edit action - warm orange tint */
.ui-icon-btn--edit {
  color: rgba(255, 180, 130, 0.7);
}

.ui-icon-btn--edit:hover:not(:disabled) {
  background: rgba(255, 140, 90, 0.15);
  border-color: rgba(255, 140, 90, 0.3);
  color: rgb(255, 180, 130);
}

/* Delete action - danger red tint */
.ui-icon-btn--delete {
  color: rgba(248, 113, 113, 0.7);
}

.ui-icon-btn--delete:hover:not(:disabled) {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
}

/* View/Insights action - info blue tint */
.ui-icon-btn--view {
  color: rgba(96, 165, 250, 0.7);
}

.ui-icon-btn--view:hover:not(:disabled) {
  background: var(--ui-info-bg);
  border-color: var(--ui-info-border);
  color: var(--ui-info);
}

/* Success action - green tint */
.ui-icon-btn--success {
  color: rgba(74, 222, 128, 0.7);
}

.ui-icon-btn--success:hover:not(:disabled) {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

/* ==========================================================================
   ACTION BUTTON GROUP - For row/card actions
   ========================================================================== */
.ui-action-btns {
  display: flex;
  align-items: center;
  gap: 2px;
}

/* Subtle reveal pattern - buttons become more visible on row hover */
.ui-action-btns--reveal .ui-icon-btn {
  opacity: 0.5;
  transition: opacity 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.ui-action-btns--reveal:hover .ui-icon-btn,
.ui-action-btns--reveal .ui-icon-btn:hover,
.ui-action-btns--reveal .ui-icon-btn:focus {
  opacity: 1;
}

/* ==========================================================================
   UI CONTROLS - TABS
   ==========================================================================
   Wraps existing pill-tabs.css styling.
   ========================================================================== */
/* Import the existing pill tabs styles */
/* CSS imported in styles.scss */
/* Tab container */
.ui-tabs {
  --ui-tab-height: var(--ui-space-8);
  --ui-tab-pad-x: var(--ui-space-4);
  --ui-tab-font: var(--ui-text-sm);
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  padding: var(--ui-space-1);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
  min-width: 0;
}

.ui-tabs--sm {
  --ui-tab-height: calc(var(--ui-space-2) * 3.5);
  --ui-tab-pad-x: var(--ui-space-3);
  --ui-tab-font: var(--ui-text-xs);
}

.ui-tab {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  height: var(--ui-tab-height);
  padding: 0 var(--ui-tab-pad-x);
  border-radius: var(--ui-radius-full);
  border: none;
  background: transparent;
  color: var(--ui-text-muted);
  font-size: var(--ui-tab-font);
  font-weight: var(--ui-font-semibold);
  cursor: pointer;
  transition: var(--ui-transition-base);
  white-space: nowrap;
}

.ui-tab:hover {
  color: var(--ui-text-primary);
  background: var(--ui-surface-2);
}

.ui-tab--active {
  color: #ffffff;
  background: var(--ui-brand-gradient);
  box-shadow: var(--ui-shadow-glow);
}

.ui-tab mat-icon,
.ui-tab .mat-icon {
  font-size: var(--ui-text-base);
  width: var(--ui-text-base);
  height: var(--ui-text-base);
}

/**
 * Pill-Shaped Tab Styles
 * 
 * A modern, frosted glass tab design with pill-shaped buttons.
 * 
 * Usage:
 * Add class "pill-tabs" to your mat-tab-group element:
 * <mat-tab-group class="pill-tabs">
 */
/* Tab Header Container */
.pill-tabs ::ng-deep .mat-mdc-tab-header,
.pill-tabs ::ng-deep .mat-tab-header,
.pill-tabs.mat-tab-group .mat-tab-header,
.pill-tabs.mat-mdc-tab-group .mat-mdc-tab-header {
  border-bottom: none !important;
  box-shadow: none !important;
  margin-bottom: 30px !important;
  --mdc-tab-indicator-active-indicator-color: transparent;
  padding-bottom: 28px !important;
}

.pill-tabs ::ng-deep .mdc-tab-bar,
.pill-tabs ::ng-deep .mat-mdc-tab-label-container,
.pill-tabs ::ng-deep .mat-mdc-tab-labels {
  border-bottom: none !important;
}

.pill-tabs ::ng-deep .mat-mdc-tab-header::after,
.pill-tabs ::ng-deep .mat-mdc-tab-header::before {
  display: none !important;
}

/* Tab Labels Container */
.pill-tabs ::ng-deep .mat-mdc-tab-labels,
.pill-tabs ::ng-deep .mat-tab-labels {
  background: transparent !important;
  border: none !important;
  justify-content: flex-start !important;
  gap: 8px !important;
  padding: 0 !important;
  border-radius: 0 !important;
  display: flex !important;
  width: 100% !important;
}

.pill-tabs ::ng-deep .mat-mdc-tab-label-container,
.pill-tabs ::ng-deep .mat-tab-label-container {
  background: transparent !important;
  padding: 0 !important;
  overflow: visible !important;
}

/* Base Tab Style (Inactive) - Pill shaped */
.pill-tabs ::ng-deep .mdc-tab {
  border-radius: 28px !important;
  margin-right: 0 !important;
  transition: all 0.1s ease-in-out !important;
  flex-grow: 0 !important;
  min-width: auto !important;
  padding-left: 20px !important;
  padding-right: 20px !important;
  height: 36px !important;
  min-height: 36px !important;
  background: transparent !important;
  border: none !important;
  color: rgba(255, 255, 255, 0.35) !important;
  font-weight: 500 !important;
}

/* Hover State (Inactive) */
.pill-tabs ::ng-deep .mat-mdc-tab:hover:not(.mat-mdc-tab-disabled):not(.mdc-tab--active),
.pill-tabs ::ng-deep .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) {
  color: #ffffff !important;
  background: transparent !important;
  border-color: transparent !important;
  transform: none !important;
}

/* Disable all focus/active outlines and borders */
.pill-tabs ::ng-deep .mdc-tab,
.pill-tabs ::ng-deep .mdc-tab:focus,
.pill-tabs ::ng-deep .mdc-tab:active,
.pill-tabs ::ng-deep .mdc-tab:focus-visible,
.pill-tabs ::ng-deep .mdc-tab button,
.pill-tabs ::ng-deep .mdc-tab button:focus,
.pill-tabs ::ng-deep .mdc-tab button:active,
.pill-tabs ::ng-deep .mdc-tab .mat-mdc-tab-link,
.pill-tabs ::ng-deep .mdc-tab .mat-mdc-tab-link:focus,
.pill-tabs ::ng-deep .mdc-tab .mat-mdc-tab-link:active {
  outline: none !important;
  box-shadow: none !important;
  border: none !important;
}

/* Disable Material focus indicator */
.pill-tabs ::ng-deep .mat-mdc-focus-indicator::before,
.pill-tabs ::ng-deep .mat-mdc-focus-indicator::after {
  display: none !important;
  opacity: 0 !important;
  border: none !important;
}

/* Active Tab Style - Pill with frosted glass background */
.pill-tabs ::ng-deep .mdc-tab--active {
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.02)) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  color: #fff !important;
  font-weight: 700 !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  box-shadow: none !important;
}

.pill-tabs ::ng-deep .mdc-tab--active .mdc-tab__text-label {
  font-weight: 700 !important;
}

.pill-tabs ::ng-deep .mat-mdc-tab-labels {
  justify-content: flex-start !important;
}

/* Tab Text Label */
.pill-tabs ::ng-deep .mdc-tab__text-label {
  font-weight: 500 !important;
  letter-spacing: 0.02em !important;
  font-size: 15px !important;
}

/* Hide all default indicators/ripples/paginators */
.pill-tabs ::ng-deep .mat-mdc-tab-ripple,
.pill-tabs ::ng-deep .mat-ripple-element,
.pill-tabs ::ng-deep .mat-mdc-tab-header-pagination,
.pill-tabs ::ng-deep .mat-tab-header-pagination,
.pill-tabs ::ng-deep .mdc-tab-indicator,
.pill-tabs ::ng-deep .mat-ink-bar,
.pill-tabs ::ng-deep .mat-mdc-tab-ink-bar,
.pill-tabs ::ng-deep .mdc-tab-indicator__content,
.pill-tabs ::ng-deep .mdc-tab-indicator__content--underline {
  display: none !important;
  opacity: 0 !important;
  height: 0 !important;
  border: none !important;
}

/* Clean up body containers */
.pill-tabs ::ng-deep .mat-mdc-tab-body-wrapper,
.pill-tabs ::ng-deep .mat-tab-body-wrapper,
.pill-tabs ::ng-deep .mat-mdc-tab-body,
.pill-tabs ::ng-deep .mat-tab-body,
.pill-tabs ::ng-deep .mat-mdc-tab-body-content,
.pill-tabs ::ng-deep .mat-tab-body-content {
  background: transparent !important;
  padding: 0 !important;
}

/* ==========================================================================
   CUSTOM BUTTON-BASED PILL TABS WITH SLIDING INDICATOR
   ==========================================================================

   Usage:
   <div class="pill-tabs-container">
     <div class="tab-slider" [style.transform]="'translateX(' + position + 'px)'" [style.width.px]="width"></div>
     <button class="pill-tab-btn" [class.active]="activeIndex === 0">Tab 1</button>
     <button class="pill-tab-btn" [class.active]="activeIndex === 1">Tab 2</button>
   </div>

   TypeScript:
   - Track tab button widths with @ViewChildren
   - Calculate slider position on tab change

   ========================================================================== */
/* Container */
.pill-tabs-nav {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
}

.pill-tabs-container {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 32px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  position: relative;
  width: fit-content;
  margin-right: auto; /* Push to left, actions to right */
}

.pill-tabs-container.pill-tabs-managed > .tab-slider {
  opacity: 0;
  visibility: hidden;
}

.pill-tabs-container.pill-tabs-managed.pill-tabs-track--ready > .tab-slider {
  opacity: 1;
  visibility: visible;
}

/* Centered variant for single-control headers */
.pill-tabs-container.pill-tabs-centered {
  margin: 0 auto;
}

/* Right-aligned variant — pushes container to the trailing edge */
.pill-tabs-container.pill-tabs-right {
  margin-left: auto;
  margin-right: 0;
}

/* Sliding Indicator */
.tab-slider {
  position: absolute;
  top: 4px;
  left: 0;
  height: calc(100% - 8px);
  background: linear-gradient(145deg, rgba(255, 153, 102, 0.25), rgba(255, 120, 70, 0.15));
  border: 1px solid rgba(255, 153, 102, 0.35);
  border-radius: 24px;
  box-shadow: 0 4px 20px rgba(255, 120, 70, 0.2);
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), width 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 0;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  will-change: transform, width;
  transform: translate3d(0, 0, 0);
}

/* Ready class smooths the transition */
.tab-slider.ready {
  opacity: 1;
  visibility: visible;
}

/* Tab Button */
.pill-tab-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border: 1px solid transparent;
  border-radius: 24px;
  background: transparent;
  color: rgba(255, 255, 255, 0.5);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: color 0.25s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.25s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.25s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  white-space: nowrap;
  outline: none !important;
  outline-style: none !important;
  outline-width: 0 !important;
  box-shadow: none;
  -webkit-tap-highlight-color: transparent;
  appearance: none;
  position: relative;
  z-index: 1;
}

.pill-tab-btn:focus,
.pill-tab-btn:active,
.pill-tab-btn:focus-visible,
.pill-tab-btn:focus-within {
  outline: none !important;
  outline-style: none !important;
  outline-width: 0 !important;
  border-color: transparent;
}

.pill-tab-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  opacity: 0.7;
  transition: opacity 0.25s ease;
}

.pill-tab-btn i.fab,
.pill-tab-btn i.fa,
.pill-tab-btn i.far,
.pill-tab-btn i.fas {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  font-size: 16px;
  line-height: 1;
  opacity: 0.7;
  transition: opacity 0.25s ease, color 0.25s ease;
}

.pill-tab-btn:hover {
  color: rgba(255, 255, 255, 0.85);
  background: rgba(255, 255, 255, 0.05);
}

.pill-tab-btn:hover mat-icon {
  opacity: 1;
}

.pill-tab-btn:hover i.fab,
.pill-tab-btn:hover i.fa,
.pill-tab-btn:hover i.far,
.pill-tab-btn:hover i.fas {
  opacity: 1;
}

/* Active Tab */
.pill-tab-btn.active {
  background: transparent;
  border: 1px solid transparent;
  color: #fff;
  box-shadow: none;
  outline: none !important;
}

.pill-tab-btn.active:focus,
.pill-tab-btn.active:active {
  outline: none !important;
  box-shadow: none;
}

.pill-tab-btn.active mat-icon {
  opacity: 1;
  color: #ff9966;
}

.pill-tab-btn.active i.fab,
.pill-tab-btn.active i.fa,
.pill-tab-btn.active i.far,
.pill-tab-btn.active i.fas {
  opacity: 1;
  color: #ff9966;
}

/* Tab Badge */
.tab-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 16px;
  height: 16px;
  padding: 0 5px;
  border-radius: 8px;
  background: linear-gradient(145deg, #ff7744, #ff5522);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  margin-left: 3px;
}

/* Zero-state badge for disabled tabs */
.tab-badge--zero {
  background: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.35);
}

/* Disabled Tab — zero-state friendly (visible but non-interactive) */
.pill-tab-btn.disabled,
.pill-tab-btn[disabled] {
  opacity: 0.35;
  cursor: not-allowed;
  pointer-events: none;
}

.pill-tab-btn.disabled:hover,
.pill-tab-btn[disabled]:hover {
  background: transparent;
  color: rgba(255, 255, 255, 0.5);
  transform: none;
}

/* ==========================================================================
   COMPACT VARIANT - For modals/dialogs with less space
   Usage: Add .pill-tabs-compact to the .pill-tabs-container
   ========================================================================== */
.pill-tabs-container.pill-tabs-compact {
  padding: 3px !important;
  gap: 2px !important;
}

.pill-tabs-compact .tab-slider {
  top: 3px !important;
  height: calc(100% - 6px) !important;
}

.pill-tabs-compact .pill-tab-btn {
  padding: 5px 10px !important;
  font-size: 11px !important;
  gap: 5px !important;
}

.pill-tabs-compact .pill-tab-btn mat-icon {
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
}

/* ==========================================================================
   HEADER WITH TABS LAYOUT
   For placing tabs in page headers
   ========================================================================== */
.header-with-tabs {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}

.header-tab-navigation {
  display: flex;
  align-items: center;
}

/* Page-level tab navigation wrapper */
.page-tab-navigation {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 24px;
  padding: 0 16px;
}

.page-tab-navigation--profile {
  width: 100%;
  margin-bottom: 24px;
  padding: 0;
  text-align: center;
}

.pill-tabs-container--profile {
  gap: 4px;
  padding: 4px;
  border-radius: 40px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03));
  border-color: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  margin: 0 auto;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
}

.pill-tabs-container--profile .tab-slider {
  top: 4px;
  left: 4px;
  height: calc(100% - 8px);
  border-radius: 32px;
  background: linear-gradient(135deg, rgba(255, 87, 34, 0.4) 0%, rgba(255, 120, 70, 0.3) 50%, rgba(255, 153, 102, 0.25) 100%);
  border-color: rgba(255, 120, 70, 0.5);
  box-shadow: 0 4px 24px rgba(255, 87, 34, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2);
  transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), width 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.pill-tabs-container--profile .tab-slider::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 32px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.15) 0%, transparent 50%);
  opacity: 0.8;
}

.pill-tabs-container--profile .pill-tab-btn {
  gap: 6px;
  min-height: 36px;
  padding: 8px 14px;
  border-radius: 32px;
  color: rgba(255, 255, 255, 0.55);
  font-size: 13px;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.pill-tabs-container--profile .pill-tab-btn::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 32px;
  background: rgba(255, 255, 255, 0);
  transition: background 0.3s ease;
}

.pill-tabs-container--profile .pill-tab-btn:hover {
  color: rgba(255, 255, 255, 0.9);
  background: transparent;
  transform: translateY(-1px);
}

.pill-tabs-container--profile .pill-tab-btn:hover::before {
  background: rgba(255, 255, 255, 0.06);
}

.pill-tabs-container--profile .pill-tab-btn.active {
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

.pill-tabs-container--profile .pill-tab-btn mat-icon {
  width: 20px;
  height: 20px;
  font-size: 20px;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.pill-tabs-container--profile .pill-tab-btn i.fab,
.pill-tabs-container--profile .pill-tab-btn i.fa,
.pill-tabs-container--profile .pill-tab-btn i.far,
.pill-tabs-container--profile .pill-tab-btn i.fas {
  width: 20px;
  height: 20px;
  font-size: 20px;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.pill-tabs-container--profile .pill-tab-btn:hover mat-icon {
  opacity: 0.9;
  transform: scale(1.05);
}

.pill-tabs-container--profile .pill-tab-btn:hover i.fab,
.pill-tabs-container--profile .pill-tab-btn:hover i.fa,
.pill-tabs-container--profile .pill-tab-btn:hover i.far,
.pill-tabs-container--profile .pill-tab-btn:hover i.fas {
  transform: scale(1.05);
}

.pill-tabs-container--profile .pill-tab-btn.active mat-icon {
  color: #ffb380;
  filter: drop-shadow(0 2px 4px rgba(255, 120, 70, 0.4));
  transform: scale(1.1);
  animation: pillTabProfileIconPulse 2s ease-in-out infinite;
}

.pill-tabs-container--profile .pill-tab-btn.active i.fab,
.pill-tabs-container--profile .pill-tab-btn.active i.fa,
.pill-tabs-container--profile .pill-tab-btn.active i.far,
.pill-tabs-container--profile .pill-tab-btn.active i.fas {
  color: #ffb380;
  filter: drop-shadow(0 2px 4px rgba(255, 120, 70, 0.4));
  transform: scale(1.1);
}

@keyframes pillTabProfileIconPulse {
  0%, 100% {
    transform: scale(1.1);
  }
  50% {
    transform: scale(1.15);
  }
}
/* Tab content container */
.tab-content-container {
  position: relative;
}

.tab-panel {
  animation: fadeIn 0.25s ease-out;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* ==========================================================================
   TAB CONTENT CONTRACT — Generic tab panel content container
   ==========================================================================

   Usage:
   <div class="ui-tab-content">
     <!-- Tab content here -->
   </div>

   ========================================================================== */
.ui-tab-content {
  min-height: 300px;
  position: relative;
}

.ui-tab-content--compact {
  min-height: 200px;
}

.ui-tab-content--tall {
  min-height: 400px;
}

/* Guard: neutralize legacy bootstrap .tab-content frame inside contract modals */
.glass-modal-container .tab-content {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

/* ==========================================================================
   UI CONTROLS - DROPDOWN
   ==========================================================================
   Wraps existing glass-dropdown.css and glass-dropdown-panel.css styling.
   ========================================================================== */
/* Import the existing dropdown styles */
/* CSS imported in styles.scss */
/* CSS imported in styles.scss */
/* Dropdown container */
.ui-dropdown {
  /* Uses existing .glass-dropdown classes */
  position: relative;
}

/* Dropdown panel (for mat-select) */
.ui-dropdown-panel {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  padding: var(--ui-space-2);
  border-radius: var(--ui-radius-lg);
  background: var(--ui-glass-dark);
  border: 1px solid var(--ui-border);
  box-shadow: var(--ui-shadow-lg);
  backdrop-filter: var(--ui-blur-lg);
  -webkit-backdrop-filter: var(--ui-blur-lg);
  min-width: calc(var(--ui-space-12) * 4.5);
  max-height: calc(var(--ui-space-12) * 7);
  overflow: auto;
}

/* Mat-menu contract hardening:
   keep ui-dropdown-panel visuals intact even when legacy global menu styles are present */
.mat-mdc-menu-panel.ui-dropdown-panel,
.mat-menu-panel.ui-dropdown-panel,
.cdk-overlay-pane.ui-dropdown-panel .mat-mdc-menu-panel,
.cdk-overlay-pane.ui-dropdown-panel .mat-menu-panel {
  display: flex !important;
  flex-direction: column !important;
  gap: var(--ui-space-1) !important;
  padding: var(--ui-space-2) !important;
  border-radius: var(--ui-radius-lg) !important;
  border: 1px solid var(--ui-border) !important;
  background: linear-gradient(145deg, rgba(56, 46, 40, 0.9), rgba(34, 29, 25, 0.94)) !important;
  background-color: rgba(42, 35, 30, 0.93) !important;
  box-shadow: var(--ui-shadow-lg) !important;
  backdrop-filter: blur(24px) saturate(130%) !important;
  -webkit-backdrop-filter: blur(24px) saturate(130%) !important;
  min-width: calc(var(--ui-space-12) * 4.5) !important;
  max-width: calc(100vw - var(--ui-space-3) * 2) !important;
  max-height: min(var(--ui-space-12) * 7, 100vh - var(--ui-space-6) * 2) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
}

.mat-mdc-menu-panel.ui-dropdown-panel .mat-mdc-menu-content,
.mat-menu-panel.ui-dropdown-panel .mat-menu-content,
.cdk-overlay-pane.ui-dropdown-panel .mat-mdc-menu-content,
.cdk-overlay-pane.ui-dropdown-panel .mat-menu-content {
  background: transparent !important;
  padding: 0 !important;
}

.mat-mdc-menu-panel.ui-dropdown-panel .mat-mdc-menu-item,
.mat-menu-panel.ui-dropdown-panel .mat-menu-item,
.cdk-overlay-pane.ui-dropdown-panel .mat-mdc-menu-item,
.cdk-overlay-pane.ui-dropdown-panel .mat-menu-item {
  min-height: 44px !important;
  padding: var(--ui-space-2) var(--ui-space-3) !important;
  margin: 2px 0 !important;
  border-radius: var(--ui-radius-md) !important;
  border: 1px solid transparent !important;
  background: transparent !important;
  color: var(--ui-text-secondary) !important;
  transform: none !important;
}

.mat-mdc-menu-panel.ui-dropdown-panel .mat-mdc-menu-item:hover,
.mat-menu-panel.ui-dropdown-panel .mat-menu-item:hover,
.cdk-overlay-pane.ui-dropdown-panel .mat-mdc-menu-item:hover,
.cdk-overlay-pane.ui-dropdown-panel .mat-menu-item:hover {
  background: var(--ui-surface-2) !important;
  border-color: var(--ui-border-hover) !important;
  color: var(--ui-text-primary) !important;
  transform: none !important;
  box-shadow: none !important;
}

.mat-mdc-menu-panel.ui-dropdown-panel .mat-mdc-menu-item.mat-mdc-menu-item-highlighted,
.mat-menu-panel.ui-dropdown-panel .mat-menu-item.mat-menu-item-highlighted,
.cdk-overlay-pane.ui-dropdown-panel .mat-mdc-menu-item.mat-mdc-menu-item-highlighted,
.cdk-overlay-pane.ui-dropdown-panel .mat-menu-item.mat-menu-item-highlighted {
  background: var(--ui-surface-3) !important;
  border-color: var(--ui-border-focus) !important;
  color: var(--ui-text-primary) !important;
  font-weight: var(--ui-font-semibold) !important;
  transform: none !important;
  box-shadow: none !important;
}

.ui-dropdown-panel--flat {
  background: var(--ui-surface-1);
  border-color: var(--ui-border);
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.ui-dropdown-panel .mat-mdc-option,
.ui-dropdown-panel .mat-option,
.ui-dropdown-panel .mat-mdc-menu-item,
.ui-dropdown-panel .mat-menu-item {
  padding: var(--ui-space-2) var(--ui-space-3) !important;
  border-radius: var(--ui-radius-md) !important;
  font-size: var(--ui-text-sm) !important;
  font-weight: var(--ui-font-medium) !important;
  color: var(--ui-text-secondary) !important;
  border: 1px solid transparent !important;
  background: transparent !important;
}

.ui-dropdown-panel .mat-mdc-option:hover,
.ui-dropdown-panel .mat-mdc-option.mat-mdc-option-active,
.ui-dropdown-panel .mat-option:hover,
.ui-dropdown-panel .mat-option.mat-active,
.ui-dropdown-panel .mat-mdc-menu-item:hover,
.ui-dropdown-panel .mat-menu-item:hover {
  background: var(--ui-surface-2) !important;
  border-color: var(--ui-border-hover) !important;
  color: var(--ui-text-primary) !important;
}

.ui-dropdown-panel .mat-mdc-option.mdc-list-item--selected,
.ui-dropdown-panel .mat-mdc-option.mat-mdc-option-selected,
.ui-dropdown-panel .mat-option.mat-selected,
.ui-dropdown-panel .mat-mdc-menu-item.mat-mdc-menu-item-highlighted {
  background: var(--ui-surface-3) !important;
  border-color: var(--ui-border-focus) !important;
  color: var(--ui-text-primary) !important;
  font-weight: var(--ui-font-semibold) !important;
}

/* ==========================================================================
   LEGACY DROPDOWN STYLES (Migrated from styles.scss)
   ========================================================================== */
/* Select dropdown z-index fix
   Must exceed dialog overlay container z-index (10010 in overrides.scss)
   so mat-select panels inside modals render above the dialog */
.cdk-overlay-container .cdk-overlay-pane:has(.mat-mdc-select-panel) {
  z-index: 10020 !important;
}

.cdk-overlay-container .cdk-overlay-pane:has(.glass-dropdown-panel) {
  z-index: 10020 !important;
}

.cdk-overlay-container .cdk-overlay-pane:has(.ui-dropdown-panel) {
  z-index: 10020 !important;
}

/* ==========================================================================
   DROPDOWN OPTION - RICH (Icon + Label + Subtitle)
   ==========================================================================
   Reusable pattern for dropdown options with icon, label, and helper text.
   Usage: <span class="ui-dropdown-option--rich">
            <mat-icon>...</mat-icon>
            <span class="option-text">
              <span class="option-label">Label</span>
              <span class="option-helper">Helper text</span>
            </span>
          </span>
   ========================================================================== */
.glass-dropdown-panel .ui-dropdown-option--rich,
.ui-dropdown-panel .ui-dropdown-option--rich,
.cdk-overlay-container .ui-dropdown-option--rich {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.glass-dropdown-panel .ui-dropdown-option--rich mat-icon,
.ui-dropdown-panel .ui-dropdown-option--rich mat-icon,
.cdk-overlay-container .ui-dropdown-option--rich mat-icon {
  font-size: 24px;
  width: 24px;
  height: 24px;
  color: #ff7a3d;
  margin-top: 4px;
  flex-shrink: 0;
  filter: drop-shadow(0 0 4px rgba(255, 122, 61, 0.4));
}

.glass-dropdown-panel .ui-dropdown-option--rich .option-text,
.ui-dropdown-panel .ui-dropdown-option--rich .option-text,
.cdk-overlay-container .ui-dropdown-option--rich .option-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.glass-dropdown-panel .ui-dropdown-option--rich .option-label,
.ui-dropdown-panel .ui-dropdown-option--rich .option-label,
.cdk-overlay-container .ui-dropdown-option--rich .option-label {
  font-size: 14px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.9);
}

.glass-dropdown-panel .ui-dropdown-option--rich .option-helper,
.ui-dropdown-panel .ui-dropdown-option--rich .option-helper,
.cdk-overlay-container .ui-dropdown-option--rich .option-helper {
  font-size: 11px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.45);
  line-height: 1.3;
}

/* ==========================================================================
   INLINE FILTER CONTROLS
   ==========================================================================
   Filter trigger buttons for dropdown menus in headers/toolbars.
   Usage: <button class="filter-trigger" [matMenuTriggerFor]="menu">
   ========================================================================== */
.inline-filters {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.filter-dropdown {
  position: relative;
}

.filter-trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  height: 36px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.85);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.filter-trigger:hover:not(:disabled):not(.disabled) {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
}

.filter-trigger.disabled,
.filter-trigger:disabled {
  opacity: 0.35;
  cursor: not-allowed;
  pointer-events: none;
  background: rgba(255, 255, 255, 0.02);
  border-color: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.4);
}

/* Allow pointer-events on the wrapper for tooltip to work */
.filter-dropdown:has(.filter-trigger:disabled) {
  cursor: not-allowed;
}

.filter-trigger.active {
  background: rgba(255, 130, 90, 0.12);
  border-color: rgba(255, 130, 90, 0.3);
  color: rgba(255, 180, 140, 0.95);
}

.filter-trigger mat-icon:first-child {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: rgba(255, 255, 255, 0.6);
}

.filter-trigger.active mat-icon:first-child {
  color: rgba(255, 180, 140, 0.95);
}

.filter-trigger .chevron {
  font-size: 18px;
  width: 18px;
  height: 18px;
  margin-left: 2px;
  transition: transform 0.2s ease;
  color: rgba(255, 255, 255, 0.5);
}

.filter-clear-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 8px 14px;
  height: 36px;
  border-radius: 999px;
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.25);
  color: #f87171;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
}

.filter-clear-btn:hover {
  background: rgba(239, 68, 68, 0.18);
  border-color: rgba(239, 68, 68, 0.4);
}

.filter-clear-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

/* Org Policies trigger button */
.org-policies-trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  height: 36px;
  border-radius: 999px;
  background: rgba(255, 122, 61, 0.08);
  border: 1px solid rgba(255, 122, 61, 0.22);
  color: #ff7a3d;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.org-policies-trigger:hover {
  background: rgba(255, 122, 61, 0.15);
  border-color: rgba(255, 122, 61, 0.35);
  transform: translateY(-1px);
}

.org-policies-trigger mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

/* 
 * Shared Glassmorphic Dropdown Styles
 * Usage: Add panelClass="glass-dropdown-panel" to mat-select or mat-autocomplete
 */
/* ============================================
   GLOBAL MAT-MENU DROPDOWN DESIGN
   This applies to all mat-menu dropdowns globally
   ============================================ */
/* Mat-menu panel container - Glassmorphic with 24px rounded corners */
.mat-menu-panel,
.mat-mdc-menu-panel {
  background: linear-gradient(145deg, rgba(60, 50, 45, 0.25), rgba(40, 35, 30, 0.35)) !important;
  backdrop-filter: blur(60px) saturate(100%) brightness(1) !important;
  -webkit-backdrop-filter: blur(60px) saturate(100%) brightness(1) !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  border-radius: 24px !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.35), 0 16px 48px rgba(0, 0, 0, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
  padding: 8px !important;
  min-width: 180px !important;
  color: #fff !important;
}

/* ============================================
   GLOBAL MAT-SELECT PANEL STYLING
   Applies glass-dropdown-panel style to ALL mat-select dropdowns
   ============================================ */
.mat-mdc-select-panel,
.cdk-overlay-pane .mat-mdc-select-panel {
  background: linear-gradient(145deg, rgba(60, 50, 45, 0.25), rgba(40, 35, 30, 0.35)) !important;
  backdrop-filter: blur(60px) saturate(100%) brightness(1) !important;
  -webkit-backdrop-filter: blur(60px) saturate(100%) brightness(1) !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  border-radius: 20px !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.35), 0 16px 48px rgba(0, 0, 0, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
  padding: 8px !important;
}

/* Global mat-select option styling */
.mat-mdc-select-panel .mat-mdc-option {
  color: rgba(255, 255, 255, 0.85) !important;
  background: transparent !important;
  min-height: 44px !important;
  padding: 10px 16px !important;
  margin: 4px 8px !important;
  border-radius: 14px !important;
  border: 1px solid transparent !important;
  transition: all 0.2s ease !important;
  font-size: 13px !important;
  font-weight: 500 !important;
}

/* Global mat-select option hover - works on all options including first */
.mat-mdc-select-panel .mat-mdc-option:hover {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.04)) !important;
  border-color: rgba(255, 140, 80, 0.3) !important;
  color: #ffffff !important;
  transform: translateX(2px) !important;
}

/* Disable auto-focus highlighting on first option when NOT hovering */
.mat-mdc-select-panel .mat-mdc-option.mat-mdc-option-active:not(:hover):not(.mdc-list-item--selected) {
  background: transparent !important;
  border-color: transparent !important;
  transform: none !important;
}

/* Global mat-select option selected */
.mat-mdc-select-panel .mat-mdc-option.mdc-list-item--selected,
.mat-mdc-select-panel .mat-mdc-option.mat-mdc-option-selected {
  background: rgba(255, 140, 80, 0.15) !important;
  border: 1px solid rgba(255, 140, 80, 0.4) !important;
  color: #ffffff !important;
  font-weight: 600 !important;
}

/* Global mat-select checkbox - Outline-only style */
.mat-mdc-select-panel .mat-pseudo-checkbox {
  width: 18px !important;
  height: 18px !important;
  border: 2px solid rgba(255, 255, 255, 0.25) !important;
  border-radius: 5px !important;
  background: transparent !important;
  transition: all 0.2s ease !important;
  position: relative !important;
}

/* Checked state - orange outline only, no fill */
.mat-mdc-select-panel .mat-pseudo-checkbox-checked,
.mat-mdc-select-panel .mat-pseudo-checkbox-indeterminate {
  background: transparent !important;
  border-color: #ff8a50 !important;
}

/* Checkmark styling - properly centered */
.mat-mdc-select-panel .mat-pseudo-checkbox-checked::after {
  content: "" !important;
  position: absolute !important;
  left: 5px !important;
  top: 2px !important;
  width: 5px !important;
  height: 9px !important;
  border: solid #ff8a50 !important;
  border-width: 0 2px 2px 0 !important;
  transform: rotate(45deg) !important;
}

/* Hide ripple effects */
.mat-mdc-select-panel .mat-mdc-option .mat-ripple-element,
.mat-mdc-select-panel .mat-mdc-option .mat-mdc-focus-indicator {
  display: none !important;
}

/* Mat-select search/filter input text visibility */
.mat-mdc-select-panel input,
.mat-mdc-select-panel .mat-mdc-option input,
.mat-mdc-select-panel .mat-select-search-input,
.mat-mdc-select-panel mat-select-search input,
.glass-dropdown-panel input,
.glass-dropdown-panel .mat-select-search-input,
.cdk-overlay-pane .mat-mdc-select-panel input {
  color: #ffffff !important;
  caret-color: #ff7a3d !important;
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  border-radius: 8px !important;
  padding: 10px 14px !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  outline: none !important;
}

.mat-mdc-select-panel input::placeholder,
.glass-dropdown-panel input::placeholder {
  color: rgba(255, 255, 255, 0.4) !important;
}

.mat-mdc-select-panel input:focus,
.glass-dropdown-panel input:focus {
  border-color: rgba(255, 140, 80, 0.5) !important;
  background: rgba(255, 255, 255, 0.08) !important;
}

/* FILTER PANEL MENU - Wider panel for expense/filter dropdowns */
.mat-mdc-menu-panel.filter-panel-menu,
.filter-panel-menu.mat-mdc-menu-panel,
.cdk-overlay-pane .filter-panel-menu {
  min-width: 520px !important;
  max-width: 580px !important;
  width: 560px !important;
  padding: 0 !important;
  /* Brighter glass surface — warm dark but not opaque */
  background: linear-gradient(145deg, rgba(28, 22, 18, 0.92) 0%, rgba(22, 17, 14, 0.95) 100%) !important;
  backdrop-filter: blur(48px) saturate(140%) brightness(1.1) !important;
  -webkit-backdrop-filter: blur(48px) saturate(140%) brightness(1.1) !important;
  border: 1px solid rgba(255, 255, 255, 0.14) !important;
  border-radius: 20px !important;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.45), 0 8px 24px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1) !important;
  overflow: hidden !important;
}

/* Remove any hidden top space/line from mat-menu structure */
.filter-panel-menu .mat-mdc-menu-content {
  padding: 0 !important;
  margin: 0 !important;
}

/* Center the filter panel menu in the viewport */
.cdk-overlay-pane:has(.filter-panel-menu) {
  position: fixed !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  bottom: auto !important;
  right: auto !important;
}

/* Backdrop for filter panel menu - slightly lighter than pure black */
.filter-panel-backdrop,
.cdk-overlay-backdrop.filter-panel-backdrop {
  background: rgba(0, 0, 0, 0.45) !important;
  backdrop-filter: blur(4px) !important;
  -webkit-backdrop-filter: blur(4px) !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

/* Mat-menu content wrapper */
.mat-mdc-menu-content,
.mat-menu-content {
  padding: 0 !important;
  background: transparent !important;
}

/* Mat-menu item base styles - 16px rounded */
.mat-menu-item,
.mat-mdc-menu-item {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 12px 16px !important;
  margin: 2px 0 !important;
  border-radius: 16px !important;
  background: transparent !important;
  color: rgba(255, 255, 255, 0.85) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em !important;
  transition: all 0.2s ease !important;
  border: 1px solid transparent !important;
  min-height: 44px !important;
}

/* Mat-menu item icon styling */
.mat-menu-item i,
.mat-mdc-menu-item i,
.mat-menu-item .fa,
.mat-mdc-menu-item .fa,
.mat-menu-item mat-icon,
.mat-mdc-menu-item mat-icon {
  color: rgba(255, 180, 130, 0.8) !important;
  font-size: 16px !important;
  width: 20px !important;
  text-align: center !important;
  transition: color 0.2s ease !important;
}

/* Mat-menu item HOVER effect - warm orange accent with transform & shadow */
.mat-menu-item:hover,
.mat-mdc-menu-item:hover,
.mat-menu-item-highlighted:not([disabled]),
.mat-menu-item.cdk-keyboard-focused:not([disabled]),
.mat-menu-item.cdk-program-focused:not([disabled]) {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.04)) !important;
  border-color: rgba(255, 140, 80, 0.35) !important;
  color: #ffffff !important;
  transform: translateX(2px) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15), 0 2px 4px rgba(255, 140, 80, 0.1) !important;
}

/* Hover icon enhancement */
.mat-menu-item:hover i,
.mat-mdc-menu-item:hover i,
.mat-menu-item:hover .fa,
.mat-mdc-menu-item:hover .fa,
.mat-menu-item:hover mat-icon,
.mat-mdc-menu-item:hover mat-icon {
  color: #ffb083 !important;
}

/* Mat-menu item SELECTED/ACTIVE effect */
.mat-menu-item.selected,
.mat-mdc-menu-item.selected,
.mat-menu-item.active,
.mat-mdc-menu-item.active,
.mat-menu-item:active:not([disabled]),
.mat-mdc-menu-item:active:not([disabled]) {
  background: rgba(255, 140, 80, 0.18) !important;
  border-color: rgba(255, 140, 80, 0.45) !important;
  color: #ffb083 !important;
}

/* Selected icon color */
.mat-menu-item.selected i,
.mat-mdc-menu-item.selected i,
.mat-menu-item.selected mat-icon,
.mat-mdc-menu-item.selected mat-icon {
  color: #ff9050 !important;
}

/* Mat-menu item focus state - no background to avoid first item appearing selected */
.mat-menu-item:focus,
.mat-mdc-menu-item:focus {
  background: transparent !important;
  border-color: transparent !important;
  outline: none !important;
}

/* Remove default Material ripple/focus indicators */
.mat-menu-item .mat-ripple-element,
.mat-mdc-menu-item .mat-ripple-element,
.mat-menu-item .mat-mdc-focus-indicator,
.mat-mdc-menu-item .mat-mdc-focus-indicator,
.mat-menu-item .mdc-list-item__ripple,
.mat-mdc-menu-item .mdc-list-item__ripple {
  display: none !important;
  opacity: 0 !important;
}

/* Mat-select panels don't need a backdrop - handled by parent modal */
/* Disabled menu items */
.mat-menu-item[disabled],
.mat-mdc-menu-item[disabled] {
  color: rgba(255, 255, 255, 0.35) !important;
  cursor: not-allowed !important;
}

.mat-menu-item[disabled] i,
.mat-mdc-menu-item[disabled] i {
  color: rgba(255, 180, 130, 0.35) !important;
}

/* 1. The Panel Itself
   NOTE: target panel surfaces only; never style .cdk-overlay-pane directly */
.mat-mdc-select-panel.glass-dropdown-panel,
.mat-menu-panel.glass-dropdown-panel,
.mat-mdc-menu-panel.glass-dropdown-panel,
.cdk-overlay-pane.glass-dropdown-panel .mat-menu-panel,
.cdk-overlay-pane.glass-dropdown-panel .mat-mdc-menu-panel {
  background: var(--ui-glass-dropdown-surface) !important;
  background-color: var(--ui-glass-dropdown-surface-solid) !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  box-shadow: var(--ui-glass-dropdown-shadow) !important;
  border-radius: 28px !important; /* Increased for more rounded look */
  padding: 10px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
  margin-top: 10px !important;
  min-width: 280px !important;
  width: auto !important;
  max-width: calc(100vw - 24px) !important;
  overflow: hidden !important;
  overflow-y: auto !important;
  /* Reduced saturation for less colorful appearance */
  backdrop-filter: var(--ui-glass-dropdown-blur) !important;
  -webkit-backdrop-filter: var(--ui-glass-dropdown-blur) !important;
}

/* Autocomplete Panel Specific Styling - Match the DARK glass style from glass-dropdown-panel.css */
.mat-mdc-autocomplete-panel.glass-dropdown-panel,
.mat-autocomplete-panel.glass-dropdown-panel {
  background: var(--ui-glass-dropdown-surface) !important;
  background-color: var(--ui-glass-dropdown-surface-solid) !important;
  /* Backdrop filter for glassmorphism */
  backdrop-filter: var(--ui-glass-dropdown-blur) !important;
  -webkit-backdrop-filter: var(--ui-glass-dropdown-blur) !important;
  /* Border with subtle glow */
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  /* Shadows for depth */
  box-shadow: var(--ui-glass-dropdown-shadow) !important;
  border-radius: 20px !important;
  padding: 8px !important;
  margin-top: 8px !important;
  max-height: 350px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  /* Keep panel anchored to trigger width and inside viewport */
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* GLOBAL AUTOCOMPLETE FIX - Applies to ALL autocomplete panels with glass-dropdown-panel */
.cdk-overlay-container .cdk-overlay-pane .mat-mdc-autocomplete-panel.glass-dropdown-panel,
.cdk-overlay-container .cdk-overlay-pane .mat-autocomplete-panel.glass-dropdown-panel,
.cdk-overlay-container .mat-mdc-autocomplete-panel.glass-dropdown-panel,
.cdk-overlay-container .mat-autocomplete-panel.glass-dropdown-panel,
div.mat-mdc-autocomplete-panel.glass-dropdown-panel,
div.mat-autocomplete-panel.glass-dropdown-panel {
  background: var(--ui-glass-dropdown-surface) !important;
  background-color: var(--ui-glass-dropdown-surface-solid) !important;
  backdrop-filter: var(--ui-glass-dropdown-blur) !important;
  -webkit-backdrop-filter: var(--ui-glass-dropdown-blur) !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  box-shadow: var(--ui-glass-dropdown-shadow) !important;
  border-radius: 16px !important;
  padding: 8px !important;
}

/* CRITICAL: Ensure the overlay pane is TRANSPARENT - no blur here to prevent artifact */
.cdk-overlay-pane:has(.mat-mdc-autocomplete-panel.glass-dropdown-panel),
.cdk-overlay-pane:has(.mat-autocomplete-panel.glass-dropdown-panel) {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  background: transparent !important;
  max-width: calc(100vw - 24px) !important;
}

/* If glass class is attached to overlay pane, keep the pane neutral */
.cdk-overlay-pane.glass-dropdown-panel {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  max-width: calc(100vw - 24px) !important;
}

/* Hide dropdown/select backdrops - only targets transparent backdrops used by mat-select/autocomplete
   Do NOT hide all backdrops - that breaks modal backdrops when dropdowns open inside modals */
.cdk-overlay-backdrop.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {
  opacity: 0 !important;
  background: transparent !important;
  pointer-events: auto !important;
}

/* 3. Dropdown Options (mat-option) */
.glass-dropdown-panel .mat-mdc-option,
.glass-dropdown-panel .mat-option,
.glass-dropdown-panel mat-option {
  color: rgba(255, 255, 255, 0.8) !important;
  transition: all 0.2s ease;
  border-radius: 14px !important;
  margin: 4px 8px !important;
  padding: 10px 16px !important;
  min-height: 44px !important;
  height: auto !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em !important;
  border: 1px solid transparent !important;
  background: rgba(255, 255, 255, 0.02) !important;
  box-sizing: border-box !important;
  width: calc(100% - 16px) !important;
  /* Prevent text wrapping */
  white-space: nowrap !important;
}

/* Option Content Alignment */
.glass-dropdown-panel .mat-mdc-option .mdc-list-item__primary-text,
.glass-dropdown-panel .mat-option-text {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 500;
}

/* 4. Hover States - works on all options including first */
.glass-dropdown-panel .mat-mdc-option:hover,
.glass-dropdown-panel .mat-option:hover {
  /* Gradient glass highlight */
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.04)) !important;
  /* Orange-tinted border on hover */
  border-color: rgba(255, 140, 80, 0.3) !important;
  /* Brighter text */
  color: #ffffff !important;
  /* Subtle slide effect */
  transform: translateX(2px) !important;
}

/* Keyboard-active state (arrow keys) — match hover style */
.glass-dropdown-panel .mat-mdc-option.mat-mdc-option-active:not(.mdc-list-item--selected),
.glass-dropdown-panel .mat-option.mat-active:not(.mat-selected) {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.04)) !important;
  border-color: rgba(255, 140, 80, 0.3) !important;
  color: #ffffff !important;
  transform: translateX(2px) !important;
}

/* 5. Selected State */
.glass-dropdown-panel .mat-mdc-option.mdc-list-item--selected,
.glass-dropdown-panel .mat-mdc-option.mat-mdc-option-selected,
.glass-dropdown-panel .mat-option.mat-selected {
  /* Orange-tinted glass background */
  background: rgba(255, 140, 80, 0.15) !important;
  /* Orange border */
  border: 1px solid rgba(255, 140, 80, 0.4) !important;
  border-radius: 14px !important;
  /* White text */
  color: #ffffff !important;
  font-weight: 600 !important;
  box-shadow: none !important;
}

/* 6. Cleanup Material Artifacts (Ripple, Focus) */
.glass-dropdown-panel .mat-mdc-option .mat-ripple-element,
.glass-dropdown-panel .mat-mdc-option .mat-mdc-focus-indicator,
.glass-dropdown-panel .mat-option .mat-ripple-element {
  display: none !important;
  opacity: 0 !important;
  background: transparent !important;
}

/* ============================================
   CSS-Based Checkboxes for Multi-Select ONLY
   Only applies to panels with 'glass-multi-select' class
   ============================================ */
/* Add checkbox before each option in multi-select */
.glass-multi-select .mat-mdc-option::before {
  content: "" !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  flex-shrink: 0 !important;
  border: 2px solid rgba(255, 255, 255, 0.4) !important;
  border-radius: 4px !important;
  background: transparent !important;
  margin-right: 12px !important;
  transition: all 0.2s ease !important;
  box-sizing: border-box !important;
  order: -1 !important;
}

/* Checked state - selected option */
.glass-multi-select .mat-mdc-option.mdc-list-item--selected::before,
.glass-multi-select .mat-mdc-option.mat-mdc-option-active.mdc-list-item--selected::before {
  background: #ff8f5c !important;
  border-color: #ff8f5c !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z'/%3E%3C/svg%3E") !important;
  background-size: 14px 14px !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
}

/* Hover state for checkbox */
.glass-multi-select .mat-mdc-option:hover::before {
  border-color: rgba(255, 255, 255, 0.6) !important;
}

/* Hide Material pseudo-checkboxes since we use CSS-based ones */
.glass-multi-select .mat-pseudo-checkbox,
.glass-multi-select .mat-mdc-option .mat-pseudo-checkbox,
.glass-multi-select .mat-mdc-option .mat-pseudo-checkbox-minimal,
.glass-multi-select .mat-mdc-option .mat-pseudo-checkbox-full {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
}

/* Hide ::before for single-select dropdowns (only show for .glass-multi-select) */
.glass-dropdown-panel:not(.glass-multi-select) .mat-mdc-option::before {
  display: none !important;
  content: none !important;
}

/* ============================================
   Custom Checkbox Spans for Multi-Select
   ============================================ */
/* Custom checkbox span added in template */
.glass-checkbox-panel .option-checkbox {
  display: inline-block !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  border: 2px solid rgba(255, 255, 255, 0.4) !important;
  border-radius: 4px !important;
  background: transparent !important;
  margin-right: 12px !important;
  transition: all 0.2s ease !important;
  vertical-align: middle !important;
  box-sizing: border-box !important;
  position: relative !important;
}

/* Checkbox checked state when option is selected */
.glass-checkbox-panel .mat-mdc-option.mdc-list-item--selected .option-checkbox {
  background: rgba(255, 99, 71, 0.9) !important;
  border-color: rgba(255, 99, 71, 0.9) !important;
}

/* Checkmark inside selected checkbox */
.glass-checkbox-panel .mat-mdc-option.mdc-list-item--selected .option-checkbox::after {
  content: "" !important;
  position: absolute !important;
  left: 5px !important;
  top: 1px !important;
  width: 5px !important;
  height: 10px !important;
  border: solid white !important;
  border-width: 0 2px 2px 0 !important;
  transform: rotate(45deg) !important;
}

/* Hover state */
.glass-checkbox-panel .mat-mdc-option:hover .option-checkbox {
  border-color: rgba(255, 255, 255, 0.6) !important;
}

/* Right alignment helper */
.glass-dropdown-panel.right-aligned {
  transform-origin: top right !important;
}

/* ============================================
   Color Indicator for Options
   ============================================ */
.glass-dropdown-panel .color-indicator {
  display: inline-block !important;
  width: 16px !important;
  height: 16px !important;
  border-radius: 3px !important;
  margin-right: 10px !important;
  vertical-align: middle !important;
  flex-shrink: 0 !important;
}

/* ============================================
   Mat Menu Item Support (for mat-menu)
   ============================================ */
/* 7. Menu Items (mat-menu-item) */
.glass-dropdown-panel .mat-mdc-menu-item,
.glass-dropdown-panel .mat-menu-item {
  color: rgba(200, 190, 185, 0.85) !important;
  transition: all 0.2s ease;
  border-radius: 28px !important; /* Increased for more rounded look */
  margin: 0 8px !important;
  padding: 6px 14px !important;
  min-height: auto !important;
  height: auto !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em !important;
  border: 1px solid transparent !important;
  background: transparent;
}

/* Menu Item Hover State */
.glass-dropdown-panel .mat-mdc-menu-item:hover,
.glass-dropdown-panel .mat-menu-item:hover {
  background: rgba(255, 255, 255, 0.05) !important;
  color: rgba(255, 255, 255, 0.95) !important;
}

/* Menu Item Selected State (custom class) */
.glass-dropdown-panel .mat-mdc-menu-item.selected,
.glass-dropdown-panel .mat-menu-item.selected,
.glass-menu .mat-mdc-menu-item.selected,
.glass-menu .mat-menu-item.selected {
  background: rgba(255, 120, 80, 0.12) !important;
  color: #ffb083 !important;
  font-weight: 600 !important;
  border: 1px solid rgba(255, 120, 80, 0.25) !important;
  position: relative !important;
  padding-left: 28px !important;
}

/* Checkmark for selected menu items */
.glass-dropdown-panel .mat-mdc-menu-item.selected::before,
.glass-dropdown-panel .mat-menu-item.selected::before,
.glass-menu .mat-mdc-menu-item.selected::before,
.glass-menu .mat-menu-item.selected::before {
  content: "✓" !important;
  position: absolute !important;
  left: 10px !important;
  color: #ff7850 !important;
  font-weight: 700 !important;
}

/* Cleanup Material Artifacts for Menu Items */
.glass-dropdown-panel .mat-mdc-menu-item .mat-ripple-element,
.glass-dropdown-panel .mat-mdc-menu-item::before:not(.selected::before),
.glass-dropdown-panel .mat-mdc-menu-item .mat-mdc-focus-indicator,
.glass-dropdown-panel .mat-menu-item .mat-ripple-element {
  display: none !important;
  opacity: 0 !important;
  background: transparent !important;
}

/* ============================================
   Glass Menu Panel (for mat-menu with class="glass-menu")
   ============================================ */
/* Target the mat-menu panel via its class */
.glass-menu.mat-mdc-menu-panel,
.mat-mdc-menu-panel.glass-menu,
.cdk-overlay-pane .glass-menu {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  backdrop-filter: blur(40px) saturate(180%) brightness(1.05) !important;
  -webkit-backdrop-filter: blur(40px) saturate(180%) brightness(1.05) !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
  border-radius: 20px !important;
  padding: 8px !important;
  min-width: 280px !important;
  overflow: hidden !important;
}

/* Prevent overlay pane from adding an extra blurred rectangle behind glass menus */
.cdk-overlay-pane:has(.glass-menu) {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
}

/* Also disable on the parent overlay container */
.cdk-overlay-container:has(.glass-menu) {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Prevent overlay pane from adding an extra blurred rectangle behind glass dropdown panels */
.cdk-overlay-pane:has(.glass-dropdown-panel) {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
}

/* Also disable on the parent overlay container for dropdown panels */
.cdk-overlay-container:has(.glass-dropdown-panel) {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Remove ALL nested backgrounds */
.glass-menu .mat-mdc-menu-content,
.glass-menu.mat-mdc-menu-panel .mat-mdc-menu-content,
.mat-mdc-menu-panel.glass-menu .mat-mdc-menu-content {
  background: transparent !important;
  background-color: transparent !important;
  padding: 0 !important;
}

/* Glass Menu Items */
.glass-menu .mat-mdc-menu-item,
.glass-menu .mat-menu-item {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  color: rgba(255, 255, 255, 0.8) !important;
  transition: all 0.2s ease !important;
  border-radius: 12px !important;
  margin: 2px 0 !important;
  padding: 10px 16px !important;
  min-height: 40px !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em !important;
  background: transparent !important;
  background-color: transparent !important;
}

/* Count badge inside menu items */
.glass-menu .menu-item-count,
.glass-dropdown-panel .menu-item-count {
  margin-left: auto !important;
  padding-left: 12px !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  color: rgba(255, 255, 255, 0.35) !important;
  white-space: nowrap !important;
}

/* Make the inner text container flex so count pushes right */
.glass-menu .mat-mdc-menu-item .mdc-list-item__primary-text {
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
}

/* Glass Menu Item Hover */
.glass-menu .mat-mdc-menu-item:hover,
.glass-menu .mat-menu-item:hover {
  background: rgba(255, 255, 255, 0.08) !important;
  background-color: rgba(255, 255, 255, 0.08) !important;
  color: rgba(255, 255, 255, 0.95) !important;
}

/* Glass Menu Item Focus */
.glass-menu .mat-mdc-menu-item:focus,
.glass-menu .mat-menu-item:focus {
  background: rgba(255, 255, 255, 0.06) !important;
  background-color: rgba(255, 255, 255, 0.06) !important;
}

/* Cleanup ripple and focus indicators */
.glass-menu .mat-mdc-menu-item .mat-ripple-element,
.glass-menu .mat-mdc-menu-item .mat-mdc-focus-indicator,
.glass-menu .mat-mdc-menu-item::before,
.glass-menu .mat-mdc-menu-item .mdc-list-item__ripple {
  display: none !important;
  opacity: 0 !important;
  background: transparent !important;
  background-color: transparent !important;
}

/* Remove the mdc-menu-surface background */
.glass-menu .mdc-menu-surface,
.glass-menu.mdc-menu-surface {
  background: transparent !important;
  background-color: transparent !important;
}

/* ============================================
   Glass Tooltip - MOVED TO CENTRALIZED CONTRACT
   Tooltip styles consolidated into ui/overlays/tooltip.scss
   ============================================ */
/* ============================================
   Booking Invoices - White Date Filter Override
   ============================================ */
app-booking-invoices .pill-trigger.active-filter {
  border-color: rgba(255, 255, 255, 0.2) !important;
  background: rgba(255, 255, 255, 0.05) !important;
}

app-booking-invoices .pill-trigger.active-filter .pill-single-title,
app-booking-invoices .pill-trigger.active-filter .pill-start-icon,
app-booking-invoices .pill-trigger.active-filter mat-icon {
  color: rgba(255, 255, 255, 0.9) !important;
}

/* ============================================
   Glass Datepicker Panel
   Usage: Add panelClass="glass-datepicker-panel" to mat-datepicker
   ============================================ */
/* GLOBAL FIX: Give ALL datepicker content a solid dark surface */
/* Uses a solid dark background so it is visible inside glassmorphic modals */
.mat-datepicker-content,
.mat-datepicker-popup,
.cdk-overlay-pane .mat-datepicker-content {
  background: rgba(35, 30, 28, 0.97) !important;
  background-color: rgba(35, 30, 28, 0.97) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  border-radius: 20px !important;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;
  overflow: hidden !important;
}

/* The datepicker content wrapper with glass-datepicker-panel class */
.mat-datepicker-content.glass-datepicker-panel,
.glass-datepicker-panel {
  background: rgba(35, 30, 28, 0.97) !important;
  background-color: rgba(35, 30, 28, 0.97) !important;
  backdrop-filter: blur(40px) saturate(180%) brightness(1.05) !important;
  -webkit-backdrop-filter: blur(40px) saturate(180%) brightness(1.05) !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
  border-radius: 20px !important;
  overflow: hidden !important;
}

/* CRITICAL: Prevent ALL overlay panes with datepicker from having backgrounds */
.cdk-overlay-pane:has(.mat-datepicker-content),
.cdk-overlay-pane:has(.glass-datepicker-panel),
.cdk-overlay-connected-position-bounding-box:has(.mat-datepicker-content) {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
}

/* Force datepicker backdrop to be fully transparent.
   ROOT CAUSE: Angular Material datepicker (popup mode / touchUi=false) applies
   'mat-overlay-transparent-backdrop' to its backdrop. However, the unified modal
   backdrop in modal.scss uses :not(.cdk-overlay-transparent-backdrop) — note the
   different prefix (cdk vs mat). So the datepicker backdrop is NOT excluded by
   the :not() and gets the full blur treatment.
   Fix: explicitly target mat-overlay-transparent-backdrop with body-level specificity. */
body .cdk-overlay-container .cdk-overlay-backdrop.mat-overlay-transparent-backdrop,
body .cdk-overlay-container .cdk-overlay-backdrop.mat-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {
  background: transparent !important;
  background-color: transparent !important;
  opacity: 0 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  pointer-events: auto !important;
}

/* Calendar content and frame — transparent within the already-dark panel */
.mat-datepicker-content-container,
.mat-datepicker-content .mat-calendar,
.glass-datepicker-panel .mat-datepicker-content-container,
.glass-datepicker-panel .mat-calendar {
  background: transparent !important;
  background-color: transparent !important;
  color: rgba(255, 255, 255, 0.9) !important;
}

/* Calendar header */
.glass-datepicker-panel .mat-calendar-header,
.mat-datepicker-content .mat-calendar-header {
  background: transparent !important;
  padding: 12px 16px 8px !important;
}

.glass-datepicker-panel .mat-calendar-controls {
  margin: 0 !important;
}

/* Period button (month/year label) */
.glass-datepicker-panel .mat-calendar-period-button,
.mat-datepicker-content .mat-calendar-period-button {
  color: #fff !important;
  font-weight: 600 !important;
  font-size: 14px !important;
}

.glass-datepicker-panel .mat-calendar-period-button:hover {
  background: rgba(255, 255, 255, 0.08) !important;
}

/* Navigation arrows */
.glass-datepicker-panel .mat-calendar-arrow,
.mat-datepicker-content .mat-calendar-arrow {
  border-top-color: #fff !important;
}

.glass-datepicker-panel .mat-calendar-previous-button,
.glass-datepicker-panel .mat-calendar-next-button,
.mat-datepicker-content .mat-calendar-previous-button,
.mat-datepicker-content .mat-calendar-next-button {
  color: rgba(255, 255, 255, 0.7) !important;
}

.glass-datepicker-panel .mat-calendar-previous-button:hover,
.glass-datepicker-panel .mat-calendar-next-button:hover {
  background: rgba(255, 255, 255, 0.08) !important;
}

/* Weekday headers */
.glass-datepicker-panel .mat-calendar-table-header th,
.mat-datepicker-content .mat-calendar-table-header th {
  color: rgba(255, 255, 255, 0.5) !important;
  font-weight: 500 !important;
  font-size: 11px !important;
}

/* Month label in calendar body */
.glass-datepicker-panel .mat-calendar-body-label,
.mat-datepicker-content .mat-calendar-body-label {
  color: rgba(255, 255, 255, 0.5) !important;
}

/* Calendar cells */
.glass-datepicker-panel .mat-calendar-body-cell-content,
.mat-datepicker-content .mat-calendar-body-cell-content {
  color: rgba(255, 255, 255, 0.9) !important;
  border-radius: 50% !important;
}

/* Disabled cells */
.glass-datepicker-panel .mat-calendar-body-disabled .mat-calendar-body-cell-content,
.mat-datepicker-content .mat-calendar-body-disabled .mat-calendar-body-cell-content {
  color: rgba(255, 255, 255, 0.2) !important;
}

/* Selected date */
.glass-datepicker-panel .mat-calendar-body-selected,
.mat-datepicker-content .mat-calendar-body-selected {
  background-color: rgba(255, 99, 71, 0.85) !important;
  color: #fff !important;
}

/* Today indicator */
.glass-datepicker-panel .mat-calendar-body-today:not(.mat-calendar-body-selected),
.mat-datepicker-content .mat-calendar-body-today:not(.mat-calendar-body-selected) {
  border-color: rgba(255, 99, 71, 0.5) !important;
}

/* Cell hover */
.glass-datepicker-panel .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover .mat-calendar-body-cell-content,
.mat-datepicker-content .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover .mat-calendar-body-cell-content {
  background-color: rgba(255, 255, 255, 0.1) !important;
}

/* Clean up any remaining backgrounds */
.glass-datepicker-panel .mat-datepicker-content,
.glass-datepicker-panel .mat-calendar-content,
.glass-datepicker-panel .mat-calendar-table,
.mat-datepicker-content .mat-calendar-content,
.mat-datepicker-content .mat-calendar-table {
  background: transparent !important;
}

/* Targeted cleanup: remove backgrounds from calendar inner elements only */
.mat-datepicker-content .mat-calendar-content,
.mat-datepicker-content .mat-calendar-table,
.mat-datepicker-content .mat-calendar-header,
.mat-datepicker-content .mat-calendar-controls,
.mat-datepicker-content .mat-calendar-body {
  background-color: transparent !important;
  background-image: none !important;
}

/* Restore interactive element backgrounds */
.mat-datepicker-content .mat-calendar-body-selected {
  background-color: rgba(255, 99, 71, 0.85) !important;
}

.mat-datepicker-content .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover .mat-calendar-body-cell-content {
  background-color: rgba(255, 255, 255, 0.1) !important;
}

.mat-datepicker-content .mat-calendar-period-button:hover,
.mat-datepicker-content .mat-calendar-previous-button:hover,
.mat-datepicker-content .mat-calendar-next-button:hover {
  background-color: rgba(255, 255, 255, 0.08) !important;
}

/* 
 * Glass Dropdown Panel Style
 * Extracted from Financial Dashboard - Business Overview Dropdown
 * Page: /console/management/financial-dashboard
 * 
 * Usage: Add panelClass="glass-dropdown-panel" to mat-select or mat-menu
 * 
 * UI Details:
 * - Transparent frosted glass with backdrop blur
 * - Color comes from background image showing through
 * - Rounded corners (20px border-radius)
 * - Soft border with subtle glow
 * - Backdrop blur effect for glassmorphism
 * - Smooth hover and selection states
 * - Options with pill-shaped styling
 */
:root {
  --ui-glass-dropdown-surface:
    linear-gradient(180deg, rgba(66, 52, 44, 0.94), rgba(38, 30, 26, 0.92)),
    radial-gradient(circle at top right, rgba(255, 130, 86, 0.12), transparent 56%);
  --ui-glass-dropdown-surface-solid: rgba(46, 39, 34, 0.94);
  --ui-glass-dropdown-blur: blur(28px) saturate(130%) brightness(0.95);
  --ui-glass-dropdown-shadow:
    0 18px 40px rgba(0, 0, 0, 0.4),
    0 28px 60px rgba(0, 0, 0, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

/* ========================================
   1. DROPDOWN PANEL CONTAINER
   ======================================== */
.mat-mdc-select-panel.glass-dropdown-panel,
.mat-menu-panel.glass-dropdown-panel,
.mat-mdc-menu-panel.glass-dropdown-panel,
.cdk-overlay-pane.glass-dropdown-panel .mat-menu-panel,
.cdk-overlay-pane.glass-dropdown-panel .mat-mdc-menu-panel,
.mat-mdc-autocomplete-panel.glass-dropdown-panel,
.mat-autocomplete-panel.glass-dropdown-panel,
.cdk-overlay-pane.glass-dropdown-panel .mat-mdc-autocomplete-panel,
.cdk-overlay-pane.glass-dropdown-panel .mat-autocomplete-panel {
  /* Premium Glass Background - darkened so overlays remain readable above glass modals/pages */
  background: var(--ui-glass-dropdown-surface) !important;
  background-color: var(--ui-glass-dropdown-surface-solid) !important;
  /* Backdrop blur - reduced saturation for less color bleed */
  backdrop-filter: var(--ui-glass-dropdown-blur) !important;
  -webkit-backdrop-filter: var(--ui-glass-dropdown-blur) !important;
  /* Border with subtle glow */
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  /* Border radius - matching job header menu */
  border-radius: 20px !important;
  /* Shadows for depth */
  box-shadow: var(--ui-glass-dropdown-shadow) !important;
  /* Spacing - compact consistent padding */
  padding: 8px !important;
  margin-top: 8px !important;
  /* Layout */
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 2px !important;
  /* Fix content overflow - enable scrolling */
  overflow-y: auto !important;
  overflow-x: hidden !important;
  max-height: 350px !important;
}

/* Mat-menu content stays transparent so the panel surface above owns the glass treatment,
   regardless of whether `glass-dropdown-panel` is attached to the menu panel or overlay pane. */
.mat-menu-panel.glass-dropdown-panel .mat-menu-content,
.mat-mdc-menu-panel.glass-dropdown-panel .mat-mdc-menu-content,
.cdk-overlay-pane.glass-dropdown-panel .mat-menu-content,
.cdk-overlay-pane.glass-dropdown-panel .mat-mdc-menu-content {
  background: transparent !important;
  padding: 0 !important;
}

/* Safe autocomplete sizing:
   - keep CDK trigger anchoring
   - do not force viewport/fixed widths
   - clamp to viewport to avoid overflow */
.mat-mdc-autocomplete-panel.glass-dropdown-panel,
.mat-autocomplete-panel.glass-dropdown-panel,
.cdk-overlay-pane.glass-dropdown-panel .mat-mdc-autocomplete-panel,
.cdk-overlay-pane.glass-dropdown-panel .mat-autocomplete-panel {
  width: auto !important;
  min-width: unset !important;
  max-width: calc(100vw - 24px) !important;
  box-sizing: border-box !important;
  outline: none !important;
  max-height: min(350px, 100vh - 24px) !important;
  overflow-x: hidden !important;
}

/* If class is attached to overlay pane via MAT_AUTOCOMPLETE_DEFAULT_OPTIONS,
   keep pane neutral and style only inner autocomplete panel */
.cdk-overlay-pane.glass-dropdown-panel {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  max-width: calc(100vw - 24px) !important;
  min-width: 0 !important;
}

/* ========================================
   2. CDK OVERLAY PANE FIX
   Keep the overlay pane transparent - blur only on the panel itself
   ======================================== */
.cdk-overlay-pane:has(.glass-dropdown-panel) {
  /* NO backdrop-filter here! It causes unwanted dark overlay behind the dropdown */
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  max-width: calc(100vw - 24px) !important;
}

/* ========================================
   3. DROPDOWN OPTIONS (mat-option / mat-menu-item)
   ======================================== */
.glass-dropdown-panel .mat-mdc-option,
.glass-dropdown-panel .mat-option,
.glass-dropdown-panel .mat-mdc-menu-item,
.glass-dropdown-panel .mat-menu-item {
  /* Layout */
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  width: calc(100% - 4px) !important;
  box-sizing: border-box !important;
  max-width: none !important;
  padding: 12px 16px !important;
  margin: 2px !important;
  border-radius: 14px !important;
  background: transparent !important;
  color: rgba(255, 255, 255, 0.85) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em !important;
  transition: all 0.2s ease !important;
  border: 1px solid transparent !important;
  min-height: 44px !important;
  overflow: visible !important;
}

/* Option text alignment and padding */
.glass-dropdown-panel .mat-mdc-option .mdc-list-item__primary-text,
.glass-dropdown-panel .mat-option-text,
.glass-dropdown-panel .mat-mdc-menu-item .mat-mdc-menu-item-text {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
  min-width: 0;
  overflow: hidden;
}

/* Fix internal content padding - Material MDC structure */
.glass-dropdown-panel .mat-mdc-option .mdc-list-item__content,
.glass-dropdown-panel .mat-mdc-option-text {
  padding-left: 0 !important;
}

/* ========================================
   4. HOVER STATE - Premium animation
   ======================================== */
.glass-dropdown-panel .mat-mdc-option:hover,
.glass-dropdown-panel .mat-mdc-option.mat-mdc-option-active,
.glass-dropdown-panel .mat-option:hover,
.glass-dropdown-panel .mat-option.mat-active,
.glass-dropdown-panel .mat-mdc-menu-item:hover,
.glass-dropdown-panel .mat-menu-item:hover {
  /* Gradient glass highlight */
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.04)) !important;
  /* Orange-tinted border on hover */
  border-color: rgba(255, 140, 80, 0.3) !important;
  /* Brighter text */
  color: #ffffff !important;
  /* Subtle slide effect */
  transform: translateX(2px) !important;
}

/* ========================================
   5. SELECTED/ACTIVE STATE
   ======================================== */
.glass-dropdown-panel .mat-mdc-option.mdc-list-item--selected,
.glass-dropdown-panel .mat-mdc-option.mat-mdc-option-selected,
.glass-dropdown-panel .mat-option.mat-selected,
.glass-dropdown-panel .mat-mdc-menu-item.mat-mdc-menu-item-highlighted {
  /* Orange-tinted glass background */
  background: rgba(255, 140, 80, 0.15) !important;
  /* Orange border */
  border-color: rgba(255, 140, 80, 0.4) !important;
  /* White text */
  color: #ffffff !important;
  font-weight: 600 !important;
}

/* Remove distant option outlines/rings in autocomplete panels */
.mat-mdc-autocomplete-panel.glass-dropdown-panel .mat-mdc-option,
.mat-autocomplete-panel.glass-dropdown-panel .mat-option {
  outline: none !important;
  box-shadow: none !important;
  border-color: transparent !important;
}

.mat-mdc-autocomplete-panel.glass-dropdown-panel .mat-mdc-option:hover,
.mat-mdc-autocomplete-panel.glass-dropdown-panel .mat-mdc-option.mat-mdc-option-active,
.mat-mdc-autocomplete-panel.glass-dropdown-panel .mat-mdc-option.mdc-list-item--selected,
.mat-mdc-autocomplete-panel.glass-dropdown-panel .mat-mdc-option.mat-mdc-option-selected,
.mat-autocomplete-panel.glass-dropdown-panel .mat-option:hover,
.mat-autocomplete-panel.glass-dropdown-panel .mat-option.mat-active,
.mat-autocomplete-panel.glass-dropdown-panel .mat-option.mat-selected {
  border-color: transparent !important;
  box-shadow: none !important;
}

/* Preset active state (custom class for manually tracked active preset) */
.glass-dropdown-panel .mat-mdc-menu-item.preset-active {
  background: rgba(255, 140, 80, 0.15) !important;
  border-color: rgba(255, 140, 80, 0.4) !important;
  color: #ffffff !important;
  font-weight: 600 !important;
}

/* ========================================
   6. ICONS IN OPTIONS
   ======================================== */
.glass-dropdown-panel .mat-icon {
  color: inherit !important;
  font-size: 18px !important;
  width: 18px !important;
  height: 18px !important;
  opacity: 0.85;
  transition: opacity 0.2s ease;
}

.glass-dropdown-panel .mat-mdc-option:hover .mat-icon,
.glass-dropdown-panel .mat-option:hover .mat-icon,
.glass-dropdown-panel .mat-mdc-menu-item:hover .mat-icon {
  opacity: 1;
}

/* ========================================
   7. CHECKBOX FOR MULTI-SELECT (CSS-based)
   Using ::before pseudo-element for checkboxes
   Only applies to panels with 'glass-multi-select' class
   ======================================== */
/* CSS-based checkbox for multi-select options ONLY */
.glass-multi-select .mat-mdc-option::before {
  content: "" !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  flex-shrink: 0 !important;
  border: 2px solid rgba(255, 255, 255, 0.4) !important;
  border-radius: 4px !important;
  background: transparent !important;
  margin-right: 12px !important;
  transition: all 0.2s ease !important;
  box-sizing: border-box !important;
  order: -1 !important;
}

/* Checkbox checked state */
.glass-multi-select .mat-mdc-option.mdc-list-item--selected::before {
  background: #ff8f5c !important;
  border-color: #ff8f5c !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z'/%3E%3C/svg%3E") !important;
  background-size: 14px 14px !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
}

/* Checkbox hover state */
.glass-multi-select .mat-mdc-option:hover::before {
  border-color: rgba(255, 255, 255, 0.6) !important;
}

/* Hide Material pseudo-checkboxes since we use CSS-based ones */
.glass-multi-select .mat-pseudo-checkbox,
.glass-multi-select .mat-mdc-option .mat-pseudo-checkbox-minimal,
.glass-multi-select .mat-mdc-option .mat-pseudo-checkbox-full {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
}

/* Remove ripple effects */
.glass-dropdown-panel .mat-mdc-option .mat-ripple-element,
.glass-dropdown-panel .mat-mdc-option .mat-mdc-focus-indicator,
.glass-dropdown-panel .mat-option .mat-ripple-element,
.glass-dropdown-panel .mat-mdc-menu-item .mat-ripple-element,
.glass-dropdown-panel .mat-mdc-menu-item::before {
  display: none !important;
  opacity: 0 !important;
  background: transparent !important;
}

/* Hide ::before for single-select dropdowns (only show for .glass-multi-select) */
.glass-dropdown-panel:not(.glass-multi-select) .mat-mdc-option::before {
  display: none !important;
  content: none !important;
}

/* ========================================
   8. SCROLLBAR STYLING (if needed)
   ======================================== */
.glass-dropdown-panel::-webkit-scrollbar {
  width: 6px;
}

.glass-dropdown-panel::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.03);
  border-radius: 10px;
}

.glass-dropdown-panel::-webkit-scrollbar-thumb {
  background: rgba(255, 200, 150, 0.2);
  border-radius: 10px;
  -webkit-transition: background 0.2s ease;
  transition: background 0.2s ease;
}

.glass-dropdown-panel::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 200, 150, 0.3);
}

/* ========================================
   9. ALIGNMENT HELPERS
   ======================================== */
.glass-dropdown-panel.right-aligned {
  transform-origin: top right !important;
}

.glass-dropdown-panel.left-aligned {
  transform-origin: top left !important;
}

.glass-dropdown-panel.center-aligned {
  transform-origin: top center !important;
}

/* ========================================
   10. DIVIDERS (if used)
   ======================================== */
.glass-dropdown-panel .mat-divider {
  border-top-color: rgba(255, 200, 150, 0.1) !important;
  margin: 8px 0 !important;
}

/* ========================================
   11. RESPONSIVE ADJUSTMENTS
   ======================================== */
@media (max-width: 768px) {
  .glass-dropdown-panel {
    padding: 10px !important;
    gap: 4px !important;
  }
  .glass-dropdown-panel .mat-mdc-option,
  .glass-dropdown-panel .mat-option,
  .glass-dropdown-panel .mat-mdc-menu-item {
    padding: 10px 14px !important;
    font-size: 13px !important;
  }
}
/* ========================================
   12. MAT-SELECT-PANEL HIGH SPECIFICITY OVERRIDES
   These ensure the glass-dropdown-panel styles apply to mat-select
   ======================================== */
/* Panel container - higher specificity */
.mat-mdc-select-panel.glass-dropdown-panel,
.cdk-overlay-pane .mat-mdc-select-panel.glass-dropdown-panel {
  background: var(--ui-glass-dropdown-surface) !important;
  background-color: var(--ui-glass-dropdown-surface-solid) !important;
  backdrop-filter: var(--ui-glass-dropdown-blur) !important;
  -webkit-backdrop-filter: var(--ui-glass-dropdown-blur) !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  border-radius: 20px !important;
  box-shadow: var(--ui-glass-dropdown-shadow) !important;
  padding: 8px !important;
}

/* Options in mat-select */
.mat-mdc-select-panel.glass-dropdown-panel .mat-mdc-option {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  max-width: 100% !important;
  padding: 12px 16px !important;
  margin: 2px 0 !important;
  border-radius: 14px !important;
  background: transparent !important;
  color: rgba(255, 255, 255, 0.85) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em !important;
  transition: all 0.2s ease !important;
  border: 1px solid transparent !important;
  min-height: 44px !important;
}

/* Hover state for mat-select options */
.mat-mdc-select-panel.glass-dropdown-panel .mat-mdc-option:hover,
.mat-mdc-select-panel.glass-dropdown-panel .mat-mdc-option.mat-mdc-option-active {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.04)) !important;
  border-color: rgba(255, 140, 80, 0.3) !important;
  color: #ffffff !important;
  transform: translateX(2px) !important;
}

/* Selected state for mat-select options */
.mat-mdc-select-panel.glass-dropdown-panel .mat-mdc-option.mdc-list-item--selected,
.mat-mdc-select-panel.glass-dropdown-panel .mat-mdc-option.mat-mdc-option-selected {
  background: rgba(255, 140, 80, 0.15) !important;
  border-color: rgba(255, 140, 80, 0.4) !important;
  color: #ffffff !important;
  font-weight: 600 !important;
}

/* Remove focus indicator and ripple (NOT ::before - needed for checkboxes) */
.mat-mdc-select-panel.glass-dropdown-panel .mat-mdc-option .mat-mdc-focus-indicator,
.mat-mdc-select-panel.glass-dropdown-panel .mat-mdc-option .mat-ripple-element {
  display: none !important;
  opacity: 0 !important;
}

/* Hide Material pseudo-checkboxes for ALL dropdowns - we use CSS ::before for multi-select only */
.mat-mdc-select-panel.glass-dropdown-panel .mat-pseudo-checkbox,
.mat-mdc-select-panel.glass-dropdown-panel .mat-mdc-option .mat-pseudo-checkbox {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
}

/* ========================================
   13. EMPLOYEE SELECT PANEL - Premium Layout
   ======================================== */
/* Employee option row - flex layout with right-aligned code */
.glass-dropdown-panel .emp-option-row,
.employee-select-panel .emp-option-row {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 100% !important;
  gap: 16px !important;
}

.glass-dropdown-panel .emp-name,
.employee-select-panel .emp-name {
  font-size: 14px !important;
  font-weight: 500 !important;
  color: rgba(255, 255, 255, 0.9) !important;
  flex: 1 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.glass-dropdown-panel .emp-code-badge,
.employee-select-panel .emp-code-badge {
  font-family: var(--ui-font-mono) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.03em !important;
  color: rgba(255, 180, 130, 0.95) !important;
  background: rgba(255, 140, 80, 0.15) !important;
  border: 1px solid rgba(255, 140, 80, 0.3) !important;
  padding: 4px 12px !important;
  border-radius: 6px !important;
  flex-shrink: 0 !important;
  text-align: right !important;
}

/* Force employee/vendor autocomplete panel wider so party names aren't truncated.
   Material defaults to anchoring panel width to the trigger input width.
   We override both the panel and its CDK overlay pane. */
.mat-mdc-autocomplete-panel.employee-select-panel,
.mat-autocomplete-panel.employee-select-panel {
  min-width: min(600px, 100vw - 32px) !important;
  width: min(600px, 100vw - 32px) !important;
}

.cdk-overlay-pane:has(.mat-mdc-autocomplete-panel.employee-select-panel),
.cdk-overlay-pane:has(.mat-autocomplete-panel.employee-select-panel) {
  min-width: min(600px, 100vw - 32px) !important;
  width: min(600px, 100vw - 32px) !important;
}

/* Compact pills inside employee panel so more room is left for the name */
.employee-select-panel .emp-code-badge,
.glass-dropdown-panel.employee-select-panel .emp-code-badge {
  font-size: 10px !important;
  padding: 2px 7px !important;
  letter-spacing: 0 !important;
}

/* ========================================
   13b. TECHNICIAN OPTION — Department Pill
   Right-aligned small pill showing the department name
   ======================================== */
/* Trigger (closed state) — inline name + pill */
.tech-trigger-row {
  display: inline-flex !important;
  align-items: center !important;
  gap: var(--ui-space-2) !important;
  max-width: 100% !important;
  overflow: hidden !important;
}

.tech-trigger-row .dept-pill {
  font-size: 9px !important;
  font-weight: var(--ui-font-semibold) !important;
  letter-spacing: 0.03em !important;
  text-transform: uppercase !important;
  color: var(--ui-text-muted) !important;
  background: var(--ui-surface-2) !important;
  border: 1px solid var(--ui-border) !important;
  padding: 1px 8px !important;
  border-radius: var(--ui-radius-full) !important;
  flex-shrink: 0 !important;
  white-space: nowrap !important;
  line-height: 1.5 !important;
}

/* Trigger — department color variants */
.tech-trigger-row .dept-pill[data-dept=workshop] {
  color: rgba(255, 180, 130, 0.95) !important;
  background: rgba(255, 140, 80, 0.12) !important;
  border-color: rgba(255, 140, 80, 0.25) !important;
}

.tech-trigger-row .dept-pill[data-dept=bodyshop] {
  color: rgba(140, 190, 255, 0.95) !important;
  background: rgba(96, 165, 250, 0.12) !important;
  border-color: rgba(96, 165, 250, 0.25) !important;
}

.tech-trigger-row .dept-pill[data-dept=detailing] {
  color: rgba(130, 230, 160, 0.95) !important;
  background: rgba(74, 222, 128, 0.12) !important;
  border-color: rgba(74, 222, 128, 0.25) !important;
}

.tech-trigger-row .dept-pill[data-dept=paint] {
  color: rgba(255, 210, 120, 0.95) !important;
  background: rgba(251, 191, 36, 0.12) !important;
  border-color: rgba(251, 191, 36, 0.25) !important;
}

.tech-trigger-row .dept-pill[data-dept=electrical] {
  color: rgba(200, 160, 255, 0.95) !important;
  background: rgba(168, 130, 255, 0.12) !important;
  border-color: rgba(168, 130, 255, 0.25) !important;
}

/* Dropdown option row (open state) */
.glass-dropdown-panel .tech-option-row {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 100% !important;
  gap: var(--ui-space-3) !important;
}

.glass-dropdown-panel .tech-info {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  min-width: 0 !important;
  gap: 1px !important;
}

.glass-dropdown-panel .tech-name {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.glass-dropdown-panel .tech-role {
  font-size: var(--ui-text-xs) !important;
  font-weight: var(--ui-font-normal) !important;
  color: var(--ui-text-subtle) !important;
  line-height: 1.3 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.glass-dropdown-panel .dept-pill {
  font-size: var(--ui-text-xs) !important;
  font-weight: var(--ui-font-semibold) !important;
  letter-spacing: 0.03em !important;
  text-transform: uppercase !important;
  color: var(--ui-text-muted) !important;
  background: var(--ui-surface-2) !important;
  border: 1px solid var(--ui-border) !important;
  padding: 2px 10px !important;
  border-radius: var(--ui-radius-full) !important;
  flex-shrink: 0 !important;
  white-space: nowrap !important;
  line-height: 1.6 !important;
}

/* ---------- Department color variants ---------- */
/* Workshop — warm orange (brand) */
.glass-dropdown-panel .dept-pill[data-dept=workshop] {
  color: rgba(255, 180, 130, 0.95) !important;
  background: rgba(255, 140, 80, 0.12) !important;
  border-color: rgba(255, 140, 80, 0.25) !important;
}

/* Bodyshop — cool blue (info) */
.glass-dropdown-panel .dept-pill[data-dept=bodyshop] {
  color: rgba(140, 190, 255, 0.95) !important;
  background: rgba(96, 165, 250, 0.12) !important;
  border-color: rgba(96, 165, 250, 0.25) !important;
}

/* Detailing — green (success) */
.glass-dropdown-panel .dept-pill[data-dept=detailing] {
  color: rgba(130, 230, 160, 0.95) !important;
  background: rgba(74, 222, 128, 0.12) !important;
  border-color: rgba(74, 222, 128, 0.25) !important;
}

/* Paint — amber (warning) */
.glass-dropdown-panel .dept-pill[data-dept=paint] {
  color: rgba(255, 210, 120, 0.95) !important;
  background: rgba(251, 191, 36, 0.12) !important;
  border-color: rgba(251, 191, 36, 0.25) !important;
}

/* Electrical — purple */
.glass-dropdown-panel .dept-pill[data-dept=electrical] {
  color: rgba(200, 160, 255, 0.95) !important;
  background: rgba(168, 130, 255, 0.12) !important;
  border-color: rgba(168, 130, 255, 0.25) !important;
}

/* Hover: brighten pill */
.glass-dropdown-panel .mat-mdc-option:hover .dept-pill,
.glass-dropdown-panel .mat-option:hover .dept-pill {
  color: var(--ui-text-secondary) !important;
  border-color: var(--ui-border-hover) !important;
}

/* Selected: accent tint */
.glass-dropdown-panel .mat-mdc-option.mdc-list-item--selected .dept-pill,
.glass-dropdown-panel .mat-option.mat-selected .dept-pill {
  color: rgba(255, 180, 130, 0.95) !important;
  background: rgba(255, 140, 80, 0.12) !important;
  border-color: rgba(255, 140, 80, 0.25) !important;
}

/* ========================================
   14. CAR AUTOCOMPLETE PANEL - Wide dropdown
   ======================================== */
.car-autocomplete-panel {
  width: auto !important;
  min-width: unset !important;
  max-width: calc(100vw - 24px) !important;
  /* Premium Glass Background */
  background: linear-gradient(145deg, rgba(60, 50, 45, 0.25), rgba(40, 35, 30, 0.35)) !important;
  backdrop-filter: blur(60px) saturate(120%) brightness(1) !important;
  -webkit-backdrop-filter: blur(60px) saturate(120%) brightness(1) !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  border-radius: 16px !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.35), 0 16px 48px rgba(0, 0, 0, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
  padding: 8px !important;
  margin-top: 8px !important;
  max-height: 300px !important;
  overflow-y: auto !important;
}

.car-autocomplete-panel .mat-option,
.car-autocomplete-panel .mat-mdc-option {
  display: flex !important;
  align-items: center !important;
  padding: 12px 16px !important;
  margin: 2px !important;
  border-radius: 12px !important;
  background: transparent !important;
  color: rgba(255, 255, 255, 0.85) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  transition: all 0.2s ease !important;
  border: 1px solid transparent !important;
  min-height: 44px !important;
  /* Single line - no wrapping */
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.car-autocomplete-panel .mat-option:hover,
.car-autocomplete-panel .mat-mdc-option:hover,
.car-autocomplete-panel .mat-option.mat-active,
.car-autocomplete-panel .mat-mdc-option.mat-mdc-option-active {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.04)) !important;
  border-color: rgba(255, 140, 80, 0.3) !important;
  color: #ffffff !important;
  transform: translateX(2px) !important;
}

.car-autocomplete-panel .mat-option.mat-selected,
.car-autocomplete-panel .mat-mdc-option.mdc-list-item--selected {
  background: rgba(255, 140, 80, 0.15) !important;
  border-color: rgba(255, 140, 80, 0.4) !important;
  color: #ffffff !important;
  font-weight: 600 !important;
}

/* Scrollbar styling */
.car-autocomplete-panel::-webkit-scrollbar {
  width: 6px;
}

.car-autocomplete-panel::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.03);
  border-radius: 10px;
}

.car-autocomplete-panel::-webkit-scrollbar-thumb {
  background: rgba(255, 200, 150, 0.2);
  border-radius: 10px;
}

/* ========================================
   14b. PARTS AUTOCOMPLETE PANEL WIDTH
   Wider panel for item + pricing columns in sales/order modals
   ======================================== */
.mat-mdc-autocomplete-panel.parts-autocomplete-panel,
.mat-autocomplete-panel.parts-autocomplete-panel {
  width: min(720px, 100vw - 48px) !important;
  min-width: min(720px, 100vw - 48px) !important;
  max-width: min(720px, 100vw - 48px) !important;
}

.cdk-overlay-pane:has(.mat-mdc-autocomplete-panel.parts-autocomplete-panel),
.cdk-overlay-pane:has(.mat-autocomplete-panel.parts-autocomplete-panel) {
  width: min(720px, 100vw - 48px) !important;
  max-width: min(720px, 100vw - 48px) !important;
}

/* ========================================
   15. PARTS AUTOCOMPLETE - Multi-line item layout
   ======================================== */
/* Parts autocomplete item container */
.glass-dropdown-panel .autocomplete-item {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: center !important;
  column-gap: 16px !important;
  width: 100% !important;
  min-height: 64px !important;
  padding: 4px 0 !important;
}

/* Ensure option internals span full row so right column can lock to panel edge */
.glass-dropdown-panel .mat-mdc-option .mdc-list-item__content,
.glass-dropdown-panel .mat-mdc-option .mdc-list-item__primary-text,
.glass-dropdown-panel .mat-option .mat-option-text {
  width: 100% !important;
  max-width: 100% !important;
}

/* Parts autocomplete should grow with content rather than fixed option heights */
.glass-dropdown-panel .mat-mdc-option.parts-option,
.glass-dropdown-panel .mat-option.parts-option {
  height: auto !important;
  min-height: 72px !important;
  align-items: center !important;
  padding-top: 6px !important;
  padding-bottom: 6px !important;
  overflow: hidden !important;
}

.glass-dropdown-panel .mat-mdc-option.parts-option .mdc-list-item__primary-text,
.glass-dropdown-panel .mat-option.parts-option .mat-option-text {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  white-space: normal !important;
  line-height: 1.25 !important;
}

/* Left side - item name and part number */
.glass-dropdown-panel .item-info {
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
  flex: 1 !important;
  min-width: 0 !important;
}

.glass-dropdown-panel .item-name {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: rgba(255, 255, 255, 0.95) !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  line-height: 1.25 !important;
}

.glass-dropdown-panel .item-partno {
  font-family: var(--ui-font-mono) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em !important;
  color: rgba(255, 255, 255, 0.6) !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

/* Warranty badge in parts autocomplete */
.glass-dropdown-panel .item-warranty {
  display: inline-flex !important;
  align-items: center !important;
  align-self: flex-start !important;
  gap: 4px !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.03em !important;
  text-transform: uppercase !important;
  color: rgba(130, 200, 255, 0.9) !important;
  background: rgba(130, 200, 255, 0.1) !important;
  border: 1px solid rgba(130, 200, 255, 0.2) !important;
  padding: 2px 10px !important;
  border-radius: 999px !important;
  width: fit-content !important;
  max-width: fit-content !important;
  margin-top: 2px !important;
  white-space: nowrap !important;
}

.glass-dropdown-panel .item-warranty .warranty-icon {
  font-size: 12px !important;
  width: 12px !important;
  height: 12px !important;
  color: rgba(130, 200, 255, 0.9) !important;
  opacity: 1 !important;
}

/* Right side - price and stock */
.glass-dropdown-panel .item-price {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;
  justify-content: center !important;
  gap: 6px !important;
  flex-shrink: 0 !important;
  min-width: 170px !important;
  margin-left: auto !important;
  text-align: right !important;
}

.glass-dropdown-panel .price-value {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: rgb(255, 180, 130) !important;
  align-self: flex-end !important;
}

.glass-dropdown-panel .stock-badge {
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.03em !important;
  color: rgba(100, 200, 100, 0.95) !important;
  background: rgba(100, 200, 100, 0.15) !important;
  border: 1px solid rgba(100, 200, 100, 0.3) !important;
  padding: 3px 10px !important;
  border-radius: 6px !important;
  text-align: right !important;
  white-space: nowrap !important;
  align-self: flex-end !important;
}

.glass-dropdown-panel .stock-badge.no-stock {
  color: rgba(255, 100, 100, 0.95) !important;
  background: rgba(255, 100, 100, 0.15) !important;
  border-color: rgba(255, 100, 100, 0.3) !important;
}

/* Out of stock option styling */
.glass-dropdown-panel .mat-option.out-of-stock,
.glass-dropdown-panel .mat-mdc-option.out-of-stock {
  opacity: 0.6 !important;
}

.glass-dropdown-panel .mat-option.out-of-stock .item-name,
.glass-dropdown-panel .mat-mdc-option.out-of-stock .item-name {
  color: rgba(255, 255, 255, 0.5) !important;
}

.glass-dropdown-panel .mat-option.out-of-stock .price-value,
.glass-dropdown-panel .mat-mdc-option.out-of-stock .price-value {
  display: none !important;
}

/* ==========================================================================
   UI CONTROLS - PILLS
   ==========================================================================
   Wraps existing pill-controls.css styling.
   ========================================================================== */
/* Import the existing pill controls styles */
/* CSS imported in styles.scss */
/* Pill container */
.ui-pill {
  /* Uses existing .pill-trigger, .pill-btn classes from pill-controls.css */
  display: inline-flex;
}

/* ==========================================================================
   UI CONTROLS - TILES
   ==========================================================================
   Interactive tile components for action grids and navigation.
   ========================================================================== */
.ui-tile-grid {
  display: flex;
  gap: var(--ui-space-3);
  margin-bottom: var(--ui-space-6);
}

.ui-tile-grid > * {
  flex: 1;
  min-width: 0;
}

.ui-tile {
  display: flex;
  align-items: center;
  gap: var(--ui-space-4);
  padding: var(--ui-space-4);
  width: 100%;
  border-radius: var(--ui-radius-lg);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
  cursor: pointer;
  transition: var(--ui-transition-base);
  position: relative;
  overflow: hidden;
  text-align: left;
}

.ui-tile:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
  transform: translateX(4px);
  box-shadow: var(--ui-shadow-sm);
}

.ui-tile:active {
  transform: translateX(2px);
}

/* Icon Wrapper */
.ui-tile__icon {
  width: 42px;
  height: 42px;
  min-width: 42px;
  border-radius: var(--ui-radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--ui-transition-base);
}
.ui-tile__icon mat-icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
}

/* Content */
.ui-tile__content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.ui-tile__title {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
  transition: var(--ui-transition-fast);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ui-tile__desc {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-subtle);
  font-weight: var(--ui-font-normal);
}

.ui-tile:hover .ui-tile__title {
  color: var(--ui-text-primary);
}

.ui-tile:hover .ui-tile__desc {
  color: var(--ui-text-muted);
}

/* Arrow */
.ui-tile__arrow {
  font-size: 18px !important;
  width: 18px !important;
  height: 18px !important;
  color: var(--ui-surface-active);
  transition: var(--ui-transition-base);
}

.ui-tile:hover .ui-tile__arrow {
  color: var(--ui-brand);
  transform: translateX(4px);
}

/* Variants */
.ui-tile--primary .ui-tile__icon {
  background: rgba(255, 122, 61, 0.1);
  border: 1px solid rgba(255, 122, 61, 0.2);
  color: var(--ui-brand);
}

.ui-tile--primary:hover .ui-tile__icon {
  background: rgba(255, 122, 61, 0.2);
  border-color: rgba(255, 122, 61, 0.4);
  color: var(--ui-brand-light);
  box-shadow: 0 4px 16px rgba(255, 122, 61, 0.15);
}

.ui-tile--secondary .ui-tile__icon {
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border);
  color: var(--ui-text-muted);
}

.ui-tile--secondary:hover .ui-tile__icon {
  background: var(--ui-surface-3);
  border-color: var(--ui-brand-glow);
  color: var(--ui-brand);
}

.ui-tile__icon--warning {
  background: var(--ui-warning-bg);
  border: 1px solid var(--ui-warning-border);
  color: var(--ui-warning);
}

/* Static variant (non-interactive) */
.ui-tile--static {
  cursor: default;
}

.ui-tile--static:hover {
  transform: none;
  background: var(--ui-surface-1);
  border-color: var(--ui-border-light);
  box-shadow: none;
}

/* ==========================================================================
   UI CONTROLS - FILTER PILLS
   ==========================================================================
   Compact filter controls for dashboards and headers.
   ========================================================================== */
.ui-filter {
  display: inline-flex;
  align-items: center;
  min-width: 0;
}

.ui-filter .mat-mdc-select {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  width: auto;
  background: transparent;
}

.ui-filter .mat-mdc-select-trigger {
  padding: 0;
  min-height: auto;
  display: inline-flex;
  align-items: center;
  width: auto;
}

.ui-filter .mat-mdc-select-value,
.ui-filter .mat-mdc-select-value-text {
  display: inline-flex;
  align-items: center;
  min-width: 0;
}

.ui-filter .mat-mdc-select-arrow-wrapper,
.ui-filter .mat-mdc-select-arrow {
  display: none !important;
}

.ui-filter__trigger, .ui-filter-pill {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  height: calc(var(--ui-space-2) * 3.5);
  padding: 0 var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.02em;
  white-space: nowrap;
  cursor: pointer;
}

.ui-filter__trigger:hover, .ui-filter-pill:hover {
  background: var(--ui-surface-2);
  border-color: var(--ui-border-hover);
}

.ui-filter__trigger--active, .ui-filter-pill--active {
  background: var(--ui-surface-2);
  border-color: var(--ui-border-hover);
  color: var(--ui-text-primary);
}

.ui-filter__icon {
  font-size: var(--ui-text-base);
  width: var(--ui-text-base);
  height: var(--ui-text-base);
  color: var(--ui-text-muted);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.ui-filter__label {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ==========================================================================
   SEARCH INPUT CONTRACT
   ========================================================================== */
.ui-search {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-4);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  min-height: calc(var(--ui-space-2) * 5);
  transition: var(--ui-transition-base);
}

.ui-search:focus-within {
  background: var(--ui-surface-2);
  border-color: var(--ui-border-focus);
  box-shadow: 0 0 0 3px var(--ui-brand-glow);
}

.ui-search mat-icon {
  font-size: var(--ui-text-md);
  width: var(--ui-text-md);
  height: var(--ui-text-md);
  color: var(--ui-text-muted);
}

.ui-search input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
}

.ui-search input::placeholder {
  color: var(--ui-text-subtle);
}

/* ==========================================================================
   FILTER GROUPS & PILLS
   ========================================================================== */
.ui-filter-group {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.ui-filter-pill-group {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
}

.ui-filter-pill--active {
  border-color: var(--ui-border-focus);
}

.ui-filter-pill--danger {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
}

.ui-filter-pill--warning {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.ui-filter-pill--success {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

/* ==========================================================================
   UI CONTROLS - CHIPS
   ==========================================================================
   Compact status and delta chips.
   ========================================================================== */
.ui-chip, .ui-table .risk-badge, .glass-table .risk-badge,
.premium-table .risk-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  padding: calc(var(--ui-space-1) * 0.5) var(--ui-space-2);
  border-radius: var(--ui-radius-full);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.02em;
  background: var(--ui-surface-2);
  border: 1px solid var(--ui-border);
  color: var(--ui-text-secondary);
  white-space: nowrap;
}

.ui-chip--compact, .ui-table .risk-badge, .glass-table .risk-badge,
.premium-table .risk-badge {
  padding: calc(var(--ui-space-1) * 0.25) var(--ui-space-2);
  font-size: var(--ui-text-xs);
  letter-spacing: 0.01em;
}

.ui-chip--success, .ui-table .risk-badge.low, .glass-table .risk-badge.low,
.premium-table .risk-badge.low {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.ui-chip--warning, .ui-table .risk-badge.medium, .glass-table .risk-badge.medium,
.premium-table .risk-badge.medium {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.ui-chip--danger, .ui-table .risk-badge.high, .glass-table .risk-badge.high,
.premium-table .risk-badge.high {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
}

.ui-chip--info {
  background: var(--ui-info-bg);
  border-color: var(--ui-info-border);
  color: var(--ui-info);
}

.ui-chip--muted {
  background: var(--ui-surface-1);
  border-color: var(--ui-border-light);
  color: var(--ui-text-muted);
}

.ui-chip--quiet {
  background: rgba(255, 255, 255, 0.03);
  border-color: var(--ui-border-light);
  color: var(--ui-text-muted);
}

.ui-chip--success.ui-chip--quiet, .ui-table .ui-chip--quiet.risk-badge.low, .premium-table .ui-chip--quiet.risk-badge.low, .glass-table .ui-chip--quiet.risk-badge.low {
  background: rgba(74, 222, 128, 0.08);
  border-color: rgba(74, 222, 128, 0.22);
  color: var(--ui-success);
}

.ui-chip--warning.ui-chip--quiet, .ui-table .ui-chip--quiet.risk-badge.medium, .premium-table .ui-chip--quiet.risk-badge.medium, .glass-table .ui-chip--quiet.risk-badge.medium {
  background: rgba(250, 204, 21, 0.08);
  border-color: rgba(250, 204, 21, 0.22);
  color: var(--ui-warning);
}

.ui-chip--danger.ui-chip--quiet, .ui-table .ui-chip--quiet.risk-badge.high, .premium-table .ui-chip--quiet.risk-badge.high, .glass-table .ui-chip--quiet.risk-badge.high {
  background: rgba(248, 113, 113, 0.08);
  border-color: rgba(248, 113, 113, 0.22);
  color: var(--ui-danger);
}

/* ==========================================================================
   COUNTER BADGES
   ========================================================================== */
.ui-badge, .filter-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: var(--ui-space-4);
  height: var(--ui-space-4);
  padding: 0 var(--ui-space-1);
  border-radius: var(--ui-radius-full);
  background: var(--ui-brand);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-bold);
  line-height: 1;
}

/* ==========================================================================
   UI CONTROLS - CHART CONTAINERS
   ==========================================================================
   Consistent chart sizing and alignment for dashboards.
   ========================================================================== */
.ui-chart {
  width: 100%;
  min-height: var(--ui-chart-height, calc(var(--ui-space-12) * 2.6));
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
}

.ui-chart--sm {
  --ui-chart-height: calc(var(--ui-space-12) * 2.1);
}

.ui-chart--md {
  --ui-chart-height: calc(var(--ui-space-12) * 2.8);
}

.ui-chart--lg {
  --ui-chart-height: calc(var(--ui-space-12) * 3.4);
}

.ui-chart--spark {
  --ui-chart-height: calc(var(--ui-space-12) * 1.8);
}

.ui-chart apx-chart {
  width: 100%;
}

.ui-donut {
  width: calc(var(--ui-space-12) * 1.9);
  height: calc(var(--ui-space-12) * 1.9);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
  position: relative;
  display: grid;
  place-items: center;
  color: var(--ui-text-primary);
  box-sizing: border-box;
}

.ui-donut::after {
  content: "";
  position: absolute;
  inset: calc(var(--ui-space-2) * 1.8);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-base);
}

.ui-donut__content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ui-space-1);
}

.ui-donut__value {
  font-size: var(--ui-text-md);
  font-weight: var(--ui-font-bold);
}

.ui-donut__label {
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

/* ==========================================================================
   UI METERS / PROGRESS BARS
   ========================================================================== */
.ui-meter {
  display: block;
  width: var(--ui-meter-width, calc(var(--ui-space-12) * 2.5));
  height: var(--ui-meter-height, calc(var(--ui-space-1) * 1.5));
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-2);
  overflow: hidden;
  position: relative;
}

.ui-meter__fill {
  display: block;
  height: 100%;
  width: 0;
  border-radius: inherit;
  background: var(--ui-brand-gradient);
}

.ui-meter--info .ui-meter__fill {
  background: var(--ui-info);
}

.ui-meter--warning .ui-meter__fill {
  background: var(--ui-warning);
}

.ui-meter--danger .ui-meter__fill {
  background: var(--ui-danger);
}

.ui-meter--success .ui-meter__fill {
  background: var(--ui-success);
}

.pill-filter {
  display: inline-flex;
  align-items: center;
  gap: 0;
  flex: 0 0 auto;
  min-width: auto;
  overflow: visible;
}

.pill-filter mat-select,
.pill-filter .mat-mdc-select {
  width: auto;
  min-width: auto;
  overflow: visible !important;
}

.pill-filter .mat-mdc-select-trigger {
  padding: 0;
  border: none;
  background: transparent;
  min-height: auto;
  display: inline-flex;
  align-items: center;
  width: auto;
  overflow: visible !important;
}

.pill-filter .mat-mdc-select-value,
.pill-filter .mat-mdc-select-value-text,
.pill-filter .mat-mdc-select-arrow-wrapper,
.pill-filter .mat-mdc-select-arrow {
  width: auto;
  min-width: 0;
  overflow: visible !important;
}

.pill-filter .mat-mdc-select-arrow,
.pill-filter .mat-mdc-select-arrow-wrapper {
  display: none !important;
}

/* Filter label inside mat-select - pill button appearance */
.pill-filter .filter-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 16px;
  height: 32px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.85);
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
  transition: all 0.2s ease;
  cursor: pointer;
}

.pill-filter:hover .filter-label {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
}

.pill-filter .filter-label mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: rgba(255, 255, 255, 0.6);
}

.pill-trigger {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border-radius: 999px;
  padding: 0 16px;
  height: 32px;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.15);
  box-shadow: none;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
  letter-spacing: 0.01em;
  transition: all 0.2s ease;
  cursor: pointer;
  font-family: inherit;
  font-size: 13px;
  width: auto;
  min-width: 0;
  justify-content: center;
}

.pill-trigger:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.25);
}

.pill-trigger mat-icon:last-child {
  font-size: 16px;
  width: 16px;
  height: 16px;
  margin-left: 4px;
  flex-shrink: 0;
}

.pill-trigger mat-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.pill-label {
  display: inline-flex;
  align-items: center;
  gap: 0;
  flex: 0 1 auto;
  min-width: 0;
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pill-icon,
.pill-start-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: transparent;
  color: #f1f6ff;
  display: flex;
  align-items: center;
  justify-content: center;
}

.pill-start-icon {
  margin-right: 4px;
}

.pill-filter.date-filter .pill-trigger {
  width: 100%;
  justify-content: space-between;
}

.pill-filter.micro-pill .pill-label {
  flex: 0 1 auto;
}

.pill-filter.micro-pill .pill-trigger {
  padding: 0 8px;
}

.pill-input .pill-input-trigger {
  cursor: text;
  justify-content: flex-start;
}

.pill-input-field {
  background: transparent;
  border: none;
  outline: none;
  color: rgba(255, 255, 255, 0.85);
  font-size: 13px;
  font-weight: 500;
  width: 140px;
  min-width: 120px;
}

.pill-input-field::placeholder {
  color: rgba(255, 255, 255, 0.55);
}

.filter-panel {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 10px;
  border-radius: 20px;
  min-width: 200px;
  background: transparent;
  border: none;
  box-shadow: none;
  color: #e8e8e8;
  font-family: var(--ui-font-primary);
}

.filter-panel.compact {
  min-width: 160px;
}

.filter-option {
  text-align: left;
  border: 1px solid transparent;
  background: transparent;
  color: rgba(255, 255, 255, 0.85);
  font-size: 13px;
  font-weight: 500;
  padding: 10px 16px;
  margin: 2px 0;
  border-radius: 14px;
  transition: all 0.2s ease;
  cursor: pointer;
  letter-spacing: 0.01em;
  -webkit-tap-highlight-color: transparent;
  outline: none;
}

.filter-option:hover {
  /* Match glass-dropdown-panel hover */
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.04));
  border-color: rgba(255, 140, 80, 0.3);
  color: #ffffff;
  transform: translateX(2px);
}

.filter-option:active {
  background: rgba(255, 140, 80, 0.1);
  color: #ffffff;
}

.filter-option.active {
  /* Match glass-dropdown-panel selected state - orange tint */
  background: rgba(255, 140, 80, 0.15);
  border: 1px solid rgba(255, 140, 80, 0.4);
  color: #ffffff;
  font-weight: 600;
  box-shadow: none;
}

.cdk-overlay-container .pill-panel,
.cdk-overlay-container .mat-mdc-select-panel.pill-panel,
.mat-mdc-select-panel.pill-panel {
  background: linear-gradient(145deg, rgba(60, 50, 45, 0.25), rgba(40, 35, 30, 0.35)) !important;
  /* Transparent Glass */
  backdrop-filter: blur(60px) saturate(100%) brightness(1) !important;
  -webkit-backdrop-filter: blur(60px) saturate(100%) brightness(1) !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.15) !important;
  border-radius: 28px !important;
  padding: 12px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
  margin-top: 10px !important;
  min-width: 280px !important;
  width: max(100%, 280px) !important;
  overflow: visible !important;
  isolation: isolate;
}

.cdk-overlay-container .pill-panel-right {
  margin-left: 0 !important;
  /* Reset manual offset */
  transform-origin: top right !important;
}

.cdk-overlay-container .pill-panel .mat-mdc-option,
.cdk-overlay-container .mat-mdc-select-panel.pill-panel .mat-mdc-option {
  color: rgba(255, 255, 255, 0.8) !important;
  transition: all 0.2s ease;
  border-radius: 10px !important;
  margin: 4px 8px !important;
  padding: 10px 16px !important;
  min-height: 44px !important;
  height: auto !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em !important;
  border: 1px solid transparent !important;
  background: rgba(255, 255, 255, 0.02) !important;
  box-sizing: border-box !important;
  width: calc(100% - 16px) !important;
}

.cdk-overlay-container .pill-panel .mat-mdc-option .mdc-list-item__primary-text {
  margin-left: 0;
  padding-left: 8px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 500;
}

.cdk-overlay-container .pill-panel .mat-mdc-option:hover,
.cdk-overlay-container .pill-panel .mat-mdc-option.mat-mdc-option-active,
.cdk-overlay-container .mat-mdc-select-panel.pill-panel .mat-mdc-option:hover,
.cdk-overlay-container .mat-mdc-select-panel.pill-panel .mat-mdc-option.mat-mdc-option-active {
  background: rgba(255, 255, 255, 0.05) !important;
  color: rgba(255, 255, 255, 0.95) !important;
}

.cdk-overlay-container .pill-panel .mat-mdc-option.mdc-list-item--selected,
.cdk-overlay-container .pill-panel .mat-mdc-option.mat-mdc-option-selected,
.cdk-overlay-container .mat-mdc-select-panel.pill-panel .mat-mdc-option.mdc-list-item--selected,
.cdk-overlay-container .mat-mdc-select-panel.pill-panel .mat-mdc-option.mat-mdc-option-selected {
  background: rgba(255, 255, 255, 0.1) !important;
  color: #ffffff !important;
  font-weight: 600 !important;
  border: 1px solid rgba(255, 255, 255, 0.05) !important;
  border-radius: 10px !important;
  box-shadow: none !important;
}

/* Remove default material ripple and focus overlays */
.cdk-overlay-container .pill-panel .mat-mdc-option .mat-ripple-element,
.cdk-overlay-container .pill-panel .mat-mdc-option::before,
.cdk-overlay-container .pill-panel .mat-mdc-option .mat-mdc-focus-indicator {
  display: none !important;
  opacity: 0 !important;
  background: transparent !important;
}

.cdk-overlay-container .pill-panel .mat-pseudo-checkbox,
.cdk-overlay-container .pill-panel .mat-mdc-option .mat-pseudo-checkbox-minimal {
  display: none !important;
}

/* ==========================================================================
   PILL BASE BUTTON - Base styling for all pill buttons
   ========================================================================== */
.pill-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 18px;
  height: 36px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 999px;
  color: rgba(255, 255, 255, 0.85);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.25s ease;
  white-space: nowrap;
  font-family: inherit;
  text-decoration: none;
}

.pill-btn:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.25);
  color: #fff;
}

.pill-btn mat-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  font-size: 16px;
  flex-shrink: 0;
}

/* ==========================================================================
   PILL ADD BUTTON - Semi-Transparent Coral Style (from contacts-shell)
   ========================================================================== */
.pill-btn-add {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 18px;
  height: 32px;
  background: rgba(255, 140, 90, 0.12);
  border: 1px solid rgba(255, 140, 90, 0.3);
  border-radius: 999px;
  color: rgba(255, 180, 140, 0.95);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.25s ease;
  white-space: nowrap;
  font-family: inherit;
  text-decoration: none;
}

.pill-btn-add:hover {
  background: rgba(255, 140, 90, 0.2);
  border-color: rgba(255, 140, 90, 0.45);
  color: #fff;
  box-shadow: 0 0 20px rgba(255, 140, 90, 0.25);
}

.pill-btn-add:active {
  background: rgba(255, 140, 90, 0.25);
}

.pill-btn-add .btn-icon,
.pill-btn-add mat-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1;
  color: inherit;
}

.pill-btn-add:disabled,
.pill-btn-add.disabled {
  background: rgba(255, 140, 90, 0.06);
  border-color: rgba(255, 140, 90, 0.12);
  color: rgba(255, 180, 140, 0.35);
  cursor: not-allowed;
  box-shadow: none;
  transform: none;
}

.pill-btn-add:disabled:hover,
.pill-btn-add.disabled:hover {
  background: rgba(255, 140, 90, 0.06);
  border-color: rgba(255, 140, 90, 0.12);
  color: rgba(255, 180, 140, 0.35);
  box-shadow: none;
}

/* ==========================================================================
   SHORTCUT BADGE - Inline keyboard hint inside action buttons
   ========================================================================== */
.shortcut-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  padding: 1px 5px;
  margin-left: 6px;
  font-family: "SF Mono", "Fira Code", "Cascadia Code", monospace;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.4;
  color: inherit;
  opacity: 0.55;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 999px;
  white-space: nowrap;
  pointer-events: none;
  transition: opacity 0.2s ease;
}

/* Brighten badge on button hover */
:hover > .shortcut-badge,
button:hover .shortcut-badge,
.cursor:hover > .shortcut-badge {
  opacity: 0.9;
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.35);
  box-shadow: 0 0 6px rgba(255, 255, 255, 0.08);
}

/* Search input "/" hint */
.filter-search {
  position: relative;
}

.filter-search input {
  padding-right: 36px;
}

.search-shortcut-hint {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  padding: 1px 5px;
  font-family: var(--ui-font-mono);
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.35);
  background: none;
  border: none;
  border-radius: 4px;
  pointer-events: none;
  transition: opacity 0.2s ease;
}

.filter-search:focus-within .search-shortcut-hint {
  opacity: 0;
}

/* Clear (×) button inside the search pill */
.search-clear-btn {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  padding: 0;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 50%;
  color: rgba(255, 255, 255, 0.55);
  cursor: pointer;
  transition: all 0.18s ease;
  animation: search-clear-fadein 0.15s ease;
  line-height: 1;
  flex-shrink: 0;
}

.search-clear-btn mat-icon {
  font-size: 13px;
  width: 13px;
  height: 13px;
  line-height: 1;
}

.search-clear-btn:hover {
  background: rgba(255, 100, 80, 0.18);
  border-color: rgba(255, 100, 80, 0.35);
  color: rgb(255, 160, 140);
  transform: translateY(-50%) scale(1.1);
}

.search-clear-btn:active {
  transform: translateY(-50%) scale(0.95);
}

@keyframes search-clear-fadein {
  from {
    opacity: 0;
    transform: translateY(-50%) scale(0.7);
  }
  to {
    opacity: 1;
    transform: translateY(-50%) scale(1);
  }
}
/* Header shortcuts help link */
.shortcuts-help-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 180, 140, 0.6);
  border: 1px solid rgba(255, 140, 80, 0.12);
  border-radius: 999px;
  background: rgba(255, 140, 80, 0.06);
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.shortcuts-help-link:hover {
  color: rgba(255, 180, 140, 0.9);
  background: rgba(255, 140, 80, 0.12);
  border-color: rgba(255, 140, 80, 0.25);
}

.shortcuts-help-link mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: rgba(255, 140, 80, 0.5);
}

.shortcuts-help-kbd {
  font-size: 10px;
  font-weight: 600;
  padding: 1px 5px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.4);
  font-family: inherit;
  line-height: 1.4;
}

/* Larger badge for POS operator buttons */
.shortcut-badge--lg {
  padding: 3px 8px;
  font-size: 11px;
  min-width: 24px;
  border-radius: 5px;
}

/* First-time shortcut tip snackbar */
.shortcut-tip-snackbar {
  --mdc-snackbar-container-color: rgba(40, 35, 30, 0.92) !important;
  --mdc-snackbar-supporting-text-color: rgba(255, 220, 180, 0.95) !important;
  --mat-snack-bar-button-color: rgba(255, 140, 80, 0.8) !important;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 140, 80, 0.2);
  border-radius: 12px !important;
}

/* ==========================================================================
   PILL PRIMARY BUTTON - Solid Gradient Primary Action Button
   ========================================================================== */
.pill-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 20px;
  height: 38px;
  /* Solid orange gradient background */
  background: linear-gradient(135deg, #ff784f 0%, #ff5722 100%);
  /* Border - subtle darker shade for depth */
  border: 1px solid rgba(255, 87, 34, 0.5);
  border-radius: 999px;
  /* Typography */
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.01em;
  /* Interaction */
  cursor: pointer;
  transition: all 0.25s ease;
  white-space: nowrap;
  font-family: inherit;
  text-decoration: none;
  /* Subtle shadow for depth */
  box-shadow: 0 2px 8px rgba(255, 87, 34, 0.2);
}

.pill-btn-primary:hover {
  /* Enhanced gradient on hover */
  background: linear-gradient(135deg, #ff8a65 0%, #ff5722 100%);
  border-color: rgba(255, 138, 101, 0.6);
  /* Glow effect */
  box-shadow: 0 4px 16px rgba(255, 120, 79, 0.35), 0 0 24px rgba(255, 140, 90, 0.2);
  /* Slight lift */
  transform: translateY(-1px);
}

.pill-btn-primary:active {
  transform: translateY(0);
  box-shadow: 0 2px 6px rgba(255, 87, 34, 0.25);
}

.pill-btn-primary .btn-icon,
.pill-btn-primary mat-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  font-size: 16px;
  font-weight: 400;
  line-height: 16px;
}

/* Disabled state */
.pill-btn-primary:disabled,
.pill-btn-primary.disabled {
  background: linear-gradient(135deg, rgba(255, 120, 79, 0.4) 0%, rgba(255, 87, 34, 0.4) 100%);
  border-color: rgba(255, 87, 34, 0.2);
  color: rgba(255, 255, 255, 0.5);
  cursor: not-allowed;
  box-shadow: none;
  transform: none;
}

/* ==========================================================================
   PILL SECONDARY BUTTON - Ghost/Outlined Button
   ========================================================================== */
.pill-btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 18px;
  height: 36px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 999px;
  color: rgba(255, 255, 255, 0.85);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.25s ease;
  white-space: nowrap;
  font-family: inherit;
  text-decoration: none;
}

.pill-btn-secondary:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.25);
  color: #fff;
}

.pill-btn-secondary .btn-icon,
.pill-btn-secondary mat-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  font-size: 16px;
  font-weight: 400;
  line-height: 16px;
  flex-shrink: 0;
}

/* Disabled state for secondary button */
.pill-btn-secondary:disabled,
.pill-btn-secondary.disabled {
  background: rgba(255, 255, 255, 0.02);
  border-color: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.35);
  cursor: not-allowed;
  opacity: 0.6;
}

.pill-btn-secondary:disabled:hover,
.pill-btn-secondary.disabled:hover {
  background: rgba(255, 255, 255, 0.02);
  border-color: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.35);
  transform: none;
  box-shadow: none;
}

/* ==========================================================================
   CLEAR/RESET BUTTON - Small Clear Filters Button
   ========================================================================== */
.btn-clear-sm {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 0 12px;
  height: 32px;
  background: rgba(255, 100, 80, 0.08);
  border: 1px solid rgba(255, 100, 80, 0.2);
  border-radius: 999px;
  color: rgba(255, 140, 120, 0.9);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
  font-family: inherit;
}

.btn-clear-sm:hover {
  background: rgba(255, 100, 80, 0.15);
  border-color: rgba(255, 100, 80, 0.35);
  color: rgb(255, 160, 140);
}

.btn-clear-sm mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

/* ==========================================================================
   PILL GHOST BUTTON - Outline/Ghost Style Button
   ========================================================================== */
.pill-btn-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 18px;
  height: 36px;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 999px;
  color: rgba(255, 255, 255, 0.85);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.25s ease;
  white-space: nowrap;
  font-family: inherit;
  text-decoration: none;
}

.pill-btn-ghost:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.28);
  color: #fff;
}

.pill-btn-ghost mat-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  font-size: 16px;
  flex-shrink: 0;
}

/* ==========================================================================
   PILL DANGER BUTTON - Destructive/Cancel Actions
   ========================================================================== */
.pill-btn-danger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 18px;
  height: 36px;
  background: rgba(255, 95, 109, 0.1);
  border: 1px solid rgba(255, 95, 109, 0.25);
  border-radius: 999px;
  color: #ff5f6d;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.25s ease;
  white-space: nowrap;
  font-family: inherit;
  text-decoration: none;
}

.pill-btn-danger:hover {
  background: rgba(255, 95, 109, 0.18);
  border-color: rgba(255, 95, 109, 0.4);
  color: #ff7a85;
}

.pill-btn-danger mat-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  font-size: 16px;
  flex-shrink: 0;
}

/* ==========================================================================
   PILL SORT CONTROL - Connected Field + Direction Toggle Button

   Usage:
   <div class="pill-sort-control">
     <button class="pill-sort-field" [matMenuTriggerFor]="sortMenu">
       {{ currentSortLabel }}
       <mat-icon class="dropdown-arrow">arrow_drop_down</mat-icon>
     </button>
     <mat-menu #sortMenu="matMenu" class="glass-dropdown-panel">
       <button mat-menu-item (click)="setSortField('date')">Date</button>
       ...
     </mat-menu>
     <button class="pill-sort-direction" (click)="toggleDirection()">
       <mat-icon>{{ isDesc ? 'arrow_downward' : 'arrow_upward' }}</mat-icon>
     </button>
   </div>
   ========================================================================== */
.pill-sort-control {
  display: inline-flex;
  align-items: center;
  gap: 0;
}

.pill-sort-field {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 6px 8px 6px 12px;
  height: 32px;
  box-sizing: border-box;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-right: none;
  border-radius: 16px 0 0 16px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.9);
  font-family: inherit;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.pill-sort-field:hover {
  border-color: rgba(255, 153, 102, 0.4);
  background: rgba(255, 255, 255, 0.06);
}

.pill-sort-field .dropdown-arrow {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 255, 255, 0.5);
  margin-left: -2px;
}

.pill-sort-direction {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 0 16px 16px 0;
  background: rgba(255, 255, 255, 0.04);
  cursor: pointer;
  transition: all 0.2s ease;
}

.pill-sort-direction mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: rgba(255, 153, 102, 0.9);
}

.pill-sort-direction:hover {
  background: rgba(255, 153, 102, 0.15);
  border-color: rgba(255, 153, 102, 0.4);
}

.pill-sort-direction:hover mat-icon {
  color: #ff9966;
}

/* Active state for direction button */
.pill-sort-direction.active,
.pill-sort-direction:active {
  background: rgba(255, 153, 102, 0.2);
}

/* Combined hover effect for connected buttons */
.pill-sort-control:hover .pill-sort-field {
  border-color: rgba(255, 255, 255, 0.18);
}

.pill-sort-control:hover .pill-sort-direction {
  border-color: rgba(255, 255, 255, 0.18);
}

/* ==========================================================================
   PILL FILTER BUTTON - Filter/Presets Dropdown Trigger
   ========================================================================== */
.pill-filter-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  height: 32px;
  box-sizing: border-box;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 16px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.85);
  font-family: inherit;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.pill-filter-btn:hover {
  border-color: rgba(255, 153, 102, 0.4);
  background: rgba(255, 255, 255, 0.06);
}

.pill-filter-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: rgba(255, 255, 255, 0.7);
}

.pill-filter-btn mat-icon:first-child {
  color: rgba(255, 153, 102, 0.9);
}

.pill-filter-btn .dropdown-arrow {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: rgba(255, 255, 255, 0.5);
  margin-left: -4px;
  margin-right: -4px;
}

.pill-filter-btn.active,
.pill-filter-btn[aria-expanded=true] {
  background: rgba(255, 153, 102, 0.12);
  border-color: rgba(255, 153, 102, 0.35);
}

/* Filter badge (small, inline) */
.filter-badge-sm {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  background: rgba(255, 140, 90, 0.9);
  border-radius: 8px;
  font-size: 10px;
  font-weight: 700;
  color: #fff;
  margin-left: 2px;
}

/* Menu section label for dropdowns */
.menu-section-label {
  padding: 8px 16px 6px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.45);
  pointer-events: none;
}

/* ==========================================================================
   PILL PANEL - AUTOCOMPLETE SUPPORT
   Extends pill-panel styling to mat-autocomplete dropdowns
   ========================================================================== */
.cdk-overlay-container .pill-panel.mat-mdc-autocomplete-panel,
.cdk-overlay-container .mat-mdc-autocomplete-panel.pill-panel,
.mat-mdc-autocomplete-panel.pill-panel {
  background: linear-gradient(145deg, rgba(60, 50, 45, 0.25), rgba(40, 35, 30, 0.35)) !important;
  backdrop-filter: blur(60px) saturate(100%) brightness(1) !important;
  -webkit-backdrop-filter: blur(60px) saturate(100%) brightness(1) !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.15) !important;
  border-radius: 28px !important;
  padding: 12px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
  margin-top: 10px !important;
  min-width: 280px !important;
  width: max(100%, 280px) !important;
  overflow: visible !important;
  isolation: isolate;
  max-height: 350px !important;
  overflow-y: auto !important;
}

/* Autocomplete options in pill-panel */
.mat-mdc-autocomplete-panel.pill-panel .mat-mdc-option {
  color: rgba(255, 255, 255, 0.8) !important;
  transition: all 0.2s ease;
  border-radius: 10px !important;
  margin: 4px 8px !important;
  padding: 10px 16px !important;
  min-height: 44px !important;
  height: auto !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em !important;
  border: 1px solid transparent !important;
  background: rgba(255, 255, 255, 0.02) !important;
  box-sizing: border-box !important;
  width: calc(100% - 16px) !important;
}

/* Hover state for autocomplete options */
.mat-mdc-autocomplete-panel.pill-panel .mat-mdc-option:hover,
.mat-mdc-autocomplete-panel.pill-panel .mat-mdc-option.mat-mdc-option-active {
  background: rgba(255, 255, 255, 0.05) !important;
  color: rgba(255, 255, 255, 0.95) !important;
  border-color: rgba(255, 140, 80, 0.3) !important;
  transform: translateX(2px) !important;
}

/* Selected state for autocomplete options */
.mat-mdc-autocomplete-panel.pill-panel .mat-mdc-option.mdc-list-item--selected,
.mat-mdc-autocomplete-panel.pill-panel .mat-mdc-option.mat-mdc-option-selected {
  background: rgba(255, 255, 255, 0.1) !important;
  color: #ffffff !important;
  font-weight: 600 !important;
  border: 1px solid rgba(255, 255, 255, 0.05) !important;
  border-radius: 10px !important;
  box-shadow: none !important;
}

/* Remove ripple and focus indicators */
.mat-mdc-autocomplete-panel.pill-panel .mat-mdc-option .mat-ripple-element,
.mat-mdc-autocomplete-panel.pill-panel .mat-mdc-option::before,
.mat-mdc-autocomplete-panel.pill-panel .mat-mdc-option .mat-mdc-focus-indicator {
  display: none !important;
  opacity: 0 !important;
  background: transparent !important;
}

/* Prevent overlay pane blur for pill-panel autocomplete */
.cdk-overlay-pane:has(.mat-mdc-autocomplete-panel.pill-panel) {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  background: transparent !important;
}

/* ==========================================================================
   PILL TOGGLE - Small Toggle Switch

   Usage:
   <button class="pill-toggle" [class.active]="isActive" (click)="toggle()">
     <span class="pill-toggle-track">
       <span class="pill-toggle-thumb"></span>
     </span>
   </button>
   ========================================================================== */
.pill-toggle {
  border: none;
  background: transparent;
  cursor: pointer;
  padding: 0;
  display: inline-flex;
  align-items: center;
}

.pill-toggle-track {
  width: 50px;
  height: 24px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.2);
  display: inline-flex;
  align-items: center;
  padding: 3px;
  position: relative;
  transition: background 0.2s cubic-bezier(0.4, 0, 0.2, 1), border 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.pill-toggle-thumb {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.85);
  transform: translateX(0);
  transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: transform;
}

.pill-toggle.active .pill-toggle-track {
  background: linear-gradient(120deg, #ff581b, #a62a09);
  border-color: transparent;
  box-shadow: 0 6px 12px rgba(165, 42, 9, 0.35);
}

.pill-toggle.active .pill-toggle-thumb {
  transform: translateX(24px);
  background: #fff;
}

/* Disabled state */
.pill-toggle:disabled,
.pill-toggle.disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

/* Hover effect when not active */
.pill-toggle:not(.active):not(:disabled):hover .pill-toggle-track {
  background: rgba(255, 255, 255, 0.2);
  border-color: rgba(255, 255, 255, 0.25);
}

/* ==========================================================================
   UNIFIED FILTER BUTTON - Filter Menu Trigger

   Usage:
   <button class="unified-filter-btn" [matMenuTriggerFor]="filterMenu">
     <mat-icon>tune</mat-icon>
     <span>Filters</span>
     <span class="filter-badge" *ngIf="count > 0">{{ count }}</span>
   </button>
   ========================================================================== */
.unified-filter-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 16px;
  height: 36px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 999px;
  color: rgba(255, 255, 255, 0.85);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.25s ease;
  white-space: nowrap;
  font-family: inherit;
}

.unified-filter-btn:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.25);
  color: #fff;
}

.unified-filter-btn.has-active {
  background: rgba(255, 140, 90, 0.12);
  border-color: rgba(255, 140, 90, 0.35);
  color: rgba(255, 180, 140, 0.95);
}

.unified-filter-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: inherit;
}

.filter-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  background: rgba(255, 140, 90, 0.9);
  border-radius: 9px;
  font-size: 11px;
  font-weight: 700;
  color: #fff;
}

/* ==========================================================================
   FILTER SECTION - For Filter Panels/Dropdowns

   Usage:
   <div class="filter-section">
     <h4 class="filter-section-title">Status</h4>
     <div class="filter-pills-grid">...</div>
   </div>
   ========================================================================== */
.filter-section {
  padding: 12px 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.filter-section:last-of-type {
  border-bottom: none;
}

.filter-section-title {
  margin: 0 0 10px 0;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.6);
}

.filter-pills-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.filter-section--dropdowns {
  padding-top: 16px;
}

.filter-dropdown-row {
  display: flex;
  gap: 12px;
}

.filter-dropdown-row mat-select {
  flex: 1;
  min-width: 0;
}

/* ==========================================================================
   FILTER PILL CHECKBOX - Toggle Pill Button

   Usage:
   <button class="filter-pill-checkbox" [class.active]="isActive">
     <span class="pill-radio" [class.checked]="isActive"></span>
     <span class="pill-label">Label</span>
   </button>
   ========================================================================== */
.filter-pill-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  color: rgba(255, 255, 255, 0.75);
  font-size: 11px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
  white-space: nowrap;
}

.filter-pill-checkbox:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.9);
}

.filter-pill-checkbox.active {
  background: rgba(255, 140, 90, 0.15);
  border-color: rgba(255, 140, 90, 0.4);
  color: rgb(255, 180, 140);
}

.pill-radio {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.3);
  background: transparent;
  transition: all 0.2s ease;
  flex-shrink: 0;
}

.pill-radio.checked {
  border-color: rgba(255, 140, 90, 0.8);
  background: rgba(255, 140, 90, 0.8);
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.9);
}

/* ==========================================================================
   FILTER PANEL FOOTER - Apply/Clear Buttons
   ========================================================================== */
.filter-panel-footer {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 12px 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  margin-top: 8px;
}

.filter-clear-btn {
  padding: 8px 16px;
  background: transparent;
  border: 1px solid rgba(255, 100, 80, 0.3);
  border-radius: 999px;
  color: rgba(255, 140, 120, 0.9);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
}

.filter-clear-btn:hover {
  background: rgba(255, 100, 80, 0.1);
  border-color: rgba(255, 100, 80, 0.5);
  color: rgb(255, 160, 140);
}

.filter-apply-btn {
  padding: 8px 20px;
  background: linear-gradient(135deg, #ff784f 0%, #ff5722 100%);
  border: none;
  border-radius: 999px;
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
}

.filter-apply-btn:hover {
  background: linear-gradient(135deg, #ff8a65 0%, #ff5722 100%);
  box-shadow: 0 4px 12px rgba(255, 87, 34, 0.35);
}

/* ==========================================================================
   BULK ACTION BAR - Selection Action Toolbar

   Usage:
   <div class="bulk-action-bar" *ngIf="selectedItems.length > 0">
     <div class="bulk-info">
       <span class="bulk-count">{{ count }} selected</span>
       <span class="bulk-amount">₹{{ total }}</span>
     </div>
     <div class="bulk-actions">
       <button class="bulk-btn approve">...</button>
       <button class="bulk-btn reject">...</button>
       <button class="bulk-btn-close">...</button>
     </div>
   </div>
   ========================================================================== */
.bulk-action-bar {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 18px;
  padding: 10px 18px;
  margin: 0 0 16px 0;
  background: linear-gradient(145deg, rgba(40, 35, 30, 0.85), rgba(30, 25, 22, 0.9));
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 16px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

.bulk-info {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.bulk-count {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}

.bulk-amount {
  font-size: 14px;
  font-weight: 700;
  color: rgba(255, 180, 140, 0.95);
  padding-left: 10px;
  border-left: 1px solid rgba(255, 255, 255, 0.1);
}

.bulk-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  min-width: 0;
}

.bulk-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 13px;
  height: 34px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 999px;
  color: rgba(255, 255, 255, 0.85);
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
  white-space: nowrap;
}

.bulk-btn:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.25);
  color: #fff;
}

.bulk-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.bulk-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

/* Semantic bulk action variants */
.bulk-btn.approve {
  background: rgba(74, 222, 128, 0.1);
  border-color: rgba(74, 222, 128, 0.3);
  color: rgba(120, 240, 160, 0.95);
}

.bulk-btn.approve:hover:not(:disabled) {
  background: rgba(74, 222, 128, 0.18);
  border-color: rgba(74, 222, 128, 0.45);
}

.bulk-btn.reject {
  background: rgba(248, 113, 113, 0.1);
  border-color: rgba(248, 113, 113, 0.3);
  color: rgba(255, 140, 140, 0.95);
}

.bulk-btn.reject:hover:not(:disabled) {
  background: rgba(248, 113, 113, 0.18);
  border-color: rgba(248, 113, 113, 0.45);
}

.bulk-btn.payable {
  background: rgba(96, 165, 250, 0.1);
  border-color: rgba(96, 165, 250, 0.3);
  color: rgba(140, 190, 255, 0.95);
}

.bulk-btn.payable:hover:not(:disabled) {
  background: rgba(96, 165, 250, 0.18);
  border-color: rgba(96, 165, 250, 0.45);
}

.bulk-btn.cancel-expense {
  background: rgba(200, 200, 200, 0.08);
  border-color: rgba(200, 200, 200, 0.2);
  color: rgba(200, 200, 200, 0.85);
}

.bulk-btn.cancel-expense:hover:not(:disabled) {
  background: rgba(200, 200, 200, 0.12);
  border-color: rgba(200, 200, 200, 0.35);
}

.bulk-btn-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  padding: 0;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 50%;
  color: rgba(255, 255, 255, 0.6);
  cursor: pointer;
  transition: all 0.2s ease;
}

.bulk-btn-close:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.9);
}

.bulk-btn-close mat-icon {
  font-size: 17px;
  width: 17px;
  height: 17px;
}

@media (max-width: 1100px) {
  .bulk-action-bar {
    flex-wrap: wrap;
    align-items: flex-start;
  }
  .bulk-actions {
    width: 100%;
  }
}
/* Push Add Expense + status tabs to the right end of the filter toolbar row */
.expense-tab-group {
  margin-left: 0;
}

.stats-header__actions--clean .pill-btn-add {
  margin-left: auto;
}

/* ==========================================================================
   ACTIVE FILTERS ROW - Active Filter Chips Display
   ========================================================================== */
.active-filters-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  flex-wrap: wrap;
}

.active-filters-label {
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.5);
}

.active-filter-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.active-filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  background: rgba(255, 140, 90, 0.1);
  border: 1px solid rgba(255, 140, 90, 0.25);
  border-radius: 999px;
  color: rgba(255, 180, 140, 0.95);
  font-size: 12px;
  font-weight: 500;
}

.active-filter-chip.cancelled-filter {
  background: rgba(248, 113, 113, 0.1);
  border-color: rgba(248, 113, 113, 0.25);
  color: rgba(255, 140, 140, 0.95);
}

.active-filter-chip mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.chip-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  padding: 0;
  margin-left: 2px;
  background: transparent;
  border: none;
  border-radius: 50%;
  color: inherit;
  opacity: 0.6;
  cursor: pointer;
  transition: opacity 0.2s ease;
}

.chip-remove:hover {
  opacity: 1;
}

.chip-remove mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

.clear-all-link {
  margin-left: auto;
  background: transparent;
  border: none;
  color: rgba(255, 140, 90, 0.8);
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  text-decoration: underline;
  transition: color 0.2s ease;
  font-family: inherit;
}

.clear-all-link:hover {
  color: rgb(255, 160, 110);
}

/* ==========================================================================
   PILL ICON BUTTON — Compact circular action button
   ========================================================================== */
.pill-btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.85);
  cursor: pointer;
  transition: all 0.2s ease;
}

.pill-btn-icon:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.25);
  color: #fff;
}

.pill-btn-icon mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

/* Danger variant - for delete/destructive actions */
.pill-btn-icon--danger {
  background: rgba(239, 68, 68, 0.1);
  border-color: rgba(239, 68, 68, 0.3);
  color: #f87171;
}

.pill-btn-icon--danger:hover {
  background: rgba(239, 68, 68, 0.18);
  border-color: rgba(239, 68, 68, 0.45);
  color: #fca5a5;
}

/* Success variant */
.pill-btn-icon--success {
  background: rgba(34, 197, 94, 0.1);
  border-color: rgba(34, 197, 94, 0.3);
  color: #4ade80;
}

.pill-btn-icon--success:hover {
  background: rgba(34, 197, 94, 0.18);
  border-color: rgba(34, 197, 94, 0.45);
  color: #86efac;
}

/* ==========================================================================
   FINALIZE BUTTON GROUP — Action button with helper text
   ========================================================================== */
.finalize-button-group {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}

.finalize-helper-text {
  font-size: 11px;
  font-weight: 500;
  color: #fbbf24;
  letter-spacing: 0.02em;
}

.finalize-helper-text.success {
  color: #4ade80;
}

/* ==========================================================================
   PILL GHOST BUTTON (SM) — Compact inline action for table rows
   ========================================================================== */
.pill-btn-ghost-sm {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.75);
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
  font-family: inherit;
  white-space: nowrap;
}

.pill-btn-ghost-sm:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.2);
  color: #fff;
}

.pill-btn-ghost-sm mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

/* ==========================================================================
   FORM 16 ERROR REASONS — Inline status explanations
   ========================================================================== */
.form16-reason {
  font-size: 12px;
  font-weight: 500;
  color: #ffa726;
  display: flex;
  align-items: center;
  gap: 4px;
}

.form16-reason--error {
  color: #ef5350;
}

/* Row tint for error/warning states */
.data-row.row-error {
  background: rgba(244, 67, 54, 0.04);
}

.data-row.row-warning {
  background: rgba(255, 167, 38, 0.03);
}

/* Type pill - danger variant */
.type-pill.danger {
  background: rgba(244, 67, 54, 0.15);
  color: #ef5350;
}

/* ==========================================================================
   BANK FILE DROPDOWN — Format selector next to Finalize
   ========================================================================== */
.bank-file-dropdown {
  display: inline-flex;
}

.finalize-button-group {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ==========================================================================
   SEARCH CLEAR BUTTON - Inline × button inside a pill-trigger search field
   ========================================================================== */
.search-clear-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  padding: 0;
  margin-left: 4px;
  background: transparent;
  border: none;
  border-radius: 0;
  color: rgba(255, 255, 255, 0.4);
  cursor: pointer;
  transition: color 0.2s ease;
  line-height: 1;
  font-family: inherit;
}

.search-clear-btn:hover {
  background: transparent;
  color: rgb(255, 160, 140);
}

.search-clear-btn mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  line-height: 16px;
}

/* Applied to the date-filter wrapper when search is active */
.date-filter-dimmed {
  opacity: 0.45;
  pointer-events: none;
  transition: opacity 0.2s ease;
}

/* ==========================================================================
   UI CONTROLS - SKELETONS
   ==========================================================================
   Lightweight shimmer placeholders for loading states.
   ========================================================================== */
.ui-skeleton {
  display: block;
  position: relative;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.06);
  border-radius: var(--ui-radius-md);
}

.ui-skeleton::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.12), transparent);
  animation: ui-skeleton-shimmer 1.35s ease-in-out infinite;
}

.ui-skeleton--line {
  height: var(--ui-space-3);
  width: 60%;
  border-radius: var(--ui-radius-full);
}

.ui-skeleton--xs {
  width: 30%;
  height: var(--ui-space-2);
}

.ui-skeleton--sm {
  width: 45%;
  height: var(--ui-space-3);
}

.ui-skeleton--md {
  width: 70%;
  height: var(--ui-space-3);
}

.ui-skeleton--lg {
  width: 90%;
  height: var(--ui-space-4);
}

.ui-skeleton--pill {
  height: var(--ui-space-3);
  width: calc(var(--ui-space-12) * 1.3);
  border-radius: var(--ui-radius-full);
}

.ui-skeleton--chart {
  height: calc(var(--ui-space-12) * 2.3);
  width: 100%;
}

.ui-skeleton--donut {
  width: calc(var(--ui-space-12) * 1.9);
  height: calc(var(--ui-space-12) * 1.9);
  border-radius: var(--ui-radius-full);
}

.ui-skeleton--avatar {
  width: 36px;
  height: 36px;
  border-radius: var(--ui-radius-md);
  flex-shrink: 0;
}

.ui-content-fade-in {
  animation: ui-content-fade-in 0.18s ease-out;
}

.card-skeleton {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}

.skeleton-line,
.skeleton-pill,
.card-skeleton .skeleton-line,
.skeleton-box,
.skeleton-avatar,
.skeleton-circle-sm,
.skeleton-action-btn {
  display: block;
  position: relative;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
}

.skeleton-line::after,
.skeleton-pill::after,
.card-skeleton .skeleton-line::after,
.skeleton-box::after,
.skeleton-avatar::after,
.skeleton-circle-sm::after,
.skeleton-action-btn::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.12), transparent);
  animation: ui-skeleton-shimmer 1.35s ease-in-out infinite;
}

.skeleton-line,
.card-skeleton .skeleton-line,
.skeleton-box {
  height: 14px;
}

.skeleton-line.short,
.card-skeleton .skeleton-line.short,
.skeleton-box.short,
.skeleton-pill.short {
  width: 40%;
}

.skeleton-line.medium,
.card-skeleton .skeleton-line.medium,
.skeleton-box.medium {
  width: 68%;
}

.skeleton-line.long,
.card-skeleton .skeleton-line.long,
.skeleton-box.long {
  width: 90%;
}

.skeleton-line.w-60,
.card-skeleton .skeleton-line.w-60,
.skeleton-box.w-60 {
  width: 60%;
}

.skeleton-pill {
  width: 88px;
  height: 20px;
}

.skeleton-line.badge {
  width: 76px;
  height: 24px;
  border-radius: 999px;
}

.skeleton-line.index {
  width: 20px;
  height: 14px;
}

.skeleton-line.amount {
  width: 88px;
  height: 16px;
  margin-left: auto;
}

.skeleton-avatar {
  width: 34px;
  height: 34px;
  border-radius: 12px;
  flex-shrink: 0;
}

.skeleton-circle-sm {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
}

.skeleton-vendor,
.skeleton-dates,
.skeleton-status,
.skeleton-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.skeleton-vendor,
.skeleton-status {
  align-items: flex-start;
}

.skeleton-dates,
.skeleton-status {
  flex-direction: column;
}

.skeleton-date-row {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
}

.skeleton-actions {
  justify-content: center;
}

.skeleton-action-btn {
  width: 30px;
  height: 30px;
  border-radius: 10px;
}

.skeleton-box.right {
  margin-left: auto;
}

.skeleton-stacked {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.skeleton-stacked .skeleton-line:last-child,
.skeleton-stacked .skeleton-box:last-child {
  height: 12px;
  opacity: 0.72;
}

:where(.ui-table, .premium-table, .glass-table, .glass-data-table) .skeleton-row {
  display: table-row;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

:where(.ui-table, .premium-table, .glass-table, .glass-data-table) .skeleton-cell {
  display: table-cell;
  padding: 18px 14px;
  vertical-align: middle;
}

:where(.ui-table, .premium-table, .glass-table, .glass-data-table) .skeleton-cell:first-child {
  padding-left: 20px;
}

:where(.ui-table, .premium-table, .glass-table, .glass-data-table) .skeleton-cell:last-child {
  padding-right: 20px;
}

/* Premium-table skeleton fix — must use !important because
   .premium-table { @extend .ui-table } in data/table.scss causes
   `.ui-table .skeleton-row { display: table }` to also target
   .premium-table, and that @extend-generated rule appears later
   in compiled CSS, requiring !important to override. */
.premium-table .skeleton-row {
  display: table-row !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.premium-table .skeleton-cell {
  display: table-cell;
  padding: 18px 14px;
  vertical-align: middle;
}

.premium-table .skeleton-cell:first-child {
  padding-left: 20px;
}

.premium-table .skeleton-cell:last-child {
  padding-right: 20px;
}

@keyframes ui-skeleton-shimmer {
  0% {
    transform: translateX(-100%);
    opacity: 0.55;
  }
  50% {
    transform: translateX(0%);
    opacity: 1;
  }
  100% {
    transform: translateX(100%);
    opacity: 0.55;
  }
}
@keyframes ui-content-fade-in {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* ==========================================================================
   UI CONTROLS - SECTION TITLE
   ==========================================================================
   Reusable section title/label styling.
   ========================================================================== */
.ui-section-title {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin-bottom: var(--ui-space-4);
  padding-bottom: var(--ui-space-3);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ui-brand-light);
  position: relative;
}

/* Underline gradient */
.ui-section-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, var(--ui-brand), var(--ui-border), transparent);
}

/* Section title icon */
.ui-section-title mat-icon,
.ui-section-title .mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: var(--ui-brand);
}

/* Muted variant */
.ui-section-title--muted {
  color: var(--ui-text-muted);
}

.ui-section-title--muted::after {
  background: linear-gradient(90deg, var(--ui-border), transparent);
}

/* Quiet variant for dense analytic sections */
.ui-section-title--quiet {
  margin-bottom: var(--ui-space-3);
  padding-bottom: 0;
  color: var(--ui-text-muted);
}

.ui-section-title--quiet::after {
  display: none;
}

/* ==========================================================================
   UI CONTROLS — SECTION HEADER
   ==========================================================================
   A bar within a card that shows a title + optional action button.
   Typically used at the top of table sections.

   Usage:
     <div class="section-header">
       <span class="section-title">Parts</span>
       <button class="add-btn">+ Add Part</button>
     </div>
   ========================================================================== */
.section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 18px;
  background: rgba(255, 255, 255, 0.04);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 16px 16px 0 0; /* Match parent glass-panel rounded corners */
}

.section-title {
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.92);
  line-height: 1;
  display: flex;
  align-items: center;
  gap: 8px;
}

.section-title mat-icon {
  font-size: 20px;
  height: 20px;
  width: 20px;
  color: #ff8a65;
}

.add-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  font-size: 12px;
  font-weight: 600;
  background: rgba(255, 140, 100, 0.15);
  border: 1px solid rgba(255, 140, 100, 0.3);
  border-radius: 99px;
  color: #ff8a65;
  cursor: pointer;
  transition: all 0.2s ease;
}

.add-btn mat-icon {
  color: #ff8a65;
}

.add-btn:hover {
  background: rgba(255, 140, 100, 0.25);
  border-color: rgba(255, 140, 100, 0.5);
}

.add-btn:disabled {
  opacity: 0.35;
  cursor: not-allowed;
  pointer-events: auto; /* Allow tooltip to still show */
  background: rgba(255, 140, 100, 0.08);
  border-color: rgba(255, 140, 100, 0.12);
}
.add-btn:disabled:hover {
  background: rgba(255, 140, 100, 0.08);
  border-color: rgba(255, 140, 100, 0.12);
}

/* ==========================================================================
   UI CONTROL: DATE FILTER
   ==========================================================================
   Date range picker overlay panel with calendar and period options.
   Source: Restored from date-filter.component.css backup
   ========================================================================== */
/* Pill Trigger Button - scoped to date-filter component */
app-date-filter .pill-start-icon {
  margin-right: 6px;
  background: transparent;
  color: rgba(255, 255, 255, 0.7);
  font-size: 18px;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

app-date-filter .pill-trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: auto;
  min-height: 32px;
  padding: 6px 14px;
  white-space: normal;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 999px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
}

app-date-filter .pill-trigger:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
}

app-date-filter .pill-trigger mat-icon:last-child {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: rgba(255, 255, 255, 0.6);
  margin-left: 2px;
}

app-date-filter .pill-trigger mat-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.7);
}

app-date-filter .pill-label {
  display: inline-flex;
  align-items: center;
  line-height: 1.2;
  text-align: left;
  color: inherit;
}

app-date-filter .pill-single-title {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.9);
  transition: color 0.2s ease;
}

/* Active Filter State */
app-date-filter .pill-trigger.active-filter {
  border-color: rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.08);
}

app-date-filter .pill-trigger.active-filter .pill-single-title,
app-date-filter .pill-trigger.active-filter .pill-start-icon,
app-date-filter .pill-trigger.active-filter mat-icon {
  color: #f1f6ff;
}

.pill-row-title {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.85);
  text-align: left;
}

.pill-row-value {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.85);
  text-align: left;
}

.pill-row-title + .pill-row-value {
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.7);
  margin-top: 1px;
}

/* ==========================================================================
   DATE FILTER PANEL (Overlay)
   ========================================================================== */
.date-filter-panel, .ui-date-filter__panel {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 20px;
  padding: 18px;
  border-radius: 28px;
  min-width: 540px;
  max-width: 580px;
  background: rgba(24, 30, 41, 0.42);
  backdrop-filter: blur(34px) saturate(150%);
  -webkit-backdrop-filter: blur(34px) saturate(150%);
  border: 1px solid rgba(255, 255, 255, 0.18);
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.1);
  color: #e8e8e8;
  font-family: var(--ui-font-primary);
}

/* Period Options List */
.date-filter-list, .ui-date-filter__list {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-top: 4px;
}

.date-filter-option, .ui-date-filter__option {
  text-align: left;
  border: none;
  background: transparent;
  color: rgba(200, 190, 185, 0.85);
  font-size: 13px;
  font-weight: 500;
  padding: 8px 16px;
  border-radius: 999px;
  transition: all 0.2s ease;
  cursor: pointer;
  letter-spacing: 0.01em;
  -webkit-tap-highlight-color: transparent;
  outline: none;
}

.date-filter-option:hover, .ui-date-filter__option:hover {
  background: rgba(255, 255, 255, 0.05);
  color: rgba(255, 255, 255, 0.95);
}

.date-filter-option:active, .ui-date-filter__option:active {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
}

.date-filter-option.active, .active.ui-date-filter__option {
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff;
  font-weight: 600;
  box-shadow: none;
  border: 1px solid rgba(255, 255, 255, 0.05);
}

/* Date Filter Body */
.date-filter-body, .ui-date-filter__body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  position: relative;
  min-height: 280px;
  padding-bottom: 50px;
}

.date-filter-header, .ui-date-filter__header {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  padding-bottom: 6px;
}

.date-picker-group, .ui-date-filter__picker {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px 14px;
  border-radius: 14px;
  border: 1px solid transparent;
  cursor: pointer;
  transition: all 0.2s ease;
}

.date-picker-group:hover, .ui-date-filter__picker:hover {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
}

.date-picker-group.active, .active.ui-date-filter__picker {
  background: rgba(255, 99, 71, 0.1);
  border-color: rgba(255, 99, 71, 0.4);
}

.date-picker-group.active .muted.tiny, .active.ui-date-filter__picker .muted.tiny {
  color: #ff6347;
}

.date-picker-group.active .date-summary-value, .date-picker-group.active .ui-date-filter__summary, .active.ui-date-filter__picker .date-summary-value, .active.ui-date-filter__picker .ui-date-filter__summary {
  color: #ff6347;
}

.date-filter-panel .muted.tiny, .ui-date-filter__panel .muted.tiny {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(180, 170, 165, 0.75);
  margin: 0;
  font-weight: 500;
  transition: color 0.2s ease;
}

.date-summary-value, .ui-date-filter__summary {
  font-size: 20px;
  font-weight: 600;
  color: #ffffff;
  letter-spacing: -0.01em;
  transition: color 0.2s ease;
}

.date-summary-value.clickable, .clickable.ui-date-filter__summary {
  cursor: pointer;
}

/* Multi-month calendar container */
.multi-month-calendar, .ui-date-filter__calendar {
  max-height: 260px;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 4px;
  margin-right: -4px;
}

.multi-month-calendar::-webkit-scrollbar, .ui-date-filter__calendar::-webkit-scrollbar {
  width: 6px;
}

.multi-month-calendar::-webkit-scrollbar-track, .ui-date-filter__calendar::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.03);
  border-radius: 3px;
}

.multi-month-calendar::-webkit-scrollbar-thumb, .ui-date-filter__calendar::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.15);
  border-radius: 3px;
}

.multi-month-calendar::-webkit-scrollbar-thumb:hover, .ui-date-filter__calendar::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.25);
}

/* Stack calendars vertically */
.multi-month-calendar .mat-calendar, .ui-date-filter__calendar .mat-calendar {
  display: block;
  margin-bottom: 16px;
}

.multi-month-calendar .mat-calendar:last-child, .ui-date-filter__calendar .mat-calendar:last-child {
  margin-bottom: 0;
}

/* ==========================================================================
   CALENDAR STYLING
   ========================================================================== */
.date-filter-panel .mat-calendar, .ui-date-filter__panel .mat-calendar {
  background: transparent;
  color: #e8e8e8;
  font-family: inherit;
  font-size: 13px;
}

.date-filter-panel .mat-calendar-header, .ui-date-filter__panel .mat-calendar-header {
  padding: 0 0 8px 0;
}

.date-filter-panel .mat-calendar-controls, .ui-date-filter__panel .mat-calendar-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0;
}

.date-filter-panel .mat-calendar-period-button, .ui-date-filter__panel .mat-calendar-period-button {
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.05em;
  color: #ffffff;
  text-transform: uppercase;
  pointer-events: none;
}

.date-filter-panel .mat-calendar-arrow, .ui-date-filter__panel .mat-calendar-arrow {
  display: none !important;
}

.date-filter-panel .mat-calendar-previous-button, .ui-date-filter__panel .mat-calendar-previous-button,
.date-filter-panel .mat-calendar-next-button,
.ui-date-filter__panel .mat-calendar-next-button {
  color: rgba(255, 255, 255, 0.7);
  width: 32px;
  height: 32px;
  transition: all 0.2s ease;
}

.date-filter-panel .mat-calendar-previous-button:hover, .ui-date-filter__panel .mat-calendar-previous-button:hover,
.date-filter-panel .mat-calendar-next-button:hover,
.ui-date-filter__panel .mat-calendar-next-button:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
}

.date-filter-panel .mat-calendar-table, .ui-date-filter__panel .mat-calendar-table {
  border-spacing: 0;
  border-collapse: collapse;
}

.date-filter-panel .mat-calendar-table-header th, .ui-date-filter__panel .mat-calendar-table-header th {
  font-size: 10px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.8) !important;
  padding: 0 0 4px 0;
  text-align: center;
}

.date-filter-panel .mat-calendar-body-label, .ui-date-filter__panel .mat-calendar-body-label {
  display: none !important;
}

.date-filter-panel .mat-calendar-body-cell-container, .ui-date-filter__panel .mat-calendar-body-cell-container {
  height: 32px !important;
  padding: 0 !important;
  border: none !important;
  margin: 0 !important;
}

.date-filter-panel tr.mat-calendar-body-row, .ui-date-filter__panel tr.mat-calendar-body-row {
  height: 32px !important;
  margin: 0 !important;
}

.date-filter-panel .mat-calendar-body, .ui-date-filter__panel .mat-calendar-body {
  padding: 0 !important;
}

.date-filter-panel .mat-calendar-content, .ui-date-filter__panel .mat-calendar-content {
  padding: 0 !important;
}

.date-filter-panel .mat-calendar-body-cell, .ui-date-filter__panel .mat-calendar-body-cell {
  position: relative;
  padding: 0 !important;
  height: 32px !important;
  margin: 0 !important;
  cursor: pointer;
}

.date-filter-panel .mat-calendar-body-cell-content, .ui-date-filter__panel .mat-calendar-body-cell-content {
  position: relative;
  z-index: 2;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-size: 13px;
  font-weight: 500;
  color: #ffffff !important;
  transition: all 0.2s ease;
  border: 1px solid transparent;
  margin: 0 auto !important;
  top: 50%;
  transform: translateY(-50%);
  line-height: 1;
}

/* Selected date highlight */
.date-filter-panel .mat-calendar-body-selected, .ui-date-filter__panel .mat-calendar-body-selected {
  background-color: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.3) !important;
  color: #ffffff !important;
  box-shadow: 0 0 12px rgba(255, 255, 255, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.15) !important;
  backdrop-filter: blur(8px) !important;
}

/* Hover state */
.date-filter-panel .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover .mat-calendar-body-cell-content, .ui-date-filter__panel .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover .mat-calendar-body-cell-content {
  background-color: rgba(255, 255, 255, 0.15) !important;
  color: #ffffff !important;
  border-radius: 50%;
}

/* Range background bar */
.date-filter-panel .mat-calendar-body-cell::before, .ui-date-filter__panel .mat-calendar-body-cell::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  height: 26px;
  transform: translateY(-50%);
  z-index: 0;
  background: transparent;
  transition: all 0.2s ease;
  pointer-events: none;
}

.date-filter-panel .mat-calendar-body-cell.in-range::before, .ui-date-filter__panel .mat-calendar-body-cell.in-range::before,
.date-filter-panel .mat-calendar-body-cell.range-start::before,
.ui-date-filter__panel .mat-calendar-body-cell.range-start::before,
.date-filter-panel .mat-calendar-body-cell.range-end::before,
.ui-date-filter__panel .mat-calendar-body-cell.range-end::before {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.08)) !important;
  backdrop-filter: blur(8px) !important;
}

.date-filter-panel .mat-calendar-body-cell.in-range:not(.range-start):not(.range-end)::before, .ui-date-filter__panel .mat-calendar-body-cell.in-range:not(.range-start):not(.range-end)::before {
  left: -1px;
  right: -1px;
  border-radius: 0;
}

.date-filter-panel .mat-calendar-body-cell.range-start::before, .ui-date-filter__panel .mat-calendar-body-cell.range-start::before {
  left: 0;
  right: -1px;
  border-top-left-radius: 999px;
  border-bottom-left-radius: 999px;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.date-filter-panel .mat-calendar-body-cell.range-end::before, .ui-date-filter__panel .mat-calendar-body-cell.range-end::before {
  left: -1px;
  right: 0;
  border-top-right-radius: 999px;
  border-bottom-right-radius: 999px;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.date-filter-panel .mat-calendar-body-cell.range-single::before, .ui-date-filter__panel .mat-calendar-body-cell.range-single::before {
  display: none;
}

.date-filter-panel .mat-calendar-body-cell.range-start .mat-calendar-body-cell-content, .ui-date-filter__panel .mat-calendar-body-cell.range-start .mat-calendar-body-cell-content,
.date-filter-panel .mat-calendar-body-cell.range-end .mat-calendar-body-cell-content,
.ui-date-filter__panel .mat-calendar-body-cell.range-end .mat-calendar-body-cell-content {
  background: transparent;
  color: #ffffff;
  font-weight: 600;
}

.date-filter-panel .mat-calendar-body-cell.range-single .mat-calendar-body-cell-content, .ui-date-filter__panel .mat-calendar-body-cell.range-single .mat-calendar-body-cell-content {
  background-color: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.3) !important;
  color: #ffffff !important;
  font-weight: 600;
}

.date-filter-panel .mat-calendar-body-cell.in-range .mat-calendar-body-cell-content, .ui-date-filter__panel .mat-calendar-body-cell.in-range .mat-calendar-body-cell-content {
  color: #ffffff;
  font-weight: 500;
}

.date-filter-panel .mat-calendar-body-disabled, .ui-date-filter__panel .mat-calendar-body-disabled {
  color: rgba(180, 170, 165, 0.3);
}

/* ==========================================================================
   ACTION BUTTONS
   ========================================================================== */
.date-filter-actions, .ui-date-filter__actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  padding-top: 10px;
  margin-top: auto;
  position: absolute;
  bottom: 0;
  right: 0;
}

.date-filter-actions .ghost, .ui-date-filter__actions .ghost,
.date-filter-actions .primary,
.ui-date-filter__actions .primary {
  border-radius: 999px;
  padding: 0 16px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.01em;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  cursor: pointer;
  border: none;
  -webkit-tap-highlight-color: transparent;
  outline: none;
}

.date-filter-actions .ghost, .ui-date-filter__actions .ghost {
  background: rgba(255, 255, 255, 0.05);
  color: rgba(255, 255, 255, 0.7);
  box-shadow: none;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.date-filter-actions .ghost:hover:not(:disabled), .ui-date-filter__actions .ghost:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.1);
  color: #ffffff;
  transform: translateY(-1px);
  border-color: rgba(255, 255, 255, 0.2);
}

.date-filter-actions .ghost:active:not(:disabled), .ui-date-filter__actions .ghost:active:not(:disabled) {
  background: rgba(80, 50, 40, 0.6);
  color: #ffffff;
  transform: translateY(0);
}

.date-filter-actions .primary, .ui-date-filter__actions .primary {
  background: #e74630;
  color: #ffffff;
  box-shadow: none;
}

.date-filter-actions .primary:hover:not(:disabled), .ui-date-filter__actions .primary:hover:not(:disabled) {
  background: #ff5742;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(231, 70, 48, 0.3);
}

.date-filter-actions .primary:active:not(:disabled), .ui-date-filter__actions .primary:active:not(:disabled) {
  background: #d63925;
  transform: translateY(0);
  box-shadow: none;
}

.date-filter-actions .ghost:disabled, .ui-date-filter__actions .ghost:disabled,
.date-filter-actions .primary:disabled,
.ui-date-filter__actions .primary:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  transform: none;
}

/* Disable Material ripple effects */
.date-filter-panel .mat-ripple-element, .ui-date-filter__panel .mat-ripple-element {
  display: none !important;
}

.date-filter-panel .mat-button-ripple, .ui-date-filter__panel .mat-button-ripple,
.date-filter-panel .mat-button-focus-overlay,
.ui-date-filter__panel .mat-button-focus-overlay {
  display: none !important;
  opacity: 0 !important;
}

.date-filter-panel button, .ui-date-filter__panel button {
  -webkit-tap-highlight-color: transparent;
}

.date-filter-panel button:focus, .ui-date-filter__panel button:focus {
  outline: none;
}

/* ==========================================================================
   UI CONTRACT ALIASES
   ==========================================================================
   ui-date-filter__* classes map to the restored date filter styles above.
   ========================================================================== */
.ui-date-filter__label {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: var(--ui-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ui-text-muted);
  margin: 0;
  font-weight: var(--ui-font-medium);
}

/* Pencil button — always visible, sits in the label row */
.ui-date-filter__edit-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  padding: 0;
  margin-left: 2px;
  cursor: pointer;
  border-radius: 4px;
  opacity: 0.45;
  transition: opacity 0.15s ease, background 0.15s ease;
  line-height: 1;
}
.ui-date-filter__edit-btn:hover {
  opacity: 1;
  background: rgba(255, 255, 255, 0.08);
}
.ui-date-filter__edit-btn:focus {
  outline: none;
}

.ui-date-filter__picker:hover .ui-date-filter__edit-btn {
  opacity: 0.7;
}

/* Edit icon inside the button */
.ui-date-filter__edit-icon {
  font-size: 11px !important;
  width: 11px !important;
  height: 11px !important;
  line-height: 11px !important;
  color: var(--ui-text-muted);
}

/* Inline text input — replaces the date value display */
.ui-date-filter__text-input {
  display: block;
  width: 100%;
  margin-top: 4px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid var(--ui-brand, #e74630);
  border-radius: 8px;
  color: #ffffff;
  font-size: 18px;
  font-weight: 600;
  font-family: inherit;
  letter-spacing: -0.01em;
  padding: 4px 8px;
  outline: none;
  box-shadow: 0 0 0 3px rgba(231, 70, 48, 0.15);
  transition: box-shadow 0.15s ease;
}
.ui-date-filter__text-input::placeholder {
  font-size: 13px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.3);
  letter-spacing: 0;
}
.ui-date-filter__text-input:focus {
  box-shadow: 0 0 0 4px rgba(231, 70, 48, 0.25);
}

/* Card state when editing */
.ui-date-filter__picker--editing {
  background: rgba(231, 70, 48, 0.06) !important;
  border-color: var(--ui-brand, #e74630) !important;
}

.ui-date-filter__picker--editing .ui-date-filter__edit-btn {
  opacity: 1;
}

.ui-date-filter__picker--editing .ui-date-filter__edit-icon {
  color: var(--ui-brand, #e74630);
}

/* Mode hint — "Pick on calendar ↓" */
.ui-date-filter__mode-hint {
  display: block;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--ui-brand);
  margin-top: 2px;
  animation: hint-fade-in 0.2s ease;
}

@keyframes hint-fade-in {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.ui-date-filter__option--active {
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff;
  font-weight: 600;
  box-shadow: none;
  border: 1px solid rgba(255, 255, 255, 0.05);
}

/* Active picker card — pulsing focus ring + brand colour */
.ui-date-filter__picker--active {
  background: var(--ui-surface-2);
  border-color: var(--ui-border-focus) !important;
  box-shadow: 0 0 0 3px rgba(var(--ui-brand-rgb, 231, 70, 48), 0.18);
  animation: picker-pulse 1.8s ease-in-out infinite;
}

@keyframes picker-pulse {
  0% {
    box-shadow: 0 0 0 3px rgba(231, 70, 48, 0.18);
  }
  50% {
    box-shadow: 0 0 0 5px rgba(231, 70, 48, 0.08);
  }
  100% {
    box-shadow: 0 0 0 3px rgba(231, 70, 48, 0.18);
  }
}
.ui-date-filter__picker--active .ui-date-filter__summary {
  color: var(--ui-brand);
}

.ui-date-filter__picker--active .ui-date-filter__label {
  color: var(--ui-brand);
}

.ui-date-filter__picker--active .ui-date-filter__edit-icon {
  opacity: 1;
  color: var(--ui-brand);
}

/* ==========================================================================
   TRAINING CONSUMPTION CONTRACTS
   ==========================================================================
   Contract primitives used by training consumption/detail surfaces:
   - ui_action
   - ui_icon
   - ui_heading
   - ui_text
   - ui_info_list
   - ui_progress
   - ui_media
   ========================================================================== */
.ui_action {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  width: fit-content;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ui-text-secondary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  line-height: 1.4;
  text-decoration: none;
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.ui_action--link {
  color: var(--ui-text-muted);
}

.ui_action:hover,
.ui_action--link:hover {
  color: var(--ui-text-primary);
}

.ui_action:focus-visible {
  outline: 1px solid var(--ui-border-focus);
  outline-offset: var(--ui-space-1);
  border-radius: var(--ui-radius-sm);
}

.ui_icon {
  flex-shrink: 0;
  font-size: var(--ui-text-base);
  width: var(--ui-text-base);
  height: var(--ui-text-base);
  color: var(--ui-text-subtle);
}

.ui_heading {
  margin: 0;
  color: var(--ui-text-primary);
}

.ui_heading--1 {
  font-size: var(--ui-text-3xl);
  font-weight: var(--ui-font-bold);
  line-height: 1.2;
  letter-spacing: -0.02em;
}

.ui_heading--2 {
  font-size: var(--ui-text-2xl);
  font-weight: var(--ui-font-semibold);
  line-height: 1.25;
  letter-spacing: -0.01em;
}

.ui_text {
  margin: 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  line-height: 1.55;
}

.ui_text--muted {
  color: var(--ui-text-muted);
}

.ui_info_list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--ui-space-3) var(--ui-space-4);
  margin: 0;
  padding: 0;
}

.ui_info_list--compact {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ui_info_list__item {
  margin: 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
}

.ui_info_list__label {
  margin: 0;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.ui_info_list__value {
  margin: 0;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-primary);
  word-break: break-word;
}

.ui_progress {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
}

.ui_progress__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
}

.ui_progress__value {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
  font-variant-numeric: tabular-nums;
}

.ui_progress__bar {
  width: 100%;
}

.ui_media {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  width: 100%;
}

.ui_media__content {
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  overflow: hidden;
  border-radius: var(--ui-radius-lg);
  background: var(--ui-surface-1);
}

.ui_media__content > * {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.ui_media__content iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.ui_card {
  min-width: 0;
}

.ui_chip {
  display: inline-flex;
}

@media (max-width: 1080px) {
  .ui_info_list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ui_info_list--compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .ui_info_list,
  .ui_info_list--compact {
    grid-template-columns: 1fr;
  }
}
/* ==========================================================================
   DRAG & DROP — CDK Drag-Drop styles for Kanban columns
   ========================================================================== */
/* Preview: the lightweight floating card while dragging */
.drag-preview-card {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-3) var(--ui-space-4);
  min-width: 200px;
  max-width: 320px;
  border-radius: var(--ui-radius-md);
  background: var(--ui-glass-dark);
  border: 1px solid var(--ui-border-hover);
  box-shadow: var(--ui-shadow-xl);
  z-index: var(--z-modal) !important;
  pointer-events: none;
}

.drag-preview-title {
  font-size: var(--ui-text-base);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.drag-preview-id {
  font-family: var(--ui-font-mono);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-brand-light);
  padding: 2px 6px;
  background: rgba(255, 140, 80, 0.15);
  border: 1px solid rgba(255, 140, 80, 0.35);
  border-radius: 4px;
  white-space: nowrap;
  flex-shrink: 0;
}

/* Placeholder: the dashed outline showing where the card will land */
.cdk-drag-placeholder {
  border: 2px dashed var(--ui-border-hover);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-2);
  min-height: 80px;
  box-sizing: border-box;
  transition: all var(--ui-transition-base);
}

/* Hide the original card's content inside the placeholder (CDK clones it) */
.cdk-drag-placeholder > * {
  visibility: hidden;
}

/* Smooth reorder animation for sibling cards in the list */
.cdk-drop-list-dragging .booking-card:not(.cdk-drag-placeholder) {
  transition: transform var(--ui-transition-spring);
}

/* Spring-back animation when drag is cancelled */
.cdk-drag-animating {
  transition: transform var(--ui-transition-spring);
}

/* Subtle highlight on the drop target column while dragging over it */
.cdk-drop-list-receiving {
  outline: 2px solid var(--ui-info-border);
  outline-offset: -2px;
  border-radius: var(--ui-radius-md);
  background: var(--ui-info-bg);
}

/* Drag handle cursor on draggable cards */
.child-card [cdkDrag] {
  cursor: grab;
}

.child-card [cdkDrag]:active {
  cursor: grabbing;
}

/* Ensure empty columns remain valid drop targets */
.child-card.cdk-drop-list {
  min-height: 200px;
}

/* ==========================================================================
   CAPABILITY CHECKBOX — UI Contract
   ==========================================================================
   Checkbox rows for workforce capabilities (department defaults, role-level).
   Used in department dialog and role-info-drawer.

   Classes:
     .ui-cap-row          — checkbox row container
     .ui-cap-row.checked  — active/selected state
     .ui-cap-row.locked   — inherited from department (non-removable)
     .ui-cap-check        — hidden native checkbox + custom appearance
     .ui-cap-badge        — "Inherited" badge for locked capabilities
     .ui-cap-subheader    — section subheader ("Inherited from Department")
     .ui-cap-hint         — helper text below grid
   ========================================================================== */
/* ── Row ─────────────────────────────────────────────── */
.ui-cap-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-sm);
  cursor: pointer;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-1);
  color: var(--ui-text-muted);
  transition: all var(--ui-transition-base);
  /* ── Checked state ──────────────────────────────────── */
  /* ── Locked (inherited from department) ─────────────── */
}
.ui-cap-row:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
}
.ui-cap-row mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}
.ui-cap-row.checked {
  background: rgba(255, 130, 90, 0.12);
  border-color: rgba(255, 130, 90, 0.3);
  color: var(--ui-brand-light);
}
.ui-cap-row.locked {
  opacity: 0.75;
  cursor: default;
  background: var(--ui-surface-1);
  border-color: var(--ui-border);
}
.ui-cap-row.locked:hover {
  background: var(--ui-surface-1);
  border-color: var(--ui-border);
}

/* ── Custom Checkbox ─────────────────────────────────── */
.ui-cap-check {
  appearance: none;
  -webkit-appearance: none;
  width: 16px;
  height: 16px;
  border: 2px solid var(--ui-text-subtle);
  border-radius: 4px;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
  transition: all var(--ui-transition-base);
  background: transparent;
}

.ui-cap-row.checked .ui-cap-check {
  background: var(--ui-brand-gradient);
  border-color: var(--ui-brand);
}
.ui-cap-row.checked .ui-cap-check::after {
  content: "✓";
  position: absolute;
  top: -1px;
  left: 2px;
  font-size: 11px;
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-bold);
}

.ui-cap-row.locked .ui-cap-check {
  background: rgba(255, 140, 90, 0.4);
  border-color: rgba(255, 140, 90, 0.5);
  cursor: default;
}
.ui-cap-row.locked .ui-cap-check::after {
  content: "✓";
  position: absolute;
  top: -1px;
  left: 2px;
  font-size: 11px;
  color: var(--ui-text-primary);
  font-weight: var(--ui-font-bold);
}

/* ── Lock Icon ───────────────────────────────────────── */
.ui-cap-lock {
  font-size: 12px !important;
  width: 12px !important;
  height: 12px !important;
  opacity: 0.5;
  color: var(--ui-text-subtle);
}

/* ── Inherited Badge ─────────────────────────────────── */
.ui-cap-badge {
  font-size: var(--ui-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: rgba(255, 140, 90, 0.6);
  margin-left: auto;
  padding: 2px var(--ui-space-2);
  border-radius: 4px;
  background: rgba(255, 140, 90, 0.08);
}

/* ── Subheader ───────────────────────────────────────── */
.ui-cap-subheader {
  font-size: var(--ui-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.8px;
  color: var(--ui-text-disabled);
  padding: var(--ui-space-1) 0 2px;
  font-weight: var(--ui-font-semibold);
}

/* ── Helper Text ─────────────────────────────────────── */
.ui-cap-hint {
  font-size: 11px;
  color: var(--ui-text-disabled);
  padding: var(--ui-space-1) 2px;
  line-height: 1.4;
}

/* ── Grid Container ──────────────────────────────────── */
.ui-cap-grid {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-2);
  padding: var(--ui-space-1) 0;
}

/* ==========================================================================
   7. OVERLAYS
   ========================================================================== */
/* ==========================================================================
   UI OVERLAYS - TOOLTIP CONTRACT
   ==========================================================================
   Premium glassmorphic tooltip system. Single source of truth for ALL tooltips.

   Architecture:
   - Tooltip design tokens
   - Angular Material tooltip global override
   - Enhanced tooltip directive styles
   - Permission tooltip directive styles  
   - Chart tooltip normalization (ApexCharts)

   Rule: ALL tooltip visuals MUST be defined here. No component CSS.
   ========================================================================== */
/* ==========================================================================
   ANGULAR MATERIAL TOOLTIP - GLOBAL OVERRIDE
   ==========================================================================
   This overrides ALL matTooltip instances automatically.
   No need for matTooltipClass - just use matTooltip directly.
   ========================================================================== */
/* Ensure CDK overlay doesn't block backdrop-filter */
.cdk-overlay-pane:has(.mat-mdc-tooltip),
.cdk-overlay-pane:has(.mat-tooltip) {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Material tooltip panel - ensure transparency */
.mat-mdc-tooltip-panel,
.mat-tooltip-panel {
  background: transparent !important;
}

/* Material v15+ MDC Tooltip */
.mat-mdc-tooltip .mdc-tooltip__surface {
  /* Semi-transparent orange glass background */
  background: var(--ui-tooltip-bg) !important;
  background-color: var(--ui-tooltip-bg) !important;
  /* Backdrop blur for glassmorphism - BOTH prefixed and unprefixed */
  backdrop-filter: var(--ui-tooltip-blur) !important;
  /* Soft border */
  border: 1px solid var(--ui-tooltip-border) !important;
  /* Soft shadow - no harsh edges */
  box-shadow: var(--ui-tooltip-shadow) !important;
  /* Rounded corners - pill-like */
  border-radius: var(--ui-tooltip-radius) !important;
  /* Padding */
  padding: var(--ui-tooltip-padding) !important;
  /* Typography */
  font-family: var(--ui-font-primary) !important;
  font-size: var(--ui-text-sm) !important;
  font-weight: var(--ui-font-medium) !important;
  line-height: 1.5 !important;
  color: var(--ui-tooltip-color) !important;
  letter-spacing: 0.01em !important;
  /* Sizing */
  max-width: 280px !important;
  /* Ensure crisp rendering */
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
  /* NO isolation - it blocks backdrop-filter! */
}

/* Legacy Material Tooltip (pre-v15) */
.mat-tooltip {
  background: var(--ui-tooltip-bg) !important;
  background-color: var(--ui-tooltip-bg) !important;
  backdrop-filter: var(--ui-tooltip-blur) !important;
  border: 1px solid var(--ui-tooltip-border) !important;
  box-shadow: var(--ui-tooltip-shadow) !important;
  border-radius: var(--ui-tooltip-radius) !important;
  padding: var(--ui-tooltip-padding) !important;
  font-family: var(--ui-font-primary) !important;
  font-size: var(--ui-text-sm) !important;
  font-weight: var(--ui-font-medium) !important;
  line-height: 1.5 !important;
  color: var(--ui-tooltip-color) !important;
  max-width: 280px !important;
  /* NO isolation - it blocks backdrop-filter! */
}

/* ==========================================================================
   GLASS TOOLTIP VARIANT
   ==========================================================================
   For backwards compatibility with matTooltipClass="glass-tooltip"
   Now uses the same tokens as the global override (unified warm orange theme).
   ========================================================================== */
.mat-tooltip.glass-tooltip,
div.mat-tooltip.glass-tooltip,
.cdk-overlay-pane .mat-tooltip.glass-tooltip,
.mat-mdc-tooltip .mdc-tooltip__surface.glass-tooltip {
  /* Uses the unified warm orange glass styling from tokens */
  background: var(--ui-tooltip-bg) !important;
  border-color: var(--ui-tooltip-border) !important;
}

/* Multiline tooltip variant */
.mat-tooltip.glass-tooltip-multiline,
div.mat-tooltip.glass-tooltip-multiline,
.cdk-overlay-pane .mat-tooltip.glass-tooltip-multiline,
.mat-mdc-tooltip .mdc-tooltip__surface.glass-tooltip-multiline {
  white-space: pre-line !important;
  text-align: left !important;
  max-width: 220px !important;
}

/* ==========================================================================
   ENHANCED TOOLTIP DIRECTIVE
   ==========================================================================
   Styles for the EnhancedTooltipDirective (appEnhancedTooltip).
   Used for rich tooltip content on stat cards and complex hover states.
   ========================================================================== */
.enhanced-tooltip {
  position: absolute;
  z-index: var(--z-tooltip);
  max-width: 220px;
  padding: var(--ui-tooltip-padding);
  /* Glassmorphic background */
  background: var(--ui-tooltip-bg);
  backdrop-filter: var(--ui-tooltip-blur);
  -webkit-backdrop-filter: var(--ui-tooltip-blur);
  /* Border & shadow */
  border: 1px solid var(--ui-tooltip-border);
  border-radius: var(--ui-tooltip-radius);
  box-shadow: var(--ui-tooltip-shadow);
  /* Typography */
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  line-height: 1.5;
  color: var(--ui-tooltip-color);
  text-align: left;
  /* Animation */
  opacity: 0;
  transform: translateY(4px);
  transition: opacity var(--ui-transition-fast), transform var(--ui-transition-fast);
  pointer-events: none;
}

/* Visible state */
.enhanced-tooltip--visible {
  opacity: 1;
  transform: translateY(0);
}

/* Hidden state (for exit animation) */
.enhanced-tooltip--hidden {
  opacity: 0;
  transform: translateY(4px);
}

/* Position-based arrow styles */
.enhanced-tooltip--top::after {
  content: "";
  position: absolute;
  bottom: -6px;
  left: 50%;
  transform: translateX(-50%);
  border-width: 6px 6px 0 6px;
  border-style: solid;
  border-color: var(--ui-tooltip-bg) transparent transparent transparent;
}

.enhanced-tooltip--bottom::after {
  content: "";
  position: absolute;
  top: -6px;
  left: 50%;
  transform: translateX(-50%);
  border-width: 0 6px 6px 6px;
  border-style: solid;
  border-color: transparent transparent var(--ui-tooltip-bg) transparent;
}

.enhanced-tooltip--left::after {
  content: "";
  position: absolute;
  right: -6px;
  top: 50%;
  transform: translateY(-50%);
  border-width: 6px 0 6px 6px;
  border-style: solid;
  border-color: transparent transparent transparent var(--ui-tooltip-bg);
}

.enhanced-tooltip--right::after {
  content: "";
  position: absolute;
  left: -6px;
  top: 50%;
  transform: translateY(-50%);
  border-width: 6px 6px 6px 0;
  border-style: solid;
  border-color: transparent var(--ui-tooltip-bg) transparent transparent;
}

/* Finance context accent */
.enhanced-tooltip--finance {
  border-color: rgba(255, 140, 90, 0.2);
  box-shadow: var(--ui-tooltip-shadow), 0 0 20px rgba(255, 140, 90, 0.08);
}

/* Info icon styling */
.tooltip-info-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  font-size: 14px;
  color: var(--ui-text-subtle);
  cursor: help;
  transition: color var(--ui-transition-base);
  margin-left: 6px;
  flex-shrink: 0;
}

.tooltip-info-icon:hover,
.tooltip-info-icon:focus {
  color: var(--ui-text-secondary);
  outline: none;
}

/* Stat card with tooltip integration */
.stat-card[appEnhancedTooltip] {
  cursor: help;
}

.stat-card[appEnhancedTooltip]:focus {
  outline: 2px solid rgba(255, 140, 90, 0.4);
  outline-offset: 2px;
}

/* ==========================================================================
   PERMISSION TOOLTIP DIRECTIVE
   ==========================================================================
   Styles for PermissionTooltipDirective.
   Red-tinted warning variant for locked/restricted actions.
   ========================================================================== */
.permission-tooltip {
  position: absolute;
  z-index: var(--z-tooltip);
  max-width: 260px;
  padding: var(--ui-tooltip-padding);
  /* Warning-tinted glassmorphic background */
  background: var(--ui-tooltip-warning-bg);
  backdrop-filter: var(--ui-tooltip-blur);
  -webkit-backdrop-filter: var(--ui-tooltip-blur);
  /* Warning border & shadow */
  border: 1px solid var(--ui-tooltip-warning-border);
  border-radius: var(--ui-tooltip-radius);
  box-shadow: var(--ui-tooltip-shadow), var(--ui-tooltip-warning-glow);
  /* Typography */
  font-family: var(--ui-font-primary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  line-height: 1.5;
  color: var(--ui-tooltip-color);
  text-align: left;
  /* Animation */
  opacity: 0;
  transform: translateY(4px);
  transition: opacity var(--ui-transition-fast), transform var(--ui-transition-fast);
  pointer-events: none;
}

/* Visible state */
.permission-tooltip--visible {
  opacity: 1;
  transform: translateY(0);
}

/* Hidden state */
.permission-tooltip--hidden {
  opacity: 0;
  transform: translateY(4px);
}

/* Position-based arrow styles */
.permission-tooltip--top::after {
  content: "";
  position: absolute;
  bottom: -6px;
  left: 50%;
  transform: translateX(-50%);
  border-width: 6px 6px 0 6px;
  border-style: solid;
  border-color: var(--ui-tooltip-warning-bg) transparent transparent transparent;
}

.permission-tooltip--bottom::after {
  content: "";
  position: absolute;
  top: -6px;
  left: 50%;
  transform: translateX(-50%);
  border-width: 0 6px 6px 6px;
  border-style: solid;
  border-color: transparent transparent var(--ui-tooltip-warning-bg) transparent;
}

/* Permission-restricted elements */
.permission-restricted {
  cursor: not-allowed !important;
  position: relative;
}

.permission-restricted::after {
  content: "";
  position: absolute;
  inset: 0;
  background: transparent;
  cursor: not-allowed;
}

button[disabled].permission-restricted,
.btn[disabled].permission-restricted {
  opacity: 0.5;
}

button[disabled][mat-icon-button].permission-restricted {
  opacity: 0.4;
}

.permission-restricted:focus-visible {
  outline: 2px solid rgba(255, 100, 100, 0.4);
  outline-offset: 2px;
}

/* ==========================================================================
   APEXCHARTS TOOLTIP NORMALIZATION
   ==========================================================================
   Force ApexCharts tooltips to match the glassmorphic design system.
   ========================================================================== */
/* Main ApexCharts tooltip container */
div.apexcharts-tooltip,
.apexcharts-tooltip.apexcharts-theme-dark,
.apexcharts-tooltip.apexcharts-theme-light,
.glass-chart-tooltip {
  /* Ultra-transparent glass */
  background: var(--ui-tooltip-bg) !important;
  /* Heavy blur for glassmorphism */
  backdrop-filter: var(--ui-tooltip-blur) !important;
  -webkit-backdrop-filter: var(--ui-tooltip-blur) !important;
  /* Glass borders and shadows */
  border: 1px solid var(--ui-tooltip-border) !important;
  border-radius: var(--ui-tooltip-radius) !important;
  box-shadow: var(--ui-tooltip-shadow) !important;
  /* Layout */
  padding: 0 !important;
  overflow: hidden !important;
  max-width: 220px !important;
  color: var(--ui-text-primary) !important;
}

/* Tooltip Header/Title */
div.apexcharts-tooltip .apexcharts-tooltip-title,
.apexcharts-tooltip .apexcharts-tooltip-title {
  background: rgba(255, 255, 255, 0.06) !important;
  border-bottom: 1px solid var(--ui-tooltip-border) !important;
  color: var(--ui-text-primary) !important;
  font-weight: var(--ui-font-semibold) !important;
  font-size: var(--ui-text-sm) !important;
  padding: 8px 12px !important;
  margin: 0 !important;
  font-family: var(--ui-font-primary) !important;
  letter-spacing: -0.01em !important;
}

/* Series Row Container */
div.apexcharts-tooltip .apexcharts-tooltip-series-group,
.apexcharts-tooltip .apexcharts-tooltip-series-group {
  padding: 6px 12px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 8px !important;
  height: auto !important;
  background: transparent !important;
  line-height: 1.4 !important;
}

div.apexcharts-tooltip .apexcharts-tooltip-series-group:hover,
.apexcharts-tooltip .apexcharts-tooltip-series-group:hover {
  background: rgba(255, 255, 255, 0.06) !important;
}

/* Marker Dot */
div.apexcharts-tooltip .apexcharts-tooltip-marker,
.apexcharts-tooltip .apexcharts-tooltip-marker {
  width: 10px !important;
  height: 10px !important;
  border-radius: 50% !important;
  margin: 0 !important;
  flex-shrink: 0 !important;
  border: none !important;
  box-shadow: none !important;
}

/* Text Container */
div.apexcharts-tooltip .apexcharts-tooltip-text,
.apexcharts-tooltip .apexcharts-tooltip-text {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  flex: 1 !important;
  font-family: var(--ui-font-primary) !important;
  line-height: 1.4 !important;
}

/* Label */
div.apexcharts-tooltip .apexcharts-tooltip-text-y-label,
.apexcharts-tooltip .apexcharts-tooltip-text-y-label {
  color: var(--ui-text-muted) !important;
  font-size: 11px !important;
  font-weight: var(--ui-font-medium) !important;
}

/* Value */
div.apexcharts-tooltip .apexcharts-tooltip-text-y-value,
.apexcharts-tooltip .apexcharts-tooltip-text-y-value {
  color: var(--ui-text-primary) !important;
  font-size: var(--ui-text-sm) !important;
  font-weight: var(--ui-font-bold) !important;
}

/* Y-Group */
div.apexcharts-tooltip .apexcharts-tooltip-y-group,
.apexcharts-tooltip .apexcharts-tooltip-y-group {
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
}

.ui-lightbox {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.92);
  backdrop-filter: blur(8px);
  animation: ui-lightbox-fade-in 0.2s ease-out;
  cursor: zoom-out;
}
.ui-lightbox__image {
  max-width: 90vw;
  max-height: 85vh;
  object-fit: contain;
  border-radius: var(--ui-radius-sm);
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.6);
  cursor: default;
  -webkit-user-select: none;
          user-select: none;
  animation: ui-lightbox-scale-in 0.2s ease-out;
}
.ui-lightbox__close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 50%;
  color: #fff;
  font-size: 20px;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.15s ease;
  z-index: 2;
}
.ui-lightbox__close:hover {
  background: rgba(255, 255, 255, 0.2);
  transform: scale(1.1);
}
.ui-lightbox__close mat-icon {
  font-size: 22px;
  width: 22px;
  height: 22px;
}
.ui-lightbox__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 50%;
  color: #fff;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.15s ease;
  z-index: 2;
}
.ui-lightbox__nav:hover {
  background: rgba(255, 255, 255, 0.2);
  transform: translateY(-50%) scale(1.1);
}
.ui-lightbox__nav--prev {
  left: 16px;
}
.ui-lightbox__nav--next {
  right: 16px;
}
.ui-lightbox__nav mat-icon {
  font-size: 28px;
  width: 28px;
  height: 28px;
}
.ui-lightbox__counter {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  padding: 4px 14px;
  background: rgba(0, 0, 0, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 20px;
  color: rgba(255, 255, 255, 0.8);
  font-size: 13px;
  font-family: var(--ui-font-mono);
  letter-spacing: 0.5px;
  z-index: 2;
}

@keyframes ui-lightbox-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes ui-lightbox-scale-in {
  from {
    opacity: 0;
    transform: scale(0.92);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
/* ==========================================================================
   8. DATA DISPLAY
   ==========================================================================
   Selector Ownership:
   - table.scss       → .ui-table, .ui-table-card, .ui-table-header, .ui-table-scroll
   - table-input.scss → .ui-table--input, .glass-input-table
   - table-grouped.scss → .group-header-row, .column-header-row, .data-row, .status-pill
   - data-display.scss  → .ui-info-grid, .ui-info-item, .ui-info-label, .ui-info-value
   - modal-table.scss   → .custom-table, .table-input, .table-icon-btn
   - cost-summary.scss  → .cost-item, .summary-divider, .financial-summary
   ========================================================================== */
/*
 * CONTRACT RULE
 * This file must NOT redefine selectors from:
 *   - ui/layout/*
 *   - ui/controls/*
 *   - ui/headers/*
 * Use scoped overrides only.
 */
/* ==========================================================================
   UI DATA — TABLE BASE CONTRACT (SINGLE SOURCE OF TRUTH)
   ==========================================================================

   This is the CANONICAL table styling. All tables MUST inherit from this base.

   Usage:
     <div class="ui-table-card">
       <div class="ui-table-scroll">
         <table class="ui-table">
           <thead>...</thead>
           <tbody>...</tbody>
         </table>
       </div>
     </div>

   Variants:
     .ui-table--input     → Editable input tables
     .ui-table--compact   → Dense row spacing
     .ui-table--embedded  → No card container
     .ui-table--wide      → Wider min-width for dense columns
     .ui-table--scroll    → Scrollable body with fixed header

   ========================================================================== */
/* ==========================================================================
   TABLE CARD CONTAINER
   ========================================================================== */
.ui-table-card, .glass-table-card {
  position: relative;
  border-radius: var(--ui-table-radius);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  box-shadow: var(--ui-shadow-lg);
  backdrop-filter: var(--ui-blur-md);
  -webkit-backdrop-filter: var(--ui-blur-md);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  max-height: var(--ui-table-max-height);
  margin: 0;
  padding: 0;
}

/* ==========================================================================
   TABLE HEADER BAR (CARD-LEVEL)
   ========================================================================== */
.ui-table-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  flex-wrap: wrap;
  padding: var(--ui-space-4) var(--ui-space-5);
  border-bottom: 1px solid var(--ui-border-light);
}

.ui-table-header__title {
  display: flex;
  align-items: baseline;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.ui-table-header__title h3 {
  margin: 0;
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.ui-table-header__count {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.ui-table-header__actions {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

/* ==========================================================================
   TABLE SECTION LAYOUT HELPERS
   ========================================================================== */
.ui-table-section--bleed {
  padding-left: 0;
  padding-right: 0;
}

.ui-table-section--bleed .ui-table-card,
.ui-table-section--bleed .glass-table-card {
  border-radius: 0;
  border-left: none;
  border-right: none;
}

/* Legacy table containers often use .table-section with .ui-card.
   Remove top/right/left inset so table headers align flush with card edges.
   NOTE: .glass-card.table-section REMOVED — .glass-card ownership: card.scss */
.table-section,
.ui-card.table-section,
.glass-modal-container .table-section.glass-card,
.glass-modal-container .table-section.glass-panel,
.glass-modal-container .table-section.fd-glass,
.glass-modal-container .table-section.section-card,
.glass-modal-container .table-section.content-section,
.glass-modal-container .table-section.timeline-card,
.glass-modal-container .table-section.entry-section,
.glass-modal-container .table-section.attachments,
.glass-modal-container .table-section.summary-card,
.glass-modal-container .table-section.metric-card,
.glass-modal-container .table-section.review-card,
.glass-modal-container .table-section.config-section,
.glass-modal-container .table-section.panel-card {
  padding-top: 0;
  padding-right: 0;
  padding-left: 0;
}

/* ==========================================================================
   TABLE SCROLL WRAPPER
   ========================================================================== */
.ui-table-scroll, .table-scroll, .glass-table-scroll {
  flex: 1;
  overflow-x: auto;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}

.ui-table-scroll::-webkit-scrollbar, .table-scroll::-webkit-scrollbar, .glass-table-scroll::-webkit-scrollbar {
  height: var(--ui-table-scrollbar-size);
}

.ui-table-scroll::-webkit-scrollbar-track, .table-scroll::-webkit-scrollbar-track, .glass-table-scroll::-webkit-scrollbar-track {
  background: transparent;
}

.ui-table-scroll::-webkit-scrollbar-thumb, .table-scroll::-webkit-scrollbar-thumb, .glass-table-scroll::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.12);
  border-radius: var(--ui-table-scrollbar-radius);
}

.ui-table-scroll::-webkit-scrollbar-thumb:hover, .table-scroll::-webkit-scrollbar-thumb:hover, .glass-table-scroll::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.22);
}

/* ==========================================================================
   CORE TABLE STRUCTURE
   ========================================================================== */
/* OWNER: ui/data/table.scss */
.ui-table, .premium-table, .glass-table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  min-width: var(--ui-table-min-width);
  table-layout: fixed;
  /* Note: Use native table display for proper colgroup width inheritance */
}

/* ==========================================================================
   TABLE VARIANTS — WIDTH & SCROLL BODY
   ========================================================================== */
.ui-table--wide, .glass-table--wide {
  --ui-table-min-width: 1000px;
}

.ui-table--scroll, .glass-table--scroll {
  display: flex;
  flex-direction: column;
}

.ui-table--scroll thead, .glass-table--scroll thead {
  display: table;
  width: 100%;
  table-layout: fixed;
  flex-shrink: 0;
  position: sticky;
  top: 0;
  z-index: 2;
}

.ui-table--scroll tbody, .glass-table--scroll tbody {
  display: block;
  flex: 1;
  max-height: calc(var(--ui-table-max-height) - var(--ui-table-header-height));
  overflow-y: auto;
  overflow-x: hidden;
}

.ui-table--scroll thead tr, .glass-table--scroll thead tr,
.ui-table--scroll tbody tr,
.glass-table--scroll tbody tr,
.ui-table--scroll .data-row,
.glass-table--scroll .data-row {
  display: table;
  width: 100%;
  table-layout: fixed;
}

/* ==========================================================================
   TABLE HEADER
   ========================================================================== */
.ui-table thead, .premium-table thead, .glass-table thead {
  /* Use native table-header-group display for proper colgroup width inheritance */
  flex-shrink: 0;
  background: var(--ui-table-header-bg);
}

.ui-table thead tr, .premium-table thead tr, .glass-table thead tr {
  /* native table-row display inherited */
  display: table-row;
}

.ui-table th, .premium-table th, .glass-table th {
  padding: 16px 14px;
  text-align: left;
  font-size: var(--ui-table-header-font);
  font-weight: var(--ui-table-header-weight);
  color: var(--ui-table-header-color);
  text-transform: uppercase;
  letter-spacing: var(--ui-table-header-spacing);
  border-bottom: 1px solid var(--ui-border-light);
}

.ui-table th:first-child, .premium-table th:first-child, .glass-table th:first-child {
  padding-left: 20px;
}

.ui-table th:last-child, .premium-table th:last-child, .glass-table th:last-child {
  padding-right: 20px;
}

/* Header content with icon */
/* @deprecated .glass-table selectors — authority: tables/glass-table.scss, tables/data-table.scss */
.ui-table .th-content, .premium-table .th-content, .glass-table .th-content {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 10px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.55);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

/* Mat-icons inside th-content get auto-sized */
.ui-table .th-content mat-icon, .premium-table .th-content mat-icon, .glass-table .th-content mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: var(--ui-table-accent-light);
  opacity: 0.7;
}

.ui-table .th-content.th-right, .premium-table .th-content.th-right, .glass-table .th-content.th-right {
  justify-content: flex-end;
}

.ui-table .th-content.th-center, .premium-table .th-content.th-center, .glass-table .th-content.th-center {
  justify-content: center;
}

.ui-table .th-icon, .premium-table .th-icon, .glass-table .th-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: var(--ui-table-accent-light);
  opacity: 0.7;
}

/* ==========================================================================
   TABLE BODY
   ========================================================================== */
.ui-table tbody, .premium-table tbody, .glass-table tbody {
  /* Note: Use default table-row-group display for proper colgroup width inheritance */
  max-height: calc(var(--ui-table-max-height) - var(--ui-table-header-height));
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.12) transparent;
}

.ui-table tbody::-webkit-scrollbar, .premium-table tbody::-webkit-scrollbar, .glass-table tbody::-webkit-scrollbar {
  width: var(--ui-table-scrollbar-size);
}

.ui-table tbody::-webkit-scrollbar-track, .premium-table tbody::-webkit-scrollbar-track, .glass-table tbody::-webkit-scrollbar-track {
  background: transparent;
}

.ui-table tbody::-webkit-scrollbar-thumb, .premium-table tbody::-webkit-scrollbar-thumb, .glass-table tbody::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.12);
  border-radius: var(--ui-table-scrollbar-radius);
}

.ui-table tbody::-webkit-scrollbar-thumb:hover, .premium-table tbody::-webkit-scrollbar-thumb:hover, .glass-table tbody::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.22);
}

/* ==========================================================================
   SPLIT HEADER/BODY LAYOUT
   ========================================================================== */
.ui-table-scroll--split, .glass-table-scroll--split {
  overflow-y: hidden;
}

.ui-table-split, .glass-table-split {
  display: flex;
  flex-direction: column;
  min-width: var(--ui-table-min-width);
  width: 100%;
  flex: 1;
}

.ui-table-split-header, .glass-table-split-header {
  flex: 0 0 var(--ui-table-header-height);
  min-height: var(--ui-table-header-height);
  display: flex;
  align-items: stretch;
}

.ui-table-split-body, .glass-table-split-body {
  flex: 1 1 auto;
  max-height: calc(var(--ui-table-max-height) - var(--ui-table-header-height));
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: var(--ui-border) transparent;
}

.ui-table-split-body::-webkit-scrollbar, .glass-table-split-body::-webkit-scrollbar {
  width: var(--ui-table-scrollbar-size);
}

.ui-table-split-body::-webkit-scrollbar-track, .glass-table-split-body::-webkit-scrollbar-track {
  background: transparent;
}

.ui-table-split-body::-webkit-scrollbar-thumb, .glass-table-split-body::-webkit-scrollbar-thumb {
  background: var(--ui-border);
  border-radius: var(--ui-table-scrollbar-radius);
}

.ui-table-split-body::-webkit-scrollbar-thumb:hover, .glass-table-split-body::-webkit-scrollbar-thumb:hover {
  background: var(--ui-border-hover);
}

.ui-table.ui-table--split, .ui-table--split.premium-table, .ui-table--split.glass-table, .ui-table.glass-table--split, .glass-table--split.premium-table, .glass-table--split.glass-table {
  display: table;
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
}

.ui-table.ui-table--split thead, .ui-table--split.premium-table thead, .ui-table--split.glass-table thead, .ui-table.glass-table--split thead, .glass-table--split.premium-table thead, .glass-table--split.glass-table thead {
  display: table-header-group;
  width: auto;
}

.ui-table.ui-table--split tbody, .ui-table--split.premium-table tbody, .ui-table--split.glass-table tbody, .ui-table.glass-table--split tbody, .glass-table--split.premium-table tbody, .glass-table--split.glass-table tbody {
  display: table-row-group;
  max-height: none;
  overflow: visible;
}

.ui-table.ui-table--split thead tr, .ui-table--split.premium-table thead tr, .ui-table--split.glass-table thead tr, .ui-table.glass-table--split thead tr, .glass-table--split.premium-table thead tr, .glass-table--split.glass-table thead tr,
.ui-table.ui-table--split tbody tr,
.ui-table--split.premium-table tbody tr,
.ui-table--split.glass-table tbody tr,
.ui-table.glass-table--split tbody tr,
.glass-table--split.premium-table tbody tr,
.glass-table--split.glass-table tbody tr,
.ui-table.ui-table--split .data-row,
.ui-table--split.premium-table .data-row,
.ui-table--split.glass-table .data-row,
.ui-table.glass-table--split .data-row,
.glass-table--split.premium-table .data-row,
.glass-table--split.glass-table .data-row {
  display: table-row;
  width: auto;
  table-layout: fixed;
}

/* ==========================================================================
   DATA ROWS
   ========================================================================== */
/* @deprecated .glass-table row states — authority: tables/glass-table.scss */
.ui-table tbody tr, .premium-table tbody tr, .glass-table tbody tr,
.ui-table .data-row,
.premium-table .data-row,
.glass-table .data-row {
  display: table-row;
  transition: background 0.15s ease, box-shadow 0.15s ease;
  cursor: pointer;
  position: relative;
}

.ui-table .data-row:nth-child(even), .premium-table .data-row:nth-child(even), .glass-table .data-row:nth-child(even),
.ui-table tbody tr:nth-child(even),
.premium-table tbody tr:nth-child(even),
.glass-table tbody tr:nth-child(even) {
  background: var(--ui-table-row-even);
}

.ui-table .data-row:hover, .premium-table .data-row:hover, .glass-table .data-row:hover,
.ui-table tbody tr:hover,
.premium-table tbody tr:hover,
.glass-table tbody tr:hover {
  background: var(--ui-table-row-hover);
  box-shadow: inset 2px 0 0 0 var(--ui-table-row-hover-accent);
}

.ui-table .data-row:active, .premium-table .data-row:active, .glass-table .data-row:active,
.ui-table tbody tr:active,
.premium-table tbody tr:active,
.glass-table tbody tr:active {
  background: var(--ui-table-row-active);
  box-shadow: inset 2px 0 0 0 var(--ui-table-row-hover-accent);
}

/* Keyboard navigation: selected row via arrow keys */
.ui-table .data-row.selected-row, .glass-table .data-row.selected-row,
.ui-table tbody tr.selected-row,
.premium-table tbody tr.selected-row,
.glass-table tbody tr.selected-row,
.premium-table .data-row.selected-row {
  background: var(--ui-table-row-hover);
  box-shadow: inset 3px 0 0 0 var(--ui-table-row-hover-accent);
  outline: 1px solid rgba(255, 140, 80, 0.15);
  outline-offset: -1px;
}

.ui-table td, .premium-table td, .glass-table td {
  display: table-cell;
  padding: var(--ui-table-cell-padding);
  vertical-align: middle;
  border-bottom: 1px solid var(--ui-table-row-border);
}

.ui-table td:first-child, .premium-table td:first-child, .glass-table td:first-child {
  padding-left: var(--ui-table-cell-padding-edge);
}

.ui-table td:last-child, .premium-table td:last-child, .glass-table td:last-child {
  padding-right: var(--ui-table-cell-padding-edge);
}

/* Text alignment utilities */
/* @deprecated .glass-table text-align — authority: tables/data-table.scss */
.ui-table .text-right, .glass-table .text-right,
.premium-table .text-right {
  text-align: right !important;
}

.ui-table .text-center, .premium-table .text-center, .glass-table .text-center {
  text-align: center;
}

/* ==========================================================================
   CELL PATTERNS — PRIMARY (Customer Name, etc.)
   ========================================================================== */
/* @deprecated .glass-table cell semantics — authority: tables/data-table.scss */
.ui-table .cell-primary, .premium-table .cell-primary, .glass-table .cell-primary {
  display: block;
}

.ui-table .cell-primary-name, .premium-table .cell-primary-name, .glass-table .cell-primary-name,
.ui-table .customer-name,
.premium-table .customer-name,
.glass-table .customer-name {
  display: block;
  font-size: var(--ui-table-cell-font);
  font-weight: 600;
  color: var(--ui-text-primary);
  line-height: 1.4;
  margin-bottom: 2px;
}

.ui-table .cell-primary-sub, .premium-table .cell-primary-sub, .glass-table .cell-primary-sub,
.ui-table .customer-phone,
.premium-table .customer-phone,
.glass-table .customer-phone {
  display: block;
  font-family: var(--ui-font-mono);
  font-size: 10px;
  color: var(--ui-text-subtle);
  letter-spacing: 0.03em;
}

/* ==========================================================================
   CELL PATTERNS — CHIP (Vehicle, Category, etc.)
   ========================================================================== */
.ui-table .cell-chip, .premium-table .cell-chip, .glass-table .cell-chip,
.ui-table .vehicle-chip,
.premium-table .vehicle-chip,
.glass-table .vehicle-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 10px;
  background: var(--ui-table-accent-bg);
  border: 1px solid var(--ui-table-accent-border);
  border-radius: 6px;
}

.ui-table .cell-chip-icon, .premium-table .cell-chip-icon, .glass-table .cell-chip-icon,
.ui-table .vehicle-icon,
.premium-table .vehicle-icon,
.glass-table .vehicle-icon {
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
  color: var(--ui-table-accent-light);
  flex-shrink: 0;
}

.ui-table .cell-chip-text, .premium-table .cell-chip-text, .glass-table .cell-chip-text,
.ui-table .vehicle-name,
.premium-table .vehicle-name,
.glass-table .vehicle-name {
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 200, 160, 0.95);
  line-height: 1.2;
}

/* Cell chip color variants by recipient type */
.ui-table .cell-chip--employee, .premium-table .cell-chip--employee, .glass-table .cell-chip--employee {
  background: rgba(96, 165, 250, 0.12);
  border-color: rgba(96, 165, 250, 0.3);
}

.ui-table .cell-chip--employee .cell-chip-icon, .premium-table .cell-chip--employee .cell-chip-icon, .glass-table .cell-chip--employee .cell-chip-icon {
  color: rgba(96, 165, 250, 0.9);
}

.ui-table .cell-chip--employee .cell-chip-text, .premium-table .cell-chip--employee .cell-chip-text, .glass-table .cell-chip--employee .cell-chip-text {
  color: rgba(147, 197, 253, 0.95);
}

.ui-table .cell-chip--agent, .premium-table .cell-chip--agent, .glass-table .cell-chip--agent {
  background: rgba(167, 139, 250, 0.12);
  border-color: rgba(167, 139, 250, 0.3);
}

.ui-table .cell-chip--agent .cell-chip-icon, .premium-table .cell-chip--agent .cell-chip-icon, .glass-table .cell-chip--agent .cell-chip-icon {
  color: rgba(167, 139, 250, 0.9);
}

.ui-table .cell-chip--agent .cell-chip-text, .premium-table .cell-chip--agent .cell-chip-text, .glass-table .cell-chip--agent .cell-chip-text {
  color: rgba(196, 181, 253, 0.95);
}

.ui-table .cell-chip--driver, .premium-table .cell-chip--driver, .glass-table .cell-chip--driver {
  background: rgba(74, 222, 128, 0.12);
  border-color: rgba(74, 222, 128, 0.3);
}

.ui-table .cell-chip--driver .cell-chip-icon, .premium-table .cell-chip--driver .cell-chip-icon, .glass-table .cell-chip--driver .cell-chip-icon {
  color: rgba(74, 222, 128, 0.9);
}

.ui-table .cell-chip--driver .cell-chip-text, .premium-table .cell-chip--driver .cell-chip-text, .glass-table .cell-chip--driver .cell-chip-text {
  color: rgba(134, 239, 172, 0.95);
}

.ui-table .cell-chip--vendor, .premium-table .cell-chip--vendor, .glass-table .cell-chip--vendor {
  background: rgba(45, 212, 191, 0.12);
  border-color: rgba(45, 212, 191, 0.3);
}

.ui-table .cell-chip--vendor .cell-chip-icon, .premium-table .cell-chip--vendor .cell-chip-icon, .glass-table .cell-chip--vendor .cell-chip-icon {
  color: rgba(45, 212, 191, 0.9);
}

.ui-table .cell-chip--vendor .cell-chip-text, .premium-table .cell-chip--vendor .cell-chip-text, .glass-table .cell-chip--vendor .cell-chip-text {
  color: rgba(94, 234, 212, 0.95);
}

/* ==========================================================================
   CELL PATTERNS — TIMELINE
   ========================================================================== */
.ui-table .cell-timeline, .premium-table .cell-timeline, .glass-table .cell-timeline {
  padding-top: 6px;
  padding-bottom: 6px;
}

.ui-table .timeline-wrapper, .premium-table .timeline-wrapper, .glass-table .timeline-wrapper {
  display: flex;
  flex-direction: column;
  gap: 4px;
  position: relative;
  padding-left: 10px;
}

.ui-table .timeline-wrapper::before, .premium-table .timeline-wrapper::before, .glass-table .timeline-wrapper::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 5px;
  bottom: 5px;
  width: 2px;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0.2), rgba(255, 100, 80, 0.5));
  border-radius: 1px;
}

.ui-table .timeline-item, .premium-table .timeline-item, .glass-table .timeline-item {
  display: flex;
  align-items: center;
  gap: 6px;
  position: relative;
}

.ui-table .timeline-item::before, .premium-table .timeline-item::before, .glass-table .timeline-item::before {
  content: "";
  position: absolute;
  left: -10px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  border: 1.5px solid rgba(255, 255, 255, 0.3);
  background: #1a1a1a;
}

.ui-table .timeline-item.highlight::before, .premium-table .timeline-item.highlight::before, .glass-table .timeline-item.highlight::before,
.ui-table .timeline-item.cancelled::before,
.premium-table .timeline-item.cancelled::before,
.glass-table .timeline-item.cancelled::before {
  border-color: var(--ui-danger-border);
  background: var(--ui-danger-bg);
}

.ui-table .timeline-label, .premium-table .timeline-label, .glass-table .timeline-label {
  font-size: 8px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.4);
  min-width: 48px;
}

.ui-table .timeline-date, .premium-table .timeline-date, .glass-table .timeline-date {
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.85);
}

.ui-table .timeline-date.highlight, .premium-table .timeline-date.highlight, .glass-table .timeline-date.highlight,
.ui-table .timeline-date.cancelled-highlight,
.premium-table .timeline-date.cancelled-highlight,
.glass-table .timeline-date.cancelled-highlight {
  color: var(--ui-danger);
  font-weight: 600;
}

/* ==========================================================================
   CELL PATTERNS — STACKED (Assignment, Meta)
   ========================================================================== */
/* NOTE: .glass-table cell semantics are handled by ui/tables/data-table.scss */
.ui-table .cell-stacked, .premium-table .cell-stacked, .glass-table .cell-stacked,
.ui-table .cell-assignment,
.premium-table .cell-assignment,
.glass-table .cell-assignment {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-start;
  padding-top: 6px;
  padding-bottom: 6px;
}

.ui-table .cell-stacked-primary, .premium-table .cell-stacked-primary, .glass-table .cell-stacked-primary,
.ui-table .advisor-name,
.premium-table .advisor-name,
.glass-table .advisor-name {
  font-size: var(--ui-table-cell-font);
  font-weight: 500;
  color: rgba(255, 255, 255, 0.85);
}

/* ==========================================================================
   TYPE/STATUS PILLS
   ========================================================================== */
/* @deprecated .glass-table type-pills — authority: tables/data-table.scss */
.ui-table .type-pill, .premium-table .type-pill, .glass-table .type-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 3px 10px;
  border-radius: 12px;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.ui-table .type-pill.success, .premium-table .type-pill.success, .glass-table .type-pill.success,
.ui-table .type-pill.type-job,
.premium-table .type-pill.type-job,
.glass-table .type-pill.type-job {
  background: var(--ui-success-bg);
  border: 1px solid var(--ui-success-border);
  color: var(--ui-success);
}

.ui-table .type-pill.warning, .premium-table .type-pill.warning, .glass-table .type-pill.warning,
.ui-table .type-pill.type-booking,
.premium-table .type-pill.type-booking,
.glass-table .type-pill.type-booking {
  background: var(--ui-warning-bg);
  border: 1px solid var(--ui-warning-border);
  color: var(--ui-warning);
}

.ui-table .type-pill.danger, .premium-table .type-pill.danger, .glass-table .type-pill.danger {
  background: var(--ui-danger-bg);
  border: 1px solid var(--ui-danger-border);
  color: var(--ui-danger);
}

/* ==========================================================================
   CELL PATTERNS — REVENUE/AMOUNT
   ========================================================================== */
/* @deprecated .glass-table revenue — authority: tables/data-table.scss */
.ui-table .cell-revenue, .premium-table .cell-revenue, .glass-table .cell-revenue {
  padding-right: 20px;
}

.ui-table .revenue-amount, .premium-table .revenue-amount, .glass-table .revenue-amount {
  font-size: 15px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--ui-table-revenue);
  white-space: nowrap;
  text-align: right;
  display: block;
}

.ui-table .revenue-amount.zero, .premium-table .revenue-amount.zero, .glass-table .revenue-amount.zero {
  color: var(--ui-text-disabled);
}

/* ==========================================================================
   CELL PATTERNS — META/REASON
   ========================================================================== */
.ui-table .cell-meta, .premium-table .cell-meta, .glass-table .cell-meta,
.ui-table .cell-reason,
.premium-table .cell-reason,
.glass-table .cell-reason {
  padding-right: 16px !important;
}

.ui-table .meta-wrapper, .premium-table .meta-wrapper, .glass-table .meta-wrapper,
.ui-table .reason-wrapper,
.premium-table .reason-wrapper,
.glass-table .reason-wrapper {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.ui-table .meta-label, .premium-table .meta-label, .glass-table .meta-label,
.ui-table .cancelled-by-label,
.premium-table .cancelled-by-label,
.glass-table .cancelled-by-label {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  font-weight: 600;
  color: var(--ui-table-accent-light);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.ui-table .meta-label-icon, .premium-table .meta-label-icon, .glass-table .meta-label-icon,
.ui-table .cancelled-by-icon,
.premium-table .cancelled-by-icon,
.glass-table .cancelled-by-icon {
  font-size: 12px !important;
  width: 12px !important;
  height: 12px !important;
  color: rgba(255, 130, 90, 0.7);
}

.ui-table .meta-text, .premium-table .meta-text, .glass-table .meta-text,
.ui-table .reason-text,
.premium-table .reason-text,
.glass-table .reason-text {
  display: block;
  font-size: 12px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.4;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ==========================================================================
   EMPTY STATE
   ========================================================================== */
.ui-table .empty-row td, .premium-table .empty-row td, .glass-table .empty-row td {
  padding: 64px 20px;
}

.ui-table .empty-state, .premium-table .empty-state, .glass-table .empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.ui-table .empty-icon, .premium-table .empty-icon, .glass-table .empty-icon,
.ui-table .empty-icon-v2,
.premium-table .empty-icon-v2,
.glass-table .empty-icon-v2 {
  font-size: 48px !important;
  width: 48px !important;
  height: 48px !important;
  color: rgba(255, 130, 90, 0.4);
  margin-bottom: 8px;
}

.ui-table .empty-title, .premium-table .empty-title, .glass-table .empty-title {
  font-size: 16px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.7);
}

.ui-table .empty-subtitle, .premium-table .empty-subtitle, .glass-table .empty-subtitle {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.4);
}

/* ==========================================================================
   SKELETON LOADER
   ========================================================================== */
.ui-table .skeleton-row, .premium-table .skeleton-row, .glass-table .skeleton-row {
  display: table;
  width: 100%;
  table-layout: fixed;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.ui-table .skeleton-cell, .premium-table .skeleton-cell, .glass-table .skeleton-cell {
  display: table-cell;
  padding: 18px 14px;
  vertical-align: middle;
}

.ui-table .skeleton-cell:first-child, .premium-table .skeleton-cell:first-child, .glass-table .skeleton-cell:first-child {
  padding-left: 20px;
}

.ui-table .skeleton-cell:last-child, .premium-table .skeleton-cell:last-child, .glass-table .skeleton-cell:last-child {
  padding-right: 20px;
}

.ui-table .skeleton-line, .premium-table .skeleton-line, .glass-table .skeleton-line {
  height: 16px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.12) 50%, rgba(255, 255, 255, 0.06) 100%);
  background-size: 200% 100%;
  animation: ui-table-shimmer 1.5s infinite;
  border-radius: 4px;
}

.ui-table .skeleton-line.short, .premium-table .skeleton-line.short, .glass-table .skeleton-line.short {
  width: 65%;
}

.ui-table .skeleton-line.medium, .premium-table .skeleton-line.medium, .glass-table .skeleton-line.medium {
  width: 85%;
}

.ui-table .skeleton-line.long, .premium-table .skeleton-line.long, .glass-table .skeleton-line.long {
  width: 90%;
}

.ui-table .skeleton-line.badge, .premium-table .skeleton-line.badge, .glass-table .skeleton-line.badge {
  width: 60px;
  height: 26px;
  border-radius: 13px;
}

.ui-table .skeleton-line.amount, .premium-table .skeleton-line.amount, .glass-table .skeleton-line.amount {
  width: 80px;
  height: 18px;
  margin-left: auto;
}

.ui-table .skeleton-stacked, .premium-table .skeleton-stacked, .glass-table .skeleton-stacked {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ui-table .skeleton-stacked .skeleton-line:last-child, .premium-table .skeleton-stacked .skeleton-line:last-child, .glass-table .skeleton-stacked .skeleton-line:last-child {
  height: 12px;
  opacity: 0.6;
}

@keyframes ui-table-shimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
/* ==========================================================================
   PAGINATION
   ========================================================================== */
.ui-table-pagination, .glass-pagination {
  margin-top: 16px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-3xl);
  backdrop-filter: blur(10px);
  padding: 12px 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  transition: all 0.2s ease;
  min-height: 56px;
  position: relative;
}

/* Tighter spacing for payslips tab */
.payslips-content .ui-table-pagination, .payslips-content .glass-pagination {
  margin-top: 6px;
}

.ui-table-pagination.clickable, .clickable.glass-pagination {
  cursor: pointer;
  -webkit-user-select: none;
          user-select: none;
}

.ui-table-pagination.clickable:hover, .clickable.glass-pagination:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}

.ui-table-pagination.clickable:active, .clickable.glass-pagination:active {
  transform: scale(0.995);
  background: var(--ui-surface-active);
}

.ui-table-pagination .pagination-info, .glass-pagination .pagination-info {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.9);
  font-weight: 500;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  position: relative;
  z-index: 1;
}

.ui-table-pagination .count-primary, .glass-pagination .count-primary,
.ui-table-pagination .count-secondary,
.glass-pagination .count-secondary {
  color: rgba(255, 255, 255, 0.9);
  font-weight: 600;
}

.ui-table-pagination .count-separator, .glass-pagination .count-separator {
  color: rgba(255, 255, 255, 0.5);
  font-weight: 400;
}

.ui-table-pagination .view-more-center, .glass-pagination .view-more-center {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  left: 50%;
  min-width: max-content;
  pointer-events: none;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
}

.ui-table-pagination .divider-line, .glass-pagination .divider-line {
  width: 48px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.14), transparent);
}

.ui-table-pagination .view-more-content, .glass-pagination .view-more-content {
  display: flex;
  align-items: center;
  gap: 6px;
  color: rgba(255, 255, 255, 0.7);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.18px;
}

.ui-table-pagination .view-more-label, .glass-pagination .view-more-label {
  font-size: 13px;
  letter-spacing: 0.18px;
}

.ui-table-pagination .view-more-label.muted, .glass-pagination .view-more-label.muted {
  color: rgba(255, 255, 255, 0.4);
  font-weight: 400;
}

.ui-table-pagination .view-more-content mat-icon, .glass-pagination .view-more-content mat-icon {
  width: 18px;
  height: 18px;
  font-size: 18px;
  color: rgba(255, 255, 255, 0.62);
}

.ui-table-pagination .pagination-size, .glass-pagination .pagination-size {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.7);
  flex-shrink: 0;
  margin-left: auto;
  z-index: 2;
}

.ui-table-pagination.clickable:hover .view-more-content, .clickable.glass-pagination:hover .view-more-content {
  color: rgba(255, 255, 255, 0.84);
}

.ui-table-pagination.clickable:hover .view-more-content mat-icon, .clickable.glass-pagination:hover .view-more-content mat-icon {
  color: rgba(255, 255, 255, 0.78);
}

.ui-table-pagination.clickable:hover .divider-line, .clickable.glass-pagination:hover .divider-line {
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.22), transparent);
}

.ui-table-pagination .pagination-size select, .glass-pagination .pagination-size select {
  background: transparent;
  border: none;
  border-radius: 8px;
  padding: 6px 4px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  cursor: pointer;
  outline: none;
}

.ui-table-pagination .pagination-size select:hover, .glass-pagination .pagination-size select:hover {
  background: rgba(255, 255, 255, 0.04);
}

.ui-table-pagination .pagination-size select option, .glass-pagination .pagination-size select option {
  background: #1a1a1a;
  color: rgba(255, 255, 255, 0.9);
}

/* Pagination nav controls (prev/next) */
.ui-pagination-nav {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  margin-left: auto;
  position: relative;
  z-index: 1;
}

.ui-pagination-btn {
  width: calc(var(--ui-space-4) * 2.25);
  height: calc(var(--ui-space-4) * 2.25);
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-2);
  color: var(--ui-text-muted);
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.ui-pagination-btn:hover:not(:disabled) {
  background: var(--ui-surface-3);
  border-color: var(--ui-border-hover);
  color: var(--ui-brand);
}

.ui-pagination-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.ui-pagination-btn mat-icon {
  font-family: "Material Icons" !important;
  font-size: 20px;
  width: 20px;
  height: 20px;
  overflow: hidden;
}

.ui-pagination-info {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
  min-width: calc(var(--ui-space-12) * 2);
  text-align: center;
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1200px) {
  .ui-table, .premium-table, .glass-table {
    min-width: 800px;
  }
}
@media (max-width: 640px) {
  .ui-table-card, .glass-table-card {
    border-radius: 8px;
  }
  .ui-table-pagination, .glass-pagination {
    border-radius: 20px;
    padding: 10px 14px;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 12px;
  }
  .ui-table-pagination .divider-line, .glass-pagination .divider-line {
    width: 30px;
  }
  .ui-table-pagination .view-more-center, .glass-pagination .view-more-center {
    left: auto;
    min-width: 100%;
    order: 3;
    position: static;
    top: auto;
    transform: none;
  }
  .ui-table-pagination .pagination-size, .glass-pagination .pagination-size,
  .ui-pagination-nav {
    margin-left: 0;
  }
}
/* ==========================================================================
   CELL PATTERNS — EXPENSE/CODE (Stacked ID + Date)
   ========================================================================== */
.ui-table .cell-expense, .glass-table .cell-expense,
.premium-table .cell-expense {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.ui-table .expense-code, .glass-table .expense-code,
.premium-table .expense-code {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
  font-family: var(--ui-font-mono);
}

.ui-table .expense-date, .glass-table .expense-date,
.premium-table .expense-date {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
}

/* Expense Type Badges — Color-coded */
.ui-table .expense-type-badge, .glass-table .expense-type-badge,
.premium-table .expense-type-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 6px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.3px;
  text-transform: uppercase;
  width: fit-content;
  /* Default style */
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.7);
}

.ui-table .expense-type-badge.type-vendor, .glass-table .expense-type-badge.type-vendor,
.premium-table .expense-type-badge.type-vendor {
  background: rgba(168, 85, 247, 0.15);
  border: 1px solid rgba(168, 85, 247, 0.3);
  color: #c084fc;
}

.ui-table .expense-type-badge.type-employee, .glass-table .expense-type-badge.type-employee,
.premium-table .expense-type-badge.type-employee {
  background: rgba(59, 130, 246, 0.15);
  border: 1px solid rgba(59, 130, 246, 0.3);
  color: #60a5fa;
}

/* Purchase Bill — amber/gold */
.ui-table .expense-type-badge.type-purchase, .glass-table .expense-type-badge.type-purchase,
.premium-table .expense-type-badge.type-purchase {
  background: rgba(245, 158, 11, 0.15);
  border: 1px solid rgba(245, 158, 11, 0.35);
  color: #fbbf24;
}

/* Reimbursement — teal */
.ui-table .expense-type-badge.type-reimbursement, .glass-table .expense-type-badge.type-reimbursement,
.premium-table .expense-type-badge.type-reimbursement {
  background: rgba(20, 184, 166, 0.15);
  border: 1px solid rgba(20, 184, 166, 0.35);
  color: #2dd4bf;
}

/* Manual entry — slate */
.ui-table .expense-type-badge.type-manual, .glass-table .expense-type-badge.type-manual,
.premium-table .expense-type-badge.type-manual {
  background: rgba(148, 163, 184, 0.12);
  border: 1px solid rgba(148, 163, 184, 0.28);
  color: #94a3b8;
}

/* ==========================================================================
   CELL PATTERNS — SOURCE (Type Pill + Category)
   ========================================================================== */
.ui-table .cell-source, .glass-table .cell-source,
.premium-table .cell-source {
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: flex-start;
}

.ui-table .source-category, .glass-table .source-category,
.premium-table .source-category {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.7);
}

/* Type Pills - Expense Types */
.ui-table .type-pill.employee, .glass-table .type-pill.employee,
.premium-table .type-pill.employee {
  background: rgba(59, 130, 246, 0.15);
  border: 1px solid rgba(59, 130, 246, 0.3);
  color: #60a5fa;
}

.ui-table .type-pill.vendor, .glass-table .type-pill.vendor,
.premium-table .type-pill.vendor {
  background: rgba(168, 85, 247, 0.15);
  border: 1px solid rgba(168, 85, 247, 0.3);
  color: #c084fc;
}

/* ==========================================================================
   CELL PATTERNS — PAYEE (Avatar + Info)
   ========================================================================== */
.ui-table .cell-payee, .glass-table .cell-payee,
.ui-table .cell-added-by,
.glass-table .cell-added-by,
.premium-table .cell-payee,
.premium-table .cell-added-by {
  padding-top: 8px;
  padding-bottom: 8px;
}

.ui-table .payee-wrapper, .glass-table .payee-wrapper,
.premium-table .payee-wrapper {
  display: flex;
  align-items: center;
  gap: 10px;
}

.ui-table .payee-avatar, .glass-table .payee-avatar,
.premium-table .payee-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(255, 130, 90, 0.2), rgba(255, 100, 80, 0.3));
  border: 1px solid rgba(255, 130, 90, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 600;
  color: rgba(255, 200, 160, 0.9);
  flex-shrink: 0;
}

.ui-table .payee-avatar.vendor, .glass-table .payee-avatar.vendor,
.premium-table .payee-avatar.vendor {
  background: linear-gradient(135deg, rgba(168, 85, 247, 0.2), rgba(139, 92, 246, 0.3));
  border-color: rgba(168, 85, 247, 0.3);
  color: #c084fc;
}

.ui-table .payee-avatar.added-by, .glass-table .payee-avatar.added-by,
.premium-table .payee-avatar.added-by {
  background: linear-gradient(135deg, rgba(59, 130, 246, 0.15), rgba(37, 99, 235, 0.25));
  border-color: rgba(59, 130, 246, 0.25);
  color: #60a5fa;
}

.ui-table .payee-info, .glass-table .payee-info,
.premium-table .payee-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.ui-table .payee-name, .glass-table .payee-name,
.premium-table .payee-name {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.9);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ui-table .payee-type, .glass-table .payee-type,
.premium-table .payee-type {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
  text-transform: capitalize;
}

/* Employee name deep-link — clickable to Party Ledger */
.ui-table .employee-link, .glass-table .employee-link,
.premium-table .employee-link {
  cursor: pointer;
  color: #7dd3fc;
  transition: all 0.2s ease;
}

.ui-table .employee-link:hover, .glass-table .employee-link:hover,
.premium-table .employee-link:hover {
  text-decoration: underline;
  color: #38bdf8;
}

/* ==========================================================================
   CELL PATTERNS — AMOUNT (Value + Tax)
   ========================================================================== */
/* The td cell itself needs to right-align its content */
.ui-table td.cell-amount, .glass-table td.cell-amount,
.premium-table td.cell-amount,
.ui-table td.text-right,
.glass-table td.text-right,
.premium-table td.text-right {
  text-align: right;
}

/* The cell-amount content container */
.ui-table .cell-amount, .glass-table .cell-amount,
.premium-table .cell-amount {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  margin-left: auto;
}

.ui-table .amount-value, .glass-table .amount-value,
.premium-table .amount-value {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
  font-variant-numeric: tabular-nums;
}

.ui-table .tax-indicator, .glass-table .tax-indicator,
.premium-table .tax-indicator {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.45);
}

/* ==========================================================================
   CELL PATTERNS — DESCRIPTION
   ========================================================================== */
.ui-table .cell-description, .glass-table .cell-description,
.premium-table .cell-description {
  max-width: 200px;
}

.ui-table .description-text, .glass-table .description-text,
.premium-table .description-text {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.65);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
}

/* ==========================================================================
   CELL PATTERNS — STATUS (Approval + Payment Pills)
   ========================================================================== */
.ui-table .cell-status, .glass-table .cell-status,
.premium-table .cell-status {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}

.ui-table .status-pill, .glass-table .status-pill,
.premium-table .status-pill {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 12px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* Status Pill Variants */
.ui-table .status-pill.draft, .glass-table .status-pill.draft,
.premium-table .status-pill.draft {
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.7);
}

.ui-table .status-pill.submitted, .glass-table .status-pill.submitted,
.premium-table .status-pill.submitted {
  background: rgba(96, 165, 250, 0.15);
  color: #60a5fa;
}

.ui-table .status-pill.pending, .glass-table .status-pill.pending,
.premium-table .status-pill.pending {
  background: rgba(251, 191, 36, 0.15);
  color: #fbbf24;
}

.ui-table .status-pill.approved, .glass-table .status-pill.approved,
.premium-table .status-pill.approved {
  background: rgba(74, 222, 128, 0.15);
  color: #4ade80;
}

.ui-table .status-pill.rejected, .glass-table .status-pill.rejected,
.ui-table .status-pill.cancelled,
.glass-table .status-pill.cancelled,
.premium-table .status-pill.rejected,
.premium-table .status-pill.cancelled {
  background: rgba(248, 113, 113, 0.15);
  color: #f87171;
}

.ui-table .status-pill.closed, .glass-table .status-pill.closed,
.premium-table .status-pill.closed {
  background: rgba(59, 130, 246, 0.15);
  color: #60a5fa;
}

/* Receivables status variants */
.ui-table .status-pill.open, .glass-table .status-pill.open,
.premium-table .status-pill.open {
  background: var(--ui-info-bg);
  color: var(--ui-info);
}

.ui-table .status-pill.promised, .glass-table .status-pill.promised,
.premium-table .status-pill.promised {
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
}

.ui-table .status-pill.partially-paid, .glass-table .status-pill.partially-paid,
.premium-table .status-pill.partially-paid {
  background: var(--ui-success-bg);
  color: var(--ui-success);
}

.ui-table .status-pill.overdue, .glass-table .status-pill.overdue,
.premium-table .status-pill.overdue {
  background: var(--ui-danger-bg);
  color: var(--ui-danger);
}

.ui-table .status-pill.disputed, .glass-table .status-pill.disputed,
.premium-table .status-pill.disputed {
  background: var(--ui-warning-bg);
  color: var(--ui-warning);
}

.ui-table .status-pill.warning, .glass-table .status-pill.warning,
.premium-table .status-pill.warning {
  background: rgba(251, 191, 36, 0.15);
  color: #fbbf24;
  border: 1px solid rgba(251, 191, 36, 0.25);
}

/* OCR scan icon in bill list invoice column */
.ocr-scan-icon {
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
  color: #fbbf24;
  vertical-align: middle;
  margin-right: 4px;
}

/* Risk badges */
.ui-table .risk-badge, .glass-table .risk-badge,
.premium-table .risk-badge {
  text-transform: capitalize;
  cursor: help;
}

/* Receivables table helpers */
.ui-table .overdue-text, .glass-table .overdue-text,
.premium-table .overdue-text {
  color: var(--ui-danger);
  font-weight: var(--ui-font-semibold);
}

.ui-table .next-action-text, .glass-table .next-action-text,
.premium-table .next-action-text {
  --ui-clamp-lines: 2;
  font-size: var(--ui-text-sm);
  color: var(--ui-text-secondary);
}

.ui-table .promise-hint, .glass-table .promise-hint,
.premium-table .promise-hint {
  font-style: italic;
}

.ui-table .actions-cell, .glass-table .actions-cell,
.premium-table .actions-cell {
  white-space: nowrap;
}

.ui-table .actions-cell .pill-btn + .pill-btn, .glass-table .actions-cell .pill-btn + .pill-btn,
.premium-table .actions-cell .pill-btn + .pill-btn {
  margin-left: var(--ui-space-2);
}

/* Payment Status Mini Pills */
.ui-table .payment-status-mini, .glass-table .payment-status-mini,
.premium-table .payment-status-mini {
  font-size: 9px;
  font-weight: 500;
  padding: 2px 8px;
  border-radius: 8px;
  text-transform: capitalize;
}

.ui-table .payment-status-mini.unpaid, .glass-table .payment-status-mini.unpaid,
.premium-table .payment-status-mini.unpaid {
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.5);
}

.ui-table .payment-status-mini.partial, .glass-table .payment-status-mini.partial,
.premium-table .payment-status-mini.partial {
  background: rgba(251, 191, 36, 0.12);
  color: #fbbf24;
}

.ui-table .payment-status-mini.paid, .glass-table .payment-status-mini.paid,
.premium-table .payment-status-mini.paid {
  background: rgba(74, 222, 128, 0.12);
  color: #4ade80;
}

/* Payable Link Mini */
.ui-table .payable-link-mini, .glass-table .payable-link-mini,
.premium-table .payable-link-mini {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  color: rgba(255, 130, 90, 0.8);
  cursor: pointer;
  transition: color 0.15s ease;
}

.ui-table .payable-link-mini:hover, .glass-table .payable-link-mini:hover,
.premium-table .payable-link-mini:hover {
  color: rgb(255, 130, 90);
}

.ui-table .payable-link-mini mat-icon, .glass-table .payable-link-mini mat-icon,
.premium-table .payable-link-mini mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

/* ==========================================================================
   BACKWARDS COMPATIBILITY ALIASES
   ==========================================================================
   These ensure existing code using legacy class names continues to work.
   New code should use .ui-table classes.
   ========================================================================== */
/* Glass table → UI table */
/* Premium table → UI table */
/*
 * CONTRACT RULE
 * This file must NOT redefine selectors from:
 *   - ui/layout/*
 *   - ui/controls/*
 *   - ui/headers/*
 * Use scoped overrides only.
 */
/* ==========================================================================
   UI DATA — TABLE INPUT VARIANT
   ==========================================================================

   Extends the base .ui-table for editable input tables with:
   - Compact row spacing (40px height)
   - Input field styling
   - Decorative glow container

   Usage:
     <div class="ui-table-card ui-table--input">
       <div class="ui-table-wrap">
         <table class="ui-table">...</table>
       </div>
     </div>

   ========================================================================== */
/* ==========================================================================
   INPUT TABLE CARD CONTAINER
   ========================================================================== */
.ui-table--input, .glass-input-table-card {
  position: relative;
  border-radius: var(--ui-radius-3xl);
  isolation: isolate;
}

/* Decorative glow effect */
.ui-table--input::before, .glass-input-table-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  border-radius: inherit;
  background: radial-gradient(circle at 15% 20%, rgba(255, 122, 61, 0.25), transparent 45%), radial-gradient(circle at 85% 30%, rgba(76, 63, 255, 0.25), transparent 50%);
  opacity: 0.8;
}

.ui-table--input > *, .glass-input-table-card > * {
  position: relative;
  z-index: 1;
}

/* ==========================================================================
   INPUT TABLE WRAPPER
   ========================================================================== */
.ui-table--input .ui-table-wrap, .glass-input-table-card .ui-table-wrap,
.glass-input-table-wrap {
  overflow-x: auto;
  border-radius: 18px;
  border: 1px solid var(--ui-border);
  background: linear-gradient(150deg, rgba(10, 10, 14, 0.72), rgba(14, 8, 18, 0.6));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 28px 70px rgba(0, 0, 0, 0.45);
  backdrop-filter: var(--ui-blur-md);
  -webkit-backdrop-filter: var(--ui-blur-md);
}

/* ==========================================================================
   INPUT TABLE OVERRIDES
   ========================================================================== */
.ui-table--input .ui-table, .glass-input-table-card .ui-table, .ui-table--input .glass-table, .glass-input-table-card .glass-table, .ui-table--input .premium-table, .glass-input-table-card .premium-table,
.glass-input-table {
  width: 100%;
  border-collapse: collapse;
  background: transparent;
  color: rgba(255, 255, 255, 0.88);
  font-size: var(--ui-table-cell-font);
}

.ui-table--input .ui-table th, .glass-input-table-card .ui-table th, .ui-table--input .glass-table th, .glass-input-table-card .glass-table th, .ui-table--input .premium-table th, .glass-input-table-card .premium-table th,
.ui-table--input .ui-table td,
.glass-input-table-card .ui-table td,
.ui-table--input .glass-table td,
.glass-input-table-card .glass-table td,
.ui-table--input .premium-table td,
.glass-input-table-card .premium-table td,
.glass-input-table th,
.glass-input-table td {
  padding: 4px 8px !important;
  height: 40px !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  vertical-align: middle;
}

.ui-table--input .ui-table th, .glass-input-table-card .ui-table th, .ui-table--input .glass-table th, .glass-input-table-card .glass-table th, .ui-table--input .premium-table th, .glass-input-table-card .premium-table th,
.glass-input-table th {
  height: 36px;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.7);
  background: rgba(255, 255, 255, 0.03);
}

.ui-table--input .ui-table tbody tr, .glass-input-table-card .ui-table tbody tr, .ui-table--input .glass-table tbody tr, .glass-input-table-card .glass-table tbody tr, .ui-table--input .premium-table tbody tr, .glass-input-table-card .premium-table tbody tr,
.glass-input-table tbody tr {
  height: 48px;
  transition: background 0.2s ease, transform 0.2s ease;
}

.ui-table--input .ui-table tbody tr:hover, .glass-input-table-card .ui-table tbody tr:hover, .ui-table--input .glass-table tbody tr:hover, .glass-input-table-card .glass-table tbody tr:hover, .ui-table--input .premium-table tbody tr:hover, .glass-input-table-card .premium-table tbody tr:hover,
.glass-input-table tbody tr:hover {
  background: rgba(255, 255, 255, 0.03);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.02);
}

/* ==========================================================================
   COLUMN WIDTHS
   ========================================================================== */
.ui-table--input .status-col, .glass-input-table-card .status-col,
.glass-input-table .status-col {
  width: 56px;
  text-align: center;
}

.ui-table--input .actions-col, .glass-input-table-card .actions-col,
.glass-input-table .actions-col {
  width: 72px;
  text-align: center;
}

.ui-table--input .compact-field, .glass-input-table-card .compact-field,
.glass-input-table .compact-field {
  width: 70px;
}

.ui-table--input .compact-field.stretch, .glass-input-table-card .compact-field.stretch,
.glass-input-table .compact-field.stretch {
  width: 100%;
}

.ui-table--input .item-field, .glass-input-table-card .item-field,
.glass-input-table .item-field {
  min-width: 360px;
  display: flex;
  gap: 12px;
  align-items: center;
}

.ui-table--input .item-field mat-form-field, .glass-input-table-card .item-field mat-form-field,
.glass-input-table .item-field mat-form-field {
  flex: 1;
}

/* ==========================================================================
   STATUS ICONS
   ========================================================================== */
.ui-table--input .status-icon, .glass-input-table-card .status-icon,
.glass-input-table .status-icon,
.sale-v2-table .status-icon {
  width: 26px;
  height: 26px;
  border-radius: 9px;
  border: 1px solid var(--ui-border-hover);
  background: rgba(255, 255, 255, 0.04);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.74);
}

.ui-table--input .status-icon mat-icon, .glass-input-table-card .status-icon mat-icon,
.glass-input-table .status-icon mat-icon,
.sale-v2-table .status-icon mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.ui-table--input .status-icon.issued, .glass-input-table-card .status-icon.issued,
.glass-input-table .status-icon.issued,
.sale-v2-table .status-icon.issued {
  color: #3bd7a5;
  border-color: rgba(59, 215, 165, 0.55);
  background: rgba(59, 215, 165, 0.12);
}

.ui-table--input .status-icon.pending, .glass-input-table-card .status-icon.pending,
.glass-input-table .status-icon.pending,
.sale-v2-table .status-icon.pending {
  color: #ff5f6d;
  border-color: rgba(255, 95, 109, 0.5);
  background: rgba(255, 95, 109, 0.1);
}

/* ==========================================================================
   MATERIAL FORM FIELD OVERRIDES
   ========================================================================== */
.ui-table--input td, .glass-input-table-card td,
.glass-input-table td {
  cursor: pointer;
}

.ui-table--input input:disabled, .glass-input-table-card input:disabled,
.ui-table--input mat-select:disabled,
.glass-input-table-card mat-select:disabled,
.ui-table--input .mat-mdc-select-disabled,
.glass-input-table-card .mat-mdc-select-disabled,
.glass-input-table input:disabled,
.glass-input-table mat-select:disabled,
.glass-input-table .mat-mdc-select-disabled {
  pointer-events: none;
}

.ui-table--input .mat-mdc-form-field, .glass-input-table-card .mat-mdc-form-field,
.glass-input-table .mat-mdc-form-field {
  --mat-form-field-container-height: 32px;
  --mat-form-field-container-vertical-padding: 0;
}

.ui-table--input .mat-mdc-form-field-subscript-wrapper, .glass-input-table-card .mat-mdc-form-field-subscript-wrapper,
.glass-input-table .mat-mdc-form-field-subscript-wrapper {
  display: none !important;
}

.ui-table--input .mdc-text-field--filled, .glass-input-table-card .mdc-text-field--filled,
.glass-input-table .mdc-text-field--filled {
  padding: 0 16px !important;
  height: 32px !important;
  min-height: 32px !important;
  border-radius: 10px !important;
  background: rgba(255, 255, 255, 0.04) !important;
  border: 1px solid var(--ui-border) !important;
}

.ui-table--input .mat-mdc-form-field-infix, .glass-input-table-card .mat-mdc-form-field-infix,
.glass-input-table .mat-mdc-form-field-infix {
  padding: 0 !important;
  min-height: 32px !important;
  display: flex !important;
  align-items: center !important;
}

.ui-table--input .mat-mdc-text-field-wrapper, .glass-input-table-card .mat-mdc-text-field-wrapper,
.glass-input-table .mat-mdc-text-field-wrapper {
  padding: 0 !important;
  height: 32px !important;
}

.ui-table--input .mdc-text-field__input, .glass-input-table-card .mdc-text-field__input,
.glass-input-table .mdc-text-field__input {
  height: 32px !important;
  padding: 0 8px !important;
  font-size: 13px !important;
  color: rgba(255, 255, 255, 0.92) !important;
}

.ui-table--input .mat-mdc-select, .glass-input-table-card .mat-mdc-select,
.glass-input-table .mat-mdc-select {
  height: 32px !important;
  display: flex !important;
  align-items: center !important;
  padding: 0 8px !important;
}

.ui-table--input .mat-mdc-select-trigger, .glass-input-table-card .mat-mdc-select-trigger,
.glass-input-table .mat-mdc-select-trigger {
  height: 32px !important;
  min-height: 32px !important;
}

.ui-table--input .mat-mdc-select-value, .glass-input-table-card .mat-mdc-select-value,
.glass-input-table .mat-mdc-select-value {
  padding: 0 !important;
}

.ui-table--input .mat-mdc-floating-label, .glass-input-table-card .mat-mdc-floating-label,
.ui-table--input .mdc-floating-label,
.glass-input-table-card .mdc-floating-label,
.glass-input-table .mat-mdc-floating-label,
.glass-input-table .mdc-floating-label {
  display: none !important;
}

/* Legacy form field support */
.ui-table--input .mat-form-field-appearance-fill .mat-form-field-infix, .glass-input-table-card .mat-form-field-appearance-fill .mat-form-field-infix,
.glass-input-table .mat-form-field-appearance-fill .mat-form-field-infix {
  padding: 0;
  border-top: 0;
}

.ui-table--input .mat-form-field-wrapper, .glass-input-table-card .mat-form-field-wrapper,
.glass-input-table .mat-form-field-wrapper {
  padding-bottom: 0;
  margin-bottom: 0;
}

.ui-table--input .mat-form-field-appearance-fill .mat-form-field-flex, .glass-input-table-card .mat-form-field-appearance-fill .mat-form-field-flex,
.glass-input-table .mat-form-field-appearance-fill .mat-form-field-flex {
  padding: 4px 8px;
  min-height: 28px;
  align-items: center;
}

.ui-table--input .mat-form-field, .glass-input-table-card .mat-form-field,
.glass-input-table .mat-form-field {
  width: 100%;
  line-height: 1;
}

.ui-table--input input.mat-input-element, .glass-input-table-card input.mat-input-element,
.ui-table--input .mat-select,
.glass-input-table-card .mat-select,
.glass-input-table input.mat-input-element,
.glass-input-table .mat-select {
  font-size: 13px;
  line-height: 1.2;
  padding: 0;
  margin: 0;
}

.ui-table--input .mat-select-value, .glass-input-table-card .mat-select-value,
.glass-input-table .mat-select-value {
  padding: 0;
  margin: 0;
}

.ui-table--input .pill-button, .glass-input-table-card .pill-button,
.glass-input-table .pill-button {
  height: 28px;
  padding: 0 14px;
  font-size: 12px;
}

/* ==========================================================================
   NUMBER INPUT SPINNERS
   ========================================================================== */
.ui-table--input input::-webkit-outer-spin-button, .glass-input-table-card input::-webkit-outer-spin-button,
.ui-table--input input::-webkit-inner-spin-button,
.glass-input-table-card input::-webkit-inner-spin-button,
.glass-input-table input::-webkit-outer-spin-button,
.glass-input-table input::-webkit-inner-spin-button {
  appearance: none;
  margin: 0;
}

.ui-table--input input[type=number], .glass-input-table-card input[type=number],
.glass-input-table input[type=number] {
  appearance: textfield;
}

/* ==========================================================================
   PAYROLL TABLE PATTERNS
   ==========================================================================
   Styles for payroll processing tables with inline editing.
   ========================================================================== */
/* --- Days Display --- */
.ui-table .days-primary, .premium-table .days-primary,
.glass-table .days-primary {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 15px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}

.ui-table .days-warning .days-separator, .premium-table .days-warning .days-separator, .ui-table .days-warning .days-total, .premium-table .days-warning .days-total,
.glass-table .days-warning .days-separator,
.glass-table .days-warning .days-total {
  color: rgba(251, 191, 36, 0.8);
}

.ui-table .days-separator, .premium-table .days-separator,
.glass-table .days-separator {
  color: rgba(255, 255, 255, 0.4);
  font-weight: 400;
}

.ui-table .days-total, .premium-table .days-total,
.glass-table .days-total {
  color: rgba(255, 255, 255, 0.75);
  font-weight: 500;
}

.ui-table .days-lwp, .premium-table .days-lwp,
.glass-table .days-lwp {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 4px;
  font-size: 11px;
}

.ui-table .lwp-label, .premium-table .lwp-label,
.glass-table .lwp-label {
  color: rgba(248, 113, 113, 0.7);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.ui-table .lwp-value, .premium-table .lwp-value,
.glass-table .lwp-value {
  color: #f87171;
  font-weight: 700;
}

/* --- Payable Days Inline Input --- */
.ui-table .payable-days-input-inline, .premium-table .payable-days-input-inline,
.glass-table .payable-days-input-inline {
  width: 45px;
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(73, 211, 158, 0.4);
  color: #49d39e;
  font-size: 15px;
  font-weight: 700;
  text-align: center;
  padding: 2px 4px;
  outline: none;
  transition: all 0.2s ease;
  appearance: textfield;
}

.ui-table .payable-days-input-inline:hover:not(:disabled), .premium-table .payable-days-input-inline:hover:not(:disabled),
.glass-table .payable-days-input-inline:hover:not(:disabled) {
  border-bottom-color: rgba(73, 211, 158, 0.7);
}

.ui-table .payable-days-input-inline:focus, .premium-table .payable-days-input-inline:focus,
.glass-table .payable-days-input-inline:focus {
  border-bottom-color: #49d39e;
  background: rgba(73, 211, 158, 0.05);
}

.ui-table .payable-days-input-inline:disabled, .premium-table .payable-days-input-inline:disabled,
.glass-table .payable-days-input-inline:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

.ui-table .payable-days-input-inline::-webkit-inner-spin-button, .premium-table .payable-days-input-inline::-webkit-inner-spin-button,
.ui-table .payable-days-input-inline::-webkit-outer-spin-button,
.premium-table .payable-days-input-inline::-webkit-outer-spin-button,
.glass-table .payable-days-input-inline::-webkit-inner-spin-button,
.glass-table .payable-days-input-inline::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.ui-table .input-warning, .premium-table .input-warning,
.glass-table .input-warning {
  color: #fbbf24;
  border-bottom-color: rgba(251, 191, 36, 0.5);
}

.ui-table .input-edited, .premium-table .input-edited,
.glass-table .input-edited {
  border-color: rgba(16, 185, 129, 0.5);
  background: rgba(16, 185, 129, 0.08);
}

/* --- Inline Save Icon --- */
.ui-table .inline-save-icon, .premium-table .inline-save-icon,
.glass-table .inline-save-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  margin-left: 8px;
  color: #10b981;
  cursor: pointer;
  transition: all 0.2s ease;
  vertical-align: middle;
}

.ui-table .inline-save-icon:hover, .premium-table .inline-save-icon:hover,
.glass-table .inline-save-icon:hover {
  color: #34d399;
  transform: scale(1.15);
}

/* --- Earnings & Deductions Stacked Layout --- */
.ui-table .earnings-gross, .premium-table .earnings-gross,
.glass-table .earnings-gross {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  margin-bottom: 4px;
}

.ui-table .earnings-amount, .premium-table .earnings-amount,
.glass-table .earnings-amount {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}

.ui-table .earnings-amount.has-proration, .premium-table .earnings-amount.has-proration,
.glass-table .earnings-amount.has-proration {
  color: #ffa500;
}

.ui-table .earnings-amount.has-overtime, .premium-table .earnings-amount.has-overtime,
.glass-table .earnings-amount.has-overtime {
  text-shadow: 0 0 6px rgba(255, 180, 100, 0.4);
}

.ui-table .earnings-bonus, .premium-table .earnings-bonus,
.glass-table .earnings-bonus {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.6);
}

.ui-table .editable-field, .premium-table .editable-field,
.glass-table .editable-field {
  display: flex;
  align-items: center;
  gap: 6px;
}

.ui-table .editable-field.has-value, .premium-table .editable-field.has-value,
.glass-table .editable-field.has-value {
  color: rgba(255, 255, 255, 0.85);
}

.ui-table .field-label, .premium-table .field-label,
.glass-table .field-label {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  letter-spacing: 0.3px;
}

/* --- Compact Adjustment Input --- */
.ui-table .adjustment-input-compact, .premium-table .adjustment-input-compact,
.glass-table .adjustment-input-compact {
  width: 50px;
  background: rgba(255, 255, 255, 0.04);
  border: none;
  border-radius: 4px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 11px;
  font-weight: 500;
  text-align: center;
  padding: 3px 6px;
  outline: none;
  transition: all 0.2s ease;
  appearance: textfield;
}

.ui-table .adjustment-input-compact:hover:not(:disabled), .premium-table .adjustment-input-compact:hover:not(:disabled),
.glass-table .adjustment-input-compact:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.08);
}

.ui-table .adjustment-input-compact:focus, .premium-table .adjustment-input-compact:focus,
.glass-table .adjustment-input-compact:focus {
  background: rgba(255, 255, 255, 0.1);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.15);
}

.ui-table .adjustment-input-compact:disabled, .premium-table .adjustment-input-compact:disabled,
.glass-table .adjustment-input-compact:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.ui-table .adjustment-input-compact.has-value, .premium-table .adjustment-input-compact.has-value,
.glass-table .adjustment-input-compact.has-value {
  background: rgba(255, 180, 100, 0.12);
  color: #ffb864;
  border: 1px solid rgba(255, 180, 100, 0.4);
}

.ui-table .adjustment-input-compact::-webkit-inner-spin-button, .premium-table .adjustment-input-compact::-webkit-inner-spin-button,
.ui-table .adjustment-input-compact::-webkit-outer-spin-button,
.premium-table .adjustment-input-compact::-webkit-outer-spin-button,
.glass-table .adjustment-input-compact::-webkit-inner-spin-button,
.glass-table .adjustment-input-compact::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.ui-table .adjustment-value, .premium-table .adjustment-value,
.glass-table .adjustment-value {
  font-weight: 500;
  color: rgba(255, 255, 255, 0.75);
}

/* --- OT Display (Read-only) --- */
.ui-table .ot-display, .premium-table .ot-display,
.glass-table .ot-display {
  cursor: help;
}

/* --- Deductions Display --- */
.ui-table .deductions-total, .premium-table .deductions-total,
.glass-table .deductions-total {
  margin-bottom: 4px;
}

.ui-table .deductions-amount, .premium-table .deductions-amount,
.glass-table .deductions-amount {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 100, 100, 0.8);
}

.ui-table .deductions-details, .premium-table .deductions-details,
.glass-table .deductions-details {
  display: flex;
  flex-direction: column;
  gap: 2px;
  align-items: flex-end;
}

.ui-table .deduction-item, .premium-table .deduction-item,
.glass-table .deduction-item {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  color: rgba(255, 255, 255, 0.55);
}

/* --- Statutory Display --- */
.ui-table .statutory-total, .premium-table .statutory-total,
.glass-table .statutory-total {
  margin-bottom: 4px;
}

.ui-table .statutory-amount, .premium-table .statutory-amount,
.glass-table .statutory-amount {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
}

.ui-table .statutory-na, .premium-table .statutory-na,
.glass-table .statutory-na {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 12px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 12px;
  font-size: 10px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.4);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.ui-table .statutory-details, .premium-table .statutory-details,
.glass-table .statutory-details {
  display: flex;
  flex-direction: column;
  gap: 2px;
  align-items: flex-end;
}

.ui-table .statutory-item, .premium-table .statutory-item,
.glass-table .statutory-item {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.55);
}

.ui-table .tds-warning-icon, .premium-table .tds-warning-icon,
.glass-table .tds-warning-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
  color: #f59e0b;
  margin-right: 2px;
  vertical-align: middle;
}

/* --- Net Pay Highlight --- */
.ui-table .net-pay-large, .premium-table .net-pay-large,
.glass-table .net-pay-large {
  font-size: 16px;
  font-weight: 700;
  color: #4af4b1;
}

/* --- Status Indicators (Stale/Current) --- */
.ui-table .stale-indicator, .premium-table .stale-indicator,
.glass-table .stale-indicator {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.ui-table .status-row, .premium-table .status-row,
.glass-table .status-row {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.ui-table .btn-recalc-single, .premium-table .btn-recalc-single,
.glass-table .btn-recalc-single {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 1px solid rgba(245, 158, 11, 0.3);
  border-radius: 6px;
  background: rgba(245, 158, 11, 0.1);
  color: #fbbf24;
  cursor: pointer;
  transition: all 0.2s ease;
}

.ui-table .btn-recalc-single:hover:not(:disabled), .premium-table .btn-recalc-single:hover:not(:disabled),
.glass-table .btn-recalc-single:hover:not(:disabled) {
  background: rgba(245, 158, 11, 0.2);
  border-color: rgba(245, 158, 11, 0.5);
}

.ui-table .btn-recalc-single:disabled, .premium-table .btn-recalc-single:disabled,
.glass-table .btn-recalc-single:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.ui-table .btn-recalc-single mat-icon, .premium-table .btn-recalc-single mat-icon,
.glass-table .btn-recalc-single mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
}

.ui-table .btn-recalc-single mat-spinner, .premium-table .btn-recalc-single mat-spinner,
.glass-table .btn-recalc-single mat-spinner {
  width: 14px;
  height: 14px;
}

.ui-table .salary-warning-icon, .premium-table .salary-warning-icon,
.glass-table .salary-warning-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: #f59e0b;
  margin-left: 6px;
  vertical-align: middle;
  cursor: help;
}

/* --- Row States --- */
.ui-table .row-edited, .premium-table .row-edited,
.glass-table .row-edited {
  background: rgba(255, 180, 100, 0.04);
}

/* --- Proration Info Button --- */
.ui-table .proration-info-btn-inline, .premium-table .proration-info-btn-inline,
.glass-table .proration-info-btn-inline {
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  transition: all 0.2s ease;
}

.ui-table .proration-info-btn-inline:hover, .premium-table .proration-info-btn-inline:hover,
.glass-table .proration-info-btn-inline:hover {
  background: rgba(255, 165, 0, 0.1);
}

.ui-table .proration-info-btn-inline .info-icon-small, .premium-table .proration-info-btn-inline .info-icon-small,
.glass-table .proration-info-btn-inline .info-icon-small {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: #ffa500;
  opacity: 0.7;
  transition: opacity 0.2s;
}

.ui-table .proration-info-btn-inline:hover .info-icon-small, .premium-table .proration-info-btn-inline:hover .info-icon-small,
.glass-table .proration-info-btn-inline:hover .info-icon-small {
  opacity: 1;
}

/* --- Amount Value (Generic) --- */
.ui-table .amount-value, .premium-table .amount-value,
.glass-table .amount-value {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

/* --- Advance/Loan Deduction Chips --- */
.ui-table .advance-deduction, .premium-table .advance-deduction,
.glass-table .advance-deduction,
.ui-table .loan-emi-deduction,
.premium-table .loan-emi-deduction,
.glass-table .loan-emi-deduction {
  text-align: center;
}

.ui-table .advance-chip, .premium-table .advance-chip,
.glass-table .advance-chip {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  background: rgba(255, 180, 80, 0.15);
  border: 1px solid rgba(255, 180, 80, 0.25);
  border-radius: 20px;
  font-size: 10px;
  font-weight: 600;
  color: #ffb347;
  white-space: nowrap;
}

.ui-table .loan-emi-chip, .premium-table .loan-emi-chip,
.glass-table .loan-emi-chip {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  background: rgba(239, 68, 68, 0.15);
  border: 1px solid rgba(239, 68, 68, 0.25);
  border-radius: 20px;
  font-size: 10px;
  font-weight: 600;
  color: #f87171;
  white-space: nowrap;
}

.ui-table .no-advance, .premium-table .no-advance,
.ui-table .no-loan,
.premium-table .no-loan,
.glass-table .no-advance,
.glass-table .no-loan {
  color: rgba(255, 255, 255, 0.3);
  font-size: 14px;
}

/* --- Status Badges --- */
.ui-table .badge, .premium-table .badge,
.glass-table .badge {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.ui-table .badge-warning, .premium-table .badge-warning,
.glass-table .badge-warning {
  background: rgba(245, 158, 11, 0.2);
  color: #fbbf24;
  border: 1px solid rgba(245, 158, 11, 0.3);
}

.ui-table .badge-success, .premium-table .badge-success,
.glass-table .badge-success {
  background: rgba(34, 197, 94, 0.15);
  color: #4ade80;
  border: 1px solid rgba(34, 197, 94, 0.25);
}

.ui-table .badge-muted, .premium-table .badge-muted,
.glass-table .badge-muted {
  background: rgba(156, 163, 175, 0.15);
  color: #9ca3af;
  border: 1px solid rgba(156, 163, 175, 0.25);
}

.ui-table .status-cell, .premium-table .status-cell,
.glass-table .status-cell {
  text-align: center;
}

/* ==========================================================================
   BACKWARDS COMPATIBILITY
   ========================================================================== */
/*
 * CONTRACT RULE
 * This file must NOT redefine selectors from:
 *   - ui/layout/*
 *   - ui/controls/*
 *   - ui/headers/*
 * Use scoped overrides only.
 */
/* ==========================================================================
   UI DATA - TABLE NAV
   ==========================================================================
   Wraps existing glass-data-table.css styling.
   Apply: .ui-table--nav to the table container
   ========================================================================== */
/* Import the existing glass data table styles */
/* CSS imported in styles.scss */
/* Table nav container */
.ui-table--nav {
  /* Uses existing .glass-table-card, .glass-table classes */
  display: block;
}

/*
 * CONTRACT RULE
 * This file must NOT redefine selectors from:
 *   - ui/layout/*
 *   - ui/controls/*
 *   - ui/headers/*
 * Use scoped overrides only.
 */
/* ==========================================================================
   UI DATA — GROUPED TABLE CONTRACT
   ==========================================================================

   Extends the base table contract with support for grouped/multi-header tables.
   Used for tables with category groups like PRODUCT | PRICING | INVENTORY | SALES.

   USAGE:
   <table class="premium-table">
     <thead>
       <tr class="group-header-row">
         <th class="group-label group-product" colspan="2">...</th>
         <th class="group-label group-pricing" colspan="4">...</th>
       </tr>
       <tr class="column-header-row">
         <th class="th-index">...</th>
         <th class="th-product">...</th>
         <th class="th-pricing-start">...</th>
       </tr>
     </thead>
     <tbody>
       <tr class="data-row row-critical">...</tr>
     </tbody>
   </table>

   ========================================================================== */
.stock-page {
  /* ==========================================================================
     STOCK LIST TABLE — EXPLICIT COLUMN WIDTHS
     ==========================================================================
     Both header rows and data rows must use identical widths for proper alignment.
     Total: 3% + 21% + 9% + 9% + 9% + 9% + 7% + 8% + 9% + 7% + 9% = 100%
     ========================================================================== */
  /* Column 1: Index (#) - 3% */
  /* Column 2: Item Name - 21% */
  /* Column 3: Cost - 9% */
  /* Column 4: Margin - 9% */
  /* Column 5: Sell - 9% */
  /* Column 6: Value - 9% */
  /* Column 7: Qty - 7% */
  /* Column 8: Status - 8% */
  /* Column 9: Last Sold - 9% */
  /* Column 10: Days Left - 7% */
  /* Column 11: Actions - 9% */
  /* Group Header Row - Match combined column widths */
  /* Product group: cols 1-2 = 3% + 21% = 24% */
  /* Pricing group: cols 3-6 = 9% + 9% + 9% + 9% = 36% */
  /* Inventory group: cols 7-8 = 7% + 8% = 15% */
  /* Sales group: cols 9-11 = 9% + 7% + 9% = 25% */
  /* ==========================================================================
     GROUP HEADER ROW
     ========================================================================== */
  /* ==========================================================================
     GROUP COLOR VARIANTS
     ========================================================================== */
  /* Product Group */
  /* Pricing Group */
  /* Inventory Group */
  /* Sales Group */
  /* ==========================================================================
     COLUMN HEADER ROW
     ========================================================================== */
  /* ==========================================================================
     COLUMN GROUP BORDER INDICATORS
     ========================================================================== */
  /* ==========================================================================
     DATA ROW STATES
     ========================================================================== */
  /* Critical stock row highlight */
  /* Adequate stock row highlight */
  /* Out of stock row highlight */
  /* ==========================================================================
     CELL PATTERNS — INDEX
     ========================================================================== */
  /* ==========================================================================
     CELL PATTERNS — ITEM IDENTITY (Two-Line Layout)
     ========================================================================== */
  /* ==========================================================================
     CELL PATTERNS — PRICING
     ========================================================================== */
  /* ==========================================================================
     CELL PATTERNS — MARGIN
     ========================================================================== */
  /* ==========================================================================
     STATUS PILLS
     ========================================================================== */
  /* ==========================================================================
     QUANTITY STYLING
     ========================================================================== */
  /* ==========================================================================
     LAST SOLD DISPLAY
     ========================================================================== */
  /* ==========================================================================
     DAYS LEFT DISPLAY
     ========================================================================== */
  /* ==========================================================================
     ACTION BUTTONS
     ========================================================================== */
  /* ==========================================================================
     EMPTY STATE
     ========================================================================== */
  /* ==========================================================================
     PAGINATION (Stock List Style)
     ========================================================================== */
  /* ==========================================================================
     TABLE SECTION & GLASS CARD (Stock List Specific)
     ==========================================================================
     DEPRECATED: .glass-card visuals moved to ui/layout/card.scss
     Use .ui-card for card visuals.
     ========================================================================== */
  /* REMOVED: .glass-card.table-section override — ownership: ui/layout/card.scss */
  /* ==========================================================================
     FILTER LOADING OVERLAY
     ========================================================================== */
  /* ==========================================================================
     STAT FILTER BANNER
     ========================================================================== */
  /* ==========================================================================
     TH INFO ICON
     ========================================================================== */
  /* ==========================================================================
     LEDGER HEALTH BAR
     ========================================================================== */
}
.stock-page .group-header-row th:first-child,
.stock-page .column-header-row th:first-child,
.stock-page .data-row td:first-child,
.stock-page .cell-index,
.stock-page .th-index {
  width: 3%;
  min-width: 40px;
  max-width: 50px;
}
.stock-page .column-header-row th:nth-child(2),
.stock-page .data-row td:nth-child(2) {
  width: 21%;
  text-align: left;
}
.stock-page .column-header-row th:nth-child(3),
.stock-page .data-row td:nth-child(3) {
  width: 9%;
}
.stock-page .column-header-row th:nth-child(4),
.stock-page .data-row td:nth-child(4) {
  width: 9%;
}
.stock-page .column-header-row th:nth-child(5),
.stock-page .data-row td:nth-child(5) {
  width: 9%;
}
.stock-page .column-header-row th:nth-child(6),
.stock-page .data-row td:nth-child(6) {
  width: 9%;
}
.stock-page .column-header-row th:nth-child(7),
.stock-page .data-row td:nth-child(7) {
  width: 7%;
}
.stock-page .column-header-row th:nth-child(8),
.stock-page .data-row td:nth-child(8) {
  width: 8%;
  text-align: center;
}
.stock-page .column-header-row th:nth-child(9),
.stock-page .data-row td:nth-child(9) {
  width: 9%;
  text-align: center;
}
.stock-page .column-header-row th:nth-child(10),
.stock-page .data-row td:nth-child(10) {
  width: 7%;
  text-align: center;
}
.stock-page .column-header-row th:nth-child(11),
.stock-page .data-row td:nth-child(11) {
  width: 9%;
  text-align: center;
}
.stock-page .group-header-row th:nth-child(1) {
  width: 24%;
}
.stock-page .group-header-row th:nth-child(2) {
  width: 36%;
}
.stock-page .group-header-row th:nth-child(3) {
  width: 15%;
}
.stock-page .group-header-row th:nth-child(4) {
  width: 25%;
}
.stock-page .group-header-row {
  background: rgba(0, 0, 0, 0.3);
}
.stock-page .group-header-row th {
  padding: 8px 12px;
  border-bottom: none;
  vertical-align: middle;
}
.stock-page .group-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.4);
}
.stock-page .group-label-content {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.stock-page .group-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  opacity: 0.5;
}
.stock-page .group-product {
  background: linear-gradient(180deg, rgba(150, 180, 210, 0.08) 0%, transparent 100%);
}
.stock-page .group-product .group-label-content {
  color: rgba(150, 180, 210, 0.7);
}
.stock-page .group-product .group-icon {
  color: rgba(150, 180, 210, 0.6);
}
.stock-page .group-pricing {
  border-left: 2px solid rgba(255, 180, 100, 0.3);
  background: linear-gradient(180deg, rgba(255, 180, 100, 0.08) 0%, transparent 100%);
}
.stock-page .group-pricing .group-label-content {
  color: rgba(255, 180, 100, 0.7);
}
.stock-page .group-pricing .group-icon {
  color: rgba(255, 180, 100, 0.6);
}
.stock-page .group-inventory {
  border-left: 2px solid rgba(100, 200, 200, 0.3);
  background: linear-gradient(180deg, rgba(100, 200, 200, 0.08) 0%, transparent 100%);
}
.stock-page .group-inventory .group-label-content {
  color: rgba(100, 200, 200, 0.7);
}
.stock-page .group-inventory .group-icon {
  color: rgba(100, 200, 200, 0.6);
}
.stock-page .group-sales {
  border-left: 2px solid rgba(180, 130, 255, 0.3);
  background: linear-gradient(180deg, rgba(180, 130, 255, 0.08) 0%, transparent 100%);
}
.stock-page .group-sales .group-label-content {
  color: rgba(180, 130, 255, 0.7);
}
.stock-page .group-sales .group-icon {
  color: rgba(180, 130, 255, 0.6);
}
.stock-page .column-header-row th {
  padding: 10px 12px;
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.6);
  border-top: 1px solid rgba(255, 255, 255, 0.04);
  text-align: left;
}
.stock-page .column-header-row .th-content {
  display: flex;
  justify-content: flex-start;
  width: 100%;
}
.stock-page .th-product {
  text-align: left;
}
.stock-page .th-product .th-content {
  justify-content: flex-start;
}
.stock-page .th-pricing-start,
.stock-page .cell-pricing-start {
  border-left: 2px solid rgba(255, 180, 100, 0.25);
}
.stock-page .th-inventory-start,
.stock-page .cell-inventory-start {
  border-left: 2px solid rgba(100, 200, 200, 0.25);
}
.stock-page .th-sales-start,
.stock-page .cell-sales-start {
  border-left: 2px solid rgba(180, 130, 255, 0.25);
}
.stock-page .th-sales-start {
  white-space: nowrap;
}
.stock-page .th-sales-start .th-content,
.stock-page .th-sales-end .th-content {
  justify-content: center;
  text-align: center;
}
.stock-page .th-actions,
.stock-page .cell-actions-start {
  border-left: none;
}
.stock-page .data-row {
  transition: background 0.15s ease;
}
.stock-page .data-row:hover {
  background: rgba(255, 255, 255, 0.03);
}
.stock-page .data-row.row-critical {
  background: rgba(255, 100, 80, 0.04);
}
.stock-page .data-row.row-critical:hover {
  background: rgba(255, 100, 80, 0.08);
}
.stock-page .data-row.row-adequate {
  background: rgba(255, 200, 100, 0.03);
}
.stock-page .data-row.row-adequate:hover {
  background: rgba(255, 200, 100, 0.06);
}
.stock-page .data-row.row-out {
  background: rgba(255, 80, 80, 0.03);
  opacity: 0.7;
}
.stock-page .data-row.row-out:hover {
  background: rgba(255, 80, 80, 0.06);
  opacity: 1;
}
.stock-page .cell-index {
  text-align: center;
  color: rgba(255, 255, 255, 0.35);
  font-size: 11px;
  font-weight: 500;
}
.stock-page .cell-item-name {
  padding-top: 10px;
  padding-bottom: 10px;
}
.stock-page .item-identity {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.stock-page .item-title {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
  line-height: 1.35;
  letter-spacing: -0.01em;
}
.stock-page .item-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
  font-size: 10px;
  line-height: 1.3;
}
.stock-page .meta-sku {
  color: rgba(255, 130, 90, 0.75);
  font-family: var(--ui-font-mono);
  font-weight: 500;
}
.stock-page .meta-warranty {
  color: rgba(120, 205, 255, 0.8);
  font-weight: 600;
}
.stock-page .meta-divider {
  color: rgba(255, 255, 255, 0.2);
  margin: 0 5px;
}
.stock-page .meta-category {
  color: rgba(255, 255, 255, 0.5);
}
.stock-page .meta-brand {
  color: rgba(100, 180, 255, 0.7);
  font-weight: 500;
}
.stock-page .meta-empty {
  color: rgba(255, 255, 255, 0.2);
}
.stock-page .cell-price {
  font-family: var(--ui-font-mono);
  font-size: 12px;
  color: rgba(255, 255, 255, 0.8);
  font-variant-numeric: tabular-nums;
}
.stock-page .cell-stock-value {
  color: rgba(255, 180, 130, 0.95);
  font-weight: 600;
}
.stock-page .cell-margin {
  font-family: var(--ui-font-mono);
  font-size: 11px;
}
.stock-page .margin-display {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 1px;
}
.stock-page .margin-value {
  font-weight: 600;
}
.stock-page .margin-value.positive {
  color: rgba(73, 211, 158, 0.9);
}
.stock-page .margin-value.negative {
  color: #ef4444;
}
.stock-page .margin-percent {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.4);
}
.stock-page .margin-empty {
  color: rgba(255, 255, 255, 0.2);
}
.stock-page .cell-available {
  text-align: center;
}
.stock-page .status-pill {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 16px;
  font-size: 8px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  min-width: 55px;
  text-align: center;
}
.stock-page .status-healthy {
  background: rgba(73, 211, 158, 0.12);
  border: 1px solid rgba(73, 211, 158, 0.25);
  color: rgba(73, 211, 158, 0.95);
}
.stock-page .status-adequate {
  background: rgba(251, 191, 36, 0.12);
  border: 1px solid rgba(251, 191, 36, 0.25);
  color: rgba(251, 191, 36, 0.95);
}
.stock-page .status-low {
  background: rgba(255, 180, 100, 0.12);
  border: 1px solid rgba(255, 180, 100, 0.25);
  color: rgba(255, 180, 100, 0.95);
}
.stock-page .status-critical {
  background: rgba(255, 100, 80, 0.12);
  border: 1px solid rgba(255, 100, 80, 0.25);
  color: rgba(255, 100, 80, 0.95);
}
.stock-page .status-out {
  background: transparent;
  border: 1px solid rgba(255, 80, 80, 0.4);
  color: rgba(255, 80, 80, 0.7);
}
.stock-page .qty-value {
  font-size: 0.85rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
}
.stock-page .qty-value.qty-critical {
  color: rgba(255, 100, 80, 0.95);
}
.stock-page .qty-value.qty-adequate {
  color: rgba(251, 191, 36, 0.95);
}
.stock-page .qty-value.qty-out {
  color: rgba(255, 80, 80, 0.6);
}
.stock-page .last-sold-display {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}
.stock-page .last-sold-date {
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.75);
}
.stock-page .last-sold-days {
  font-size: 10px;
  font-weight: 500;
}
.stock-page .last-sold-days.days-recent {
  color: rgba(73, 211, 158, 0.8);
}
.stock-page .last-sold-days.days-warning {
  color: rgba(251, 191, 36, 0.8);
}
.stock-page .last-sold-days.days-stale {
  color: rgba(255, 180, 100, 0.8);
}
.stock-page .last-sold-days.days-dead {
  color: rgba(255, 100, 80, 0.8);
}
.stock-page .last-sold-empty {
  color: rgba(255, 255, 255, 0.25);
  font-size: 12px;
}
.stock-page .days-left-value {
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.75);
}
.stock-page .days-left-value.days-urgent {
  color: rgba(255, 100, 80, 0.95);
  font-weight: 600;
}
.stock-page .days-left-value.days-warning {
  color: rgba(251, 191, 36, 0.95);
}
.stock-page .days-left-empty {
  color: rgba(255, 255, 255, 0.25);
  font-size: 12px;
}
.stock-page .action-buttons {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
}
.stock-page .cell-actions {
  padding-left: 4px;
  padding-right: 4px;
}
.stock-page .icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 6px;
  color: rgba(255, 255, 255, 0.4);
  cursor: pointer;
  transition: all 0.15s ease;
  opacity: 0;
}
.stock-page .data-row:hover .icon-btn {
  opacity: 1;
}
.stock-page .icon-btn.primary {
  opacity: 1;
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.6);
}
.stock-page .icon-btn mat-icon {
  font-size: 15px;
  width: 15px;
  height: 15px;
}
.stock-page .icon-btn:hover {
  background: rgba(255, 130, 90, 0.15);
  border-color: rgba(255, 130, 90, 0.3);
  color: rgba(255, 200, 160, 0.95);
  transform: translateY(-1px);
}
.stock-page .icon-btn.primary:hover {
  background: rgba(255, 130, 90, 0.2);
  border-color: rgba(255, 130, 90, 0.4);
}
.stock-page .icon-btn:active {
  transform: translateY(0);
}
.stock-page .icon-btn.disabled,
.stock-page .icon-btn.disabled:hover,
.stock-page .icon-btn.primary.disabled,
.stock-page .icon-btn.primary.disabled:hover,
.stock-page .data-row:hover .icon-btn.disabled {
  opacity: 0.36;
  cursor: not-allowed;
  pointer-events: auto;
  background: rgba(255, 255, 255, 0.025);
  border-color: rgba(255, 255, 255, 0.045);
  color: rgba(255, 255, 255, 0.22);
  box-shadow: none;
  transform: none;
}
.stock-page .icon-btn.danger {
  color: rgba(255, 100, 100, 0.6);
}
.stock-page .icon-btn.danger:hover {
  background: rgba(255, 80, 80, 0.15);
  border-color: rgba(255, 80, 80, 0.3);
  color: rgba(255, 120, 120, 0.95);
}
.stock-page .empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 60px 20px;
  text-align: center;
}
.stock-page .empty-icon-v2 {
  font-size: 48px;
  width: 48px;
  height: 48px;
  color: rgba(255, 130, 90, 0.4);
  margin-bottom: 16px;
}
.stock-page .empty-title {
  font-size: 16px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.7);
}
.stock-page .empty-subtitle {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.4);
}
.stock-page .pagination-container {
  margin-top: 16px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 28px;
  backdrop-filter: blur(10px);
  padding: 12px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  transition: all 0.2s ease;
}
.stock-page .pagination-container.clickable {
  cursor: pointer;
}
.stock-page .pagination-container.clickable:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
.stock-page .pagination-container.clickable:active {
  transform: translateY(1px);
}
.stock-page .pagination-container.loading {
  opacity: 0.7;
  cursor: wait;
  pointer-events: none;
}
.stock-page .pagination-info {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.9);
  font-weight: 500;
  flex-shrink: 0;
}
.stock-page .pagination-container .view-more-center {
  display: flex;
  justify-content: center;
  align-items: center;
  flex: 1;
  gap: 12px;
}
.stock-page .pagination-container .view-more-center .divider-line {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.15), transparent);
}
.stock-page .pagination-container .view-more-center .view-more-content {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 16px;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  transition: all 0.2s ease;
}
.stock-page .pagination-container .view-more-center .view-more-content:hover {
  background: rgba(255, 130, 90, 0.12);
  border-color: rgba(255, 130, 90, 0.25);
}
.stock-page .pagination-container .view-more-center .view-more-content .label {
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.8);
  letter-spacing: 0.02em;
}
.stock-page .pagination-container .view-more-center .view-more-content.all-loaded {
  background: transparent;
  border-color: transparent;
  cursor: default;
}
.stock-page .pagination-container .view-more-center .view-more-content.all-loaded .label {
  color: rgba(255, 255, 255, 0.4);
}
.stock-page .pagination-size {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.6);
}
.stock-page .pagination-size select {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  padding: 6px 12px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  cursor: pointer;
  transition: all 0.2s ease;
}
.stock-page .pagination-size select:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.2);
}
.stock-page .pagination-size select:focus {
  outline: none;
  border-color: rgba(255, 130, 90, 0.4);
}
.stock-page .table-section {
  padding: 0;
  overflow: hidden;
  border-radius: 16px;
}
.stock-page .table-scroll {
  overflow: hidden;
}
.stock-page .filter-loading-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  backdrop-filter: blur(4px);
}
.stock-page .stat-filter-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 20px;
  margin-bottom: 16px;
  background: rgba(255, 130, 90, 0.08);
  border: 1px solid rgba(255, 130, 90, 0.2);
  border-radius: 12px;
}
.stock-page .stat-filter-banner__label {
  font-size: 14px;
  font-weight: 500;
  color: rgba(255, 200, 160, 0.95);
}
.stock-page .stat-filter-banner__summary {
  margin-left: 8px;
  color: rgba(255, 255, 255, 0.5);
  font-weight: 400;
}
.stock-page .stat-filter-banner__clear {
  background: transparent;
  border: 1px solid rgba(255, 130, 90, 0.3);
  border-radius: 8px;
  padding: 6px 14px;
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 200, 160, 0.9);
  cursor: pointer;
  transition: all 0.2s ease;
}
.stock-page .stat-filter-banner__clear:hover {
  background: rgba(255, 130, 90, 0.15);
  border-color: rgba(255, 130, 90, 0.4);
}
.stock-page .loading-text {
  color: rgba(255, 255, 255, 0.5);
  font-style: italic;
}
.stock-page .th-with-info {
  display: flex;
  align-items: center;
  gap: 4px;
}
.stock-page .th-info-icon {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.35);
  cursor: help;
}
.stock-page .th-info-icon:hover {
  color: rgba(255, 255, 255, 0.6);
}
.stock-page .ledger-health-bar {
  display: flex;
  align-items: center;
  margin-bottom: 12px;
}
.stock-page .ledger-health-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 14px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 500;
  font-family: var(--ui-font-mono);
  letter-spacing: 0.02em;
  transition: all 0.2s ease;
}
.stock-page .ledger-health-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}
.stock-page .ledger-health-badge.health-ok {
  background: rgba(73, 211, 158, 0.08);
  border: 1px solid rgba(73, 211, 158, 0.2);
  color: rgba(73, 211, 158, 0.85);
}
.stock-page .ledger-health-badge.health-warn {
  background: rgba(251, 191, 36, 0.08);
  border: 1px solid rgba(251, 191, 36, 0.2);
  color: rgba(251, 191, 36, 0.85);
}
.stock-page .ledger-health-badge.health-error {
  background: rgba(255, 80, 80, 0.08);
  border: 1px solid rgba(255, 80, 80, 0.25);
  color: rgba(255, 80, 80, 0.9);
}
.stock-page .ledger-health-label {
  white-space: nowrap;
}

/* ════════════════════════════════════════════════════════════════════════════
   STOCK DETAILS DRAWER — Fixed Overlay
   ════════════════════════════════════════════════════════════════════════════
   The drawer is extracted from the page flow so that mat-sidenav-container's
   overflow:hidden does not break position:sticky on the table card.
   The container covers the viewport as a fixed layer; pointer-events are
   disabled until the drawer is actually opened.
   ════════════════════════════════════════════════════════════════════════════ */
.stock-drawer-overlay.mat-drawer-container {
  position: fixed !important;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1000;
  pointer-events: none;
  background: transparent !important;
}

.stock-drawer-overlay .mat-drawer-backdrop {
  pointer-events: auto;
}

.stock-drawer-overlay .mat-drawer {
  pointer-events: auto;
}

/* When the drawer is open, allow interaction with the full overlay */
.stock-drawer-overlay.mat-drawer-container-has-open {
  pointer-events: auto;
}

/*
 * CONTRACT RULE
 * This file must NOT redefine selectors from:
 *   - ui/layout/*
 *   - ui/controls/*
 *   - ui/headers/*
 * Use scoped overrides only.
 */
/* ==========================================================================
   UI DATA - DATA DISPLAY
   ==========================================================================
   Generic read-only data display patterns for modals and detail views.
   Usage: Apply to label-value pairs in info sections.
   ========================================================================== */
/* ==========================================================================
   INFO GRID — Label-value display layout
   ========================================================================== */
.ui-info-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--ui-space-5) var(--ui-space-4);
}

.ui-info-grid--3 {
  grid-template-columns: repeat(3, 1fr);
}

.ui-info-grid--4 {
  grid-template-columns: repeat(4, 1fr);
}

.ui-info-grid--1 {
  grid-template-columns: 1fr;
}

@media (max-width: 768px) {
  .ui-info-grid,
  .ui-info-grid--3 {
    grid-template-columns: 1fr;
  }
}
/* ==========================================================================
   INFO ITEM — Individual label-value pair
   ========================================================================== */
.ui-info-item {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  min-width: 0;
  padding: 4px 6px;
  border-radius: var(--ui-radius-sm);
  border-left: 3px solid transparent;
  transition: background 0.2s ease, border-color 0.3s ease;
}

/* Click-to-edit: editable state */
.ui-info-item--editable {
  cursor: pointer;
}
.ui-info-item--editable:hover {
  background: rgba(255, 255, 255, 0.03);
}
.ui-info-item--editable .ui-info-edit-hint {
  font-size: 12px !important;
  width: 12px !important;
  height: 12px !important;
  color: rgba(255, 255, 255, 0.2);
  margin-left: 4px;
  vertical-align: middle;
  opacity: 0;
  transition: opacity 0.2s ease;
}
.ui-info-item--editable:hover .ui-info-edit-hint {
  opacity: 1;
}

/* Click-to-edit: lock icon for locked fields */
.ui-info-lock-hint {
  font-size: 11px !important;
  width: 11px !important;
  height: 11px !important;
  color: rgba(255, 160, 100, 0.5);
  margin-left: 4px;
  vertical-align: middle;
}

.ui-info-value--clickable {
  cursor: pointer;
}
.ui-info-value--clickable:hover {
  color: rgba(255, 160, 100, 0.9);
}

/* Click-to-edit: inline input */
.ui-info-inline-input {
  font-size: var(--ui-text-sm);
  font-family: inherit;
  color: var(--ui-text-primary);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 140, 100, 0.3);
  border-radius: var(--ui-radius-sm);
  padding: 4px 8px;
  outline: none;
  width: 100%;
  transition: border-color 0.2s ease;
}
.ui-info-inline-input:focus {
  border-color: rgba(255, 140, 100, 0.6);
  background: rgba(255, 255, 255, 0.08);
}

/* Click-to-edit: save state feedback */
.ui-info-item--saving {
  border-left-color: rgba(255, 200, 100, 0.4);
}

.ui-info-item--synced {
  border-left-color: rgba(74, 222, 128, 0.7);
  animation: headerSyncedFade 1.5s ease-out forwards;
}

@keyframes headerSyncedFade {
  0% {
    border-left-color: rgba(74, 222, 128, 0.7);
  }
  60% {
    border-left-color: rgba(74, 222, 128, 0.4);
  }
  100% {
    border-left-color: transparent;
  }
}
.ui-info-item--fullwidth {
  grid-column: 1/-1;
}

/* ==========================================================================
   INFO LABEL — Field label
   ========================================================================== */
.ui-info-label {
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* ==========================================================================
   INFO VALUE — Field value
   ========================================================================== */
.ui-info-value {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-normal);
  color: var(--ui-text-primary);
  word-break: break-word;
}

/* Variants */
.ui-info-value--mono {
  font-family: var(--ui-font-mono);
}

.ui-info-value--muted {
  color: var(--ui-text-muted);
}

.ui-info-value--success {
  color: var(--ui-success);
}

.ui-info-value--warning {
  color: var(--ui-warning);
}

.ui-info-value--danger {
  color: var(--ui-danger);
}

/* ==========================================================================
   SUBSECTION HEADER — Within-card section titles
   ========================================================================== */
.ui-subsection-header {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
  margin-bottom: var(--ui-space-2);
  margin-top: var(--ui-space-3);
}

.ui-subsection-header mat-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  color: var(--ui-brand-light);
}

/* ==========================================================================
   DIVIDER — Horizontal separator between sections
   ========================================================================== */
.ui-divider {
  height: 1px;
  background: var(--ui-border-light);
  margin: var(--ui-space-4) 0;
}

/* ==========================================================================
   WARNING BADGE — Inline warning indicator
   ========================================================================== */
.warning-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  width: fit-content;
  padding: var(--ui-space-1) var(--ui-space-2);
  background: rgba(251, 191, 36, 0.12);
  border: 1px solid rgba(251, 191, 36, 0.3);
  border-radius: var(--ui-radius-sm);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-medium);
  color: #fbbf24;
}

.warning-badge mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: #fbbf24;
}

/* ==========================================================================
   DATA TABLE — Lightweight table for data display
   ==========================================================================
   Usage: Simple tabular data in modals/cards (e.g., salary history).
   <div class="ui-data-table">
     <div class="ui-data-table__row ui-data-table__row--header">...</div>
     <div class="ui-data-table__row">...</div>
   </div>
   ========================================================================== */
.ui-data-table {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-radius-md);
  overflow: hidden;
}

.ui-data-table__row {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
  background: transparent;
  border-bottom: 1px solid var(--ui-border-subtle);
}

.ui-data-table__row:last-child {
  border-bottom: none;
}

.ui-data-table__row--header {
  background: rgba(255, 255, 255, 0.03);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.ui-data-table__row--highlight {
  background: rgba(255, 130, 90, 0.08);
}

.ui-data-table__cell {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Column variants */
.ui-data-table__row--cols-4 {
  grid-template-columns: repeat(4, 1fr);
}

.ui-data-table__row--cols-3 {
  grid-template-columns: repeat(3, 1fr);
}

/*
 * CONTRACT RULE
 * This file must NOT redefine selectors from:
 *   - ui/layout/*
 *   - ui/controls/*
 *   - ui/headers/*
 * Use scoped overrides only.
 */
/* ==========================================================================
   UI DATA — MODAL TABLE CONTRACT
   ==========================================================================
   Lightweight inline-edit table used inside modals.
   Uses plain <input> and <select> elements (not Material form fields).

   For Material-based input tables, see: data/table-input.scss

   Usage:
     <table class="custom-table">
       <thead><tr><th>...</th></tr></thead>
       <tbody>
         <tr>
           <td><input class="table-input" /></td>
           <td class="action-cell">
             <button class="table-icon-btn">...</button>
           </td>
         </tr>
       </tbody>
     </table>
   ========================================================================== */
/* --------------------------------------------------------------------------
   TABLE STRUCTURE
   -------------------------------------------------------------------------- */
/* OWNER: ui/data/modal-table.scss */
.custom-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 10px;
  overflow: hidden;
  margin: 0 16px 16px;
  width: calc(100% - 32px);
}

.custom-table thead th {
  padding: 14px 12px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.65);
  text-align: left;
  background: rgba(255, 255, 255, 0.06);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.custom-table thead th .th-content {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.custom-table thead th .th-icon {
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
  color: rgba(255, 140, 90, 0.65);
  opacity: 0.8;
}

.custom-table tbody tr {
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  transition: background 0.15s ease;
}

.custom-table tbody tr:hover {
  background: rgba(255, 140, 100, 0.04);
}

.custom-table tbody tr.saved-row {
  background: rgba(74, 222, 128, 0.03);
}

.custom-table tbody tr.dirty-row {
  background: rgba(255, 193, 7, 0.08);
}

/* ── Row auto-save feedback animations (enterprise-grade) ── */
@keyframes row-synced-fade {
  0% {
    background: rgba(74, 222, 128, 0.18);
    box-shadow: inset 0 0 20px rgba(74, 222, 128, 0.15), 0 0 12px rgba(74, 222, 128, 0.1);
    border-left: 3px solid rgba(74, 222, 128, 0.8);
  }
  40% {
    background: rgba(74, 222, 128, 0.08);
    box-shadow: inset 0 0 10px rgba(74, 222, 128, 0.06), 0 0 6px rgba(74, 222, 128, 0.04);
    border-left: 3px solid rgba(74, 222, 128, 0.5);
  }
  100% {
    background: rgba(74, 222, 128, 0.02);
    box-shadow: none;
    border-left: 3px solid transparent;
  }
}
@keyframes row-saving-pulse {
  0%, 100% {
    background: rgba(255, 200, 100, 0.04);
    box-shadow: inset 0 0 8px rgba(255, 200, 100, 0.04);
    border-left: 3px solid rgba(255, 200, 100, 0.3);
  }
  50% {
    background: rgba(255, 200, 100, 0.1);
    box-shadow: inset 0 0 14px rgba(255, 200, 100, 0.08);
    border-left: 3px solid rgba(255, 200, 100, 0.6);
  }
}
.custom-table tbody tr.row-synced {
  animation: row-synced-fade 2s ease-out forwards;
  transition: box-shadow 0.3s ease, background 0.3s ease;
}

.custom-table tbody tr.row-saving {
  animation: row-saving-pulse 1.2s ease-in-out infinite;
  transition: box-shadow 0.3s ease, background 0.3s ease;
}

.custom-table tbody td {
  padding: 10px 12px;
  vertical-align: middle;
}

/* --------------------------------------------------------------------------
   TABLE INPUTS
   -------------------------------------------------------------------------- */
.custom-table .table-input,
.table-input {
  width: 100%;
  height: 34px;
  padding: 0 10px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.9);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 6px;
  box-sizing: border-box;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.table-input:focus {
  outline: none;
  border-color: rgba(255, 140, 100, 0.5);
  background: rgba(255, 255, 255, 0.06);
}

.table-input::placeholder {
  color: rgba(255, 255, 255, 0.35);
}

.table-input.text-right {
  text-align: right;
}

input[type=number].table-input {
  text-align: right;
}

select.table-input {
  cursor: pointer;
  text-align: center;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='rgba(255,255,255,0.5)'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 8px center;
  background-size: 16px;
  padding-right: 28px;
}

/* Payer toggle (Insurance ↔ Customer) – replaces old dep inputs */
.payer-toggle {
  display: inline-flex;
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  overflow: hidden;
  background: rgba(0, 0, 0, 0.25);
  padding: 2px;
  gap: 2px;
  cursor: pointer;
  transition: border-color 0.3s ease;
}

.payer-toggle:hover {
  border-color: rgba(255, 255, 255, 0.2);
}

.payer-toggle .payer-label {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 8px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: rgba(255, 255, 255, 0.3);
  -webkit-user-select: none;
          user-select: none;
  white-space: nowrap;
  border-radius: 16px;
  border: 1px solid transparent;
  transition: background 0.3s ease, color 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.payer-toggle .payer-label mat-icon {
  font-size: 12px !important;
  width: 12px !important;
  height: 12px !important;
  flex-shrink: 0;
}

/* Text inside label — smooth slide in/out */
.payer-toggle .payer-text {
  display: inline-block;
  max-width: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-width 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.25s ease;
  white-space: nowrap;
}

.payer-toggle .payer-text.visible {
  max-width: 80px;
  opacity: 1;
}

/* Active label */
.payer-toggle .payer-label.active {
  background: linear-gradient(135deg, rgba(255, 140, 90, 0.3), rgba(255, 100, 60, 0.2));
  color: #ffb083;
  box-shadow: 0 0 8px rgba(255, 140, 90, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 140, 90, 0.25);
}

/* Customer active colors */
.payer-toggle.customer-active .payer-label.active {
  background: linear-gradient(135deg, rgba(100, 180, 255, 0.3), rgba(70, 150, 230, 0.2));
  color: #8cc4f7;
  box-shadow: 0 0 8px rgba(100, 180, 255, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.08);
  border-color: rgba(100, 180, 255, 0.25);
}

.payer-toggle .payer-label:not(.active):hover {
  color: rgba(255, 255, 255, 0.5);
}

/* Discount group (two inputs joined) */
.discount-group {
  display: flex;
  gap: 4px;
}

.discount-group .table-input:first-child {
  border-radius: 6px 0 0 6px;
  flex: 1;
  min-width: 0;
}

.discount-group select.table-input,
.discount-type-toggle {
  border-radius: 0 6px 6px 0;
  width: 30px;
  min-width: 30px;
  max-width: 30px;
  flex: none;
  height: 34px;
  padding: 0;
  font-size: 14px;
  font-weight: 600;
  text-align: center;
  color: rgba(255, 255, 255, 0.7);
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-left: none;
  cursor: pointer;
  transition: all 0.15s ease;
  appearance: none;
  background-image: none;
}

.discount-type-toggle:hover {
  background: rgba(255, 140, 100, 0.15);
  color: #ffb083;
}

/* ── Package-locked discount state ── */
.discount-group.pkg-locked {
  position: relative;
  border-radius: 6px;
  overflow: hidden;
}

.discount-group.pkg-locked .table-input {
  background: rgba(74, 222, 128, 0.08);
  border-color: rgba(74, 222, 128, 0.25);
  color: #4ade80;
  font-weight: 600;
  cursor: not-allowed;
  border-radius: 6px 0 0 6px;
}

.discount-group.pkg-locked .table-input:focus {
  border-color: rgba(74, 222, 128, 0.25);
}

.pkg-lock-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  max-width: 30px;
  flex: none;
  height: 34px;
  font-size: 14px !important;
  width: 14px !important;
  color: #4ade80;
  background: rgba(74, 222, 128, 0.12);
  border: 1px solid rgba(74, 222, 128, 0.25);
  border-left: none;
  border-radius: 0 6px 6px 0;
}

/* --------------------------------------------------------------------------
   ACTION CELL + ICON BUTTONS
   -------------------------------------------------------------------------- */
.action-cell {
  width: 80px;
  text-align: center;
  white-space: nowrap;
}

.action-cell .table-icon-btn + .table-icon-btn {
  margin-left: 6px;
}

.table-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 0;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 6px;
  color: rgba(255, 255, 255, 0.5);
  cursor: pointer;
  transition: all 0.2s ease;
}

.table-icon-btn:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.9);
}

.table-icon-btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

.table-icon-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.table-icon-btn.green-btn {
  background: rgba(74, 222, 128, 0.15);
  border-color: rgba(74, 222, 128, 0.25);
  color: #4ade80;
}

.table-icon-btn.green-btn:hover:not(:disabled) {
  background: rgba(74, 222, 128, 0.25);
  border-color: rgba(74, 222, 128, 0.4);
}

/* --------------------------------------------------------------------------
   FINAL AMOUNT CELL
   -------------------------------------------------------------------------- */
.final-amount-cell {
  text-align: right;
}

.final-amount {
  font-size: 14px;
  font-weight: 700;
  color: #4ade80;
}

/* --------------------------------------------------------------------------
   STATUS ICONS (inline in table rows)
   -------------------------------------------------------------------------- */
.custom-table .status-icon,
.status-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.status-icon.issued {
  color: #4ade80;
}

.status-icon.pending {
  color: rgba(255, 255, 255, 0.35);
}

/* --------------------------------------------------------------------------
   BILL INLINE ADD ITEM — Row highlight + discount-group for sale-v2 inputs
   -------------------------------------------------------------------------- */
.bill-inline-new-row {
  background: rgba(255, 140, 100, 0.06) !important;
  border-left: 3px solid rgba(255, 140, 100, 0.4);
}

.discount-group .sale-v2-input:first-child {
  border-radius: 6px 0 0 6px;
  flex: 1;
  min-width: 0;
}

/* ── Autocomplete dropdown for bill inline product search ── */
.autocomplete-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  gap: 12px;
}

.autocomplete-item .item-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.autocomplete-item .item-name {
  font-weight: 500;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.9);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.autocomplete-item .item-partno {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
}

.autocomplete-item .item-price {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  flex-shrink: 0;
}

.autocomplete-item .price-value {
  font-weight: 600;
  font-size: 13px;
  color: #4ade80;
}

.autocomplete-item .stock-badge {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #4ade80;
}

.autocomplete-item .stock-badge.no-stock {
  color: #f87171;
}

mat-option.out-of-stock {
  opacity: 0.55;
}

/* ── Locked bill visual state ── */
.bill-locked {
  position: relative;
}
.bill-locked .sale-v2-table-wrap,
.bill-locked table {
  opacity: 0.6;
  pointer-events: none;
  -webkit-user-select: none;
          user-select: none;
  filter: grayscale(0.15);
}
.bill-locked .sale-v2-input,
.bill-locked .sale-v2-select,
.bill-locked .table-input,
.bill-locked select,
.bill-locked button:not(.sale-v2-add-btn) {
  cursor: not-allowed !important;
  pointer-events: none !important;
}
.bill-locked .sale-v2-add-btn,
.bill-locked .sale-v2-save-btn {
  display: none !important;
}

/* ── Lock overlay banner ── */
.bill-locked-overlay {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 20px;
  margin: 0 0 2px;
  border-radius: 6px;
  background: linear-gradient(135deg, rgba(255, 140, 100, 0.08) 0%, rgba(180, 120, 80, 0.04) 100%);
  border: 1px solid rgba(255, 140, 100, 0.15);
  backdrop-filter: blur(8px);
}
.bill-locked-overlay__icon {
  font-size: 20px;
  width: 20px;
  height: 20px;
  color: rgba(255, 160, 100, 0.7);
  animation: lockPulse 2.5s ease-in-out infinite;
}
.bill-locked-overlay__text {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255, 160, 100, 0.85);
}
.bill-locked-overlay__reason {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.4);
  margin-left: auto;
  font-style: italic;
}

@keyframes lockPulse {
  0%, 100% {
    opacity: 0.6;
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(1.1);
  }
}
/*
 * CONTRACT RULE
 * This file must NOT redefine selectors from:
 *   - ui/layout/*
 *   - ui/controls/*
 *   - ui/headers/*
 * Use scoped overrides only.
 */
/* ==========================================================================
   UI DATA — COST SUMMARY
   ==========================================================================
   A financial summary panel showing line items + total.
   Used in service modals and estimation views.

   Usage:
     <div class="financial-summary">
       <div class="cost-item">
         <span>Parts Charges</span>
         <strong>₹ 57,540</strong>
       </div>
       <div class="summary-divider"></div>
       <div class="cost-item total">
         <span>Current Total</span>
         <strong>₹ 57,540</strong>
       </div>
     </div>
   ========================================================================== */
.cost-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.cost-item span {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.6);
}

.cost-item strong {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}

.cost-item.total span {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.8);
}

.cost-item.total strong {
  font-size: 18px;
  font-weight: 700;
  color: #4ade80;
}

.summary-divider {
  height: 1px;
  background: rgba(255, 255, 255, 0.1);
  margin: 4px 0;
}

/* ==========================================================================
   UI DATA — EMPTY STATE
   ==========================================================================
   Centered empty-state placeholder for tables and lists.

   Usage:
     <div class="empty-table-state">
       <mat-icon>inventory_2</mat-icon>
       <span>No parts added yet</span>
     </div>
   ========================================================================== */
.empty-table-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 32px 16px;
  color: rgba(255, 255, 255, 0.35);
}

.empty-table-state mat-icon {
  font-size: 32px;
  width: 32px;
  height: 32px;
  margin-bottom: 8px;
  opacity: 0.6;
}

.empty-table-state span {
  font-size: 13px;
}

/* Carded variant for modal tables */
.empty-table-state--carded {
  margin: 0 16px 16px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.02);
}

/* ==========================================================================
   ACT-0013 — Extended empty-state variants
   ==========================================================================
   Page variant, typed title / subtitle, and optional action button.
   ========================================================================== */
/* Page variant — full-page empty states with larger icon and more breathing room */
.empty-table-state--page {
  padding: var(--ui-space-12) var(--ui-space-8);
}

.empty-table-state--page mat-icon {
  font-size: 48px;
  width: 48px;
  height: 48px;
  margin-bottom: var(--ui-space-4);
}

/* Title */
.empty-table-state .empty-title {
  font-family: var(--ui-font-primary);
  font-size: 15px;
  font-weight: var(--ui-font-medium);
  color: var(--ui-text-muted);
}

/* Subtitle */
.empty-table-state .empty-subtitle {
  font-family: var(--ui-font-primary);
  font-size: 13px;
  color: var(--ui-text-subtle);
  margin-top: var(--ui-space-1);
}

/* Action button — subtle CTA that blends with the empty state */
.empty-table-state .empty-action-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  margin-top: var(--ui-space-4);
  padding: var(--ui-space-2) var(--ui-space-4);
  font-family: var(--ui-font-primary);
  font-size: 13px;
  font-weight: var(--ui-font-medium);
  color: var(--ui-brand);
  background: transparent;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  cursor: pointer;
  transition: background var(--ui-transition-fast), border-color var(--ui-transition-fast);
}

.empty-table-state .empty-action-btn:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
}

.empty-table-state .empty-action-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  margin-bottom: 0;
  opacity: 1;
}

/* ==========================================================================
   9. TABLES (new architecture — loads AFTER data to override)
   ==========================================================================
   Selector Ownership:
   - glass-table.scss → .glass-table, .glass-table-card, .glass-table-scroll, .glass-pagination
   - data-table.scss  → .glass-data-table, .glass-data-table-card, .glass-table-header
   - cell.scss        → .cell-strong, .cell-muted, .glass-status-chip, .claim-pill
   ========================================================================== */
/*
 * CONTRACT RULE
 * This file must NOT redefine selectors from:
 *   - ui/layout/*
 *   - ui/controls/*
 *   - ui/headers/*
 * Use scoped overrides only.
 */
/* ============================================
   GLASS TABLE STRUCTURE — Container & Chrome ONLY
   ============================================
   This file defines HOW the table container LOOKS (structure).

   Contains:
   ✔ Table card container (glass effect)
   ✔ Border radius & shadows
   ✔ Row separators
   ✔ Header row background
   ✔ Hover states (row-level)
   ✔ Scrollbar styling
   ✔ Row spacing

   Does NOT contain:
   ✘ Text colors or font weights
   ✘ Cell semantics (.cell-*)
   ✘ Alignment rules
   ✘ Status colors

   For cell-level styling, see: data-table.scss
   ============================================ */
/* --------------------------------------------
   TABLE CARD CONTAINER
   -------------------------------------------- */
/* OWNER: ui/tables/glass-table.scss */
.glass-table-card {
  position: relative;
  border-radius: var(--gdt-radius, 12px);
  background: var(--gdt-surface, rgba(255, 255, 255, 0.03));
  border: 1px solid var(--gdt-border, rgba(255, 255, 255, 0.1));
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  max-height: 86vh;
  margin: 0;
  padding: 0;
}

/* --------------------------------------------
   TABLE SCROLL WRAPPER
   -------------------------------------------- */
.glass-table-scroll {
  flex: 1;
  overflow-x: auto;
  overflow-y: hidden;
  display: flex;
  flex-direction: column;
}

/* Horizontal scrollbar */
.glass-table-scroll::-webkit-scrollbar {
  height: 6px;
}

.glass-table-scroll::-webkit-scrollbar-track {
  background: transparent;
}

.glass-table-scroll::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.12);
  border-radius: 3px;
}

.glass-table-scroll::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.22);
}

/* --------------------------------------------
   CORE TABLE STRUCTURE
   -------------------------------------------- */
/* OWNER: ui/tables/glass-table.scss */
.glass-table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  min-width: 900px;
  table-layout: fixed;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-table-radius);
  overflow: hidden;
}

/* Header - stays fixed at top */
.glass-table thead {
  display: table;
  width: 100%;
  table-layout: fixed;
  flex-shrink: 0;
  background: rgba(255, 255, 255, 0.06);
  border-top-left-radius: inherit;
  border-top-right-radius: inherit;
  overflow: hidden;
}

.glass-table thead tr {
  display: table-row; /* NOT display:table — that creates a nested table formatting context
   which breaks column width inheritance from the outer thead table.
   display:table-row is the correct value for a row inside a table. */
  width: 100%;
  table-layout: fixed;
}

.glass-table th {
  padding: 16px 14px;
  text-align: left;
  font-size: 11px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.6);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  border-bottom: 1px solid var(--gdt-border-light, rgba(255, 255, 255, 0.08));
}

.glass-table th:first-child {
  padding-left: 20px;
}

.glass-table th:last-child {
  padding-right: 20px;
}

.glass-table thead tr:first-child th:first-child {
  border-top-left-radius: var(--ui-table-radius);
}

.glass-table thead tr:first-child th:last-child {
  border-top-right-radius: var(--ui-table-radius);
}

/* Header content with icon */
.glass-table .th-content {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 10px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.55);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.glass-table .th-content.th-right {
  justify-content: flex-end;
}

.glass-table .th-icon {
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
  color: var(--gdt-accent-light, rgba(255, 130, 90, 0.85));
  opacity: 0.7;
}

/* Body - scrolls independently */
.glass-table tbody {
  display: block;
  flex: 1;
  max-height: calc(86vh - 60px);
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.12) transparent;
}

.glass-table tbody::-webkit-scrollbar {
  width: 6px;
}

.glass-table tbody::-webkit-scrollbar-track {
  background: transparent;
}

.glass-table tbody::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.12);
  border-radius: 3px;
}

.glass-table tbody::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.22);
}

/* --------------------------------------------
   DATA ROWS — Structure only
   -------------------------------------------- */
.glass-table tbody tr,
.glass-table .data-row {
  display: table;
  width: 100%;
  table-layout: fixed;
  transition: background 0.15s ease, box-shadow 0.15s ease;
  cursor: pointer;
  position: relative;
}

.glass-table .data-row:nth-child(even),
.glass-table tbody tr:nth-child(even) {
  background: var(--ui-table-row-even);
}

.glass-table .data-row:hover,
.glass-table tbody tr:hover {
  background: var(--ui-table-row-hover);
  box-shadow: inset 2px 0 0 0 var(--ui-table-row-hover-accent);
}

.glass-table .data-row:active,
.glass-table tbody tr:active {
  background: var(--ui-table-row-active);
  box-shadow: inset 2px 0 0 0 var(--ui-table-row-hover-accent);
}

/* Ghost / cross-tenant rows (read-only context nodes) */
.glass-table .data-row.ghost-row,
.glass-table tbody tr.ghost-row {
  opacity: 0.55;
  border-left: 2px dashed var(--gdt-border, rgba(255, 255, 255, 0.1));
  pointer-events: none;
  cursor: default;
}

.glass-table .data-row.ghost-row td,
.glass-table tbody tr.ghost-row td {
  color: rgba(255, 255, 255, 0.5);
}

.ghost-badge {
  display: inline-flex;
  align-items: center;
  margin-left: 6px;
  padding: 2px 6px;
  border-radius: var(--radius-sm, 6px);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.03em;
  background: rgba(255, 179, 71, 0.12);
  border: 1px solid var(--gdt-border, rgba(255, 255, 255, 0.1));
  color: var(--gdt-accent-light, rgba(255, 130, 90, 0.85));
}

/* -------------------------------------------------------
   LOCKED / FINALIZED TABLE STATE
   Applied to the table-card when payroll (or any entity)
   is finalized / immutable. Conveys "read-only, sealed".
   Usage:  <section class="glass-table-card table--locked">
   ------------------------------------------------------- */
.glass-table-card.table--locked {
  /* Warm amber sealed state — matches bill-locked-overlay aesthetic */
  border-color: rgba(255, 140, 100, 0.18);
  background: linear-gradient(135deg, rgba(255, 140, 100, 0.04) 0%, rgba(180, 120, 80, 0.02) 100%);
  box-shadow: 0 0 0 1px rgba(255, 140, 100, 0.12), 0 12px 40px rgba(0, 0, 0, 0.25);
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
  /* ── Row behavior: completely inert ── */
  /* Kill ALL hover / active feedback */
  /* ── Cell text: gently muted, not invisible ── */
  /* ── Values: slightly dimmed ── */
  /* ── Inputs: fully dead, ghost-like ── */
  /* ── All action buttons: invisible (except payslips row actions + revert) ── */
  /* Payslips row actions stay fully interactive — view/download/mark-paid are read ops */
  /* Revert to Draft button: fully interactive — it's the escape hatch */
  /* Salary breakdown button: dimmed but still clickable */
  /* ── Chips: gently washed out ── */
  /* ── Status pills: slightly muted ── */
  /* ── Header row: very light dim ── */
  /* ── Days column ── */
  /* ── Inline save icons: hidden ── */
}
.glass-table-card.table--locked .glass-table tbody tr,
.glass-table-card.table--locked .glass-table .data-row {
  cursor: default;
  pointer-events: auto; /* still scrollable */
}
.glass-table-card.table--locked .glass-table .data-row:hover,
.glass-table-card.table--locked .glass-table tbody tr:hover,
.glass-table-card.table--locked .glass-table .data-row:active,
.glass-table-card.table--locked .glass-table tbody tr:active {
  background: transparent !important;
  box-shadow: none !important;
}
.glass-table-card.table--locked .glass-table .data-row:nth-child(even):hover, .glass-table-card.table--locked .glass-table .data-row:nth-child(even):active,
.glass-table-card.table--locked .glass-table tbody tr:nth-child(even):hover,
.glass-table-card.table--locked .glass-table tbody tr:nth-child(even):active {
  background: var(--ui-table-row-even) !important;
}
.glass-table-card.table--locked .glass-table td {
  color: rgba(255, 255, 255, 0.6);
}
.glass-table-card.table--locked .cell-primary-name {
  color: rgba(255, 255, 255, 0.7);
}
.glass-table-card.table--locked .cell-primary-sub {
  color: rgba(255, 255, 255, 0.4);
}
.glass-table-card.table--locked .amount-value,
.glass-table-card.table--locked .revenue-amount,
.glass-table-card.table--locked .earnings-amount,
.glass-table-card.table--locked .deductions-amount,
.glass-table-card.table--locked .net-pay-large,
.glass-table-card.table--locked .statutory-amount {
  opacity: 0.75;
}
.glass-table-card.table--locked .statutory-item {
  color: rgba(255, 255, 255, 0.45);
}
.glass-table-card.table--locked input,
.glass-table-card.table--locked select,
.glass-table-card.table--locked textarea {
  pointer-events: none !important;
  opacity: 0.35;
  cursor: not-allowed;
  background: transparent !important;
  border-color: rgba(255, 255, 255, 0.04) !important;
}
.glass-table-card.table--locked button:not(.proration-info-btn-inline):not(.payslips-table__actions *):not(.revert-draft-btn) {
  pointer-events: none;
  opacity: 0.25;
}
.glass-table-card.table--locked .payslips-table__actions button,
.glass-table-card.table--locked .payslips-table__actions .pill-btn-secondary,
.glass-table-card.table--locked .payslips-table__actions .pill-btn-primary,
.glass-table-card.table--locked .payslips-table__actions .ui-icon-btn {
  pointer-events: auto !important;
  opacity: 1 !important;
  filter: none !important;
}
.glass-table-card.table--locked .revert-draft-btn {
  pointer-events: auto !important;
  opacity: 1 !important;
  filter: none !important;
  cursor: pointer !important;
}
.glass-table-card.table--locked .proration-info-btn-inline {
  pointer-events: auto;
  opacity: 0.65;
  filter: none;
}
.glass-table-card.table--locked .proration-info-btn-inline:hover {
  opacity: 1;
}
.glass-table-card.table--locked .advance-chip,
.glass-table-card.table--locked .loan-emi-chip {
  opacity: 0.5;
}
.glass-table-card.table--locked .type-pill {
  opacity: 0.55;
}
.glass-table-card.table--locked .glass-table thead,
.glass-table-card.table--locked .glass-table-split-header {
  opacity: 0.75;
}
.glass-table-card.table--locked .days-separator,
.glass-table-card.table--locked .days-total {
  color: rgba(255, 255, 255, 0.4);
}
.glass-table-card.table--locked .field-label {
  color: rgba(255, 255, 255, 0.35);
}
.glass-table-card.table--locked .inline-save-icon {
  display: none;
}

.glass-table td {
  display: table-cell;
  padding: 12px 10px;
  vertical-align: middle;
  border-bottom: 1px solid var(--gdt-border-subtle, rgba(255, 255, 255, 0.035));
}

.glass-table td:first-child {
  padding-left: 16px;
}

.glass-table td:last-child {
  padding-right: 16px;
}

.glass-table tbody tr:last-child td:first-child {
  border-bottom-left-radius: var(--ui-table-radius);
}

.glass-table tbody tr:last-child td:last-child {
  border-bottom-right-radius: var(--ui-table-radius);
}

/* --------------------------------------------
   RESPONSIVE BREAKPOINTS
   -------------------------------------------- */
@media (max-width: 1200px) {
  .glass-table {
    min-width: 800px;
  }
}
@media (max-width: 640px) {
  .glass-table-card {
    border-radius: 8px;
  }
}
/* --------------------------------------------
   PAGINATION (Structural)
   -------------------------------------------- */
.glass-pagination {
  margin-top: 16px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--gdt-border-light, rgba(255, 255, 255, 0.08));
  border-radius: 28px;
  backdrop-filter: blur(10px);
  padding: 12px 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  transition: all 0.2s ease;
  min-height: 56px;
  position: relative;
}

.glass-pagination.clickable {
  cursor: pointer;
  -webkit-user-select: none;
          user-select: none;
}

.glass-pagination.clickable:hover {
  background: var(--gdt-surface-hover, rgba(255, 255, 255, 0.08));
  border-color: rgba(255, 255, 255, 0.16);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}

.glass-pagination.clickable:active {
  transform: scale(0.995);
  background: rgba(255, 255, 255, 0.1);
}

/* Pagination Info (Left) */
.glass-pagination .pagination-info {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.9);
  font-weight: 500;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  position: relative;
  z-index: 2;
}

.glass-pagination .count-primary {
  color: rgba(255, 255, 255, 0.9);
  font-weight: 600;
}

.glass-pagination .count-separator {
  color: rgba(255, 255, 255, 0.5);
  font-weight: 400;
}

.glass-pagination .count-secondary {
  color: rgba(255, 255, 255, 0.9);
  font-weight: 600;
}

/* View More (Center) */
.glass-pagination .view-more-center {
  /* glass-pagination extends ui-table-pagination, so clear the inherited
     horizontal translate before using a full-width centering rail. */
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  min-width: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  pointer-events: none;
  transform: translateY(-50%);
}

.glass-pagination .divider-line {
  width: 60px;
  height: 1px;
  background: rgba(255, 255, 255, 0.15);
}

.glass-pagination .view-more-content {
  display: flex;
  align-items: center;
  gap: 8px;
  color: rgba(255, 255, 255, 0.85);
  font-size: 13px;
  font-weight: 500;
}

.glass-pagination .view-more-label {
  font-size: 14px;
  letter-spacing: 0.3px;
}

.glass-pagination .view-more-label.muted {
  color: rgba(255, 255, 255, 0.4);
  font-weight: 400;
}

/* Items per page (Right) */
.glass-pagination .pagination-size {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.7);
  flex-shrink: 0;
  z-index: 2;
}

.glass-pagination .pagination-size select {
  background: transparent;
  border: none;
  border-radius: 8px;
  padding: 6px 4px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  cursor: pointer;
  outline: none;
}

.glass-pagination .pagination-size select:hover {
  background: rgba(255, 255, 255, 0.04);
}

.glass-pagination .pagination-size select option {
  background: #1a1a1a;
  color: rgba(255, 255, 255, 0.9);
}

@media (max-width: 640px) {
  .glass-pagination {
    border-radius: 20px;
    padding: 10px 14px;
    flex-wrap: wrap;
    gap: 12px;
  }
  .glass-pagination .view-more-center {
    left: auto;
    right: auto;
    min-width: 100%;
    order: 3;
    position: static;
    top: auto;
    transform: none;
  }
  .glass-pagination .divider-line {
    width: 30px;
  }
}
/* --------------------------------------------
   SORTABLE COLUMN HEADERS
   -------------------------------------------- */
.glass-table th.sortable-th {
  cursor: pointer;
  -webkit-user-select: none;
          user-select: none;
  transition: background 0.15s ease, color 0.15s ease;
}
.glass-table th.sortable-th:hover {
  background: rgba(255, 255, 255, 0.06);
}
.glass-table th.sortable-th:hover .th-content {
  color: rgba(255, 255, 255, 0.85);
}
.glass-table th.sortable-th:active {
  background: rgba(255, 255, 255, 0.1);
}

.glass-table .th-sort-icon {
  font-size: 13px !important;
  width: 13px !important;
  height: 13px !important;
  color: var(--gdt-accent-light, rgba(255, 130, 90, 0.9));
  animation: sort-icon-in 0.15s ease;
  flex-shrink: 0;
}

@keyframes sort-icon-in {
  from {
    opacity: 0;
    transform: translateY(-3px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* --------------------------------------------
   INFINITE SCROLL — Sentinel, dots, end banner
   -------------------------------------------- */
/* Invisible sentinel row inside tbody */
.glass-table .bill-sentinel-row td,
.glass-table .sentinel-row td,
.sentinel-row td {
  padding: 0 !important;
  height: 1px;
  border: none !important;
  background: transparent !important;
}

.sentinel-row:hover {
  background: transparent !important;
}

/* Loading dots */
.bill-scroll-loading {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  padding: 16px 0 8px;
}

.bill-scroll-loading__dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--gdt-accent-light, rgba(255, 130, 90, 0.8));
  animation: scroll-dot-pulse 1.2s ease-in-out infinite;
}
.bill-scroll-loading__dot:nth-child(1) {
  animation-delay: 0s;
}
.bill-scroll-loading__dot:nth-child(2) {
  animation-delay: 0.2s;
}
.bill-scroll-loading__dot:nth-child(3) {
  animation-delay: 0.4s;
}

@keyframes scroll-dot-pulse {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.2;
    transform: scale(0.7);
  }
}
/* End-of-list banner */
.bill-scroll-end {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 20px 10px;
  animation: fade-in-up 0.3s ease;
}

.bill-scroll-end__line {
  flex: 1;
  height: 1px;
  background: rgba(255, 255, 255, 0.08);
}

.bill-scroll-end__label {
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.35);
  white-space: nowrap;
  letter-spacing: 0.04em;
}

@keyframes fade-in-up {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* ── Premium-table header parity inside glass-table-card ── */
.glass-table-card .premium-table thead,
.glass-table-card .premium-table--suppliers thead,
.glass-table-card .premium-table--sales thead {
  background: rgba(255, 255, 255, 0.06);
  position: sticky;
  top: 0;
  z-index: 2;
}

/* ════════════════════════════════════════════════════════════════════════════
   SCROLL-TO-DOCK CONTRACT  [appScrollDock]
   ════════════════════════════════════════════════════════════════════════════
   Activated by ScrollDockDirective (src/app/shared/directives/scroll-dock.directive.ts).
   The directive adds .dock-enabled on init and toggles .table-docked when the
   sibling .erp-header-block exits the .console-content scroll viewport.

   Height budget (applies to all console pages):
      console-content top    48 px from viewport  (topbar height)
      console-content margin  4 px                 (margin-top: 4px)
      sticky top             20 px   (aligned with sidebar margin-top: 10px)
      card internal padding   1 px   (border)
      sidebar bottom-margin  10 px   (sidebar ends 10px from viewport bottom)
      Total offset           83 px   →  max-height: calc(100vh - 83px)

   .dock-enabled  uses --z-sticky (500) so the card stays above normal content
   but below drawers / modals (--z-drawer: 1000).
   ════════════════════════════════════════════════════════════════════════════ */
/* ── ON: dock-enabled table card — sticky within .console-content ── */
.glass-table-card.dock-enabled {
  position: sticky !important;
  top: 20px; /* aligned with sidebar top (margin-top: 10px from console-body) */
  z-index: var(--z-sticky);
  max-height: calc(100vh - 83px);
  /* PERFORMANCE: scope layout/paint work to this subtree */
  contain: layout paint;
  /* PERFORMANCE: disable backdrop-filter — recompositing every scroll frame
     is too expensive with 100+ rows */
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* ── PRE-DOCK: tbody overflow hidden — wheel bubbles to .console-content
       so the page scrolls and the header exits the viewport.
       scrollbar-gutter: stable reserves the scrollbar space from first paint
       so the hidden → auto switch causes zero horizontal layout shift. ── */
.glass-table-card.dock-enabled .glass-table tbody {
  max-height: calc(100vh - 83px - var(--ui-table-header-height));
  overflow-y: hidden;
  scrollbar-gutter: stable;
}

/* ── DOCKED: header exited viewport — enable internal tbody scroll.
       The gutter was already reserved above, so the scrollbar appears
       in-place with no horizontal jerk. ── */
.glass-table-card.dock-enabled.table-docked .glass-table tbody {
  overflow-y: auto;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.12) transparent;
}

.glass-table-card.dock-enabled.table-docked .glass-table tbody::-webkit-scrollbar {
  width: 6px;
}

.glass-table-card.dock-enabled.table-docked .glass-table tbody::-webkit-scrollbar-track {
  background: transparent;
}

.glass-table-card.dock-enabled.table-docked .glass-table tbody::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.12);
  border-radius: 3px;
}

.glass-table-card.dock-enabled.table-docked .glass-table tbody::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.22);
}

/* ── BESPOKE TABLE STRUCTURES (non glass-table namespace) ──
   Covers pages that keep their own table CSS but opt into scroll-to-dock
   via appScrollDock (e.g. stock-list: table-scroll / premium-table).
   The directive adds .dock-enabled + .table-docked; CSS does the rest.

   Key: .table-scroll has overflow:hidden by default (table-grouped.scss).
   When docked we must override the wrapper to allow scroll, then constrain
   the tbody to fill the remaining height.
   ── */
/* ── Not-yet-docked: hide wrapper overflow so wheel bubbles to scroll root ── */
.glass-table-card.dock-enabled .table-scroll,
.glass-table-card.dock-enabled .glass-table-scroll {
  overflow: hidden;
  max-height: calc(100vh - 83px);
  scrollbar-gutter: stable;
}

.glass-table-card.dock-enabled .table-scroll tbody,
.glass-table-card.dock-enabled .glass-table-scroll tbody {
  max-height: calc(100vh - 83px - var(--ui-table-header-height));
  overflow-y: hidden;
  scrollbar-gutter: stable;
}

/* ── Docked: enable internal scroll on the wrapper.
       scrollbar-gutter: stable keeps the space reserved — no horizontal shift. ── */
.glass-table-card.dock-enabled.table-docked .table-scroll,
.glass-table-card.dock-enabled.table-docked .glass-table-scroll {
  overflow: auto;
  max-height: calc(100vh - 83px);
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.12) transparent;
}

.glass-table-card.dock-enabled.table-docked .table-scroll::-webkit-scrollbar,
.glass-table-card.dock-enabled.table-docked .glass-table-scroll::-webkit-scrollbar {
  width: 6px;
}

.glass-table-card.dock-enabled.table-docked .table-scroll::-webkit-scrollbar-track,
.glass-table-card.dock-enabled.table-docked .glass-table-scroll::-webkit-scrollbar-track {
  background: transparent;
}

.glass-table-card.dock-enabled.table-docked .table-scroll::-webkit-scrollbar-thumb,
.glass-table-card.dock-enabled.table-docked .glass-table-scroll::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.12);
  border-radius: 3px;
}

.glass-table-card.dock-enabled.table-docked .table-scroll::-webkit-scrollbar-thumb:hover,
.glass-table-card.dock-enabled.table-docked .glass-table-scroll::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.22);
}

.glass-table-card.dock-enabled.table-docked .table-scroll tbody,
.glass-table-card.dock-enabled.table-docked .glass-table-scroll tbody {
  overflow-y: auto;
  max-height: none;
}

/* ==========================================================================
   TABLE FOOTER ROW — IN-TABLE COUNT + INFINITE-SCROLL INDICATOR
   ==========================================================================
   Enterprise-standard pattern (Odoo/SAP Fiori style):
   A ghost row at the bottom of <tbody> that shows:
     - "Showing X of Y" count — data confidence signal
     - Loading spinner when fetching next page
     - "All loaded" when no more data

   Lives INSIDE the table so it scrolls + docks with the card.
   ========================================================================== */
.table-footer-row td {
  background: transparent !important;
  border: none !important;
  padding: 14px 16px !important;
}

.table-footer-row:hover {
  background: transparent !important;
}

.table-footer-content {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
}

.table-footer-count {
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.45);
  letter-spacing: 0.02em;
}

.table-footer-count strong {
  color: rgba(255, 255, 255, 0.7);
  font-weight: 600;
}

.table-footer-divider {
  width: 1px;
  height: 14px;
  background: rgba(255, 255, 255, 0.1);
  flex-shrink: 0;
}

.table-footer-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.35);
  letter-spacing: 0.03em;
}

.table-footer-status .mat-mdc-progress-spinner {
  --mdc-circular-progress-active-indicator-color: rgba(255, 180, 130, 0.6);
}

.table-footer-status--done {
  color: rgba(255, 255, 255, 0.25);
}

/* ════════════════════════════════════════════════════════════════════════════
   PAGE-SIZE SELECT INSIDE glass-table-header
   Replaces the old glass-pagination bottom bar.
   ════════════════════════════════════════════════════════════════════════════ */
.glass-table-header .pagination-size {
  display: flex;
  align-items: center;
  gap: 8px;
}

.glass-page-size-select,
.glass-table-header .pagination-size select {
  appearance: none;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  color: rgba(255, 255, 255, 0.75);
  cursor: pointer;
  font-family: inherit;
  font-size: 12px;
  font-weight: 500;
  padding: 4px 20px 4px 10px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6 9l6 6 6-6' stroke='rgba(255,255,255,0.45)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 6px center;
  transition: background 0.15s, border-color 0.15s;
}
.glass-page-size-select:hover,
.glass-table-header .pagination-size select:hover {
  background-color: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.22);
}
.glass-page-size-select:focus,
.glass-table-header .pagination-size select:focus {
  outline: none;
  border-color: rgba(255, 180, 120, 0.45);
}
.glass-page-size-select option,
.glass-table-header .pagination-size select option {
  background: #1e1612;
  color: rgba(255, 255, 255, 0.85);
}

/* ════════════════════════════════════════════════════════════════════════════
   STOCK-TABLE — Two-row grouped thead inside glass-table
   ════════════════════════════════════════════════════════════════════════════ */
.glass-table.stock-table thead tr.group-header-row,
.glass-table.stock-table thead tr.column-header-row {
  display: table-row;
}

/* Group header row — same glass background as bills thead, no opaque override */
.glass-table.stock-table thead tr.group-header-row th {
  background: transparent; /* inherits .glass-table thead glass background */
  padding: 7px 12px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border-bottom: none;
}

/* Column header row — same glass, just a subtle top separator */
.glass-table.stock-table thead tr.column-header-row th {
  background: transparent; /* inherits .glass-table thead glass background */
  padding: 10px 12px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: none;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

/* ════════════════════════════════════════════════════════════════════════════
   COL-SIZER-ROW — Hidden first-row column-width anchor
   ════════════════════════════════════════════════════════════════════════════
   In display:table + table-layout:fixed, ONLY the first row's cell widths
   define column widths. The col-sizer-row is the actual first row in thead
   and must remain in the layout flow (not display:none) so the browser uses
   its widths. It is hidden visually: zero height, no padding, no border.
   ════════════════════════════════════════════════════════════════════════════ */
.glass-table thead .col-sizer-row {
  visibility: hidden; /* hidden but still participates in layout */
  height: 0;
  line-height: 0;
  font-size: 0;
}
.glass-table thead .col-sizer-row th {
  padding: 0 !important;
  border: none !important;
  height: 0 !important;
  line-height: 0 !important;
}

/* tbody height — accounts for both header rows */
.glass-table.stock-table tbody {
  max-height: calc(86vh - 110px);
}

/* ════════════════════════════════════════════════════════════════════════════
   CELL-STATUS DISPLAY FIX — glass-table context
   ════════════════════════════════════════════════════════════════════════════
   .glass-table extends .ui-table — so .ui-table .cell-status { display: flex }
   leaks into every glass-table td.cell-status.
   Problem: in a display:table row, a td with display:flex breaks out of the
   table cell model and loses background-color inheritance from its parent tr.
   This causes the "dark box" effect on hover for CRITICAL / ADEQUATE rows.
   Fix: reset cell-status to display:table-cell inside glass-table so it
   inherits row backgrounds correctly.
   ════════════════════════════════════════════════════════════════════════════ */
.glass-table td.cell-status {
  display: table-cell; /* restore table cell context — inherits tr background */
  vertical-align: middle;
  text-align: center;
}

/* ════════════════════════════════════════════════════════════════════════════
   SALARY RISK BADGE  — outstanding advance as % of gross monthly salary
   Used in: HR › Advances list, HR › Loans list (future)
   ════════════════════════════════════════════════════════════════════════════
   Three risk tiers:
     risk-safe  (< 50%)   Muted green  — normal exposure
     risk-warn  (50–75%)  Amber        — elevated, watch-list
     risk-high  (> 75%)   Red          — critical, over-threshold
     risk-na              Muted grey   — salary not configured

   Follows the type-pill pattern (pill-controls.scss) but is intentionally
   separate because it carries a semantic severity meaning, not just a status.
   ════════════════════════════════════════════════════════════════════════════ */
.salary-risk-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 3px 9px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.03em;
  white-space: nowrap;
  transition: opacity 0.15s ease;
  /* ── safe (< 50%) ── */
  /* ── warn (50–75%) ── */
  /* ── high (> 75%) — critical red ── */
  /* ── N/A: salary not configured ── */
}
.salary-risk-badge.risk-safe {
  background: rgba(52, 199, 89, 0.12);
  border: 1px solid rgba(52, 199, 89, 0.22);
  color: #5ad07a;
}
.salary-risk-badge.risk-warn {
  background: rgba(255, 179, 71, 0.12);
  border: 1px solid rgba(255, 179, 71, 0.25);
  color: #ffb347;
}
.salary-risk-badge.risk-high {
  background: rgba(255, 69, 58, 0.13);
  border: 1px solid rgba(255, 69, 58, 0.28);
  color: #ff6b6b;
  /* Subtle pulse to draw attention without being distracting */
  animation: risk-high-pulse 3s ease-in-out infinite;
}
.salary-risk-badge.risk-na {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.3);
  font-size: 14px;
  letter-spacing: 0;
}

@keyframes risk-high-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.7;
  }
}
/* ════════════════════════════════════════════════════════════════════════════
   SESSION-DETAIL EXPANDABLE ROW
   ════════════════════════════════════════════════════════════════════════════
   Click-to-expand detail panel for import session history rows.
   Used in: Finance > Migration > Tally Import Wizard (Previous Imports table)

   Pattern: glass-table row → ng-container + *ngIf detail row
   ════════════════════════════════════════════════════════════════════════════ */
/* ── Expand chevron ── */
.col-expand {
  width: 36px;
}

.session-expand-cell {
  width: 36px;
  text-align: center;
  cursor: pointer;
}

.session-expand-icon {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
  color: rgba(255, 255, 255, 0.35);
  transition: transform 0.2s ease, color 0.2s ease;
}

.session-expand-icon--open {
  transform: rotate(90deg);
  color: rgba(255, 180, 120, 0.8);
}

/* ── Clickable row ── */
.session-row {
  cursor: pointer;
}

/* ── Detail row ── */
.session-detail-row td {
  padding: 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
  background: rgba(255, 255, 255, 0.015);
}

.session-detail {
  padding: 20px 24px 16px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  animation: session-detail-in 0.2s ease;
}

@keyframes session-detail-in {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* ── Section blocks ── */
.session-detail__section {
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}
.session-detail__section:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.session-detail__section--rollback {
  border-left: 3px solid rgba(255, 69, 58, 0.4);
  padding-left: 14px;
  border-radius: 2px;
}

.session-detail__section--warning {
  border-left: 3px solid rgba(255, 179, 71, 0.5);
  padding-left: 14px;
  border-radius: 2px;
  background: rgba(255, 179, 71, 0.04);
}

.session-detail__value--danger {
  color: rgba(255, 69, 58, 0.9);
}

.session-detail__heading {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.45);
  margin: 0 0 10px;
}

/* ── Metric grid ── */
.session-detail__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 10px 24px;
}

.session-detail__metric {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.session-detail__label {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.4);
  font-weight: 500;
}

.session-detail__value {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
  font-variant-numeric: tabular-nums;
}

.session-detail__value--success {
  color: rgba(52, 199, 89, 0.9);
}

.session-detail__value--balanced {
  color: rgba(52, 199, 89, 0.8);
}

/* ── Reason + timestamp ── */
.session-detail__reason {
  margin-top: 8px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.6);
}
.session-detail__reason .session-detail__label {
  margin-right: 6px;
}

.session-detail__timestamp {
  margin-top: 4px;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.3);
  font-style: italic;
}

.session-detail__note {
  margin: 0;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.5);
  line-height: 1.5;
}

@media (max-width: 640px) {
  .session-detail {
    padding: 14px 16px 12px;
  }
  .session-detail__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
/* ============================================================================
   LIST-SHELL CONTRACT — enterprise single-scroll list viewport
   ============================================================================
   Owner: src/ui/tables/list-shell.scss
   Consumed by: .list-shell wrapper on full-page list views.
   Replaces the legacy .dock-enabled / .table-docked two-mode choreography
   with a single scroll container + sticky thead.

   Architecture:
     .list-shell                      ← THE scroll container (only one)
       .erp-header-block              ← scrolls away naturally
       .glass-table-card              ← no position:sticky, no appScrollDock
         table.glass-table
           thead                      ← position:sticky; top:0 inside .list-shell
           tbody                      ← standard flow, no display:block

   Benefits vs legacy dock:
     - Zero overflow toggle → zero horizontal jerk
     - Zero IntersectionObserver → zero flicker at boundary
     - Zero class choreography → zero state to debug
     - One scroll container → keyboard scroll (PgDn/Home/End) works natively
     - scrollbar-gutter: stable → scrollbar space reserved from first paint
   ============================================================================ */
.list-shell {
  /* Fill exactly the available viewport below the console-header */
  --ui-list-viewport-height: calc(100vh - 74px);
  display: block;
  height: var(--ui-list-viewport-height);
  overflow-y: auto;
  overflow-x: hidden;
  /* PERFORMANCE: scope paint work to this subtree.
     NOTE: contain: layout breaks table width calculation — do NOT include it. */
  contain: paint;
  /* Stable scrollbar gutter — space reserved from first paint, no shift ever */
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.15) transparent;
  /* Prevent overscroll from bubbling to the body */
  overscroll-behavior-block: contain;
}

/* ── Scrollbar styling ── */
.list-shell::-webkit-scrollbar {
  width: 8px;
}

.list-shell::-webkit-scrollbar-track {
  background: transparent;
}

.list-shell::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.12);
  border-radius: 4px;
  border: 1px solid transparent;
  background-clip: padding-box;
}

.list-shell::-webkit-scrollbar-thumb:hover {
  background-color: rgba(255, 255, 255, 0.22);
  background-clip: padding-box;
}

/* ── Glass-table-card inside list-shell — no sticky, no dock ── */
.list-shell .glass-table-card {
  position: relative; /* NOT sticky — the shell scrolls, not the card */
  max-height: none; /* card grows naturally with content */
  overflow: visible; /* no internal scroll on the card */
  backdrop-filter: none; /* PERF: no glass blur during scroll */
  -webkit-backdrop-filter: none;
}

/* ── glass-table-scroll wrapper — no scroll, no clip ── */
.list-shell .glass-table-scroll {
  overflow: visible;
  max-height: none;
}

/* ══════════════════════════════════════════════════════════════════════
   TABLE DISPLAY MODEL RESET
   ══════════════════════════════════════════════════════════════════════
   The base .glass-table uses a FLEX model:
     table  → display: flex; flex-direction: column
     thead  → display: table; width: 100%
     thead tr → display: table; width: 100%
     tbody  → display: block; overflow-y: auto

   Inside .list-shell, we need a STANDARD TABLE model so that
   position: sticky works on thead (sticky only works inside a scroll
   container when the element is a proper table-header-group).

   Every display property from the flex model must be reset here.
   ══════════════════════════════════════════════════════════════════════ */
/* Table: standard table layout, full width */
.list-shell .glass-table {
  display: table;
  width: 100%;
  table-layout: fixed;
  overflow: visible; /* override the hidden from flex model */
}

/* Thead: table-header-group (NOT display:table from flex model) + sticky */
.list-shell .glass-table thead {
  display: table-header-group;
  width: auto; /* natural in table context */
  position: sticky;
  top: 0;
  z-index: 2;
  /* Same glass background as bills page */
  background: rgba(255, 255, 255, 0.06);
}

/* Thead rows: table-row (NOT display:table from flex model) */
.list-shell .glass-table thead tr {
  display: table-row;
  width: auto;
}

/* Tbody: table-row-group (NOT display:block from flex model) */
.list-shell .glass-table tbody {
  display: table-row-group;
  max-height: none;
  overflow-y: visible;
  overflow-x: visible;
}

/* Tbody rows: table-row */
.list-shell .glass-table tbody tr {
  display: table-row;
}

/*
 * CONTRACT RULE
 * This file must NOT redefine selectors from:
 *   - ui/layout/*
 *   - ui/controls/*
 *   - ui/headers/*
 * Use scoped overrides only.
 */
/* ============================================
   DATA TABLE SEMANTICS — Cell-level meaning & styling
   ============================================
   This file defines WHAT table cells MEAN (semantics).

   Contains:
   ✔ CSS variables (--gdt-*)
   ✔ Cell patterns (.cell-primary, .cell-stacked, etc.)
   ✔ Text emphasis and alignment
   ✔ Status colors and pills

   Does NOT contain:
   ✘ Container/card styling
   ✘ Layout grids
   ✘ Page-level spacing
   ============================================ */
/* --------------------------------------------
   CSS VARIABLES (Design Tokens)
   -------------------------------------------- */
:root {
  /* Background & Surface */
  --gdt-bg-deep: #0f1012;
  --gdt-surface: rgba(255, 255, 255, 0.03);
  --gdt-surface-hover: rgba(255, 255, 255, 0.08);
  --gdt-border: rgba(255, 255, 255, 0.1);
  --gdt-border-light: rgba(255, 255, 255, 0.08);
  --gdt-border-subtle: rgba(255, 255, 255, 0.035);
  /* Text Colors */
  --gdt-text-strong: rgba(255, 255, 255, 0.95);
  --gdt-text: rgba(255, 255, 255, 0.82);
  --gdt-text-muted: rgba(255, 255, 255, 0.64);
  --gdt-text-faint: rgba(255, 255, 255, 0.45);
  --gdt-text-disabled: rgba(255, 255, 255, 0.35);
  /* Accent Colors */
  --gdt-accent: #ff784f;
  --gdt-accent-light: rgba(255, 130, 90, 0.85);
  --gdt-accent-bg: rgba(255, 130, 90, 0.1);
  --gdt-accent-border: rgba(255, 130, 90, 0.2);
  --gdt-accent-hover: rgba(255, 130, 90, 0.06);
  /* Revenue/Amount */
  --gdt-revenue: #ff6b4a;
  /* Status Colors */
  --gdt-success: rgba(73, 211, 158, 0.95);
  --gdt-success-bg: rgba(73, 211, 158, 0.12);
  --gdt-success-border: rgba(73, 211, 158, 0.25);
  --gdt-warning: rgba(255, 180, 100, 0.95);
  --gdt-warning-bg: rgba(255, 180, 100, 0.12);
  --gdt-warning-border: rgba(255, 180, 100, 0.25);
  --gdt-danger: rgba(255, 100, 80, 0.95);
  --gdt-danger-bg: rgba(255, 100, 80, 0.2);
  --gdt-danger-border: rgba(255, 100, 80, 0.6);
}

/* --------------------------------------------
   LEGACY GLASS DATA TABLES (glass-data-table)
   -------------------------------------------- */
/* OWNER: ui/tables/data-table.scss */
.glass-data-table-card {
  background: var(--ui-glass-light);
  border: 1px solid var(--ui-border);
  box-shadow: var(--ui-shadow-xl);
  border-radius: var(--ui-radius-3xl);
  backdrop-filter: var(--ui-blur-md);
  -webkit-backdrop-filter: var(--ui-blur-md);
  overflow: hidden;
}

.glass-table-header {
  padding: var(--ui-space-8) var(--ui-space-8) var(--ui-space-5);
  margin-bottom: var(--ui-space-4);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-4);
  border-bottom: 1px solid var(--ui-border-light);
  flex-wrap: wrap;
}

.glass-table-header__left,
.glass-table-header-left {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
}

.glass-table-header__titles {
  display: flex;
  flex-direction: column;
  gap: calc(var(--ui-space-1) / 2);
}

.glass-table-header__right {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.glass-table-title {
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.glass-table-title .title-icon {
  font-size: var(--ui-text-md);
  width: var(--ui-text-md);
  height: var(--ui-text-md);
  color: var(--ui-warning);
}

.glass-table-title .title-icon.warning {
  color: var(--ui-warning);
}

.glass-table-meta {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.glass-table-wrap {
  padding: 0 var(--ui-space-8) var(--ui-space-8);
  overflow-x: auto;
}

.glass-table-wrap .glass-data-table {
  border-radius: var(--ui-table-radius);
  overflow: hidden;
}

/* OWNER: ui/tables/data-table.scss */
.glass-data-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid var(--ui-border-light);
  border-radius: var(--ui-table-radius);
  color: var(--ui-text-secondary);
  font-size: var(--ui-table-cell-font);
}

.glass-data-table thead tr:first-child th:first-child {
  border-top-left-radius: var(--ui-table-radius);
}

.glass-data-table thead tr:first-child th:last-child {
  border-top-right-radius: var(--ui-table-radius);
}

.glass-data-table tbody tr:last-child td:first-child {
  border-bottom-left-radius: var(--ui-table-radius);
}

.glass-data-table tbody tr:last-child td:last-child {
  border-bottom-right-radius: var(--ui-table-radius);
}

.glass-data-table th,
.glass-data-table td {
  padding: var(--ui-space-4) var(--ui-space-4);
  text-align: left;
  border-bottom: 1px solid var(--ui-table-row-border);
  vertical-align: middle;
}

.glass-data-table th {
  font-size: var(--ui-table-header-font);
  text-transform: uppercase;
  letter-spacing: var(--ui-table-header-spacing);
  color: var(--ui-table-header-color);
  background: var(--ui-table-header-bg);
  font-weight: var(--ui-table-header-weight);
  position: sticky;
  top: 0;
  z-index: var(--z-sticky);
  backdrop-filter: var(--ui-blur-sm);
}

.glass-data-table th:first-child,
.glass-data-table td:first-child {
  padding-left: var(--ui-table-cell-padding-edge);
}

.glass-data-table th:last-child,
.glass-data-table td:last-child {
  padding-right: var(--ui-table-cell-padding-edge);
}

.glass-data-table tbody tr {
  transition: background var(--ui-transition-base);
}

.glass-data-table tbody tr:hover {
  background: var(--ui-table-row-hover);
}

.glass-data-table tbody tr.clickable-row {
  cursor: pointer;
}

.glass-data-table tbody tr.selected {
  background: var(--ui-table-row-active);
}

.glass-data-table .th-checkbox,
.glass-data-table .td-checkbox {
  width: var(--ui-space-12);
  text-align: center;
}

/* Table header content wrapper - for icon + text layouts */
.glass-data-table .th-content {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
}

.glass-data-table .th-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  opacity: 0.7;
  flex-shrink: 0;
}

/* Right-aligned headers - use text-align for proper data alignment */
.glass-data-table th.text-right {
  text-align: right;
}

.glass-data-table th.text-right .th-content {
  justify-content: flex-end;
  display: inline-flex;
  /* Keep it inline so text-align works */
}

/* Right-aligned cells */
.glass-data-table td.text-right {
  text-align: right;
}

/* Input fields in table cells */
.glass-data-table td input,
.glass-data-table td input.transparent-input,
.glass-data-table td input.fill-input,
.glass-data-table td input.blank-input {
  background: transparent;
  border: none;
  color: var(--ui-text-primary);
  font-size: var(--ui-table-cell-font);
  font-weight: var(--ui-font-medium);
  padding: var(--ui-space-3);
  width: 100%;
  outline: none;
  font-family: var(--ui-font-primary);
}

.glass-data-table td input::placeholder {
  color: var(--ui-text-subtle);
  opacity: 0.6;
}

.glass-data-table td input:hover {
  background: rgba(255, 255, 255, 0.02);
}

.glass-data-table td input:focus {
  background: rgba(255, 255, 255, 0.04);
  outline: none;
}

.glass-data-table td input:disabled,
.glass-data-table td input[readonly] {
  color: var(--ui-text-muted);
  cursor: not-allowed;
}

/* Currency input wrapper - perfect right alignment */
.glass-data-table .currency-input {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 2px;
  width: 100%;
}

.glass-data-table .currency-symbol {
  color: var(--ui-text-muted);
  font-size: var(--ui-table-cell-font);
  font-weight: var(--ui-font-medium);
  flex-shrink: 0;
}

.glass-data-table .currency-input input {
  text-align: left;
  width: 80px;
  /* Fixed width for perfect alignment */
  flex-shrink: 0;
}

/* Column widths */
.glass-data-table th:nth-child(2),
.glass-data-table td:nth-child(2) {
  min-width: 200px;
  /* SERVICE NAME column */
}

/* Supplier detail bills table: force stable column allocation in modal context */
.cdk-overlay-pane.supplier-detail-modal-panel .ui-table.supplier-bills-table, .cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.glass-table, .cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.premium-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
}

.cdk-overlay-pane.supplier-detail-modal-panel .ui-table.supplier-bills-table th, .cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.glass-table th, .cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.premium-table th,
.cdk-overlay-pane.supplier-detail-modal-panel .ui-table.supplier-bills-table td,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.glass-table td,
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.premium-table td {
  color: var(--ui-text-secondary);
  overflow: hidden;
  text-overflow: ellipsis;
}

.cdk-overlay-pane.supplier-detail-modal-panel .ui-table.supplier-bills-table th:nth-child(1), .cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.glass-table th:nth-child(1), .cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.premium-table th:nth-child(1),
.cdk-overlay-pane.supplier-detail-modal-panel .ui-table.supplier-bills-table td:nth-child(1),
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.glass-table td:nth-child(1),
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.premium-table td:nth-child(1) {
  width: 8%;
}

.cdk-overlay-pane.supplier-detail-modal-panel .ui-table.supplier-bills-table th:nth-child(2), .cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.glass-table th:nth-child(2), .cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.premium-table th:nth-child(2),
.cdk-overlay-pane.supplier-detail-modal-panel .ui-table.supplier-bills-table td:nth-child(2),
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.glass-table td:nth-child(2),
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.premium-table td:nth-child(2) {
  width: 16%;
  white-space: nowrap;
}

.cdk-overlay-pane.supplier-detail-modal-panel .ui-table.supplier-bills-table th:nth-child(3), .cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.glass-table th:nth-child(3), .cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.premium-table th:nth-child(3),
.cdk-overlay-pane.supplier-detail-modal-panel .ui-table.supplier-bills-table td:nth-child(3),
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.glass-table td:nth-child(3),
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.premium-table td:nth-child(3) {
  width: 26%;
}

.cdk-overlay-pane.supplier-detail-modal-panel .ui-table.supplier-bills-table th:nth-child(4), .cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.glass-table th:nth-child(4), .cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.premium-table th:nth-child(4),
.cdk-overlay-pane.supplier-detail-modal-panel .ui-table.supplier-bills-table td:nth-child(4),
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.glass-table td:nth-child(4),
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.premium-table td:nth-child(4) {
  width: 16%;
  white-space: nowrap;
}

.cdk-overlay-pane.supplier-detail-modal-panel .ui-table.supplier-bills-table th:nth-child(5), .cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.glass-table th:nth-child(5), .cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.premium-table th:nth-child(5),
.cdk-overlay-pane.supplier-detail-modal-panel .ui-table.supplier-bills-table td:nth-child(5),
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.glass-table td:nth-child(5),
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.premium-table td:nth-child(5) {
  width: 18%;
  white-space: nowrap;
}

.cdk-overlay-pane.supplier-detail-modal-panel .ui-table.supplier-bills-table th:nth-child(6), .cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.glass-table th:nth-child(6), .cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.premium-table th:nth-child(6),
.cdk-overlay-pane.supplier-detail-modal-panel .ui-table.supplier-bills-table td:nth-child(6),
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.glass-table td:nth-child(6),
.cdk-overlay-pane.supplier-detail-modal-panel .supplier-bills-table.premium-table td:nth-child(6) {
  width: 16%;
  white-space: nowrap;
}

/* Additional margin on table element itself for double-wrapped scenarios */
.glass-data-table {
  margin-top: 0;
  /* Reset - parent handles it */
}

/* ── Package Row — distinct highlight for package-type services ── */
.glass-data-table tbody tr.row--package {
  background: linear-gradient(90deg, rgba(16, 185, 129, 0.12) 0%, rgba(16, 185, 129, 0.04) 40%, transparent 100%);
  border-left: 3px solid #10b981;
  position: relative;
}

.glass-data-table tbody tr.row--package td:first-child {
  border-left: 3px solid #10b981;
}

.glass-data-table tbody tr.row--package:hover {
  background: linear-gradient(90deg, rgba(16, 185, 129, 0.18) 0%, rgba(16, 185, 129, 0.08) 40%, rgba(255, 255, 255, 0.04) 100%);
}

.glass-data-table tbody tr.row--package td {
  border-bottom-color: rgba(16, 185, 129, 0.15);
}

/* Package Badge Pill */
.pkg-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 12px;
  border-radius: var(--ui-radius-full, 999px);
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.2) 0%, rgba(16, 185, 129, 0.1) 100%);
  border: 1px solid rgba(16, 185, 129, 0.4);
  color: #34d399;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  box-shadow: 0 0 12px rgba(16, 185, 129, 0.15);
  white-space: nowrap;
}

.pkg-badge mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  color: #34d399;
}

/* ── Compact Package Badge ── */
.pkg-badge--compact {
  padding: 2px 8px;
  font-size: 10px;
  gap: 3px;
}

.pkg-badge--compact mat-icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}

/* ── Service Cell (name + badge) ── */
.glass-data-table .service-cell {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.glass-data-table .service-cell input {
  padding-bottom: 0;
}

/* ── Source Badge (Added by Customer / Employee) ── */
.source-badge {
  margin-top: 4px;
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 999px;
  width: fit-content;
  font-weight: 500;
  letter-spacing: 0.2px;
  line-height: 1.4;
  cursor: default;
}

.source-badge--customer {
  background: rgba(255, 149, 0, 0.12);
  color: #ff9500;
}

.source-badge--employee {
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.65);
}

.service-completed-meta {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 2px;
  font-size: 11px;
  color: #34c759;
  font-weight: 500;
}
.service-completed-meta .completed-icon {
  font-size: 13px;
  width: 13px;
  height: 13px;
  line-height: 13px;
  color: #34c759;
}

.glass-data-table tr.row--completed {
  background: rgba(52, 199, 89, 0.06);
}
.glass-data-table tr.row--completed:hover {
  background: rgba(52, 199, 89, 0.1);
}
.glass-data-table tr.row--completed td {
  border-bottom-color: rgba(52, 199, 89, 0.12);
}

/* ── Cost Breakdown (stacked Labour / Parts / Others) ── */
.cost-breakdown {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: 12px;
  min-width: 140px;
}

.cost-breakdown > div {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--ui-space-3, 8px);
}

.cost-breakdown .cost-label {
  color: rgba(255, 255, 255, 0.55);
  font-weight: 400;
  font-size: 11px;
}

.cost-breakdown .cost-value {
  color: rgba(255, 255, 255, 0.92);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}

/* ── Net Amount (total + discount) ── */
.net-amount {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
}

.net-amount .total {
  font-size: 16px;
  font-weight: 600;
  color: var(--ui-text-primary, rgba(255, 255, 255, 0.95));
  font-variant-numeric: tabular-nums;
}

.net-amount .discount {
  font-size: 12px;
  font-weight: 500;
  color: #ff4d4f;
  letter-spacing: 0.01em;
}

/* ── Action Stack (claim + delete vertically) ── */
.action-stack {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

.icon-btn--sm {
  width: 28px !important;
  height: 28px !important;
  padding: 0 !important;
}

.icon-btn--sm mat-icon {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
}

/* Checkbox visual styling for glass tables */
.glass-data-table-card .mat-mdc-checkbox,
.glass-data-table .mat-mdc-checkbox {
  --mdc-checkbox-unselected-icon-color: rgba(255, 255, 255, 0.4);
  --mdc-checkbox-selected-icon-color: var(--ui-brand);
  --mdc-checkbox-selected-checkmark-color: white;
  --mdc-checkbox-unselected-hover-icon-color: rgba(255, 255, 255, 0.6);
  --mdc-checkbox-selected-hover-icon-color: var(--ui-brand-light);
  --mdc-checkbox-disabled-selected-icon-color: rgba(255, 255, 255, 0.2);
  --mdc-checkbox-disabled-unselected-icon-color: rgba(255, 255, 255, 0.15);
}

.glass-data-table-card .mat-mdc-checkbox .mdc-checkbox__background,
.glass-data-table .mat-mdc-checkbox .mdc-checkbox__background {
  border-radius: var(--ui-radius-sm);
}

.glass-data-table-card .mat-mdc-checkbox.mat-mdc-checkbox-checked .mdc-checkbox__background,
.glass-data-table .mat-mdc-checkbox.mat-mdc-checkbox-checked .mdc-checkbox__background {
  background-color: var(--ui-brand);
  border-color: var(--ui-brand);
  box-shadow: 0 0 8px rgba(255, 122, 64, 0.4);
}

.glass-data-table-card .mat-mdc-checkbox .mat-mdc-checkbox-ripple,
.glass-data-table .mat-mdc-checkbox .mat-mdc-checkbox-ripple {
  display: none;
}

.glass-data-table .no-data {
  color: var(--ui-text-muted);
}

.glass-data-table-card .empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: var(--ui-space-8) var(--ui-space-4);
  gap: var(--ui-space-3);
}

.glass-data-table-card .empty-state .empty-icon-success,
.glass-data-table-card .empty-state mat-icon {
  font-size: var(--ui-space-10);
  width: var(--ui-space-10);
  height: var(--ui-space-10);
  color: var(--ui-success);
  opacity: 0.6;
}

.glass-data-table-card .empty-state .empty-title {
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
}

.glass-data-table-card .empty-state .empty-subtitle {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

/* --------------------------------------------
   TABLE HEADER ALIASES (table-header)
   -------------------------------------------- */
.table-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  flex-wrap: wrap;
  padding: var(--ui-space-4) var(--ui-space-5);
  border-bottom: 1px solid var(--ui-border-light);
}

.table-header.table-header--no-divider {
  border-bottom: 0;
}

.table-title-block {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
  /* Vertical stacking modifier for modal tables */
}
.table-title-block.is-stacked {
  flex-direction: column;
  align-items: flex-start;
  gap: var(--ui-space-1);
}

.table-title-block h3 {
  margin: 0;
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.table-count {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.table-actions {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  flex-wrap: wrap;
}

.table-header-actions {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  flex-wrap: wrap;
}

.table-header .eyebrow {
  margin: 0;
  font-size: var(--ui-text-xs);
  letter-spacing: 0.12em;
  color: var(--ui-text-muted);
  text-transform: uppercase;
}

.table-header h3 {
  margin: var(--ui-space-1) 0 0 0;
  font-size: var(--ui-text-lg);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-primary);
}

.table-meta {
  font-size: var(--ui-text-sm);
  color: var(--ui-text-muted);
}

.table-wrap {
  padding: 0 var(--ui-space-6) var(--ui-space-6);
  overflow-x: auto;
}

.pill-select-shell {
  min-width: 220px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: 0 var(--ui-space-4);
  border-radius: var(--ui-radius-full);
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border-light);
}

.package-empty-state {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.02em;
}

.package-empty-state .empty-icon {
  font-size: var(--ui-text-sm);
  width: var(--ui-text-sm);
  height: var(--ui-text-sm);
  opacity: 0.6;
}

.option-pill {
  margin-left: var(--ui-space-2);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.services-table-card,
.issue-table-card {
  padding: 0;
  overflow: hidden;
}

.issue-table {
  --ui-table-max-height: calc(100vh - 500px);
}

.table-empty {
  padding: var(--ui-space-8) var(--ui-space-6);
  text-align: center;
  color: var(--ui-text-muted);
  border: 1px dashed var(--ui-border-light);
  border-radius: var(--ui-radius-lg);
  background: var(--ui-surface-1);
}

.empty-table-state {
  padding: var(--ui-space-8) var(--ui-space-6);
  text-align: center;
  color: var(--ui-text-muted);
  border: 1px dashed var(--ui-border-light);
  border-radius: var(--ui-radius-lg);
  background: var(--ui-surface-1);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ui-space-2);
}

.empty-table-state mat-icon {
  font-size: var(--ui-space-8);
  width: var(--ui-space-8);
  height: var(--ui-space-8);
  color: var(--ui-text-muted);
}

/* Table input fields */
.table-input {
  width: 100%;
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--ui-radius-sm);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-1);
  color: var(--ui-text-primary);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  transition: var(--ui-transition-base);
}

.table-input:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
}

.table-input:focus {
  outline: none;
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-focus);
  box-shadow: 0 0 0 3px rgba(255, 126, 64, 0.12);
}

.table-input::placeholder {
  color: var(--ui-text-subtle);
}

.table-input:disabled,
.table-input[readonly] {
  background: var(--ui-surface-2);
  color: var(--ui-text-muted);
  cursor: not-allowed;
}

select.table-input {
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--ui-text-muted) 50%), linear-gradient(135deg, var(--ui-text-muted) 50%, transparent 50%);
  background-position: calc(100% - 14px) calc(50% - 2px), calc(100% - 9px) calc(50% - 2px);
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  padding-right: var(--ui-space-8);
}

.transparent-input {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: var(--ui-space-2) 0;
  border-radius: 0;
  pointer-events: none;
}

.frosted-input {
  background: var(--ui-surface-1);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  color: var(--ui-text-primary);
  padding: var(--ui-space-2) var(--ui-space-3);
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-medium);
  width: 100%;
  backdrop-filter: var(--ui-blur-sm);
  -webkit-backdrop-filter: var(--ui-blur-sm);
  pointer-events: none;
}

/* --------------------------------------------
   CELL PATTERNS - PRIMARY (Name + Subtitle)
   -------------------------------------------- */
.glass-table .cell-primary {
  display: block;
}

.glass-table .cell-primary-name {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--gdt-text-strong);
  line-height: 1.4;
  margin-bottom: 2px;
}

.glass-table .cell-primary-name--clickable {
  cursor: pointer;
  transition: color 0.15s ease;
}

.glass-table .cell-primary-name--clickable:hover {
  color: var(--gdt-accent-light, rgb(255, 150, 100));
  text-decoration: underline;
  text-underline-offset: 2px;
}

.glass-table .cell-primary-sub {
  display: block;
  font-family: var(--ui-font-mono);
  font-size: 10px;
  color: var(--gdt-text-faint);
  letter-spacing: 0.03em;
}

/* Stale row indicator icon */
.glass-table .stale-row-icon {
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
  color: var(--gdt-warning, #fbbf24);
  margin-left: 4px;
  vertical-align: middle;
}

/* --------------------------------------------
   CELL PATTERNS - CHIP (Vehicle, Category, etc.)
   -------------------------------------------- */
.glass-table .cell-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 10px;
  background: var(--gdt-accent-bg);
  border: 1px solid var(--gdt-accent-border);
  border-radius: 6px;
}

.glass-table .cell-chip-icon {
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
  color: var(--gdt-accent-light);
  flex-shrink: 0;
}

.glass-table .cell-chip-text {
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 200, 160, 0.95);
  line-height: 1.2;
}

/* --------------------------------------------
   CELL PATTERNS - STACKED (Multiple lines)
   -------------------------------------------- */
.glass-table .cell-stacked {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-start;
  padding-top: 6px;
  padding-bottom: 6px;
}

.glass-table .cell-stacked-primary {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.85);
}

/* --------------------------------------------
   CELL PATTERNS - TIMELINE
   -------------------------------------------- */
.glass-table .cell-timeline {
  padding-top: 6px;
  padding-bottom: 6px;
}

.glass-table .timeline-wrapper {
  display: flex;
  flex-direction: column;
  gap: 4px;
  position: relative;
  padding-left: 10px;
}

.glass-table .timeline-wrapper::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 5px;
  bottom: 5px;
  width: 2px;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0.2), rgba(255, 100, 80, 0.5));
  border-radius: 1px;
}

.glass-table .timeline-item {
  display: flex;
  align-items: center;
  gap: 6px;
  position: relative;
}

.glass-table .timeline-item::before {
  content: "";
  position: absolute;
  left: -10px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  border: 1.5px solid rgba(255, 255, 255, 0.3);
  background: #1a1a1a;
}

.glass-table .timeline-item.highlight::before {
  border-color: var(--gdt-danger-border);
  background: var(--gdt-danger-bg);
}

.glass-table .timeline-label {
  font-size: 8px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.4);
  min-width: 48px;
}

.glass-table .timeline-date {
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.85);
}

.glass-table .timeline-date.highlight {
  color: var(--gdt-danger);
  font-weight: 600;
}

/* --------------------------------------------
   CELL PATTERNS - TYPE/STATUS PILLS
   -------------------------------------------- */
.glass-table .type-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 3px 10px;
  border-radius: 12px;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.glass-table .type-pill.success {
  background: var(--gdt-success-bg);
  border: 1px solid var(--gdt-success-border);
  color: var(--gdt-success);
}

.glass-table .type-pill.warning {
  background: var(--gdt-warning-bg);
  border: 1px solid var(--gdt-warning-border);
  color: var(--gdt-warning);
}

.glass-table .type-pill.danger {
  background: var(--gdt-danger-bg);
  border: 1px solid var(--gdt-danger-border);
  color: var(--gdt-danger);
}

/* --------------------------------------------
   CELL PATTERNS - REVENUE/AMOUNT
   -------------------------------------------- */
.glass-table .cell-revenue {
  padding-right: 20px !important;
}

.glass-table .revenue-amount {
  font-size: 15px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--gdt-revenue);
  white-space: nowrap;
}

.glass-table .revenue-amount.zero {
  color: var(--gdt-text-disabled);
}

/* --------------------------------------------
   CELL PATTERNS - META/REASON
   -------------------------------------------- */
.glass-table .cell-meta {
  padding-right: 16px !important;
}

.glass-table .meta-wrapper {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.glass-table .meta-label {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  font-weight: 600;
  color: var(--gdt-accent-light);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.glass-table .meta-label-icon {
  font-size: 12px !important;
  width: 12px !important;
  height: 12px !important;
  color: rgba(255, 130, 90, 0.7);
}

.glass-table .meta-text {
  display: block;
  font-size: 12px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.4;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* --------------------------------------------
   TEXT ALIGNMENT UTILITIES
   -------------------------------------------- */
.glass-table .text-right {
  text-align: right !important;
}

.glass-table .text-center {
  text-align: center !important;
}

/* --------------------------------------------
   PAYROLL-SPECIFIC CELL PATTERNS
   -------------------------------------------- */
/* Days Display */
.glass-table .days-primary {
  display: inline-flex;
  align-items: baseline;
  gap: 2px;
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
}

.glass-table .days-primary.days-warning {
  color: var(--gdt-warning);
}

.glass-table .days-separator {
  color: rgba(255, 255, 255, 0.35);
  font-weight: 300;
}

.glass-table .days-total {
  font-size: 13px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.55);
}

.glass-table .days-lwp {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  color: var(--gdt-warning);
  margin-top: 2px;
}

.glass-table .lwp-label {
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  opacity: 0.8;
}

.glass-table .lwp-value {
  font-weight: 600;
}

/* Payable Days Inline Input */
.glass-table .payable-days-input-inline {
  width: 45px;
  padding: 2px 4px;
  border: 1px solid transparent;
  border-radius: 4px;
  background: transparent;
  color: rgba(255, 255, 255, 0.95);
  font-size: 14px;
  font-weight: 600;
  text-align: center;
  transition: all 0.15s ease;
  appearance: textfield;
  -moz-appearance: textfield;
  -webkit-appearance: textfield;
}

.glass-table .payable-days-input-inline::-webkit-inner-spin-button,
.glass-table .payable-days-input-inline::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.glass-table .payable-days-input-inline:hover:not(:disabled) {
  border-color: rgba(255, 130, 90, 0.3);
  background: rgba(255, 130, 90, 0.08);
}

.glass-table .payable-days-input-inline:focus {
  outline: none;
  border-color: var(--gdt-accent);
  background: rgba(255, 130, 90, 0.12);
}

.glass-table .payable-days-input-inline.input-warning {
  color: var(--gdt-warning);
}

.glass-table .payable-days-input-inline.input-edited {
  border-color: rgba(73, 211, 158, 0.4);
  background: rgba(73, 211, 158, 0.08);
}

.glass-table .payable-days-input-inline:disabled {
  opacity: 0.7;
  cursor: default;
  border-color: transparent;
  background: transparent;
}

/* Inline Save Icon */
.glass-table .inline-save-icon {
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
  color: var(--gdt-success);
  cursor: pointer;
  margin-left: 4px;
  transition: transform 0.15s ease;
}

.glass-table .inline-save-icon:hover {
  transform: scale(1.2);
}

/* Earnings Display */
.glass-table .earnings-gross {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
}

.glass-table .earnings-amount {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.82);
}

.glass-table .earnings-bonus {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
}

.glass-table .earnings-bonus .field-label {
  color: rgba(255, 255, 255, 0.5);
  font-size: 10px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.glass-table .earnings-bonus.has-value .field-label {
  color: var(--gdt-success);
}

/* Compact Adjustment Inputs */
.glass-table .adjustment-input-compact {
  width: 48px;
  padding: 3px 6px;
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.85);
  font-size: 12px;
  font-weight: 500;
  text-align: right;
  transition: all 0.15s ease;
  appearance: textfield;
  -moz-appearance: textfield;
  -webkit-appearance: textfield;
}

.glass-table .adjustment-input-compact::-webkit-inner-spin-button,
.glass-table .adjustment-input-compact::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.glass-table .adjustment-input-compact:hover:not(:disabled) {
  border-color: rgba(255, 130, 90, 0.3);
}

.glass-table .adjustment-input-compact:focus {
  outline: none;
  border-color: var(--gdt-accent);
  background: rgba(255, 130, 90, 0.08);
}

.glass-table .adjustment-input-compact.has-value {
  border-color: rgba(73, 211, 158, 0.3);
  color: var(--gdt-success);
}

.glass-table .adjustment-input-compact:disabled {
  opacity: 0.6;
  cursor: default;
}

/* Editable Field Container */
.glass-table .editable-field {
  display: flex;
  align-items: center;
  gap: 6px;
}

.glass-table .editable-field .adjustment-value {
  font-size: 12px;
  font-weight: 500;
  color: var(--gdt-success);
}

/* Deductions Display */
.glass-table .deductions-total {
  margin-bottom: 4px;
}

.glass-table .deductions-amount {
  font-size: 14px;
  font-weight: 600;
  color: var(--gdt-danger);
}

.glass-table .deductions-details {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.glass-table .deduction-item {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.55);
}

.glass-table .deduction-item.has-value {
  color: rgba(255, 255, 255, 0.75);
}

/* Statutory Display */
.glass-table .statutory-total {
  margin-bottom: 4px;
}

.glass-table .statutory-amount {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
}

.glass-table .statutory-na {
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.35);
  font-style: italic;
}

.glass-table .statutory-details {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.glass-table .statutory-item {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.55);
}

/* Net Pay Display */
.glass-table .net-pay-highlight {
  font-size: 15px;
  font-weight: 700;
  color: var(--gdt-success);
}

.glass-table .net-pay-highlight.zero {
  color: var(--gdt-text-disabled);
}

/* Amount Value Generic */
.glass-table .amount-value {
  font-variant-numeric: tabular-nums;
}

/* Proration Info Button */
.glass-table .proration-info-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 6px;
  background: rgba(255, 130, 90, 0.1);
  border: 1px solid rgba(255, 130, 90, 0.25);
  border-radius: 4px;
  color: var(--gdt-accent-light);
  font-size: 9px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  cursor: pointer;
  transition: all 0.15s ease;
}

.glass-table .proration-info-btn:hover {
  background: rgba(255, 130, 90, 0.18);
  border-color: rgba(255, 130, 90, 0.4);
}

.glass-table .proration-info-btn mat-icon {
  font-size: 12px !important;
  width: 12px !important;
  height: 12px !important;
}

/* Advance/Loan Chips */
.glass-table .advance-chip {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  background: rgba(255, 180, 80, 0.15);
  border: 1px solid rgba(255, 180, 80, 0.25);
  border-radius: 20px;
  font-size: 10px;
  font-weight: 600;
  color: #ffb347;
  white-space: nowrap;
}

.glass-table .loan-emi-chip {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  background: rgba(239, 68, 68, 0.15);
  border: 1px solid rgba(239, 68, 68, 0.25);
  border-radius: 20px;
  font-size: 10px;
  font-weight: 600;
  color: #f87171;
  white-space: nowrap;
}

.glass-table .no-advance,
.glass-table .no-loan {
  color: rgba(255, 255, 255, 0.35);
  font-size: 10px;
  font-style: italic;
}

/* Status Badges */
.glass-table .badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 10px;
  border-radius: 12px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.glass-table .badge-warning {
  background: var(--gdt-warning-bg);
  border: 1px solid var(--gdt-warning-border);
  color: var(--gdt-warning);
}

.glass-table .badge-success {
  background: var(--gdt-success-bg);
  border: 1px solid var(--gdt-success-border);
  color: var(--gdt-success);
}

.glass-table .badge-muted {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.55);
}

/* Row States */
.glass-table .row-edited {
  background: rgba(73, 211, 158, 0.04) !important;
  box-shadow: inset 3px 0 0 0 var(--gdt-success);
}

/* Recalc Status Indicators */
.glass-table .recalc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: rgba(245, 158, 11, 0.12);
  border: 1px solid rgba(245, 158, 11, 0.3);
  color: #fbbf24;
  cursor: pointer;
  transition: all 0.15s ease;
}

.glass-table .recalc-btn:hover {
  background: rgba(245, 158, 11, 0.2);
  border-color: rgba(245, 158, 11, 0.5);
}

.glass-table .recalc-btn mat-icon {
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
}

.glass-table .recalc-btn.spinning mat-icon {
  animation: spin 1s linear infinite;
}

@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
/* OT Display */
.glass-table .ot-display {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  cursor: default;
}

/* --------------------------------------------
   EMPTY STATE
   -------------------------------------------- */
.glass-table .empty-row td {
  padding: 64px 20px;
}

.glass-table .empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.glass-table .empty-icon {
  font-size: 48px !important;
  width: 48px !important;
  height: 48px !important;
  color: rgba(255, 130, 90, 0.4);
  margin-bottom: 8px;
}

.glass-table .empty-title {
  font-size: 16px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.7);
}

.glass-table .empty-subtitle {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.4);
}

/* --------------------------------------------
   SKELETON LOADER
   -------------------------------------------- */
.glass-table .skeleton-row {
  display: table;
  width: 100%;
  table-layout: fixed;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.glass-table .skeleton-cell {
  display: table-cell;
  padding: 18px 14px;
  vertical-align: middle;
}

.glass-table .skeleton-cell:first-child {
  padding-left: 20px;
}

.glass-table .skeleton-cell:last-child {
  padding-right: 20px;
}

.glass-table .skeleton-line {
  height: 16px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.12) 50%, rgba(255, 255, 255, 0.06) 100%);
  background-size: 200% 100%;
  animation: gdt-shimmer 1.5s infinite;
  border-radius: 4px;
}

.glass-table .skeleton-line.short {
  width: 65%;
}

.glass-table .skeleton-line.medium {
  width: 85%;
}

.glass-table .skeleton-line.long {
  width: 90%;
}

.glass-table .skeleton-line.badge {
  width: 60px;
  height: 26px;
  border-radius: 13px;
}

.glass-table .skeleton-line.amount {
  width: 80px;
  height: 18px;
  margin-left: auto;
}

.glass-table .skeleton-stacked {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.glass-table .skeleton-stacked .skeleton-line:last-child {
  height: 12px;
  opacity: 0.6;
}

@keyframes gdt-shimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
/* ============================================
   BACKWARDS COMPATIBILITY ALIASES
   ============================================
   These aliases allow legacy class names to work
   with modern contract styles. DO NOT add new
   usages of these classes - use the canonical
   names instead.
   ============================================ */
/* Legacy table wrapper → glass-table-wrap */
.table-wrap {
  padding: 0 var(--ui-space-8) var(--ui-space-8);
  overflow-x: auto;
}

/* Legacy row class → row-clickable */
.clickable-row {
  cursor: pointer;
  transition: background var(--ui-transition-base);
}

.clickable-row:hover {
  background: var(--ui-table-row-hover, rgba(255, 255, 255, 0.04));
}

/* Legacy cell emphasis classes */
.cell-strong {
  font-weight: 600;
  color: var(--gdt-text-strong, rgba(255, 255, 255, 0.95));
}

.cell-muted {
  font-size: var(--ui-text-sm, 13px);
  color: var(--gdt-text-muted, rgba(255, 255, 255, 0.64));
}

/* Legacy type pill (outside glass-table context) */
.type-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 3px 10px;
  border-radius: 12px;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  background: var(--gdt-surface, rgba(255, 255, 255, 0.03));
  border: 1px solid var(--gdt-border, rgba(255, 255, 255, 0.1));
  color: var(--gdt-text-muted, rgba(255, 255, 255, 0.64));
}

.type-pill.muted {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.6);
}

.type-pill.success {
  background: var(--gdt-success-bg);
  border: 1px solid var(--gdt-success-border);
  color: var(--gdt-success);
}

.type-pill.warning {
  background: var(--gdt-warning-bg);
  border: 1px solid var(--gdt-warning-border);
  color: var(--gdt-warning);
}

.type-pill.danger {
  background: var(--gdt-danger-bg);
  border: 1px solid var(--gdt-danger-border);
  color: var(--gdt-danger);
}

/* Employee pill — gold/amber (Odoo-style) */
.type-pill.emp-pill {
  background: rgba(251, 191, 36, 0.12);
  border: 1px solid rgba(251, 191, 36, 0.25);
  color: #fbbf24;
  text-transform: none;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0;
}

/* Vendor pill — blue */
.type-pill.vendor-pill {
  background: rgba(99, 179, 237, 0.12);
  border: 1px solid rgba(99, 179, 237, 0.25);
  color: #63b3ed;
  text-transform: none;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0;
}

/* Revenue amount styling (outside glass-table context) */
.revenue-amount {
  font-size: 15px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--gdt-revenue, #ff6b4a);
  white-space: nowrap;
}

.revenue-amount.text-danger {
  color: var(--gdt-danger, rgba(255, 100, 80, 0.95));
}

.revenue-amount.text-success {
  color: var(--gdt-success, rgba(73, 211, 158, 0.95));
}

/* Cell primary pattern (outside glass-table context) */
.cell-primary {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.cell-primary-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--gdt-text-strong, rgba(255, 255, 255, 0.95));
  line-height: 1.4;
}

.cell-primary-name--clickable {
  cursor: pointer;
  transition: color 0.15s ease;
}

.cell-primary-name--clickable:hover {
  color: var(--ui-accent, #ff784f);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.cell-primary-sub {
  font-size: 11px;
  color: var(--gdt-text-faint, rgba(255, 255, 255, 0.45));
}

/* --------------------------------------------
   CR-TABLE ALIASES (Customer/Business Referrals)
   -------------------------------------------- */
.cr-table-card {
  background: var(--ui-glass-light, rgba(255, 255, 255, 0.03));
  border: 1px solid var(--ui-border, rgba(255, 255, 255, 0.08));
  border-radius: var(--ui-radius-xl, 16px);
  overflow: hidden;
}

.cr-table-wrap {
  overflow-x: auto;
}

.cr-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

.cr-table thead {
  background: var(--ui-surface-1, rgba(255, 255, 255, 0.02));
}

.cr-table th {
  padding: var(--ui-space-3, 12px) var(--ui-space-4, 16px);
  font-size: var(--ui-text-xs, 11px);
  font-weight: var(--ui-font-semibold, 600);
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.5));
  text-align: left;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  white-space: nowrap;
  border-bottom: 1px solid var(--ui-border-light, rgba(255, 255, 255, 0.06));
}

.cr-table th .th-content {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2, 8px);
}

.cr-table th .th-content.th-center {
  justify-content: center;
}

.cr-table th .th-content.th-right {
  justify-content: flex-end;
}

.cr-table th .th-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  opacity: 0.6;
}

.cr-table tbody tr {
  cursor: pointer;
  transition: background 0.15s ease;
}

.cr-table tbody tr:hover {
  background: var(--ui-surface-hover, rgba(255, 255, 255, 0.04));
}

.cr-table td {
  padding: var(--ui-space-4, 16px);
  font-size: var(--ui-text-sm, 13px);
  color: var(--ui-text-secondary, rgba(255, 255, 255, 0.8));
  border-bottom: 1px solid var(--ui-border-light, rgba(255, 255, 255, 0.04));
  vertical-align: middle;
}

.cr-table .customer-cell {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3, 12px);
}

.cr-table .customer-cell .avatar {
  width: 36px;
  height: 36px;
  border-radius: var(--ui-radius-full, 50%);
  background: var(--ui-accent-bg, rgba(255, 130, 90, 0.15));
  color: var(--ui-accent, #ff784f);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 600;
  flex-shrink: 0;
}

.cr-table .customer-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.cr-table .referral-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  padding: 4px 10px;
  background: var(--ui-info-bg, rgba(99, 179, 237, 0.12));
  color: var(--ui-info, #63b3ed);
  border-radius: var(--ui-radius-full, 50px);
  font-size: 12px;
  font-weight: 600;
}

.cr-table .revenue {
  font-weight: 600;
  color: var(--ui-success, #49d39e);
  font-variant-numeric: tabular-nums;
}

.cr-table .cash-value {
  color: var(--ui-accent, #ff784f);
}

.cr-table .nps-badge {
  display: inline-flex;
  padding: 4px 10px;
  border-radius: var(--ui-radius-full, 50px);
  font-size: 11px;
  font-weight: 600;
  background: var(--ui-surface-2, rgba(255, 255, 255, 0.06));
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.5));
}

.cr-table .nps-badge.nps-high {
  background: var(--ui-success-bg, rgba(73, 211, 158, 0.12));
  color: var(--ui-success, #49d39e);
}

.cr-table .nps-badge.nps-medium {
  background: var(--ui-warning-bg, rgba(246, 173, 85, 0.12));
  color: var(--ui-warning, #f6ad55);
}

.cr-table .nps-badge.nps-low {
  background: var(--ui-danger-bg, rgba(252, 129, 129, 0.12));
  color: var(--ui-danger, #fc8181);
}

.cr-table .empty-state {
  padding: var(--ui-space-8, 48px) var(--ui-space-6, 24px);
  text-align: center;
}

.cr-table .empty-state .empty-icon {
  font-size: 48px;
  width: 48px;
  height: 48px;
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.3));
  margin-bottom: var(--ui-space-4, 16px);
}

.cr-table .empty-state h4 {
  margin: 0 0 var(--ui-space-2, 8px) 0;
  font-size: var(--ui-text-base, 14px);
  color: var(--ui-text-secondary, rgba(255, 255, 255, 0.7));
}

.cr-table .empty-state p {
  margin: 0;
  font-size: var(--ui-text-sm, 13px);
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.5));
}

/* Skeleton loading */
.cr-table .skeleton-row td {
  padding: var(--ui-space-4, 16px);
}

.cr-table .skeleton-line {
  height: 12px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.04) 25%, rgba(255, 255, 255, 0.08) 50%, rgba(255, 255, 255, 0.04) 75%);
  background-size: 200% 100%;
  animation: skeleton-shimmer 1.5s infinite;
  border-radius: 4px;
}

.cr-table .skeleton-line.short {
  width: 60px;
}

.cr-table .skeleton-line.medium {
  width: 120px;
}

@keyframes skeleton-shimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
/* Pagination (cr-page styling) */
.cr-page-shell .pagination-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--ui-space-4, 16px) var(--ui-space-5, 20px);
  margin-top: var(--ui-space-4, 16px);
  background: var(--ui-glass-light, rgba(255, 255, 255, 0.02));
  border-radius: var(--ui-radius-lg, 12px);
  font-size: var(--ui-text-sm, 13px);
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.5));
}

.cr-page-shell .pagination-container.clickable {
  cursor: pointer;
  transition: background 0.15s ease;
}

.cr-page-shell .pagination-container.clickable:hover {
  background: var(--ui-surface-hover, rgba(255, 255, 255, 0.04));
}

.cr-page-shell .view-more-center {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3, 12px);
  flex: 1;
  justify-content: center;
}

.cr-page-shell .view-more-center .divider-line {
  flex: 1;
  height: 1px;
  background: var(--ui-border-light, rgba(255, 255, 255, 0.06));
}

.cr-page-shell .view-more-center .label {
  font-weight: 500;
  color: var(--ui-accent, #ff784f);
}

.cr-page-shell .pagination-size select {
  background: var(--ui-surface-1, rgba(255, 255, 255, 0.04));
  border: 1px solid var(--ui-border-light, rgba(255, 255, 255, 0.08));
  border-radius: var(--ui-radius-md, 8px);
  padding: 4px 8px;
  color: var(--ui-text-secondary, rgba(255, 255, 255, 0.8));
  font-size: 12px;
  margin-left: var(--ui-space-2, 8px);
}

/* --------------------------------------------
   BR-TABLE ALIASES (Business Referrals)
   Same structure as cr-table, just different prefix
   -------------------------------------------- */
.br-table-card {
  background: var(--ui-glass-light, rgba(255, 255, 255, 0.03));
  border: 1px solid var(--ui-border, rgba(255, 255, 255, 0.08));
  border-radius: var(--ui-radius-xl, 16px);
  overflow: hidden;
}

.br-table-wrap {
  overflow-x: auto;
}

.br-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

.br-table thead {
  background: var(--ui-surface-1, rgba(255, 255, 255, 0.02));
}

.br-table th {
  padding: var(--ui-space-3, 12px) var(--ui-space-4, 16px);
  font-size: var(--ui-text-xs, 11px);
  font-weight: var(--ui-font-semibold, 600);
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.5));
  text-align: left;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  white-space: nowrap;
  border-bottom: 1px solid var(--ui-border-light, rgba(255, 255, 255, 0.06));
}

.br-table tbody tr {
  cursor: pointer;
  transition: background 0.15s ease;
}

.br-table tbody tr:hover {
  background: var(--ui-surface-hover, rgba(255, 255, 255, 0.04));
}

.br-table td {
  padding: var(--ui-space-4, 16px);
  font-size: var(--ui-text-sm, 13px);
  color: var(--ui-text-secondary, rgba(255, 255, 255, 0.8));
  border-bottom: 1px solid var(--ui-border-light, rgba(255, 255, 255, 0.04));
  vertical-align: middle;
}

.br-table .business-cell {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3, 12px);
}

.br-table .type-badge {
  width: 32px;
  height: 32px;
  border-radius: var(--ui-radius-md, 8px);
  background: var(--ui-info-bg, rgba(99, 179, 237, 0.15));
  color: var(--ui-info, #63b3ed);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  flex-shrink: 0;
}

.br-table .type-badge.flat {
  background: var(--ui-accent-bg, rgba(255, 130, 90, 0.15));
  color: var(--ui-accent, #ff784f);
}

.br-table .usage-cell {
  display: flex;
  align-items: baseline;
  gap: 2px;
  font-variant-numeric: tabular-nums;
}

.br-table .usage-used {
  font-weight: 600;
  color: var(--ui-accent, #ff784f);
  font-size: 14px;
}

.br-table .usage-separator {
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.4));
}

.br-table .usage-total {
  font-size: 12px;
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.5));
}

.br-table .usage-cell.expired {
  opacity: 0.5;
}

.br-table .category-badge {
  display: inline-flex;
  padding: 4px 10px;
  border-radius: var(--ui-radius-full, 50px);
  font-size: 11px;
  font-weight: 500;
  background: var(--ui-surface-2, rgba(255, 255, 255, 0.06));
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.6));
}

.br-table .sector-text {
  color: var(--ui-text-secondary, rgba(255, 255, 255, 0.7));
}

.br-table .icon-btn {
  background: transparent;
  border: none;
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.5));
  cursor: pointer;
  padding: 6px;
  border-radius: var(--ui-radius-md, 8px);
  transition: background 0.15s ease, color 0.15s ease;
}

.br-table .icon-btn:hover {
  background: var(--ui-surface-hover, rgba(255, 255, 255, 0.08));
  color: var(--ui-accent, #ff784f);
}

.br-table .empty-state {
  padding: var(--ui-space-8, 48px) var(--ui-space-6, 24px);
  text-align: center;
}

.br-table .empty-state .empty-icon {
  font-size: 48px;
  width: 48px;
  height: 48px;
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.3));
  margin-bottom: var(--ui-space-4, 16px);
}

.br-table .empty-state h4 {
  margin: 0 0 var(--ui-space-2, 8px) 0;
  font-size: var(--ui-text-base, 14px);
  color: var(--ui-text-secondary, rgba(255, 255, 255, 0.7));
}

.br-table .empty-state p {
  margin: 0;
  font-size: var(--ui-text-sm, 13px);
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.5));
}

/* br-page pagination */
.br-page-shell .pagination-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--ui-space-4, 16px) var(--ui-space-5, 20px);
  margin-top: var(--ui-space-4, 16px);
  background: var(--ui-glass-light, rgba(255, 255, 255, 0.02));
  border-radius: var(--ui-radius-lg, 12px);
  font-size: var(--ui-text-sm, 13px);
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.5));
}

.br-page-shell .view-more-center {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3, 12px);
  flex: 1;
  justify-content: center;
}

.br-page-shell .view-more-center .divider-line {
  flex: 1;
  height: 1px;
  background: var(--ui-border-light, rgba(255, 255, 255, 0.06));
}

.br-page-shell .view-more-center .label {
  font-weight: 500;
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.5));
}

/* --------------------------------------------
   SALES ORDER LIST TABLE VARIANT
   -------------------------------------------- */
.sales-page .premium-table.premium-table--sales {
  width: 100%;
  min-width: 900px;
  table-layout: fixed;
}

/* col 1: Date */
.sales-page .premium-table.premium-table--sales th:nth-child(1),
.sales-page .premium-table.premium-table--sales td:nth-child(1) {
  width: 11%;
  min-width: 120px;
}

/* col 2: Sale # */
.sales-page .premium-table.premium-table--sales th:nth-child(2),
.sales-page .premium-table.premium-table--sales td:nth-child(2) {
  width: 10%;
  min-width: 100px;
}

/* col 3: Customer */
.sales-page .premium-table.premium-table--sales th:nth-child(3),
.sales-page .premium-table.premium-table--sales td:nth-child(3) {
  width: 20%;
  min-width: 200px;
}

/* col 4: GST */
.sales-page .premium-table.premium-table--sales th:nth-child(4),
.sales-page .premium-table.premium-table--sales td:nth-child(4) {
  width: 14%;
  min-width: 140px;
}

/* col 5: Amount + Due (merged) */
.sales-page .premium-table.premium-table--sales th:nth-child(5),
.sales-page .premium-table.premium-table--sales td:nth-child(5) {
  width: 16%;
  min-width: 140px;
}

/* col 6: Invoice */
.sales-page .premium-table.premium-table--sales th:nth-child(6),
.sales-page .premium-table.premium-table--sales td:nth-child(6) {
  width: 14%;
  min-width: 120px;
}

/* col 7: Actions */
.sales-page .premium-table.premium-table--sales th:nth-child(7),
.sales-page .premium-table.premium-table--sales td:nth-child(7) {
  width: 7%;
  min-width: 80px;
  text-align: right;
  padding-right: 12px;
}

.sales-page .premium-table--sales .cell-date,
.sales-page .premium-table--sales .cell-sale-id,
.sales-page .premium-table--sales .cell-gst {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ── Sale ID dual-line cell ── */
.sale-id {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.sale-id__primary {
  font-weight: 600;
  font-size: 14px;
  color: var(--ui-accent, #ff784f);
  cursor: pointer;
  font-family: var(--ui-font-mono);
  font-variant-numeric: tabular-nums;
  transition: color 0.15s;
}
.sale-id__primary:hover {
  color: var(--ui-accent-light, #ffad85);
  text-decoration: underline;
}

.sale-id__secondary {
  font-size: 12px;
  opacity: 0.6;
  font-family: var(--ui-font-mono);
  font-variant-numeric: tabular-nums;
  color: var(--ui-text-secondary, rgba(255, 255, 255, 0.7));
  cursor: pointer;
  transition: opacity 0.15s;
}
.sale-id__secondary:hover {
  opacity: 0.9;
}

.sale-id__pending {
  font-size: 11px;
  font-weight: 500;
  color: var(--ui-warning, #f6ad55);
}

.sales-page .premium-table--sales .cell-customer {
  min-width: 0;
}

.sales-page .premium-table--sales .cell-customer .cell-primary {
  min-width: 0;
}

.sales-page .premium-table--sales .cell-customer .cell-primary-name {
  display: inline;
}

.sales-page .premium-table--sales .cell-amount .amount-value,
.sales-page .premium-table--sales .cell-due .amount-value {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

/* Override base premium-table display:flex on cell-amount & cell-status
   to restore proper table-cell layout */
.sales-page .premium-table--sales td.cell-amount,
.sales-page .premium-table--sales td.cell-status {
  display: table-cell;
  vertical-align: middle;
}

.sales-page .premium-table--sales .cell-status {
  align-items: flex-start;
}

/* ── Amount + Due merged cell ── */
.amount-due-cell {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 3px;
  min-width: 0;
}

.amount-due-cell__total {
  font-weight: 600;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.92);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.amount-due-cell__due {
  font-size: 11px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.amount-due-cell__due--settled {
  color: #4ade80;
}

.amount-due-cell__due--pending {
  color: #ff6b6b;
}

.amount-due-cell__due--advance {
  color: #60a5fa;
}

.sales-page .premium-table--sales .status-pill {
  min-width: 70px;
  justify-content: center;
}

/* ── Sale status pill variants ── */
.sales-page .premium-table--sales .status-pill.draft {
  background: rgba(148, 163, 184, 0.12);
  border: 1px solid rgba(148, 163, 184, 0.2);
  color: #94a3b8;
}

.sales-page .premium-table--sales .status-pill.pending {
  background: rgba(246, 173, 85, 0.12);
  border: 1px solid rgba(246, 173, 85, 0.2);
  color: #f6ad55;
}

.sales-page .premium-table--sales .status-pill.paid {
  background: rgba(74, 222, 128, 0.12);
  border: 1px solid rgba(74, 222, 128, 0.2);
  color: #4ade80;
}

.sales-page .premium-table--sales .status-pill.cancelled {
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.2);
  color: #ef4444;
}

/* ── Invoice Cell — combined invoice # + status pill ── */
.invoice-cell {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  min-width: 0;
}

.invoice-cell__number {
  font-family: var(--ui-font-mono);
  font-size: 13px;
  font-weight: 600;
  color: var(--ui-accent, #ff784f);
  letter-spacing: 0.02em;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.invoice-cell__number--link {
  cursor: pointer;
  transition: color 0.15s;
}
.invoice-cell__number--link:hover {
  color: var(--ui-accent-light, #ffad85);
  text-decoration: underline;
}

.invoice-cell__none {
  font-size: 11px;
  font-weight: 500;
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.35));
  font-style: italic;
}

/* ── Status dot indicator ── */
.invoice-cell__status {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.45);
}

.invoice-cell__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.25);
  flex-shrink: 0;
}

.invoice-cell__status--draft {
  color: #94a3b8;
}
.invoice-cell__status--draft .invoice-cell__dot {
  background: #94a3b8;
}

.invoice-cell__status--pending {
  color: #f6ad55;
}
.invoice-cell__status--pending .invoice-cell__dot {
  background: #f6ad55;
}

.invoice-cell__status--paid {
  color: #4ade80;
}
.invoice-cell__status--paid .invoice-cell__dot {
  background: #4ade80;
}

.invoice-cell__status--cancelled {
  color: #ef4444;
}
.invoice-cell__status--cancelled .invoice-cell__dot {
  background: #ef4444;
}

.status-pill.status-pill--compact {
  padding: 2px 8px;
  font-size: 10px;
  min-width: auto;
}

/* ── Sales List Enterprise Cells (sl- prefix) ── */
.sl-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 50px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.sl-badge--muted {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.35);
}

.sl-badge--danger {
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.2);
  color: #ef4444;
}

.sl-gst-number {
  font-family: var(--ui-font-mono);
  font-size: 11px;
  font-weight: 500;
  color: var(--ui-text-secondary, rgba(255, 255, 255, 0.7));
  letter-spacing: 0.02em;
  font-variant-numeric: tabular-nums;
}

.sl-due {
  font-size: 13px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.sl-due--settled {
  color: #4ade80;
}

.sl-due--pending {
  color: #ff6b6b;
}

.sl-due--advance {
  color: #60a5fa;
  font-size: 12px;
}

.sl-action {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  border: none;
  transition: all 0.15s;
  white-space: nowrap;
}

.sl-action--subtle {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: var(--ui-text-secondary, rgba(255, 255, 255, 0.7));
}
.sl-action--subtle:hover {
  background: rgba(255, 130, 90, 0.12);
  border-color: rgba(255, 130, 90, 0.25);
  color: var(--ui-accent, #ff784f);
}

.sl-action--collect {
  background: rgba(74, 222, 128, 0.1);
  border: 1px solid rgba(74, 222, 128, 0.2);
  color: #4ade80;
}
.sl-action--collect:hover {
  background: rgba(74, 222, 128, 0.18);
  border-color: rgba(74, 222, 128, 0.35);
}

.sl-action--view {
  background: rgba(96, 165, 250, 0.1);
  border: 1px solid rgba(96, 165, 250, 0.2);
  color: #60a5fa;
}
.sl-action--view:hover {
  background: rgba(96, 165, 250, 0.18);
  border-color: rgba(96, 165, 250, 0.35);
}

/* --------------------------------------------
   SUPPLIER LIST TABLE VARIANT
   -------------------------------------------- */
.supplier-page .premium-table.premium-table--suppliers {
  width: 100%;
  min-width: 1200px;
  table-layout: fixed !important;
}

.supplier-page .premium-table.premium-table--suppliers th:nth-child(1),
.supplier-page .premium-table.premium-table--suppliers td:nth-child(1) {
  width: 4%;
  min-width: 52px;
  text-align: center;
}

.supplier-page .premium-table.premium-table--suppliers th:nth-child(2),
.supplier-page .premium-table.premium-table--suppliers td:nth-child(2) {
  width: 24%;
  min-width: 240px;
}

.supplier-page .premium-table.premium-table--suppliers th:nth-child(3),
.supplier-page .premium-table.premium-table--suppliers td:nth-child(3) {
  width: 14%;
  min-width: 168px;
}

.supplier-page .premium-table.premium-table--suppliers th:nth-child(4),
.supplier-page .premium-table.premium-table--suppliers td:nth-child(4) {
  width: 13%;
  min-width: 156px;
}

.supplier-page .premium-table.premium-table--suppliers th:nth-child(5),
.supplier-page .premium-table.premium-table--suppliers td:nth-child(5) {
  width: 19%;
  min-width: 180px;
  text-align: left;
}

.supplier-page .premium-table.premium-table--suppliers th:nth-child(6),
.supplier-page .premium-table.premium-table--suppliers td:nth-child(6) {
  width: 10%;
  min-width: 132px;
}

.supplier-page .premium-table.premium-table--suppliers th:nth-child(7),
.supplier-page .premium-table.premium-table--suppliers td:nth-child(7) {
  width: 16%;
  min-width: 170px;
}

.supplier-page .premium-table--suppliers .cell-name {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
}

.supplier-page .premium-table--suppliers .cell-contact {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  align-items: flex-start;
}

.supplier-page .premium-table--suppliers .contact-phone {
  font-family: var(--ui-font-mono);
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
  letter-spacing: 0.02em;
  width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  overflow-wrap: normal;
  word-break: normal;
  line-height: 1.35;
}

.supplier-page .premium-table--suppliers .contact-email {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.52);
  width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  overflow-wrap: normal;
  word-break: normal;
  line-height: 1.35;
}

.supplier-page .premium-table--suppliers .cell-location {
  min-width: 0;
}

.supplier-page .premium-table--suppliers .location-address {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.82);
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-bottom: 4px;
  max-height: 2.8em;
}

.supplier-page .premium-table--suppliers .location-state {
  display: block;
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 130, 90, 0.85);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.supplier-page .premium-table--suppliers .cell-actions {
  padding-right: 12px;
}

.supplier-page .premium-table--suppliers .action-buttons {
  justify-content: flex-end;
  gap: 8px;
}

.supplier-page .premium-table--suppliers .icon-btn {
  width: 32px;
  height: 32px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.65);
}

.supplier-page .premium-table--suppliers .icon-btn:hover {
  background: rgba(255, 130, 90, 0.15);
  border-color: rgba(255, 130, 90, 0.3);
  color: rgba(255, 200, 160, 0.95);
}

.supplier-page .premium-table--suppliers .btn-action {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 12px;
  background: rgba(255, 130, 90, 0.12);
  border: 1px solid rgba(255, 130, 90, 0.25);
  border-radius: 6px;
  color: rgba(255, 200, 160, 0.95);
  font-size: 11px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
}

.supplier-page .premium-table--suppliers .btn-action mat-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
}

.supplier-page .premium-table--suppliers .btn-action:hover {
  background: rgba(255, 130, 90, 0.2);
  border-color: rgba(255, 130, 90, 0.4);
}

/* ── Row Action Buttons (Payment-In, Payment-Out, etc.) ── */
.row-action-group {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.row-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: var(--ui-radius-sm, 6px);
  background: transparent;
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.5));
  cursor: pointer;
  transition: all 0.2s ease;
}

.row-action-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: inherit;
}

.row-action-btn:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: var(--ui-border-light, rgba(255, 255, 255, 0.12));
  color: var(--ui-text-primary, rgba(255, 255, 255, 0.95));
}

.row-action-btn:active {
  background: rgba(255, 255, 255, 0.12);
  transform: scale(0.92);
}

/*
 * CONTRACT RULE
 * This file must NOT redefine selectors from:
 *   - ui/layout/*
 *   - ui/controls/*
 *   - ui/headers/*
 * Use scoped overrides only.
 */
/* ============================================
   TABLE CELL HELPERS — Legacy glass-data-table
   ============================================ */
.cell-strong {
  display: block;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
}

.cell-muted {
  display: block;
  margin-top: var(--ui-space-1);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.claim-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-1);
  padding: 4px 12px;
  /* Reduced from var(--ui-space-1) var(--ui-space-3) */
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-2);
  color: var(--ui-text-muted);
  font-size: 10px;
  /* Smaller font */
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  cursor: pointer;
  transition: var(--ui-transition-base);
  min-width: 90px;
  /* Reduced from 110px */
  white-space: nowrap;
}

.claim-pill:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
  color: var(--ui-text-secondary);
}

.claim-pill.active {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.claim-pill .pill-icon {
  font-size: var(--ui-text-sm);
  width: var(--ui-text-sm);
  height: var(--ui-text-sm);
}

.icon-btn,
.table-icon-btn {
  width: 36px;
  height: 36px;
  border-radius: var(--ui-radius-md);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-2);
  color: var(--ui-text-secondary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.icon-btn:hover,
.table-icon-btn:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
  color: var(--ui-text-primary);
}

.icon-btn:disabled,
.icon-btn.disabled,
.table-icon-btn:disabled,
.table-icon-btn.disabled {
  opacity: 0.4;
  cursor: not-allowed;
  pointer-events: none;
}

.icon-btn mat-icon,
.table-icon-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.action-buttons {
  display: flex;
  gap: var(--ui-space-2);
  justify-content: flex-end;
}

.status-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-2);
  color: var(--ui-text-muted);
}

.status-icon.issued {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.status-icon.pending {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.glass-status-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  padding: 0 var(--ui-space-3);
  height: var(--ui-space-6);
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border-light);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.glass-status-chip .status-icon {
  font-size: var(--ui-text-xs);
  width: var(--ui-text-xs);
  height: var(--ui-text-xs);
}

.glass-status-chip.status-success {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.glass-status-chip.status-warning {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.glass-status-chip.status-danger {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
}

.glass-status-chip.status-info {
  background: var(--ui-info-bg);
  border-color: var(--ui-info-border);
  color: var(--ui-info);
}

.glass-status-chip.status-muted {
  background: transparent;
  border-color: var(--ui-border-light);
  color: var(--ui-text-muted);
}

/* PO status chips */
.glass-status-chip.status-open {
  background: var(--ui-info-bg);
  border-color: var(--ui-info-border);
  color: var(--ui-info);
}

.glass-status-chip.status-partial {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.glass-status-chip.status-received {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.glass-status-chip.status-cancelled {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
}

/* Source indicator icon inside status chip */
.glass-status-chip .chip-source-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  line-height: 14px;
}

/* Manual (advisor) status: dashed border to differentiate */
.glass-status-chip.status-manual {
  border-style: dashed;
}

.dept-badge {
  display: inline-flex;
  align-items: center;
  padding: calc(var(--ui-space-1) / 2) var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  border: 1px solid currentColor;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.glass-data-table .employee-cell {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
}

.glass-data-table .cell-avatar {
  width: var(--ui-space-8);
  height: var(--ui-space-8);
  border-radius: var(--ui-radius-full);
  background: rgba(255, 130, 90, 0.12);
  border: 1px solid rgba(255, 130, 90, 0.2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  color: var(--ui-brand);
  text-transform: uppercase;
  overflow: hidden;
  flex-shrink: 0;
  position: relative;
}

.ui-table .cell-avatar-img, .glass-table .cell-avatar-img, .premium-table .cell-avatar-img,
.glass-data-table .cell-avatar-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--ui-radius-full);
}

.cell-with-avatar {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: var(--ui-space-3);
}

.cell-with-avatar .cell-primary-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.ui-table .cell-avatar, .glass-table .cell-avatar, .premium-table .cell-avatar {
  width: var(--ui-space-8);
  height: var(--ui-space-8);
  border-radius: var(--ui-radius-full);
  background: rgba(255, 130, 90, 0.12);
  border: 1px solid rgba(255, 130, 90, 0.2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  color: var(--ui-brand);
  text-transform: uppercase;
  overflow: hidden;
  flex-shrink: 0;
  position: relative;
}

.glass-data-table .cell-info {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
}

/* ============================================
   TYPE BADGE — Pickup / Drop Indicators
   ============================================ */
.type-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 14px;
  border-radius: var(--ui-radius-full, 50px);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  border: 1px solid var(--ui-border-light, rgba(255, 255, 255, 0.08));
  background: var(--ui-surface-2, rgba(255, 255, 255, 0.06));
  color: var(--ui-text-secondary, rgba(255, 255, 255, 0.8));
}

.type-badge .type-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  line-height: 1;
}

.type-badge.pickup {
  background: rgba(120, 110, 255, 0.12);
  border-color: rgba(120, 110, 255, 0.3);
  color: rgba(175, 170, 255, 0.95);
}

.type-badge.pickup .type-icon {
  color: rgba(140, 130, 255, 0.92);
}

.type-badge.drop {
  background: rgba(255, 160, 100, 0.12);
  border-color: rgba(255, 160, 100, 0.3);
  color: rgba(255, 200, 160, 0.95);
}

.type-badge.drop .type-icon {
  color: rgba(255, 170, 110, 0.92);
}

/* ── Party-type variants (Customer & Supplier lists) ── */
.type-badge[data-type=VENDOR] {
  background: rgba(245, 158, 11, 0.12);
  border-color: rgba(245, 158, 11, 0.25);
  color: #fbbf24;
}

.type-badge[data-type=INSURANCE] {
  background: rgba(99, 102, 241, 0.12);
  border-color: rgba(99, 102, 241, 0.25);
  color: #a5b4fc;
}

.type-badge[data-type=CORPORATE] {
  background: rgba(16, 185, 129, 0.12);
  border-color: rgba(16, 185, 129, 0.25);
  color: #6ee7b7;
}

.type-badge[data-type=DEALER] {
  background: rgba(244, 63, 94, 0.12);
  border-color: rgba(244, 63, 94, 0.25);
  color: #fda4af;
}

/* ============================================
   COLUMN WIDTH HINTS — Compact Columns
   ============================================ */
.type-col {
  width: 110px;
  white-space: nowrap;
}

.status-col {
  width: 120px;
  white-space: nowrap;
}

/* ============================================
   BALANCE COLOR UTILITIES
   ============================================ */
.balance--payable {
  color: #fb7185 !important;
  font-weight: 600;
}

.balance--receivable {
  color: #34d399 !important;
  font-weight: 600;
}

.balance--zero {
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.4)) !important;
}

/*
 * CONTRACT RULE
 * This file must NOT redefine selectors from:
 *   - ui/layout/*
 *   - ui/controls/*
 *   - ui/headers/*
 * Use scoped overrides only.
 */
/* ============================================
   TABLE CELL HELPERS — Legacy glass-data-table
   ============================================ */
.cell-strong {
  display: block;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-semibold);
  color: var(--ui-text-secondary);
}

.cell-muted {
  display: block;
  margin-top: var(--ui-space-1);
  font-size: var(--ui-text-xs);
  color: var(--ui-text-muted);
}

.claim-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-1);
  padding: 4px 12px;
  /* Reduced from var(--ui-space-1) var(--ui-space-3) */
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-2);
  color: var(--ui-text-muted);
  font-size: 10px;
  /* Smaller font */
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  cursor: pointer;
  transition: var(--ui-transition-base);
  min-width: 90px;
  /* Reduced from 110px */
  white-space: nowrap;
}

.claim-pill:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
  color: var(--ui-text-secondary);
}

.claim-pill.active {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.claim-pill .pill-icon {
  font-size: var(--ui-text-sm);
  width: var(--ui-text-sm);
  height: var(--ui-text-sm);
}

.icon-btn,
.table-icon-btn {
  width: 36px;
  height: 36px;
  border-radius: var(--ui-radius-md);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface-2);
  color: var(--ui-text-secondary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: var(--ui-transition-base);
}

.icon-btn:hover,
.table-icon-btn:hover {
  background: var(--ui-surface-hover);
  border-color: var(--ui-border-hover);
  color: var(--ui-text-primary);
}

.icon-btn:disabled,
.icon-btn.disabled,
.table-icon-btn:disabled,
.table-icon-btn.disabled {
  opacity: 0.4;
  cursor: not-allowed;
  pointer-events: none;
}

.icon-btn mat-icon,
.table-icon-btn mat-icon {
  font-size: 18px;
  width: 18px;
  height: 18px;
}

.action-buttons {
  display: flex;
  gap: var(--ui-space-2);
  justify-content: flex-end;
}

.status-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border-light);
  background: var(--ui-surface-2);
  color: var(--ui-text-muted);
}

.status-icon.issued {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.status-icon.pending {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.glass-status-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  padding: 0 var(--ui-space-3);
  height: var(--ui-space-6);
  border-radius: var(--ui-radius-full);
  border: 1px solid var(--ui-border-light);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.glass-status-chip .status-icon {
  font-size: var(--ui-text-xs);
  width: var(--ui-text-xs);
  height: var(--ui-text-xs);
}

.glass-status-chip.status-success {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.glass-status-chip.status-warning {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.glass-status-chip.status-danger {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
}

.glass-status-chip.status-info {
  background: var(--ui-info-bg);
  border-color: var(--ui-info-border);
  color: var(--ui-info);
}

.glass-status-chip.status-muted {
  background: transparent;
  border-color: var(--ui-border-light);
  color: var(--ui-text-muted);
}

/* PO status chips */
.glass-status-chip.status-open {
  background: var(--ui-info-bg);
  border-color: var(--ui-info-border);
  color: var(--ui-info);
}

.glass-status-chip.status-partial {
  background: var(--ui-warning-bg);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning);
}

.glass-status-chip.status-received {
  background: var(--ui-success-bg);
  border-color: var(--ui-success-border);
  color: var(--ui-success);
}

.glass-status-chip.status-cancelled {
  background: var(--ui-danger-bg);
  border-color: var(--ui-danger-border);
  color: var(--ui-danger);
}

/* Source indicator icon inside status chip */
.glass-status-chip .chip-source-icon {
  font-size: 14px;
  width: 14px;
  height: 14px;
  line-height: 14px;
}

/* Manual (advisor) status: dashed border to differentiate */
.glass-status-chip.status-manual {
  border-style: dashed;
}

.dept-badge {
  display: inline-flex;
  align-items: center;
  padding: calc(var(--ui-space-1) / 2) var(--ui-space-3);
  border-radius: var(--ui-radius-full);
  border: 1px solid currentColor;
  font-size: var(--ui-text-xs);
  font-weight: var(--ui-font-semibold);
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.glass-data-table .employee-cell {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
}

.glass-data-table .cell-avatar {
  width: var(--ui-space-8);
  height: var(--ui-space-8);
  border-radius: var(--ui-radius-full);
  background: rgba(255, 130, 90, 0.12);
  border: 1px solid rgba(255, 130, 90, 0.2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  color: var(--ui-brand);
  text-transform: uppercase;
  overflow: hidden;
  flex-shrink: 0;
  position: relative;
}

.ui-table .cell-avatar-img, .glass-table .cell-avatar-img, .premium-table .cell-avatar-img,
.glass-data-table .cell-avatar-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--ui-radius-full);
}

.cell-with-avatar {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: var(--ui-space-3);
}

.cell-with-avatar .cell-primary-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.ui-table .cell-avatar, .glass-table .cell-avatar, .premium-table .cell-avatar {
  width: var(--ui-space-8);
  height: var(--ui-space-8);
  border-radius: var(--ui-radius-full);
  background: rgba(255, 130, 90, 0.12);
  border: 1px solid rgba(255, 130, 90, 0.2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: var(--ui-text-sm);
  font-weight: var(--ui-font-bold);
  color: var(--ui-brand);
  text-transform: uppercase;
  overflow: hidden;
  flex-shrink: 0;
  position: relative;
}

.glass-data-table .cell-info {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
}

/* ============================================
   TYPE BADGE — Pickup / Drop Indicators
   ============================================ */
.type-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 14px;
  border-radius: var(--ui-radius-full, 50px);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  border: 1px solid var(--ui-border-light, rgba(255, 255, 255, 0.08));
  background: var(--ui-surface-2, rgba(255, 255, 255, 0.06));
  color: var(--ui-text-secondary, rgba(255, 255, 255, 0.8));
}

.type-badge .type-icon {
  font-size: 16px;
  width: 16px;
  height: 16px;
  line-height: 1;
}

.type-badge.pickup {
  background: rgba(120, 110, 255, 0.12);
  border-color: rgba(120, 110, 255, 0.3);
  color: rgba(175, 170, 255, 0.95);
}

.type-badge.pickup .type-icon {
  color: rgba(140, 130, 255, 0.92);
}

.type-badge.drop {
  background: rgba(255, 160, 100, 0.12);
  border-color: rgba(255, 160, 100, 0.3);
  color: rgba(255, 200, 160, 0.95);
}

.type-badge.drop .type-icon {
  color: rgba(255, 170, 110, 0.92);
}

/* ── Party-type variants (Customer & Supplier lists) ── */
.type-badge[data-type=VENDOR] {
  background: rgba(245, 158, 11, 0.12);
  border-color: rgba(245, 158, 11, 0.25);
  color: #fbbf24;
}

.type-badge[data-type=INSURANCE] {
  background: rgba(99, 102, 241, 0.12);
  border-color: rgba(99, 102, 241, 0.25);
  color: #a5b4fc;
}

.type-badge[data-type=CORPORATE] {
  background: rgba(16, 185, 129, 0.12);
  border-color: rgba(16, 185, 129, 0.25);
  color: #6ee7b7;
}

.type-badge[data-type=DEALER] {
  background: rgba(244, 63, 94, 0.12);
  border-color: rgba(244, 63, 94, 0.25);
  color: #fda4af;
}

/* ============================================
   COLUMN WIDTH HINTS — Compact Columns
   ============================================ */
.type-col {
  width: 110px;
  white-space: nowrap;
}

.status-col {
  width: 120px;
  white-space: nowrap;
}

/* ============================================
   BALANCE COLOR UTILITIES
   ============================================ */
.balance--payable {
  color: #fb7185 !important;
  font-weight: 600;
}

.balance--receivable {
  color: #34d399 !important;
  font-weight: 600;
}

.balance--zero {
  color: var(--ui-text-muted, rgba(255, 255, 255, 0.4)) !important;
}

/* ==========================================================================
   10. VENDOR OVERRIDES
   ========================================================================== */
/* ==========================================================================
   UI VENDORS - APEXCHARTS
   ==========================================================================
   ApexCharts overrides. ALL chart customizations MUST live here.
   ========================================================================== */
/* Import existing glass chart styles */
/* CSS imported in styles.scss */
/* ApexCharts container overrides */
.apexcharts-canvas {
  /* Chart canvas customizations */
  display: block;
}

/* Tooltip styling */
.apexcharts-tooltip {
  background: var(--ui-glass-dark) !important;
  backdrop-filter: var(--ui-blur-md) !important;
  -webkit-backdrop-filter: var(--ui-blur-md) !important;
  border: 1px solid var(--ui-border) !important;
  border-radius: var(--ui-radius-md) !important;
  color: var(--ui-text-primary) !important;
}

.apexcharts-tooltip-title {
  background: transparent !important;
  border-bottom: 1px solid var(--ui-border) !important;
}

/* Legend styling */
.apexcharts-legend-text {
  color: var(--ui-text-secondary) !important;
}

/* Axis labels */
.apexcharts-xaxis-label,
.apexcharts-yaxis-label {
  fill: var(--ui-text-muted) !important;
}

/* Grid lines */
.apexcharts-gridline {
  stroke: var(--ui-border-light) !important;
}

/* 
 * Shared Glassmorphic Chart Styles
 * Premium glassmorphic design system for charts and tooltips
 * 
 * IMPORTANT: Based on glass-dropdown.css transparent design
 * This uses ULTRA-transparent backgrounds with heavy blur for true glassmorphism
 */
/* ==========================================================================
   Chart Container & Wrappers
   ========================================================================== */
/* Glass wrapper for chart containers */
.glass-chart-wrapper {
  padding: 22px;
  border-radius: 22px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 22px 60px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

/* ==========================================================================
   Glassmorphic Tooltip Styles - TRANSPARENT GLASS EFFECT
   ========================================================================== */
/* Force backdrop filter - Critical for glassmorphism */
div.apexcharts-tooltip.apexcharts-theme-dark,
div.apexcharts-tooltip.glass-chart-tooltip,
.apexcharts-tooltip.glass-chart-tooltip,
.glass-chart-tooltip.apexcharts-theme-dark,
.apexcharts-tooltip-box,
.apexcharts-theme-dark {
  backdrop-filter: blur(60px) saturate(200%) brightness(1.1) !important;
  -webkit-backdrop-filter: blur(60px) saturate(200%) brightness(1.1) !important;
}

/* Main Tooltip Container - ULTRA TRANSPARENT with blur */
div.apexcharts-tooltip.glass-chart-tooltip,
.apexcharts-tooltip.glass-chart-tooltip,
.glass-chart-tooltip.apexcharts-theme-dark,
.glass-chart-tooltip {
  /* Ultra-transparent dark glass - THIS IS THE KEY */
  background: rgba(22, 22, 28, 0.4) !important;
  /* Heavy blur for glassmorphism */
  backdrop-filter: blur(60px) saturate(200%) brightness(1.1) !important;
  -webkit-backdrop-filter: blur(60px) saturate(200%) brightness(1.1) !important;
  /* Glass borders and shadows */
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  border-radius: 12px !important;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.15) !important;
  /* Layout */
  padding: 0 !important;
  overflow: hidden !important;
  max-width: 200px !important;
  color: #ffffff !important;
}

/* Tooltip Header/Title - Slightly less transparent than body */
div.glass-chart-tooltip .apexcharts-tooltip-title,
.glass-chart-tooltip .apexcharts-tooltip-title,
.apexcharts-tooltip.glass-chart-tooltip .apexcharts-tooltip-title {
  background: rgba(255, 255, 255, 0.06) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
  color: #ffffff !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  padding: 8px 12px !important;
  margin: 0 !important;
  font-family: var(--ui-font-primary) !important;
  letter-spacing: -0.01em !important;
}

/* Series Row Container - Compact layout */
div.glass-chart-tooltip .apexcharts-tooltip-series-group,
.glass-chart-tooltip .apexcharts-tooltip-series-group,
.apexcharts-tooltip.glass-chart-tooltip .apexcharts-tooltip-series-group {
  padding: 4px 12px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 8px !important;
  height: auto !important;
  background: transparent !important;
  line-height: 1 !important;
}

div.glass-chart-tooltip .apexcharts-tooltip-series-group:hover,
.glass-chart-tooltip .apexcharts-tooltip-series-group:hover {
  background: rgba(255, 255, 255, 0.08) !important;
}

/* The Marker Dot - Clean circle aligned perfectly */
div.glass-chart-tooltip .apexcharts-tooltip-marker,
.glass-chart-tooltip .apexcharts-tooltip-marker,
.apexcharts-tooltip.glass-chart-tooltip .apexcharts-tooltip-marker {
  width: 10px !important;
  height: 10px !important;
  border-radius: 50% !important;
  margin: 0 !important;
  margin-top: 1px !important;
  padding: 0 !important;
  flex-shrink: 0 !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
  position: static !important;
  top: 0 !important;
  left: 0 !important;
  transform: none !important;
  display: block !important;
  vertical-align: middle !important;
}

/* Text Container */
div.glass-chart-tooltip .apexcharts-tooltip-text,
.glass-chart-tooltip .apexcharts-tooltip-text,
.apexcharts-tooltip.glass-chart-tooltip .apexcharts-tooltip-text {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 8px !important;
  flex: 1 !important;
  font-family: var(--ui-font-primary) !important;
  line-height: 1 !important;
}

/* Label (e.g. "Spent:") */
div.glass-chart-tooltip .apexcharts-tooltip-text-y-label,
.glass-chart-tooltip .apexcharts-tooltip-text-y-label,
.apexcharts-tooltip.glass-chart-tooltip .apexcharts-tooltip-text-y-label {
  color: rgba(255, 255, 255, 0.8) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  margin-right: 6px !important;
  line-height: 1 !important;
}

/* Value (e.g. "₹1,000") */
div.glass-chart-tooltip .apexcharts-tooltip-text-y-value,
.glass-chart-tooltip .apexcharts-tooltip-text-y-value,
.apexcharts-tooltip.glass-chart-tooltip .apexcharts-tooltip-text-y-value {
  color: rgba(255, 255, 255, 0.95) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  margin: 0 !important;
  line-height: 1 !important;
}

div.glass-chart-tooltip .apexcharts-tooltip-y-group,
.glass-chart-tooltip .apexcharts-tooltip-y-group,
.apexcharts-tooltip.glass-chart-tooltip .apexcharts-tooltip-y-group {
  padding: 0 !important;
  line-height: 1 !important;
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
}

/* ==========================================================================
   ANGULAR MATERIAL - BEHAVIORAL RESET
   ==========================================================================

   PURPOSE: Neutralize Angular Material's visual defaults.

   ARCHITECTURE LAW:
   - Angular Material provides BEHAVIOR ONLY (accessibility, focus, keyboard)
   - All VISUALS belong to UI contracts
   - NO !important allowed
   - NO colors, backgrounds, borders, shadows, radius
   - ONLY transparent/none/0 values

   After this reset, Material components are transparent shells.
   UI contracts provide all visual styling.
   ========================================================================== */
/* ==========================================================================
   DIALOG RESET
   ========================================================================== */
.mat-mdc-dialog-container,
.mdc-dialog__container,
.mdc-dialog__surface {
  background: transparent;
  background-color: transparent;
  box-shadow: none;
  border: none;
  border-radius: 0;
  padding: 0;
}

.mat-mdc-dialog-surface {
  background: transparent;
  background-color: transparent;
  box-shadow: none;
  border: none;
  border-radius: 0;
}

/* ==========================================================================
   FORM FIELD RESET
   ========================================================================== */
.mat-mdc-form-field {
  --mdc-filled-text-field-container-color: transparent;
  --mdc-outlined-text-field-outline-color: transparent;
}

.mat-mdc-text-field-wrapper {
  background: transparent;
  background-color: transparent;
  border: none;
  box-shadow: none;
  border-radius: 0;
}

.mdc-text-field--filled:not(.mdc-text-field--disabled) {
  background: transparent;
  background-color: transparent;
}

.mdc-text-field--filled:not(.mdc-text-field--disabled)::before {
  background: transparent;
}

.mat-mdc-form-field-focus-overlay {
  background: transparent;
}

.mdc-line-ripple,
.mdc-line-ripple::before,
.mdc-line-ripple::after {
  display: none;
}

.mdc-text-field__ripple {
  display: none;
}

/* ==========================================================================
   INPUT / TEXTAREA RESET
   ========================================================================== */
.mat-mdc-input-element,
.mdc-text-field__input {
  background: transparent;
  border: none;
  box-shadow: none;
}

/* ==========================================================================
   SELECT PANEL RESET
   ========================================================================== */
.mat-mdc-select-panel {
  background: transparent;
  box-shadow: none;
  border: none;
  border-radius: 0;
}

.mat-mdc-option {
  background: transparent;
}

/* ==========================================================================
   CARD RESET
   ========================================================================== */
.mat-mdc-card {
  background: transparent;
  background-color: transparent;
  box-shadow: none;
  border: none;
  border-radius: 0;
}

.mat-mdc-card-content {
  padding: 0;
}

/* ==========================================================================
   MENU RESET
   ========================================================================== */
.mat-mdc-menu-panel,
.mat-menu-panel {
  background: transparent;
  box-shadow: none;
  border: none;
  border-radius: 0;
}

.mat-mdc-menu-content {
  background: transparent;
}

/* ==========================================================================
   TABLE RESET
   ========================================================================== */
.mat-mdc-table {
  background: transparent;
}

.mat-mdc-header-row {
  background: transparent;
}

.mat-mdc-row {
  background: transparent;
}

.mat-mdc-row:hover {
  background: transparent;
}

.mat-mdc-cell,
.mat-mdc-header-cell {
  background: transparent;
  border: none;
}

/* ==========================================================================
   BUTTON RESET
   ========================================================================== */
.mat-mdc-button,
.mat-mdc-raised-button,
.mat-mdc-flat-button,
.mat-mdc-stroked-button,
.mat-mdc-outlined-button,
.mat-mdc-unelevated-button {
  --mdc-text-button-container-color: transparent;
  --mdc-filled-button-container-color: transparent;
  --mdc-outlined-button-container-color: transparent;
  --mdc-protected-button-container-color: transparent;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
}

/* Ripple preserved for accessibility feedback - no reset needed */
.mat-mdc-icon-button {
  background: transparent;
  box-shadow: none;
}

/* ==========================================================================
   AUTOCOMPLETE RESET
   ========================================================================== */
.mat-mdc-autocomplete-panel:not(.glass-dropdown-panel) {
  background: transparent;
  box-shadow: none;
  border: none;
  border-radius: 0;
}

/* ==========================================================================
   DATEPICKER RESET
   ========================================================================== */
.mat-datepicker-content {
  background: transparent;
  box-shadow: none;
  border: none;
  border-radius: 0;
}

.mat-calendar {
  background: transparent;
}

/* ==========================================================================
   TABS RESET
   ========================================================================== */
.mat-mdc-tab-group {
  --mat-tab-header-inactive-label-text-color: inherit;
  --mat-tab-header-active-label-text-color: inherit;
}

.mat-mdc-tab-header {
  background: transparent;
  border: none;
}

.mat-mdc-tab {
  background: transparent;
}

/* ==========================================================================
   EXPANSION PANEL RESET
   ========================================================================== */
.mat-expansion-panel {
  background: transparent;
  box-shadow: none;
  border: none;
  border-radius: 0;
}

.mat-expansion-panel-header {
  background: transparent;
}

.mat-expansion-panel-body {
  background: transparent;
}

/* ==========================================================================
   CHECKBOX / RADIO RESET
   ========================================================================== */
.mat-mdc-checkbox,
.mat-mdc-radio-button {
  --mdc-checkbox-unselected-icon-color: currentColor;
  --mdc-radio-unselected-icon-color: currentColor;
}

/* ==========================================================================
   SLIDER RESET
   ========================================================================== */
.mat-mdc-slider {
  --mdc-slider-inactive-track-color: currentColor;
  --mdc-slider-active-track-color: currentColor;
  --mdc-slider-handle-color: currentColor;
}

/* ==========================================================================
   PROGRESS BAR / SPINNER RESET
   ========================================================================== */
.mat-mdc-progress-bar {
  --mdc-linear-progress-active-indicator-color: currentColor;
  --mdc-linear-progress-track-color: transparent;
}

.mat-mdc-progress-spinner {
  --mdc-circular-progress-active-indicator-color: currentColor;
}

/* ==========================================================================
   ICON STRUCTURAL FIX
   ========================================================================== */
mat-icon,
.mat-icon {
  min-width: 1em;
  min-height: 1em;
  flex-shrink: 0;
}

/* ==========================================================================
   END OF MATERIAL RESET
   ==========================================================================

   Angular Material has been demoted to a behavioral layer.
   All visuals are now owned by UI contracts.
   ========================================================================== */
/* material-reset MUST load before material */
/* ==========================================================================
   UI VENDORS - ANGULAR MATERIAL
   ==========================================================================
   Angular Material structural resets ONLY.

   ARCHITECTURE RULE:
   - This file provides NEUTRAL RESETS, not visual styling.
   - Visual ownership belongs ONLY to UI contracts (modals, forms, etc.)
   - NEVER use !important for background, border, color, surface.
   ========================================================================== */
/* ==========================================================================
   FORM FIELDS - Structural Reset
   ==========================================================================
   Remove Material's default fills and underlines.
   Visual styling is provided by UI contracts (forms.scss, etc.)
   ========================================================================== */
/* Reset filled background to transparent - allows UI contracts to apply */
.mdc-text-field--filled:not(.mdc-text-field--disabled) {
  background: transparent;
}

/* Remove underline - all themes use borderless inputs */
.mdc-line-ripple {
  display: none;
}

/* ==========================================================================
   SELECT/DROPDOWN PANELS
   ========================================================================== */
.mat-mdc-select-panel {
  background: var(--ui-glass-dark);
  backdrop-filter: var(--ui-blur-lg);
  -webkit-backdrop-filter: var(--ui-blur-lg);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-lg);
  box-shadow: var(--ui-shadow-lg);
}

.mat-mdc-option {
  color: var(--ui-text-secondary);
}

.mat-mdc-option:hover,
.mat-mdc-option.mdc-list-item--selected {
  background: var(--ui-surface-hover);
}

/* ==========================================================================
   DIALOG - Structural Reset
   ==========================================================================
   Base dialog container reset. Visual styling is provided by UI modal contracts.
   ========================================================================== */
/* Default dialog surface - transparent base for UI contracts to style */
.mat-mdc-dialog-container,
.mdc-dialog__surface {
  background: transparent;
  box-shadow: none;
  border: none;
  padding: 0;
}

/* ==========================================================================
   CHECKBOX & RADIO
   ========================================================================== */
.mat-mdc-checkbox .mdc-checkbox__background {
  border-color: var(--ui-border-hover);
}

.mat-mdc-checkbox.mat-mdc-checkbox-checked .mdc-checkbox__background {
  background-color: var(--ui-brand);
  border-color: var(--ui-brand);
}

/* ==========================================================================
   SLIDER
   ========================================================================== */
.mat-mdc-slider .mdc-slider__track--active_fill {
  border-color: var(--ui-brand);
}

.mat-mdc-slider .mdc-slider__thumb-knob {
  background-color: var(--ui-brand);
  border-color: var(--ui-brand);
}

/* ==========================================================================
   TOOLTIP - MOVED TO CENTRALIZED CONTRACT
   ==========================================================================
   Tooltip styles have been consolidated into ui/overlays/tooltip.scss
   ========================================================================== */
/* ==========================================================================
   SNACKBAR / TOAST NOTIFICATIONS
   ========================================================================== */
/* Animate the overlay PANE — not the container.
   Material's @state Angular animation owns the container; animating it
   there conflicts and causes the snackbar to be invisible on open.
   The pane is never touched by Material's animation, so it is safe. */
@keyframes snackbarSlideIn {
  from {
    transform: translateX(calc(100% + 32px));
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}
.cdk-overlay-pane:has(.mat-mdc-snack-bar-container),
.cdk-overlay-pane:has(.mat-snack-bar-container) {
  animation: snackbarSlideIn 0.28s cubic-bezier(0.16, 1, 0.3, 1) both;
}

/* Position ALL snackbars to top-right (desktop + mobile) */
.cdk-global-overlay-wrapper:has(.mat-mdc-snack-bar-container),
.cdk-global-overlay-wrapper:has(.mat-snack-bar-container) {
  justify-content: flex-end !important;
  align-items: flex-start !important;
  padding: var(--ui-space-4) !important;
}

/* Glass container styling — NO animation here (Material owns it) */
.mat-snack-bar-container,
.mat-mdc-snack-bar-container {
  color: var(--ui-text-primary) !important;
  background: rgba(22, 18, 14, 0.85) !important;
  backdrop-filter: blur(24px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(24px) saturate(160%) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  border-left: 4px solid var(--ui-brand) !important;
  border-radius: var(--ui-radius-md) !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5), 0 2px 8px rgba(0, 0, 0, 0.3) !important;
  padding: var(--ui-space-4) var(--ui-space-5) !important;
  min-width: 320px !important;
  max-width: 480px !important;
}

/* Inner MDC surface must be transparent so the glass shows through */
.mat-mdc-snack-bar-container .mdc-snackbar__surface {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* Success toast - Green */
.toast-success .mat-snack-bar-container,
.toast-success .mat-mdc-snack-bar-container,
.mat-snack-bar-container.toast-success,
.mat-mdc-snack-bar-container.toast-success,
.snackbar-success .mat-snack-bar-container,
.snackbar-success .mat-mdc-snack-bar-container,
.mat-snack-bar-container.snackbar-success,
.mat-mdc-snack-bar-container.snackbar-success {
  border-left-color: var(--ui-success) !important;
}

/* Error toast - Red */
.toast-error .mat-snack-bar-container,
.toast-error .mat-mdc-snack-bar-container,
.mat-snack-bar-container.toast-error,
.mat-mdc-snack-bar-container.toast-error,
.snackbar-error .mat-snack-bar-container,
.snackbar-error .mat-mdc-snack-bar-container,
.mat-snack-bar-container.snackbar-error,
.mat-mdc-snack-bar-container.snackbar-error {
  border-left-color: var(--ui-danger) !important;
}

/* Info toast - Blue */
.toast-info .mat-snack-bar-container,
.toast-info .mat-mdc-snack-bar-container,
.mat-snack-bar-container.toast-info,
.mat-mdc-snack-bar-container.toast-info,
.snackbar-info .mat-snack-bar-container,
.snackbar-info .mat-mdc-snack-bar-container,
.mat-snack-bar-container.snackbar-info,
.mat-mdc-snack-bar-container.snackbar-info {
  border-left-color: var(--ui-info) !important;
}

/* Warning toast - Yellow/Orange */
.toast-warning .mat-snack-bar-container,
.toast-warning .mat-mdc-snack-bar-container,
.mat-snack-bar-container.toast-warning,
.mat-mdc-snack-bar-container.toast-warning,
.snackbar-warning .mat-snack-bar-container,
.snackbar-warning .mat-mdc-snack-bar-container,
.mat-snack-bar-container.snackbar-warning,
.mat-mdc-snack-bar-container.snackbar-warning {
  border-left-color: var(--ui-warning) !important;
}

/* Toast message styling */
.mat-simple-snackbar,
.mat-mdc-simple-snack-bar {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
}

.mat-simple-snackbar .mat-simple-snack-bar-content,
.mat-mdc-simple-snack-bar .mat-mdc-snack-bar-label {
  display: flex;
  flex-direction: column;
  gap: var(--ui-space-1);
  flex: 1;
  color: var(--ui-text-primary) !important;
  font-size: var(--ui-text-base);
}

/* Maximum specificity override for snackbar buttons */
.mat-snack-bar-container button,
.mat-mdc-snack-bar-container button,
.mat-snack-bar-container .mat-button,
.mat-snack-bar-container .mat-mdc-button,
.mat-snack-bar-container [mat-button],
.mat-snack-bar-container .mat-simple-snackbar-action,
.mat-simple-snackbar-action,
.mat-mdc-snack-bar-action {
  color: var(--ui-brand) !important;
  font-size: 0 !important;
  background: transparent !important;
  background-color: transparent !important;
  transition: none !important;
  pointer-events: auto !important;
}

.mat-snack-bar-container button:hover,
.mat-mdc-snack-bar-container button:hover,
.mat-snack-bar-container button:focus,
.mat-mdc-snack-bar-container button:focus,
.mat-snack-bar-container button:active,
.mat-mdc-snack-bar-container button:active,
.mat-simple-snackbar-action:hover,
.mat-mdc-snack-bar-action:hover,
.mat-simple-snackbar-action:focus,
.mat-mdc-snack-bar-action:focus,
.mat-simple-snackbar-action:active,
.mat-mdc-snack-bar-action:active,
.mat-simple-snackbar-action.cdk-program-focused,
.mat-simple-snackbar-action.cdk-keyboard-focused,
.mat-simple-snackbar-action.mat-button-focus-overlay-host {
  background: transparent !important;
  background-color: transparent !important;
  opacity: 1 !important;
}

.mat-simple-snackbar-action .mat-button-focus-overlay,
.mat-mdc-snack-bar-action .mat-button-focus-overlay,
.mat-simple-snackbar-action .mat-ripple-element,
.mat-mdc-snack-bar-action .mat-ripple-element {
  display: none !important;
  opacity: 0 !important;
  background: transparent !important;
  background-color: transparent !important;
}

/* X icon for close button instead of text */
.mat-simple-snackbar-action::before,
.mat-mdc-snack-bar-action::before {
  content: "✕";
  font-size: var(--ui-text-xl);
  font-weight: var(--ui-font-normal);
  line-height: 1;
}

/* ==========================================================================
   PROGRESS SPINNER
   ========================================================================== */
.mat-mdc-progress-spinner circle {
  stroke: var(--ui-brand) !important;
}

/* ==========================================================================
   LEGACY MAT-MENU STYLES (Migrated from styles.scss)
   ========================================================================== */
/* Mat-menu backdrop - prevent blur behind dropdown menus */
.cdk-overlay-connected-position-bounding-box ~ .cdk-overlay-backdrop {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Mat-menu panels - disable blur only for non-contract menus */
.mat-mdc-menu-panel:not(.glass-dropdown-panel):not(.glass-menu):not(.ui-dropdown-panel),
.mat-menu-panel:not(.glass-dropdown-panel):not(.glass-menu):not(.ui-dropdown-panel) {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* ==========================================================================
   MAT-ICON FIX
   ========================================================================== 
   Fix for mat-icon shrinking to 0 width in flex containers.
   Without isolation:isolate on .cdk-overlay-container, some flex layouts
   would cause mat-icons to collapse. This ensures minimum sizing.
   ========================================================================== */
mat-icon,
.mat-icon {
  min-width: 1em;
  min-height: 1em;
  flex-shrink: 0;
}

/* Ensure mat-menu renders above dialog blur */
/* NOTE: isolation removed - it was blocking backdrop-filter on ALL overlay children including tooltips */
/* .cdk-overlay-container {
  isolation: isolate;
} */
.cdk-overlay-pane:has(.mat-mdc-menu-panel),
.cdk-overlay-pane:has(.mat-menu-panel) {
  z-index: 10002 !important;
}

/* ==========================================================================
   11. TAILWIND (gradual phase-out)
   ========================================================================== */
*, ::before, ::after{
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}
::backdrop{
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}
.\!container{
  width: 100% !important;
}
.container{
  width: 100%;
}
@media (min-width: 640px){
  .\!container{
    max-width: 640px !important;
  }
  .container{
    max-width: 640px;
  }
}
@media (min-width: 768px){
  .\!container{
    max-width: 768px !important;
  }
  .container{
    max-width: 768px;
  }
}
@media (min-width: 1024px){
  .\!container{
    max-width: 1024px !important;
  }
  .container{
    max-width: 1024px;
  }
}
@media (min-width: 1280px){
  .\!container{
    max-width: 1280px !important;
  }
  .container{
    max-width: 1280px;
  }
}
@media (min-width: 1536px){
  .\!container{
    max-width: 1536px !important;
  }
  .container{
    max-width: 1536px;
  }
}
.sr-only{
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}
.\!visible{
  visibility: visible !important;
}
.visible{
  visibility: visible;
}
.invisible{
  visibility: hidden;
}
.collapse{
  visibility: collapse;
}
.static{
  position: static;
}
.fixed{
  position: fixed;
}
.absolute{
  position: absolute;
}
.relative{
  position: relative;
}
.sticky{
  position: sticky;
}
.order-1{
  order: 1;
}
.order-10{
  order: 10;
}
.order-11{
  order: 11;
}
.order-12{
  order: 12;
}
.order-2{
  order: 2;
}
.order-3{
  order: 3;
}
.order-4{
  order: 4;
}
.order-5{
  order: 5;
}
.order-6{
  order: 6;
}
.order-7{
  order: 7;
}
.order-8{
  order: 8;
}
.order-9{
  order: 9;
}
.order-first{
  order: -9999;
}
.order-last{
  order: 9999;
}
.col-auto{
  grid-column: auto;
}
.float-right{
  float: right;
}
.float-left{
  float: left;
}
.float-none{
  float: none;
}
.m-0{
  margin: 0px;
}
.m-1{
  margin: 0.25rem;
}
.m-2{
  margin: 0.5rem;
}
.m-3{
  margin: 0.75rem;
}
.m-4{
  margin: 1rem;
}
.m-5{
  margin: 1.25rem;
}
.m-auto{
  margin: auto;
}
.mx-0{
  margin-left: 0px;
  margin-right: 0px;
}
.mx-1{
  margin-left: 0.25rem;
  margin-right: 0.25rem;
}
.mx-2{
  margin-left: 0.5rem;
  margin-right: 0.5rem;
}
.mx-3{
  margin-left: 0.75rem;
  margin-right: 0.75rem;
}
.mx-4{
  margin-left: 1rem;
  margin-right: 1rem;
}
.mx-5{
  margin-left: 1.25rem;
  margin-right: 1.25rem;
}
.mx-auto{
  margin-left: auto;
  margin-right: auto;
}
.my-0{
  margin-top: 0px;
  margin-bottom: 0px;
}
.my-1{
  margin-top: 0.25rem;
  margin-bottom: 0.25rem;
}
.my-2{
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}
.my-3{
  margin-top: 0.75rem;
  margin-bottom: 0.75rem;
}
.my-4{
  margin-top: 1rem;
  margin-bottom: 1rem;
}
.my-5{
  margin-top: 1.25rem;
  margin-bottom: 1.25rem;
}
.my-auto{
  margin-top: auto;
  margin-bottom: auto;
}
.mb-0{
  margin-bottom: 0px;
}
.mb-1{
  margin-bottom: 0.25rem;
}
.mb-2{
  margin-bottom: 0.5rem;
}
.mb-3{
  margin-bottom: 0.75rem;
}
.mb-4{
  margin-bottom: 1rem;
}
.mb-5{
  margin-bottom: 1.25rem;
}
.me-2{
  margin-inline-end: 0.5rem;
}
.ml-1{
  margin-left: 0.25rem;
}
.ml-2{
  margin-left: 0.5rem;
}
.ml-3{
  margin-left: 0.75rem;
}
.ml-4{
  margin-left: 1rem;
}
.mr-1{
  margin-right: 0.25rem;
}
.mr-2{
  margin-right: 0.5rem;
}
.mr-4{
  margin-right: 1rem;
}
.mr-5{
  margin-right: 1.25rem;
}
.mt-0{
  margin-top: 0px;
}
.mt-1{
  margin-top: 0.25rem;
}
.mt-2{
  margin-top: 0.5rem;
}
.mt-3{
  margin-top: 0.75rem;
}
.mt-4{
  margin-top: 1rem;
}
.mt-5{
  margin-top: 1.25rem;
}
.block{
  display: block;
}
.inline-block{
  display: inline-block;
}
.inline{
  display: inline;
}
.flex{
  display: flex;
}
.inline-flex{
  display: inline-flex;
}
.table{
  display: table;
}
.table-cell{
  display: table-cell;
}
.table-header-group{
  display: table-header-group;
}
.table-row{
  display: table-row;
}
.grid{
  display: grid;
}
.contents{
  display: contents;
}
.list-item{
  display: list-item;
}
.\!hidden{
  display: none !important;
}
.hidden{
  display: none;
}
.h-auto{
  height: auto;
}
.w-auto{
  width: auto;
}
.flex-1{
  flex: 1 1 0%;
}
.flex-shrink{
  flex-shrink: 1;
}
.flex-shrink-0{
  flex-shrink: 0;
}
.flex-grow{
  flex-grow: 1;
}
.flex-grow-0{
  flex-grow: 0;
}
.table-fixed{
  table-layout: fixed;
}
.border-collapse{
  border-collapse: collapse;
}
.transform{
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.cursor-pointer{
  cursor: pointer;
}
.select-all{
  -webkit-user-select: all;
          user-select: all;
}
.resize{
  resize: both;
}
.flex-row{
  flex-direction: row;
}
.flex-row-reverse{
  flex-direction: row-reverse;
}
.flex-wrap{
  flex-wrap: wrap;
}
.flex-wrap-reverse{
  flex-wrap: wrap-reverse;
}
.flex-nowrap{
  flex-wrap: nowrap;
}
.gap-1{
  gap: 0.25rem;
}
.gap-2{
  gap: 0.5rem;
}
.gap-3{
  gap: 0.75rem;
}
.gap-4{
  gap: 1rem;
}
.overflow-auto{
  overflow: auto;
}
.overflow-hidden{
  overflow: hidden;
}
.truncate{
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.text-wrap{
  text-wrap: wrap;
}
.text-nowrap{
  text-wrap: nowrap;
}
.break-all{
  word-break: break-all;
}
.rounded{
  border-radius: 0.25rem;
}
.rounded-lg{
  border-radius: 0.5rem;
}
.rounded-sm{
  border-radius: 0.125rem;
}
.border{
  border-width: 1px;
}
.border-0{
  border-width: 0px;
}
.border-white{
  --tw-border-opacity: 1;
  border-color: rgb(255 255 255 / var(--tw-border-opacity));
}
.bg-transparent{
  background-color: transparent;
}
.bg-white{
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
}
.p-0{
  padding: 0px;
}
.p-1{
  padding: 0.25rem;
}
.p-2{
  padding: 0.5rem;
}
.p-3{
  padding: 0.75rem;
}
.p-4{
  padding: 1rem;
}
.p-5{
  padding: 1.25rem;
}
.px-0{
  padding-left: 0px;
  padding-right: 0px;
}
.px-1{
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}
.px-2{
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.px-3{
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
.px-4{
  padding-left: 1rem;
  padding-right: 1rem;
}
.px-5{
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}
.py-0{
  padding-top: 0px;
  padding-bottom: 0px;
}
.py-1{
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}
.py-2{
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.py-3{
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.py-4{
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.py-5{
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}
.pb-0{
  padding-bottom: 0px;
}
.pb-1{
  padding-bottom: 0.25rem;
}
.pb-2{
  padding-bottom: 0.5rem;
}
.pb-3{
  padding-bottom: 0.75rem;
}
.pl-0{
  padding-left: 0px;
}
.pl-1{
  padding-left: 0.25rem;
}
.pl-2{
  padding-left: 0.5rem;
}
.pl-3{
  padding-left: 0.75rem;
}
.pr-1{
  padding-right: 0.25rem;
}
.pr-2{
  padding-right: 0.5rem;
}
.pt-1{
  padding-top: 0.25rem;
}
.pt-2{
  padding-top: 0.5rem;
}
.pt-3{
  padding-top: 0.75rem;
}
.text-left{
  text-align: left;
}
.text-center{
  text-align: center;
}
.text-right{
  text-align: right;
}
.text-justify{
  text-align: justify;
}
.align-baseline{
  vertical-align: baseline;
}
.align-top{
  vertical-align: top;
}
.align-middle{
  vertical-align: middle;
}
.align-bottom{
  vertical-align: bottom;
}
.align-text-top{
  vertical-align: text-top;
}
.align-text-bottom{
  vertical-align: text-bottom;
}
.font-mono{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
.uppercase{
  text-transform: uppercase;
}
.lowercase{
  text-transform: lowercase;
}
.capitalize{
  text-transform: capitalize;
}
.italic{
  font-style: italic;
}
.text-white{
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}
.underline{
  text-decoration-line: underline;
}
.antialiased{
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.shadow{
  --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-lg{
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-none{
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-sm{
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.outline{
  outline-style: solid;
}
.ring{
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.blur{
  --tw-blur: blur(8px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.\!filter{
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow) !important;
}
.filter{
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.backdrop-filter{
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.\!transition{
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter !important;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
  transition-duration: 150ms !important;
}
.transition{
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.ease-in{
  transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
}
.ease-in-out{
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.ease-out{
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
/* ==========================================================================
   12. TEMPORARY OVERRIDES
   ========================================================================== */
/* ==========================================================================
   UI OVERRIDES - TEMPORARY MIGRATION ESCAPE HATCH
   ==========================================================================

   ⚠️  WARNING: This file is TEMPORARY.
   ⚠️  Any code here must trend toward ZERO.
   ⚠️  Add comments explaining WHY each override exists.
   ⚠️  Each override should have a TODO for proper migration.

   Rules:
   1. Every rule MUST have a comment explaining the migration blocker
   2. Every rule MUST have a TODO with target date or condition
   3. Overrides MUST be removed as component migrations complete

   ========================================================================== */
/* ==========================================================================
   EXISTING LEGACY OVERRIDES
   Migrated from styles.css - to be removed as components adopt ui-* classes
   ========================================================================== */
/*
 * TODO: Remove after drawer components migrate to ui-drawer classes
 * BLOCKER: Drawer components still use drawer-open body class
 */
body.drawer-open .careager-topbar,
body.drawer-open .navbar-custom.careager-topbar,
html body.drawer-open .careager-topbar {
  z-index: 1 !important;
}

body.drawer-open .left-side-menu.glass-sidebar,
body.drawer-open .left-side-menu,
html body.drawer-open .left-side-menu.glass-sidebar {
  z-index: 1 !important;
}

/*
 * TODO: Remove after CDK overlay z-index normalization
 * BLOCKER: Multiple dialog panel classes need z-index contract adoption
 */
.cdk-overlay-container:has(.cdk-overlay-pane.glass-dialog-panel),
.cdk-overlay-container:has(.cdk-overlay-pane.transparent-surface-dialog),
.cdk-overlay-container:has(.cdk-overlay-pane.neo-dialog-panel),
.cdk-overlay-container:has(.cdk-overlay-pane.job-details-dialog-panel) {
  z-index: 10010 !important;
}

/*
 * TODO: Remove after global button cursor audit
 * BLOCKER: Ensuring all interactive elements have pointer cursor
 */
button,
[role=button],
.btn,
.glass-btn,
.pill-btn,
.close-btn,
.mat-button,
.mat-icon-button,
.mat-mdc-button,
.mat-mdc-icon-button {
  cursor: pointer !important;
}

button:disabled,
.btn:disabled,
.glass-btn:disabled,
.pill-btn:disabled {
  cursor: not-allowed !important;
}

/*
 * TODO: Remove after legacy dropdowns adopt ui-dropdown contract and stop rendering full-screen backdrops
 * BLOCKER: Legacy search dropdowns inject fixed backdrops at app-root that intercept clicks
 * NOTE: settings-dropdown-backdrop and branch-dropdown-backdrop removed - they now properly work via their own SCSS contracts
 */
.search-dropdown-backdrop {
  pointer-events: none !important;
  background: transparent !important;
}

/*
 * TODO: Remove once remark-image classes are scoped per component
 * BLOCKER: Sales details component has no scoped SCSS for remark image thumbnails
 */
/* Compose bar: ensure preview strip wraps onto its own line */
.activity-compose-v2 {
  flex-wrap: wrap;
}

.activity-compose-v2 .remark-image-preview-strip {
  width: 100%;
  order: -1;
}

/* Compose preview thumbnails */
.remark-image-preview-strip {
  display: flex;
  gap: 6px;
  padding: 6px 8px 0;
  flex-wrap: wrap;
  width: 100%;
}

.remark-preview-item {
  position: relative;
  width: 44px;
  height: 44px;
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.15);
}

.remark-preview-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.remark-preview-remove {
  position: absolute;
  top: -2px;
  right: -2px;
  width: 16px;
  height: 16px;
  background: rgba(220, 50, 50, 0.9);
  border: none;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
}

.remark-preview-remove mat-icon {
  font-size: 10px;
  width: 10px;
  height: 10px;
  color: #fff;
}

/* Activity feed image thumbnails */
.remark-images-row {
  display: flex;
  gap: 6px;
  margin-top: 6px;
  flex-wrap: wrap;
}

.remark-thumb {
  width: 52px;
  height: 52px;
  object-fit: cover;
  border-radius: 6px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  cursor: pointer;
  transition: all 0.2s ease;
}

.remark-thumb:hover {
  border-color: rgba(255, 176, 131, 0.4);
  transform: scale(1.05);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

/* Customer tab tooltip — multi-line */
.customer-tooltip .mdc-tooltip__surface {
  white-space: pre-line !important;
  text-align: left !important;
  max-width: 280px !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
}

/* ==========================================================================
   13. PRINT CONTRACT
   ==========================================================================
   Loaded via angular.json as src/print-contract.scss so it is emitted AFTER
   Bootstrap/vendor styles. Do not import it here.
   ========================================================================== */
/* ==========================================================================
   14. FOUC PREVENTION — App-Root Reveal
   ==========================================================================
   index.html sets `app-root { opacity: 0 }` via inline critical CSS.
   Once THIS stylesheet is fully parsed (meaning all layout/component styles
   are applied), we reveal app-root with a smooth fade-in.
   This guarantees the login page (and all pages) are fully styled before
   the user sees any content — eliminating the "cheap flash" of unstyled HTML.
   ========================================================================== */
app-root {
  opacity: 1 !important;
  height: 100%;
  overflow: hidden;
  animation: appReveal 350ms ease-out both;
}

@keyframes appReveal {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/*!****************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[2]!./src/assets/css/bootstrap.min.css?ngGlobalStyle ***!
  \****************************************************************************************************************************************************************************************************************************************/
/*!
 * Bootstrap v4.3.1 (https://getbootstrap.com/)
 * Copyright 2011-2019 The Bootstrap Authors
 * Copyright 2011-2019 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */

 :root {
     --indigo: #675aa9;
     --red: #ff5b5b;
     --orange: #fd7e14;
     --yellow: #f9c851;
     --green: #10c469;
     --teal: #02a8b5;
     --cyan: #35b8e0;
     --white: #fff;
     --gray: #adb5bd;
     --gray-dark: #f7f7f7;
     --primary: #71b6f9;
     --secondary: #6c757d;
     --success: #10c469;
     --info: #35b8e0;
     --warning: #f9c851;
     --danger: #ff5b5b;
     --light: #323a46;
     --dark: #f1f5f7;
     --pink: #ff8acc;
     --purple: #5b69bc;
     --blue: #71b6f9;
     --breakpoint-xs: 0;
     --breakpoint-sm: 576px;
     --breakpoint-md: 768px;
     --breakpoint-lg: 992px;
     --breakpoint-xl: 1200px;
     --font-family-sans-serif: "Roboto", sans-serif;
     --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace
 }
 
 *,
 ::after,
 ::before {
     box-sizing: border-box
 }
 
 html {
     font-family: sans-serif;
     line-height: 1.15;
     -webkit-text-size-adjust: 100%;
     -webkit-tap-highlight-color: transparent
 }
 
 article,
 aside,
 figcaption,
 figure,
 footer,
 header,
 hgroup,
 main,
 nav,
 section {
     display: block
 }
 
 body {
     margin: 0;
     font-family: Roboto, sans-serif;
     font-size: .9rem;
     font-weight: 400;
     line-height: 1.5;
     color: #adb5bd;
     text-align: left;
     background-color: #282e38
 }
 
 [tabindex="-1"]:focus {
     outline: 0!important
 }
 
 hr {
     box-sizing: content-box;
     height: 0;
     overflow: visible
 }
 
 h1,
 h2,
 h3,
 h4,
 h5,
 h6 {
     margin-top: 0;
     margin-bottom: 1.5rem
 }
 
 p {
     margin-top: 0;
     margin-bottom: 1rem
 }
 
 abbr[data-original-title],
 abbr[title] {
     text-decoration: underline;
     -webkit-text-decoration: underline dotted;
     text-decoration: underline dotted;
     cursor: help;
     border-bottom: 0;
     -webkit-text-decoration-skip-ink: none;
             text-decoration-skip-ink: none
 }
 
 address {
     margin-bottom: 1rem;
     font-style: normal;
     line-height: inherit
 }
 
 dl,
 ol,
 ul {
     margin-top: 0;
     margin-bottom: 1rem
 }
 
 ol ol,
 ol ul,
 ul ol,
 ul ul {
     margin-bottom: 0
 }
 
 dt {
     font-weight: 700
 }
 
 dd {
     margin-bottom: .5rem;
     margin-left: 0
 }
 
 blockquote {
     margin: 0 0 1rem
 }
 
 b,
 strong {
     font-weight: bolder
 }
 
 small {
     font-size: 80%
 }
 
 sub,
 sup {
     position: relative;
     font-size: 75%;
     line-height: 0;
     vertical-align: baseline
 }
 
 sub {
     bottom: -.25em
 }
 
 sup {
     top: -.5em
 }
 
 a {
     color: #71b6f9;
     text-decoration: none;
     background-color: transparent
 }
 
 a:hover {
     color: #2890f6;
     text-decoration: none
 }
 
 a:not([href]):not([tabindex]) {
     color: inherit;
     text-decoration: none
 }
 
 a:not([href]):not([tabindex]):focus,
 a:not([href]):not([tabindex]):hover {
     color: inherit;
     text-decoration: none
 }
 
 a:not([href]):not([tabindex]):focus {
     outline: 0
 }
 
 code,
 kbd,
 pre,
 samp {
     font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
     font-size: 1em
 }
 
 pre {
     margin-top: 0;
     margin-bottom: 1rem;
     overflow: auto
 }
 
 figure {
     margin: 0 0 1rem
 }
 
 img {
     vertical-align: middle;
     border-style: none
 }
 
 svg {
     overflow: hidden;
     vertical-align: middle
 }
 
 table {
     border-collapse: collapse
 }
 
 caption {
     padding-top: .85rem;
     padding-bottom: .85rem;
     color: #6c757d;
     text-align: left;
     caption-side: bottom
 }
 
 th {
     text-align: inherit
 }
 
 label {
     display: inline-block;
     margin-bottom: .5rem
 }
 
 button {
     border-radius: 0
 }
 
 button:focus {
     outline: 1px dotted;
     outline: 5px auto -webkit-focus-ring-color
 }
 
 button,
 input,
 optgroup,
 select,
 textarea {
     margin: 0;
     font-family: inherit;
     font-size: inherit;
     line-height: inherit
 }
 
 button,
 input {
     overflow: visible
 }
 
 button,
 select {
     text-transform: none
 }
 
 select {
     word-wrap: normal
 }
 
 [type=button],
 [type=reset],
 [type=submit],
 button {
     -webkit-appearance: button
 }
 
 [type=button]:not(:disabled),
 [type=reset]:not(:disabled),
 [type=submit]:not(:disabled),
 button:not(:disabled) {
     cursor: pointer
 }
 
 [type=button]::-moz-focus-inner,
 [type=reset]::-moz-focus-inner,
 [type=submit]::-moz-focus-inner,
 button::-moz-focus-inner {
     padding: 0;
     border-style: none
 }
 
 input[type=checkbox],
 input[type=radio] {
     box-sizing: border-box;
     padding: 0
 }
 
 input[type=date],
 input[type=datetime-local],
 input[type=month],
 input[type=time] {
     -webkit-appearance: listbox
 }
 
 textarea {
     overflow: auto;
     resize: vertical
 }
 
 fieldset {
     min-width: 0;
     padding: 0;
     margin: 0;
     border: 0
 }
 
 legend {
     display: block;
     width: 100%;
     max-width: 100%;
     padding: 0;
     margin-bottom: .5rem;
     font-size: 1.5rem;
     line-height: inherit;
     color: inherit;
     white-space: normal
 }
 
 progress {
     vertical-align: baseline
 }
 
 [type=number]::-webkit-inner-spin-button,
 [type=number]::-webkit-outer-spin-button {
     height: auto
 }
 
 [type=search] {
     outline-offset: -2px;
     -webkit-appearance: none
 }
 
 [type=search]::-webkit-search-decoration {
     -webkit-appearance: none
 }
 
 ::-webkit-file-upload-button {
     font: inherit;
     -webkit-appearance: button
 }
 
 output {
     display: inline-block
 }
 
 summary {
     display: list-item;
     cursor: pointer
 }
 
 template {
     display: none
 }
 
 [hidden] {
     display: none!important
 }
 
 .h1,
 .h2,
 .h3,
 .h4,
 .h5,
 .h6,
 h1,
 h2,
 h3,
 h4,
 h5,
 h6 {
     margin-bottom: 1.5rem;
     font-weight: 400;
     line-height: 1.1
 }
 
 .h1,
 h1 {
     font-size: 2.25rem
 }
 
 .h2,
 h2 {
     font-size: 1.875rem
 }
 
 .h3,
 h3 {
     font-size: 1.5rem
 }
 
 .h4,
 h4 {
     font-size: 1.125rem
 }
 
 .h5,
 h5 {
     font-size: .9375rem
 }
 
 .h6,
 h6 {
     font-size: .75rem
 }
 
 .lead {
     font-size: 1.125rem;
     font-weight: 300
 }
 
 .display-1 {
     font-size: 6rem;
     font-weight: 300;
     line-height: 1.1
 }
 
 .display-2 {
     font-size: 5.5rem;
     font-weight: 300;
     line-height: 1.1
 }
 
 .display-3 {
     font-size: 4.5rem;
     font-weight: 300;
     line-height: 1.1
 }
 
 .display-4 {
     font-size: 3.5rem;
     font-weight: 300;
     line-height: 1.1
 }
 
 hr {
     margin-top: 1rem;
     margin-bottom: 1rem;
     border: 0;
     border-top: 1px solid #3b4452
 }
 
 .small,
 small {
     font-size: .75rem;
     font-weight: 400
 }
 
 .mark,
 mark {
     padding: .2em;
     background-color: #fcf8e3
 }
 
 .list-unstyled {
     padding-left: 0;
     list-style: none
 }
 
 .list-inline {
     padding-left: 0;
     list-style: none
 }
 
 .list-inline-item {
     display: inline-block
 }
 
 .list-inline-item:not(:last-child) {
     margin-right: 6px
 }
 
 .initialism {
     font-size: 90%;
     text-transform: uppercase
 }
 
 .blockquote {
     margin-bottom: 1.5rem;
     font-size: 1.125rem
 }
 
 .blockquote-footer {
     display: block;
     font-size: 80%;
     color: #6c757d
 }
 
 .blockquote-footer::before {
     content: "\2014\00A0"
 }
 
 .img-fluid {
     max-width: 100%;
     height: auto
 }
 
 .img-thumbnail {
     padding: .25rem;
     background-color: #3b4452;
     border: 1px solid #434e5e;
     border-radius: .25rem;
     max-width: 100%;
     height: auto
 }
 
 .figure {
     display: inline-block
 }
 
 .figure-img {
     margin-bottom: .75rem;
     line-height: 1
 }
 
 .figure-caption {
     font-size: 90%;
     color: #6c757d
 }
 
 code {
     font-size: 87.5%;
     color: #ff8acc;
     word-break: break-word
 }
 
 a>code {
     color: inherit
 }
 
 kbd {
     padding: .2rem .4rem;
     font-size: 87.5%;
     color: #fff;
     background-color: #212529;
     border-radius: .2rem
 }
 
 kbd kbd {
     padding: 0;
     font-size: 100%;
     font-weight: 700
 }
 
 pre {
     display: block;
     font-size: 87.5%;
     color: #f7f7f7
 }
 
 pre code {
     font-size: inherit;
     color: inherit;
     word-break: normal
 }
 
 .pre-scrollable {
     max-height: 340px;
     overflow-y: scroll
 }
 
 .container {
     width: 100%;
     padding-right: 12px;
     padding-left: 12px;
     margin-right: auto;
     margin-left: auto
 }
 
 @media (min-width:576px) {
     .container {
         max-width: 540px
     }
 }
 
 @media (min-width:768px) {
     .container {
         max-width: 720px
     }
 }
 
 @media (min-width:992px) {
     .container {
         max-width: 960px
     }
 }
 
 @media (min-width:1200px) {
     .container {
         max-width: 1140px
     }
 }
 
 .container-fluid {
     width: 100%;
     padding-right: 12px;
     padding-left: 12px;
     margin-right: auto;
     margin-left: auto
 }
 
 .row {
     display: flex;
     flex-wrap: wrap;
     margin-right: -12px;
     margin-left: -12px
 }
 
 .no-gutters {
     margin-right: 0;
     margin-left: 0
 }
 
 .no-gutters>.col,
 .no-gutters>[class*=col-] {
     padding-right: 0;
     padding-left: 0
 }
 
 .col,
 .col-1,
 .col-10,
 .col-11,
 .col-12,
 .col-2,
 .col-3,
 .col-4,
 .col-5,
 .col-6,
 .col-7,
 .col-8,
 .col-9,
 .col-auto,
 .col-lg,
 .col-lg-1,
 .col-lg-10,
 .col-lg-11,
 .col-lg-12,
 .col-lg-2,
 .col-lg-3,
 .col-lg-4,
 .col-lg-5,
 .col-lg-6,
 .col-lg-7,
 .col-lg-8,
 .col-lg-9,
 .col-lg-auto,
 .col-md,
 .col-md-1,
 .col-md-10,
 .col-md-11,
 .col-md-12,
 .col-md-2,
 .col-md-3,
 .col-md-4,
 .col-md-5,
 .col-md-6,
 .col-md-7,
 .col-md-8,
 .col-md-9,
 .col-md-auto,
 .col-sm,
 .col-sm-1,
 .col-sm-10,
 .col-sm-11,
 .col-sm-12,
 .col-sm-2,
 .col-sm-3,
 .col-sm-4,
 .col-sm-5,
 .col-sm-6,
 .col-sm-7,
 .col-sm-8,
 .col-sm-9,
 .col-sm-auto,
 .col-xl,
 .col-xl-1,
 .col-xl-10,
 .col-xl-11,
 .col-xl-12,
 .col-xl-2,
 .col-xl-3,
 .col-xl-4,
 .col-xl-5,
 .col-xl-6,
 .col-xl-7,
 .col-xl-8,
 .col-xl-9,
 .col-xl-auto {
     position: relative;
     width: 100%;
     padding-right: 12px;
     padding-left: 12px
 }
 
 .col {
     flex-basis: 0;
     flex-grow: 1;
     max-width: 100%
 }
 
 .col-auto {
     flex: 0 0 auto;
     width: auto;
     max-width: 100%
 }
 
 .col-1 {
     flex: 0 0 8.33333%;
     max-width: 8.33333%
 }
 
 .col-2 {
     flex: 0 0 16.66667%;
     max-width: 16.66667%
 }
 
 .col-3 {
     flex: 0 0 25%;
     max-width: 25%
 }
 
 .col-4 {
     flex: 0 0 33.33333%;
     max-width: 33.33333%
 }
 
 .col-5 {
     flex: 0 0 41.66667%;
     max-width: 41.66667%
 }
 
 .col-6 {
     flex: 0 0 50%;
     max-width: 50%
 }
 
 .col-7 {
     flex: 0 0 58.33333%;
     max-width: 58.33333%
 }
 
 .col-8 {
     flex: 0 0 66.66667%;
     max-width: 66.66667%
 }
 
 .col-9 {
     flex: 0 0 75%;
     max-width: 75%
 }
 
 .col-10 {
     flex: 0 0 83.33333%;
     max-width: 83.33333%
 }
 
 .col-11 {
     flex: 0 0 91.66667%;
     max-width: 91.66667%
 }
 
 .col-12 {
     flex: 0 0 100%;
     max-width: 100%
 }
 
 .order-first {
     order: -1
 }
 
 .order-last {
     order: 13
 }
 
 .order-0 {
     order: 0
 }
 
 .order-1 {
     order: 1
 }
 
 .order-2 {
     order: 2
 }
 
 .order-3 {
     order: 3
 }
 
 .order-4 {
     order: 4
 }
 
 .order-5 {
     order: 5
 }
 
 .order-6 {
     order: 6
 }
 
 .order-7 {
     order: 7
 }
 
 .order-8 {
     order: 8
 }
 
 .order-9 {
     order: 9
 }
 
 .order-10 {
     order: 10
 }
 
 .order-11 {
     order: 11
 }
 
 .order-12 {
     order: 12
 }
 
 .offset-1 {
     margin-left: 8.33333%
 }
 
 .offset-2 {
     margin-left: 16.66667%
 }
 
 .offset-3 {
     margin-left: 25%
 }
 
 .offset-4 {
     margin-left: 33.33333%
 }
 
 .offset-5 {
     margin-left: 41.66667%
 }
 
 .offset-6 {
     margin-left: 50%
 }
 
 .offset-7 {
     margin-left: 58.33333%
 }
 
 .offset-8 {
     margin-left: 66.66667%
 }
 
 .offset-9 {
     margin-left: 75%
 }
 
 .offset-10 {
     margin-left: 83.33333%
 }
 
 .offset-11 {
     margin-left: 91.66667%
 }
 
 @media (min-width:576px) {
     .col-sm {
         flex-basis: 0;
         flex-grow: 1;
         max-width: 100%
     }
     .col-sm-auto {
         flex: 0 0 auto;
         width: auto;
         max-width: 100%
     }
     .col-sm-1 {
         flex: 0 0 8.33333%;
         max-width: 8.33333%
     }
     .col-sm-2 {
         flex: 0 0 16.66667%;
         max-width: 16.66667%
     }
     .col-sm-3 {
         flex: 0 0 25%;
         max-width: 25%
     }
     .col-sm-4 {
         flex: 0 0 33.33333%;
         max-width: 33.33333%
     }
     .col-sm-5 {
         flex: 0 0 41.66667%;
         max-width: 41.66667%
     }
     .col-sm-6 {
         flex: 0 0 50%;
         max-width: 50%
     }
     .col-sm-7 {
         flex: 0 0 58.33333%;
         max-width: 58.33333%
     }
     .col-sm-8 {
         flex: 0 0 66.66667%;
         max-width: 66.66667%
     }
     .col-sm-9 {
         flex: 0 0 75%;
         max-width: 75%
     }
     .col-sm-10 {
         flex: 0 0 83.33333%;
         max-width: 83.33333%
     }
     .col-sm-11 {
         flex: 0 0 91.66667%;
         max-width: 91.66667%
     }
     .col-sm-12 {
         flex: 0 0 100%;
         max-width: 100%
     }
     .order-sm-first {
         order: -1
     }
     .order-sm-last {
         order: 13
     }
     .order-sm-0 {
         order: 0
     }
     .order-sm-1 {
         order: 1
     }
     .order-sm-2 {
         order: 2
     }
     .order-sm-3 {
         order: 3
     }
     .order-sm-4 {
         order: 4
     }
     .order-sm-5 {
         order: 5
     }
     .order-sm-6 {
         order: 6
     }
     .order-sm-7 {
         order: 7
     }
     .order-sm-8 {
         order: 8
     }
     .order-sm-9 {
         order: 9
     }
     .order-sm-10 {
         order: 10
     }
     .order-sm-11 {
         order: 11
     }
     .order-sm-12 {
         order: 12
     }
     .offset-sm-0 {
         margin-left: 0
     }
     .offset-sm-1 {
         margin-left: 8.33333%
     }
     .offset-sm-2 {
         margin-left: 16.66667%
     }
     .offset-sm-3 {
         margin-left: 25%
     }
     .offset-sm-4 {
         margin-left: 33.33333%
     }
     .offset-sm-5 {
         margin-left: 41.66667%
     }
     .offset-sm-6 {
         margin-left: 50%
     }
     .offset-sm-7 {
         margin-left: 58.33333%
     }
     .offset-sm-8 {
         margin-left: 66.66667%
     }
     .offset-sm-9 {
         margin-left: 75%
     }
     .offset-sm-10 {
         margin-left: 83.33333%
     }
     .offset-sm-11 {
         margin-left: 91.66667%
     }
 }
 
 @media (min-width:768px) {
     .col-md {
         flex-basis: 0;
         flex-grow: 1;
         max-width: 100%
     }
     .col-md-auto {
         flex: 0 0 auto;
         width: auto;
         max-width: 100%
     }
     .col-md-1 {
         flex: 0 0 8.33333%;
         max-width: 8.33333%
     }
     .col-md-2 {
         flex: 0 0 16.66667%;
         max-width: 16.66667%
     }
     .col-md-3 {
         flex: 0 0 25%;
         max-width: 25%
     }
     .col-md-4 {
         flex: 0 0 33.33333%;
         max-width: 33.33333%
     }
     .col-md-5 {
         flex: 0 0 41.66667%;
         max-width: 41.66667%
     }
     .col-md-6 {
         flex: 0 0 50%;
         max-width: 50%
     }
     .col-md-7 {
         flex: 0 0 58.33333%;
         max-width: 58.33333%
     }
     .col-md-8 {
         flex: 0 0 66.66667%;
         max-width: 66.66667%
     }
     .col-md-9 {
         flex: 0 0 75%;
         max-width: 75%
     }
     .col-md-10 {
         flex: 0 0 83.33333%;
         max-width: 83.33333%
     }
     .col-md-11 {
         flex: 0 0 91.66667%;
         max-width: 91.66667%
     }
     .col-md-12 {
         flex: 0 0 100%;
         max-width: 100%
     }
     .order-md-first {
         order: -1
     }
     .order-md-last {
         order: 13
     }
     .order-md-0 {
         order: 0
     }
     .order-md-1 {
         order: 1
     }
     .order-md-2 {
         order: 2
     }
     .order-md-3 {
         order: 3
     }
     .order-md-4 {
         order: 4
     }
     .order-md-5 {
         order: 5
     }
     .order-md-6 {
         order: 6
     }
     .order-md-7 {
         order: 7
     }
     .order-md-8 {
         order: 8
     }
     .order-md-9 {
         order: 9
     }
     .order-md-10 {
         order: 10
     }
     .order-md-11 {
         order: 11
     }
     .order-md-12 {
         order: 12
     }
     .offset-md-0 {
         margin-left: 0
     }
     .offset-md-1 {
         margin-left: 8.33333%
     }
     .offset-md-2 {
         margin-left: 16.66667%
     }
     .offset-md-3 {
         margin-left: 25%
     }
     .offset-md-4 {
         margin-left: 33.33333%
     }
     .offset-md-5 {
         margin-left: 41.66667%
     }
     .offset-md-6 {
         margin-left: 50%
     }
     .offset-md-7 {
         margin-left: 58.33333%
     }
     .offset-md-8 {
         margin-left: 66.66667%
     }
     .offset-md-9 {
         margin-left: 75%
     }
     .offset-md-10 {
         margin-left: 83.33333%
     }
     .offset-md-11 {
         margin-left: 91.66667%
     }
 }
 
 @media (min-width:992px) {
     .col-lg {
         flex-basis: 0;
         flex-grow: 1;
         max-width: 100%
     }
     .col-lg-auto {
         flex: 0 0 auto;
         width: auto;
         max-width: 100%
     }
     .col-lg-1 {
         flex: 0 0 8.33333%;
         max-width: 8.33333%
     }
     .col-lg-2 {
         flex: 0 0 16.66667%;
         max-width: 16.66667%
     }
     .col-lg-3 {
         flex: 0 0 25%;
         max-width: 25%
     }
     .col-lg-4 {
         flex: 0 0 33.33333%;
         max-width: 33.33333%
     }
     .col-lg-5 {
         flex: 0 0 41.66667%;
         max-width: 41.66667%
     }
     .col-lg-6 {
         flex: 0 0 50%;
         max-width: 50%
     }
     .col-lg-7 {
         flex: 0 0 58.33333%;
         max-width: 58.33333%
     }
     .col-lg-8 {
         flex: 0 0 66.66667%;
         max-width: 66.66667%
     }
     .col-lg-9 {
         flex: 0 0 75%;
         max-width: 75%
     }
     .col-lg-10 {
         flex: 0 0 83.33333%;
         max-width: 83.33333%
     }
     .col-lg-11 {
         flex: 0 0 91.66667%;
         max-width: 91.66667%
     }
     .col-lg-12 {
         flex: 0 0 100%;
         max-width: 100%
     }
     .order-lg-first {
         order: -1
     }
     .order-lg-last {
         order: 13
     }
     .order-lg-0 {
         order: 0
     }
     .order-lg-1 {
         order: 1
     }
     .order-lg-2 {
         order: 2
     }
     .order-lg-3 {
         order: 3
     }
     .order-lg-4 {
         order: 4
     }
     .order-lg-5 {
         order: 5
     }
     .order-lg-6 {
         order: 6
     }
     .order-lg-7 {
         order: 7
     }
     .order-lg-8 {
         order: 8
     }
     .order-lg-9 {
         order: 9
     }
     .order-lg-10 {
         order: 10
     }
     .order-lg-11 {
         order: 11
     }
     .order-lg-12 {
         order: 12
     }
     .offset-lg-0 {
         margin-left: 0
     }
     .offset-lg-1 {
         margin-left: 8.33333%
     }
     .offset-lg-2 {
         margin-left: 16.66667%
     }
     .offset-lg-3 {
         margin-left: 25%
     }
     .offset-lg-4 {
         margin-left: 33.33333%
     }
     .offset-lg-5 {
         margin-left: 41.66667%
     }
     .offset-lg-6 {
         margin-left: 50%
     }
     .offset-lg-7 {
         margin-left: 58.33333%
     }
     .offset-lg-8 {
         margin-left: 66.66667%
     }
     .offset-lg-9 {
         margin-left: 75%
     }
     .offset-lg-10 {
         margin-left: 83.33333%
     }
     .offset-lg-11 {
         margin-left: 91.66667%
     }
 }
 
 @media (min-width:1200px) {
     .col-xl {
         flex-basis: 0;
         flex-grow: 1;
         max-width: 100%
     }
     .col-xl-auto {
         flex: 0 0 auto;
         width: auto;
         max-width: 100%
     }
     .col-xl-1 {
         flex: 0 0 8.33333%;
         max-width: 8.33333%
     }
     .col-xl-2 {
         flex: 0 0 16.66667%;
         max-width: 16.66667%
     }
     .col-xl-3 {
         flex: 0 0 25%;
         max-width: 25%
     }
     .col-xl-4 {
         flex: 0 0 33.33333%;
         max-width: 33.33333%
     }
     .col-xl-5 {
         flex: 0 0 41.66667%;
         max-width: 41.66667%
     }
     .col-xl-6 {
         flex: 0 0 50%;
         max-width: 50%
     }
     .col-xl-7 {
         flex: 0 0 58.33333%;
         max-width: 58.33333%
     }
     .col-xl-8 {
         flex: 0 0 66.66667%;
         max-width: 66.66667%
     }
     .col-xl-9 {
         flex: 0 0 75%;
         max-width: 75%
     }
     .col-xl-10 {
         flex: 0 0 83.33333%;
         max-width: 83.33333%
     }
     .col-xl-11 {
         flex: 0 0 91.66667%;
         max-width: 91.66667%
     }
     .col-xl-12 {
         flex: 0 0 100%;
         max-width: 100%
     }
     .order-xl-first {
         order: -1
     }
     .order-xl-last {
         order: 13
     }
     .order-xl-0 {
         order: 0
     }
     .order-xl-1 {
         order: 1
     }
     .order-xl-2 {
         order: 2
     }
     .order-xl-3 {
         order: 3
     }
     .order-xl-4 {
         order: 4
     }
     .order-xl-5 {
         order: 5
     }
     .order-xl-6 {
         order: 6
     }
     .order-xl-7 {
         order: 7
     }
     .order-xl-8 {
         order: 8
     }
     .order-xl-9 {
         order: 9
     }
     .order-xl-10 {
         order: 10
     }
     .order-xl-11 {
         order: 11
     }
     .order-xl-12 {
         order: 12
     }
     .offset-xl-0 {
         margin-left: 0
     }
     .offset-xl-1 {
         margin-left: 8.33333%
     }
     .offset-xl-2 {
         margin-left: 16.66667%
     }
     .offset-xl-3 {
         margin-left: 25%
     }
     .offset-xl-4 {
         margin-left: 33.33333%
     }
     .offset-xl-5 {
         margin-left: 41.66667%
     }
     .offset-xl-6 {
         margin-left: 50%
     }
     .offset-xl-7 {
         margin-left: 58.33333%
     }
     .offset-xl-8 {
         margin-left: 66.66667%
     }
     .offset-xl-9 {
         margin-left: 75%
     }
     .offset-xl-10 {
         margin-left: 83.33333%
     }
     .offset-xl-11 {
         margin-left: 91.66667%
     }
 }
 
 .table {
     width: 100%;
     margin-bottom: 1.5rem;
     color: #b2b8b9
 }
 
 .table td,
 .table th {
     padding: .85rem;
     vertical-align: top;
     border-top: 1px solid #3b4452
 }
 
 .table thead th {
     vertical-align: bottom;
     border-bottom: 2px solid #3b4452
 }
 
 .table tbody+tbody {
     border-top: 2px solid #3b4452
 }
 
 .table-sm td,
 .table-sm th {
     padding: .5rem
 }
 
 .table-bordered {
     border: 1px solid #3b4452
 }
 
 .table-bordered td,
 .table-bordered th {
     border: 1px solid #3b4452
 }
 
 .table-bordered thead td,
 .table-bordered thead th {
     border-bottom-width: 2px
 }
 
 .table-borderless tbody+tbody,
 .table-borderless td,
 .table-borderless th,
 .table-borderless thead th {
     border: 0
 }
 
 .table-striped tbody tr:nth-of-type(odd) {
     background-color: #323a46
 }
 
 .table-hover tbody tr:hover {
     color: #adb5bd;
     background-color: #363f4c
 }
 
 .table-primary,
 .table-primary>td,
 .table-primary>th {
     background-color: #d7ebfd
 }
 
 .table-primary tbody+tbody,
 .table-primary td,
 .table-primary th,
 .table-primary thead th {
     border-color: #b5d9fc
 }
 
 .table-hover .table-primary:hover {
     background-color: #bfdffc
 }
 
 .table-hover .table-primary:hover>td,
 .table-hover .table-primary:hover>th {
     background-color: #bfdffc
 }
 
 .table-secondary,
 .table-secondary>td,
 .table-secondary>th {
     background-color: #d6d8db
 }
 
 .table-secondary tbody+tbody,
 .table-secondary td,
 .table-secondary th,
 .table-secondary thead th {
     border-color: #b3b7bb
 }
 
 .table-hover .table-secondary:hover {
     background-color: #c8cbcf
 }
 
 .table-hover .table-secondary:hover>td,
 .table-hover .table-secondary:hover>th {
     background-color: #c8cbcf
 }
 
 .table-success,
 .table-success>td,
 .table-success>th {
     background-color: #bceed5
 }
 
 .table-success tbody+tbody,
 .table-success td,
 .table-success th,
 .table-success thead th {
     border-color: #83e0b1
 }
 
 .table-hover .table-success:hover {
     background-color: #a8e9c8
 }
 
 .table-hover .table-success:hover>td,
 .table-hover .table-success:hover>th {
     background-color: #a8e9c8
 }
 
 .table-info,
 .table-info>td,
 .table-info>th {
     background-color: #c6ebf6
 }
 
 .table-info tbody+tbody,
 .table-info td,
 .table-info th,
 .table-info thead th {
     border-color: #96daef
 }
 
 .table-hover .table-info:hover {
     background-color: #b0e3f3
 }
 
 .table-hover .table-info:hover>td,
 .table-hover .table-info:hover>th {
     background-color: #b0e3f3
 }
 
 .table-warning,
 .table-warning>td,
 .table-warning>th {
     background-color: #fdf0ce
 }
 
 .table-warning tbody+tbody,
 .table-warning td,
 .table-warning th,
 .table-warning thead th {
     border-color: #fce2a5
 }
 
 .table-hover .table-warning:hover {
     background-color: #fce9b6
 }
 
 .table-hover .table-warning:hover>td,
 .table-hover .table-warning:hover>th {
     background-color: #fce9b6
 }
 
 .table-danger,
 .table-danger>td,
 .table-danger>th {
     background-color: #ffd1d1
 }
 
 .table-danger tbody+tbody,
 .table-danger td,
 .table-danger th,
 .table-danger thead th {
     border-color: #faa
 }
 
 .table-hover .table-danger:hover {
     background-color: #ffb8b8
 }
 
 .table-hover .table-danger:hover>td,
 .table-hover .table-danger:hover>th {
     background-color: #ffb8b8
 }
 
 .table-light,
 .table-light>td,
 .table-light>th {
     background-color: #c6c8cb
 }
 
 .table-light tbody+tbody,
 .table-light td,
 .table-light th,
 .table-light thead th {
     border-color: #94999f
 }
 
 .table-hover .table-light:hover {
     background-color: #b9bbbf
 }
 
 .table-hover .table-light:hover>td,
 .table-hover .table-light:hover>th {
     background-color: #b9bbbf
 }
 
 .table-dark,
 .table-dark>td,
 .table-dark>th {
     background-color: #fbfcfd
 }
 
 .table-dark tbody+tbody,
 .table-dark td,
 .table-dark th,
 .table-dark thead th {
     border-color: #f8fafb
 }
 
 .table-hover .table-dark:hover {
     background-color: #eaeff5
 }
 
 .table-hover .table-dark:hover>td,
 .table-hover .table-dark:hover>th {
     background-color: #eaeff5
 }
 
 .table-pink,
 .table-pink>td,
 .table-pink>th {
     background-color: #ffdef1
 }
 
 .table-pink tbody+tbody,
 .table-pink td,
 .table-pink th,
 .table-pink thead th {
     border-color: #ffc2e4
 }
 
 .table-hover .table-pink:hover {
     background-color: #ffc5e6
 }
 
 .table-hover .table-pink:hover>td,
 .table-hover .table-pink:hover>th {
     background-color: #ffc5e6
 }
 
 .table-purple,
 .table-purple>td,
 .table-purple>th {
     background-color: #d1d5ec
 }
 
 .table-purple tbody+tbody,
 .table-purple td,
 .table-purple th,
 .table-purple thead th {
     border-color: #aab1dc
 }
 
 .table-hover .table-purple:hover {
     background-color: #bfc5e5
 }
 
 .table-hover .table-purple:hover>td,
 .table-hover .table-purple:hover>th {
     background-color: #bfc5e5
 }
 
 .table-blue,
 .table-blue>td,
 .table-blue>th {
     background-color: #d7ebfd
 }
 
 .table-blue tbody+tbody,
 .table-blue td,
 .table-blue th,
 .table-blue thead th {
     border-color: #b5d9fc
 }
 
 .table-hover .table-blue:hover {
     background-color: #bfdffc
 }
 
 .table-hover .table-blue:hover>td,
 .table-hover .table-blue:hover>th {
     background-color: #bfdffc
 }
 
 .table-active,
 .table-active>td,
 .table-active>th {
     background-color: rgba(0, 0, 0, .075)
 }
 
 .table-hover .table-active:hover {
     background-color: rgba(0, 0, 0, .075)
 }
 
 .table-hover .table-active:hover>td,
 .table-hover .table-active:hover>th {
     background-color: rgba(0, 0, 0, .075)
 }
 
 .table .thead-dark th {
     color: #98a6ad;
     background-color: #2a303a;
     border-color: #394350
 }
 
 .table .thead-light th {
     color: #dee2e6;
     background-color: #3b4452;
     border-color: #3b4452
 }
 
 .table-dark {
     color: #98a6ad;
     background-color: #2a303a
 }
 
 .table-dark td,
 .table-dark th,
 .table-dark thead th {
     border-color: #394350
 }
 
 .table-dark.table-bordered {
     border: 0
 }
 
 .table-dark.table-striped tbody tr:nth-of-type(odd) {
     background-color: rgba(255, 255, 255, .05)
 }
 
 .table-dark.table-hover tbody tr:hover {
     color: #fff;
     background-color: rgba(255, 255, 255, .075)
 }
 
 @media (max-width:575.98px) {
     .table-responsive-sm {
         display: block;
         width: 100%;
         overflow-x: auto;
         -webkit-overflow-scrolling: touch
     }
     .table-responsive-sm>.table-bordered {
         border: 0
     }
 }
 
 @media (max-width:767.98px) {
     .table-responsive-md {
         display: block;
         width: 100%;
         overflow-x: auto;
         -webkit-overflow-scrolling: touch
     }
     .table-responsive-md>.table-bordered {
         border: 0
     }
 }
 
 @media (max-width:991.98px) {
     .table-responsive-lg {
         display: block;
         width: 100%;
         overflow-x: auto;
         -webkit-overflow-scrolling: touch
     }
     .table-responsive-lg>.table-bordered {
         border: 0
     }
 }
 
 @media (max-width:1199.98px) {
     .table-responsive-xl {
         display: block;
         width: 100%;
         overflow-x: auto;
         -webkit-overflow-scrolling: touch
     }
     .table-responsive-xl>.table-bordered {
         border: 0
     }
 }
 
 .table-responsive {
     display: block;
     width: 100%;
     overflow-x: auto;
     -webkit-overflow-scrolling: touch
 }
 
 .table-responsive>.table-bordered {
     border: 0
 }
 
 .form-control {
     display: block;
     width: 100%;
     height: calc(1.5em + .9rem + 2px);
     padding: .45rem .9rem;
     font-size: .9rem;
     font-weight: 400;
     line-height: 1.5;
     color: #adb5bd;
     background-color: #3b4452;
     background-clip: padding-box;
     border: 1px solid #434e5e;
     border-radius: .2rem;
     transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out
 }
 
 @media (prefers-reduced-motion:reduce) {
     .form-control {
         transition: none
     }
 }
 
 .form-control::-ms-expand {
     background-color: transparent;
     border: 0
 }
 
 .form-control:focus {
     color: #adb5bd;
     background-color: #3d4655;
     border-color: #475364;
     outline: 0;
     box-shadow: none
 }
 
 .form-control::placeholder {
     color: #adb5bd;
     opacity: 1
 }
 
 .form-control:disabled,
 .form-control[readonly] {
     background-color: #3b4452;
     opacity: 1
 }
 
 select.form-control:focus::-ms-value {
     color: #adb5bd;
     background-color: #3b4452
 }
 
 .form-control-file,
 .form-control-range {
     display: block;
     width: 100%
 }
 
 .col-form-label {
     padding-top: calc(.45rem + 1px);
     padding-bottom: calc(.45rem + 1px);
     margin-bottom: 0;
     font-size: inherit;
     line-height: 1.5
 }
 
 .col-form-label-lg {
     padding-top: calc(.5rem + 1px);
     padding-bottom: calc(.5rem + 1px);
     font-size: 1.25rem;
     line-height: 1.5
 }
 
 .col-form-label-sm {
     padding-top: calc(.28rem + 1px);
     padding-bottom: calc(.28rem + 1px);
     font-size: .875rem;
     line-height: 1.5
 }
 
 .form-control-plaintext {
     display: block;
     width: 100%;
     padding-top: .45rem;
     padding-bottom: .45rem;
     margin-bottom: 0;
     line-height: 1.5;
     color: #adb5bd;
     background-color: transparent;
     border: solid transparent;
     border-width: 1px 0
 }
 
 .form-control-plaintext.form-control-lg,
 .form-control-plaintext.form-control-sm {
     padding-right: 0;
     padding-left: 0
 }
 
 .form-control-sm {
     height: calc(1.5em + .5rem + 2px);
     padding: .28rem .8rem;
     font-size: .875rem;
     line-height: 1.5;
     border-radius: .2rem
 }
 
 .form-control-lg {
     height: calc(1.5em + 1rem + 2px);
     padding: .5rem 1rem;
     font-size: 1.25rem;
     line-height: 1.5;
     border-radius: .3rem
 }
 
 select.form-control[multiple],
 select.form-control[size] {
     height: auto
 }
 
 textarea.form-control {
     height: auto
 }
 
 .form-group {
     margin-bottom: 1rem
 }
 
 .form-text {
     display: block;
     margin-top: .25rem
 }
 
 .form-row {
     display: flex;
     flex-wrap: wrap;
     margin-right: -5px;
     margin-left: -5px
 }
 
 .form-row>.col,
 .form-row>[class*=col-] {
     padding-right: 5px;
     padding-left: 5px
 }
 
 .form-check {
     position: relative;
     display: block;
     padding-left: 1.25rem
 }
 
 .form-check-input {
     position: absolute;
     margin-top: .3rem;
     margin-left: -1.25rem
 }
 
 .form-check-input:disabled~.form-check-label {
     color: #adb5bd
 }
 
 .form-check-label {
     margin-bottom: 0
 }
 
 .form-check-inline {
     display: inline-flex;
     align-items: center;
     padding-left: 0;
     margin-right: .75rem
 }
 
 .form-check-inline .form-check-input {
     position: static;
     margin-top: 0;
     margin-right: .3125rem;
     margin-left: 0
 }
 
 .valid-feedback {
     display: none;
     width: 100%;
     margin-top: .25rem;
     font-size: .75rem;
     color: #10c469
 }
 
 .valid-tooltip {
     position: absolute;
     top: 100%;
     z-index: 5;
     display: none;
     max-width: 100%;
     padding: .25rem .5rem;
     margin-top: .1rem;
     font-size: .875rem;
     line-height: 1.5;
     color: #fff;
     background-color: rgba(16, 196, 105, .9);
     border-radius: .25rem
 }
 
 .form-control.is-valid,
 .was-validated .form-control:valid {
     border-color: #10c469;
     padding-right: calc(1.5em + .9rem);
     background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2310c469' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
     background-repeat: no-repeat;
     background-position: center right calc(.375em + .1875rem);
     background-size: calc(.75em + .375rem) calc(.75em + .375rem)
 }
 
 .form-control.is-valid:focus,
 .was-validated .form-control:valid:focus {
     border-color: #10c469;
     box-shadow: 0 0 0 .2rem rgba(16, 196, 105, .25)
 }
 
 .form-control.is-valid~.valid-feedback,
 .form-control.is-valid~.valid-tooltip,
 .was-validated .form-control:valid~.valid-feedback,
 .was-validated .form-control:valid~.valid-tooltip {
     display: block
 }
 
 .was-validated textarea.form-control:valid,
 textarea.form-control.is-valid {
     padding-right: calc(1.5em + .9rem);
     background-position: top calc(.375em + .1875rem) right calc(.375em + .1875rem)
 }
 
 .custom-select.is-valid,
 .was-validated .custom-select:valid {
     border-color: #10c469;
     padding-right: calc((1em + .75rem) * 3 / 4 + 1.75rem);
     background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23adb5bd' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .9rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2310c469' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #3b4452 no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)
 }
 
 .custom-select.is-valid:focus,
 .was-validated .custom-select:valid:focus {
     border-color: #10c469;
     box-shadow: 0 0 0 .2rem rgba(16, 196, 105, .25)
 }
 
 .custom-select.is-valid~.valid-feedback,
 .custom-select.is-valid~.valid-tooltip,
 .was-validated .custom-select:valid~.valid-feedback,
 .was-validated .custom-select:valid~.valid-tooltip {
     display: block
 }
 
 .form-control-file.is-valid~.valid-feedback,
 .form-control-file.is-valid~.valid-tooltip,
 .was-validated .form-control-file:valid~.valid-feedback,
 .was-validated .form-control-file:valid~.valid-tooltip {
     display: block
 }
 
 .form-check-input.is-valid~.form-check-label,
 .was-validated .form-check-input:valid~.form-check-label {
     color: #10c469
 }
 
 .form-check-input.is-valid~.valid-feedback,
 .form-check-input.is-valid~.valid-tooltip,
 .was-validated .form-check-input:valid~.valid-feedback,
 .was-validated .form-check-input:valid~.valid-tooltip {
     display: block
 }
 
 .custom-control-input.is-valid~.custom-control-label,
 .was-validated .custom-control-input:valid~.custom-control-label {
     color: #10c469
 }
 
 .custom-control-input.is-valid~.custom-control-label::before,
 .was-validated .custom-control-input:valid~.custom-control-label::before {
     border-color: #10c469
 }
 
 .custom-control-input.is-valid~.valid-feedback,
 .custom-control-input.is-valid~.valid-tooltip,
 .was-validated .custom-control-input:valid~.valid-feedback,
 .was-validated .custom-control-input:valid~.valid-tooltip {
     display: block
 }
 
 .custom-control-input.is-valid:checked~.custom-control-label::before,
 .was-validated .custom-control-input:valid:checked~.custom-control-label::before {
     border-color: #1bec82;
     background-color: #1bec82
 }
 
 .custom-control-input.is-valid:focus~.custom-control-label::before,
 .was-validated .custom-control-input:valid:focus~.custom-control-label::before {
     box-shadow: 0 0 0 .2rem rgba(16, 196, 105, .25)
 }
 
 .custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,
 .was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before {
     border-color: #10c469
 }
 
 .custom-file-input.is-valid~.custom-file-label,
 .was-validated .custom-file-input:valid~.custom-file-label {
     border-color: #10c469
 }
 
 .custom-file-input.is-valid~.valid-feedback,
 .custom-file-input.is-valid~.valid-tooltip,
 .was-validated .custom-file-input:valid~.valid-feedback,
 .was-validated .custom-file-input:valid~.valid-tooltip {
     display: block
 }
 
 .custom-file-input.is-valid:focus~.custom-file-label,
 .was-validated .custom-file-input:valid:focus~.custom-file-label {
     border-color: #10c469;
     box-shadow: 0 0 0 .2rem rgba(16, 196, 105, .25)
 }
 
 .invalid-feedback {
     display: none;
     width: 100%;
     margin-top: .25rem;
     font-size: .75rem;
     color: #ff5b5b
 }
 
 .invalid-tooltip {
     position: absolute;
     top: 100%;
     z-index: 5;
     display: none;
     max-width: 100%;
     padding: .25rem .5rem;
     margin-top: .1rem;
     font-size: .875rem;
     line-height: 1.5;
     color: #fff;
     background-color: rgba(255, 91, 91, .9);
     border-radius: .25rem
 }
 
 .form-control.is-invalid,
 .was-validated .form-control:invalid {
     border-color: #ff5b5b;
     padding-right: calc(1.5em + .9rem);
     background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23ff5b5b' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23ff5b5b' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E");
     background-repeat: no-repeat;
     background-position: center right calc(.375em + .1875rem);
     background-size: calc(.75em + .375rem) calc(.75em + .375rem)
 }
 
 .form-control.is-invalid:focus,
 .was-validated .form-control:invalid:focus {
     border-color: #ff5b5b;
     box-shadow: 0 0 0 .2rem rgba(255, 91, 91, .25)
 }
 
 .form-control.is-invalid~.invalid-feedback,
 .form-control.is-invalid~.invalid-tooltip,
 .was-validated .form-control:invalid~.invalid-feedback,
 .was-validated .form-control:invalid~.invalid-tooltip {
     display: block
 }
 
 .was-validated textarea.form-control:invalid,
 textarea.form-control.is-invalid {
     padding-right: calc(1.5em + .9rem);
     background-position: top calc(.375em + .1875rem) right calc(.375em + .1875rem)
 }
 
 .custom-select.is-invalid,
 .was-validated .custom-select:invalid {
     border-color: #ff5b5b;
     padding-right: calc((1em + .75rem) * 3 / 4 + 1.75rem);
     background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23adb5bd' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .9rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23ff5b5b' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23ff5b5b' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E") #3b4452 no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)
 }
 
 .custom-select.is-invalid:focus,
 .was-validated .custom-select:invalid:focus {
     border-color: #ff5b5b;
     box-shadow: 0 0 0 .2rem rgba(255, 91, 91, .25)
 }
 
 .custom-select.is-invalid~.invalid-feedback,
 .custom-select.is-invalid~.invalid-tooltip,
 .was-validated .custom-select:invalid~.invalid-feedback,
 .was-validated .custom-select:invalid~.invalid-tooltip {
     display: block
 }
 
 .form-control-file.is-invalid~.invalid-feedback,
 .form-control-file.is-invalid~.invalid-tooltip,
 .was-validated .form-control-file:invalid~.invalid-feedback,
 .was-validated .form-control-file:invalid~.invalid-tooltip {
     display: block
 }
 
 .form-check-input.is-invalid~.form-check-label,
 .was-validated .form-check-input:invalid~.form-check-label {
     color: #ff5b5b
 }
 
 .form-check-input.is-invalid~.invalid-feedback,
 .form-check-input.is-invalid~.invalid-tooltip,
 .was-validated .form-check-input:invalid~.invalid-feedback,
 .was-validated .form-check-input:invalid~.invalid-tooltip {
     display: block
 }
 
 .custom-control-input.is-invalid~.custom-control-label,
 .was-validated .custom-control-input:invalid~.custom-control-label {
     color: #ff5b5b
 }
 
 .custom-control-input.is-invalid~.custom-control-label::before,
 .was-validated .custom-control-input:invalid~.custom-control-label::before {
     border-color: #ff5b5b
 }
 
 .custom-control-input.is-invalid~.invalid-feedback,
 .custom-control-input.is-invalid~.invalid-tooltip,
 .was-validated .custom-control-input:invalid~.invalid-feedback,
 .was-validated .custom-control-input:invalid~.invalid-tooltip {
     display: block
 }
 
 .custom-control-input.is-invalid:checked~.custom-control-label::before,
 .was-validated .custom-control-input:invalid:checked~.custom-control-label::before {
     border-color: #ff8e8e;
     background-color: #ff8e8e
 }
 
 .custom-control-input.is-invalid:focus~.custom-control-label::before,
 .was-validated .custom-control-input:invalid:focus~.custom-control-label::before {
     box-shadow: 0 0 0 .2rem rgba(255, 91, 91, .25)
 }
 
 .custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,
 .was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before {
     border-color: #ff5b5b
 }
 
 .custom-file-input.is-invalid~.custom-file-label,
 .was-validated .custom-file-input:invalid~.custom-file-label {
     border-color: #ff5b5b
 }
 
 .custom-file-input.is-invalid~.invalid-feedback,
 .custom-file-input.is-invalid~.invalid-tooltip,
 .was-validated .custom-file-input:invalid~.invalid-feedback,
 .was-validated .custom-file-input:invalid~.invalid-tooltip {
     display: block
 }
 
 .custom-file-input.is-invalid:focus~.custom-file-label,
 .was-validated .custom-file-input:invalid:focus~.custom-file-label {
     border-color: #ff5b5b;
     box-shadow: 0 0 0 .2rem rgba(255, 91, 91, .25)
 }
 
 .form-inline {
     display: flex;
     flex-flow: row wrap;
     align-items: center
 }
 
 .form-inline .form-check {
     width: 100%
 }
 
 @media (min-width:576px) {
     .form-inline label {
         display: flex;
         align-items: center;
         justify-content: center;
         margin-bottom: 0
     }
     .form-inline .form-group {
         display: flex;
         flex: 0 0 auto;
         flex-flow: row wrap;
         align-items: center;
         margin-bottom: 0
     }
     .form-inline .form-control {
         display: inline-block;
         width: auto;
         vertical-align: middle
     }
     .form-inline .form-control-plaintext {
         display: inline-block
     }
     .form-inline .custom-select,
     .form-inline .input-group {
         width: auto
     }
     .form-inline .form-check {
         display: flex;
         align-items: center;
         justify-content: center;
         width: auto;
         padding-left: 0
     }
     .form-inline .form-check-input {
         position: relative;
         flex-shrink: 0;
         margin-top: 0;
         margin-right: .25rem;
         margin-left: 0
     }
     .form-inline .custom-control {
         align-items: center;
         justify-content: center
     }
     .form-inline .custom-control-label {
         margin-bottom: 0
     }
 }
 
 .btn {
     display: inline-block;
     font-weight: 400;
     color: #adb5bd;
     text-align: center;
     vertical-align: middle;
     -webkit-user-select: none;
     user-select: none;
     background-color: transparent;
     border: 1px solid transparent;
     padding: .45rem .9rem;
     font-size: .9rem;
     line-height: 1.5;
     border-radius: .15rem;
     transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out
 }
 
 @media (prefers-reduced-motion:reduce) {
     .btn {
         transition: none
     }
 }
 
 .btn:hover {
     color: #adb5bd;
     text-decoration: none
 }
 
 .btn.focus,
 .btn:focus {
     outline: 0;
     box-shadow: 0 0 0 .15rem rgba(113, 182, 249, .25)
 }
 
 .btn.disabled,
 .btn:disabled {
     opacity: .65
 }
 
 a.btn.disabled,
 fieldset:disabled a.btn {
     pointer-events: none
 }
 
 .btn-primary {
     color: #fff;
     background-color: #71b6f9;
     border-color: #71b6f9
 }
 
 .btn-primary:hover {
     color: #fff;
     background-color: #4ca3f7;
     border-color: #409df7
 }
 
 .btn-primary.focus,
 .btn-primary:focus {
     box-shadow: 0 0 0 .15rem rgba(134, 193, 250, .5)
 }
 
 .btn-primary.disabled,
 .btn-primary:disabled {
     color: #fff;
     background-color: #71b6f9;
     border-color: #71b6f9
 }
 
 .btn-primary:not(:disabled):not(.disabled).active,
 .btn-primary:not(:disabled):not(.disabled):active,
 .show>.btn-primary.dropdown-toggle {
     color: #fff;
     background-color: #409df7;
     border-color: #3497f6
 }
 
 .btn-primary:not(:disabled):not(.disabled).active:focus,
 .btn-primary:not(:disabled):not(.disabled):active:focus,
 .show>.btn-primary.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(134, 193, 250, .5)
 }
 
 .btn-secondary {
     color: #fff;
     background-color: #6c757d;
     border-color: #6c757d
 }
 
 .btn-secondary:hover {
     color: #fff;
     background-color: #5a6268;
     border-color: #545b62
 }
 
 .btn-secondary.focus,
 .btn-secondary:focus {
     box-shadow: 0 0 0 .15rem rgba(130, 138, 145, .5)
 }
 
 .btn-secondary.disabled,
 .btn-secondary:disabled {
     color: #fff;
     background-color: #6c757d;
     border-color: #6c757d
 }
 
 .btn-secondary:not(:disabled):not(.disabled).active,
 .btn-secondary:not(:disabled):not(.disabled):active,
 .show>.btn-secondary.dropdown-toggle {
     color: #fff;
     background-color: #545b62;
     border-color: #4e555b
 }
 
 .btn-secondary:not(:disabled):not(.disabled).active:focus,
 .btn-secondary:not(:disabled):not(.disabled):active:focus,
 .show>.btn-secondary.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(130, 138, 145, .5)
 }
 
 .btn-success {
     color: #fff;
     background-color: #10c469;
     border-color: #10c469
 }
 
 .btn-success:hover {
     color: #fff;
     background-color: #0da156;
     border-color: #0c9550
 }
 
 .btn-success.focus,
 .btn-success:focus {
     box-shadow: 0 0 0 .15rem rgba(52, 205, 128, .5)
 }
 
 .btn-success.disabled,
 .btn-success:disabled {
     color: #fff;
     background-color: #10c469;
     border-color: #10c469
 }
 
 .btn-success:not(:disabled):not(.disabled).active,
 .btn-success:not(:disabled):not(.disabled):active,
 .show>.btn-success.dropdown-toggle {
     color: #fff;
     background-color: #0c9550;
     border-color: #0b8949
 }
 
 .btn-success:not(:disabled):not(.disabled).active:focus,
 .btn-success:not(:disabled):not(.disabled):active:focus,
 .show>.btn-success.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(52, 205, 128, .5)
 }
 
 .btn-info {
     color: #fff;
     background-color: #35b8e0;
     border-color: #35b8e0
 }
 
 .btn-info:hover {
     color: #fff;
     background-color: #20a6cf;
     border-color: #1e9dc4
 }
 
 .btn-info.focus,
 .btn-info:focus {
     box-shadow: 0 0 0 .15rem rgba(83, 195, 229, .5)
 }
 
 .btn-info.disabled,
 .btn-info:disabled {
     color: #fff;
     background-color: #35b8e0;
     border-color: #35b8e0
 }
 
 .btn-info:not(:disabled):not(.disabled).active,
 .btn-info:not(:disabled):not(.disabled):active,
 .show>.btn-info.dropdown-toggle {
     color: #fff;
     background-color: #1e9dc4;
     border-color: #1c94b9
 }
 
 .btn-info:not(:disabled):not(.disabled).active:focus,
 .btn-info:not(:disabled):not(.disabled):active:focus,
 .show>.btn-info.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(83, 195, 229, .5)
 }
 
 .btn-warning {
     color: #f7f7f7;
     background-color: #f9c851;
     border-color: #f9c851
 }
 
 .btn-warning:hover {
     color: #f7f7f7;
     background-color: #f8bc2c;
     border-color: #f7b820
 }
 
 .btn-warning.focus,
 .btn-warning:focus {
     box-shadow: 0 0 0 .15rem rgba(249, 207, 106, .5)
 }
 
 .btn-warning.disabled,
 .btn-warning:disabled {
     color: #f7f7f7;
     background-color: #f9c851;
     border-color: #f9c851
 }
 
 .btn-warning:not(:disabled):not(.disabled).active,
 .btn-warning:not(:disabled):not(.disabled):active,
 .show>.btn-warning.dropdown-toggle {
     color: #f7f7f7;
     background-color: #f7b820;
     border-color: #f7b513
 }
 
 .btn-warning:not(:disabled):not(.disabled).active:focus,
 .btn-warning:not(:disabled):not(.disabled):active:focus,
 .show>.btn-warning.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(249, 207, 106, .5)
 }
 
 .btn-danger {
     color: #fff;
     background-color: #ff5b5b;
     border-color: #ff5b5b
 }
 
 .btn-danger:hover {
     color: #fff;
     background-color: #ff3535;
     border-color: #ff2828
 }
 
 .btn-danger.focus,
 .btn-danger:focus {
     box-shadow: 0 0 0 .15rem rgba(255, 116, 116, .5)
 }
 
 .btn-danger.disabled,
 .btn-danger:disabled {
     color: #fff;
     background-color: #ff5b5b;
     border-color: #ff5b5b
 }
 
 .btn-danger:not(:disabled):not(.disabled).active,
 .btn-danger:not(:disabled):not(.disabled):active,
 .show>.btn-danger.dropdown-toggle {
     color: #fff;
     background-color: #ff2828;
     border-color: #ff1b1b
 }
 
 .btn-danger:not(:disabled):not(.disabled).active:focus,
 .btn-danger:not(:disabled):not(.disabled):active:focus,
 .show>.btn-danger.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(255, 116, 116, .5)
 }
 
 .btn-light {
     color: #fff;
     background-color: #323a46;
     border-color: #323a46
 }
 
 .btn-light:hover {
     color: #fff;
     background-color: #222830;
     border-color: #1d2128
 }
 
 .btn-light.focus,
 .btn-light:focus {
     box-shadow: 0 0 0 .15rem rgba(81, 88, 98, .5)
 }
 
 .btn-light.disabled,
 .btn-light:disabled {
     color: #fff;
     background-color: #323a46;
     border-color: #323a46
 }
 
 .btn-light:not(:disabled):not(.disabled).active,
 .btn-light:not(:disabled):not(.disabled):active,
 .show>.btn-light.dropdown-toggle {
     color: #fff;
     background-color: #1d2128;
     border-color: #171b21
 }
 
 .btn-light:not(:disabled):not(.disabled).active:focus,
 .btn-light:not(:disabled):not(.disabled):active:focus,
 .show>.btn-light.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(81, 88, 98, .5)
 }
 
 .btn-dark {
     color: #f7f7f7;
     background-color: #f1f5f7;
     border-color: #f1f5f7
 }
 
 .btn-dark:hover {
     color: #f7f7f7;
     background-color: #d9e4e9;
     border-color: #d1dee4
 }
 
 .btn-dark.focus,
 .btn-dark:focus {
     box-shadow: 0 0 0 .15rem rgba(242, 245, 247, .5)
 }
 
 .btn-dark.disabled,
 .btn-dark:disabled {
     color: #f7f7f7;
     background-color: #f1f5f7;
     border-color: #f1f5f7
 }
 
 .btn-dark:not(:disabled):not(.disabled).active,
 .btn-dark:not(:disabled):not(.disabled):active,
 .show>.btn-dark.dropdown-toggle {
     color: #f7f7f7;
     background-color: #d1dee4;
     border-color: #c8d8e0
 }
 
 .btn-dark:not(:disabled):not(.disabled).active:focus,
 .btn-dark:not(:disabled):not(.disabled):active:focus,
 .show>.btn-dark.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(242, 245, 247, .5)
 }
 
 .btn-pink {
     color: #f7f7f7;
     background-color: #ff8acc;
     border-color: #ff8acc
 }
 
 .btn-pink:hover {
     color: #fff;
     background-color: #ff64bb;
     border-color: #ff57b6
 }
 
 .btn-pink.focus,
 .btn-pink:focus {
     box-shadow: 0 0 0 .15rem rgba(254, 154, 210, .5)
 }
 
 .btn-pink.disabled,
 .btn-pink:disabled {
     color: #f7f7f7;
     background-color: #ff8acc;
     border-color: #ff8acc
 }
 
 .btn-pink:not(:disabled):not(.disabled).active,
 .btn-pink:not(:disabled):not(.disabled):active,
 .show>.btn-pink.dropdown-toggle {
     color: #fff;
     background-color: #ff57b6;
     border-color: #ff4ab0
 }
 
 .btn-pink:not(:disabled):not(.disabled).active:focus,
 .btn-pink:not(:disabled):not(.disabled):active:focus,
 .show>.btn-pink.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(254, 154, 210, .5)
 }
 
 .btn-purple {
     color: #fff;
     background-color: #5b69bc;
     border-color: #5b69bc
 }
 
 .btn-purple:hover {
     color: #fff;
     background-color: #4654ab;
     border-color: #4250a2
 }
 
 .btn-purple.focus,
 .btn-purple:focus {
     box-shadow: 0 0 0 .15rem rgba(116, 128, 198, .5)
 }
 
 .btn-purple.disabled,
 .btn-purple:disabled {
     color: #fff;
     background-color: #5b69bc;
     border-color: #5b69bc
 }
 
 .btn-purple:not(:disabled):not(.disabled).active,
 .btn-purple:not(:disabled):not(.disabled):active,
 .show>.btn-purple.dropdown-toggle {
     color: #fff;
     background-color: #4250a2;
     border-color: #3e4b99
 }
 
 .btn-purple:not(:disabled):not(.disabled).active:focus,
 .btn-purple:not(:disabled):not(.disabled):active:focus,
 .show>.btn-purple.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(116, 128, 198, .5)
 }
 
 .btn-blue {
     color: #fff;
     background-color: #71b6f9;
     border-color: #71b6f9
 }
 
 .btn-blue:hover {
     color: #fff;
     background-color: #4ca3f7;
     border-color: #409df7
 }
 
 .btn-blue.focus,
 .btn-blue:focus {
     box-shadow: 0 0 0 .15rem rgba(134, 193, 250, .5)
 }
 
 .btn-blue.disabled,
 .btn-blue:disabled {
     color: #fff;
     background-color: #71b6f9;
     border-color: #71b6f9
 }
 
 .btn-blue:not(:disabled):not(.disabled).active,
 .btn-blue:not(:disabled):not(.disabled):active,
 .show>.btn-blue.dropdown-toggle {
     color: #fff;
     background-color: #409df7;
     border-color: #3497f6
 }
 
 .btn-blue:not(:disabled):not(.disabled).active:focus,
 .btn-blue:not(:disabled):not(.disabled):active:focus,
 .show>.btn-blue.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(134, 193, 250, .5)
 }
 
 .btn-outline-primary {
     color: #71b6f9;
     border-color: #71b6f9
 }
 
 .btn-outline-primary:hover {
     color: #fff;
     background-color: #71b6f9;
     border-color: #71b6f9
 }
 
 .btn-outline-primary.focus,
 .btn-outline-primary:focus {
     box-shadow: 0 0 0 .15rem rgba(113, 182, 249, .5)
 }
 
 .btn-outline-primary.disabled,
 .btn-outline-primary:disabled {
     color: #71b6f9;
     background-color: transparent
 }
 
 .btn-outline-primary:not(:disabled):not(.disabled).active,
 .btn-outline-primary:not(:disabled):not(.disabled):active,
 .show>.btn-outline-primary.dropdown-toggle {
     color: #fff;
     background-color: #71b6f9;
     border-color: #71b6f9
 }
 
 .btn-outline-primary:not(:disabled):not(.disabled).active:focus,
 .btn-outline-primary:not(:disabled):not(.disabled):active:focus,
 .show>.btn-outline-primary.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(113, 182, 249, .5)
 }
 
 .btn-outline-secondary {
     color: #6c757d;
     border-color: #6c757d
 }
 
 .btn-outline-secondary:hover {
     color: #fff;
     background-color: #6c757d;
     border-color: #6c757d
 }
 
 .btn-outline-secondary.focus,
 .btn-outline-secondary:focus {
     box-shadow: 0 0 0 .15rem rgba(108, 117, 125, .5)
 }
 
 .btn-outline-secondary.disabled,
 .btn-outline-secondary:disabled {
     color: #6c757d;
     background-color: transparent
 }
 
 .btn-outline-secondary:not(:disabled):not(.disabled).active,
 .btn-outline-secondary:not(:disabled):not(.disabled):active,
 .show>.btn-outline-secondary.dropdown-toggle {
     color: #fff;
     background-color: #6c757d;
     border-color: #6c757d
 }
 
 .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,
 .btn-outline-secondary:not(:disabled):not(.disabled):active:focus,
 .show>.btn-outline-secondary.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(108, 117, 125, .5)
 }
 
 .btn-outline-success {
     color: #10c469;
     border-color: #10c469
 }
 
 .btn-outline-success:hover {
     color: #fff;
     background-color: #10c469;
     border-color: #10c469
 }
 
 .btn-outline-success.focus,
 .btn-outline-success:focus {
     box-shadow: 0 0 0 .15rem rgba(16, 196, 105, .5)
 }
 
 .btn-outline-success.disabled,
 .btn-outline-success:disabled {
     color: #10c469;
     background-color: transparent
 }
 
 .btn-outline-success:not(:disabled):not(.disabled).active,
 .btn-outline-success:not(:disabled):not(.disabled):active,
 .show>.btn-outline-success.dropdown-toggle {
     color: #fff;
     background-color: #10c469;
     border-color: #10c469
 }
 
 .btn-outline-success:not(:disabled):not(.disabled).active:focus,
 .btn-outline-success:not(:disabled):not(.disabled):active:focus,
 .show>.btn-outline-success.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(16, 196, 105, .5)
 }
 
 .btn-outline-info {
     color: #35b8e0;
     border-color: #35b8e0
 }
 
 .btn-outline-info:hover {
     color: #fff;
     background-color: #35b8e0;
     border-color: #35b8e0
 }
 
 .btn-outline-info.focus,
 .btn-outline-info:focus {
     box-shadow: 0 0 0 .15rem rgba(53, 184, 224, .5)
 }
 
 .btn-outline-info.disabled,
 .btn-outline-info:disabled {
     color: #35b8e0;
     background-color: transparent
 }
 
 .btn-outline-info:not(:disabled):not(.disabled).active,
 .btn-outline-info:not(:disabled):not(.disabled):active,
 .show>.btn-outline-info.dropdown-toggle {
     color: #fff;
     background-color: #35b8e0;
     border-color: #35b8e0
 }
 
 .btn-outline-info:not(:disabled):not(.disabled).active:focus,
 .btn-outline-info:not(:disabled):not(.disabled):active:focus,
 .show>.btn-outline-info.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(53, 184, 224, .5)
 }
 
 .btn-outline-warning {
     color: #f9c851;
     border-color: #f9c851
 }
 
 .btn-outline-warning:hover {
     color: #f7f7f7;
     background-color: #f9c851;
     border-color: #f9c851
 }
 
 .btn-outline-warning.focus,
 .btn-outline-warning:focus {
     box-shadow: 0 0 0 .15rem rgba(249, 200, 81, .5)
 }
 
 .btn-outline-warning.disabled,
 .btn-outline-warning:disabled {
     color: #f9c851;
     background-color: transparent
 }
 
 .btn-outline-warning:not(:disabled):not(.disabled).active,
 .btn-outline-warning:not(:disabled):not(.disabled):active,
 .show>.btn-outline-warning.dropdown-toggle {
     color: #f7f7f7;
     background-color: #f9c851;
     border-color: #f9c851
 }
 
 .btn-outline-warning:not(:disabled):not(.disabled).active:focus,
 .btn-outline-warning:not(:disabled):not(.disabled):active:focus,
 .show>.btn-outline-warning.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(249, 200, 81, .5)
 }
 
 .btn-outline-danger {
     color: #ff5b5b;
     border-color: #ff5b5b
 }
 
 .btn-outline-danger:hover {
     color: #fff;
     background-color: #ff5b5b;
     border-color: #ff5b5b
 }
 
 .btn-outline-danger.focus,
 .btn-outline-danger:focus {
     box-shadow: 0 0 0 .15rem rgba(255, 91, 91, .5)
 }
 
 .btn-outline-danger.disabled,
 .btn-outline-danger:disabled {
     color: #ff5b5b;
     background-color: transparent
 }
 
 .btn-outline-danger:not(:disabled):not(.disabled).active,
 .btn-outline-danger:not(:disabled):not(.disabled):active,
 .show>.btn-outline-danger.dropdown-toggle {
     color: #fff;
     background-color: #ff5b5b;
     border-color: #ff5b5b
 }
 
 .btn-outline-danger:not(:disabled):not(.disabled).active:focus,
 .btn-outline-danger:not(:disabled):not(.disabled):active:focus,
 .show>.btn-outline-danger.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(255, 91, 91, .5)
 }
 
 .btn-outline-light {
     color: #323a46;
     border-color: #323a46
 }
 
 .btn-outline-light:hover {
     color: #fff;
     background-color: #323a46;
     border-color: #323a46
 }
 
 .btn-outline-light.focus,
 .btn-outline-light:focus {
     box-shadow: 0 0 0 .15rem rgba(50, 58, 70, .5)
 }
 
 .btn-outline-light.disabled,
 .btn-outline-light:disabled {
     color: #323a46;
     background-color: transparent
 }
 
 .btn-outline-light:not(:disabled):not(.disabled).active,
 .btn-outline-light:not(:disabled):not(.disabled):active,
 .show>.btn-outline-light.dropdown-toggle {
     color: #fff;
     background-color: #323a46;
     border-color: #323a46
 }
 
 .btn-outline-light:not(:disabled):not(.disabled).active:focus,
 .btn-outline-light:not(:disabled):not(.disabled):active:focus,
 .show>.btn-outline-light.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(50, 58, 70, .5)
 }
 
 .btn-outline-dark {
     color: #f1f5f7;
     border-color: #f1f5f7
 }
 
 .btn-outline-dark:hover {
     color: #f7f7f7;
     background-color: #f1f5f7;
     border-color: #f1f5f7
 }
 
 .btn-outline-dark.focus,
 .btn-outline-dark:focus {
     box-shadow: 0 0 0 .15rem rgba(241, 245, 247, .5)
 }
 
 .btn-outline-dark.disabled,
 .btn-outline-dark:disabled {
     color: #f1f5f7;
     background-color: transparent
 }
 
 .btn-outline-dark:not(:disabled):not(.disabled).active,
 .btn-outline-dark:not(:disabled):not(.disabled):active,
 .show>.btn-outline-dark.dropdown-toggle {
     color: #f7f7f7;
     background-color: #f1f5f7;
     border-color: #f1f5f7
 }
 
 .btn-outline-dark:not(:disabled):not(.disabled).active:focus,
 .btn-outline-dark:not(:disabled):not(.disabled):active:focus,
 .show>.btn-outline-dark.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(241, 245, 247, .5)
 }
 
 .btn-outline-pink {
     color: #ff8acc;
     border-color: #ff8acc
 }
 
 .btn-outline-pink:hover {
     color: #f7f7f7;
     background-color: #ff8acc;
     border-color: #ff8acc
 }
 
 .btn-outline-pink.focus,
 .btn-outline-pink:focus {
     box-shadow: 0 0 0 .15rem rgba(255, 138, 204, .5)
 }
 
 .btn-outline-pink.disabled,
 .btn-outline-pink:disabled {
     color: #ff8acc;
     background-color: transparent
 }
 
 .btn-outline-pink:not(:disabled):not(.disabled).active,
 .btn-outline-pink:not(:disabled):not(.disabled):active,
 .show>.btn-outline-pink.dropdown-toggle {
     color: #f7f7f7;
     background-color: #ff8acc;
     border-color: #ff8acc
 }
 
 .btn-outline-pink:not(:disabled):not(.disabled).active:focus,
 .btn-outline-pink:not(:disabled):not(.disabled):active:focus,
 .show>.btn-outline-pink.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(255, 138, 204, .5)
 }
 
 .btn-outline-purple {
     color: #5b69bc;
     border-color: #5b69bc
 }
 
 .btn-outline-purple:hover {
     color: #fff;
     background-color: #5b69bc;
     border-color: #5b69bc
 }
 
 .btn-outline-purple.focus,
 .btn-outline-purple:focus {
     box-shadow: 0 0 0 .15rem rgba(91, 105, 188, .5)
 }
 
 .btn-outline-purple.disabled,
 .btn-outline-purple:disabled {
     color: #5b69bc;
     background-color: transparent
 }
 
 .btn-outline-purple:not(:disabled):not(.disabled).active,
 .btn-outline-purple:not(:disabled):not(.disabled):active,
 .show>.btn-outline-purple.dropdown-toggle {
     color: #fff;
     background-color: #5b69bc;
     border-color: #5b69bc
 }
 
 .btn-outline-purple:not(:disabled):not(.disabled).active:focus,
 .btn-outline-purple:not(:disabled):not(.disabled):active:focus,
 .show>.btn-outline-purple.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(91, 105, 188, .5)
 }
 
 .btn-outline-blue {
     color: #71b6f9;
     border-color: #71b6f9
 }
 
 .btn-outline-blue:hover {
     color: #fff;
     background-color: #71b6f9;
     border-color: #71b6f9
 }
 
 .btn-outline-blue.focus,
 .btn-outline-blue:focus {
     box-shadow: 0 0 0 .15rem rgba(113, 182, 249, .5)
 }
 
 .btn-outline-blue.disabled,
 .btn-outline-blue:disabled {
     color: #71b6f9;
     background-color: transparent
 }
 
 .btn-outline-blue:not(:disabled):not(.disabled).active,
 .btn-outline-blue:not(:disabled):not(.disabled):active,
 .show>.btn-outline-blue.dropdown-toggle {
     color: #fff;
     background-color: #71b6f9;
     border-color: #71b6f9
 }
 
 .btn-outline-blue:not(:disabled):not(.disabled).active:focus,
 .btn-outline-blue:not(:disabled):not(.disabled):active:focus,
 .show>.btn-outline-blue.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(113, 182, 249, .5)
 }
 
 .btn-link {
     font-weight: 400;
     color: #71b6f9;
     text-decoration: none
 }
 
 .btn-link:hover {
     color: #2890f6;
     text-decoration: none
 }
 
 .btn-link.focus,
 .btn-link:focus {
     text-decoration: none;
     box-shadow: none
 }
 
 .btn-link.disabled,
 .btn-link:disabled {
     color: #adb5bd;
     pointer-events: none
 }
 
 .btn-group-lg>.btn,
 .btn-lg {
     padding: .5rem 1rem;
     font-size: 1.25rem;
     line-height: 1.5;
     border-radius: .15rem
 }
 
 .btn-group-sm>.btn,
 .btn-sm {
     padding: .28rem .8rem;
     font-size: .875rem;
     line-height: 1.5;
     border-radius: .15rem
 }
 
 .btn-block {
     display: block;
     width: 100%
 }
 
 .btn-block+.btn-block {
     margin-top: .5rem
 }
 
 input[type=button].btn-block,
 input[type=reset].btn-block,
 input[type=submit].btn-block {
     width: 100%
 }
 
 .fade {
     transition: opacity .15s linear
 }
 
 @media (prefers-reduced-motion:reduce) {
     .fade {
         transition: none
     }
 }
 
 .fade:not(.show) {
     opacity: 0
 }
 
 .collapse:not(.show) {
     display: none
 }
 
 .collapsing {
     position: relative;
     height: 0;
     overflow: hidden;
     transition: height .35s ease
 }
 
 @media (prefers-reduced-motion:reduce) {
     .collapsing {
         transition: none
     }
 }
 
 .dropdown,
 .dropleft,
 .dropright,
 .dropup {
     position: relative
 }
 
 .dropdown-toggle {
     white-space: nowrap
 }
 
 .dropdown-menu {
     position: absolute;
     top: 100%;
     left: 0;
     z-index: 1000;
     display: none;
     float: left;
     min-width: 10rem;
     padding: .25rem 0;
     margin: .125rem 0 0;
     font-size: 1rem;
     color: #212529;
     text-align: left;
     list-style: none;
     background-color: #323a46;
     background-clip: padding-box;
     border: 1px solid #3d4655;
     border-radius: .25rem
 }
 
 .dropdown-menu-left {
     right: auto;
     left: 0
 }
 
 .dropdown-menu-right {
     right: 0;
     left: auto
 }
 
 @media (min-width:576px) {
     .dropdown-menu-sm-left {
         right: auto;
         left: 0
     }
     .dropdown-menu-sm-right {
         right: 0;
         left: auto
     }
 }
 
 @media (min-width:768px) {
     .dropdown-menu-md-left {
         right: auto;
         left: 0
     }
     .dropdown-menu-md-right {
         right: 0;
         left: auto
     }
 }
 
 @media (min-width:992px) {
     .dropdown-menu-lg-left {
         right: auto;
         left: 0
     }
     .dropdown-menu-lg-right {
         right: 0;
         left: auto
     }
 }
 
 @media (min-width:1200px) {
     .dropdown-menu-xl-left {
         right: auto;
         left: 0
     }
     .dropdown-menu-xl-right {
         right: 0;
         left: auto
     }
 }
 
 .dropup .dropdown-menu {
     top: auto;
     bottom: 100%;
     margin-top: 0;
     margin-bottom: .125rem
 }
 
 .dropright .dropdown-menu {
     top: 0;
     right: auto;
     left: 100%;
     margin-top: 0;
     margin-left: .125rem
 }
 
 .dropright .dropdown-toggle::after {
     vertical-align: 0
 }
 
 .dropleft .dropdown-menu {
     top: 0;
     right: 100%;
     left: auto;
     margin-top: 0;
     margin-right: .125rem
 }
 
 .dropleft .dropdown-toggle::before {
     vertical-align: 0
 }
 
 .dropdown-menu[x-placement^=bottom],
 .dropdown-menu[x-placement^=left],
 .dropdown-menu[x-placement^=right],
 .dropdown-menu[x-placement^=top] {
     right: auto;
     bottom: auto
 }
 
 .dropdown-divider {
     height: 0;
     margin: .5rem 0;
     overflow: hidden;
     border-top: 1px solid #e9ecef
 }
 
 .dropdown-item {
     display: block;
     width: 100%;
     padding: .375rem 1.2rem;
     clear: both;
     font-weight: 400;
     color: #adb5bd;
     text-align: inherit;
     white-space: nowrap;
     background-color: transparent;
     border: 0
 }
 
 .dropdown-item:focus,
 .dropdown-item:hover {
     color: #e1e9ee;
     text-decoration: none;
     background-color: #363f4c
 }
 
 .dropdown-item.active,
 .dropdown-item:active {
     color: #f7f7f7;
     text-decoration: none;
     background-color: #363f4c
 }
 
 .dropdown-item.disabled,
 .dropdown-item:disabled {
     color: #6c757d;
     pointer-events: none;
     background-color: transparent
 }
 
 .dropdown-menu.show {
     display: block
 }
 
 .dropdown-header {
     display: block;
     padding: .25rem 1.2rem;
     margin-bottom: 0;
     font-size: .875rem;
     color: inherit;
     white-space: nowrap
 }
 
 .dropdown-item-text {
     display: block;
     padding: .375rem 1.2rem;
     color: #adb5bd
 }
 
 .btn-group,
 .btn-group-vertical {
     position: relative;
     display: inline-flex;
     vertical-align: middle
 }
 
 .btn-group-vertical>.btn,
 .btn-group>.btn {
     position: relative;
     flex: 1 1 auto
 }
 
 .btn-group-vertical>.btn:hover,
 .btn-group>.btn:hover {
     z-index: 1
 }
 
 .btn-group-vertical>.btn.active,
 .btn-group-vertical>.btn:active,
 .btn-group-vertical>.btn:focus,
 .btn-group>.btn.active,
 .btn-group>.btn:active,
 .btn-group>.btn:focus {
     z-index: 1
 }
 
 .btn-toolbar {
     display: flex;
     flex-wrap: wrap;
     justify-content: flex-start
 }
 
 .btn-toolbar .input-group {
     width: auto
 }
 
 .btn-group>.btn-group:not(:first-child),
 .btn-group>.btn:not(:first-child) {
     margin-left: -1px
 }
 
 .btn-group>.btn-group:not(:last-child)>.btn,
 .btn-group>.btn:not(:last-child):not(.dropdown-toggle) {
     border-top-right-radius: 0;
     border-bottom-right-radius: 0
 }
 
 .btn-group>.btn-group:not(:first-child)>.btn,
 .btn-group>.btn:not(:first-child) {
     border-top-left-radius: 0;
     border-bottom-left-radius: 0
 }
 
 .dropdown-toggle-split {
     padding-right: .675rem;
     padding-left: .675rem
 }
 
 .dropdown-toggle-split::after,
 .dropright .dropdown-toggle-split::after,
 .dropup .dropdown-toggle-split::after {
     margin-left: 0
 }
 
 .dropleft .dropdown-toggle-split::before {
     margin-right: 0
 }
 
 .btn-group-sm>.btn+.dropdown-toggle-split,
 .btn-sm+.dropdown-toggle-split {
     padding-right: .6rem;
     padding-left: .6rem
 }
 
 .btn-group-lg>.btn+.dropdown-toggle-split,
 .btn-lg+.dropdown-toggle-split {
     padding-right: .75rem;
     padding-left: .75rem
 }
 
 .btn-group-vertical {
     flex-direction: column;
     align-items: flex-start;
     justify-content: center
 }
 
 .btn-group-vertical>.btn,
 .btn-group-vertical>.btn-group {
     width: 100%
 }
 
 .btn-group-vertical>.btn-group:not(:first-child),
 .btn-group-vertical>.btn:not(:first-child) {
     margin-top: -1px
 }
 
 .btn-group-vertical>.btn-group:not(:last-child)>.btn,
 .btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle) {
     border-bottom-right-radius: 0;
     border-bottom-left-radius: 0
 }
 
 .btn-group-vertical>.btn-group:not(:first-child)>.btn,
 .btn-group-vertical>.btn:not(:first-child) {
     border-top-left-radius: 0;
     border-top-right-radius: 0
 }
 
 .btn-group-toggle>.btn,
 .btn-group-toggle>.btn-group>.btn {
     margin-bottom: 0
 }
 
 .btn-group-toggle>.btn input[type=checkbox],
 .btn-group-toggle>.btn input[type=radio],
 .btn-group-toggle>.btn-group>.btn input[type=checkbox],
 .btn-group-toggle>.btn-group>.btn input[type=radio] {
     position: absolute;
     clip: rect(0, 0, 0, 0);
     pointer-events: none
 }
 
 .input-group {
     position: relative;
     display: flex;
     flex-wrap: wrap;
     align-items: stretch;
     width: 100%
 }
 
 .input-group>.custom-file,
 .input-group>.custom-select,
 .input-group>.form-control,
 .input-group>.form-control-plaintext {
     position: relative;
     flex: 1 1 auto;
     width: 1%;
     margin-bottom: 0
 }
 
 .input-group>.custom-file+.custom-file,
 .input-group>.custom-file+.custom-select,
 .input-group>.custom-file+.form-control,
 .input-group>.custom-select+.custom-file,
 .input-group>.custom-select+.custom-select,
 .input-group>.custom-select+.form-control,
 .input-group>.form-control+.custom-file,
 .input-group>.form-control+.custom-select,
 .input-group>.form-control+.form-control,
 .input-group>.form-control-plaintext+.custom-file,
 .input-group>.form-control-plaintext+.custom-select,
 .input-group>.form-control-plaintext+.form-control {
     margin-left: -1px
 }
 
 .input-group>.custom-file .custom-file-input:focus~.custom-file-label,
 .input-group>.custom-select:focus,
 .input-group>.form-control:focus {
     z-index: 3
 }
 
 .input-group>.custom-file .custom-file-input:focus {
     z-index: 4
 }
 
 .input-group>.custom-select:not(:last-child),
 .input-group>.form-control:not(:last-child) {
     border-top-right-radius: 0;
     border-bottom-right-radius: 0
 }
 
 .input-group>.custom-select:not(:first-child),
 .input-group>.form-control:not(:first-child) {
     border-top-left-radius: 0;
     border-bottom-left-radius: 0
 }
 
 .input-group>.custom-file {
     display: flex;
     align-items: center
 }
 
 .input-group>.custom-file:not(:last-child) .custom-file-label,
 .input-group>.custom-file:not(:last-child) .custom-file-label::after {
     border-top-right-radius: 0;
     border-bottom-right-radius: 0
 }
 
 .input-group>.custom-file:not(:first-child) .custom-file-label {
     border-top-left-radius: 0;
     border-bottom-left-radius: 0
 }
 
 .input-group-append,
 .input-group-prepend {
     display: flex
 }
 
 .input-group-append .btn,
 .input-group-prepend .btn {
     position: relative;
     z-index: 2
 }
 
 .input-group-append .btn:focus,
 .input-group-prepend .btn:focus {
     z-index: 3
 }
 
 .input-group-append .btn+.btn,
 .input-group-append .btn+.input-group-text,
 .input-group-append .input-group-text+.btn,
 .input-group-append .input-group-text+.input-group-text,
 .input-group-prepend .btn+.btn,
 .input-group-prepend .btn+.input-group-text,
 .input-group-prepend .input-group-text+.btn,
 .input-group-prepend .input-group-text+.input-group-text {
     margin-left: -1px
 }
 
 .input-group-prepend {
     margin-right: -1px
 }
 
 .input-group-append {
     margin-left: -1px
 }
 
 .input-group-text {
     display: flex;
     align-items: center;
     padding: .45rem .9rem;
     margin-bottom: 0;
     font-size: .9rem;
     font-weight: 400;
     line-height: 1.5;
     color: #adb5bd;
     text-align: center;
     white-space: nowrap;
     background-color: #434e5e;
     border: 1px solid #434e5e;
     border-radius: .2rem
 }
 
 .input-group-text input[type=checkbox],
 .input-group-text input[type=radio] {
     margin-top: 0
 }
 
 .input-group-lg>.custom-select,
 .input-group-lg>.form-control:not(textarea) {
     height: calc(1.5em + 1rem + 2px)
 }
 
 .input-group-lg>.custom-select,
 .input-group-lg>.form-control,
 .input-group-lg>.input-group-append>.btn,
 .input-group-lg>.input-group-append>.input-group-text,
 .input-group-lg>.input-group-prepend>.btn,
 .input-group-lg>.input-group-prepend>.input-group-text {
     padding: .5rem 1rem;
     font-size: 1.25rem;
     line-height: 1.5;
     border-radius: .3rem
 }
 
 .input-group-sm>.custom-select,
 .input-group-sm>.form-control:not(textarea) {
     height: calc(1.5em + .5rem + 2px)
 }
 
 .input-group-sm>.custom-select,
 .input-group-sm>.form-control,
 .input-group-sm>.input-group-append>.btn,
 .input-group-sm>.input-group-append>.input-group-text,
 .input-group-sm>.input-group-prepend>.btn,
 .input-group-sm>.input-group-prepend>.input-group-text {
     padding: .28rem .8rem;
     font-size: .875rem;
     line-height: 1.5;
     border-radius: .2rem
 }
 
 .input-group-lg>.custom-select,
 .input-group-sm>.custom-select {
     padding-right: 1.9rem
 }
 
 .input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),
 .input-group>.input-group-append:last-child>.input-group-text:not(:last-child),
 .input-group>.input-group-append:not(:last-child)>.btn,
 .input-group>.input-group-append:not(:last-child)>.input-group-text,
 .input-group>.input-group-prepend>.btn,
 .input-group>.input-group-prepend>.input-group-text {
     border-top-right-radius: 0;
     border-bottom-right-radius: 0
 }
 
 .input-group>.input-group-append>.btn,
 .input-group>.input-group-append>.input-group-text,
 .input-group>.input-group-prepend:first-child>.btn:not(:first-child),
 .input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),
 .input-group>.input-group-prepend:not(:first-child)>.btn,
 .input-group>.input-group-prepend:not(:first-child)>.input-group-text {
     border-top-left-radius: 0;
     border-bottom-left-radius: 0
 }
 
 .custom-control {
     position: relative;
     display: block;
     min-height: 1.35rem;
     padding-left: 1.5rem
 }
 
 .custom-control-inline {
     display: inline-flex;
     margin-right: 1rem
 }
 
 .custom-control-input {
     position: absolute;
     z-index: -1;
     opacity: 0
 }
 
 .custom-control-input:checked~.custom-control-label::before {
     color: #71b6f9;
     border-color: #71b6f9;
     background-color: #71b6f9
 }
 
 .custom-control-input:focus~.custom-control-label::before {
     box-shadow: 0 0 0 1px #282e38, 0 0 0 .15rem rgba(113, 182, 249, .25)
 }
 
 .custom-control-input:focus:not(:checked)~.custom-control-label::before {
     border-color: #80bdff
 }
 
 .custom-control-input:not(:disabled):active~.custom-control-label::before {
     color: #fff;
     background-color: #b3d7ff;
     border-color: #b3d7ff
 }
 
 .custom-control-input:disabled~.custom-control-label {
     color: #6c757d
 }
 
 .custom-control-input:disabled~.custom-control-label::before {
     background-color: #e9ecef
 }
 
 .custom-control-label {
     position: relative;
     margin-bottom: 0;
     vertical-align: top
 }
 
 .custom-control-label::before {
     position: absolute;
     top: .175rem;
     left: -1.5rem;
     display: block;
     width: 1rem;
     height: 1rem;
     pointer-events: none;
     content: "";
     background-color: #3b4452;
     border: #3b4452 solid 1px
 }
 
 .custom-control-label::after {
     position: absolute;
     top: .175rem;
     left: -1.5rem;
     display: block;
     width: 1rem;
     height: 1rem;
     content: "";
     background: no-repeat 50%/50% 50%
 }
 
 .custom-checkbox .custom-control-label::before {
     border-radius: .25rem
 }
 
 .custom-checkbox .custom-control-input:checked~.custom-control-label::after {
     background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e")
 }
 
 .custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before {
     border-color: #007bff;
     background-color: #007bff
 }
 
 .custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after {
     background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")
 }
 
 .custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before {
     background-color: rgba(0, 123, 255, .5)
 }
 
 .custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before {
     background-color: rgba(0, 123, 255, .5)
 }
 
 .custom-radio .custom-control-label::before {
     border-radius: 50%
 }
 
 .custom-radio .custom-control-input:checked~.custom-control-label::after {
     background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")
 }
 
 .custom-radio .custom-control-input:disabled:checked~.custom-control-label::before {
     background-color: rgba(0, 123, 255, .5)
 }
 
 .custom-switch {
     padding-left: 2.25rem
 }
 
 .custom-switch .custom-control-label::before {
     left: -2.25rem;
     width: 1.75rem;
     pointer-events: all;
     border-radius: .5rem
 }
 
 .custom-switch .custom-control-label::after {
     top: calc(.175rem + 2px);
     left: calc(-2.25rem + 2px);
     width: calc(1rem - 4px);
     height: calc(1rem - 4px);
     background-color: #3b4452;
     border-radius: .5rem;
     transition: transform .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out
 }
 
 @media (prefers-reduced-motion:reduce) {
     .custom-switch .custom-control-label::after {
         transition: none
     }
 }
 
 .custom-switch .custom-control-input:checked~.custom-control-label::after {
     background-color: #3b4452;
     transform: translateX(.75rem)
 }
 
 .custom-switch .custom-control-input:disabled:checked~.custom-control-label::before {
     background-color: rgba(0, 123, 255, .5)
 }
 
 .custom-select {
     display: inline-block;
     width: 100%;
     height: calc(1.5em + .9rem + 2px);
     padding: .45rem 1.9rem .45rem .9rem;
     font-size: .9rem;
     font-weight: 400;
     line-height: 1.5;
     color: #adb5bd;
     vertical-align: middle;
     background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23adb5bd' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .9rem center/8px 10px;
     background-color: #3b4452;
     border: 1px solid #434e5e;
     border-radius: .25rem;
     appearance: none
 }
 
 .custom-select:focus {
     border-color: #475364;
     outline: 0;
     box-shadow: none
 }
 
 .custom-select:focus::-ms-value {
     color: #adb5bd;
     background-color: #3b4452
 }
 
 .custom-select[multiple],
 .custom-select[size]:not([size="1"]) {
     height: auto;
     padding-right: .9rem;
     background-image: none
 }
 
 .custom-select:disabled {
     color: #6c757d;
     background-color: #e9ecef
 }
 
 .custom-select::-ms-expand {
     display: none
 }
 
 .custom-select-sm {
     height: calc(1.5em + .5rem + 2px);
     padding-top: .25rem;
     padding-bottom: .25rem;
     padding-left: .5rem;
     font-size: .875rem
 }
 
 .custom-select-lg {
     height: calc(1.5em + 1rem + 2px);
     padding-top: .5rem;
     padding-bottom: .5rem;
     padding-left: 1rem;
     font-size: 1.25rem
 }
 
 .custom-file {
     position: relative;
     display: inline-block;
     width: 100%;
     height: calc(1.5em + .9rem + 2px);
     margin-bottom: 0
 }
 
 .custom-file-input {
     position: relative;
     z-index: 2;
     width: 100%;
     height: calc(1.5em + .9rem + 2px);
     margin: 0;
     opacity: 0
 }
 
 .custom-file-input:focus~.custom-file-label {
     border-color: #475364;
     box-shadow: none
 }
 
 .custom-file-input:disabled~.custom-file-label {
     background-color: #e9ecef
 }
 
 .custom-file-input:lang(en)~.custom-file-label::after {
     content: "Browse"
 }
 
 .custom-file-input~.custom-file-label[data-browse]::after {
     content: attr(data-browse)
 }
 
 .custom-file-label {
     position: absolute;
     top: 0;
     right: 0;
     left: 0;
     z-index: 1;
     height: calc(1.5em + .9rem + 2px);
     padding: .45rem .9rem;
     font-weight: 400;
     line-height: 1.5;
     color: #adb5bd;
     background-color: #3b4452;
     border: 1px solid #434e5e;
     border-radius: .2rem
 }
 
 .custom-file-label::after {
     position: absolute;
     top: 0;
     right: 0;
     bottom: 0;
     z-index: 3;
     display: block;
     height: calc(1.5em + .9rem);
     padding: .45rem .9rem;
     line-height: 1.5;
     color: #adb5bd;
     content: "Browse";
     background-color: #434e5e;
     border-left: inherit;
     border-radius: 0 .2rem .2rem 0
 }
 
 .custom-range {
     width: 100%;
     height: calc(1rem + .3rem);
     padding: 0;
     background-color: transparent;
     appearance: none
 }
 
 .custom-range:focus {
     outline: 0
 }
 
 .custom-range:focus::-webkit-slider-thumb {
     box-shadow: 0 0 0 1px #282e38, 0 0 0 .15rem rgba(113, 182, 249, .25)
 }
 
 .custom-range:focus::-moz-range-thumb {
     box-shadow: 0 0 0 1px #282e38, 0 0 0 .15rem rgba(113, 182, 249, .25)
 }
 
 .custom-range:focus::-ms-thumb {
     box-shadow: 0 0 0 1px #282e38, 0 0 0 .15rem rgba(113, 182, 249, .25)
 }
 
 .custom-range::-moz-focus-outer {
     border: 0
 }
 
 .custom-range::-webkit-slider-thumb {
     width: 1rem;
     height: 1rem;
     margin-top: -.25rem;
     background-color: #71b6f9;
     border: 0;
     border-radius: 1rem;
     -webkit-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
     transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
     appearance: none
 }
 
 @media (prefers-reduced-motion:reduce) {
     .custom-range::-webkit-slider-thumb {
         -webkit-transition: none;
         transition: none
     }
 }
 
 .custom-range::-webkit-slider-thumb:active {
     background-color: #fff
 }
 
 .custom-range::-webkit-slider-runnable-track {
     width: 100%;
     height: .5rem;
     color: transparent;
     cursor: pointer;
     background-color: #6c757d;
     border-color: transparent;
     border-radius: 1rem
 }
 
 .custom-range::-moz-range-thumb {
     width: 1rem;
     height: 1rem;
     background-color: #71b6f9;
     border: 0;
     border-radius: 1rem;
     -moz-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
     transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
     appearance: none
 }
 
 @media (prefers-reduced-motion:reduce) {
     .custom-range::-moz-range-thumb {
         -moz-transition: none;
         transition: none
     }
 }
 
 .custom-range::-moz-range-thumb:active {
     background-color: #fff
 }
 
 .custom-range::-moz-range-track {
     width: 100%;
     height: .5rem;
     color: transparent;
     cursor: pointer;
     background-color: #6c757d;
     border-color: transparent;
     border-radius: 1rem
 }
 
 .custom-range::-ms-thumb {
     width: 1rem;
     height: 1rem;
     margin-top: 0;
     margin-right: .15rem;
     margin-left: .15rem;
     background-color: #71b6f9;
     border: 0;
     border-radius: 1rem;
     -ms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
     transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
     appearance: none
 }
 
 @media (prefers-reduced-motion:reduce) {
     .custom-range::-ms-thumb {
         -ms-transition: none;
         transition: none
     }
 }
 
 .custom-range::-ms-thumb:active {
     background-color: #fff
 }
 
 .custom-range::-ms-track {
     width: 100%;
     height: .5rem;
     color: transparent;
     cursor: pointer;
     background-color: transparent;
     border-color: transparent;
     border-width: .5rem
 }
 
 .custom-range::-ms-fill-lower {
     background-color: #6c757d;
     border-radius: 1rem
 }
 
 .custom-range::-ms-fill-upper {
     margin-right: 15px;
     background-color: #6c757d;
     border-radius: 1rem
 }
 
 .custom-range:disabled::-webkit-slider-thumb {
     background-color: #adb5bd
 }
 
 .custom-range:disabled::-webkit-slider-runnable-track {
     cursor: default
 }
 
 .custom-range:disabled::-moz-range-thumb {
     background-color: #adb5bd
 }
 
 .custom-range:disabled::-moz-range-track {
     cursor: default
 }
 
 .custom-range:disabled::-ms-thumb {
     background-color: #adb5bd
 }
 
 .custom-control-label::before,
 .custom-file-label,
 .custom-select {
     transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out
 }
 
 @media (prefers-reduced-motion:reduce) {
     .custom-control-label::before,
     .custom-file-label,
     .custom-select {
         transition: none
     }
 }
 
 .nav {
     display: flex;
     flex-wrap: wrap;
     padding-left: 0;
     margin-bottom: 0;
     list-style: none
 }
 
 .nav-link {
     display: block;
     padding: .5rem 1rem
 }
 
 .nav-link:focus,
 .nav-link:hover {
     text-decoration: none
 }
 
 .nav-link.disabled {
     color: #6c757d;
     pointer-events: none;
     cursor: default
 }
 
 .nav-tabs {
     border-bottom: 1px solid #3b4452
 }
 
 .nav-tabs .nav-item {
     margin-bottom: -1px
 }
 
 .nav-tabs .nav-link {
     border: 1px solid transparent;
     border-top-left-radius: .25rem;
     border-top-right-radius: .25rem
 }
 
 .nav-tabs .nav-link:focus,
 .nav-tabs .nav-link:hover {
     border-color: #3b4452 #3b4452 #323a46
 }
 
 .nav-tabs .nav-link.disabled {
     color: #6c757d;
     background-color: transparent;
     border-color: transparent
 }
 
 .nav-tabs .nav-item.show .nav-link,
 .nav-tabs .nav-link.active {
     color: #f1f5f7;
     background-color: #323a46;
     border-color: #3b4452 #3b4452 #323a46
 }
 
 .nav-tabs .dropdown-menu {
     margin-top: -1px;
     border-top-left-radius: 0;
     border-top-right-radius: 0
 }
 
 .nav-pills .nav-link {
     border-radius: .25rem
 }
 
 .nav-pills .nav-link.active,
 .nav-pills .show>.nav-link {
     color: #fff;
     background-color: #71b6f9
 }
 
 .nav-fill .nav-item {
     flex: 1 1 auto;
     text-align: center
 }
 
 .nav-justified .nav-item {
     flex-basis: 0;
     flex-grow: 1;
     text-align: center
 }
 
 .tab-content>.tab-pane {
     display: none
 }
 
 .tab-content>.active {
     display: block
 }
 
 .navbar {
     position: relative;
     display: flex;
     flex-wrap: wrap;
     align-items: center;
     justify-content: space-between;
     padding: .5rem 1rem
 }
 
 .navbar>.container,
 .navbar>.container-fluid {
     display: flex;
     flex-wrap: wrap;
     align-items: center;
     justify-content: space-between
 }
 
 .navbar-brand {
     display: inline-block;
     padding-top: .3125rem;
     padding-bottom: .3125rem;
     margin-right: 1rem;
     font-size: 1.25rem;
     line-height: inherit;
     white-space: nowrap
 }
 
 .navbar-brand:focus,
 .navbar-brand:hover {
     text-decoration: none
 }
 
 .navbar-nav {
     display: flex;
     flex-direction: column;
     padding-left: 0;
     margin-bottom: 0;
     list-style: none
 }
 
 .navbar-nav .nav-link {
     padding-right: 0;
     padding-left: 0
 }
 
 .navbar-nav .dropdown-menu {
     position: static;
     float: none
 }
 
 .navbar-text {
     display: inline-block;
     padding-top: .5rem;
     padding-bottom: .5rem
 }
 
 .navbar-collapse {
     flex-basis: 100%;
     flex-grow: 1;
     align-items: center
 }
 
 .navbar-toggler {
     padding: .25rem .75rem;
     font-size: 1.25rem;
     line-height: 1;
     background-color: transparent;
     border: 1px solid transparent;
     border-radius: .25rem
 }
 
 .navbar-toggler:focus,
 .navbar-toggler:hover {
     text-decoration: none
 }
 
 .navbar-toggler-icon {
     display: inline-block;
     width: 1.5em;
     height: 1.5em;
     vertical-align: middle;
     content: "";
     background: no-repeat center center;
     background-size: 100% 100%
 }
 
 @media (max-width:575.98px) {
     .navbar-expand-sm>.container,
     .navbar-expand-sm>.container-fluid {
         padding-right: 0;
         padding-left: 0
     }
 }
 
 @media (min-width:576px) {
     .navbar-expand-sm {
         flex-flow: row nowrap;
         justify-content: flex-start
     }
     .navbar-expand-sm .navbar-nav {
         flex-direction: row
     }
     .navbar-expand-sm .navbar-nav .dropdown-menu {
         position: absolute
     }
     .navbar-expand-sm .navbar-nav .nav-link {
         padding-right: .5rem;
         padding-left: .5rem
     }
     .navbar-expand-sm>.container,
     .navbar-expand-sm>.container-fluid {
         flex-wrap: nowrap
     }
     .navbar-expand-sm .navbar-collapse {
         display: flex!important;
         flex-basis: auto
     }
     .navbar-expand-sm .navbar-toggler {
         display: none
     }
 }
 
 @media (max-width:767.98px) {
     .navbar-expand-md>.container,
     .navbar-expand-md>.container-fluid {
         padding-right: 0;
         padding-left: 0
     }
 }
 
 @media (min-width:768px) {
     .navbar-expand-md {
         flex-flow: row nowrap;
         justify-content: flex-start
     }
     .navbar-expand-md .navbar-nav {
         flex-direction: row
     }
     .navbar-expand-md .navbar-nav .dropdown-menu {
         position: absolute
     }
     .navbar-expand-md .navbar-nav .nav-link {
         padding-right: .5rem;
         padding-left: .5rem
     }
     .navbar-expand-md>.container,
     .navbar-expand-md>.container-fluid {
         flex-wrap: nowrap
     }
     .navbar-expand-md .navbar-collapse {
         display: flex!important;
         flex-basis: auto
     }
     .navbar-expand-md .navbar-toggler {
         display: none
     }
 }
 
 @media (max-width:991.98px) {
     .navbar-expand-lg>.container,
     .navbar-expand-lg>.container-fluid {
         padding-right: 0;
         padding-left: 0
     }
 }
 
 @media (min-width:992px) {
     .navbar-expand-lg {
         flex-flow: row nowrap;
         justify-content: flex-start
     }
     .navbar-expand-lg .navbar-nav {
         flex-direction: row
     }
     .navbar-expand-lg .navbar-nav .dropdown-menu {
         position: absolute
     }
     .navbar-expand-lg .navbar-nav .nav-link {
         padding-right: .5rem;
         padding-left: .5rem
     }
     .navbar-expand-lg>.container,
     .navbar-expand-lg>.container-fluid {
         flex-wrap: nowrap
     }
     .navbar-expand-lg .navbar-collapse {
         display: flex!important;
         flex-basis: auto
     }
     .navbar-expand-lg .navbar-toggler {
         display: none
     }
 }
 
 @media (max-width:1199.98px) {
     .navbar-expand-xl>.container,
     .navbar-expand-xl>.container-fluid {
         padding-right: 0;
         padding-left: 0
     }
 }
 
 @media (min-width:1200px) {
     .navbar-expand-xl {
         flex-flow: row nowrap;
         justify-content: flex-start
     }
     .navbar-expand-xl .navbar-nav {
         flex-direction: row
     }
     .navbar-expand-xl .navbar-nav .dropdown-menu {
         position: absolute
     }
     .navbar-expand-xl .navbar-nav .nav-link {
         padding-right: .5rem;
         padding-left: .5rem
     }
     .navbar-expand-xl>.container,
     .navbar-expand-xl>.container-fluid {
         flex-wrap: nowrap
     }
     .navbar-expand-xl .navbar-collapse {
         display: flex!important;
         flex-basis: auto
     }
     .navbar-expand-xl .navbar-toggler {
         display: none
     }
 }
 
 .navbar-expand {
     flex-flow: row nowrap;
     justify-content: flex-start
 }
 
 .navbar-expand>.container,
 .navbar-expand>.container-fluid {
     padding-right: 0;
     padding-left: 0
 }
 
 .navbar-expand .navbar-nav {
     flex-direction: row
 }
 
 .navbar-expand .navbar-nav .dropdown-menu {
     position: absolute
 }
 
 .navbar-expand .navbar-nav .nav-link {
     padding-right: .5rem;
     padding-left: .5rem
 }
 
 .navbar-expand>.container,
 .navbar-expand>.container-fluid {
     flex-wrap: nowrap
 }
 
 .navbar-expand .navbar-collapse {
     display: flex!important;
     flex-basis: auto
 }
 
 .navbar-expand .navbar-toggler {
     display: none
 }
 
 .navbar-light .navbar-brand {
     color: rgba(0, 0, 0, .9)
 }
 
 .navbar-light .navbar-brand:focus,
 .navbar-light .navbar-brand:hover {
     color: rgba(0, 0, 0, .9)
 }
 
 .navbar-light .navbar-nav .nav-link {
     color: rgba(0, 0, 0, .5)
 }
 
 .navbar-light .navbar-nav .nav-link:focus,
 .navbar-light .navbar-nav .nav-link:hover {
     color: rgba(0, 0, 0, .7)
 }
 
 .navbar-light .navbar-nav .nav-link.disabled {
     color: rgba(0, 0, 0, .3)
 }
 
 .navbar-light .navbar-nav .active>.nav-link,
 .navbar-light .navbar-nav .nav-link.active,
 .navbar-light .navbar-nav .nav-link.show,
 .navbar-light .navbar-nav .show>.nav-link {
     color: rgba(0, 0, 0, .9)
 }
 
 .navbar-light .navbar-toggler {
     color: rgba(0, 0, 0, .5);
     border-color: rgba(0, 0, 0, .1)
 }
 
 .navbar-light .navbar-toggler-icon {
     background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")
 }
 
 .navbar-light .navbar-text {
     color: rgba(0, 0, 0, .5)
 }
 
 .navbar-light .navbar-text a {
     color: rgba(0, 0, 0, .9)
 }
 
 .navbar-light .navbar-text a:focus,
 .navbar-light .navbar-text a:hover {
     color: rgba(0, 0, 0, .9)
 }
 
 .navbar-dark .navbar-brand {
     color: #fff
 }
 
 .navbar-dark .navbar-brand:focus,
 .navbar-dark .navbar-brand:hover {
     color: #fff
 }
 
 .navbar-dark .navbar-nav .nav-link {
     color: rgba(255, 255, 255, .5)
 }
 
 .navbar-dark .navbar-nav .nav-link:focus,
 .navbar-dark .navbar-nav .nav-link:hover {
     color: rgba(255, 255, 255, .75)
 }
 
 .navbar-dark .navbar-nav .nav-link.disabled {
     color: rgba(255, 255, 255, .25)
 }
 
 .navbar-dark .navbar-nav .active>.nav-link,
 .navbar-dark .navbar-nav .nav-link.active,
 .navbar-dark .navbar-nav .nav-link.show,
 .navbar-dark .navbar-nav .show>.nav-link {
     color: #fff
 }
 
 .navbar-dark .navbar-toggler {
     color: rgba(255, 255, 255, .5);
     border-color: rgba(255, 255, 255, .1)
 }
 
 .navbar-dark .navbar-toggler-icon {
     background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")
 }
 
 .navbar-dark .navbar-text {
     color: rgba(255, 255, 255, .5)
 }
 
 .navbar-dark .navbar-text a {
     color: #fff
 }
 
 .navbar-dark .navbar-text a:focus,
 .navbar-dark .navbar-text a:hover {
     color: #fff
 }
 
 .card {
     position: relative;
     display: flex;
     flex-direction: column;
     min-width: 0;
     word-wrap: break-word;
     background-color: #323a46;
     background-clip: border-box;
     border: 0 solid #343a40;
     border-radius: .25rem
 }
 
 .card>hr {
     margin-right: 0;
     margin-left: 0
 }
 
 .card>.list-group:first-child .list-group-item:first-child {
     border-top-left-radius: .25rem;
     border-top-right-radius: .25rem
 }
 
 .card>.list-group:last-child .list-group-item:last-child {
     border-bottom-right-radius: .25rem;
     border-bottom-left-radius: .25rem
 }
 
 .card-body {
     flex: 1 1 auto;
     padding: 1.5rem
 }
 
 .card-title {
     margin-bottom: 1rem
 }
 
 .card-subtitle {
     margin-top: -.5rem;
     margin-bottom: 0
 }
 
 .card-text:last-child {
     margin-bottom: 0
 }
 
 .card-link:hover {
     text-decoration: none
 }
 
 .card-link+.card-link {
     margin-left: 1.5rem
 }
 
 .card-header {
     padding: 1rem 1.5rem;
     margin-bottom: 0;
     background-color: #3b4452;
     border-bottom: 0 solid #343a40
 }
 
 .card-header:first-child {
     border-radius: calc(.25rem - 1px) calc(.25rem - 1px) 0 0
 }
 
 .card-header+.list-group .list-group-item:first-child {
     border-top: 0
 }
 
 .card-footer {
     padding: 1rem 1.5rem;
     background-color: #3b4452;
     border-top: 0 solid #343a40
 }
 
 .card-footer:last-child {
     border-radius: 0 0 calc(.25rem - 1px) calc(.25rem - 1px)
 }
 
 .card-header-tabs {
     margin-right: -.75rem;
     margin-bottom: -1rem;
     margin-left: -.75rem;
     border-bottom: 0
 }
 
 .card-header-pills {
     margin-right: -.75rem;
     margin-left: -.75rem
 }
 
 .card-img-overlay {
     position: absolute;
     top: 0;
     right: 0;
     bottom: 0;
     left: 0;
     padding: 1.25rem
 }
 
 .card-img {
     width: 100%;
     border-radius: calc(.25rem - 1px)
 }
 
 .card-img-top {
     width: 100%;
     border-top-left-radius: calc(.25rem - 1px);
     border-top-right-radius: calc(.25rem - 1px)
 }
 
 .card-img-bottom {
     width: 100%;
     border-bottom-right-radius: calc(.25rem - 1px);
     border-bottom-left-radius: calc(.25rem - 1px)
 }
 
 .card-deck {
     display: flex;
     flex-direction: column
 }
 
 .card-deck .card {
     margin-bottom: 15px
 }
 
 @media (min-width:576px) {
     .card-deck {
         flex-flow: row wrap;
         margin-right: -15px;
         margin-left: -15px
     }
     .card-deck .card {
         display: flex;
         flex: 1 0 0%;
         flex-direction: column;
         margin-right: 15px;
         margin-bottom: 0;
         margin-left: 15px
     }
 }
 
 .card-group {
     display: flex;
     flex-direction: column
 }
 
 .card-group>.card {
     margin-bottom: 15px
 }
 
 @media (min-width:576px) {
     .card-group {
         flex-flow: row wrap
     }
     .card-group>.card {
         flex: 1 0 0%;
         margin-bottom: 0
     }
     .card-group>.card+.card {
         margin-left: 0;
         border-left: 0
     }
     .card-group>.card:not(:last-child) {
         border-top-right-radius: 0;
         border-bottom-right-radius: 0
     }
     .card-group>.card:not(:last-child) .card-header,
     .card-group>.card:not(:last-child) .card-img-top {
         border-top-right-radius: 0
     }
     .card-group>.card:not(:last-child) .card-footer,
     .card-group>.card:not(:last-child) .card-img-bottom {
         border-bottom-right-radius: 0
     }
     .card-group>.card:not(:first-child) {
         border-top-left-radius: 0;
         border-bottom-left-radius: 0
     }
     .card-group>.card:not(:first-child) .card-header,
     .card-group>.card:not(:first-child) .card-img-top {
         border-top-left-radius: 0
     }
     .card-group>.card:not(:first-child) .card-footer,
     .card-group>.card:not(:first-child) .card-img-bottom {
         border-bottom-left-radius: 0
     }
 }
 
 .card-columns .card {
     margin-bottom: 24px
 }
 
 @media (min-width:576px) {
     .card-columns {
         column-count: 3;
         column-gap: 24px;
         orphans: 1;
         widows: 1
     }
     .card-columns .card {
         display: inline-block;
         width: 100%
     }
 }
 
 .accordion>.card {
     overflow: hidden
 }
 
 .accordion>.card:not(:first-of-type) .card-header:first-child {
     border-radius: 0
 }
 
 .accordion>.card:not(:first-of-type):not(:last-of-type) {
     border-bottom: 0;
     border-radius: 0
 }
 
 .accordion>.card:first-of-type {
     border-bottom: 0;
     border-bottom-right-radius: 0;
     border-bottom-left-radius: 0
 }
 
 .accordion>.card:last-of-type {
     border-top-left-radius: 0;
     border-top-right-radius: 0
 }
 
 .accordion>.card .card-header {
     margin-bottom: 0
 }
 
 .breadcrumb {
     display: flex;
     flex-wrap: wrap;
     padding: 1rem 0;
     margin-bottom: 1rem;
     list-style: none;
     background-color: transparent;
     border-radius: .25rem
 }
 
 .breadcrumb-item+.breadcrumb-item {
     padding-left: .5rem
 }
 
 .breadcrumb-item+.breadcrumb-item::before {
     display: inline-block;
     padding-right: .5rem;
     color: #98a6ad;
     content: ""
 }
 
 .breadcrumb-item+.breadcrumb-item:hover::before {
     text-decoration: underline;
     text-decoration: none
 }
 
 .breadcrumb-item.active {
     color: #adb5bd
 }
 
 .pagination {
     display: flex;
     padding-left: 0;
     list-style: none;
     border-radius: .25rem
 }
 
 .page-link {
     position: relative;
     display: block;
     padding: .5rem .75rem;
     margin-left: -1px;
     line-height: 1.25;
     color: #f1f5f7;
     background-color: #3b4452;
     border: 1px solid #434e5e
 }
 
 .page-link:hover {
     z-index: 2;
     color: #f1f5f7;
     text-decoration: none;
     background-color: #434e5e;
     border-color: #434e5e
 }
 
 .page-link:focus {
     z-index: 2;
     outline: 0;
     box-shadow: 0 0 0 .15rem rgba(113, 182, 249, .25)
 }
 
 .page-item:first-child .page-link {
     margin-left: 0;
     border-top-left-radius: .25rem;
     border-bottom-left-radius: .25rem
 }
 
 .page-item:last-child .page-link {
     border-top-right-radius: .25rem;
     border-bottom-right-radius: .25rem
 }
 
 .page-item.active .page-link {
     z-index: 1;
     color: #fff;
     background-color: #71b6f9;
     border-color: #71b6f9
 }
 
 .page-item.disabled .page-link {
     color: #adb5bd;
     pointer-events: none;
     cursor: auto;
     background-color: #434e5e;
     border-color: #434e5e
 }
 
 .pagination-lg .page-link {
     padding: .75rem 1.5rem;
     font-size: 1.25rem;
     line-height: 1.5
 }
 
 .pagination-lg .page-item:first-child .page-link {
     border-top-left-radius: .3rem;
     border-bottom-left-radius: .3rem
 }
 
 .pagination-lg .page-item:last-child .page-link {
     border-top-right-radius: .3rem;
     border-bottom-right-radius: .3rem
 }
 
 .pagination-sm .page-link {
     padding: .25rem .5rem;
     font-size: .875rem;
     line-height: 1.5
 }
 
 .pagination-sm .page-item:first-child .page-link {
     border-top-left-radius: .2rem;
     border-bottom-left-radius: .2rem
 }
 
 .pagination-sm .page-item:last-child .page-link {
     border-top-right-radius: .2rem;
     border-bottom-right-radius: .2rem
 }
 
 .badge {
    margin: 0px 3px !important;
     display: inline-block;
     padding: .25em .4em;
     font-size: 75%;
     font-weight: 700;
     line-height: 1;
     text-align: center;
     white-space: nowrap;
     vertical-align: baseline;
     border-radius: .25rem;
     transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out
 }
 
 @media (prefers-reduced-motion:reduce) {
     .badge {
         transition: none
     }
 }
 
 a.badge:focus,
 a.badge:hover {
     text-decoration: none
 }
 
 .badge:empty {
     display: none
 }
 
 .btn .badge {
     position: relative;
     top: -1px
 }
 
 .badge-pill {
     padding-right: .6em;
     padding-left: .6em;
     border-radius: 10rem
 }
 
 .badge-primary {
     color: #fff;
     background-color: #71b6f9
 }
 
 a.badge-primary:focus,
 a.badge-primary:hover {
     color: #fff;
     background-color: #409df7
 }
 
 a.badge-primary.focus,
 a.badge-primary:focus {
     outline: 0;
     box-shadow: 0 0 0 .2rem rgba(113, 182, 249, .5)
 }
 
 .badge-secondary {
     color: #fff;
     background-color: #6c757d
 }
 
 a.badge-secondary:focus,
 a.badge-secondary:hover {
     color: #fff;
     background-color: #545b62
 }
 
 a.badge-secondary.focus,
 a.badge-secondary:focus {
     outline: 0;
     box-shadow: 0 0 0 .2rem rgba(108, 117, 125, .5)
 }
 
 .badge-success {
     color: #fff;
     background-color: #10c469
 }
 
 a.badge-success:focus,
 a.badge-success:hover {
     color: #fff;
     background-color: #0c9550
 }
 
 a.badge-success.focus,
 a.badge-success:focus {
     outline: 0;
     box-shadow: 0 0 0 .2rem rgba(16, 196, 105, .5)
 }
 
 .badge-info {
     color: #fff;
     background-color: #35b8e0
 }
 
 a.badge-info:focus,
 a.badge-info:hover {
     color: #fff;
     background-color: #1e9dc4
 }
 
 a.badge-info.focus,
 a.badge-info:focus {
     outline: 0;
     box-shadow: 0 0 0 .2rem rgba(53, 184, 224, .5)
 }
 
 .badge-warning {
     color: #f7f7f7;
     background-color: #f9c851
 }
 
 a.badge-warning:focus,
 a.badge-warning:hover {
     color: #f7f7f7;
     background-color: #f7b820
 }
 
 a.badge-warning.focus,
 a.badge-warning:focus {
     outline: 0;
     box-shadow: 0 0 0 .2rem rgba(249, 200, 81, .5)
 }
 
 .badge-danger {
     color: #fff;
     background-color: #ff5b5b
 }
 
 a.badge-danger:focus,
 a.badge-danger:hover {
     color: #fff;
     background-color: #ff2828
 }
 
 a.badge-danger.focus,
 a.badge-danger:focus {
     outline: 0;
     box-shadow: 0 0 0 .2rem rgba(255, 91, 91, .5)
 }
 
 .badge-light {
     color: #fff;
     background-color: #323a46
 }
 
 a.badge-light:focus,
 a.badge-light:hover {
     color: #fff;
     background-color: #1d2128
 }
 
 a.badge-light.focus,
 a.badge-light:focus {
     outline: 0;
     box-shadow: 0 0 0 .2rem rgba(50, 58, 70, .5)
 }
 
 .badge-dark {
     color: #f7f7f7;
     background-color: #f1f5f7
 }
 
 a.badge-dark:focus,
 a.badge-dark:hover {
     color: #f7f7f7;
     background-color: #d1dee4
 }
 
 a.badge-dark.focus,
 a.badge-dark:focus {
     outline: 0;
     box-shadow: 0 0 0 .2rem rgba(241, 245, 247, .5)
 }
 
 .badge-pink {
     color: #f7f7f7;
     background-color: #ff8acc
 }
 
 a.badge-pink:focus,
 a.badge-pink:hover {
     color: #f7f7f7;
     background-color: #ff57b6
 }
 
 a.badge-pink.focus,
 a.badge-pink:focus {
     outline: 0;
     box-shadow: 0 0 0 .2rem rgba(255, 138, 204, .5)
 }
 
 .badge-purple {
     color: #fff;
     background-color: #5b69bc
 }
 
 a.badge-purple:focus,
 a.badge-purple:hover {
     color: #fff;
     background-color: #4250a2
 }
 
 a.badge-purple.focus,
 a.badge-purple:focus {
     outline: 0;
     box-shadow: 0 0 0 .2rem rgba(91, 105, 188, .5)
 }
 
 .badge-blue {
     color: #fff;
     background-color: #71b6f9
 }
 
 a.badge-blue:focus,
 a.badge-blue:hover {
     color: #fff;
     background-color: #409df7
 }
 
 a.badge-blue.focus,
 a.badge-blue:focus {
     outline: 0;
     box-shadow: 0 0 0 .2rem rgba(113, 182, 249, .5)
 }
 
 .jumbotron {
     padding: 2rem 1rem;
     margin-bottom: 2rem;
     background-color: #e9ecef;
     border-radius: .3rem
 }
 
 @media (min-width:576px) {
     .jumbotron {
         padding: 4rem 2rem
     }
 }
 
 .jumbotron-fluid {
     padding-right: 0;
     padding-left: 0;
     border-radius: 0
 }
 
 .alert {
     position: relative;
     padding: .75rem 1.25rem;
     margin-bottom: 1rem;
     border: 1px solid transparent;
     border-radius: .25rem
 }
 
 .alert-heading {
     color: inherit
 }
 
 .alert-link {
     font-weight: 700
 }
 
 .alert-dismissible {
     padding-right: 3.9rem
 }
 
 .alert-dismissible .close {
     position: absolute;
     top: 0;
     right: 0;
     padding: .75rem 1.25rem;
     color: inherit
 }
 
 .alert-primary {
     color: #3b5f81;
     background-color: #eef6fe;
     border-color: #d7ebfd
 }
 
 .alert-primary hr {
     border-top-color: #bfdffc
 }
 
 .alert-primary .alert-link {
     color: #2b455e
 }
 
 .alert-secondary {
     color: #383d41;
     background-color: #edeeef;
     border-color: #d6d8db
 }
 
 .alert-secondary hr {
     border-top-color: #c8cbcf
 }
 
 .alert-secondary .alert-link {
     color: #202326
 }
 
 .alert-success {
     color: #086637;
     background-color: #e2f8ed;
     border-color: #bceed5
 }
 
 .alert-success hr {
     border-top-color: #a8e9c8
 }
 
 .alert-success .alert-link {
     color: #04371e
 }
 
 .alert-info {
     color: #1c6074;
     background-color: #e7f6fb;
     border-color: #c6ebf6
 }
 
 .alert-info hr {
     border-top-color: #b0e3f3
 }
 
 .alert-info .alert-link {
     color: #123e4b
 }
 
 .alert-warning {
     color: #81682a;
     background-color: #fef8ea;
     border-color: #fdf0ce
 }
 
 .alert-warning hr {
     border-top-color: #fce9b6
 }
 
 .alert-warning .alert-link {
     color: #5b491d
 }
 
 .alert-danger {
     color: #852f2f;
     background-color: #ffebeb;
     border-color: #ffd1d1
 }
 
 .alert-danger hr {
     border-top-color: #ffb8b8
 }
 
 .alert-danger .alert-link {
     color: #5f2222
 }
 
 .alert-light {
     color: #1a1e24;
     background-color: #e6e7e9;
     border-color: #c6c8cb
 }
 
 .alert-light hr {
     border-top-color: #b9bbbf
 }
 
 .alert-light .alert-link {
     color: #050506
 }
 
 .alert-dark {
     color: #7d7f80;
     background-color: #fdfefe;
     border-color: #fbfcfd
 }
 
 .alert-dark hr {
     border-top-color: #eaeff5
 }
 
 .alert-dark .alert-link {
     color: #646566
 }
 
 .alert-pink {
     color: #85486a;
     background-color: #fff1f9;
     border-color: #ffdef1
 }
 
 .alert-pink hr {
     border-top-color: #ffc5e6
 }
 
 .alert-pink .alert-link {
     color: #643650
 }
 
 .alert-purple {
     color: #2f3762;
     background-color: #ebedf7;
     border-color: #d1d5ec
 }
 
 .alert-purple hr {
     border-top-color: #bfc5e5
 }
 
 .alert-purple .alert-link {
     color: #1e2440
 }
 
 .alert-blue {
     color: #3b5f81;
     background-color: #eef6fe;
     border-color: #d7ebfd
 }
 
 .alert-blue hr {
     border-top-color: #bfdffc
 }
 
 .alert-blue .alert-link {
     color: #2b455e
 }
 
 @keyframes progress-bar-stripes {
     from {
         background-position: .625rem 0
     }
     to {
         background-position: 0 0
     }
 }
 
 .progress {
     display: flex;
     height: .625rem;
     overflow: hidden;
     font-size: .75rem;
     background-color: #3b4452;
     border-radius: .25rem
 }
 
 .progress-bar {
     display: flex;
     flex-direction: column;
     justify-content: center;
     color: #fff;
     text-align: center;
     white-space: nowrap;
     background-color: #71b6f9;
     transition: width .6s ease
 }
 
 @media (prefers-reduced-motion:reduce) {
     .progress-bar {
         transition: none
     }
 }
 
 .progress-bar-striped {
     background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
     background-size: .625rem .625rem
 }
 
 .progress-bar-animated {
     animation: progress-bar-stripes 1s linear infinite
 }
 
 @media (prefers-reduced-motion:reduce) {
     .progress-bar-animated {
         animation: none
     }
 }
 
 .media {
     display: flex;
     align-items: flex-start
 }
 
 .media-body {
     flex: 1
 }
 
 .list-group {
     display: flex;
     flex-direction: column;
     padding-left: 0;
     margin-bottom: 0
 }
 
 .list-group-item-action {
     width: 100%;
     color: #495057;
     text-align: inherit
 }
 
 .list-group-item-action:focus,
 .list-group-item-action:hover {
     z-index: 1;
     color: #495057;
     text-decoration: none;
     background-color: #f8f9fa
 }
 
 .list-group-item-action:active {
     color: #212529;
     background-color: #e9ecef
 }
 
 .list-group-item {
     position: relative;
     display: block;
     padding: .75rem 1.25rem;
     margin-bottom: -1px;
     background-color: #323a46;
     border: 1px solid rgba(0, 0, 0, .125)
 }
 
 .list-group-item:first-child {
     border-top-left-radius: .25rem;
     border-top-right-radius: .25rem
 }
 
 .list-group-item:last-child {
     margin-bottom: 0;
     border-bottom-right-radius: .25rem;
     border-bottom-left-radius: .25rem
 }
 
 .list-group-item.disabled,
 .list-group-item:disabled {
     color: #6c757d;
     pointer-events: none;
     background-color: #fff
 }
 
 .list-group-item.active {
     z-index: 2;
     color: #fff;
     background-color: #71b6f9;
     border-color: #007bff
 }
 
 .list-group-horizontal {
     flex-direction: row
 }
 
 .list-group-horizontal .list-group-item {
     margin-right: -1px;
     margin-bottom: 0
 }
 
 .list-group-horizontal .list-group-item:first-child {
     border-top-left-radius: .25rem;
     border-bottom-left-radius: .25rem;
     border-top-right-radius: 0
 }
 
 .list-group-horizontal .list-group-item:last-child {
     margin-right: 0;
     border-top-right-radius: .25rem;
     border-bottom-right-radius: .25rem;
     border-bottom-left-radius: 0
 }
 
 @media (min-width:576px) {
     .list-group-horizontal-sm {
         flex-direction: row
     }
     .list-group-horizontal-sm .list-group-item {
         margin-right: -1px;
         margin-bottom: 0
     }
     .list-group-horizontal-sm .list-group-item:first-child {
         border-top-left-radius: .25rem;
         border-bottom-left-radius: .25rem;
         border-top-right-radius: 0
     }
     .list-group-horizontal-sm .list-group-item:last-child {
         margin-right: 0;
         border-top-right-radius: .25rem;
         border-bottom-right-radius: .25rem;
         border-bottom-left-radius: 0
     }
 }
 
 @media (min-width:768px) {
     .list-group-horizontal-md {
         flex-direction: row
     }
     .list-group-horizontal-md .list-group-item {
         margin-right: -1px;
         margin-bottom: 0
     }
     .list-group-horizontal-md .list-group-item:first-child {
         border-top-left-radius: .25rem;
         border-bottom-left-radius: .25rem;
         border-top-right-radius: 0
     }
     .list-group-horizontal-md .list-group-item:last-child {
         margin-right: 0;
         border-top-right-radius: .25rem;
         border-bottom-right-radius: .25rem;
         border-bottom-left-radius: 0
     }
 }
 
 @media (min-width:992px) {
     .list-group-horizontal-lg {
         flex-direction: row
     }
     .list-group-horizontal-lg .list-group-item {
         margin-right: -1px;
         margin-bottom: 0
     }
     .list-group-horizontal-lg .list-group-item:first-child {
         border-top-left-radius: .25rem;
         border-bottom-left-radius: .25rem;
         border-top-right-radius: 0
     }
     .list-group-horizontal-lg .list-group-item:last-child {
         margin-right: 0;
         border-top-right-radius: .25rem;
         border-bottom-right-radius: .25rem;
         border-bottom-left-radius: 0
     }
 }
 
 @media (min-width:1200px) {
     .list-group-horizontal-xl {
         flex-direction: row
     }
     .list-group-horizontal-xl .list-group-item {
         margin-right: -1px;
         margin-bottom: 0
     }
     .list-group-horizontal-xl .list-group-item:first-child {
         border-top-left-radius: .25rem;
         border-bottom-left-radius: .25rem;
         border-top-right-radius: 0
     }
     .list-group-horizontal-xl .list-group-item:last-child {
         margin-right: 0;
         border-top-right-radius: .25rem;
         border-bottom-right-radius: .25rem;
         border-bottom-left-radius: 0
     }
 }
 
 .list-group-flush .list-group-item {
     border-right: 0;
     border-left: 0;
     border-radius: 0
 }
 
 .list-group-flush .list-group-item:last-child {
     margin-bottom: -1px
 }
 
 .list-group-flush:first-child .list-group-item:first-child {
     border-top: 0
 }
 
 .list-group-flush:last-child .list-group-item:last-child {
     margin-bottom: 0;
     border-bottom: 0
 }
 
 .list-group-item-primary {
     color: #3b5f81;
     background-color: #d7ebfd
 }
 
 .list-group-item-primary.list-group-item-action:focus,
 .list-group-item-primary.list-group-item-action:hover {
     color: #3b5f81;
     background-color: #bfdffc
 }
 
 .list-group-item-primary.list-group-item-action.active {
     color: #fff;
     background-color: #3b5f81;
     border-color: #3b5f81
 }
 
 .list-group-item-secondary {
     color: #383d41;
     background-color: #d6d8db
 }
 
 .list-group-item-secondary.list-group-item-action:focus,
 .list-group-item-secondary.list-group-item-action:hover {
     color: #383d41;
     background-color: #c8cbcf
 }
 
 .list-group-item-secondary.list-group-item-action.active {
     color: #fff;
     background-color: #383d41;
     border-color: #383d41
 }
 
 .list-group-item-success {
     color: #086637;
     background-color: #bceed5
 }
 
 .list-group-item-success.list-group-item-action:focus,
 .list-group-item-success.list-group-item-action:hover {
     color: #086637;
     background-color: #a8e9c8
 }
 
 .list-group-item-success.list-group-item-action.active {
     color: #fff;
     background-color: #086637;
     border-color: #086637
 }
 
 .list-group-item-info {
     color: #1c6074;
     background-color: #c6ebf6
 }
 
 .list-group-item-info.list-group-item-action:focus,
 .list-group-item-info.list-group-item-action:hover {
     color: #1c6074;
     background-color: #b0e3f3
 }
 
 .list-group-item-info.list-group-item-action.active {
     color: #fff;
     background-color: #1c6074;
     border-color: #1c6074
 }
 
 .list-group-item-warning {
     color: #81682a;
     background-color: #fdf0ce
 }
 
 .list-group-item-warning.list-group-item-action:focus,
 .list-group-item-warning.list-group-item-action:hover {
     color: #81682a;
     background-color: #fce9b6
 }
 
 .list-group-item-warning.list-group-item-action.active {
     color: #fff;
     background-color: #81682a;
     border-color: #81682a
 }
 
 .list-group-item-danger {
     color: #852f2f;
     background-color: #ffd1d1
 }
 
 .list-group-item-danger.list-group-item-action:focus,
 .list-group-item-danger.list-group-item-action:hover {
     color: #852f2f;
     background-color: #ffb8b8
 }
 
 .list-group-item-danger.list-group-item-action.active {
     color: #fff;
     background-color: #852f2f;
     border-color: #852f2f
 }
 
 .list-group-item-light {
     color: #1a1e24;
     background-color: #c6c8cb
 }
 
 .list-group-item-light.list-group-item-action:focus,
 .list-group-item-light.list-group-item-action:hover {
     color: #1a1e24;
     background-color: #b9bbbf
 }
 
 .list-group-item-light.list-group-item-action.active {
     color: #fff;
     background-color: #1a1e24;
     border-color: #1a1e24
 }
 
 .list-group-item-dark {
     color: #7d7f80;
     background-color: #fbfcfd
 }
 
 .list-group-item-dark.list-group-item-action:focus,
 .list-group-item-dark.list-group-item-action:hover {
     color: #7d7f80;
     background-color: #eaeff5
 }
 
 .list-group-item-dark.list-group-item-action.active {
     color: #fff;
     background-color: #7d7f80;
     border-color: #7d7f80
 }
 
 .list-group-item-pink {
     color: #85486a;
     background-color: #ffdef1
 }
 
 .list-group-item-pink.list-group-item-action:focus,
 .list-group-item-pink.list-group-item-action:hover {
     color: #85486a;
     background-color: #ffc5e6
 }
 
 .list-group-item-pink.list-group-item-action.active {
     color: #fff;
     background-color: #85486a;
     border-color: #85486a
 }
 
 .list-group-item-purple {
     color: #2f3762;
     background-color: #d1d5ec
 }
 
 .list-group-item-purple.list-group-item-action:focus,
 .list-group-item-purple.list-group-item-action:hover {
     color: #2f3762;
     background-color: #bfc5e5
 }
 
 .list-group-item-purple.list-group-item-action.active {
     color: #fff;
     background-color: #2f3762;
     border-color: #2f3762
 }
 
 .list-group-item-blue {
     color: #3b5f81;
     background-color: #d7ebfd
 }
 
 .list-group-item-blue.list-group-item-action:focus,
 .list-group-item-blue.list-group-item-action:hover {
     color: #3b5f81;
     background-color: #bfdffc
 }
 
 .list-group-item-blue.list-group-item-action.active {
     color: #fff;
     background-color: #3b5f81;
     border-color: #3b5f81
 }
 
 .close {
     float: right;
     font-size: 1.4rem;
     font-weight: 700;
     line-height: 1;
     color: #6c757d;
     text-shadow: none;
     opacity: .5
 }
 
 .close:hover {
     color: #6c757d;
     text-decoration: none
 }
 
 .close:not(:disabled):not(.disabled):focus,
 .close:not(:disabled):not(.disabled):hover {
     opacity: .75
 }
 
 button.close {
     padding: 0;
     background-color: transparent;
     border: 0;
     appearance: none
 }
 
 a.close.disabled {
     pointer-events: none
 }
 
 .toast {
     max-width: 350px;
     overflow: hidden;
     font-size: .875rem;
     background-color: rgba(255, 255, 255, .85);
     background-clip: padding-box;
     border: 1px solid rgba(0, 0, 0, .1);
     box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .1);
     backdrop-filter: blur(10px);
     opacity: 0;
     border-radius: .25rem
 }
 
 .toast:not(:last-child) {
     margin-bottom: .75rem
 }
 
 .toast.showing {
     opacity: 1
 }
 
 .toast.show {
     display: block;
     opacity: 1
 }
 
 .toast.hide {
     display: none
 }
 
 .toast-header {
     display: flex;
     align-items: center;
     padding: .25rem .75rem;
     color: #6c757d;
     background-color: rgba(255, 255, 255, .85);
     background-clip: padding-box;
     border-bottom: 1px solid rgba(0, 0, 0, .05)
 }
 
 .toast-body {
     padding: .75rem
 }
 
 .modal-open {
     overflow: hidden
 }
 
 .modal-open .modal {
     overflow-x: hidden;
     overflow-y: auto
 }
 
 .modal {
     position: fixed;
     top: 0;
     left: 0;
     z-index: 1050;
     display: none;
     width: 100%;
     height: 100%;
     overflow: hidden;
     outline: 0
 }
 
 .modal-dialog {
     position: relative;
     width: auto;
     margin: .5rem;
     pointer-events: none
 }
 
 .modal.fade .modal-dialog {
     transition: transform .3s ease-out;
     transform: translate(0, -50px)
 }
 
 @media (prefers-reduced-motion:reduce) {
     .modal.fade .modal-dialog {
         transition: none
     }
 }
 
 .modal.show .modal-dialog {
     transform: none
 }
 
 .modal-dialog-scrollable {
     display: flex;
     max-height: calc(100% - 1rem)
 }
 
 .modal-dialog-scrollable .modal-content {
     max-height: calc(100vh - 1rem);
     overflow: hidden
 }
 
 .modal-dialog-scrollable .modal-footer,
 .modal-dialog-scrollable .modal-header {
     flex-shrink: 0
 }
 
 .modal-dialog-scrollable .modal-body {
     overflow-y: auto
 }
 
 .modal-dialog-centered {
     display: flex;
     align-items: center;
     min-height: calc(100% - 1rem)
 }
 
 .modal-dialog-centered::before {
     display: block;
     height: calc(100vh - 1rem);
     content: ""
 }
 
 .modal-dialog-centered.modal-dialog-scrollable {
     flex-direction: column;
     justify-content: center;
     height: 100%
 }
 
 .modal-dialog-centered.modal-dialog-scrollable .modal-content {
     max-height: none
 }
 
 .modal-dialog-centered.modal-dialog-scrollable::before {
     content: none
 }
 
 .modal-content {
     position: relative;
     display: flex;
     flex-direction: column;
     width: 100%;
     pointer-events: auto;
     background-color: #323a46;
     background-clip: padding-box;
     border: 0 solid transparent;
     border-radius: .2rem;
     outline: 0
 }
 
 .modal-backdrop {
     position: fixed;
     top: 0;
     left: 0;
     z-index: 1040;
     width: 100vw;
     height: 100vh;
     background-color: #f1f5f7
 }
 
 .modal-backdrop.fade {
     opacity: 0
 }
 
 .modal-backdrop.show {
     opacity: .5
 }
 
 .modal-header {
     display: flex;
     align-items: flex-start;
     justify-content: space-between;
     padding: 1rem 1rem;
     border-bottom: 1px solid #3b4452;
     border-top-left-radius: .2rem;
     border-top-right-radius: .2rem
 }
 
 .modal-header .close {
     padding: 1rem 1rem;
     margin: -1rem -1rem -1rem auto
 }
 
 .modal-title {
     margin-bottom: 0;
     line-height: 1.5
 }
 
 .modal-body {
     position: relative;
     flex: 1 1 auto;
     padding: 1rem
 }
 
 .modal-footer {
     display: flex;
     align-items: center;
     justify-content: flex-end;
     padding: 1rem;
     border-top: 1px solid #3b4452;
     border-bottom-right-radius: .2rem;
     border-bottom-left-radius: .2rem
 }
 
 .modal-footer>:not(:first-child) {
     margin-left: .25rem
 }
 
 .modal-footer>:not(:last-child) {
     margin-right: .25rem
 }
 
 .modal-scrollbar-measure {
     position: absolute;
     top: -9999px;
     width: 50px;
     height: 50px;
     overflow: scroll
 }
 
 @media (min-width:576px) {
     .modal-dialog {
         max-width: 500px;
         margin: 1.75rem auto
     }
     .modal-dialog-scrollable {
         max-height: calc(100% - 3.5rem)
     }
     .modal-dialog-scrollable .modal-content {
         max-height: calc(100vh - 3.5rem)
     }
     .modal-dialog-centered {
         min-height: calc(100% - 3.5rem)
     }
     .modal-dialog-centered::before {
         height: calc(100vh - 3.5rem)
     }
     .modal-sm {
         max-width: 300px
     }
 }
 
 @media (min-width:992px) {
     .modal-lg,
     .modal-xl {
         max-width: 800px
     }
 }
 
 @media (min-width:1200px) {
     .modal-xl {
         max-width: 1140px
     }
 }
 
 .tooltip {
     position: absolute;
     z-index: 1070;
     display: block;
     margin: 0;
     font-family: Roboto, sans-serif;
     font-style: normal;
     font-weight: 400;
     line-height: 1.5;
     text-align: left;
     text-align: start;
     text-decoration: none;
     text-shadow: none;
     text-transform: none;
     letter-spacing: normal;
     word-break: normal;
     word-spacing: normal;
     white-space: normal;
     line-break: auto;
     font-size: .9rem;
     word-wrap: break-word;
     opacity: 0
 }
 
 .tooltip.show {
     opacity: .9
 }
 
 .tooltip .arrow {
     position: absolute;
     display: block;
     width: .8rem;
     height: .4rem
 }
 
 .tooltip .arrow::before {
     position: absolute;
     content: "";
     border-color: transparent;
     border-style: solid
 }
 
 .bs-tooltip-auto[x-placement^=top],
 .bs-tooltip-top {
     padding: .4rem 0
 }
 
 .bs-tooltip-auto[x-placement^=top] .arrow,
 .bs-tooltip-top .arrow {
     bottom: 0
 }
 
 .bs-tooltip-auto[x-placement^=top] .arrow::before,
 .bs-tooltip-top .arrow::before {
     top: 0;
     border-width: .4rem .4rem 0;
     border-top-color: #000
 }
 
 .bs-tooltip-auto[x-placement^=right],
 .bs-tooltip-right {
     padding: 0 .4rem
 }
 
 .bs-tooltip-auto[x-placement^=right] .arrow,
 .bs-tooltip-right .arrow {
     left: 0;
     width: .4rem;
     height: .8rem
 }
 
 .bs-tooltip-auto[x-placement^=right] .arrow::before,
 .bs-tooltip-right .arrow::before {
     right: 0;
     border-width: .4rem .4rem .4rem 0;
     border-right-color: #000
 }
 
 .bs-tooltip-auto[x-placement^=bottom],
 .bs-tooltip-bottom {
     padding: .4rem 0
 }
 
 .bs-tooltip-auto[x-placement^=bottom] .arrow,
 .bs-tooltip-bottom .arrow {
     top: 0
 }
 
 .bs-tooltip-auto[x-placement^=bottom] .arrow::before,
 .bs-tooltip-bottom .arrow::before {
     bottom: 0;
     border-width: 0 .4rem .4rem;
     border-bottom-color: #000
 }
 
 .bs-tooltip-auto[x-placement^=left],
 .bs-tooltip-left {
     padding: 0 .4rem
 }
 
 .bs-tooltip-auto[x-placement^=left] .arrow,
 .bs-tooltip-left .arrow {
     right: 0;
     width: .4rem;
     height: .8rem
 }
 
 .bs-tooltip-auto[x-placement^=left] .arrow::before,
 .bs-tooltip-left .arrow::before {
     left: 0;
     border-width: .4rem 0 .4rem .4rem;
     border-left-color: #000
 }
 
 .tooltip-inner {
     max-width: 200px;
     padding: .4rem .8rem;
     color: #fff;
     text-align: center;
     background-color: #000;
     border-radius: .2rem
 }
 
 .popover {
     position: absolute;
     top: 0;
     left: 0;
     z-index: 1060;
     display: block;
     max-width: 276px;
     font-family: Roboto, sans-serif;
     font-style: normal;
     font-weight: 400;
     line-height: 1.5;
     text-align: left;
     text-align: start;
     text-decoration: none;
     text-shadow: none;
     text-transform: none;
     letter-spacing: normal;
     word-break: normal;
     word-spacing: normal;
     white-space: normal;
     line-break: auto;
     font-size: .875rem;
     word-wrap: break-word;
     background-color: #fff;
     background-clip: padding-box;
     border: 1px solid #f7f7f7;
     border-radius: .25rem
 }
 
 .popover .arrow {
     position: absolute;
     display: block;
     width: 1rem;
     height: .5rem;
     margin: 0 .3rem
 }
 
 .popover .arrow::after,
 .popover .arrow::before {
     position: absolute;
     display: block;
     content: "";
     border-color: transparent;
     border-style: solid
 }
 
 .bs-popover-auto[x-placement^=top],
 .bs-popover-top {
     margin-bottom: .5rem
 }
 
 .bs-popover-auto[x-placement^=top]>.arrow,
 .bs-popover-top>.arrow {
     bottom: calc((.5rem + 1px) * -1)
 }
 
 .bs-popover-auto[x-placement^=top]>.arrow::before,
 .bs-popover-top>.arrow::before {
     bottom: 0;
     border-width: .5rem .5rem 0;
     border-top-color: rgba(0, 0, 0, .25)
 }
 
 .bs-popover-auto[x-placement^=top]>.arrow::after,
 .bs-popover-top>.arrow::after {
     bottom: 1px;
     border-width: .5rem .5rem 0;
     border-top-color: #fff
 }
 
 .bs-popover-auto[x-placement^=right],
 .bs-popover-right {
     margin-left: .5rem
 }
 
 .bs-popover-auto[x-placement^=right]>.arrow,
 .bs-popover-right>.arrow {
     left: calc((.5rem + 1px) * -1);
     width: .5rem;
     height: 1rem;
     margin: .3rem 0
 }
 
 .bs-popover-auto[x-placement^=right]>.arrow::before,
 .bs-popover-right>.arrow::before {
     left: 0;
     border-width: .5rem .5rem .5rem 0;
     border-right-color: rgba(0, 0, 0, .25)
 }
 
 .bs-popover-auto[x-placement^=right]>.arrow::after,
 .bs-popover-right>.arrow::after {
     left: 1px;
     border-width: .5rem .5rem .5rem 0;
     border-right-color: #fff
 }
 
 .bs-popover-auto[x-placement^=bottom],
 .bs-popover-bottom {
     margin-top: .5rem
 }
 
 .bs-popover-auto[x-placement^=bottom]>.arrow,
 .bs-popover-bottom>.arrow {
     top: calc((.5rem + 1px) * -1)
 }
 
 .bs-popover-auto[x-placement^=bottom]>.arrow::before,
 .bs-popover-bottom>.arrow::before {
     top: 0;
     border-width: 0 .5rem .5rem .5rem;
     border-bottom-color: rgba(0, 0, 0, .25)
 }
 
 .bs-popover-auto[x-placement^=bottom]>.arrow::after,
 .bs-popover-bottom>.arrow::after {
     top: 1px;
     border-width: 0 .5rem .5rem .5rem;
     border-bottom-color: #fff
 }
 
 .bs-popover-auto[x-placement^=bottom] .popover-header::before,
 .bs-popover-bottom .popover-header::before {
     position: absolute;
     top: 0;
     left: 50%;
     display: block;
     width: 1rem;
     margin-left: -.5rem;
     content: "";
     border-bottom: 1px solid #f1f5f7
 }
 
 .bs-popover-auto[x-placement^=left],
 .bs-popover-left {
     margin-right: .5rem
 }
 
 .bs-popover-auto[x-placement^=left]>.arrow,
 .bs-popover-left>.arrow {
     right: calc((.5rem + 1px) * -1);
     width: .5rem;
     height: 1rem;
     margin: .3rem 0
 }
 
 .bs-popover-auto[x-placement^=left]>.arrow::before,
 .bs-popover-left>.arrow::before {
     right: 0;
     border-width: .5rem 0 .5rem .5rem;
     border-left-color: rgba(0, 0, 0, .25)
 }
 
 .bs-popover-auto[x-placement^=left]>.arrow::after,
 .bs-popover-left>.arrow::after {
     right: 1px;
     border-width: .5rem 0 .5rem .5rem;
     border-left-color: #fff
 }
 
 .popover-header {
     padding: .7rem .8rem;
     margin-bottom: 0;
     font-size: .9rem;
     background-color: #f1f5f7;
     border-bottom: 1px solid #e1e9ee;
     border-top-left-radius: calc(.3rem - 1px);
     border-top-right-radius: calc(.3rem - 1px)
 }
 
 .popover-header:empty {
     display: none
 }
 
 .popover-body {
     padding: .5rem .75rem;
     color: #212529
 }
 
 .carousel {
     position: relative
 }
 
 .carousel.pointer-event {
     touch-action: pan-y
 }
 
 .carousel-inner {
     position: relative;
     width: 100%;
     overflow: hidden
 }
 
 .carousel-inner::after {
     display: block;
     clear: both;
     content: ""
 }
 
 .carousel-item {
     position: relative;
     display: none;
     float: left;
     width: 100%;
     margin-right: -100%;
     backface-visibility: hidden;
     transition: transform .6s ease-in-out
 }
 
 @media (prefers-reduced-motion:reduce) {
     .carousel-item {
         transition: none
     }
 }
 
 .carousel-item-next,
 .carousel-item-prev,
 .carousel-item.active {
     display: block
 }
 
 .active.carousel-item-right,
 .carousel-item-next:not(.carousel-item-left) {
     transform: translateX(100%)
 }
 
 .active.carousel-item-left,
 .carousel-item-prev:not(.carousel-item-right) {
     transform: translateX(-100%)
 }
 
 .carousel-fade .carousel-item {
     opacity: 0;
     transition-property: opacity;
     transform: none
 }
 
 .carousel-fade .carousel-item-next.carousel-item-left,
 .carousel-fade .carousel-item-prev.carousel-item-right,
 .carousel-fade .carousel-item.active {
     z-index: 1;
     opacity: 1
 }
 
 .carousel-fade .active.carousel-item-left,
 .carousel-fade .active.carousel-item-right {
     z-index: 0;
     opacity: 0;
     transition: 0s .6s opacity
 }
 
 @media (prefers-reduced-motion:reduce) {
     .carousel-fade .active.carousel-item-left,
     .carousel-fade .active.carousel-item-right {
         transition: none
     }
 }
 
 .carousel-control-next,
 .carousel-control-prev {
     position: absolute;
     top: 0;
     bottom: 0;
     z-index: 1;
     display: flex;
     align-items: center;
     justify-content: center;
     width: 15%;
     color: #fff;
     text-align: center;
     opacity: .5;
     transition: opacity .15s ease
 }
 
 @media (prefers-reduced-motion:reduce) {
     .carousel-control-next,
     .carousel-control-prev {
         transition: none
     }
 }
 
 .carousel-control-next:focus,
 .carousel-control-next:hover,
 .carousel-control-prev:focus,
 .carousel-control-prev:hover {
     color: #fff;
     text-decoration: none;
     outline: 0;
     opacity: .9
 }
 
 .carousel-control-prev {
     left: 0
 }
 
 .carousel-control-next {
     right: 0
 }
 
 .carousel-control-next-icon,
 .carousel-control-prev-icon {
     display: inline-block;
     width: 20px;
     height: 20px;
     background: no-repeat 50%/100% 100%
 }
 
 .carousel-control-prev-icon {
     background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e")
 }
 
 .carousel-control-next-icon {
     background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e")
 }
 
 .carousel-indicators {
     position: absolute;
     right: 0;
     bottom: 0;
     left: 0;
     z-index: 15;
     display: flex;
     justify-content: center;
     padding-left: 0;
     margin-right: 15%;
     margin-left: 15%;
     list-style: none
 }
 
 .carousel-indicators li {
     box-sizing: content-box;
     flex: 0 1 auto;
     width: 30px;
     height: 3px;
     margin-right: 3px;
     margin-left: 3px;
     text-indent: -999px;
     cursor: pointer;
     background-color: #fff;
     background-clip: padding-box;
     border-top: 10px solid transparent;
     border-bottom: 10px solid transparent;
     opacity: .5;
     transition: opacity .6s ease
 }
 
 @media (prefers-reduced-motion:reduce) {
     .carousel-indicators li {
         transition: none
     }
 }
 
 .carousel-indicators .active {
     opacity: 1
 }
 
 .carousel-caption {
     position: absolute;
     right: 15%;
     bottom: 20px;
     left: 15%;
     z-index: 10;
     padding-top: 20px;
     padding-bottom: 20px;
     color: #fff;
     text-align: center
 }
 
 @keyframes spinner-border {
     to {
         transform: rotate(360deg)
     }
 }
 
 .spinner-border {
     display: inline-block;
     width: 2rem;
     height: 2rem;
     vertical-align: text-bottom;
     border: .25em solid currentColor;
     border-right-color: transparent;
     border-radius: 50%;
     animation: spinner-border .75s linear infinite
 }
 
 .spinner-border-sm {
     width: 1rem;
     height: 1rem;
     border-width: .2em
 }
 
 @keyframes spinner-grow {
     0% {
         transform: scale(0)
     }
     50% {
         opacity: 1
     }
 }
 
 .spinner-grow {
     display: inline-block;
     width: 2rem;
     height: 2rem;
     vertical-align: text-bottom;
     background-color: currentColor;
     border-radius: 50%;
     opacity: 0;
     animation: spinner-grow .75s linear infinite
 }
 
 .spinner-grow-sm {
     width: 1rem;
     height: 1rem
 }
 
 .align-baseline {
     vertical-align: baseline!important
 }
 
 .align-top {
     vertical-align: top!important
 }
 
 .align-middle {
     vertical-align: middle!important
 }
 
 .align-bottom {
     vertical-align: bottom!important
 }
 
 .align-text-bottom {
     vertical-align: text-bottom!important
 }
 
 .align-text-top {
     vertical-align: text-top!important
 }
 
 .bg-primary {
     background-color: #71b6f9!important
 }
 
 a.bg-primary:focus,
 a.bg-primary:hover,
 button.bg-primary:focus,
 button.bg-primary:hover {
     background-color: #409df7!important
 }
 
 .bg-secondary {
     background-color: #6c757d!important
 }
 
 a.bg-secondary:focus,
 a.bg-secondary:hover,
 button.bg-secondary:focus,
 button.bg-secondary:hover {
     background-color: #545b62!important
 }
 
 .bg-success {
     background-color: #10c469!important
 }
 
 a.bg-success:focus,
 a.bg-success:hover,
 button.bg-success:focus,
 button.bg-success:hover {
     background-color: #0c9550!important
 }
 
 .bg-info {
     background-color: #35b8e0!important
 }
 
 a.bg-info:focus,
 a.bg-info:hover,
 button.bg-info:focus,
 button.bg-info:hover {
     background-color: #1e9dc4!important
 }
 
 .bg-warning {
     background-color: #f9c851!important
 }
 
 a.bg-warning:focus,
 a.bg-warning:hover,
 button.bg-warning:focus,
 button.bg-warning:hover {
     background-color: #f7b820!important
 }
 
 .bg-danger {
     background-color: #ff5b5b!important
 }
 
 a.bg-danger:focus,
 a.bg-danger:hover,
 button.bg-danger:focus,
 button.bg-danger:hover {
     background-color: #ff2828!important
 }
 
 .bg-light {
     background-color: #323a46!important
 }
 
 a.bg-light:focus,
 a.bg-light:hover,
 button.bg-light:focus,
 button.bg-light:hover {
     background-color: #1d2128!important
 }
 
 .bg-dark {
     background-color: #f1f5f7!important
 }
 
 a.bg-dark:focus,
 a.bg-dark:hover,
 button.bg-dark:focus,
 button.bg-dark:hover {
     background-color: #d1dee4!important
 }
 
 .bg-pink {
     background-color: #ff8acc!important
 }
 
 a.bg-pink:focus,
 a.bg-pink:hover,
 button.bg-pink:focus,
 button.bg-pink:hover {
     background-color: #ff57b6!important
 }
 
 .bg-purple {
     background-color: #5b69bc!important
 }
 
 a.bg-purple:focus,
 a.bg-purple:hover,
 button.bg-purple:focus,
 button.bg-purple:hover {
     background-color: #4250a2!important
 }
 
 .bg-blue {
     background-color: #71b6f9!important
 }
 
 a.bg-blue:focus,
 a.bg-blue:hover,
 button.bg-blue:focus,
 button.bg-blue:hover {
     background-color: #409df7!important
 }
 
 .bg-white {
     background-color: #fff!important
 }
 
 .bg-transparent {
     background-color: transparent!important
 }
 
 .border {
     border: 1px solid #dee2e6!important
 }
 
 .border-top {
     border-top: 1px solid #dee2e6!important
 }
 
 .border-right {
     border-right: 1px solid #dee2e6!important
 }
 
 .border-bottom {
     border-bottom: 1px solid #dee2e6!important
 }
 
 .border-left {
     border-left: 1px solid #dee2e6!important
 }
 
 .border-0 {
     border: 0!important
 }
 
 .border-top-0 {
     border-top: 0!important
 }
 
 .border-right-0 {
     border-right: 0!important
 }
 
 .border-bottom-0 {
     border-bottom: 0!important
 }
 
 .border-left-0 {
     border-left: 0!important
 }
 
 .border-primary {
     border-color: #71b6f9!important
 }
 
 .border-secondary {
     border-color: #6c757d!important
 }
 
 .border-success {
     border-color: #10c469!important
 }
 
 .border-info {
     border-color: #35b8e0!important
 }
 
 .border-warning {
     border-color: #f9c851!important
 }
 
 .border-danger {
     border-color: #ff5b5b!important
 }
 
 .border-light {
     border-color: #323a46!important
 }
 
 .border-dark {
     border-color: #f1f5f7!important
 }
 
 .border-pink {
     border-color: #ff8acc!important
 }
 
 .border-purple {
     border-color: #5b69bc!important
 }
 
 .border-blue {
     border-color: #71b6f9!important
 }
 
 .border-white {
     border-color: #fff!important
 }
 
 .rounded-sm {
     border-radius: .2rem!important
 }
 
 .rounded {
     border-radius: .25rem!important
 }
 
 .rounded-top {
     border-top-left-radius: .25rem!important;
     border-top-right-radius: .25rem!important
 }
 
 .rounded-right {
     border-top-right-radius: .25rem!important;
     border-bottom-right-radius: .25rem!important
 }
 
 .rounded-bottom {
     border-bottom-right-radius: .25rem!important;
     border-bottom-left-radius: .25rem!important
 }
 
 .rounded-left {
     border-top-left-radius: .25rem!important;
     border-bottom-left-radius: .25rem!important
 }
 
 .rounded-lg {
     border-radius: .3rem!important
 }
 
 .rounded-circle {
     border-radius: 50%!important
 }
 
 .rounded-pill {
     border-radius: 50rem!important
 }
 
 .rounded-0 {
     border-radius: 0!important
 }
 
 .clearfix::after {
     display: block;
     clear: both;
     content: ""
 }
 
 .d-none {
     display: none!important
 }
 
 .d-inline {
     display: inline!important
 }
 
 .d-inline-block {
     display: inline-block!important
 }
 
 .d-block {
     display: block!important
 }
 
 .d-table {
     display: table!important
 }
 
 .d-table-row {
     display: table-row!important
 }
 
 .d-table-cell {
     display: table-cell!important
 }
 
 .d-flex {
     display: flex!important
 }
 
 .d-inline-flex {
     display: inline-flex!important
 }
 
 @media (min-width:576px) {
     .d-sm-none {
         display: none!important
     }
     .d-sm-inline {
         display: inline!important
     }
     .d-sm-inline-block {
         display: inline-block!important
     }
     .d-sm-block {
         display: block!important
     }
     .d-sm-table {
         display: table!important
     }
     .d-sm-table-row {
         display: table-row!important
     }
     .d-sm-table-cell {
         display: table-cell!important
     }
     .d-sm-flex {
         display: flex!important
     }
     .d-sm-inline-flex {
         display: inline-flex!important
     }
 }
 
 @media (min-width:768px) {
     .d-md-none {
         display: none!important
     }
     .d-md-inline {
         display: inline!important
     }
     .d-md-inline-block {
         display: inline-block!important
     }
     .d-md-block {
         display: block!important
     }
     .d-md-table {
         display: table!important
     }
     .d-md-table-row {
         display: table-row!important
     }
     .d-md-table-cell {
         display: table-cell!important
     }
     .d-md-flex {
         display: flex!important
     }
     .d-md-inline-flex {
         display: inline-flex!important
     }
 }
 
 @media (min-width:992px) {
     .d-lg-none {
         display: none!important
     }
     .d-lg-inline {
         display: inline!important
     }
     .d-lg-inline-block {
         display: inline-block!important
     }
     .d-lg-block {
         display: block!important
     }
     .d-lg-table {
         display: table!important
     }
     .d-lg-table-row {
         display: table-row!important
     }
     .d-lg-table-cell {
         display: table-cell!important
     }
     .d-lg-flex {
         display: flex!important
     }
     .d-lg-inline-flex {
         display: inline-flex!important
     }
 }
 
 @media (min-width:1200px) {
     .d-xl-none {
         display: none!important
     }
     .d-xl-inline {
         display: inline!important
     }
     .d-xl-inline-block {
         display: inline-block!important
     }
     .d-xl-block {
         display: block!important
     }
     .d-xl-table {
         display: table!important
     }
     .d-xl-table-row {
         display: table-row!important
     }
     .d-xl-table-cell {
         display: table-cell!important
     }
     .d-xl-flex {
         display: flex!important
     }
     .d-xl-inline-flex {
         display: inline-flex!important
     }
 }
 
 @media print {
     .d-print-none {
         display: none!important
     }
     .d-print-inline {
         display: inline!important
     }
     .d-print-inline-block {
         display: inline-block!important
     }
     .d-print-block {
         display: block!important
     }
     .d-print-table {
         display: table!important
     }
     .d-print-table-row {
         display: table-row!important
     }
     .d-print-table-cell {
         display: table-cell!important
     }
     .d-print-flex {
         display: flex!important
     }
     .d-print-inline-flex {
         display: inline-flex!important
     }
 }
 
 .embed-responsive {
     position: relative;
     display: block;
     width: 100%;
     padding: 0;
     overflow: hidden
 }
 
 .embed-responsive::before {
     display: block;
     content: ""
 }
 
 .embed-responsive .embed-responsive-item,
 .embed-responsive embed,
 .embed-responsive iframe,
 .embed-responsive object,
 .embed-responsive video {
     position: absolute;
     top: 0;
     bottom: 0;
     left: 0;
     width: 100%;
     height: 100%;
     border: 0
 }
 
 .embed-responsive-21by9::before {
     padding-top: 42.85714%
 }
 
 .embed-responsive-16by9::before {
     padding-top: 56.25%
 }
 
 .embed-responsive-4by3::before {
     padding-top: 75%
 }
 
 .embed-responsive-1by1::before {
     padding-top: 100%
 }
 
 .embed-responsive-21by9::before {
     padding-top: 42.85714%
 }
 
 .embed-responsive-16by9::before {
     padding-top: 56.25%
 }
 
 .embed-responsive-4by3::before {
     padding-top: 75%
 }
 
 .embed-responsive-1by1::before {
     padding-top: 100%
 }
 
 .flex-row {
     flex-direction: row!important
 }
 
 .flex-column {
     flex-direction: column!important
 }
 
 .flex-row-reverse {
     flex-direction: row-reverse!important
 }
 
 .flex-column-reverse {
     flex-direction: column-reverse!important
 }
 
 .flex-wrap {
     flex-wrap: wrap!important
 }
 
 .flex-nowrap {
     flex-wrap: nowrap!important
 }
 
 .flex-wrap-reverse {
     flex-wrap: wrap-reverse!important
 }
 
 .flex-fill {
     flex: 1 1 auto!important
 }
 
 .flex-grow-0 {
     flex-grow: 0!important
 }
 
 .flex-grow-1 {
     flex-grow: 1!important
 }
 
 .flex-shrink-0 {
     flex-shrink: 0!important
 }
 
 .flex-shrink-1 {
     flex-shrink: 1!important
 }
 
 .justify-content-start {
     justify-content: flex-start!important
 }
 
 .justify-content-end {
     justify-content: flex-end!important
 }
 
 .justify-content-center {
     justify-content: center!important
 }
 
 .justify-content-between {
     justify-content: space-between!important
 }
 
 .justify-content-around {
     justify-content: space-around!important
 }
 
 .align-items-start {
     align-items: flex-start!important
 }
 
 .align-items-end {
     align-items: flex-end!important
 }
 
 .align-items-center {
     align-items: center!important
 }
 
 .align-items-baseline {
     align-items: baseline!important
 }
 
 .align-items-stretch {
     align-items: stretch!important
 }
 
 .align-content-start {
     align-content: flex-start!important
 }
 
 .align-content-end {
     align-content: flex-end!important
 }
 
 .align-content-center {
     align-content: center!important
 }
 
 .align-content-between {
     align-content: space-between!important
 }
 
 .align-content-around {
     align-content: space-around!important
 }
 
 .align-content-stretch {
     align-content: stretch!important
 }
 
 .align-self-auto {
     align-self: auto!important
 }
 
 .align-self-start {
     align-self: flex-start!important
 }
 
 .align-self-end {
     align-self: flex-end!important
 }
 
 .align-self-center {
     align-self: center!important
 }
 
 .align-self-baseline {
     align-self: baseline!important
 }
 
 .align-self-stretch {
     align-self: stretch!important
 }
 
 @media (min-width:576px) {
     .flex-sm-row {
         flex-direction: row!important
     }
     .flex-sm-column {
         flex-direction: column!important
     }
     .flex-sm-row-reverse {
         flex-direction: row-reverse!important
     }
     .flex-sm-column-reverse {
         flex-direction: column-reverse!important
     }
     .flex-sm-wrap {
         flex-wrap: wrap!important
     }
     .flex-sm-nowrap {
         flex-wrap: nowrap!important
     }
     .flex-sm-wrap-reverse {
         flex-wrap: wrap-reverse!important
     }
     .flex-sm-fill {
         flex: 1 1 auto!important
     }
     .flex-sm-grow-0 {
         flex-grow: 0!important
     }
     .flex-sm-grow-1 {
         flex-grow: 1!important
     }
     .flex-sm-shrink-0 {
         flex-shrink: 0!important
     }
     .flex-sm-shrink-1 {
         flex-shrink: 1!important
     }
     .justify-content-sm-start {
         justify-content: flex-start!important
     }
     .justify-content-sm-end {
         justify-content: flex-end!important
     }
     .justify-content-sm-center {
         justify-content: center!important
     }
     .justify-content-sm-between {
         justify-content: space-between!important
     }
     .justify-content-sm-around {
         justify-content: space-around!important
     }
     .align-items-sm-start {
         align-items: flex-start!important
     }
     .align-items-sm-end {
         align-items: flex-end!important
     }
     .align-items-sm-center {
         align-items: center!important
     }
     .align-items-sm-baseline {
         align-items: baseline!important
     }
     .align-items-sm-stretch {
         align-items: stretch!important
     }
     .align-content-sm-start {
         align-content: flex-start!important
     }
     .align-content-sm-end {
         align-content: flex-end!important
     }
     .align-content-sm-center {
         align-content: center!important
     }
     .align-content-sm-between {
         align-content: space-between!important
     }
     .align-content-sm-around {
         align-content: space-around!important
     }
     .align-content-sm-stretch {
         align-content: stretch!important
     }
     .align-self-sm-auto {
         align-self: auto!important
     }
     .align-self-sm-start {
         align-self: flex-start!important
     }
     .align-self-sm-end {
         align-self: flex-end!important
     }
     .align-self-sm-center {
         align-self: center!important
     }
     .align-self-sm-baseline {
         align-self: baseline!important
     }
     .align-self-sm-stretch {
         align-self: stretch!important
     }
 }
 
 @media (min-width:768px) {
     .flex-md-row {
         flex-direction: row!important
     }
     .flex-md-column {
         flex-direction: column!important
     }
     .flex-md-row-reverse {
         flex-direction: row-reverse!important
     }
     .flex-md-column-reverse {
         flex-direction: column-reverse!important
     }
     .flex-md-wrap {
         flex-wrap: wrap!important
     }
     .flex-md-nowrap {
         flex-wrap: nowrap!important
     }
     .flex-md-wrap-reverse {
         flex-wrap: wrap-reverse!important
     }
     .flex-md-fill {
         flex: 1 1 auto!important
     }
     .flex-md-grow-0 {
         flex-grow: 0!important
     }
     .flex-md-grow-1 {
         flex-grow: 1!important
     }
     .flex-md-shrink-0 {
         flex-shrink: 0!important
     }
     .flex-md-shrink-1 {
         flex-shrink: 1!important
     }
     .justify-content-md-start {
         justify-content: flex-start!important
     }
     .justify-content-md-end {
         justify-content: flex-end!important
     }
     .justify-content-md-center {
         justify-content: center!important
     }
     .justify-content-md-between {
         justify-content: space-between!important
     }
     .justify-content-md-around {
         justify-content: space-around!important
     }
     .align-items-md-start {
         align-items: flex-start!important
     }
     .align-items-md-end {
         align-items: flex-end!important
     }
     .align-items-md-center {
         align-items: center!important
     }
     .align-items-md-baseline {
         align-items: baseline!important
     }
     .align-items-md-stretch {
         align-items: stretch!important
     }
     .align-content-md-start {
         align-content: flex-start!important
     }
     .align-content-md-end {
         align-content: flex-end!important
     }
     .align-content-md-center {
         align-content: center!important
     }
     .align-content-md-between {
         align-content: space-between!important
     }
     .align-content-md-around {
         align-content: space-around!important
     }
     .align-content-md-stretch {
         align-content: stretch!important
     }
     .align-self-md-auto {
         align-self: auto!important
     }
     .align-self-md-start {
         align-self: flex-start!important
     }
     .align-self-md-end {
         align-self: flex-end!important
     }
     .align-self-md-center {
         align-self: center!important
     }
     .align-self-md-baseline {
         align-self: baseline!important
     }
     .align-self-md-stretch {
         align-self: stretch!important
     }
 }
 
 @media (min-width:992px) {
     .flex-lg-row {
         flex-direction: row!important
     }
     .flex-lg-column {
         flex-direction: column!important
     }
     .flex-lg-row-reverse {
         flex-direction: row-reverse!important
     }
     .flex-lg-column-reverse {
         flex-direction: column-reverse!important
     }
     .flex-lg-wrap {
         flex-wrap: wrap!important
     }
     .flex-lg-nowrap {
         flex-wrap: nowrap!important
     }
     .flex-lg-wrap-reverse {
         flex-wrap: wrap-reverse!important
     }
     .flex-lg-fill {
         flex: 1 1 auto!important
     }
     .flex-lg-grow-0 {
         flex-grow: 0!important
     }
     .flex-lg-grow-1 {
         flex-grow: 1!important
     }
     .flex-lg-shrink-0 {
         flex-shrink: 0!important
     }
     .flex-lg-shrink-1 {
         flex-shrink: 1!important
     }
     .justify-content-lg-start {
         justify-content: flex-start!important
     }
     .justify-content-lg-end {
         justify-content: flex-end!important
     }
     .justify-content-lg-center {
         justify-content: center!important
     }
     .justify-content-lg-between {
         justify-content: space-between!important
     }
     .justify-content-lg-around {
         justify-content: space-around!important
     }
     .align-items-lg-start {
         align-items: flex-start!important
     }
     .align-items-lg-end {
         align-items: flex-end!important
     }
     .align-items-lg-center {
         align-items: center!important
     }
     .align-items-lg-baseline {
         align-items: baseline!important
     }
     .align-items-lg-stretch {
         align-items: stretch!important
     }
     .align-content-lg-start {
         align-content: flex-start!important
     }
     .align-content-lg-end {
         align-content: flex-end!important
     }
     .align-content-lg-center {
         align-content: center!important
     }
     .align-content-lg-between {
         align-content: space-between!important
     }
     .align-content-lg-around {
         align-content: space-around!important
     }
     .align-content-lg-stretch {
         align-content: stretch!important
     }
     .align-self-lg-auto {
         align-self: auto!important
     }
     .align-self-lg-start {
         align-self: flex-start!important
     }
     .align-self-lg-end {
         align-self: flex-end!important
     }
     .align-self-lg-center {
         align-self: center!important
     }
     .align-self-lg-baseline {
         align-self: baseline!important
     }
     .align-self-lg-stretch {
         align-self: stretch!important
     }
 }
 
 @media (min-width:1200px) {
     .flex-xl-row {
         flex-direction: row!important
     }
     .flex-xl-column {
         flex-direction: column!important
     }
     .flex-xl-row-reverse {
         flex-direction: row-reverse!important
     }
     .flex-xl-column-reverse {
         flex-direction: column-reverse!important
     }
     .flex-xl-wrap {
         flex-wrap: wrap!important
     }
     .flex-xl-nowrap {
         flex-wrap: nowrap!important
     }
     .flex-xl-wrap-reverse {
         flex-wrap: wrap-reverse!important
     }
     .flex-xl-fill {
         flex: 1 1 auto!important
     }
     .flex-xl-grow-0 {
         flex-grow: 0!important
     }
     .flex-xl-grow-1 {
         flex-grow: 1!important
     }
     .flex-xl-shrink-0 {
         flex-shrink: 0!important
     }
     .flex-xl-shrink-1 {
         flex-shrink: 1!important
     }
     .justify-content-xl-start {
         justify-content: flex-start!important
     }
     .justify-content-xl-end {
         justify-content: flex-end!important
     }
     .justify-content-xl-center {
         justify-content: center!important
     }
     .justify-content-xl-between {
         justify-content: space-between!important
     }
     .justify-content-xl-around {
         justify-content: space-around!important
     }
     .align-items-xl-start {
         align-items: flex-start!important
     }
     .align-items-xl-end {
         align-items: flex-end!important
     }
     .align-items-xl-center {
         align-items: center!important
     }
     .align-items-xl-baseline {
         align-items: baseline!important
     }
     .align-items-xl-stretch {
         align-items: stretch!important
     }
     .align-content-xl-start {
         align-content: flex-start!important
     }
     .align-content-xl-end {
         align-content: flex-end!important
     }
     .align-content-xl-center {
         align-content: center!important
     }
     .align-content-xl-between {
         align-content: space-between!important
     }
     .align-content-xl-around {
         align-content: space-around!important
     }
     .align-content-xl-stretch {
         align-content: stretch!important
     }
     .align-self-xl-auto {
         align-self: auto!important
     }
     .align-self-xl-start {
         align-self: flex-start!important
     }
     .align-self-xl-end {
         align-self: flex-end!important
     }
     .align-self-xl-center {
         align-self: center!important
     }
     .align-self-xl-baseline {
         align-self: baseline!important
     }
     .align-self-xl-stretch {
         align-self: stretch!important
     }
 }
 
 .float-left {
     float: left!important
 }
 
 .float-right {
     float: right!important
 }
 
 .float-none {
     float: none!important
 }
 
 @media (min-width:576px) {
     .float-sm-left {
         float: left!important
     }
     .float-sm-right {
         float: right!important
     }
     .float-sm-none {
         float: none!important
     }
 }
 
 @media (min-width:768px) {
     .float-md-left {
         float: left!important
     }
     .float-md-right {
         float: right!important
     }
     .float-md-none {
         float: none!important
     }
 }
 
 @media (min-width:992px) {
     .float-lg-left {
         float: left!important
     }
     .float-lg-right {
         float: right!important
     }
     .float-lg-none {
         float: none!important
     }
 }
 
 @media (min-width:1200px) {
     .float-xl-left {
         float: left!important
     }
     .float-xl-right {
         float: right!important
     }
     .float-xl-none {
         float: none!important
     }
 }
 
 .overflow-auto {
     overflow: auto!important
 }
 
 .overflow-hidden {
     overflow: hidden!important
 }
 
 .position-static {
     position: static!important
 }
 
 .position-relative {
     position: relative!important
 }
 
 .position-absolute {
     position: absolute!important
 }
 
 .position-fixed {
     position: fixed!important
 }
 
 .position-sticky {
     position: sticky!important
 }
 
 .fixed-top {
     position: fixed;
     top: 0;
     right: 0;
     left: 0;
     z-index: 1030
 }
 
 .fixed-bottom {
     position: fixed;
     right: 0;
     bottom: 0;
     left: 0;
     z-index: 1030
 }
 
 @supports (position:sticky) {
     .sticky-top {
         position: sticky;
         top: 0;
         z-index: 1020
     }
 }
 
 .sr-only {
     position: absolute;
     width: 1px;
     height: 1px;
     padding: 0;
     overflow: hidden;
     clip: rect(0, 0, 0, 0);
     white-space: nowrap;
     border: 0
 }
 
 .sr-only-focusable:active,
 .sr-only-focusable:focus {
     position: static;
     width: auto;
     height: auto;
     overflow: visible;
     clip: auto;
     white-space: normal
 }
 
 .shadow-sm {
     box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075)!important
 }
 
 .shadow {
     box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15)!important
 }
 
 .shadow-lg {
     box-shadow: 0 1rem 3rem rgba(0, 0, 0, .175)!important
 }
 
 .shadow-none {
     box-shadow: none!important
 }
 
 .w-25 {
     width: 25%!important
 }
 
 .w-50 {
     width: 50%!important
 }
 
 .w-75 {
     width: 75%!important
 }
 
 .w-100 {
     width: 100%!important
 }
 
 .w-auto {
     width: auto!important
 }
 
 .w-15 {
     width: 15%!important
 }
 
 .h-25 {
     height: 25%!important
 }
 
 .h-50 {
     height: 50%!important
 }
 
 .h-75 {
     height: 75%!important
 }
 
 .h-100 {
     height: 100%!important
 }
 
 .h-auto {
     height: auto!important
 }
 
 .h-15 {
     height: 15%!important
 }
 
 .mw-100 {
     max-width: 100%!important
 }
 
 .mh-100 {
     max-height: 100%!important
 }
 
 .min-vw-100 {
     min-width: 100vw!important
 }
 
 .min-vh-100 {
     min-height: 100vh!important
 }
 
 .vw-100 {
     width: 100vw!important
 }
 
 .vh-100 {
     height: 100vh!important
 }
 
 .stretched-link::after {
     position: absolute;
     top: 0;
     right: 0;
     bottom: 0;
     left: 0;
     z-index: 1;
     pointer-events: auto;
     content: "";
     background-color: rgba(0, 0, 0, 0)
 }
 
 .m-0 {
     margin: 0!important
 }
 
 .mt-0,
 .my-0 {
     margin-top: 0!important
 }
 
 .mr-0,
 .mx-0 {
     margin-right: 0!important
 }
 
 .mb-0,
 .my-0 {
     margin-bottom: 0!important
 }
 
 .ml-0,
 .mx-0 {
     margin-left: 0!important
 }
 
 .m-1 {
     margin: .375rem!important
 }
 
 .mt-1,
 .my-1 {
     margin-top: .375rem!important
 }
 
 .mr-1,
 .mx-1 {
     margin-right: .375rem!important
 }
 
 .mb-1,
 .my-1 {
     margin-bottom: .375rem!important
 }
 
 .ml-1,
 .mx-1 {
     margin-left: .375rem!important
 }
 
 .m-2 {
     margin: .75rem!important
 }
 
 .mt-2,
 .my-2 {
     margin-top: .75rem!important
 }
 
 .mr-2,
 .mx-2 {
     margin-right: .75rem!important
 }
 
 .mb-2,
 .my-2 {
     margin-bottom: .75rem!important
 }
 
 .ml-2,
 .mx-2 {
     margin-left: .75rem!important
 }
 
 .m-3 {
     margin: 1.5rem!important
 }
 
 .mt-3,
 .my-3 {
     margin-top: 1.5rem!important
 }
 
 .mr-3,
 .mx-3 {
     margin-right: 1.5rem!important
 }
 
 .mb-3,
 .my-3 {
     margin-bottom: 1.5rem!important
 }
 
 .ml-3,
 .mx-3 {
     margin-left: 1.5rem!important
 }
 
 .m-4 {
     margin: 2.25rem!important
 }
 
 .mt-4,
 .my-4 {
     margin-top: 2.25rem!important
 }
 
 .mr-4,
 .mx-4 {
     margin-right: 2.25rem!important
 }
 
 .mb-4,
 .my-4 {
     margin-bottom: 2.25rem!important
 }
 
 .ml-4,
 .mx-4 {
     margin-left: 2.25rem!important
 }
 
 .m-5 {
     margin: 4.5rem!important
 }
 
 .mt-5,
 .my-5 {
     margin-top: 4.5rem!important
 }
 
 .mr-5,
 .mx-5 {
     margin-right: 4.5rem!important
 }
 
 .mb-5,
 .my-5 {
     margin-bottom: 4.5rem!important
 }
 
 .ml-5,
 .mx-5 {
     margin-left: 4.5rem!important
 }
 
 .p-0 {
     padding: 0!important
 }
 
 .pt-0,
 .py-0 {
     padding-top: 0!important
 }
 
 .pr-0,
 .px-0 {
     padding-right: 0!important
 }
 
 .pb-0,
 .py-0 {
     padding-bottom: 0!important
 }
 
 .pl-0,
 .px-0 {
     padding-left: 0!important
 }
 
 .p-1 {
     padding: .375rem!important
 }
 
 .pt-1,
 .py-1 {
     padding-top: .375rem!important
 }
 
 .pr-1,
 .px-1 {
     padding-right: .375rem!important
 }
 
 .pb-1,
 .py-1 {
     padding-bottom: .375rem!important
 }
 
 .pl-1,
 .px-1 {
     padding-left: .375rem!important
 }
 
 .p-2 {
     padding: .75rem!important
 }
 
 .pt-2,
 .py-2 {
     padding-top: .75rem!important
 }
 
 .pr-2,
 .px-2 {
     padding-right: .75rem!important
 }
 
 .pb-2,
 .py-2 {
     padding-bottom: .75rem!important
 }
 
 .pl-2,
 .px-2 {
     padding-left: .75rem!important
 }
 
 .p-3 {
     padding: 1.5rem!important
 }
 
 .pt-3,
 .py-3 {
     padding-top: 1.5rem!important
 }
 
 .pr-3,
 .px-3 {
     padding-right: 1.5rem!important
 }
 
 .pb-3,
 .py-3 {
     padding-bottom: 1.5rem!important
 }
 
 .pl-3,
 .px-3 {
     padding-left: 1.5rem!important
 }
 
 .p-4 {
     padding: 2.25rem!important
 }
 
 .pt-4,
 .py-4 {
     padding-top: 2.25rem!important
 }
 
 .pr-4,
 .px-4 {
     padding-right: 2.25rem!important
 }
 
 .pb-4,
 .py-4 {
     padding-bottom: 2.25rem!important
 }
 
 .pl-4,
 .px-4 {
     padding-left: 2.25rem!important
 }
 
 .p-5 {
     padding: 4.5rem!important
 }
 
 .pt-5,
 .py-5 {
     padding-top: 4.5rem!important
 }
 
 .pr-5,
 .px-5 {
     padding-right: 4.5rem!important
 }
 
 .pb-5,
 .py-5 {
     padding-bottom: 4.5rem!important
 }
 
 .pl-5,
 .px-5 {
     padding-left: 4.5rem!important
 }
 
 .m-n1 {
     margin: -.375rem!important
 }
 
 .mt-n1,
 .my-n1 {
     margin-top: -.375rem!important
 }
 
 .mr-n1,
 .mx-n1 {
     margin-right: -.375rem!important
 }
 
 .mb-n1,
 .my-n1 {
     margin-bottom: -.375rem!important
 }
 
 .ml-n1,
 .mx-n1 {
     margin-left: -.375rem!important
 }
 
 .m-n2 {
     margin: -.75rem!important
 }
 
 .mt-n2,
 .my-n2 {
     margin-top: -.75rem!important
 }
 
 .mr-n2,
 .mx-n2 {
     margin-right: -.75rem!important
 }
 
 .mb-n2,
 .my-n2 {
     margin-bottom: -.75rem!important
 }
 
 .ml-n2,
 .mx-n2 {
     margin-left: -.75rem!important
 }
 
 .m-n3 {
     margin: -1.5rem!important
 }
 
 .mt-n3,
 .my-n3 {
     margin-top: -1.5rem!important
 }
 
 .mr-n3,
 .mx-n3 {
     margin-right: -1.5rem!important
 }
 
 .mb-n3,
 .my-n3 {
     margin-bottom: -1.5rem!important
 }
 
 .ml-n3,
 .mx-n3 {
     margin-left: -1.5rem!important
 }
 
 .m-n4 {
     margin: -2.25rem!important
 }
 
 .mt-n4,
 .my-n4 {
     margin-top: -2.25rem!important
 }
 
 .mr-n4,
 .mx-n4 {
     margin-right: -2.25rem!important
 }
 
 .mb-n4,
 .my-n4 {
     margin-bottom: -2.25rem!important
 }
 
 .ml-n4,
 .mx-n4 {
     margin-left: -2.25rem!important
 }
 
 .m-n5 {
     margin: -4.5rem!important
 }
 
 .mt-n5,
 .my-n5 {
     margin-top: -4.5rem!important
 }
 
 .mr-n5,
 .mx-n5 {
     margin-right: -4.5rem!important
 }
 
 .mb-n5,
 .my-n5 {
     margin-bottom: -4.5rem!important
 }
 
 .ml-n5,
 .mx-n5 {
     margin-left: -4.5rem!important
 }
 
 .m-auto {
     margin: auto!important
 }
 
 .mt-auto,
 .my-auto {
     margin-top: auto!important
 }
 
 .mr-auto,
 .mx-auto {
     margin-right: auto!important
 }
 
 .mb-auto,
 .my-auto {
     margin-bottom: auto!important
 }
 
 .ml-auto,
 .mx-auto {
     margin-left: auto!important
 }
 
 @media (min-width:576px) {
     .m-sm-0 {
         margin: 0!important
     }
     .mt-sm-0,
     .my-sm-0 {
         margin-top: 0!important
     }
     .mr-sm-0,
     .mx-sm-0 {
         margin-right: 0!important
     }
     .mb-sm-0,
     .my-sm-0 {
         margin-bottom: 0!important
     }
     .ml-sm-0,
     .mx-sm-0 {
         margin-left: 0!important
     }
     .m-sm-1 {
         margin: .375rem!important
     }
     .mt-sm-1,
     .my-sm-1 {
         margin-top: .375rem!important
     }
     .mr-sm-1,
     .mx-sm-1 {
         margin-right: .375rem!important
     }
     .mb-sm-1,
     .my-sm-1 {
         margin-bottom: .375rem!important
     }
     .ml-sm-1,
     .mx-sm-1 {
         margin-left: .375rem!important
     }
     .m-sm-2 {
         margin: .75rem!important
     }
     .mt-sm-2,
     .my-sm-2 {
         margin-top: .75rem!important
     }
     .mr-sm-2,
     .mx-sm-2 {
         margin-right: .75rem!important
     }
     .mb-sm-2,
     .my-sm-2 {
         margin-bottom: .75rem!important
     }
     .ml-sm-2,
     .mx-sm-2 {
         margin-left: .75rem!important
     }
     .m-sm-3 {
         margin: 1.5rem!important
     }
     .mt-sm-3,
     .my-sm-3 {
         margin-top: 1.5rem!important
     }
     .mr-sm-3,
     .mx-sm-3 {
         margin-right: 1.5rem!important
     }
     .mb-sm-3,
     .my-sm-3 {
         margin-bottom: 1.5rem!important
     }
     .ml-sm-3,
     .mx-sm-3 {
         margin-left: 1.5rem!important
     }
     .m-sm-4 {
         margin: 2.25rem!important
     }
     .mt-sm-4,
     .my-sm-4 {
         margin-top: 2.25rem!important
     }
     .mr-sm-4,
     .mx-sm-4 {
         margin-right: 2.25rem!important
     }
     .mb-sm-4,
     .my-sm-4 {
         margin-bottom: 2.25rem!important
     }
     .ml-sm-4,
     .mx-sm-4 {
         margin-left: 2.25rem!important
     }
     .m-sm-5 {
         margin: 4.5rem!important
     }
     .mt-sm-5,
     .my-sm-5 {
         margin-top: 4.5rem!important
     }
     .mr-sm-5,
     .mx-sm-5 {
         margin-right: 4.5rem!important
     }
     .mb-sm-5,
     .my-sm-5 {
         margin-bottom: 4.5rem!important
     }
     .ml-sm-5,
     .mx-sm-5 {
         margin-left: 4.5rem!important
     }
     .p-sm-0 {
         padding: 0!important
     }
     .pt-sm-0,
     .py-sm-0 {
         padding-top: 0!important
     }
     .pr-sm-0,
     .px-sm-0 {
         padding-right: 0!important
     }
     .pb-sm-0,
     .py-sm-0 {
         padding-bottom: 0!important
     }
     .pl-sm-0,
     .px-sm-0 {
         padding-left: 0!important
     }
     .p-sm-1 {
         padding: .375rem!important
     }
     .pt-sm-1,
     .py-sm-1 {
         padding-top: .375rem!important
     }
     .pr-sm-1,
     .px-sm-1 {
         padding-right: .375rem!important
     }
     .pb-sm-1,
     .py-sm-1 {
         padding-bottom: .375rem!important
     }
     .pl-sm-1,
     .px-sm-1 {
         padding-left: .375rem!important
     }
     .p-sm-2 {
         padding: .75rem!important
     }
     .pt-sm-2,
     .py-sm-2 {
         padding-top: .75rem!important
     }
     .pr-sm-2,
     .px-sm-2 {
         padding-right: .75rem!important
     }
     .pb-sm-2,
     .py-sm-2 {
         padding-bottom: .75rem!important
     }
     .pl-sm-2,
     .px-sm-2 {
         padding-left: .75rem!important
     }
     .p-sm-3 {
         padding: 1.5rem!important
     }
     .pt-sm-3,
     .py-sm-3 {
         padding-top: 1.5rem!important
     }
     .pr-sm-3,
     .px-sm-3 {
         padding-right: 1.5rem!important
     }
     .pb-sm-3,
     .py-sm-3 {
         padding-bottom: 1.5rem!important
     }
     .pl-sm-3,
     .px-sm-3 {
         padding-left: 1.5rem!important
     }
     .p-sm-4 {
         padding: 2.25rem!important
     }
     .pt-sm-4,
     .py-sm-4 {
         padding-top: 2.25rem!important
     }
     .pr-sm-4,
     .px-sm-4 {
         padding-right: 2.25rem!important
     }
     .pb-sm-4,
     .py-sm-4 {
         padding-bottom: 2.25rem!important
     }
     .pl-sm-4,
     .px-sm-4 {
         padding-left: 2.25rem!important
     }
     .p-sm-5 {
         padding: 4.5rem!important
     }
     .pt-sm-5,
     .py-sm-5 {
         padding-top: 4.5rem!important
     }
     .pr-sm-5,
     .px-sm-5 {
         padding-right: 4.5rem!important
     }
     .pb-sm-5,
     .py-sm-5 {
         padding-bottom: 4.5rem!important
     }
     .pl-sm-5,
     .px-sm-5 {
         padding-left: 4.5rem!important
     }
     .m-sm-n1 {
         margin: -.375rem!important
     }
     .mt-sm-n1,
     .my-sm-n1 {
         margin-top: -.375rem!important
     }
     .mr-sm-n1,
     .mx-sm-n1 {
         margin-right: -.375rem!important
     }
     .mb-sm-n1,
     .my-sm-n1 {
         margin-bottom: -.375rem!important
     }
     .ml-sm-n1,
     .mx-sm-n1 {
         margin-left: -.375rem!important
     }
     .m-sm-n2 {
         margin: -.75rem!important
     }
     .mt-sm-n2,
     .my-sm-n2 {
         margin-top: -.75rem!important
     }
     .mr-sm-n2,
     .mx-sm-n2 {
         margin-right: -.75rem!important
     }
     .mb-sm-n2,
     .my-sm-n2 {
         margin-bottom: -.75rem!important
     }
     .ml-sm-n2,
     .mx-sm-n2 {
         margin-left: -.75rem!important
     }
     .m-sm-n3 {
         margin: -1.5rem!important
     }
     .mt-sm-n3,
     .my-sm-n3 {
         margin-top: -1.5rem!important
     }
     .mr-sm-n3,
     .mx-sm-n3 {
         margin-right: -1.5rem!important
     }
     .mb-sm-n3,
     .my-sm-n3 {
         margin-bottom: -1.5rem!important
     }
     .ml-sm-n3,
     .mx-sm-n3 {
         margin-left: -1.5rem!important
     }
     .m-sm-n4 {
         margin: -2.25rem!important
     }
     .mt-sm-n4,
     .my-sm-n4 {
         margin-top: -2.25rem!important
     }
     .mr-sm-n4,
     .mx-sm-n4 {
         margin-right: -2.25rem!important
     }
     .mb-sm-n4,
     .my-sm-n4 {
         margin-bottom: -2.25rem!important
     }
     .ml-sm-n4,
     .mx-sm-n4 {
         margin-left: -2.25rem!important
     }
     .m-sm-n5 {
         margin: -4.5rem!important
     }
     .mt-sm-n5,
     .my-sm-n5 {
         margin-top: -4.5rem!important
     }
     .mr-sm-n5,
     .mx-sm-n5 {
         margin-right: -4.5rem!important
     }
     .mb-sm-n5,
     .my-sm-n5 {
         margin-bottom: -4.5rem!important
     }
     .ml-sm-n5,
     .mx-sm-n5 {
         margin-left: -4.5rem!important
     }
     .m-sm-auto {
         margin: auto!important
     }
     .mt-sm-auto,
     .my-sm-auto {
         margin-top: auto!important
     }
     .mr-sm-auto,
     .mx-sm-auto {
         margin-right: auto!important
     }
     .mb-sm-auto,
     .my-sm-auto {
         margin-bottom: auto!important
     }
     .ml-sm-auto,
     .mx-sm-auto {
         margin-left: auto!important
     }
 }
 
 @media (min-width:768px) {
     .m-md-0 {
         margin: 0!important
     }
     .mt-md-0,
     .my-md-0 {
         margin-top: 0!important
     }
     .mr-md-0,
     .mx-md-0 {
         margin-right: 0!important
     }
     .mb-md-0,
     .my-md-0 {
         margin-bottom: 0!important
     }
     .ml-md-0,
     .mx-md-0 {
         margin-left: 0!important
     }
     .m-md-1 {
         margin: .375rem!important
     }
     .mt-md-1,
     .my-md-1 {
         margin-top: .375rem!important
     }
     .mr-md-1,
     .mx-md-1 {
         margin-right: .375rem!important
     }
     .mb-md-1,
     .my-md-1 {
         margin-bottom: .375rem!important
     }
     .ml-md-1,
     .mx-md-1 {
         margin-left: .375rem!important
     }
     .m-md-2 {
         margin: .75rem!important
     }
     .mt-md-2,
     .my-md-2 {
         margin-top: .75rem!important
     }
     .mr-md-2,
     .mx-md-2 {
         margin-right: .75rem!important
     }
     .mb-md-2,
     .my-md-2 {
         margin-bottom: .75rem!important
     }
     .ml-md-2,
     .mx-md-2 {
         margin-left: .75rem!important
     }
     .m-md-3 {
         margin: 1.5rem!important
     }
     .mt-md-3,
     .my-md-3 {
         margin-top: 1.5rem!important
     }
     .mr-md-3,
     .mx-md-3 {
         margin-right: 1.5rem!important
     }
     .mb-md-3,
     .my-md-3 {
         margin-bottom: 1.5rem!important
     }
     .ml-md-3,
     .mx-md-3 {
         margin-left: 1.5rem!important
     }
     .m-md-4 {
         margin: 2.25rem!important
     }
     .mt-md-4,
     .my-md-4 {
         margin-top: 2.25rem!important
     }
     .mr-md-4,
     .mx-md-4 {
         margin-right: 2.25rem!important
     }
     .mb-md-4,
     .my-md-4 {
         margin-bottom: 2.25rem!important
     }
     .ml-md-4,
     .mx-md-4 {
         margin-left: 2.25rem!important
     }
     .m-md-5 {
         margin: 4.5rem!important
     }
     .mt-md-5,
     .my-md-5 {
         margin-top: 4.5rem!important
     }
     .mr-md-5,
     .mx-md-5 {
         margin-right: 4.5rem!important
     }
     .mb-md-5,
     .my-md-5 {
         margin-bottom: 4.5rem!important
     }
     .ml-md-5,
     .mx-md-5 {
         margin-left: 4.5rem!important
     }
     .p-md-0 {
         padding: 0!important
     }
     .pt-md-0,
     .py-md-0 {
         padding-top: 0!important
     }
     .pr-md-0,
     .px-md-0 {
         padding-right: 0!important
     }
     .pb-md-0,
     .py-md-0 {
         padding-bottom: 0!important
     }
     .pl-md-0,
     .px-md-0 {
         padding-left: 0!important
     }
     .p-md-1 {
         padding: .375rem!important
     }
     .pt-md-1,
     .py-md-1 {
         padding-top: .375rem!important
     }
     .pr-md-1,
     .px-md-1 {
         padding-right: .375rem!important
     }
     .pb-md-1,
     .py-md-1 {
         padding-bottom: .375rem!important
     }
     .pl-md-1,
     .px-md-1 {
         padding-left: .375rem!important
     }
     .p-md-2 {
         padding: .75rem!important
     }
     .pt-md-2,
     .py-md-2 {
         padding-top: .75rem!important
     }
     .pr-md-2,
     .px-md-2 {
         padding-right: .75rem!important
     }
     .pb-md-2,
     .py-md-2 {
         padding-bottom: .75rem!important
     }
     .pl-md-2,
     .px-md-2 {
         padding-left: .75rem!important
     }
     .p-md-3 {
         padding: 1.5rem!important
     }
     .pt-md-3,
     .py-md-3 {
         padding-top: 1.5rem!important
     }
     .pr-md-3,
     .px-md-3 {
         padding-right: 1.5rem!important
     }
     .pb-md-3,
     .py-md-3 {
         padding-bottom: 1.5rem!important
     }
     .pl-md-3,
     .px-md-3 {
         padding-left: 1.5rem!important
     }
     .p-md-4 {
         padding: 2.25rem!important
     }
     .pt-md-4,
     .py-md-4 {
         padding-top: 2.25rem!important
     }
     .pr-md-4,
     .px-md-4 {
         padding-right: 2.25rem!important
     }
     .pb-md-4,
     .py-md-4 {
         padding-bottom: 2.25rem!important
     }
     .pl-md-4,
     .px-md-4 {
         padding-left: 2.25rem!important
     }
     .p-md-5 {
         padding: 4.5rem!important
     }
     .pt-md-5,
     .py-md-5 {
         padding-top: 4.5rem!important
     }
     .pr-md-5,
     .px-md-5 {
         padding-right: 4.5rem!important
     }
     .pb-md-5,
     .py-md-5 {
         padding-bottom: 4.5rem!important
     }
     .pl-md-5,
     .px-md-5 {
         padding-left: 4.5rem!important
     }
     .m-md-n1 {
         margin: -.375rem!important
     }
     .mt-md-n1,
     .my-md-n1 {
         margin-top: -.375rem!important
     }
     .mr-md-n1,
     .mx-md-n1 {
         margin-right: -.375rem!important
     }
     .mb-md-n1,
     .my-md-n1 {
         margin-bottom: -.375rem!important
     }
     .ml-md-n1,
     .mx-md-n1 {
         margin-left: -.375rem!important
     }
     .m-md-n2 {
         margin: -.75rem!important
     }
     .mt-md-n2,
     .my-md-n2 {
         margin-top: -.75rem!important
     }
     .mr-md-n2,
     .mx-md-n2 {
         margin-right: -.75rem!important
     }
     .mb-md-n2,
     .my-md-n2 {
         margin-bottom: -.75rem!important
     }
     .ml-md-n2,
     .mx-md-n2 {
         margin-left: -.75rem!important
     }
     .m-md-n3 {
         margin: -1.5rem!important
     }
     .mt-md-n3,
     .my-md-n3 {
         margin-top: -1.5rem!important
     }
     .mr-md-n3,
     .mx-md-n3 {
         margin-right: -1.5rem!important
     }
     .mb-md-n3,
     .my-md-n3 {
         margin-bottom: -1.5rem!important
     }
     .ml-md-n3,
     .mx-md-n3 {
         margin-left: -1.5rem!important
     }
     .m-md-n4 {
         margin: -2.25rem!important
     }
     .mt-md-n4,
     .my-md-n4 {
         margin-top: -2.25rem!important
     }
     .mr-md-n4,
     .mx-md-n4 {
         margin-right: -2.25rem!important
     }
     .mb-md-n4,
     .my-md-n4 {
         margin-bottom: -2.25rem!important
     }
     .ml-md-n4,
     .mx-md-n4 {
         margin-left: -2.25rem!important
     }
     .m-md-n5 {
         margin: -4.5rem!important
     }
     .mt-md-n5,
     .my-md-n5 {
         margin-top: -4.5rem!important
     }
     .mr-md-n5,
     .mx-md-n5 {
         margin-right: -4.5rem!important
     }
     .mb-md-n5,
     .my-md-n5 {
         margin-bottom: -4.5rem!important
     }
     .ml-md-n5,
     .mx-md-n5 {
         margin-left: -4.5rem!important
     }
     .m-md-auto {
         margin: auto!important
     }
     .mt-md-auto,
     .my-md-auto {
         margin-top: auto!important
     }
     .mr-md-auto,
     .mx-md-auto {
         margin-right: auto!important
     }
     .mb-md-auto,
     .my-md-auto {
         margin-bottom: auto!important
     }
     .ml-md-auto,
     .mx-md-auto {
         margin-left: auto!important
     }
 }
 
 @media (min-width:992px) {
     .m-lg-0 {
         margin: 0!important
     }
     .mt-lg-0,
     .my-lg-0 {
         margin-top: 0!important
     }
     .mr-lg-0,
     .mx-lg-0 {
         margin-right: 0!important
     }
     .mb-lg-0,
     .my-lg-0 {
         margin-bottom: 0!important
     }
     .ml-lg-0,
     .mx-lg-0 {
         margin-left: 0!important
     }
     .m-lg-1 {
         margin: .375rem!important
     }
     .mt-lg-1,
     .my-lg-1 {
         margin-top: .375rem!important
     }
     .mr-lg-1,
     .mx-lg-1 {
         margin-right: .375rem!important
     }
     .mb-lg-1,
     .my-lg-1 {
         margin-bottom: .375rem!important
     }
     .ml-lg-1,
     .mx-lg-1 {
         margin-left: .375rem!important
     }
     .m-lg-2 {
         margin: .75rem!important
     }
     .mt-lg-2,
     .my-lg-2 {
         margin-top: .75rem!important
     }
     .mr-lg-2,
     .mx-lg-2 {
         margin-right: .75rem!important
     }
     .mb-lg-2,
     .my-lg-2 {
         margin-bottom: .75rem!important
     }
     .ml-lg-2,
     .mx-lg-2 {
         margin-left: .75rem!important
     }
     .m-lg-3 {
         margin: 1.5rem!important
     }
     .mt-lg-3,
     .my-lg-3 {
         margin-top: 1.5rem!important
     }
     .mr-lg-3,
     .mx-lg-3 {
         margin-right: 1.5rem!important
     }
     .mb-lg-3,
     .my-lg-3 {
         margin-bottom: 1.5rem!important
     }
     .ml-lg-3,
     .mx-lg-3 {
         margin-left: 1.5rem!important
     }
     .m-lg-4 {
         margin: 2.25rem!important
     }
     .mt-lg-4,
     .my-lg-4 {
         margin-top: 2.25rem!important
     }
     .mr-lg-4,
     .mx-lg-4 {
         margin-right: 2.25rem!important
     }
     .mb-lg-4,
     .my-lg-4 {
         margin-bottom: 2.25rem!important
     }
     .ml-lg-4,
     .mx-lg-4 {
         margin-left: 2.25rem!important
     }
     .m-lg-5 {
         margin: 4.5rem!important
     }
     .mt-lg-5,
     .my-lg-5 {
         margin-top: 4.5rem!important
     }
     .mr-lg-5,
     .mx-lg-5 {
         margin-right: 4.5rem!important
     }
     .mb-lg-5,
     .my-lg-5 {
         margin-bottom: 4.5rem!important
     }
     .ml-lg-5,
     .mx-lg-5 {
         margin-left: 4.5rem!important
     }
     .p-lg-0 {
         padding: 0!important
     }
     .pt-lg-0,
     .py-lg-0 {
         padding-top: 0!important
     }
     .pr-lg-0,
     .px-lg-0 {
         padding-right: 0!important
     }
     .pb-lg-0,
     .py-lg-0 {
         padding-bottom: 0!important
     }
     .pl-lg-0,
     .px-lg-0 {
         padding-left: 0!important
     }
     .p-lg-1 {
         padding: .375rem!important
     }
     .pt-lg-1,
     .py-lg-1 {
         padding-top: .375rem!important
     }
     .pr-lg-1,
     .px-lg-1 {
         padding-right: .375rem!important
     }
     .pb-lg-1,
     .py-lg-1 {
         padding-bottom: .375rem!important
     }
     .pl-lg-1,
     .px-lg-1 {
         padding-left: .375rem!important
     }
     .p-lg-2 {
         padding: .75rem!important
     }
     .pt-lg-2,
     .py-lg-2 {
         padding-top: .75rem!important
     }
     .pr-lg-2,
     .px-lg-2 {
         padding-right: .75rem!important
     }
     .pb-lg-2,
     .py-lg-2 {
         padding-bottom: .75rem!important
     }
     .pl-lg-2,
     .px-lg-2 {
         padding-left: .75rem!important
     }
     .p-lg-3 {
         padding: 1.5rem!important
     }
     .pt-lg-3,
     .py-lg-3 {
         padding-top: 1.5rem!important
     }
     .pr-lg-3,
     .px-lg-3 {
         padding-right: 1.5rem!important
     }
     .pb-lg-3,
     .py-lg-3 {
         padding-bottom: 1.5rem!important
     }
     .pl-lg-3,
     .px-lg-3 {
         padding-left: 1.5rem!important
     }
     .p-lg-4 {
         padding: 2.25rem!important
     }
     .pt-lg-4,
     .py-lg-4 {
         padding-top: 2.25rem!important
     }
     .pr-lg-4,
     .px-lg-4 {
         padding-right: 2.25rem!important
     }
     .pb-lg-4,
     .py-lg-4 {
         padding-bottom: 2.25rem!important
     }
     .pl-lg-4,
     .px-lg-4 {
         padding-left: 2.25rem!important
     }
     .p-lg-5 {
         padding: 4.5rem!important
     }
     .pt-lg-5,
     .py-lg-5 {
         padding-top: 4.5rem!important
     }
     .pr-lg-5,
     .px-lg-5 {
         padding-right: 4.5rem!important
     }
     .pb-lg-5,
     .py-lg-5 {
         padding-bottom: 4.5rem!important
     }
     .pl-lg-5,
     .px-lg-5 {
         padding-left: 4.5rem!important
     }
     .m-lg-n1 {
         margin: -.375rem!important
     }
     .mt-lg-n1,
     .my-lg-n1 {
         margin-top: -.375rem!important
     }
     .mr-lg-n1,
     .mx-lg-n1 {
         margin-right: -.375rem!important
     }
     .mb-lg-n1,
     .my-lg-n1 {
         margin-bottom: -.375rem!important
     }
     .ml-lg-n1,
     .mx-lg-n1 {
         margin-left: -.375rem!important
     }
     .m-lg-n2 {
         margin: -.75rem!important
     }
     .mt-lg-n2,
     .my-lg-n2 {
         margin-top: -.75rem!important
     }
     .mr-lg-n2,
     .mx-lg-n2 {
         margin-right: -.75rem!important
     }
     .mb-lg-n2,
     .my-lg-n2 {
         margin-bottom: -.75rem!important
     }
     .ml-lg-n2,
     .mx-lg-n2 {
         margin-left: -.75rem!important
     }
     .m-lg-n3 {
         margin: -1.5rem!important
     }
     .mt-lg-n3,
     .my-lg-n3 {
         margin-top: -1.5rem!important
     }
     .mr-lg-n3,
     .mx-lg-n3 {
         margin-right: -1.5rem!important
     }
     .mb-lg-n3,
     .my-lg-n3 {
         margin-bottom: -1.5rem!important
     }
     .ml-lg-n3,
     .mx-lg-n3 {
         margin-left: -1.5rem!important
     }
     .m-lg-n4 {
         margin: -2.25rem!important
     }
     .mt-lg-n4,
     .my-lg-n4 {
         margin-top: -2.25rem!important
     }
     .mr-lg-n4,
     .mx-lg-n4 {
         margin-right: -2.25rem!important
     }
     .mb-lg-n4,
     .my-lg-n4 {
         margin-bottom: -2.25rem!important
     }
     .ml-lg-n4,
     .mx-lg-n4 {
         margin-left: -2.25rem!important
     }
     .m-lg-n5 {
         margin: -4.5rem!important
     }
     .mt-lg-n5,
     .my-lg-n5 {
         margin-top: -4.5rem!important
     }
     .mr-lg-n5,
     .mx-lg-n5 {
         margin-right: -4.5rem!important
     }
     .mb-lg-n5,
     .my-lg-n5 {
         margin-bottom: -4.5rem!important
     }
     .ml-lg-n5,
     .mx-lg-n5 {
         margin-left: -4.5rem!important
     }
     .m-lg-auto {
         margin: auto!important
     }
     .mt-lg-auto,
     .my-lg-auto {
         margin-top: auto!important
     }
     .mr-lg-auto,
     .mx-lg-auto {
         margin-right: auto!important
     }
     .mb-lg-auto,
     .my-lg-auto {
         margin-bottom: auto!important
     }
     .ml-lg-auto,
     .mx-lg-auto {
         margin-left: auto!important
     }
 }
 
 @media (min-width:1200px) {
     .m-xl-0 {
         margin: 0!important
     }
     .mt-xl-0,
     .my-xl-0 {
         margin-top: 0!important
     }
     .mr-xl-0,
     .mx-xl-0 {
         margin-right: 0!important
     }
     .mb-xl-0,
     .my-xl-0 {
         margin-bottom: 0!important
     }
     .ml-xl-0,
     .mx-xl-0 {
         margin-left: 0!important
     }
     .m-xl-1 {
         margin: .375rem!important
     }
     .mt-xl-1,
     .my-xl-1 {
         margin-top: .375rem!important
     }
     .mr-xl-1,
     .mx-xl-1 {
         margin-right: .375rem!important
     }
     .mb-xl-1,
     .my-xl-1 {
         margin-bottom: .375rem!important
     }
     .ml-xl-1,
     .mx-xl-1 {
         margin-left: .375rem!important
     }
     .m-xl-2 {
         margin: .75rem!important
     }
     .mt-xl-2,
     .my-xl-2 {
         margin-top: .75rem!important
     }
     .mr-xl-2,
     .mx-xl-2 {
         margin-right: .75rem!important
     }
     .mb-xl-2,
     .my-xl-2 {
         margin-bottom: .75rem!important
     }
     .ml-xl-2,
     .mx-xl-2 {
         margin-left: .75rem!important
     }
     .m-xl-3 {
         margin: 1.5rem!important
     }
     .mt-xl-3,
     .my-xl-3 {
         margin-top: 1.5rem!important
     }
     .mr-xl-3,
     .mx-xl-3 {
         margin-right: 1.5rem!important
     }
     .mb-xl-3,
     .my-xl-3 {
         margin-bottom: 1.5rem!important
     }
     .ml-xl-3,
     .mx-xl-3 {
         margin-left: 1.5rem!important
     }
     .m-xl-4 {
         margin: 2.25rem!important
     }
     .mt-xl-4,
     .my-xl-4 {
         margin-top: 2.25rem!important
     }
     .mr-xl-4,
     .mx-xl-4 {
         margin-right: 2.25rem!important
     }
     .mb-xl-4,
     .my-xl-4 {
         margin-bottom: 2.25rem!important
     }
     .ml-xl-4,
     .mx-xl-4 {
         margin-left: 2.25rem!important
     }
     .m-xl-5 {
         margin: 4.5rem!important
     }
     .mt-xl-5,
     .my-xl-5 {
         margin-top: 4.5rem!important
     }
     .mr-xl-5,
     .mx-xl-5 {
         margin-right: 4.5rem!important
     }
     .mb-xl-5,
     .my-xl-5 {
         margin-bottom: 4.5rem!important
     }
     .ml-xl-5,
     .mx-xl-5 {
         margin-left: 4.5rem!important
     }
     .p-xl-0 {
         padding: 0!important
     }
     .pt-xl-0,
     .py-xl-0 {
         padding-top: 0!important
     }
     .pr-xl-0,
     .px-xl-0 {
         padding-right: 0!important
     }
     .pb-xl-0,
     .py-xl-0 {
         padding-bottom: 0!important
     }
     .pl-xl-0,
     .px-xl-0 {
         padding-left: 0!important
     }
     .p-xl-1 {
         padding: .375rem!important
     }
     .pt-xl-1,
     .py-xl-1 {
         padding-top: .375rem!important
     }
     .pr-xl-1,
     .px-xl-1 {
         padding-right: .375rem!important
     }
     .pb-xl-1,
     .py-xl-1 {
         padding-bottom: .375rem!important
     }
     .pl-xl-1,
     .px-xl-1 {
         padding-left: .375rem!important
     }
     .p-xl-2 {
         padding: .75rem!important
     }
     .pt-xl-2,
     .py-xl-2 {
         padding-top: .75rem!important
     }
     .pr-xl-2,
     .px-xl-2 {
         padding-right: .75rem!important
     }
     .pb-xl-2,
     .py-xl-2 {
         padding-bottom: .75rem!important
     }
     .pl-xl-2,
     .px-xl-2 {
         padding-left: .75rem!important
     }
     .p-xl-3 {
         padding: 1.5rem!important
     }
     .pt-xl-3,
     .py-xl-3 {
         padding-top: 1.5rem!important
     }
     .pr-xl-3,
     .px-xl-3 {
         padding-right: 1.5rem!important
     }
     .pb-xl-3,
     .py-xl-3 {
         padding-bottom: 1.5rem!important
     }
     .pl-xl-3,
     .px-xl-3 {
         padding-left: 1.5rem!important
     }
     .p-xl-4 {
         padding: 2.25rem!important
     }
     .pt-xl-4,
     .py-xl-4 {
         padding-top: 2.25rem!important
     }
     .pr-xl-4,
     .px-xl-4 {
         padding-right: 2.25rem!important
     }
     .pb-xl-4,
     .py-xl-4 {
         padding-bottom: 2.25rem!important
     }
     .pl-xl-4,
     .px-xl-4 {
         padding-left: 2.25rem!important
     }
     .p-xl-5 {
         padding: 4.5rem!important
     }
     .pt-xl-5,
     .py-xl-5 {
         padding-top: 4.5rem!important
     }
     .pr-xl-5,
     .px-xl-5 {
         padding-right: 4.5rem!important
     }
     .pb-xl-5,
     .py-xl-5 {
         padding-bottom: 4.5rem!important
     }
     .pl-xl-5,
     .px-xl-5 {
         padding-left: 4.5rem!important
     }
     .m-xl-n1 {
         margin: -.375rem!important
     }
     .mt-xl-n1,
     .my-xl-n1 {
         margin-top: -.375rem!important
     }
     .mr-xl-n1,
     .mx-xl-n1 {
         margin-right: -.375rem!important
     }
     .mb-xl-n1,
     .my-xl-n1 {
         margin-bottom: -.375rem!important
     }
     .ml-xl-n1,
     .mx-xl-n1 {
         margin-left: -.375rem!important
     }
     .m-xl-n2 {
         margin: -.75rem!important
     }
     .mt-xl-n2,
     .my-xl-n2 {
         margin-top: -.75rem!important
     }
     .mr-xl-n2,
     .mx-xl-n2 {
         margin-right: -.75rem!important
     }
     .mb-xl-n2,
     .my-xl-n2 {
         margin-bottom: -.75rem!important
     }
     .ml-xl-n2,
     .mx-xl-n2 {
         margin-left: -.75rem!important
     }
     .m-xl-n3 {
         margin: -1.5rem!important
     }
     .mt-xl-n3,
     .my-xl-n3 {
         margin-top: -1.5rem!important
     }
     .mr-xl-n3,
     .mx-xl-n3 {
         margin-right: -1.5rem!important
     }
     .mb-xl-n3,
     .my-xl-n3 {
         margin-bottom: -1.5rem!important
     }
     .ml-xl-n3,
     .mx-xl-n3 {
         margin-left: -1.5rem!important
     }
     .m-xl-n4 {
         margin: -2.25rem!important
     }
     .mt-xl-n4,
     .my-xl-n4 {
         margin-top: -2.25rem!important
     }
     .mr-xl-n4,
     .mx-xl-n4 {
         margin-right: -2.25rem!important
     }
     .mb-xl-n4,
     .my-xl-n4 {
         margin-bottom: -2.25rem!important
     }
     .ml-xl-n4,
     .mx-xl-n4 {
         margin-left: -2.25rem!important
     }
     .m-xl-n5 {
         margin: -4.5rem!important
     }
     .mt-xl-n5,
     .my-xl-n5 {
         margin-top: -4.5rem!important
     }
     .mr-xl-n5,
     .mx-xl-n5 {
         margin-right: -4.5rem!important
     }
     .mb-xl-n5,
     .my-xl-n5 {
         margin-bottom: -4.5rem!important
     }
     .ml-xl-n5,
     .mx-xl-n5 {
         margin-left: -4.5rem!important
     }
     .m-xl-auto {
         margin: auto!important
     }
     .mt-xl-auto,
     .my-xl-auto {
         margin-top: auto!important
     }
     .mr-xl-auto,
     .mx-xl-auto {
         margin-right: auto!important
     }
     .mb-xl-auto,
     .my-xl-auto {
         margin-bottom: auto!important
     }
     .ml-xl-auto,
     .mx-xl-auto {
         margin-left: auto!important
     }
 }
 
 .text-monospace {
     font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace!important
 }
 
 .text-justify {
     text-align: justify!important
 }
 
 .text-wrap {
     white-space: normal!important
 }
 
 .text-nowrap {
     white-space: nowrap!important
 }
 
 .text-truncate {
     overflow: hidden;
     text-overflow: ellipsis;
     white-space: nowrap
 }
 
 .text-left {
     text-align: left!important
 }
 
 .text-right {
     text-align: right!important
 }
 
 .text-center {
     text-align: center!important
 }
 
 @media (min-width:576px) {
     .text-sm-left {
         text-align: left!important
     }
     .text-sm-right {
         text-align: right!important
     }
     .text-sm-center {
         text-align: center!important
     }
 }
 
 @media (min-width:768px) {
     .text-md-left {
         text-align: left!important
     }
     .text-md-right {
         text-align: right!important
     }
     .text-md-center {
         text-align: center!important
     }
 }
 
 @media (min-width:992px) {
     .text-lg-left {
         text-align: left!important
     }
     .text-lg-right {
         text-align: right!important
     }
     .text-lg-center {
         text-align: center!important
     }
 }
 
 @media (min-width:1200px) {
     .text-xl-left {
         text-align: left!important
     }
     .text-xl-right {
         text-align: right!important
     }
     .text-xl-center {
         text-align: center!important
     }
 }
 
 .text-lowercase {
     text-transform: lowercase!important
 }
 
 .text-uppercase {
     text-transform: uppercase!important
 }
 
 .text-capitalize {
     text-transform: capitalize!important
 }
 
 .font-weight-light {
     font-weight: 300!important
 }
 
 .font-weight-lighter {
     font-weight: lighter!important
 }
 
 .font-weight-normal {
     font-weight: 400!important
 }
 
 .font-weight-bold {
     font-weight: 700!important
 }
 
 .font-weight-bolder {
     font-weight: bolder!important
 }
 
 .font-italic {
     font-style: italic!important
 }
 
 .text-white {
     color: #fff!important
 }
 
 .text-primary {
     color: #71b6f9!important
 }
 
 a.text-primary:focus,
 a.text-primary:hover {
     color: #2890f6!important
 }
 
 .text-secondary {
     color: #6c757d!important
 }
 
 a.text-secondary:focus,
 a.text-secondary:hover {
     color: #494f54!important
 }
 
 .text-success {
     color: #10c469!important
 }
 
 a.text-success:focus,
 a.text-success:hover {
     color: #0a7d43!important
 }
 
 .text-info {
     color: #35b8e0!important
 }
 
 a.text-info:focus,
 a.text-info:hover {
     color: #1b8bae!important
 }
 
 .text-warning {
     color: #f9c851!important
 }
 
 a.text-warning:focus,
 a.text-warning:hover {
     color: #f5b008!important
 }
 
 .text-danger {
     color: #ff5b5b!important
 }
 
 a.text-danger:focus,
 a.text-danger:hover {
     color: #ff0f0f!important
 }
 
 .text-light {
     color: #323a46!important
 }
 
 a.text-light:focus,
 a.text-light:hover {
     color: #121519!important
 }
 
 .text-dark {
     color: #f1f5f7!important
 }
 
 a.text-dark:focus,
 a.text-dark:hover {
     color: #c0d2db!important
 }
 
 .text-pink {
     color: #ff8acc!important
 }
 
 a.text-pink:focus,
 a.text-pink:hover {
     color: #ff3eab!important
 }
 
 .text-purple {
     color: #5b69bc!important
 }
 
 a.text-purple:focus,
 a.text-purple:hover {
     color: #3b4790!important
 }
 
 .text-blue {
     color: #71b6f9!important
 }
 
 a.text-blue:focus,
 a.text-blue:hover {
     color: #2890f6!important
 }
 
 .text-body {
     color: #adb5bd!important
 }
 
 .text-muted {
     color: #adb5bd!important
 }
 
 .text-black-50 {
     color: rgba(0, 0, 0, .5)!important
 }
 
 .text-white-50 {
     color: rgba(255, 255, 255, .5)!important
 }
 
 .text-hide {
     font: 0/0 a;
     color: transparent;
     text-shadow: none;
     background-color: transparent;
     border: 0
 }
 
 .text-decoration-none {
     text-decoration: none!important
 }
 
 .text-break {
     word-break: break-word!important;
     overflow-wrap: break-word!important
 }
 
 .text-reset {
     color: inherit!important
 }
 
 .visible {
     visibility: visible!important
 }
 
 .invisible {
     visibility: hidden!important
 }
 
 @media print {
     *,
     ::after,
     ::before {
         text-shadow: none!important;
         box-shadow: none!important
     }
     a:not(.btn) {
         text-decoration: underline
     }
     abbr[title]::after {
         content: " (" attr(title) ")"
     }
     pre {
         white-space: pre-wrap!important
     }
     blockquote,
     pre {
         border: 1px solid #adb5bd;
         page-break-inside: avoid
     }
     thead {
         display: table-header-group
     }
     img,
     tr {
         page-break-inside: avoid
     }
     h2,
     h3,
     p {
         orphans: 3;
         widows: 3
     }
     h2,
     h3 {
         page-break-after: avoid
     }
     @page {
         size: a3
     }
     body {
         min-width: 992px!important
     }
     .container {
         min-width: 992px!important
     }
     .navbar {
         display: none
     }
     .badge {
         border: 1px solid #000
     }
     .table {
         border-collapse: collapse!important
     }
     .table td,
     .table th {
         background-color: #fff!important
     }
     .table-bordered td,
     .table-bordered th {
         border: 1px solid #6c757d!important
     }
     .table-dark {
         color: inherit
     }
     .table-dark tbody+tbody,
     .table-dark td,
     .table-dark th,
     .table-dark thead th {
         border-color: #3b4452
     }
     .table .thead-dark th {
         color: inherit;
         border-color: #3b4452
     }
 }
 
 .custom-accordion .card {
     box-shadow: none;
     border: 1px solid #3b4452!important
 }
 
 .custom-accordion .card .card-header {
     background-color: #3b4452!important
 }
 
 .badge {
     color: #fff
 }
 
 .badge-dark {
     color: #343a40
 }
 
 .bg-soft-primary {
     background-color: rgba(113, 182, 249, .25)
 }
 
 .bg-soft-secondary {
     background-color: rgba(108, 117, 125, .25)
 }
 
 .bg-soft-success {
     background-color: rgba(16, 196, 105, .25)
 }
 
 .bg-soft-info {
     background-color: rgba(53, 184, 224, .25)
 }
 
 .bg-soft-warning {
     background-color: rgba(249, 200, 81, .25)
 }
 
 .bg-soft-danger {
     background-color: rgba(255, 91, 91, .25)
 }
 
 .bg-soft-light {
     background-color: rgba(50, 58, 70, .25)
 }
 
 .bg-soft-dark {
     background-color: rgba(241, 245, 247, .25)
 }
 
 .bg-soft-pink {
     background-color: rgba(255, 138, 204, .25)
 }
 
 .bg-soft-purple {
     background-color: rgba(91, 105, 188, .25)
 }
 
 .bg-soft-blue {
     background-color: rgba(113, 182, 249, .25)
 }
 
 .breadcrumb-item>a {
     color: #dee2e6
 }
 
 .breadcrumb-item+.breadcrumb-item::before {
     font-family: "Material Design Icons"
 }
 
 .btn {
     color: #fff
 }
 
 .btn .mdi:before {
     margin-top: -1px
 }
 
 .btn-rounded {
     border-radius: 2em
 }
 
 .btn-light {
     background: #f1f5f7!important;
     color: #323a46!important;
     border-color: #f1f5f7!important
 }
 
 .btn-dark {
     color: #323a46!important
 }
 
 .btn-link {
     font-weight: 400;
     color: #71b6f9;
     background-color: transparent
 }
 
 .btn-link:hover {
     color: #2890f6;
     text-decoration: none;
     background-color: transparent;
     border-color: transparent
 }
 
 .btn-link.focus,
 .btn-link:focus {
     text-decoration: none;
     border-color: transparent;
     box-shadow: none
 }
 
 .btn-link.disabled,
 .btn-link:disabled {
     color: #adb5bd;
     pointer-events: none
 }
 
 .btn-outline-primary {
     color: #71b6f9;
     border-color: #71b6f9
 }
 
 .btn-outline-primary:hover {
     color: #fff;
     background-color: #71b6f9;
     border-color: #71b6f9
 }
 
 .btn-outline-primary.focus,
 .btn-outline-primary:focus {
     box-shadow: 0 0 0 .15rem rgba(113, 182, 249, .5)
 }
 
 .btn-outline-primary.disabled,
 .btn-outline-primary:disabled {
     color: #71b6f9;
     background-color: transparent
 }
 
 .btn-outline-primary:not(:disabled):not(.disabled).active,
 .btn-outline-primary:not(:disabled):not(.disabled):active,
 .show>.btn-outline-primary.dropdown-toggle {
     color: #fff;
     background-color: #71b6f9;
     border-color: #71b6f9
 }
 
 .btn-outline-primary:not(:disabled):not(.disabled).active:focus,
 .btn-outline-primary:not(:disabled):not(.disabled):active:focus,
 .show>.btn-outline-primary.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(113, 182, 249, .5)
 }
 
 .btn-outline-secondary {
     color: #6c757d;
     border-color: #6c757d
 }
 
 .btn-outline-secondary:hover {
     color: #fff;
     background-color: #6c757d;
     border-color: #6c757d
 }
 
 .btn-outline-secondary.focus,
 .btn-outline-secondary:focus {
     box-shadow: 0 0 0 .15rem rgba(108, 117, 125, .5)
 }
 
 .btn-outline-secondary.disabled,
 .btn-outline-secondary:disabled {
     color: #6c757d;
     background-color: transparent
 }
 
 .btn-outline-secondary:not(:disabled):not(.disabled).active,
 .btn-outline-secondary:not(:disabled):not(.disabled):active,
 .show>.btn-outline-secondary.dropdown-toggle {
     color: #fff;
     background-color: #6c757d;
     border-color: #6c757d
 }
 
 .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,
 .btn-outline-secondary:not(:disabled):not(.disabled):active:focus,
 .show>.btn-outline-secondary.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(108, 117, 125, .5)
 }
 
 .btn-outline-success {
     color: #10c469;
     border-color: #10c469
 }
 
 .btn-outline-success:hover {
     color: #fff;
     background-color: #10c469;
     border-color: #10c469
 }
 
 .btn-outline-success.focus,
 .btn-outline-success:focus {
     box-shadow: 0 0 0 .15rem rgba(16, 196, 105, .5)
 }
 
 .btn-outline-success.disabled,
 .btn-outline-success:disabled {
     color: #10c469;
     background-color: transparent
 }
 
 .btn-outline-success:not(:disabled):not(.disabled).active,
 .btn-outline-success:not(:disabled):not(.disabled):active,
 .show>.btn-outline-success.dropdown-toggle {
     color: #fff;
     background-color: #10c469;
     border-color: #10c469
 }
 
 .btn-outline-success:not(:disabled):not(.disabled).active:focus,
 .btn-outline-success:not(:disabled):not(.disabled):active:focus,
 .show>.btn-outline-success.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(16, 196, 105, .5)
 }
 
 .btn-outline-info {
     color: #35b8e0;
     border-color: #35b8e0
 }
 
 .btn-outline-info:hover {
     color: #fff;
     background-color: #35b8e0;
     border-color: #35b8e0
 }
 
 .btn-outline-info.focus,
 .btn-outline-info:focus {
     box-shadow: 0 0 0 .15rem rgba(53, 184, 224, .5)
 }
 
 .btn-outline-info.disabled,
 .btn-outline-info:disabled {
     color: #35b8e0;
     background-color: transparent
 }
 
 .btn-outline-info:not(:disabled):not(.disabled).active,
 .btn-outline-info:not(:disabled):not(.disabled):active,
 .show>.btn-outline-info.dropdown-toggle {
     color: #fff;
     background-color: #35b8e0;
     border-color: #35b8e0
 }
 
 .btn-outline-info:not(:disabled):not(.disabled).active:focus,
 .btn-outline-info:not(:disabled):not(.disabled):active:focus,
 .show>.btn-outline-info.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(53, 184, 224, .5)
 }
 
 .btn-outline-warning {
     color: #f9c851;
     border-color: #f9c851
 }
 
 .btn-outline-warning:hover {
     color: #f7f7f7;
     background-color: #f9c851;
     border-color: #f9c851
 }
 
 .btn-outline-warning.focus,
 .btn-outline-warning:focus {
     box-shadow: 0 0 0 .15rem rgba(249, 200, 81, .5)
 }
 
 .btn-outline-warning.disabled,
 .btn-outline-warning:disabled {
     color: #f9c851;
     background-color: transparent
 }
 
 .btn-outline-warning:not(:disabled):not(.disabled).active,
 .btn-outline-warning:not(:disabled):not(.disabled):active,
 .show>.btn-outline-warning.dropdown-toggle {
     color: #f7f7f7;
     background-color: #f9c851;
     border-color: #f9c851
 }
 
 .btn-outline-warning:not(:disabled):not(.disabled).active:focus,
 .btn-outline-warning:not(:disabled):not(.disabled):active:focus,
 .show>.btn-outline-warning.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(249, 200, 81, .5)
 }
 
 .btn-outline-danger {
     color: #ff5b5b;
     border-color: #ff5b5b
 }
 
 .btn-outline-danger:hover {
     color: #fff;
     background-color: #ff5b5b;
     border-color: #ff5b5b
 }
 
 .btn-outline-danger.focus,
 .btn-outline-danger:focus {
     box-shadow: 0 0 0 .15rem rgba(255, 91, 91, .5)
 }
 
 .btn-outline-danger.disabled,
 .btn-outline-danger:disabled {
     color: #ff5b5b;
     background-color: transparent
 }
 
 .btn-outline-danger:not(:disabled):not(.disabled).active,
 .btn-outline-danger:not(:disabled):not(.disabled):active,
 .show>.btn-outline-danger.dropdown-toggle {
     color: #fff;
     background-color: #ff5b5b;
     border-color: #ff5b5b
 }
 
 .btn-outline-danger:not(:disabled):not(.disabled).active:focus,
 .btn-outline-danger:not(:disabled):not(.disabled):active:focus,
 .show>.btn-outline-danger.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(255, 91, 91, .5)
 }
 
 .btn-outline-light {
     color: #323a46;
     border-color: #323a46
 }
 
 .btn-outline-light:hover {
     color: #fff;
     background-color: #323a46;
     border-color: #323a46
 }
 
 .btn-outline-light.focus,
 .btn-outline-light:focus {
     box-shadow: 0 0 0 .15rem rgba(50, 58, 70, .5)
 }
 
 .btn-outline-light.disabled,
 .btn-outline-light:disabled {
     color: #323a46;
     background-color: transparent
 }
 
 .btn-outline-light:not(:disabled):not(.disabled).active,
 .btn-outline-light:not(:disabled):not(.disabled):active,
 .show>.btn-outline-light.dropdown-toggle {
     color: #fff;
     background-color: #323a46;
     border-color: #323a46
 }
 
 .btn-outline-light:not(:disabled):not(.disabled).active:focus,
 .btn-outline-light:not(:disabled):not(.disabled):active:focus,
 .show>.btn-outline-light.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(50, 58, 70, .5)
 }
 
 .btn-outline-dark {
     color: #f1f5f7;
     border-color: #f1f5f7
 }
 
 .btn-outline-dark:hover {
     color: #f7f7f7;
     background-color: #f1f5f7;
     border-color: #f1f5f7
 }
 
 .btn-outline-dark.focus,
 .btn-outline-dark:focus {
     box-shadow: 0 0 0 .15rem rgba(241, 245, 247, .5)
 }
 
 .btn-outline-dark.disabled,
 .btn-outline-dark:disabled {
     color: #f1f5f7;
     background-color: transparent
 }
 
 .btn-outline-dark:not(:disabled):not(.disabled).active,
 .btn-outline-dark:not(:disabled):not(.disabled):active,
 .show>.btn-outline-dark.dropdown-toggle {
     color: #f7f7f7;
     background-color: #f1f5f7;
     border-color: #f1f5f7
 }
 
 .btn-outline-dark:not(:disabled):not(.disabled).active:focus,
 .btn-outline-dark:not(:disabled):not(.disabled):active:focus,
 .show>.btn-outline-dark.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(241, 245, 247, .5)
 }
 
 .btn-outline-pink {
     color: #ff8acc;
     border-color: #ff8acc
 }
 
 .btn-outline-pink:hover {
     color: #f7f7f7;
     background-color: #ff8acc;
     border-color: #ff8acc
 }
 
 .btn-outline-pink.focus,
 .btn-outline-pink:focus {
     box-shadow: 0 0 0 .15rem rgba(255, 138, 204, .5)
 }
 
 .btn-outline-pink.disabled,
 .btn-outline-pink:disabled {
     color: #ff8acc;
     background-color: transparent
 }
 
 .btn-outline-pink:not(:disabled):not(.disabled).active,
 .btn-outline-pink:not(:disabled):not(.disabled):active,
 .show>.btn-outline-pink.dropdown-toggle {
     color: #f7f7f7;
     background-color: #ff8acc;
     border-color: #ff8acc
 }
 
 .btn-outline-pink:not(:disabled):not(.disabled).active:focus,
 .btn-outline-pink:not(:disabled):not(.disabled):active:focus,
 .show>.btn-outline-pink.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(255, 138, 204, .5)
 }
 
 .btn-outline-purple {
     color: #5b69bc;
     border-color: #5b69bc
 }
 
 .btn-outline-purple:hover {
     color: #fff;
     background-color: #5b69bc;
     border-color: #5b69bc
 }
 
 .btn-outline-purple.focus,
 .btn-outline-purple:focus {
     box-shadow: 0 0 0 .15rem rgba(91, 105, 188, .5)
 }
 
 .btn-outline-purple.disabled,
 .btn-outline-purple:disabled {
     color: #5b69bc;
     background-color: transparent
 }
 
 .btn-outline-purple:not(:disabled):not(.disabled).active,
 .btn-outline-purple:not(:disabled):not(.disabled):active,
 .show>.btn-outline-purple.dropdown-toggle {
     color: #fff;
     background-color: #5b69bc;
     border-color: #5b69bc
 }
 
 .btn-outline-purple:not(:disabled):not(.disabled).active:focus,
 .btn-outline-purple:not(:disabled):not(.disabled):active:focus,
 .show>.btn-outline-purple.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(91, 105, 188, .5)
 }
 
 .btn-outline-blue {
     color: #71b6f9;
     border-color: #71b6f9
 }
 
 .btn-outline-blue:hover {
     color: #fff;
     background-color: #71b6f9;
     border-color: #71b6f9
 }
 
 .btn-outline-blue.focus,
 .btn-outline-blue:focus {
     box-shadow: 0 0 0 .15rem rgba(113, 182, 249, .5)
 }
 
 .btn-outline-blue.disabled,
 .btn-outline-blue:disabled {
     color: #71b6f9;
     background-color: transparent
 }
 
 .btn-outline-blue:not(:disabled):not(.disabled).active,
 .btn-outline-blue:not(:disabled):not(.disabled):active,
 .show>.btn-outline-blue.dropdown-toggle {
     color: #fff;
     background-color: #71b6f9;
     border-color: #71b6f9
 }
 
 .btn-outline-blue:not(:disabled):not(.disabled).active:focus,
 .btn-outline-blue:not(:disabled):not(.disabled):active:focus,
 .show>.btn-outline-blue.dropdown-toggle:focus {
     box-shadow: 0 0 0 .15rem rgba(113, 182, 249, .5)
 }
 
 .btn-label {
     margin: -.55rem .9rem -.55rem -.9rem;
     padding: .6rem .9rem;
     background-color: rgba(241, 245, 247, .1)
 }
 
 .btn-label-right {
     margin: -.55rem -.9rem -.55rem .9rem;
     padding: .6rem .9rem;
     background-color: rgba(241, 245, 247, .1)
 }
 
 .btn-xs {
     padding: .2rem .6rem;
     font-size: .75rem;
     border-radius: .15rem
 }
 
 .btn-bordred-primary {
     background-color: #71b6f9;
     color: #fff!important;
     border-bottom: 2px solid #4fa4f8
 }
 
 .btn-bordred-secondary {
     background-color: #6c757d;
     color: #fff!important;
     border-bottom: 2px solid #5b636a
 }
 
 .btn-bordred-success {
     background-color: #10c469;
     color: #fff!important;
     border-bottom: 2px solid #0da357
 }
 
 .btn-bordred-info {
     background-color: #35b8e0;
     color: #fff!important;
     border-bottom: 2px solid #20a8d1
 }
 
 .btn-bordred-warning {
     background-color: #f9c851;
     color: #fff!important;
     border-bottom: 2px solid #f8bd2e
 }
 
 .btn-bordred-danger {
     background-color: #ff5b5b;
     color: #fff!important;
     border-bottom: 2px solid #ff3737
 }
 
 .btn-bordred-light {
     background-color: #323a46;
     color: #fff!important;
     border-bottom: 2px solid #232931
 }
 
 .btn-bordred-dark {
     background-color: #f1f5f7;
     color: #fff!important;
     border-bottom: 2px solid #dae5ea
 }
 
 .btn-bordred-pink {
     background-color: #ff8acc;
     color: #fff!important;
     border-bottom: 2px solid #ff66bc
 }
 
 .btn-bordred-purple {
     background-color: #5b69bc;
     color: #fff!important;
     border-bottom: 2px solid #4755ad
 }
 
 .btn-bordred-blue {
     background-color: #71b6f9;
     color: #fff!important;
     border-bottom: 2px solid #4fa4f8
 }
 
 .btn-bordred-dark {
     color: #323a46!important
 }
 
 .btn-lighten-primary {
     border: 1px solid rgba(113, 182, 249, .2)!important;
     background-color: rgba(113, 182, 249, .25)!important;
     color: #71b6f9!important
 }
 
 .btn-lighten-secondary {
     border: 1px solid rgba(108, 117, 125, .2)!important;
     background-color: rgba(108, 117, 125, .25)!important;
     color: #6c757d!important
 }
 
 .btn-lighten-success {
     border: 1px solid rgba(16, 196, 105, .2)!important;
     background-color: rgba(16, 196, 105, .25)!important;
     color: #10c469!important
 }
 
 .btn-lighten-info {
     border: 1px solid rgba(53, 184, 224, .2)!important;
     background-color: rgba(53, 184, 224, .25)!important;
     color: #35b8e0!important
 }
 
 .btn-lighten-warning {
     border: 1px solid rgba(249, 200, 81, .2)!important;
     background-color: rgba(249, 200, 81, .25)!important;
     color: #f9c851!important
 }
 
 .btn-lighten-danger {
     border: 1px solid rgba(255, 91, 91, .2)!important;
     background-color: rgba(255, 91, 91, .25)!important;
     color: #ff5b5b!important
 }
 
 .btn-lighten-light {
     border: 1px solid rgba(50, 58, 70, .2)!important;
     background-color: rgba(50, 58, 70, .25)!important;
     color: #323a46!important
 }
 
 .btn-lighten-dark {
     border: 1px solid rgba(241, 245, 247, .2)!important;
     background-color: rgba(241, 245, 247, .25)!important;
     color: #f1f5f7!important
 }
 
 .btn-lighten-pink {
     border: 1px solid rgba(255, 138, 204, .2)!important;
     background-color: rgba(255, 138, 204, .25)!important;
     color: #ff8acc!important
 }
 
 .btn-lighten-purple {
     border: 1px solid rgba(91, 105, 188, .2)!important;
     background-color: rgba(91, 105, 188, .25)!important;
     color: #5b69bc!important
 }
 
 .btn-lighten-blue {
     border: 1px solid rgba(113, 182, 249, .2)!important;
     background-color: rgba(113, 182, 249, .25)!important;
     color: #71b6f9!important
 }
 
 .card {
     margin-bottom: 24px;
     box-shadow: 0 .75rem 6rem rgba(56, 65, 74, .03)
 }
 
 .card .card-drop {
     font-size: 20px;
     line-height: 0;
     color: inherit
 }
 
 .card-widgets {
     float: right;
     height: 16px
 }
 
 .card-widgets>a {
     color: inherit;
     font-size: 18px;
     display: inline-block;
     line-height: 1
 }
 
 .card-widgets>a.collapsed i:before {
     content: "\F415"
 }
 
 .card-header,
 .card-title {
     margin-top: 0
 }
 
 .card-disabled {
     position: absolute;
     left: 0;
     right: 0;
     top: 0;
     bottom: 0;
     border-radius: .25rem;
     background: rgba(255, 255, 255, .8);
     cursor: progress
 }
 
 .card-disabled .card-portlets-loader {
     background-color: #f1f5f7;
     animation: rotatebox 1.2s infinite ease-in-out;
     height: 30px;
     width: 30px;
     position: absolute;
     left: 50%;
     top: 50%;
     margin-left: -12px;
     margin-top: -12px
 }
 
 @keyframes rotatebox {
     0% {
         transform: perspective(120px) rotateX(0) rotateY(0)
     }
     50% {
         transform: perspective(120px) rotateX(-180.1deg) rotateY(0)
     }
     100% {
         transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg)
     }
 }
 
 .card-box {
     background-color: #323a46;
     padding: 1.5rem;
     box-shadow: 0 .75rem 6rem rgba(56, 65, 74, .03);
     margin-bottom: 24px;
     border-radius: .25rem
 }
 
 .card-box .card-drop {
     color: #adb5bd;
     font-size: 20px;
     display: inline-block;
     line-height: 1px
 }
 
 .header-title {
     font-size: 1rem;
     margin: 0 0 7px 0
 }
 
 .sub-header {
     font-size: .875rem;
     margin-bottom: 24px;
     color: #adb5bd
 }
 
 @media (min-width:576px) {
     .card-deck {
         margin-right: -12px;
         margin-left: -12px
     }
     .card-deck .card {
         margin-right: 12px;
         margin-left: 12px
     }
 }
 
 .card-draggable-placeholder {
     border: 2px dashed rgba(241, 245, 247, .1);
     margin-bottom: 16px;
     background-color: rgba(241, 245, 247, .06)
 }
 
 .dropdown-menu {
     box-shadow: 0 0 35px 0 rgba(54, 61, 71, .15);
     animation-name: DropDownSlide;
     animation-duration: .3s;
     animation-fill-mode: both;
     margin: 0;
     font-size: .9rem;
     position: absolute;
     z-index: 1000
 }
 
 .dropdown-menu.show {
     top: 100%!important
 }
 
 .dropdown-divider {
     border-color: #3b4452
 }
 
 .dropdown-menu-right {
     right: 0!important;
     left: auto!important
 }
 
 .dropdown-menu[x-placement^=left],
 .dropdown-menu[x-placement^=right],
 .dropdown-menu[x-placement^=top] {
     top: auto!important;
     animation: none!important
 }
 
 @keyframes DropDownSlide {
     100% {
         transform: translateY(0)
     }
     0% {
         transform: translateY(40px)
     }
 }
 
 .dropdown-lg {
     width: 320px
 }
 
 @media (max-width:767.98px) {
     .dropdown-lg {
         width: 200px!important
     }
 }
 
 .form-control-light {
     background-color: #323a46;
     border-color: #323a46
 }
 
 input.form-control[type=color],
 input.form-control[type=range] {
     min-height: 39px
 }
 
 .custom-select.is-invalid:focus,
 .custom-select.is-valid:focus,
 .custom-select:invalid:focus,
 .custom-select:valid:focus,
 .form-control.is-invalid:focus,
 .form-control.is-valid:focus,
 .form-control:invalid:focus,
 .form-control:valid:focus {
     box-shadow: none!important
 }
 
 .comment-area-box .form-control {
     border-color: #6c757d;
     border-radius: .2rem .2rem 0 0
 }
 
 .comment-area-box .comment-area-btn {
     background-color: #323a46;
     padding: 10px;
     border: 1px solid #6c757d;
     border-top: none;
     border-radius: 0 0 .2rem .2rem
 }
 
 .modal-title {
     margin-top: 0
 }
 
 .modal-full {
     width: 92%;
     max-width: none
 }
 
 .modal-demo {
     width: 600px!important;
     border-radius: 4px;
     display: none;
     position: relative;
     overflow: hidden
 }
 
 .modal-demo .close {
     position: absolute;
     top: 15px;
     right: 25px;
     color: #f1f5f7
 }
 
 @media (max-width:768px) {
     .modal-demo {
         width: 96%!important
     }
 }
 
 .custom-modal-title {
     padding: 15px 25px 15px 25px;
     line-height: 22px;
     font-size: 18px;
     background-color: #71b6f9;
     color: #fff;
     text-align: left;
     margin: 0
 }
 
 .custom-modal-text {
     padding: 20px;
     background-color: #3b4452
 }
 
 .custombox-modal-wrapper {
     text-align: left
 }
 
 .custombox-modal-flash .close,
 .custombox-modal-rotatedown .close {
     top: 20px;
     z-index: 9999
 }
 
 .nav-pills>li>a,
 .nav-tabs>li>a {
     color: #dee2e6;
     font-weight: 500
 }
 
 .nav-pills>a {
     color: #dee2e6;
     font-weight: 500
 }
 
 .tab-content {
     padding: 20px;
     border: 2px solid #3b4452;
     border-top: none
 }
 
 .popover-header {
     margin-top: 0;
     color: #323a46
 }
 
 .progress-sm {
     height: 5px!important
 }
 
 .progress-md {
     height: 8px!important
 }
 
 .progress-lg {
     height: 12px!important
 }
 
 .progress-xl {
     height: 15px
 }
 
 .progress {
     margin-top: 18px
 }
 
 .progress-animated {
     animation-duration: 5s;
     animation-name: animationProgress;
     transition: 5s all
 }
 
 .progress-bar-alt-primary {
     background-color: rgba(113, 182, 249, .2)
 }
 
 .progress-bar-alt-secondary {
     background-color: rgba(108, 117, 125, .2)
 }
 
 .progress-bar-alt-success {
     background-color: rgba(16, 196, 105, .2)
 }
 
 .progress-bar-alt-info {
     background-color: rgba(53, 184, 224, .2)
 }
 
 .progress-bar-alt-warning {
     background-color: rgba(249, 200, 81, .2)
 }
 
 .progress-bar-alt-danger {
     background-color: rgba(255, 91, 91, .2)
 }
 
 .progress-bar-alt-light {
     background-color: rgba(50, 58, 70, .2)
 }
 
 .progress-bar-alt-dark {
     background-color: rgba(241, 245, 247, .2)
 }
 
 .progress-bar-alt-pink {
     background-color: rgba(255, 138, 204, .2)
 }
 
 .progress-bar-alt-purple {
     background-color: rgba(91, 105, 188, .2)
 }
 
 .progress-bar-alt-blue {
     background-color: rgba(113, 182, 249, .2)
 }
 
 @keyframes animationProgress {
     from {
         width: 0
     }
 }
 
 label {
     font-weight: 500;
     color: #f1f5f7
 }
 
 button:focus {
     outline: 0
 }
 
 pre {
     background-color: #3b4452;
     border: 1px solid #434e5e;
     padding: 7px
 }
 
 .blockquote {
     padding: 10px 20px;
     margin-bottom: 20px;
     border-left: 4px solid #3b4452;
     font-size: 16px
 }
 
 .blockquote.blockquote-reverse {
     border-left: 0;
     border-right: 4px solid #3b4452;
     text-align: right
 }
 
 dt {
     font-weight: 500
 }
 
 .table-centered td,
 .table-centered th {
     vertical-align: middle!important
 }
 
 .h1,
 .h2,
 .h3,
 .h4,
 .h5,
 .h6,
 h1,
 h2,
 h3,
 h4,
 h5,
 h6 {
     margin: 10px 0;
     font-weight: 600;
     font-family: Karla, sans-serif;
     color: #f7f7f7
 }
 
 .font-12 {
     font-size: 12px
 }
 
 .font-13 {
     font-size: 13px!important
 }
 
 .font-14 {
     font-size: 14px!important
 }
 
 .font-15 {
     font-size: 15px!important
 }
 
 .font-16 {
     font-size: 16px!important
 }
 
 .font-17 {
     font-size: 17px!important
 }
 
 .font-18 {
     font-size: 18px!important
 }
 
 .font-19 {
     font-size: 19px!important
 }
 
 .font-20 {
     font-size: 20px!important
 }
 
 .font-22 {
     font-size: 22px!important
 }
 
 .font-24 {
     font-size: 24px!important
 }

/*!**************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[2]!./src/assets/css/app.min.css?ngGlobalStyle (2) ***!
  \**************************************************************************************************************************************************************************************************************************************/
html {
    position: relative;
    min-height: 100%
}

/* Body Scrollbar */

body {
    /* padding-bottom: 60px; */
    overflow-x: hidden
}

body::-webkit-scrollbar {
    width: .8em;
}

body::-webkit-scrollbar-track {
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
}
 
body::-webkit-scrollbar-thumb {
    background-color: #f3f3f3;
    outline: 1px solid #f3f3f3;
}

body::-webkit-scrollbar-thumb:horizontal{
    background-color: #f3f3f3;
    outline: 1px solid #f3f3f3;
}

/* Body Scrollbar */

/* Inbox Widget Scrollbar */

.inbox-widget {
    padding-bottom: 60px;
    overflow-x: hidden
}

.inbox-widget::-webkit-scrollbar {
    width: .6em;
}

.inbox-widget::-webkit-scrollbar-track {
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
}
 
.inbox-widget::-webkit-scrollbar-thumb {
    background-color: #f3f3f3;
    outline: 1px solid #f3f3f3;
}

.inbox-widget::-webkit-scrollbar-thumb:horizontal{
    background-color: #f3f3f3;
    outline: 1px solid #f3f3f3;
}

/* Inbox Widget Scrollbar */

/* Mat Dialog Container */

.mat-dialog-container {
    padding-bottom: 0px;
    overflow-x: hidden
}

.mat-dialog-container::-webkit-scrollbar {
    width: .6em;
}

.mat-dialog-container::-webkit-scrollbar-track {
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
}
 
.mat-dialog-container::-webkit-scrollbar-thumb {
    background-color: #f3f3f3;
    outline: 1px solid #f3f3f3;
}

.mat-dialog-container::-webkit-scrollbar-thumb:horizontal{
    background-color: #f3f3f3;
    outline: 1px solid #f3f3f3;
}
/* Mat Dialog Container */

.metismenu {
    padding: 0
}

.metismenu li {
    list-style: none
}

.metismenu ul {
    padding: 0
}

.metismenu ul li {
    width: 100%
}

.nav-second-level li a,
.nav-thrid-level li a {
    padding: 8px 20px;
    color: #eaeaea;
    display: block;
    position: relative;
    transition: all .4s
}

.nav-second-level li a:focus,
.nav-second-level li a:hover,
.nav-thrid-level li a:focus,
.nav-thrid-level li a:hover {
    color: #ffffff
}

.nav-second-level li.active>a,
.nav-third-level li.active>a {
    color: #71b6f9
}

#wrapper {
    height: 100%;
    overflow: hidden;
    width: 100%
}

.content-page {
    margin-left: 240px;
    overflow: hidden;
    background-color: transparent;
    padding: 8px 12px 45px 12px;
    min-height: 86vh;
    margin-top: 20px
}

.left-side-menu {
    width: 240px;
    background: transparent;
    bottom: 0;
    padding: 20px 0;
    position: fixed;
    transition: all .2s ease-out;
    top: 70px;
    box-shadow: 0 0 24px 0 rgba(0, 0, 0, .06), 0 1px 0 0 rgba(0, 0, 0, .02);
    z-index: 99;
    overflow-y: scroll;
}

.left-side-menu .user-box .img-thumbnail {
    background-color: #fff;
    border-color: #e4ecf0
}

.left-side-menu .user-box a.text-dark {
    color: #323a46!important
}

#sidebar-menu>ul>li>a {
    color: #b2b8b9;
    display: block;
    padding: 13px 20px;
    position: relative;
    transition: all .4s;
    font-size: .925rem
}

#sidebar-menu>ul>li>a:active,
#sidebar-menu>ul>li>a:focus,
#sidebar-menu>ul>li>a:hover {
    color: #ffffff;
    text-decoration: none
}

#sidebar-menu>ul>li>a>span {
    vertical-align: middle
}

#sidebar-menu>ul>li>a i {
    display: inline-block;
    line-height: 1.0625rem;
    margin: 0 10px 0 3px;
    text-align: center;
    vertical-align: middle;
    width: 20px
}

#sidebar-menu>ul>li>a .drop-arrow {
    float: right
}

#sidebar-menu>ul>li>a .drop-arrow i {
    margin-right: 0
}

#sidebar-menu>ul>li>a.active {
    color: #71b6f9
}

#sidebar-menu>ul>li>ul {
    padding-left: 40px
}

#sidebar-menu>ul>li>ul ul {
    padding-left: 20px
}

#sidebar-menu .menu-arrow {
    transition: transform .15s;
    position: absolute;
    right: 20px;
    display: inline-block;
    font-family: 'Material Design Icons';
    text-rendering: auto;
    line-height: 1.5rem;
    font-size: 1.1rem;
    transform: translate(0, 0)
}

#sidebar-menu .menu-arrow:before {
    content: "\F142"
}

#sidebar-menu .badge {
    margin-top: 4px
}

#sidebar-menu li.active>a>span.menu-arrow {
    transform: rotate(90deg)
}

#sidebar-menu .menu-title {
    padding: 10px 20px;
    letter-spacing: .05em;
    pointer-events: none;
    cursor: default;
    font-size: .6875rem;
    text-transform: uppercase;
    color: #adb5bd;
    font-weight: 500
}

.enlarged .logo-box {
    width: 70px!important
}

.enlarged .logo span.logo-lg {
    display: none
}

.enlarged .logo span.logo-sm {
    display: block
}

.enlarged .left-side-menu {
    position: absolute;
    padding-top: 0;
    width: 70px!important;
    z-index: 9
}

.enlarged .left-side-menu .slimScrollDiv,
.enlarged .left-side-menu .slimscroll-menu {
    overflow: inherit!important;
    height: auto!important
}

.enlarged .left-side-menu .slimScrollBar {
    visibility: hidden
}

.enlarged .left-side-menu .user-box {
    display: none
}

.enlarged .left-side-menu #sidebar-menu .badge,
.enlarged .left-side-menu #sidebar-menu .collapse.in,
.enlarged .left-side-menu #sidebar-menu .label,
.enlarged .left-side-menu #sidebar-menu .menu-arrow,
.enlarged .left-side-menu #sidebar-menu .menu-title {
    display: none!important
}

.enlarged .left-side-menu #sidebar-menu .nav.collapse {
    height: inherit!important
}

.enlarged .left-side-menu #sidebar-menu>ul>li {
    position: relative;
    white-space: nowrap
}

.enlarged .left-side-menu #sidebar-menu>ul>li>a {
    padding: 15px 20px;
    min-height: 54px
}

.enlarged .left-side-menu #sidebar-menu>ul>li>a:active,
.enlarged .left-side-menu #sidebar-menu>ul>li>a:focus,
.enlarged .left-side-menu #sidebar-menu>ul>li>a:hover {
    color: #71b6f9
}

.enlarged .left-side-menu #sidebar-menu>ul>li>a i {
    font-size: 1.125rem;
    margin-right: 20px
}

.enlarged .left-side-menu #sidebar-menu>ul>li>a span {
    display: none;
    padding-left: 25px
}

.enlarged .left-side-menu #sidebar-menu>ul>li:hover>a {
    position: relative;
    width: calc(190px + 70px);
    color: #71b6f9;
    background-color: #fafafa;
    transition: none
}

.enlarged .left-side-menu #sidebar-menu>ul>li:hover>a span {
    display: inline
}

.enlarged .left-side-menu #sidebar-menu>ul>li:hover a.active:after,
.enlarged .left-side-menu #sidebar-menu>ul>li:hover a.open:after {
    display: none
}

.enlarged .left-side-menu #sidebar-menu>ul>li:hover>ul {
    display: block;
    left: 70px;
    position: absolute;
    width: 190px;
    height: auto!important;
    box-shadow: 3px 5px 10px 0 rgba(154, 161, 171, .2)
}

.enlarged .left-side-menu #sidebar-menu>ul>li:hover>ul ul {
    box-shadow: 3px 5px 10px 0 rgba(154, 161, 171, .2)
}

.enlarged .left-side-menu #sidebar-menu>ul>li:hover>ul a {
    box-shadow: none;
    padding: 8px 20px;
    position: relative;
    width: 190px;
    z-index: 6
}

.enlarged .left-side-menu #sidebar-menu>ul>li:hover>ul a:hover {
    color: #71b6f9
}

.enlarged .left-side-menu #sidebar-menu>ul ul {
    padding: 5px 0;
    z-index: 9999;
    background-color: #fff
}

.enlarged .left-side-menu #sidebar-menu>ul ul li:hover>ul {
    display: block;
    left: 190px;
    margin-top: -36px;
    position: absolute;
    width: 190px
}

.enlarged .left-side-menu #sidebar-menu>ul ul li>a span.pull-right {
    position: absolute;
    right: 20px;
    top: 12px;
    transform: rotate(270deg)
}

.enlarged .left-side-menu #sidebar-menu>ul ul li.active a {
    color: #71b6f9
}

.enlarged .content-page {
    margin-left: 70px!important
}

.enlarged .footer {
    left: 70px!important
}

body.enlarged {
    min-height: 1200px
}

@media (max-width:767.98px) {
    body {
        overflow-x: hidden;
        padding-bottom: 80px
    }
    .left-side-menu {
        display: none;
        z-index: 10!important
    }
    .sidebar-enable .left-side-menu {
        display: block
    }
    .content-page,
    .enlarged .content-page {
        margin-left: 0!important;
        padding: 0 10px
    }
    .pro-user-name {
        display: none
    }
    .logo-box {
        display: none
    }
}

.left-side-menu-sm .logo-box {
    width: 160px
}

.left-side-menu-sm .left-side-menu {
    width: 160px;
    text-align: center
}

.left-side-menu-sm .left-side-menu #sidebar-menu>ul>li>a>i {
    display: block;
    font-size: 18px;
    line-height: 24px;
    width: 100%;
    margin: 0
}

.left-side-menu-sm .left-side-menu #sidebar-menu>ul ul {
    padding-left: 0
}

.left-side-menu-sm .left-side-menu #sidebar-menu>ul ul a {
    padding: 10px 20px
}

.left-side-menu-sm .left-side-menu .badge,
.left-side-menu-sm .left-side-menu .menu-arrow {
    display: none!important
}

.left-side-menu-sm .left-side-menu+.content-page {
    margin-left: 160px
}

.left-side-menu-sm .left-side-menu+.content-page .footer {
    left: 160px
}

.left-side-menu-sm .left-side-menu .menu-title {
    background-color: #f1f5f7
}

.enlarged.left-side-menu-sm #wrapper .left-side-menu {
    text-align: left
}

.enlarged.left-side-menu-sm #wrapper .left-side-menu ul li a i {
    display: inline-block;
    font-size: 18px;
    line-height: 17px;
    margin-left: 3px;
    margin-right: 15px;
    vertical-align: middle;
    width: 20px
}

.left-side-menu-dark .logo-box {
    background-color: #323a46
}

.left-side-menu-dark .user-box .img-thumbnail {
    background-color: #3b4452;
    border-color: #434e5e
}

.left-side-menu-dark .user-box a.text-dark {
    color: #f1f5f7!important
}

.left-side-menu-dark .left-side-menu {
    background-color: #323a46;
    box-shadow: none;
    border-right: 2px solid #363f4c
}

.left-side-menu-dark .left-side-menu #sidebar-menu>ul>li>a {
    color: #eaeaea
}

.left-side-menu-dark .left-side-menu #sidebar-menu>ul>li>a:active,
.left-side-menu-dark .left-side-menu #sidebar-menu>ul>li>a:focus,
.left-side-menu-dark .left-side-menu #sidebar-menu>ul>li>a:hover {
    color: #c8cddc
}

.left-side-menu-dark .left-side-menu #sidebar-menu>ul>li>a.active {
    color: #fff;
    background-color: #3d4655;
    border-right-color: #fff
}

.left-side-menu-dark .left-side-menu #sidebar-menu .menu-title {
    color: #adb5bd
}

.left-side-menu-dark .left-side-menu .nav-second-level li a,
.left-side-menu-dark .left-side-menu .nav-thrid-level li a {
    color: #eaeaea
}

.left-side-menu-dark .left-side-menu .nav-second-level li a:focus,
.left-side-menu-dark .left-side-menu .nav-second-level li a:hover,
.left-side-menu-dark .left-side-menu .nav-thrid-level li a:focus,
.left-side-menu-dark .left-side-menu .nav-thrid-level li a:hover {
    background-color: transparent;
    color: #c8cddc
}

.left-side-menu-dark .left-side-menu .nav-second-level li.active>a,
.left-side-menu-dark .left-side-menu .nav-third-level li.active>a {
    color: #fff
}

.enlarged.left-side-menu-dark #wrapper .left-side-menu #sidebar-menu>ul>li:hover>a {
    background-color: #3d4655
}

.user-pro-dropdown {
    background-color: #323a46;
    box-shadow: none;
    padding: 15px 5px;
    width: 90%;
    margin-left: 5%;
    margin-top: 10px
}

.user-pro-dropdown .dropdown-item {
    border-radius: 3px
}

.user-pro-dropdown .dropdown-item:hover {
    background-color: #71b6f9;
    color: #fff
}

.logo {
    display: block;
    line-height: 70px
}

.logo span.logo-lg {
    display: block
}

.logo span.logo-sm {
    display: none
}

.logo .logo-lg-text-dark {
    color: #f1f5f7;
    font-weight: 700;
    font-size: 22px;
    text-transform: uppercase
}

.logo .logo-lg-text-light {
    color: #fff;
    font-weight: 700;
    font-size: 22px;
    text-transform: uppercase
}

.logo-box {
    height: 70px;
    width: 240px;
    float: left;
    background-color: transparent;
}

.navbar-custom {
    background-color: transparent;
    padding: 0 10px 0 0;
    position: fixed;
    left: 0;
    right: 0;
    height: 60px;
    z-index: 100;
    margin-left:238px
}

.navbar-custom .topnav-menu>li {
    float: left
}

.navbar-custom .topnav-menu .nav-link {
    padding: 0 15px;
    color: #dee2e6;
    min-width: 32px;
    display: block;
    line-height: 70px;
    text-align: center;
    max-height: 70px
}

.navbar-custom .dropdown.show .nav-link {
    background-color: rgba(222, 226, 230, .05)
}

.navbar-custom .app-search {
    overflow: hidden;
    height: 70px;
    display: table;
    max-width: 240px;
    margin-right: 20px
}

.navbar-custom .app-search .app-search-box {
    display: table-cell;
    vertical-align: middle
}

.navbar-custom .app-search .app-search-box input::-webkit-input-placeholder {
    font-size: .8125rem;
    color: #adb5bd
}

.navbar-custom .app-search .form-control {
    border: none;
    height: 38px;
    padding-left: 20px;
    padding-right: 0;
    color: #f1f5f7;
    background-color: rgba(222, 226, 230, .07);
    box-shadow: none;
    border-radius: 30px 0 0 30px
}

.navbar-custom .app-search .input-group-append {
    margin-left: 0;
    z-index: 4
}

.navbar-custom .app-search .btn {
    background-color: rgba(222, 226, 230, .07);
    border-color: transparent;
    color: #adb5bd;
    border-radius: 0 30px 30px 0;
    box-shadow: none!important
}

.navbar-custom .button-menu-mobile {
    border: none;
    color: #f1f5f7;
    display: inline-block;
    height: 70px;
    line-height: 70px;
    width: 60px;
    background-color: transparent;
    font-size: 24px;
    cursor: pointer
}

.navbar-custom .button-menu-mobile.disable-btn {
    display: none
}

.noti-scroll {
    max-height: 230px
}

.notification-list {
    margin-left: 0
}

.notification-list .noti-title {
    padding: 15px 20px
}

.notification-list .noti-icon {
    font-size: 21px;
    vertical-align: middle
}

.notification-list .noti-icon-badge {
    display: inline-block;
    position: absolute;
    top: 16px;
    right: 10px
}

.notification-list .notify-item {
    padding: 12px 20px
}

.notification-list .notify-item .notify-icon {
    float: left;
    height: 36px;
    width: 36px;
    font-size: 18px;
    line-height: 36px;
    text-align: center;
    margin-right: 10px;
    border-radius: 50%;
    color: #fff
}

.notification-list .notify-item .notify-details {
    margin-bottom: 5px;
    overflow: hidden;
    margin-left: 45px;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #f7f7f7
}

.notification-list .notify-item .notify-details b {
    font-weight: 500
}

.notification-list .notify-item .notify-details small {
    display: block
}

.notification-list .notify-item .notify-details span {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px
}

.notification-list .notify-item .user-msg {
    margin-left: 45px;
    white-space: normal;
    line-height: 16px
}

.notification-list .profile-dropdown .notify-item {
    padding: 7px 20px
}

.profile-dropdown {
    width: 170px
}

.profile-dropdown i {
    vertical-align: middle;
    margin-right: 5px
}

.nav-user {
    padding: 0 12px!important
}

.nav-user img {
    height: 32px;
    width: 32px
}

.navbar-custom-dark {
    background-color: #71b6f9!important
}

.navbar-custom-dark .logo-box {
    background-color: #71b6f9
}

.navbar-custom-dark .dropdown.show .nav-link {
    background-color: rgba(255, 255, 255, .03)
}

.navbar-custom-dark .button-menu-mobile {
    color: #fff
}

.navbar-custom-dark .app-search input::-webkit-input-placeholder {
    color: rgba(255, 255, 255, .7)!important
}

.navbar-custom-dark .app-search .form-control {
    color: #fff;
    background-color: rgba(255, 255, 255, .15)
}

.navbar-custom-dark .app-search .btn {
    background-color: rgba(255, 255, 255, .15);
    color: rgba(255, 255, 255, .7)
}

.topbar-dark .content-page {
    margin-top: 100px
}

.page-title-main {
 
    color: #616161;
    margin-top: 1rem;
    font-size: 29px;
    margin-left: 16px;
    font-weight: 200;
    line-height: 70px;
    padding: 0 20px
}

@media (max-width:768px) {
    .button-menu-mobile.disable-btn {
        display: block!important
    }
    .page-title-main {
        display: none
    }
}

.footer {
    bottom: 0px;
    padding: 19px 15px 20px;
    position: absolute;
    right: 0;
    color: #adb5bd;
    left: 240px;
    background-color: transparent;
}

.footer .footer-links a {
    color: #adb5bd;
    margin-left: 1.5rem;
    transition: all .4s
}

.footer .footer-links a:hover {
    color: #f1f5f7
}

.footer .footer-links a:first-of-type {
    margin-left: 0
}

.footer-alt {
    left: 0!important;
    text-align: center;
    background-color: transparent
}

@media (max-width:767.98px) {
    .footer {
        left: 0!important;
        text-align: center
    }
}

.right-bar {
    background-color: #323a46;
    box-shadow: 0 0 24px 0 rgba(0, 0, 0, .06), 0 1px 0 0 rgba(0, 0, 0, .02);
    display: block;
    position: fixed;
    transition: all .2s ease-out;
    width: 260px;
    z-index: 9999;
    float: right!important;
    right: -270px;
    top: 0;
    bottom: 0
}

.right-bar .rightbar-title {
    background-color: #71b6f9;
    padding: 27px 25px;
    color: #fff
}

.right-bar .right-bar-toggle {
    background-color: #fff;
    height: 24px;
    width: 24px;
    line-height: 27px;
    color: #323a46;
    text-align: center;
    border-radius: 50%;
    margin-top: -4px
}

.right-bar .right-bar-toggle:hover {
    background-color: #fff
}

.right-bar .user-box {
    padding: 25px;
    text-align: center
}

.right-bar .user-box .user-img {
    position: relative;
    height: 64px;
    width: 64px;
    margin: 0 auto 15px auto
}

.right-bar .user-box .user-img .user-edit {
    position: absolute;
    right: -5px;
    bottom: 0;
    height: 24px;
    width: 24px;
    background-color: #fff;
    line-height: 24px;
    border-radius: 50%;
    box-shadow: 0 0 45px 0 rgba(0, 0, 0, .12)
}

.right-bar .user-box h5 {
    margin-bottom: 2px
}

.right-bar .user-box h5 a {
    color: #f1f5f7
}

.rightbar-overlay {
    background-color: rgba(241, 245, 247, .55);
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    display: none;
    z-index: 9998;
    transition: all .2s ease-out
}

.right-bar-enabled .right-bar {
    right: 0
}

.right-bar-enabled .rightbar-overlay {
    display: block
}

@media (max-width:767.98px) {
    .right-bar {
        overflow: auto
    }
    .right-bar .slimscroll-menu {
        height: auto!important
    }
}

body.boxed-layout {
    background: #dee2e6
}

body.boxed-layout #wrapper {
    max-width: 1300px;
    margin: 0 auto;
    box-shadow: 0 0 35px 0 rgba(54, 61, 71, .15);
    background: #282e38
}

body.boxed-layout .navbar-custom {
    max-width: 1300px;
    margin: 0 auto
}

body.boxed-layout .footer {
    margin: 0 auto;
    max-width: calc(1300px - 240px)
}

body.boxed-layout.enlarged .footer {
    max-width: calc(1300px - 70px)
}

.width-xs {
    min-width: 80px
}

.width-sm {
    min-width: 100px
}

.width-md {
    min-width: 120px
}

.width-lg {
    min-width: 140px
}

.width-xl {
    min-width: 160px
}

.font-family-secondary {
    font-family: Karla, sans-serif
}

.font-weight-medium {
    font-weight: 500
}

.avatar-xs {
    height: 1.5rem;
    width: 1.5rem
}

.avatar-sm {
    height: 2.25rem;
    width: 2.25rem
}

.avatar-md {
    height: 3.5rem;
    width: 3.5rem
}

.avatar-lg {
    height: 4.5rem;
    width: 4.5rem
}

.avatar-xl {
    height: 6rem;
    width: 6rem
}

.avatar-xxl {
    height: 7.5rem;
    width: 7.5rem
}

.avatar-title {
    align-items: center;
    color: #fff;
    display: flex;
    height: 100%;
    justify-content: center;
    width: 100%
}

.avatar-group {
    padding-left: 12px
}

.avatar-group .avatar-group-item {
    margin: 0 0 10px -12px;
    display: inline-block;
    border: 2px solid #3b4452;
    border-radius: 50%
}

.sp-line-1,
.sp-line-2,
.sp-line-3,
.sp-line-4 {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-box-orient: vertical
}

.sp-line-1 {
    -webkit-line-clamp: 1
}

.sp-line-2 {
    -webkit-line-clamp: 2
}

.sp-line-3 {
    -webkit-line-clamp: 3
}

.sp-line-4 {
    -webkit-line-clamp: 4
}

.social-list-item {
    height: 2rem;
    width: 2rem;
    line-height: calc(2rem - 2px);
    display: block;
    border: 2px solid #adb5bd;
    border-radius: 50%;
    color: #adb5bd;
    text-align: center
}

.widget-box-2 .widget-detail-2 .badge {
    padding: 5px 10px
}

.inbox-widget .inbox-item {
    border-bottom: 1px solid #666666;
    overflow: hidden;
    padding: .75rem 0;
    position: relative
}

.inbox-widget .inbox-item:last-child {
    border: none
}

.inbox-widget .inbox-item .inbox-item-img {
    display: block;
    float: left;
    margin-right: 15px;
    width: 40px
}

.inbox-widget .inbox-item .inbox-item-img img {
    width: 40px
}

.inbox-widget .inbox-item .inbox-item-author {
    color: #b2b8b9;
    display: block;
    margin-bottom: 3px
}

.inbox-widget .inbox-item .inbox-item-text {
    color: #adb5bd;
    display: block;
    font-size: .8125rem;
    margin: 0;
    overflow: hidden
}

.inbox-widget .inbox-item .inbox-item-date {
    color: #adb5bd;
    font-size: 0.7875rem;
    position: absolute;
    right: 5px;
    top: 5px
}

.checkbox label {
    display: inline-block;
    padding-left: 8px;
    position: relative;
    font-weight: 400
}

.checkbox label::before {
    -o-transition: .3s ease-in-out;
    -webkit-transition: .3s ease-in-out;
    background-color: #323a46;
    border-radius: 3px;
    border: 2px solid #6c757d;
    content: "";
    display: inline-block;
    height: 18px;
    left: 0;
    margin-left: -18px;
    position: absolute;
    transition: .3s ease-in-out;
    width: 18px;
    outline: 0!important;
    top: 2px
}

.checkbox label::after {
    color: #dee2e6;
    display: inline-block;
    font-size: 11px;
    height: 18px;
    left: 0;
    margin-left: -18px;
    padding-left: 3px;
    padding-top: 2px;
    position: absolute;
    top: 0;
    width: 18px
}

.checkbox input[type=checkbox] {
    cursor: pointer;
    opacity: 0;
    z-index: 1;
    outline: 0!important
}

.checkbox input[type=checkbox]:disabled+label {
    opacity: .65
}

.checkbox input[type=checkbox]:focus+label::before {
    outline-offset: -2px;
    outline: 0
}

.checkbox input[type=checkbox]:checked+label::after {
    content: "";
    position: absolute;
    top: 6px;
    left: 7px;
    display: table;
    width: 4px;
    height: 8px;
    border: 2px solid #dee2e6;
    border-top-width: 0;
    border-left-width: 0;
    transform: rotate(45deg)
}

.checkbox input[type=checkbox]:disabled+label::before {
    background-color: #323a46;
    cursor: not-allowed
}

.checkbox.checkbox-circle label::before {
    border-radius: 50%
}

.checkbox.checkbox-inline {
    margin-top: 0
}

.checkbox.checkbox-single input {
    height: 18px;
    width: 18px;
    position: absolute
}

.checkbox.checkbox-single label {
    height: 18px;
    width: 18px
}

.checkbox.checkbox-single label:before {
    margin-left: 0
}

.checkbox.checkbox-single label:after {
    margin-left: 0
}

.checkbox-primary input[type=checkbox]:checked+label::before {
    background-color: #71b6f9;
    border-color: #71b6f9
}

.checkbox-primary input[type=checkbox]:checked+label::after {
    border-color: #fff
}

.checkbox-secondary input[type=checkbox]:checked+label::before {
    background-color: #6c757d;
    border-color: #6c757d
}

.checkbox-secondary input[type=checkbox]:checked+label::after {
    border-color: #fff
}

.checkbox-success input[type=checkbox]:checked+label::before {
    background-color: #10c469;
    border-color: #10c469
}

.checkbox-success input[type=checkbox]:checked+label::after {
    border-color: #fff
}

.checkbox-info input[type=checkbox]:checked+label::before {
    background-color: #35b8e0;
    border-color: #35b8e0
}

.checkbox-info input[type=checkbox]:checked+label::after {
    border-color: #fff
}

.checkbox-warning input[type=checkbox]:checked+label::before {
    background-color: #f9c851;
    border-color: #f9c851
}

.checkbox-warning input[type=checkbox]:checked+label::after {
    border-color: #fff
}

.checkbox-danger input[type=checkbox]:checked+label::before {
    background-color: #ea4426;
    border-color: #ea4426
}

.checkbox-danger input[type=checkbox]:checked+label::after {
    border-color: #fff
}

.checkbox-light input[type=checkbox]:checked+label::before {
    background-color: #323a46;
    border-color: #323a46
}

.checkbox-light input[type=checkbox]:checked+label::after {
    border-color: #fff
}

.checkbox-dark input[type=checkbox]:checked+label::before {
    background-color: #f1f5f7;
    border-color: #f1f5f7
}

.checkbox-dark input[type=checkbox]:checked+label::after {
    border-color: #fff
}

.checkbox-pink input[type=checkbox]:checked+label::before {
    background-color: #ff8acc;
    border-color: #ff8acc
}

.checkbox-pink input[type=checkbox]:checked+label::after {
    border-color: #fff
}

.checkbox-purple input[type=checkbox]:checked+label::before {
    background-color: #5b69bc;
    border-color: #5b69bc
}

.checkbox-purple input[type=checkbox]:checked+label::after {
    border-color: #fff
}

.checkbox-blue input[type=checkbox]:checked+label::before {
    background-color: #71b6f9;
    border-color: #71b6f9
}

.checkbox-blue input[type=checkbox]:checked+label::after {
    border-color: #fff
}

.checkbox-dark input[type=checkbox]:checked+label::after {
    border-color: #323a46
}

.radio label {
    display: inline-block;
    padding-left: 8px;
    position: relative;
    font-weight: 400
}

.radio label::before {
    -o-transition: border .5s ease-in-out;
    -webkit-transition: border .5s ease-in-out;
    background-color: #323a46;
    border-radius: 50%;
    border: 2px solid #6c757d;
    content: "";
    display: inline-block;
    height: 18px;
    left: 0;
    margin-left: -18px;
    position: absolute;
    transition: border .5s ease-in-out;
    width: 18px;
    outline: 0!important;
    top: 2px
}

.radio label::after {
    -moz-transition: -moz-transform .1s cubic-bezier(.8, -.33, .2, 1.33);
    -ms-transform: scale(0, 0);
    -o-transform: scale(0, 0);
    -o-transition: -o-transform .1s cubic-bezier(.8, -.33, .2, 1.33);
    -webkit-transform: scale(0, 0);
    -webkit-transition: -webkit-transform .1s cubic-bezier(.8, -.33, .2, 1.33);
    background-color: #dee2e6;
    border-radius: 50%;
    content: " ";
    display: inline-block;
    height: 10px;
    left: 6px;
    margin-left: -20px;
    position: absolute;
    top: 6px;
    transform: scale(0, 0);
    transition: transform .1s cubic-bezier(.8, -.33, .2, 1.33);
    width: 10px
}

.radio input[type=radio] {
    cursor: pointer;
    opacity: 0;
    z-index: 1;
    outline: 0!important
}

.radio input[type=radio]:disabled+label {
    opacity: .65
}

.radio input[type=radio]:focus+label::before {
    outline-offset: -2px;
    outline: 5px auto -webkit-focus-ring-color;
    outline: thin dotted
}

.radio input[type=radio]:checked+label::after {
    transform: scale(1, 1)
}

.radio input[type=radio]:disabled+label::before {
    cursor: not-allowed
}

.radio.radio-inline {
    margin-top: 0
}

.radio.radio-single label {
    height: 17px
}

.radio-primary input[type=radio]+label::after {
    background-color: #71b6f9
}

.radio-primary input[type=radio]:checked+label::before {
    border-color: #71b6f9
}

.radio-primary input[type=radio]:checked+label::after {
    background-color: #71b6f9
}

.radio-secondary input[type=radio]+label::after {
    background-color: #6c757d
}

.radio-secondary input[type=radio]:checked+label::before {
    border-color: #6c757d
}

.radio-secondary input[type=radio]:checked+label::after {
    background-color: #6c757d
}

.radio-success input[type=radio]+label::after {
    background-color: #10c469
}

.radio-success input[type=radio]:checked+label::before {
    border-color: #10c469
}

.radio-success input[type=radio]:checked+label::after {
    background-color: #10c469
}

.radio-info input[type=radio]+label::after {
    background-color: #35b8e0
}

.radio-info input[type=radio]:checked+label::before {
    border-color: #35b8e0
}

.radio-info input[type=radio]:checked+label::after {
    background-color: #35b8e0
}

.radio-warning input[type=radio]+label::after {
    background-color: #f9c851
}

.radio-warning input[type=radio]:checked+label::before {
    border-color: #f9c851
}

.radio-warning input[type=radio]:checked+label::after {
    background-color: #f9c851
}

.radio-danger input[type=radio]+label::after {
    background-color: #ea4426
}

.radio-danger input[type=radio]:checked+label::before {
    border-color: #ea4426
}

.radio-danger input[type=radio]:checked+label::after {
    background-color: #ea4426
}

.radio-light input[type=radio]+label::after {
    background-color: #323a46
}

.radio-light input[type=radio]:checked+label::before {
    border-color: #323a46
}

.radio-light input[type=radio]:checked+label::after {
    background-color: #323a46
}

.radio-dark input[type=radio]+label::after {
    background-color: #f1f5f7
}

.radio-dark input[type=radio]:checked+label::before {
    border-color: #f1f5f7
}

.radio-dark input[type=radio]:checked+label::after {
    background-color: #f1f5f7
}

.radio-pink input[type=radio]+label::after {
    background-color: #ff8acc
}

.radio-pink input[type=radio]:checked+label::before {
    border-color: #ff8acc
}

.radio-pink input[type=radio]:checked+label::after {
    background-color: #ff8acc
}

.radio-purple input[type=radio]+label::after {
    background-color: #5b69bc
}

.radio-purple input[type=radio]:checked+label::before {
    border-color: #5b69bc
}

.radio-purple input[type=radio]:checked+label::after {
    background-color: #5b69bc
}

.radio-blue input[type=radio]+label::after {
    background-color: #71b6f9
}

.radio-blue input[type=radio]:checked+label::before {
    border-color: #71b6f9
}

.radio-blue input[type=radio]:checked+label::after {
    background-color: #71b6f9
}

.ribbon-box {
    position: relative
}

.ribbon-box .ribbon {
    position: relative;
    clear: both;
    padding: 5px 12px;
    margin-bottom: 15px;
    box-shadow: 2px 5px 10px rgba(241, 245, 247, .15);
    color: #fff;
    font-size: 13px;
    font-weight: 600
}

.ribbon-box .ribbon:before {
    content: " ";
    border-style: solid;
    border-width: 10px;
    display: block;
    position: absolute;
    bottom: -10px;
    left: 0;
    margin-bottom: -10px;
    z-index: -1
}

.ribbon-box .ribbon.float-left {
    margin-left: -30px;
    border-radius: 0 3px 3px 0
}

.ribbon-box .ribbon.float-right {
    margin-right: -30px;
    border-radius: 3px 0 0 3px
}

.ribbon-box .ribbon.float-right:before {
    right: 0
}

.ribbon-box .ribbon.float-center span {
    margin: 0 auto 20px auto
}

.ribbon-box .ribbon-content {
    clear: both
}

.ribbon-box .ribbon-primary {
    background: #71b6f9
}

.ribbon-box .ribbon-primary:before {
    border-color: #409df7 transparent transparent
}

.ribbon-box .ribbon-secondary {
    background: #6c757d
}

.ribbon-box .ribbon-secondary:before {
    border-color: #545b62 transparent transparent
}

.ribbon-box .ribbon-success {
    background: #10c469
}

.ribbon-box .ribbon-success:before {
    border-color: #0c9550 transparent transparent
}

.ribbon-box .ribbon-info {
    background: #35b8e0
}

.ribbon-box .ribbon-info:before {
    border-color: #1e9dc4 transparent transparent
}

.ribbon-box .ribbon-warning {
    background: #f9c851
}

.ribbon-box .ribbon-warning:before {
    border-color: #f7b820 transparent transparent
}

.ribbon-box .ribbon-danger {
    background: #ea4426
}

.ribbon-box .ribbon-danger:before {
    border-color: #ff2828 transparent transparent
}

.ribbon-box .ribbon-light {
    background: #323a46
}

.ribbon-box .ribbon-light:before {
    border-color: #1d2128 transparent transparent
}

.ribbon-box .ribbon-dark {
    background: #f1f5f7
}

.ribbon-box .ribbon-dark:before {
    border-color: #d1dee4 transparent transparent
}

.ribbon-box .ribbon-pink {
    background: #ff8acc
}

.ribbon-box .ribbon-pink:before {
    border-color: #ff57b6 transparent transparent
}

.ribbon-box .ribbon-purple {
    background: #5b69bc
}

.ribbon-box .ribbon-purple:before {
    border-color: #4250a2 transparent transparent
}

.ribbon-box .ribbon-blue {
    background: #71b6f9
}

.ribbon-box .ribbon-blue:before {
    border-color: #409df7 transparent transparent
}

.ribbon-box .ribbon-two {
    position: absolute;
    left: -5px;
    top: -5px;
    z-index: 1;
    overflow: hidden;
    width: 75px;
    height: 75px;
    text-align: right
}

.ribbon-box .ribbon-two span {
    font-size: 13px;
    color: #fff;
    text-align: center;
    line-height: 20px;
    transform: rotate(-45deg);
    -webkit-transform: rotate(-45deg);
    width: 100px;
    display: block;
    box-shadow: 0 0 8px 0 rgba(0, 0, 0, .06), 0 1px 0 0 rgba(0, 0, 0, .02);
    position: absolute;
    top: 19px;
    left: -21px;
    font-weight: 600
}

.ribbon-box .ribbon-two span:before {
    content: "";
    position: absolute;
    left: 0;
    top: 100%;
    z-index: -1;
    border-right: 3px solid transparent;
    border-bottom: 3px solid transparent
}

.ribbon-box .ribbon-two span:after {
    content: "";
    position: absolute;
    right: 0;
    top: 100%;
    z-index: -1;
    border-left: 3px solid transparent;
    border-bottom: 3px solid transparent
}

.ribbon-box .ribbon-two-primary span {
    background: #71b6f9
}

.ribbon-box .ribbon-two-primary span:before {
    border-left: 3px solid #2890f6;
    border-top: 3px solid #2890f6
}

.ribbon-box .ribbon-two-primary span:after {
    border-right: 3px solid #2890f6;
    border-top: 3px solid #2890f6
}

.ribbon-box .ribbon-two-secondary span {
    background: #6c757d
}

.ribbon-box .ribbon-two-secondary span:before {
    border-left: 3px solid #494f54;
    border-top: 3px solid #494f54
}

.ribbon-box .ribbon-two-secondary span:after {
    border-right: 3px solid #494f54;
    border-top: 3px solid #494f54
}

.ribbon-box .ribbon-two-success span {
    background: #10c469
}

.ribbon-box .ribbon-two-success span:before {
    border-left: 3px solid #0a7d43;
    border-top: 3px solid #0a7d43
}

.ribbon-box .ribbon-two-success span:after {
    border-right: 3px solid #0a7d43;
    border-top: 3px solid #0a7d43
}

.ribbon-box .ribbon-two-info span {
    background: #35b8e0
}

.ribbon-box .ribbon-two-info span:before {
    border-left: 3px solid #1b8bae;
    border-top: 3px solid #1b8bae
}

.ribbon-box .ribbon-two-info span:after {
    border-right: 3px solid #1b8bae;
    border-top: 3px solid #1b8bae
}

.ribbon-box .ribbon-two-warning span {
    background: #f9c851
}

.ribbon-box .ribbon-two-warning span:before {
    border-left: 3px solid #f5b008;
    border-top: 3px solid #f5b008
}

.ribbon-box .ribbon-two-warning span:after {
    border-right: 3px solid #f5b008;
    border-top: 3px solid #f5b008
}

.ribbon-box .ribbon-two-danger span {
    background: #ea4426
}

.ribbon-box .ribbon-two-danger span:before {
    border-left: 3px solid #ff0f0f;
    border-top: 3px solid #ff0f0f
}

.ribbon-box .ribbon-two-danger span:after {
    border-right: 3px solid #ff0f0f;
    border-top: 3px solid #ff0f0f
}

.ribbon-box .ribbon-two-light span {
    background: #323a46
}

.ribbon-box .ribbon-two-light span:before {
    border-left: 3px solid #121519;
    border-top: 3px solid #121519
}

.ribbon-box .ribbon-two-light span:after {
    border-right: 3px solid #121519;
    border-top: 3px solid #121519
}

.ribbon-box .ribbon-two-dark span {
    background: #f1f5f7
}

.ribbon-box .ribbon-two-dark span:before {
    border-left: 3px solid #c0d2db;
    border-top: 3px solid #c0d2db
}

.ribbon-box .ribbon-two-dark span:after {
    border-right: 3px solid #c0d2db;
    border-top: 3px solid #c0d2db
}

.ribbon-box .ribbon-two-pink span {
    background: #ff8acc
}

.ribbon-box .ribbon-two-pink span:before {
    border-left: 3px solid #ff3eab;
    border-top: 3px solid #ff3eab
}

.ribbon-box .ribbon-two-pink span:after {
    border-right: 3px solid #ff3eab;
    border-top: 3px solid #ff3eab
}

.ribbon-box .ribbon-two-purple span {
    background: #5b69bc
}

.ribbon-box .ribbon-two-purple span:before {
    border-left: 3px solid #3b4790;
    border-top: 3px solid #3b4790
}

.ribbon-box .ribbon-two-purple span:after {
    border-right: 3px solid #3b4790;
    border-top: 3px solid #3b4790
}

.ribbon-box .ribbon-two-blue span {
    background: #71b6f9
}

.ribbon-box .ribbon-two-blue span:before {
    border-left: 3px solid #2890f6;
    border-top: 3px solid #2890f6
}

.ribbon-box .ribbon-two-blue span:after {
    border-right: 3px solid #2890f6;
    border-top: 3px solid #2890f6
}

@media print {
    .footer,
    .left-side-menu,
    .navbar-custom,
    .page-title-box,
    .right-bar {
        display: none
    }
    .card-body,
    .content,
    .content-page,
    .right-bar,
    body {
        padding: 0;
        margin: 0
    }
}

#preloader {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #323a46;
    z-index: 9999
}

#status {
    width: 40px;
    height: 40px;
    position: absolute;
    left: 50%;
    top: 50%;
    margin: -20px 0 0 -20px
}

.spinner {
    margin: 0 auto;
    font-size: 10px;
    position: relative;
    text-indent: -9999em;
    border-top: 5px solid #6c757d;
    border-right: 5px solid #6c757d;
    border-bottom: 5px solid #6c757d;
    border-left: 5px solid #71b6f9;
    transform: translateZ(0);
    animation: SpinnerAnimation 1.1s infinite linear
}

.spinner,
.spinner:after {
    border-radius: 50%;
    width: 40px;
    height: 40px
}

@keyframes SpinnerAnimation {
    0% {
        transform: rotate(0)
    }
    100% {
        transform: rotate(360deg)
    }
}

.custom-accordion .card {
    box-shadow: none;
    border: 1px solid #3b4452!important
}

.custom-accordion .card .card-header {
    background-color: #3b4452!important
}

.button-list .btn {
    margin-top: 7px;
    margin-right: 5px
}

.list-group-item {
    border: 1px solid #666666;
    border-left: none;
    border-right: none
}

.list-group-item:hover {
    background: #3b4452
}

.list-group-item:first-child {
    border-top: none
}

.list-group-item:last-child {
    border-bottom: none
}

.icons-list-demo div {
    cursor: pointer;
    line-height: 45px;
    white-space: nowrap;
    text-overflow: ellipsis;
    display: block;
    overflow: hidden
}

.icons-list-demo div p {
    margin-bottom: 0;
    line-height: inherit
}

.icons-list-demo i {
    text-align: center;
    vertical-align: middle;
    font-size: 22px;
    width: 50px;
    height: 50px;
    line-height: 50px;
    margin-right: 12px;
    color: rgba(241, 245, 247, .7);
    border-radius: 3px;
    display: inline-block;
    transition: all .2s
}

.icons-list-demo .col-lg-4 {
    border-radius: 3px;
    -moz-border-radius: 3px;
    background-clip: padding-box;
    margin-bottom: 10px
}

.icons-list-demo .col-lg-4:hover,
.icons-list-demo .col-lg-4:hover i {
    color: #71b6f9
}

.scrollspy-example {
    position: relative;
    height: 200px;
    margin-top: .5rem;
    overflow: auto
}

.inbox-app-main {
    margin-left: -20px;
    margin-right: -20px
}

.circle-icon {
    width: 30px;
    height: 30px;
    text-align: center;
    line-height: 26px;
    border: 2px solid #adb5bd;
    border-radius: 100px;
    font-size: 14px;
    color: #adb5bd;
    cursor: pointer;
    display: block;
    float: left
}

.circle-icon:hover {
    color: #838f9b;
    border-color: #838f9b
}

.circle-icon.small {
    height: 25px;
    width: 25px;
    line-height: 21px;
    font-size: 11px
}

.circle-icon.red {
    color: #ea4426;
    border-color: #ea4426
}

.circle-icon.red:hover {
    color: #c10000;
    border-color: #c10000
}

.checkbox-wrapper-mail {
    cursor: pointer;
    height: 20px;
    width: 20px;
    position: relative;
    display: inline-block;
    box-shadow: inset 0 0 0 1px #adb5bd;
    border-radius: 1px
}

.checkbox-wrapper-mail input {
    opacity: 0;
    cursor: pointer;
    display: none
}

.checkbox-wrapper-mail input:checked~label {
    opacity: 1
}

.checkbox-wrapper-mail label {
    position: absolute;
    top: 3px;
    left: 3px;
    right: 3px;
    bottom: 3px;
    cursor: pointer;
    background: #adb5bd;
    opacity: 0;
    margin-bottom: 0!important;
    transition-duration: .05s
}

.checkbox-wrapper-mail label:active {
    background: #dee2e6
}

#sidebar {
    position: fixed;
    height: 100%;
    width: 240px;
    transition-duration: .3s;
    z-index: 5;
    color: #f1f5f7
}

#sidebar li a {
    color: #f1f5f7
}

#sidebar .menu-segment {
    padding: 0 50px
}

#sidebar .menu-segment li,
#sidebar .menu-segment ul {
    margin: 0;
    padding: 0
}

#sidebar .menu-segment .ball.pink {
    border-color: #ff8acc
}

#sidebar .menu-segment .ball.green {
    border-color: #10c469
}

#sidebar .menu-segment .ball.blue {
    border-color: #71b6f9
}

#sidebar .menu-segment li.title {
    text-transform: uppercase;
    font-weight: 600;
    padding: 10px 0;
    color: #dee2e6
}

#sidebar .menu-segment li.title .icon {
    float: right
}

#sidebar .menu-segment li.active a,
#sidebar .menu-segment li.active a:hover {
    color: #ea4426;
    font-weight: 600
}

#sidebar .menu-segment li a {
    display: block;
    margin: 0 -50px;
    padding: 10px 50px
}

#sidebar .menu-segment li a:hover {
    background: #323a46
}

#sidebar .menu-segment li .italic-link {
    font-style: italic;
    font-weight: 600
}

#sidebar .menu-segment .chat li a span,
#sidebar .menu-segment .labels li a span {
    display: block;
    border: 5px solid #ea4426;
    border-radius: 100px;
    margin-top: 6px
}

#sidebar .menu-segment .chat.labels li a span,
#sidebar .menu-segment .labels.labels li a span {
    float: right
}

#sidebar .menu-segment .chat.chat li a span,
#sidebar .menu-segment .labels.chat li a span {
    float: left;
    margin-right: 10px
}

#sidebar .menu-segment .chat li a {
    padding-left: 50px
}

#sidebar .separator {
    margin: 30px 35px;
    height: 1px;
    background: rgba(173, 181, 189, .2)
}

#sidebar .bottom-padding {
    height: 100px
}

#sidebar>.nano-pane {
    background: 0 0;
    width: 5px
}

#sidebar>.nano-pane .nano-slider {
    background: rgba(173, 181, 189, .3)
}

#main {
    position: fixed;
    top: 72px;
    left: 490px;
    bottom: 0;
    right: 0;
    z-index: 4;
    transition-duration: .3s;
    background-color: #323a46
}

#main .overlay {
    position: absolute;
    top: 0;
    left: -5px;
    right: 0;
    bottom: 100%;
    background: rgba(241, 245, 247, .6);
    z-index: 5;
    opacity: 0;
    transition-duration: 0s;
    transition-property: opacity
}

#main .header {
    padding: 12px 25px;
    border-bottom: 1px solid rgba(173, 181, 189, .2);
    overflow: hidden
}

#main .header .page-title {
    display: block
}

#main .header .page-title .sidebar-toggle-btn {
    width: 0;
    margin-top: 1px;
    padding: 11px 0 0 0;
    float: left;
    position: relative;
    display: block;
    cursor: pointer;
    transition-duration: .3s;
    transition-delay: .5s;
    opacity: 0;
    margin-right: 0
}

#main .header .page-title .sidebar-toggle-btn .line {
    height: 3px;
    display: block;
    background: #98a6ad;
    margin-bottom: 4px;
    transition-duration: .5s;
    transition-delay: .5s
}

#main .header .page-title .sidebar-toggle-btn .line-angle1 {
    width: 8px;
    margin: 0;
    position: absolute;
    top: 15px;
    left: -11px;
    transform: rotate(-60deg)
}

#main .header .page-title .sidebar-toggle-btn .line-angle2 {
    width: 8px;
    margin: 0;
    position: absolute;
    top: 21px;
    left: -11px;
    transform: rotate(60deg)
}

#main .header .page-title .icon {
    font-size: 15px;
    margin-left: 20px;
    position: relative;
    top: -5px;
    cursor: pointer
}

#main .header .search-box {
    width: 180px;
    height: 40px;
    margin-left: 30px;
    position: relative
}

#main .header .search-box input {
    position: absolute;
    top: 0;
    transition-duration: .3s;
    right: 0;
    bottom: 0;
    width: 100%;
    padding: 0 36px 0 0;
    margin: 0;
    text-indent: 15px;
    height: 38px;
    z-index: 2;
    outline: 0;
    color: #adb5bd;
    background: 0 0;
    border: 2px solid #3b4452;
    border-radius: 5px;
    transition-timing-function: cubic-bezier(.3, 1.5, .6, 1)
}

#main .header .search-box input:focus {
    color: #f1f5f7;
    border-color: #3d4655
}

#main .header .search-box input:focus~.icon {
    opacity: 1;
    z-index: 3;
    color: #10c469
}

#main .header .search-box .icon {
    transition-duration: .3s;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 40px;
    text-align: center;
    line-height: 38px;
    z-index: 1;
    cursor: pointer;
    opacity: .5
}

#main .action-bar {
    padding: 5px;
    overflow: hidden
}

#main .message-list {
    display: block;
    padding-left: 0
}

#main .message-list li {
    position: relative;
    display: block;
    height: 50px;
    line-height: 50px;
    cursor: default;
    transition-duration: .3s;
    color: #f1f5f7
}

#main .message-list li:hover {
    background: #3b4452;
    transition-duration: .05s
}

#main .message-list li .mail-col {
    float: left;
    position: relative
}

#main .message-list li .mail-col-1 {
    width: 400px
}

#main .message-list li .mail-col-1 .checkbox-wrapper-mail,
#main .message-list li .mail-col-1 .dot,
#main .message-list li .mail-col-1 .star-toggle {
    display: block;
    float: left
}

#main .message-list li .mail-col-1 .dot {
    border: 4px solid transparent;
    border-radius: 100px;
    margin: 22px 26px 0;
    height: 0;
    width: 0;
    line-height: 0;
    font-size: 0
}

#main .message-list li .mail-col-1 .checkbox-wrapper-mail {
    margin-top: 15px;
    margin-right: 10px
}

#main .message-list li .mail-col-1 .star-toggle {
    margin-top: 18px;
    font-size: 14px;
    margin-left: 5px
}

#main .message-list li .mail-col-1 .title {
    position: absolute;
    top: 0;
    left: 140px;
    right: 0;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap
}

#main .message-list li .mail-col-2 {
    position: absolute;
    top: 0;
    left: 400px;
    right: 0;
    bottom: 0
}

#main .message-list li .mail-col-2 .date,
#main .message-list li .mail-col-2 .subject {
    position: absolute;
    top: 0
}

#main .message-list li .mail-col-2 .subject {
    left: 0;
    right: 200px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap
}

#main .message-list li .mail-col-2 .date {
    right: 0;
    width: 200px;
    padding-left: 80px
}

#main .message-list li.active,
#main .message-list li.selected {
    background: #3b4452;
    transition-duration: .05s
}

#main .message-list li.active,
#main .message-list li.active:hover {
    box-shadow: inset 3px 0 0 #71b6f9
}

#main .message-list li.unread {
    font-weight: 500;
    color: #98a6ad
}

#main .message-list li.blue-dot .mail-col-1 .dot {
    border-color: #71b6f9
}

#main .message-list li.orange-dot .mail-col-1 .dot {
    border-color: #f9c851
}

#main .message-list li.green-dot .mail-col-1 .dot {
    border-color: #10c469
}

#main .load-more-link {
    display: block;
    text-align: center;
    margin: 30px 0 50px 0
}

.show-main-overlay #main .overlay {
    opacity: 1;
    bottom: 0;
    transition-duration: .5s
}

.show-sidebar #main .header .page-title .sidebar-toggle-btn {
    transition-delay: 0s
}

.show-sidebar #main .header .page-title .sidebar-toggle-btn .line-angle1 {
    transform: rotate(-120deg)
}

.show-sidebar #main .header .page-title .sidebar-toggle-btn .line-angle2 {
    transform: rotate(120deg)
}

#main #main-nano-wrapper {
    position: absolute;
    top: 100px;
    bottom: 0;
    height: auto
}

#message {
    position: fixed;
    top: 72px;
    left: 60%;
    bottom: 0;
    width: 40%;
    z-index: 5;
    transform: translateX(200%);
    transition-duration: .5s;
    padding: 20px 30px;
    background: #3b4452;
    box-shadow: 0 0 77px 0 rgba(50, 58, 70, .08), 0 1px 0 0 rgba(50, 58, 70, .02)
}

#message .header {
    padding-bottom: 20px;
    border-bottom: 2px solid rgba(173, 181, 189, .2)
}

#message .header .page-title {
    display: block;
    float: none;
    margin-bottom: 15px;
    line-height: 40px
}

#message .header .page-title .icon {
    margin-top: 4px;
    margin-right: 10px
}

#message .header .grey {
    margin-left: 10px;
    color: #adb5bd
}

#message .message-container {
    padding: 0 30px
}

#message .message-container li {
    padding: 25px;
    border: 1px solid rgba(241, 245, 247, .15);
    background: #3b4452;
    margin: 0 0 30px 0;
    position: relative
}

#message .message-container li .details {
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(241, 245, 247, .1);
    margin-bottom: 30px;
    overflow: hidden
}

#message .message-container li .details .left {
    float: left;
    font-weight: 600;
    color: #adb5bd;
    transition-duration: .3s
}

#message .message-container li .details .left .arrow {
    display: inline-block;
    position: relative;
    height: 2px;
    width: 20px;
    background: rgba(241, 245, 247, .15);
    vertical-align: top;
    margin: 10px 20px 0 15px;
    border: 0 solid rgba(241, 245, 247, .15);
    transition-duration: .3s
}

#message .message-container li .details .left .arrow:after {
    position: absolute;
    top: -4px;
    left: 100%;
    height: 0;
    width: 0;
    border: inherit;
    border-width: 7px;
    border-style: solid;
    content: '';
    border-right: 0;
    border-top-color: transparent;
    border-bottom-color: transparent;
    border-top-width: 5px;
    border-bottom-width: 5px
}

#message .message-container li .details .right {
    float: right;
    color: #adb5bd
}

#message .message-container li .message {
    margin-bottom: 40px
}

#message .message-container li .message p:last-child {
    margin-bottom: 0
}

#message .message-container li:hover .tool-box .red-hover {
    color: #ea4426;
    border-color: #ea4426
}

#message .message-container li:hover .tool-box .red-hover:hover {
    color: #f40000;
    border-color: #f40000
}

#message .message-container li .tool-box {
    position: absolute;
    bottom: 0;
    right: 0;
    border: 0 solid rgba(241, 245, 247, .15);
    border-top-width: 1px;
    border-left-width: 1px;
    padding: 8px 10px;
    transition-duration: .3s
}

#message .message-container li .tool-box a {
    margin-right: 10px
}

#message .message-container li .tool-box a:last-child {
    margin-right: 0
}

#message .message-container li:hover .details .left .arrow {
    background: #10c469;
    border: 0 solid #10c469
}

#message .message-container li:hover .details .left .arrow.orange {
    background: #f9c851;
    border: 0 solid #f9c851
}

#message #message-nano-wrapper {
    position: absolute;
    top: 130px;
    bottom: 0;
    height: auto;
    left: 0;
    right: 0;
    width: auto
}

.show-message #message {
    transform: none;
    transition-duration: .3s
}

.show-message #main {
    margin-right: 40%
}

@media only screen and (min-width:1499px) {
    #main .overlay {
        display: none
    }
}

@media only screen and (max-width:1500px) {
    .show-message #main {
        margin-right: 0
    }
    .show-message #message {
        left: 50%;
        width: 50%
    }
}

@media only screen and (max-width:1024px) {
    #main {
        left: 340px
    }
    .show-sidebar #sidebar {
        transform: none
    }
    .show-sidebar #main {
        transform: translateX(250px)
    }
    .show-message #main {
        margin-right: 0
    }
}

@media only screen and (max-width:768px) {
    #sidebar {
        transform: translateX(-100%)
    }
    #main {
        left: 0;
        box-shadow: none
    }
    #main .header .page-title .sidebar-toggle-btn {
        margin-right: 20px;
        opacity: 1;
        width: 20px;
        margin-left: 10px
    }
    #main .header .page-title .sidebar-toggle-btn .line {
        height: 2px
    }
    .show-sidebar #sidebar {
        transform: none
    }
    .show-sidebar #main {
        transform: translateX(250px)
    }
    .show-message #main {
        margin-right: 0
    }
    .show-message #message {
        left: 20%;
        width: 80%
    }
}

@media only screen and (max-width:600px) {
    #main .header .search-box {
        float: none;
        width: 100%;
        margin-bottom: 10px;
        margin-top: 10px;
        margin-left: 0
    }
    #main .header .search-box input,
    #main .header .search-box input:focus {
        width: 100%
    }
    #main .action-bar {
        float: none!important
    }
    #main .action-bar ul {
        margin-bottom: 0;
        text-align: center
    }
    #main #main-nano-wrapper {
        position: absolute;
        top: 150px;
        bottom: 0;
        height: auto
    }
    #main .message-list li .mail-col-1 {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        right: 120px;
        width: auto
    }
    #main .message-list li .mail-col-2 {
        right: 0;
        left: auto;
        width: 120px
    }
    #main .message-list li .mail-col-2 .date {
        padding-left: 0;
        position: static
    }
    #main .message-list li .mail-col-2 .subject {
        display: none
    }
}

.nano {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden
}

.nano>.nano-content {
    position: absolute;
    overflow: scroll;
    overflow-x: hidden;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0
}

.nano>.nano-content:focus {
    outline: 0
}

.nano>.nano-content:-webkit-scrollbar {
    visibility: hidden
}

.nano>.nano-pane {
    background: rgba(173, 181, 189, .1);
    position: absolute;
    width: 7px;
    right: 8px;
    top: 8px;
    bottom: 8px;
    opacity: .01;
    border-radius: 5px;
    transition: .3s
}

.nano>.nano-pane>.nano-slider {
    background: rgba(173, 181, 189, .35);
    position: relative;
    border-radius: 3px;
    transition: .3s;
    transition-property: background
}

.nano>.nano-pane.active .nano-slider,
.nano>.nano-pane:hover .nano-slider {
    background: #6c757d
}

.has-scrollbar>.nano-content:-webkit-scrollbar {
    visibility: visible
}

.nano-pane.active,
.nano-pane.flashed,
.nano:hover>.nano-pane {
    opacity: .99
}

.authentication-bg.enlarged {
    min-height: 100px
}

body.authentication-bg {
    /*background-image: url(../images/big/bg.jpg);*/
    background-size: cover;
    background-position: center;
    background: #141414!important;
}

.home-btn {
    position: absolute;
    top: 15px;
    right: 25px
}

.logout-icon {
    width: 140px
}

.text-error {
    color: #f04628;
    font-size: 84px;
    line-height: 90px;
    font-family: Karla, sans-serif
}

.taskList {
    min-height: 40px;
    margin-bottom: 0
}

.taskList>li {
    background-color: #363f4c;
    border: 1px solid #3b4452;
    padding: 20px;
    margin-bottom: 15px;
    border-radius: 3px
}

.taskList .kanban-detail {
    margin-left: 35px
}

.taskList .kanban-detail ul li a {
    display: inline-block
}

.taskList .kanban-detail ul li a i {
    font-size: 16px;
    color: #adb5bd;
    padding: 0 5px;
    line-height: 32px
}

.task-placeholder {
    border: 1px dashed #6c757d!important;
    background-color: #3b4452!important;
    padding: 20px
}

.gu-mirror {
    list-style: none
}

.task-tags .bootstrap-tagsinput {
    padding: 0;
    border: none;
    background: 0 0
}

.attached-files .files-list .file-box {
    vertical-align: middle
}

.assign-team a {
    margin-right: 7px
}

.fileupload {
    overflow: hidden;
    position: relative
}

.fileupload input.upload {
    cursor: pointer;
    font-size: 20px;
    margin: 0;
    opacity: 0;
    padding: 0;
    position: absolute;
    right: 0;
    top: 0
}

.add-new-plus {
    height: 32px;
    text-align: center;
    width: 32px;
    display: inline-block;
    line-height: 32px;
    color: #adb5bd;
    font-weight: 700;
    background-color: #3b4452;
    border-radius: 50%
}

.profile-pills li a {
    color: rgba(241, 245, 247, .5)!important;
    padding: 0 10px;
    display: block;
    line-height: 30px!important
}

.profile-pills li a i {
    font-size: 14px
}

.comment-footer {
    display: block;
    font-size: 12px
}

.comment-footer i {
    font-size: 13px;
    margin-right: 7px
}

.comment-footer,
.comment-footer a {
    color: rgba(241, 245, 247, .5)
}

.comment-footer a:hover,
.comment-footer:hover {
    color: #71b6f9
}

.pricing-column {
    position: relative;
    margin-bottom: 40px
}

.pricing-column .inner-box {
    position: relative;
    padding: 0 0 40px
}

.pricing-column .plan-title {
    font-size: 16px;
    color: #71b6f9;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 400
}

.pricing-column .plan-price {
    font-size: 40px;
    margin-bottom: 10px;
    color: #f1f5f7
}

.pricing-column .plan-duration {
    font-size: 13px;
    color: #adb5bd
}

.pricing-column .plan-stats li {
    margin-bottom: 15px;
    line-height: 24px
}

.ribbon {
    position: absolute;
    left: 5px;
    top: -5px;
    z-index: 1;
    overflow: hidden;
    width: 75px;
    height: 75px;
    text-align: right
}

.ribbon span {
    font-size: 10px;
    color: #fff;
    text-transform: uppercase;
    text-align: center;
    line-height: 20px;
    transform: rotate(-45deg);
    width: 100px;
    display: block;
    box-shadow: 0 0 8px 0 rgba(241, 245, 247, .06), 0 1px 0 0 rgba(241, 245, 247, .02);
    background: #71b6f9;
    position: absolute;
    top: 19px;
    left: -21px
}

.ribbon span:before {
    content: "";
    position: absolute;
    left: 0;
    top: 100%;
    z-index: -1;
    border-left: 3px solid #71b6f9;
    border-right: 3px solid transparent;
    border-bottom: 3px solid transparent;
    border-top: 3px solid #71b6f9
}

.ribbon span:after {
    content: "";
    position: absolute;
    right: 0;
    top: 100%;
    z-index: -1;
    border-left: 3px solid transparent;
    border-right: 3px solid #71b6f9;
    border-bottom: 3px solid transparent;
    border-top: 3px solid #71b6f9
}

.timeline {
    border-collapse: collapse;
    border-spacing: 0;
    display: table;
    margin-bottom: 50px;
    position: relative;
    table-layout: fixed;
    width: 100%
}

.timeline .time-show {
    margin-bottom: 30px;
    margin-right: -75px;
    margin-top: 30px;
    position: relative;
    text-align: right
}

.timeline .time-show a {
    color: #fff
}

.timeline:before {
    /*background-color: #313233;
    bottom: 0;
    content: "";
    left: 3%;
    position: absolute;
    top: 30px;
    width: 2px;
    z-index: 0;*/
}

.timeline .timeline-icon {
    -webkit-border-radius: 50%;
    background: #adb5bd;
    border-radius: 50%;
    color: #fff;
    display: block;
    height: 21px;
    left: -54px;
    margin-top: -11px;
    position: absolute;
    text-align: center;
    top: 50%;
    width: 21px
}

.timeline .timeline-icon i {
    color: #343a40
}

.timeline .time-icon:before {
    font-size: 16px;
    margin-top: 5px
}

h3.timeline-title {
    color: #adb5bd;
    font-size: 20px;
    font-weight: 400;
    margin: 0 0 5px;
    text-transform: uppercase
}

.timeline-item {
    display: table-row
}

.timeline-item:before {
    content: "";
    display: block;
    width: 50%
}

.timeline-item .timeline-desk .arrow {
    border-bottom: 8px solid transparent;
    border-right: 8px solid #323a46!important;
    border-top: 8px solid transparent;
    display: block;
    height: 0;
    left: -7px;
    margin-top: -10px;
    position: absolute;
    top: 50%;
    width: 0
}

.timeline-item.alt:after {
    content: "";
    display: block;
    width: 50%
}

.timeline-item.alt .timeline-desk .arrow-alt {
    border-bottom: 8px solid transparent;
    border-left: 8px solid #323a46!important;
    border-top: 8px solid transparent;
    display: block;
    height: 0;
    left: auto;
    margin-top: -10px;
    position: absolute;
    right: -7px;
    top: 50%;
    width: 0
}

.timeline-item.alt .timeline-desk .album {
    float: right;
    margin-top: 20px
}

.timeline-item.alt .timeline-desk .album a {
    float: right;
    margin-left: 5px
}

.timeline-item.alt .timeline-icon {
    left: auto;
    right: -58px
}

.timeline-item.alt:before {
    display: none
}

.timeline-item.alt .panel {
    margin-left: 0;
    margin-right: 45px
}

.timeline-item.alt .panel .panel-body p+p {
    margin-top: 10px!important
}

.timeline-item.alt h4 {
    text-align: right
}

.timeline-item.alt p {
    text-align: right
}

.timeline-item.alt .timeline-date {
    text-align: right
}

.timeline-desk {
    display: table-cell;
    vertical-align: top;
    width: 100%
}

.timeline-desk h4 {
    font-size: 16px;
    font-weight: 300;
    margin: 0
}

.timeline-desk .panel {
    background: #323a46;
    display: block;
    margin-bottom: 5px;
    margin-left: 45px;
    position: relative;
    text-align: left;
    padding: 20px;
    border-radius: 7px
}

.timeline-desk h5 span {
    color: #343a40;
    display: block;
    font-size: 12px;
    margin-bottom: 4px
}

.timeline-desk p {
    color: #adb5bd;
    font-size: 14px;
    margin-bottom: 0
}

.timeline-desk .album {
    margin-top: 12px
}

.timeline-desk .album a {
    float: left;
    margin-right: 5px
}

.timeline-desk .album img {
    height: 36px;
    width: auto;
    border-radius: 3px
}

.timeline-desk .notification {
    background: none repeat scroll 0 0 #fff;
    margin-top: 20px;
    padding: 8px
}

.portfolioFilter a {
    transition: all .3s ease-out;
    color: #f1f5f7;
    border-radius: 3px;
    padding: 5px 10px;
    display: inline-block;
    font-weight: 500
}

.portfolioFilter a:hover {
    color: #71b6f9
}

.portfolioFilter a.current {
    color: #71b6f9
}

.thumb {
    background-color: #323a46;
    border-radius: 3px;
    box-shadow: 0 .75rem 6rem rgba(56, 65, 74, .03);
    margin-top: 24px;
    padding: 10px
}

.thumb-img {
    border-radius: 2px;
    overflow: hidden
}

.gal-detail h4 {
    margin-top: 16px;
    font-size: 16px
}

.counter-number {
    font-size: 32px;
    font-weight: 700
}

.counter-number span {
    font-size: 15px;
    font-weight: 400;
    display: block
}

.coming-box {
    float: left;
    width: 25%
}

.metismenu .arrow {
    float: right;
    line-height: 1.42857
}

[dir=rtl] .metismenu .arrow {
    float: left
}

.metismenu .glyphicon.arrow:before {
    content: "\e079"
}

.metismenu .active>a>.glyphicon.arrow:before {
    content: "\e114"
}

.metismenu .fa.arrow:before {
    content: "\f104"
}

.metismenu .active>a>.fa.arrow:before {
    content: "\f107"
}

.metismenu .ion.arrow:before {
    content: "\f3d2"
}

.metismenu .active>a>.ion.arrow:before {
    content: "\f3d0"
}

.metismenu .plus-times {
    float: right
}

[dir=rtl] .metismenu .plus-times {
    float: left
}

.metismenu .fa.plus-times:before {
    content: "\f067"
}

.metismenu .active>a>.fa.plus-times {
    transform: rotate(45deg)
}

.metismenu .plus-minus {
    float: right
}

[dir=rtl] .metismenu .plus-minus {
    float: left
}

.metismenu .fa.plus-minus:before {
    content: "\f067"
}

.metismenu .active>a>.fa.plus-minus:before {
    content: "\f068"
}

.metismenu .collapse {
    display: none
}

.metismenu .collapse.in {
    display: block
}

.metismenu .collapsing {
    position: relative;
    height: 0;
    overflow: hidden;
    transition-timing-function: ease;
    transition-duration: .35s;
    transition-property: height, visibility
}

.metismenu .has-arrow {
    position: relative
}

.metismenu .has-arrow::after {
    position: absolute;
    content: '';
    width: .5em;
    height: .5em;
    border-width: 1px 0 0 1px;
    border-style: solid;
    border-color: initial;
    right: 1em;
    transform: rotate(-45deg) translate(0, -50%);
    transform-origin: top;
    top: 50%;
    transition: all .3s ease-out
}

[dir=rtl] .metismenu .has-arrow::after {
    right: auto;
    left: 1em;
    transform: rotate(135deg) translate(0, -50%)
}

.metismenu .active>.has-arrow::after,
.metismenu .has-arrow[aria-expanded=true]::after {
    transform: rotate(-135deg) translate(0, -50%)
}

[dir=rtl] .metismenu .active>.has-arrow::after,
[dir=rtl] .metismenu .has-arrow[aria-expanded=true]::after {
    transform: rotate(225deg) translate(0, -50%)
}

.left-side-menu::-webkit-scrollbar {
    width: 0em;
}
 
.left-side-menu::-webkit-scrollbar-track {
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
}
 
.left-side-menu::-webkit-scrollbar-thumb {
    background-color: #f3f3f3;
    outline: 1px solid #f3f3f3;
}
/* Remove arrows for Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Remove arrows for Firefox */
input[type="number"] {
  -moz-appearance: textfield;
}
.md-drppicker .calendar-table{
    border: none !important;
    background-color: #121212 !important;
}
.md-drppicker{
    background-color: #121212 !important;
}
.md-drppicker th.available.next{
background-color: white;
}
.md-drppicker th.available.prev{
    background-color: white;
}
.md-drppicker .btn:focus, .md-drppicker .btn:hover{
    background-color: #e14125 !important;
}
.md-drppicker td.off{
    background-color: transparent !important;
    color: #999 !important;
}
.md-drppicker td{
   color: white !important;
}
.md-drppicker .btn{
    background-color: #e14125 !important;
}
.md-drppicker td.active{
    background-color: #e14125 !important;
}

/*!************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[2]!./src/assets/css/icons.min.css?ngGlobalStyle ***!
  \************************************************************************************************************************************************************************************************************************************/
@font-face{font-family:dripicons-v2;src:url('dripicons-v2.eot');src:url('dripicons-v2.eot?#iefix') format("embedded-opentype"),url('dripicons-v2.woff') format("woff"),url('dripicons-v2.ttf') format("truetype"),url('dripicons-v2.svg#dripicons-v2') format("svg");font-weight:400;font-style:normal}[data-icon]:before{font-family:dripicons-v2!important;content:attr(data-icon);font-style:normal!important;font-weight:400!important;font-variant:normal!important;text-transform:none!important;speak:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[class*=" dripicons-"]:before,[class^=dripicons-]:before{font-family:dripicons-v2!important;font-style:normal!important;font-weight:400!important;font-variant:normal!important;text-transform:none!important;speak:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.dripicons-alarm:before{content:"\61"}.dripicons-align-center:before{content:"\62"}.dripicons-align-justify:before{content:"\63"}.dripicons-align-left:before{content:"\64"}.dripicons-align-right:before{content:"\65"}.dripicons-anchor:before{content:"\66"}.dripicons-archive:before{content:"\67"}.dripicons-arrow-down:before{content:"\68"}.dripicons-arrow-left:before{content:"\69"}.dripicons-arrow-right:before{content:"\6a"}.dripicons-arrow-thin-down:before{content:"\6b"}.dripicons-arrow-thin-left:before{content:"\6c"}.dripicons-arrow-thin-right:before{content:"\6d"}.dripicons-arrow-thin-up:before{content:"\6e"}.dripicons-arrow-up:before{content:"\6f"}.dripicons-article:before{content:"\70"}.dripicons-backspace:before{content:"\71"}.dripicons-basket:before{content:"\72"}.dripicons-basketball:before{content:"\73"}.dripicons-battery-empty:before{content:"\74"}.dripicons-battery-full:before{content:"\75"}.dripicons-battery-low:before{content:"\76"}.dripicons-battery-medium:before{content:"\77"}.dripicons-bell:before{content:"\78"}.dripicons-blog:before{content:"\79"}.dripicons-bluetooth:before{content:"\7a"}.dripicons-bold:before{content:"\41"}.dripicons-bookmark:before{content:"\42"}.dripicons-bookmarks:before{content:"\43"}.dripicons-box:before{content:"\44"}.dripicons-briefcase:before{content:"\45"}.dripicons-brightness-low:before{content:"\46"}.dripicons-brightness-max:before{content:"\47"}.dripicons-brightness-medium:before{content:"\48"}.dripicons-broadcast:before{content:"\49"}.dripicons-browser:before{content:"\4a"}.dripicons-browser-upload:before{content:"\4b"}.dripicons-brush:before{content:"\4c"}.dripicons-calendar:before{content:"\4d"}.dripicons-camcorder:before{content:"\4e"}.dripicons-camera:before{content:"\4f"}.dripicons-card:before{content:"\50"}.dripicons-cart:before{content:"\51"}.dripicons-checklist:before{content:"\52"}.dripicons-checkmark:before{content:"\53"}.dripicons-chevron-down:before{content:"\54"}.dripicons-chevron-left:before{content:"\55"}.dripicons-chevron-right:before{content:"\56"}.dripicons-chevron-up:before{content:"\57"}.dripicons-clipboard:before{content:"\58"}.dripicons-clock:before{content:"\59"}.dripicons-clockwise:before{content:"\5a"}.dripicons-cloud:before{content:"\30"}.dripicons-cloud-download:before{content:"\31"}.dripicons-cloud-upload:before{content:"\32"}.dripicons-code:before{content:"\33"}.dripicons-contract:before{content:"\34"}.dripicons-contract-2:before{content:"\35"}.dripicons-conversation:before{content:"\36"}.dripicons-copy:before{content:"\37"}.dripicons-crop:before{content:"\38"}.dripicons-cross:before{content:"\39"}.dripicons-crosshair:before{content:"\21"}.dripicons-cutlery:before{content:"\22"}.dripicons-device-desktop:before{content:"\23"}.dripicons-device-mobile:before{content:"\24"}.dripicons-device-tablet:before{content:"\25"}.dripicons-direction:before{content:"\26"}.dripicons-disc:before{content:"\27"}.dripicons-document:before{content:"\28"}.dripicons-document-delete:before{content:"\29"}.dripicons-document-edit:before{content:"\2a"}.dripicons-document-new:before{content:"\2b"}.dripicons-document-remove:before{content:"\2c"}.dripicons-dot:before{content:"\2d"}.dripicons-dots-2:before{content:"\2e"}.dripicons-dots-3:before{content:"\2f"}.dripicons-download:before{content:"\3a"}.dripicons-duplicate:before{content:"\3b"}.dripicons-enter:before{content:"\3c"}.dripicons-exit:before{content:"\3d"}.dripicons-expand:before{content:"\3e"}.dripicons-expand-2:before{content:"\3f"}.dripicons-experiment:before{content:"\40"}.dripicons-export:before{content:"\5b"}.dripicons-feed:before{content:"\5d"}.dripicons-flag:before{content:"\5e"}.dripicons-flashlight:before{content:"\5f"}.dripicons-folder:before{content:"\60"}.dripicons-folder-open:before{content:"\7b"}.dripicons-forward:before{content:"\7c"}.dripicons-gaming:before{content:"\7d"}.dripicons-gear:before{content:"\7e"}.dripicons-graduation:before{content:"\5c"}.dripicons-graph-bar:before{content:"\e000"}.dripicons-graph-line:before{content:"\e001"}.dripicons-graph-pie:before{content:"\e002"}.dripicons-headset:before{content:"\e003"}.dripicons-heart:before{content:"\e004"}.dripicons-help:before{content:"\e005"}.dripicons-home:before{content:"\e006"}.dripicons-hourglass:before{content:"\e007"}.dripicons-inbox:before{content:"\e008"}.dripicons-information:before{content:"\e009"}.dripicons-italic:before{content:"\e00a"}.dripicons-jewel:before{content:"\e00b"}.dripicons-lifting:before{content:"\e00c"}.dripicons-lightbulb:before{content:"\e00d"}.dripicons-link:before{content:"\e00e"}.dripicons-link-broken:before{content:"\e00f"}.dripicons-list:before{content:"\e010"}.dripicons-loading:before{content:"\e011"}.dripicons-location:before{content:"\e012"}.dripicons-lock:before{content:"\e013"}.dripicons-lock-open:before{content:"\e014"}.dripicons-mail:before{content:"\e015"}.dripicons-map:before{content:"\e016"}.dripicons-media-loop:before{content:"\e017"}.dripicons-media-next:before{content:"\e018"}.dripicons-media-pause:before{content:"\e019"}.dripicons-media-play:before{content:"\e01a"}.dripicons-media-previous:before{content:"\e01b"}.dripicons-media-record:before{content:"\e01c"}.dripicons-media-shuffle:before{content:"\e01d"}.dripicons-media-stop:before{content:"\e01e"}.dripicons-medical:before{content:"\e01f"}.dripicons-menu:before{content:"\e020"}.dripicons-message:before{content:"\e021"}.dripicons-meter:before{content:"\e022"}.dripicons-microphone:before{content:"\e023"}.dripicons-minus:before{content:"\e024"}.dripicons-monitor:before{content:"\e025"}.dripicons-move:before{content:"\e026"}.dripicons-music:before{content:"\e027"}.dripicons-network-1:before{content:"\e028"}.dripicons-network-2:before{content:"\e029"}.dripicons-network-3:before{content:"\e02a"}.dripicons-network-4:before{content:"\e02b"}.dripicons-network-5:before{content:"\e02c"}.dripicons-pamphlet:before{content:"\e02d"}.dripicons-paperclip:before{content:"\e02e"}.dripicons-pencil:before{content:"\e02f"}.dripicons-phone:before{content:"\e030"}.dripicons-photo:before{content:"\e031"}.dripicons-photo-group:before{content:"\e032"}.dripicons-pill:before{content:"\e033"}.dripicons-pin:before{content:"\e034"}.dripicons-plus:before{content:"\e035"}.dripicons-power:before{content:"\e036"}.dripicons-preview:before{content:"\e037"}.dripicons-print:before{content:"\e038"}.dripicons-pulse:before{content:"\e039"}.dripicons-question:before{content:"\e03a"}.dripicons-reply:before{content:"\e03b"}.dripicons-reply-all:before{content:"\e03c"}.dripicons-return:before{content:"\e03d"}.dripicons-retweet:before{content:"\e03e"}.dripicons-rocket:before{content:"\e03f"}.dripicons-scale:before{content:"\e040"}.dripicons-search:before{content:"\e041"}.dripicons-shopping-bag:before{content:"\e042"}.dripicons-skip:before{content:"\e043"}.dripicons-stack:before{content:"\e044"}.dripicons-star:before{content:"\e045"}.dripicons-stopwatch:before{content:"\e046"}.dripicons-store:before{content:"\e047"}.dripicons-suitcase:before{content:"\e048"}.dripicons-swap:before{content:"\e049"}.dripicons-tag:before{content:"\e04a"}.dripicons-tag-delete:before{content:"\e04b"}.dripicons-tags:before{content:"\e04c"}.dripicons-thumbs-down:before{content:"\e04d"}.dripicons-thumbs-up:before{content:"\e04e"}.dripicons-ticket:before{content:"\e04f"}.dripicons-time-reverse:before{content:"\e050"}.dripicons-to-do:before{content:"\e051"}.dripicons-toggles:before{content:"\e052"}.dripicons-trash:before{content:"\e053"}.dripicons-trophy:before{content:"\e054"}.dripicons-upload:before{content:"\e055"}.dripicons-user:before{content:"\e056"}.dripicons-user-group:before{content:"\e057"}.dripicons-user-id:before{content:"\e058"}.dripicons-vibrate:before{content:"\e059"}.dripicons-view-apps:before{content:"\e05a"}.dripicons-view-list:before{content:"\e05b"}.dripicons-view-list-large:before{content:"\e05c"}.dripicons-view-thumb:before{content:"\e05d"}.dripicons-volume-full:before{content:"\e05e"}.dripicons-volume-low:before{content:"\e05f"}.dripicons-volume-medium:before{content:"\e060"}.dripicons-volume-off:before{content:"\e061"}.dripicons-wallet:before{content:"\e062"}.dripicons-warning:before{content:"\e063"}.dripicons-web:before{content:"\e064"}.dripicons-weight:before{content:"\e065"}.dripicons-wifi:before{content:"\e066"}.dripicons-wrong:before{content:"\e067"}.dripicons-zoom-in:before{content:"\e068"}.dripicons-zoom-out:before{content:"\e069"}@font-face{font-family:"Material Design Icons";src:url('materialdesignicons-webfont.eot?v=3.5.95');src:url('materialdesignicons-webfont.eot?#iefix&v=3.5.95') format("embedded-opentype"),url('materialdesignicons-webfont.woff2?v=3.5.95') format("woff2"),url('materialdesignicons-webfont.woff?v=3.5.95') format("woff"),url('materialdesignicons-webfont.ttf?v=3.5.95') format("truetype"),url('materialdesignicons-webfont.svg?v=3.5.95#materialdesigniconsregular') format("svg");font-weight:400;font-style:normal}.mdi-set,.mdi:before{display:inline-block;font:normal normal normal 24px/1 "Material Design Icons";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.mdi-access-point:before{content:"\F002"}.mdi-access-point-network:before{content:"\F003"}.mdi-access-point-network-off:before{content:"\FBBD"}.mdi-account:before{content:"\F004"}.mdi-account-alert:before{content:"\F005"}.mdi-account-alert-outline:before{content:"\FB2C"}.mdi-account-arrow-left:before{content:"\FB2D"}.mdi-account-arrow-left-outline:before{content:"\FB2E"}.mdi-account-arrow-right:before{content:"\FB2F"}.mdi-account-arrow-right-outline:before{content:"\FB30"}.mdi-account-badge:before{content:"\FD83"}.mdi-account-badge-alert:before{content:"\FD84"}.mdi-account-badge-alert-outline:before{content:"\FD85"}.mdi-account-badge-outline:before{content:"\FD86"}.mdi-account-box:before{content:"\F006"}.mdi-account-box-multiple:before{content:"\F933"}.mdi-account-box-outline:before{content:"\F007"}.mdi-account-card-details:before{content:"\F5D2"}.mdi-account-card-details-outline:before{content:"\FD87"}.mdi-account-check:before{content:"\F008"}.mdi-account-check-outline:before{content:"\FBBE"}.mdi-account-child:before{content:"\FA88"}.mdi-account-child-circle:before{content:"\FA89"}.mdi-account-circle:before{content:"\F009"}.mdi-account-circle-outline:before{content:"\FB31"}.mdi-account-clock:before{content:"\FB32"}.mdi-account-clock-outline:before{content:"\FB33"}.mdi-account-convert:before{content:"\F00A"}.mdi-account-details:before{content:"\F631"}.mdi-account-edit:before{content:"\F6BB"}.mdi-account-group:before{content:"\F848"}.mdi-account-group-outline:before{content:"\FB34"}.mdi-account-heart:before{content:"\F898"}.mdi-account-heart-outline:before{content:"\FBBF"}.mdi-account-key:before{content:"\F00B"}.mdi-account-key-outline:before{content:"\FBC0"}.mdi-account-minus:before{content:"\F00D"}.mdi-account-minus-outline:before{content:"\FAEB"}.mdi-account-multiple:before{content:"\F00E"}.mdi-account-multiple-check:before{content:"\F8C4"}.mdi-account-multiple-minus:before{content:"\F5D3"}.mdi-account-multiple-minus-outline:before{content:"\FBC1"}.mdi-account-multiple-outline:before{content:"\F00F"}.mdi-account-multiple-plus:before{content:"\F010"}.mdi-account-multiple-plus-outline:before{content:"\F7FF"}.mdi-account-network:before{content:"\F011"}.mdi-account-network-outline:before{content:"\FBC2"}.mdi-account-off:before{content:"\F012"}.mdi-account-off-outline:before{content:"\FBC3"}.mdi-account-outline:before{content:"\F013"}.mdi-account-plus:before{content:"\F014"}.mdi-account-plus-outline:before{content:"\F800"}.mdi-account-question:before{content:"\FB35"}.mdi-account-question-outline:before{content:"\FB36"}.mdi-account-remove:before{content:"\F015"}.mdi-account-remove-outline:before{content:"\FAEC"}.mdi-account-search:before{content:"\F016"}.mdi-account-search-outline:before{content:"\F934"}.mdi-account-settings:before{content:"\F630"}.mdi-account-star:before{content:"\F017"}.mdi-account-star-outline:before{content:"\FBC4"}.mdi-account-supervisor:before{content:"\FA8A"}.mdi-account-supervisor-circle:before{content:"\FA8B"}.mdi-account-switch:before{content:"\F019"}.mdi-account-tie:before{content:"\FCBF"}.mdi-accusoft:before{content:"\F849"}.mdi-adchoices:before{content:"\FD1E"}.mdi-adjust:before{content:"\F01A"}.mdi-adobe:before{content:"\F935"}.mdi-air-conditioner:before{content:"\F01B"}.mdi-air-filter:before{content:"\FD1F"}.mdi-air-horn:before{content:"\FD88"}.mdi-air-purifier:before{content:"\FD20"}.mdi-airbag:before{content:"\FBC5"}.mdi-airballoon:before{content:"\F01C"}.mdi-airplane:before{content:"\F01D"}.mdi-airplane-landing:before{content:"\F5D4"}.mdi-airplane-off:before{content:"\F01E"}.mdi-airplane-takeoff:before{content:"\F5D5"}.mdi-airplay:before{content:"\F01F"}.mdi-airport:before{content:"\F84A"}.mdi-alarm:before{content:"\F020"}.mdi-alarm-bell:before{content:"\F78D"}.mdi-alarm-check:before{content:"\F021"}.mdi-alarm-light:before{content:"\F78E"}.mdi-alarm-light-outline:before{content:"\FBC6"}.mdi-alarm-multiple:before{content:"\F022"}.mdi-alarm-off:before{content:"\F023"}.mdi-alarm-plus:before{content:"\F024"}.mdi-alarm-snooze:before{content:"\F68D"}.mdi-album:before{content:"\F025"}.mdi-alert:before{content:"\F026"}.mdi-alert-box:before{content:"\F027"}.mdi-alert-box-outline:before{content:"\FCC0"}.mdi-alert-circle:before{content:"\F028"}.mdi-alert-circle-outline:before{content:"\F5D6"}.mdi-alert-decagram:before{content:"\F6BC"}.mdi-alert-decagram-outline:before{content:"\FCC1"}.mdi-alert-octagon:before{content:"\F029"}.mdi-alert-octagon-outline:before{content:"\FCC2"}.mdi-alert-octagram:before{content:"\F766"}.mdi-alert-octagram-outline:before{content:"\FCC3"}.mdi-alert-outline:before{content:"\F02A"}.mdi-alien:before{content:"\F899"}.mdi-all-inclusive:before{content:"\F6BD"}.mdi-alpha:before{content:"\F02B"}.mdi-alpha-a:before{content:"\41"}.mdi-alpha-a-box:before{content:"\FAED"}.mdi-alpha-a-box-outline:before{content:"\FBC7"}.mdi-alpha-a-circle:before{content:"\FBC8"}.mdi-alpha-a-circle-outline:before{content:"\FBC9"}.mdi-alpha-b:before{content:"\42"}.mdi-alpha-b-box:before{content:"\FAEE"}.mdi-alpha-b-box-outline:before{content:"\FBCA"}.mdi-alpha-b-circle:before{content:"\FBCB"}.mdi-alpha-b-circle-outline:before{content:"\FBCC"}.mdi-alpha-c:before{content:"\43"}.mdi-alpha-c-box:before{content:"\FAEF"}.mdi-alpha-c-box-outline:before{content:"\FBCD"}.mdi-alpha-c-circle:before{content:"\FBCE"}.mdi-alpha-c-circle-outline:before{content:"\FBCF"}.mdi-alpha-d:before{content:"\44"}.mdi-alpha-d-box:before{content:"\FAF0"}.mdi-alpha-d-box-outline:before{content:"\FBD0"}.mdi-alpha-d-circle:before{content:"\FBD1"}.mdi-alpha-d-circle-outline:before{content:"\FBD2"}.mdi-alpha-e:before{content:"\45"}.mdi-alpha-e-box:before{content:"\FAF1"}.mdi-alpha-e-box-outline:before{content:"\FBD3"}.mdi-alpha-e-circle:before{content:"\FBD4"}.mdi-alpha-e-circle-outline:before{content:"\FBD5"}.mdi-alpha-f:before{content:"\46"}.mdi-alpha-f-box:before{content:"\FAF2"}.mdi-alpha-f-box-outline:before{content:"\FBD6"}.mdi-alpha-f-circle:before{content:"\FBD7"}.mdi-alpha-f-circle-outline:before{content:"\FBD8"}.mdi-alpha-g:before{content:"\47"}.mdi-alpha-g-box:before{content:"\FAF3"}.mdi-alpha-g-box-outline:before{content:"\FBD9"}.mdi-alpha-g-circle:before{content:"\FBDA"}.mdi-alpha-g-circle-outline:before{content:"\FBDB"}.mdi-alpha-h:before{content:"\48"}.mdi-alpha-h-box:before{content:"\FAF4"}.mdi-alpha-h-box-outline:before{content:"\FBDC"}.mdi-alpha-h-circle:before{content:"\FBDD"}.mdi-alpha-h-circle-outline:before{content:"\FBDE"}.mdi-alpha-i:before{content:"\49"}.mdi-alpha-i-box:before{content:"\FAF5"}.mdi-alpha-i-box-outline:before{content:"\FBDF"}.mdi-alpha-i-circle:before{content:"\FBE0"}.mdi-alpha-i-circle-outline:before{content:"\FBE1"}.mdi-alpha-j:before{content:"\4A"}.mdi-alpha-j-box:before{content:"\FAF6"}.mdi-alpha-j-box-outline:before{content:"\FBE2"}.mdi-alpha-j-circle:before{content:"\FBE3"}.mdi-alpha-j-circle-outline:before{content:"\FBE4"}.mdi-alpha-k:before{content:"\4B"}.mdi-alpha-k-box:before{content:"\FAF7"}.mdi-alpha-k-box-outline:before{content:"\FBE5"}.mdi-alpha-k-circle:before{content:"\FBE6"}.mdi-alpha-k-circle-outline:before{content:"\FBE7"}.mdi-alpha-l:before{content:"\4C"}.mdi-alpha-l-box:before{content:"\FAF8"}.mdi-alpha-l-box-outline:before{content:"\FBE8"}.mdi-alpha-l-circle:before{content:"\FBE9"}.mdi-alpha-l-circle-outline:before{content:"\FBEA"}.mdi-alpha-m:before{content:"\4D"}.mdi-alpha-m-box:before{content:"\FAF9"}.mdi-alpha-m-box-outline:before{content:"\FBEB"}.mdi-alpha-m-circle:before{content:"\FBEC"}.mdi-alpha-m-circle-outline:before{content:"\FBED"}.mdi-alpha-n:before{content:"\4E"}.mdi-alpha-n-box:before{content:"\FAFA"}.mdi-alpha-n-box-outline:before{content:"\FBEE"}.mdi-alpha-n-circle:before{content:"\FBEF"}.mdi-alpha-n-circle-outline:before{content:"\FBF0"}.mdi-alpha-o:before{content:"\4F"}.mdi-alpha-o-box:before{content:"\FAFB"}.mdi-alpha-o-box-outline:before{content:"\FBF1"}.mdi-alpha-o-circle:before{content:"\FBF2"}.mdi-alpha-o-circle-outline:before{content:"\FBF3"}.mdi-alpha-p:before{content:"\50"}.mdi-alpha-p-box:before{content:"\FAFC"}.mdi-alpha-p-box-outline:before{content:"\FBF4"}.mdi-alpha-p-circle:before{content:"\FBF5"}.mdi-alpha-p-circle-outline:before{content:"\FBF6"}.mdi-alpha-q:before{content:"\51"}.mdi-alpha-q-box:before{content:"\FAFD"}.mdi-alpha-q-box-outline:before{content:"\FBF7"}.mdi-alpha-q-circle:before{content:"\FBF8"}.mdi-alpha-q-circle-outline:before{content:"\FBF9"}.mdi-alpha-r:before{content:"\52"}.mdi-alpha-r-box:before{content:"\FAFE"}.mdi-alpha-r-box-outline:before{content:"\FBFA"}.mdi-alpha-r-circle:before{content:"\FBFB"}.mdi-alpha-r-circle-outline:before{content:"\FBFC"}.mdi-alpha-s:before{content:"\53"}.mdi-alpha-s-box:before{content:"\FAFF"}.mdi-alpha-s-box-outline:before{content:"\FBFD"}.mdi-alpha-s-circle:before{content:"\FBFE"}.mdi-alpha-s-circle-outline:before{content:"\FBFF"}.mdi-alpha-t:before{content:"\54"}.mdi-alpha-t-box:before{content:"\FB00"}.mdi-alpha-t-box-outline:before{content:"\FC00"}.mdi-alpha-t-circle:before{content:"\FC01"}.mdi-alpha-t-circle-outline:before{content:"\FC02"}.mdi-alpha-u:before{content:"\55"}.mdi-alpha-u-box:before{content:"\FB01"}.mdi-alpha-u-box-outline:before{content:"\FC03"}.mdi-alpha-u-circle:before{content:"\FC04"}.mdi-alpha-u-circle-outline:before{content:"\FC05"}.mdi-alpha-v:before{content:"\56"}.mdi-alpha-v-box:before{content:"\FB02"}.mdi-alpha-v-box-outline:before{content:"\FC06"}.mdi-alpha-v-circle:before{content:"\FC07"}.mdi-alpha-v-circle-outline:before{content:"\FC08"}.mdi-alpha-w:before{content:"\57"}.mdi-alpha-w-box:before{content:"\FB03"}.mdi-alpha-w-box-outline:before{content:"\FC09"}.mdi-alpha-w-circle:before{content:"\FC0A"}.mdi-alpha-w-circle-outline:before{content:"\FC0B"}.mdi-alpha-x:before{content:"\58"}.mdi-alpha-x-box:before{content:"\FB04"}.mdi-alpha-x-box-outline:before{content:"\FC0C"}.mdi-alpha-x-circle:before{content:"\FC0D"}.mdi-alpha-x-circle-outline:before{content:"\FC0E"}.mdi-alpha-y:before{content:"\59"}.mdi-alpha-y-box:before{content:"\FB05"}.mdi-alpha-y-box-outline:before{content:"\FC0F"}.mdi-alpha-y-circle:before{content:"\FC10"}.mdi-alpha-y-circle-outline:before{content:"\FC11"}.mdi-alpha-z:before{content:"\5A"}.mdi-alpha-z-box:before{content:"\FB06"}.mdi-alpha-z-box-outline:before{content:"\FC12"}.mdi-alpha-z-circle:before{content:"\FC13"}.mdi-alpha-z-circle-outline:before{content:"\FC14"}.mdi-alphabetical:before{content:"\F02C"}.mdi-altimeter:before{content:"\F5D7"}.mdi-amazon:before{content:"\F02D"}.mdi-amazon-alexa:before{content:"\F8C5"}.mdi-amazon-drive:before{content:"\F02E"}.mdi-ambulance:before{content:"\F02F"}.mdi-ammunition:before{content:"\FCC4"}.mdi-ampersand:before{content:"\FA8C"}.mdi-amplifier:before{content:"\F030"}.mdi-anchor:before{content:"\F031"}.mdi-android:before{content:"\F032"}.mdi-android-auto:before{content:"\FA8D"}.mdi-android-debug-bridge:before{content:"\F033"}.mdi-android-head:before{content:"\F78F"}.mdi-android-messages:before{content:"\FD21"}.mdi-android-studio:before{content:"\F034"}.mdi-angle-acute:before{content:"\F936"}.mdi-angle-obtuse:before{content:"\F937"}.mdi-angle-right:before{content:"\F938"}.mdi-angular:before{content:"\F6B1"}.mdi-angularjs:before{content:"\F6BE"}.mdi-animation:before{content:"\F5D8"}.mdi-animation-outline:before{content:"\FA8E"}.mdi-animation-play:before{content:"\F939"}.mdi-animation-play-outline:before{content:"\FA8F"}.mdi-anvil:before{content:"\F89A"}.mdi-apple:before{content:"\F035"}.mdi-apple-finder:before{content:"\F036"}.mdi-apple-icloud:before{content:"\F038"}.mdi-apple-ios:before{content:"\F037"}.mdi-apple-keyboard-caps:before{content:"\F632"}.mdi-apple-keyboard-command:before{content:"\F633"}.mdi-apple-keyboard-control:before{content:"\F634"}.mdi-apple-keyboard-option:before{content:"\F635"}.mdi-apple-keyboard-shift:before{content:"\F636"}.mdi-apple-safari:before{content:"\F039"}.mdi-application:before{content:"\F614"}.mdi-application-export:before{content:"\FD89"}.mdi-application-import:before{content:"\FD8A"}.mdi-apps:before{content:"\F03B"}.mdi-apps-box:before{content:"\FD22"}.mdi-arch:before{content:"\F8C6"}.mdi-archive:before{content:"\F03C"}.mdi-arrange-bring-forward:before{content:"\F03D"}.mdi-arrange-bring-to-front:before{content:"\F03E"}.mdi-arrange-send-backward:before{content:"\F03F"}.mdi-arrange-send-to-back:before{content:"\F040"}.mdi-arrow-all:before{content:"\F041"}.mdi-arrow-bottom-left:before{content:"\F042"}.mdi-arrow-bottom-left-bold-outline:before{content:"\F9B6"}.mdi-arrow-bottom-left-thick:before{content:"\F9B7"}.mdi-arrow-bottom-right:before{content:"\F043"}.mdi-arrow-bottom-right-bold-outline:before{content:"\F9B8"}.mdi-arrow-bottom-right-thick:before{content:"\F9B9"}.mdi-arrow-collapse:before{content:"\F615"}.mdi-arrow-collapse-all:before{content:"\F044"}.mdi-arrow-collapse-down:before{content:"\F791"}.mdi-arrow-collapse-horizontal:before{content:"\F84B"}.mdi-arrow-collapse-left:before{content:"\F792"}.mdi-arrow-collapse-right:before{content:"\F793"}.mdi-arrow-collapse-up:before{content:"\F794"}.mdi-arrow-collapse-vertical:before{content:"\F84C"}.mdi-arrow-decision:before{content:"\F9BA"}.mdi-arrow-decision-auto:before{content:"\F9BB"}.mdi-arrow-decision-auto-outline:before{content:"\F9BC"}.mdi-arrow-decision-outline:before{content:"\F9BD"}.mdi-arrow-down:before{content:"\F045"}.mdi-arrow-down-bold:before{content:"\F72D"}.mdi-arrow-down-bold-box:before{content:"\F72E"}.mdi-arrow-down-bold-box-outline:before{content:"\F72F"}.mdi-arrow-down-bold-circle:before{content:"\F047"}.mdi-arrow-down-bold-circle-outline:before{content:"\F048"}.mdi-arrow-down-bold-hexagon-outline:before{content:"\F049"}.mdi-arrow-down-bold-outline:before{content:"\F9BE"}.mdi-arrow-down-box:before{content:"\F6BF"}.mdi-arrow-down-circle:before{content:"\FCB7"}.mdi-arrow-down-circle-outline:before{content:"\FCB8"}.mdi-arrow-down-drop-circle:before{content:"\F04A"}.mdi-arrow-down-drop-circle-outline:before{content:"\F04B"}.mdi-arrow-down-thick:before{content:"\F046"}.mdi-arrow-expand:before{content:"\F616"}.mdi-arrow-expand-all:before{content:"\F04C"}.mdi-arrow-expand-down:before{content:"\F795"}.mdi-arrow-expand-horizontal:before{content:"\F84D"}.mdi-arrow-expand-left:before{content:"\F796"}.mdi-arrow-expand-right:before{content:"\F797"}.mdi-arrow-expand-up:before{content:"\F798"}.mdi-arrow-expand-vertical:before{content:"\F84E"}.mdi-arrow-left:before{content:"\F04D"}.mdi-arrow-left-bold:before{content:"\F730"}.mdi-arrow-left-bold-box:before{content:"\F731"}.mdi-arrow-left-bold-box-outline:before{content:"\F732"}.mdi-arrow-left-bold-circle:before{content:"\F04F"}.mdi-arrow-left-bold-circle-outline:before{content:"\F050"}.mdi-arrow-left-bold-hexagon-outline:before{content:"\F051"}.mdi-arrow-left-bold-outline:before{content:"\F9BF"}.mdi-arrow-left-box:before{content:"\F6C0"}.mdi-arrow-left-circle:before{content:"\FCB9"}.mdi-arrow-left-circle-outline:before{content:"\FCBA"}.mdi-arrow-left-drop-circle:before{content:"\F052"}.mdi-arrow-left-drop-circle-outline:before{content:"\F053"}.mdi-arrow-left-right-bold-outline:before{content:"\F9C0"}.mdi-arrow-left-thick:before{content:"\F04E"}.mdi-arrow-right:before{content:"\F054"}.mdi-arrow-right-bold:before{content:"\F733"}.mdi-arrow-right-bold-box:before{content:"\F734"}.mdi-arrow-right-bold-box-outline:before{content:"\F735"}.mdi-arrow-right-bold-circle:before{content:"\F056"}.mdi-arrow-right-bold-circle-outline:before{content:"\F057"}.mdi-arrow-right-bold-hexagon-outline:before{content:"\F058"}.mdi-arrow-right-bold-outline:before{content:"\F9C1"}.mdi-arrow-right-box:before{content:"\F6C1"}.mdi-arrow-right-circle:before{content:"\FCBB"}.mdi-arrow-right-circle-outline:before{content:"\FCBC"}.mdi-arrow-right-drop-circle:before{content:"\F059"}.mdi-arrow-right-drop-circle-outline:before{content:"\F05A"}.mdi-arrow-right-thick:before{content:"\F055"}.mdi-arrow-split-horizontal:before{content:"\F93A"}.mdi-arrow-split-vertical:before{content:"\F93B"}.mdi-arrow-top-left:before{content:"\F05B"}.mdi-arrow-top-left-bold-outline:before{content:"\F9C2"}.mdi-arrow-top-left-thick:before{content:"\F9C3"}.mdi-arrow-top-right:before{content:"\F05C"}.mdi-arrow-top-right-bold-outline:before{content:"\F9C4"}.mdi-arrow-top-right-thick:before{content:"\F9C5"}.mdi-arrow-up:before{content:"\F05D"}.mdi-arrow-up-bold:before{content:"\F736"}.mdi-arrow-up-bold-box:before{content:"\F737"}.mdi-arrow-up-bold-box-outline:before{content:"\F738"}.mdi-arrow-up-bold-circle:before{content:"\F05F"}.mdi-arrow-up-bold-circle-outline:before{content:"\F060"}.mdi-arrow-up-bold-hexagon-outline:before{content:"\F061"}.mdi-arrow-up-bold-outline:before{content:"\F9C6"}.mdi-arrow-up-box:before{content:"\F6C2"}.mdi-arrow-up-circle:before{content:"\FCBD"}.mdi-arrow-up-circle-outline:before{content:"\FCBE"}.mdi-arrow-up-down-bold-outline:before{content:"\F9C7"}.mdi-arrow-up-drop-circle:before{content:"\F062"}.mdi-arrow-up-drop-circle-outline:before{content:"\F063"}.mdi-arrow-up-thick:before{content:"\F05E"}.mdi-artist:before{content:"\F802"}.mdi-artist-outline:before{content:"\FCC5"}.mdi-artstation:before{content:"\FB37"}.mdi-aspect-ratio:before{content:"\FA23"}.mdi-assistant:before{content:"\F064"}.mdi-asterisk:before{content:"\F6C3"}.mdi-at:before{content:"\F065"}.mdi-atlassian:before{content:"\F803"}.mdi-atm:before{content:"\FD23"}.mdi-atom:before{content:"\F767"}.mdi-attachment:before{content:"\F066"}.mdi-audio-video:before{content:"\F93C"}.mdi-audiobook:before{content:"\F067"}.mdi-augmented-reality:before{content:"\F84F"}.mdi-auto-fix:before{content:"\F068"}.mdi-auto-upload:before{content:"\F069"}.mdi-autorenew:before{content:"\F06A"}.mdi-av-timer:before{content:"\F06B"}.mdi-axe:before{content:"\F8C7"}.mdi-axis:before{content:"\FD24"}.mdi-axis-arrow:before{content:"\FD25"}.mdi-axis-arrow-lock:before{content:"\FD26"}.mdi-axis-lock:before{content:"\FD27"}.mdi-axis-x-arrow:before{content:"\FD28"}.mdi-axis-x-arrow-lock:before{content:"\FD29"}.mdi-axis-x-rotate-clockwise:before{content:"\FD2A"}.mdi-axis-x-rotate-counterclockwise:before{content:"\FD2B"}.mdi-axis-x-y-arrow-lock:before{content:"\FD2C"}.mdi-axis-y-arrow:before{content:"\FD2D"}.mdi-axis-y-arrow-lock:before{content:"\FD2E"}.mdi-axis-y-rotate-clockwise:before{content:"\FD2F"}.mdi-axis-y-rotate-counterclockwise:before{content:"\FD30"}.mdi-axis-z-arrow:before{content:"\FD31"}.mdi-axis-z-arrow-lock:before{content:"\FD32"}.mdi-axis-z-rotate-clockwise:before{content:"\FD33"}.mdi-axis-z-rotate-counterclockwise:before{content:"\FD34"}.mdi-azure:before{content:"\F804"}.mdi-babel:before{content:"\FA24"}.mdi-baby:before{content:"\F06C"}.mdi-baby-buggy:before{content:"\F68E"}.mdi-backburger:before{content:"\F06D"}.mdi-backspace:before{content:"\F06E"}.mdi-backspace-outline:before{content:"\FB38"}.mdi-backup-restore:before{content:"\F06F"}.mdi-badminton:before{content:"\F850"}.mdi-balloon:before{content:"\FA25"}.mdi-ballot:before{content:"\F9C8"}.mdi-ballot-outline:before{content:"\F9C9"}.mdi-ballot-recount:before{content:"\FC15"}.mdi-ballot-recount-outline:before{content:"\FC16"}.mdi-bandage:before{content:"\FD8B"}.mdi-bandcamp:before{content:"\F674"}.mdi-bank:before{content:"\F070"}.mdi-bank-minus:before{content:"\FD8C"}.mdi-bank-plus:before{content:"\FD8D"}.mdi-bank-remove:before{content:"\FD8E"}.mdi-bank-transfer:before{content:"\FA26"}.mdi-bank-transfer-in:before{content:"\FA27"}.mdi-bank-transfer-out:before{content:"\FA28"}.mdi-barcode:before{content:"\F071"}.mdi-barcode-scan:before{content:"\F072"}.mdi-barley:before{content:"\F073"}.mdi-barley-off:before{content:"\FB39"}.mdi-barn:before{content:"\FB3A"}.mdi-barrel:before{content:"\F074"}.mdi-baseball:before{content:"\F851"}.mdi-baseball-bat:before{content:"\F852"}.mdi-basecamp:before{content:"\F075"}.mdi-basket:before{content:"\F076"}.mdi-basket-fill:before{content:"\F077"}.mdi-basket-unfill:before{content:"\F078"}.mdi-basketball:before{content:"\F805"}.mdi-basketball-hoop:before{content:"\FC17"}.mdi-basketball-hoop-outline:before{content:"\FC18"}.mdi-bat:before{content:"\FB3B"}.mdi-battery:before{content:"\F079"}.mdi-battery-10:before{content:"\F07A"}.mdi-battery-10-bluetooth:before{content:"\F93D"}.mdi-battery-20:before{content:"\F07B"}.mdi-battery-20-bluetooth:before{content:"\F93E"}.mdi-battery-30:before{content:"\F07C"}.mdi-battery-30-bluetooth:before{content:"\F93F"}.mdi-battery-40:before{content:"\F07D"}.mdi-battery-40-bluetooth:before{content:"\F940"}.mdi-battery-50:before{content:"\F07E"}.mdi-battery-50-bluetooth:before{content:"\F941"}.mdi-battery-60:before{content:"\F07F"}.mdi-battery-60-bluetooth:before{content:"\F942"}.mdi-battery-70:before{content:"\F080"}.mdi-battery-70-bluetooth:before{content:"\F943"}.mdi-battery-80:before{content:"\F081"}.mdi-battery-80-bluetooth:before{content:"\F944"}.mdi-battery-90:before{content:"\F082"}.mdi-battery-90-bluetooth:before{content:"\F945"}.mdi-battery-alert:before{content:"\F083"}.mdi-battery-alert-bluetooth:before{content:"\F946"}.mdi-battery-bluetooth:before{content:"\F947"}.mdi-battery-bluetooth-variant:before{content:"\F948"}.mdi-battery-charging:before{content:"\F084"}.mdi-battery-charging-10:before{content:"\F89B"}.mdi-battery-charging-100:before{content:"\F085"}.mdi-battery-charging-20:before{content:"\F086"}.mdi-battery-charging-30:before{content:"\F087"}.mdi-battery-charging-40:before{content:"\F088"}.mdi-battery-charging-50:before{content:"\F89C"}.mdi-battery-charging-60:before{content:"\F089"}.mdi-battery-charging-70:before{content:"\F89D"}.mdi-battery-charging-80:before{content:"\F08A"}.mdi-battery-charging-90:before{content:"\F08B"}.mdi-battery-charging-outline:before{content:"\F89E"}.mdi-battery-charging-wireless:before{content:"\F806"}.mdi-battery-charging-wireless-10:before{content:"\F807"}.mdi-battery-charging-wireless-20:before{content:"\F808"}.mdi-battery-charging-wireless-30:before{content:"\F809"}.mdi-battery-charging-wireless-40:before{content:"\F80A"}.mdi-battery-charging-wireless-50:before{content:"\F80B"}.mdi-battery-charging-wireless-60:before{content:"\F80C"}.mdi-battery-charging-wireless-70:before{content:"\F80D"}.mdi-battery-charging-wireless-80:before{content:"\F80E"}.mdi-battery-charging-wireless-90:before{content:"\F80F"}.mdi-battery-charging-wireless-alert:before{content:"\F810"}.mdi-battery-charging-wireless-outline:before{content:"\F811"}.mdi-battery-minus:before{content:"\F08C"}.mdi-battery-negative:before{content:"\F08D"}.mdi-battery-outline:before{content:"\F08E"}.mdi-battery-plus:before{content:"\F08F"}.mdi-battery-positive:before{content:"\F090"}.mdi-battery-unknown:before{content:"\F091"}.mdi-battery-unknown-bluetooth:before{content:"\F949"}.mdi-battlenet:before{content:"\FB3C"}.mdi-beach:before{content:"\F092"}.mdi-beaker:before{content:"\FCC6"}.mdi-beaker-outline:before{content:"\F68F"}.mdi-beats:before{content:"\F097"}.mdi-bed-empty:before{content:"\F89F"}.mdi-beer:before{content:"\F098"}.mdi-behance:before{content:"\F099"}.mdi-bell:before{content:"\F09A"}.mdi-bell-alert:before{content:"\FD35"}.mdi-bell-circle:before{content:"\FD36"}.mdi-bell-circle-outline:before{content:"\FD37"}.mdi-bell-off:before{content:"\F09B"}.mdi-bell-off-outline:before{content:"\FA90"}.mdi-bell-outline:before{content:"\F09C"}.mdi-bell-plus:before{content:"\F09D"}.mdi-bell-plus-outline:before{content:"\FA91"}.mdi-bell-ring:before{content:"\F09E"}.mdi-bell-ring-outline:before{content:"\F09F"}.mdi-bell-sleep:before{content:"\F0A0"}.mdi-bell-sleep-outline:before{content:"\FA92"}.mdi-beta:before{content:"\F0A1"}.mdi-betamax:before{content:"\F9CA"}.mdi-bible:before{content:"\F0A2"}.mdi-bike:before{content:"\F0A3"}.mdi-billiards:before{content:"\FB3D"}.mdi-billiards-rack:before{content:"\FB3E"}.mdi-bing:before{content:"\F0A4"}.mdi-binoculars:before{content:"\F0A5"}.mdi-bio:before{content:"\F0A6"}.mdi-biohazard:before{content:"\F0A7"}.mdi-bitbucket:before{content:"\F0A8"}.mdi-bitcoin:before{content:"\F812"}.mdi-black-mesa:before{content:"\F0A9"}.mdi-blackberry:before{content:"\F0AA"}.mdi-blender:before{content:"\FCC7"}.mdi-blender-software:before{content:"\F0AB"}.mdi-blinds:before{content:"\F0AC"}.mdi-block-helper:before{content:"\F0AD"}.mdi-blogger:before{content:"\F0AE"}.mdi-blood-bag:before{content:"\FCC8"}.mdi-bluetooth:before{content:"\F0AF"}.mdi-bluetooth-audio:before{content:"\F0B0"}.mdi-bluetooth-connect:before{content:"\F0B1"}.mdi-bluetooth-off:before{content:"\F0B2"}.mdi-bluetooth-settings:before{content:"\F0B3"}.mdi-bluetooth-transfer:before{content:"\F0B4"}.mdi-blur:before{content:"\F0B5"}.mdi-blur-linear:before{content:"\F0B6"}.mdi-blur-off:before{content:"\F0B7"}.mdi-blur-radial:before{content:"\F0B8"}.mdi-bolnisi-cross:before{content:"\FCC9"}.mdi-bolt:before{content:"\FD8F"}.mdi-bomb:before{content:"\F690"}.mdi-bomb-off:before{content:"\F6C4"}.mdi-bone:before{content:"\F0B9"}.mdi-book:before{content:"\F0BA"}.mdi-book-lock:before{content:"\F799"}.mdi-book-lock-open:before{content:"\F79A"}.mdi-book-minus:before{content:"\F5D9"}.mdi-book-multiple:before{content:"\F0BB"}.mdi-book-multiple-minus:before{content:"\FA93"}.mdi-book-multiple-plus:before{content:"\FA94"}.mdi-book-multiple-remove:before{content:"\FA95"}.mdi-book-multiple-variant:before{content:"\F0BC"}.mdi-book-open:before{content:"\F0BD"}.mdi-book-open-outline:before{content:"\FB3F"}.mdi-book-open-page-variant:before{content:"\F5DA"}.mdi-book-open-variant:before{content:"\F0BE"}.mdi-book-outline:before{content:"\FB40"}.mdi-book-plus:before{content:"\F5DB"}.mdi-book-remove:before{content:"\FA96"}.mdi-book-variant:before{content:"\F0BF"}.mdi-bookmark:before{content:"\F0C0"}.mdi-bookmark-check:before{content:"\F0C1"}.mdi-bookmark-minus:before{content:"\F9CB"}.mdi-bookmark-minus-outline:before{content:"\F9CC"}.mdi-bookmark-music:before{content:"\F0C2"}.mdi-bookmark-off:before{content:"\F9CD"}.mdi-bookmark-off-outline:before{content:"\F9CE"}.mdi-bookmark-outline:before{content:"\F0C3"}.mdi-bookmark-plus:before{content:"\F0C5"}.mdi-bookmark-plus-outline:before{content:"\F0C4"}.mdi-bookmark-remove:before{content:"\F0C6"}.mdi-boombox:before{content:"\F5DC"}.mdi-bootstrap:before{content:"\F6C5"}.mdi-border-all:before{content:"\F0C7"}.mdi-border-all-variant:before{content:"\F8A0"}.mdi-border-bottom:before{content:"\F0C8"}.mdi-border-bottom-variant:before{content:"\F8A1"}.mdi-border-color:before{content:"\F0C9"}.mdi-border-horizontal:before{content:"\F0CA"}.mdi-border-inside:before{content:"\F0CB"}.mdi-border-left:before{content:"\F0CC"}.mdi-border-left-variant:before{content:"\F8A2"}.mdi-border-none:before{content:"\F0CD"}.mdi-border-none-variant:before{content:"\F8A3"}.mdi-border-outside:before{content:"\F0CE"}.mdi-border-right:before{content:"\F0CF"}.mdi-border-right-variant:before{content:"\F8A4"}.mdi-border-style:before{content:"\F0D0"}.mdi-border-top:before{content:"\F0D1"}.mdi-border-top-variant:before{content:"\F8A5"}.mdi-border-vertical:before{content:"\F0D2"}.mdi-bottle-wine:before{content:"\F853"}.mdi-bow-tie:before{content:"\F677"}.mdi-bowl:before{content:"\F617"}.mdi-bowling:before{content:"\F0D3"}.mdi-box:before{content:"\F0D4"}.mdi-box-cutter:before{content:"\F0D5"}.mdi-box-shadow:before{content:"\F637"}.mdi-boxing-glove:before{content:"\FB41"}.mdi-braille:before{content:"\F9CF"}.mdi-brain:before{content:"\F9D0"}.mdi-bread-slice:before{content:"\FCCA"}.mdi-bread-slice-outline:before{content:"\FCCB"}.mdi-bridge:before{content:"\F618"}.mdi-briefcase:before{content:"\F0D6"}.mdi-briefcase-account:before{content:"\FCCC"}.mdi-briefcase-account-outline:before{content:"\FCCD"}.mdi-briefcase-check:before{content:"\F0D7"}.mdi-briefcase-download:before{content:"\F0D8"}.mdi-briefcase-download-outline:before{content:"\FC19"}.mdi-briefcase-edit:before{content:"\FA97"}.mdi-briefcase-edit-outline:before{content:"\FC1A"}.mdi-briefcase-minus:before{content:"\FA29"}.mdi-briefcase-minus-outline:before{content:"\FC1B"}.mdi-briefcase-outline:before{content:"\F813"}.mdi-briefcase-plus:before{content:"\FA2A"}.mdi-briefcase-plus-outline:before{content:"\FC1C"}.mdi-briefcase-remove:before{content:"\FA2B"}.mdi-briefcase-remove-outline:before{content:"\FC1D"}.mdi-briefcase-search:before{content:"\FA2C"}.mdi-briefcase-search-outline:before{content:"\FC1E"}.mdi-briefcase-upload:before{content:"\F0D9"}.mdi-briefcase-upload-outline:before{content:"\FC1F"}.mdi-brightness-1:before{content:"\F0DA"}.mdi-brightness-2:before{content:"\F0DB"}.mdi-brightness-3:before{content:"\F0DC"}.mdi-brightness-4:before{content:"\F0DD"}.mdi-brightness-5:before{content:"\F0DE"}.mdi-brightness-6:before{content:"\F0DF"}.mdi-brightness-7:before{content:"\F0E0"}.mdi-brightness-auto:before{content:"\F0E1"}.mdi-brightness-percent:before{content:"\FCCE"}.mdi-broom:before{content:"\F0E2"}.mdi-brush:before{content:"\F0E3"}.mdi-buddhism:before{content:"\F94A"}.mdi-buffer:before{content:"\F619"}.mdi-bug:before{content:"\F0E4"}.mdi-bug-check:before{content:"\FA2D"}.mdi-bug-check-outline:before{content:"\FA2E"}.mdi-bug-outline:before{content:"\FA2F"}.mdi-bugle:before{content:"\FD90"}.mdi-bulldozer:before{content:"\FB07"}.mdi-bullet:before{content:"\FCCF"}.mdi-bulletin-board:before{content:"\F0E5"}.mdi-bullhorn:before{content:"\F0E6"}.mdi-bullhorn-outline:before{content:"\FB08"}.mdi-bullseye:before{content:"\F5DD"}.mdi-bullseye-arrow:before{content:"\F8C8"}.mdi-bus:before{content:"\F0E7"}.mdi-bus-alert:before{content:"\FA98"}.mdi-bus-articulated-end:before{content:"\F79B"}.mdi-bus-articulated-front:before{content:"\F79C"}.mdi-bus-clock:before{content:"\F8C9"}.mdi-bus-double-decker:before{content:"\F79D"}.mdi-bus-school:before{content:"\F79E"}.mdi-bus-side:before{content:"\F79F"}.mdi-cached:before{content:"\F0E8"}.mdi-cactus:before{content:"\FD91"}.mdi-cake:before{content:"\F0E9"}.mdi-cake-layered:before{content:"\F0EA"}.mdi-cake-variant:before{content:"\F0EB"}.mdi-calculator:before{content:"\F0EC"}.mdi-calculator-variant:before{content:"\FA99"}.mdi-calendar:before{content:"\F0ED"}.mdi-calendar-alert:before{content:"\FA30"}.mdi-calendar-blank:before{content:"\F0EE"}.mdi-calendar-blank-outline:before{content:"\FB42"}.mdi-calendar-check:before{content:"\F0EF"}.mdi-calendar-check-outline:before{content:"\FC20"}.mdi-calendar-clock:before{content:"\F0F0"}.mdi-calendar-edit:before{content:"\F8A6"}.mdi-calendar-export:before{content:"\FB09"}.mdi-calendar-heart:before{content:"\F9D1"}.mdi-calendar-import:before{content:"\FB0A"}.mdi-calendar-minus:before{content:"\FD38"}.mdi-calendar-multiple:before{content:"\F0F1"}.mdi-calendar-multiple-check:before{content:"\F0F2"}.mdi-calendar-multiselect:before{content:"\FA31"}.mdi-calendar-outline:before{content:"\FB43"}.mdi-calendar-plus:before{content:"\F0F3"}.mdi-calendar-question:before{content:"\F691"}.mdi-calendar-range:before{content:"\F678"}.mdi-calendar-range-outline:before{content:"\FB44"}.mdi-calendar-remove:before{content:"\F0F4"}.mdi-calendar-remove-outline:before{content:"\FC21"}.mdi-calendar-search:before{content:"\F94B"}.mdi-calendar-star:before{content:"\F9D2"}.mdi-calendar-text:before{content:"\F0F5"}.mdi-calendar-text-outline:before{content:"\FC22"}.mdi-calendar-today:before{content:"\F0F6"}.mdi-calendar-week:before{content:"\FA32"}.mdi-calendar-week-begin:before{content:"\FA33"}.mdi-call-made:before{content:"\F0F7"}.mdi-call-merge:before{content:"\F0F8"}.mdi-call-missed:before{content:"\F0F9"}.mdi-call-received:before{content:"\F0FA"}.mdi-call-split:before{content:"\F0FB"}.mdi-camcorder:before{content:"\F0FC"}.mdi-camcorder-box:before{content:"\F0FD"}.mdi-camcorder-box-off:before{content:"\F0FE"}.mdi-camcorder-off:before{content:"\F0FF"}.mdi-camera:before{content:"\F100"}.mdi-camera-account:before{content:"\F8CA"}.mdi-camera-burst:before{content:"\F692"}.mdi-camera-control:before{content:"\FB45"}.mdi-camera-enhance:before{content:"\F101"}.mdi-camera-enhance-outline:before{content:"\FB46"}.mdi-camera-front:before{content:"\F102"}.mdi-camera-front-variant:before{content:"\F103"}.mdi-camera-gopro:before{content:"\F7A0"}.mdi-camera-image:before{content:"\F8CB"}.mdi-camera-iris:before{content:"\F104"}.mdi-camera-metering-center:before{content:"\F7A1"}.mdi-camera-metering-matrix:before{content:"\F7A2"}.mdi-camera-metering-partial:before{content:"\F7A3"}.mdi-camera-metering-spot:before{content:"\F7A4"}.mdi-camera-off:before{content:"\F5DF"}.mdi-camera-outline:before{content:"\FD39"}.mdi-camera-party-mode:before{content:"\F105"}.mdi-camera-rear:before{content:"\F106"}.mdi-camera-rear-variant:before{content:"\F107"}.mdi-camera-switch:before{content:"\F108"}.mdi-camera-timer:before{content:"\F109"}.mdi-camera-wireless:before{content:"\FD92"}.mdi-camera-wireless-outline:before{content:"\FD93"}.mdi-cancel:before{content:"\F739"}.mdi-candle:before{content:"\F5E2"}.mdi-candycane:before{content:"\F10A"}.mdi-cannabis:before{content:"\F7A5"}.mdi-caps-lock:before{content:"\FA9A"}.mdi-car:before{content:"\F10B"}.mdi-car-battery:before{content:"\F10C"}.mdi-car-brake-abs:before{content:"\FC23"}.mdi-car-brake-alert:before{content:"\FC24"}.mdi-car-brake-hold:before{content:"\FD3A"}.mdi-car-brake-parking:before{content:"\FD3B"}.mdi-car-connected:before{content:"\F10D"}.mdi-car-convertible:before{content:"\F7A6"}.mdi-car-cruise-control:before{content:"\FD3C"}.mdi-car-defrost-front:before{content:"\FD3D"}.mdi-car-defrost-rear:before{content:"\FD3E"}.mdi-car-door:before{content:"\FB47"}.mdi-car-electric:before{content:"\FB48"}.mdi-car-esp:before{content:"\FC25"}.mdi-car-estate:before{content:"\F7A7"}.mdi-car-hatchback:before{content:"\F7A8"}.mdi-car-key:before{content:"\FB49"}.mdi-car-light-dimmed:before{content:"\FC26"}.mdi-car-light-fog:before{content:"\FC27"}.mdi-car-light-high:before{content:"\FC28"}.mdi-car-limousine:before{content:"\F8CC"}.mdi-car-multiple:before{content:"\FB4A"}.mdi-car-parking-lights:before{content:"\FD3F"}.mdi-car-pickup:before{content:"\F7A9"}.mdi-car-side:before{content:"\F7AA"}.mdi-car-sports:before{content:"\F7AB"}.mdi-car-tire-alert:before{content:"\FC29"}.mdi-car-traction-control:before{content:"\FD40"}.mdi-car-wash:before{content:"\F10E"}.mdi-caravan:before{content:"\F7AC"}.mdi-card:before{content:"\FB4B"}.mdi-card-bulleted:before{content:"\FB4C"}.mdi-card-bulleted-off:before{content:"\FB4D"}.mdi-card-bulleted-off-outline:before{content:"\FB4E"}.mdi-card-bulleted-outline:before{content:"\FB4F"}.mdi-card-bulleted-settings:before{content:"\FB50"}.mdi-card-bulleted-settings-outline:before{content:"\FB51"}.mdi-card-outline:before{content:"\FB52"}.mdi-card-text:before{content:"\FB53"}.mdi-card-text-outline:before{content:"\FB54"}.mdi-cards:before{content:"\F638"}.mdi-cards-club:before{content:"\F8CD"}.mdi-cards-diamond:before{content:"\F8CE"}.mdi-cards-heart:before{content:"\F8CF"}.mdi-cards-outline:before{content:"\F639"}.mdi-cards-playing-outline:before{content:"\F63A"}.mdi-cards-spade:before{content:"\F8D0"}.mdi-cards-variant:before{content:"\F6C6"}.mdi-carrot:before{content:"\F10F"}.mdi-carry-on-bag-check:before{content:"\FD41"}.mdi-cart:before{content:"\F110"}.mdi-cart-arrow-down:before{content:"\FD42"}.mdi-cart-arrow-right:before{content:"\FC2A"}.mdi-cart-arrow-up:before{content:"\FD43"}.mdi-cart-minus:before{content:"\FD44"}.mdi-cart-off:before{content:"\F66B"}.mdi-cart-outline:before{content:"\F111"}.mdi-cart-plus:before{content:"\F112"}.mdi-cart-remove:before{content:"\FD45"}.mdi-case-sensitive-alt:before{content:"\F113"}.mdi-cash:before{content:"\F114"}.mdi-cash-100:before{content:"\F115"}.mdi-cash-marker:before{content:"\FD94"}.mdi-cash-multiple:before{content:"\F116"}.mdi-cash-refund:before{content:"\FA9B"}.mdi-cash-register:before{content:"\FCD0"}.mdi-cash-usd:before{content:"\F117"}.mdi-cassette:before{content:"\F9D3"}.mdi-cast:before{content:"\F118"}.mdi-cast-connected:before{content:"\F119"}.mdi-cast-off:before{content:"\F789"}.mdi-castle:before{content:"\F11A"}.mdi-cat:before{content:"\F11B"}.mdi-cctv:before{content:"\F7AD"}.mdi-ceiling-light:before{content:"\F768"}.mdi-cellphone:before{content:"\F11C"}.mdi-cellphone-android:before{content:"\F11D"}.mdi-cellphone-arrow-down:before{content:"\F9D4"}.mdi-cellphone-basic:before{content:"\F11E"}.mdi-cellphone-dock:before{content:"\F11F"}.mdi-cellphone-erase:before{content:"\F94C"}.mdi-cellphone-iphone:before{content:"\F120"}.mdi-cellphone-key:before{content:"\F94D"}.mdi-cellphone-link:before{content:"\F121"}.mdi-cellphone-link-off:before{content:"\F122"}.mdi-cellphone-lock:before{content:"\F94E"}.mdi-cellphone-message:before{content:"\F8D2"}.mdi-cellphone-off:before{content:"\F94F"}.mdi-cellphone-screenshot:before{content:"\FA34"}.mdi-cellphone-settings:before{content:"\F123"}.mdi-cellphone-settings-variant:before{content:"\F950"}.mdi-cellphone-sound:before{content:"\F951"}.mdi-cellphone-text:before{content:"\F8D1"}.mdi-cellphone-wireless:before{content:"\F814"}.mdi-celtic-cross:before{content:"\FCD1"}.mdi-certificate:before{content:"\F124"}.mdi-chair-school:before{content:"\F125"}.mdi-charity:before{content:"\FC2B"}.mdi-chart-arc:before{content:"\F126"}.mdi-chart-areaspline:before{content:"\F127"}.mdi-chart-bar:before{content:"\F128"}.mdi-chart-bar-stacked:before{content:"\F769"}.mdi-chart-bell-curve:before{content:"\FC2C"}.mdi-chart-bubble:before{content:"\F5E3"}.mdi-chart-donut:before{content:"\F7AE"}.mdi-chart-donut-variant:before{content:"\F7AF"}.mdi-chart-gantt:before{content:"\F66C"}.mdi-chart-histogram:before{content:"\F129"}.mdi-chart-line:before{content:"\F12A"}.mdi-chart-line-stacked:before{content:"\F76A"}.mdi-chart-line-variant:before{content:"\F7B0"}.mdi-chart-multiline:before{content:"\F8D3"}.mdi-chart-pie:before{content:"\F12B"}.mdi-chart-scatterplot-hexbin:before{content:"\F66D"}.mdi-chart-timeline:before{content:"\F66E"}.mdi-chat:before{content:"\FB55"}.mdi-chat-alert:before{content:"\FB56"}.mdi-chat-processing:before{content:"\FB57"}.mdi-check:before{content:"\F12C"}.mdi-check-all:before{content:"\F12D"}.mdi-check-box-multiple-outline:before{content:"\FC2D"}.mdi-check-box-outline:before{content:"\FC2E"}.mdi-check-circle:before{content:"\F5E0"}.mdi-check-circle-outline:before{content:"\F5E1"}.mdi-check-decagram:before{content:"\F790"}.mdi-check-network:before{content:"\FC2F"}.mdi-check-network-outline:before{content:"\FC30"}.mdi-check-outline:before{content:"\F854"}.mdi-checkbook:before{content:"\FA9C"}.mdi-checkbox-blank:before{content:"\F12E"}.mdi-checkbox-blank-circle:before{content:"\F12F"}.mdi-checkbox-blank-circle-outline:before{content:"\F130"}.mdi-checkbox-blank-outline:before{content:"\F131"}.mdi-checkbox-intermediate:before{content:"\F855"}.mdi-checkbox-marked:before{content:"\F132"}.mdi-checkbox-marked-circle:before{content:"\F133"}.mdi-checkbox-marked-circle-outline:before{content:"\F134"}.mdi-checkbox-marked-outline:before{content:"\F135"}.mdi-checkbox-multiple-blank:before{content:"\F136"}.mdi-checkbox-multiple-blank-circle:before{content:"\F63B"}.mdi-checkbox-multiple-blank-circle-outline:before{content:"\F63C"}.mdi-checkbox-multiple-blank-outline:before{content:"\F137"}.mdi-checkbox-multiple-marked:before{content:"\F138"}.mdi-checkbox-multiple-marked-circle:before{content:"\F63D"}.mdi-checkbox-multiple-marked-circle-outline:before{content:"\F63E"}.mdi-checkbox-multiple-marked-outline:before{content:"\F139"}.mdi-checkerboard:before{content:"\F13A"}.mdi-chef-hat:before{content:"\FB58"}.mdi-chemical-weapon:before{content:"\F13B"}.mdi-chess-bishop:before{content:"\F85B"}.mdi-chess-king:before{content:"\F856"}.mdi-chess-knight:before{content:"\F857"}.mdi-chess-pawn:before{content:"\F858"}.mdi-chess-queen:before{content:"\F859"}.mdi-chess-rook:before{content:"\F85A"}.mdi-chevron-double-down:before{content:"\F13C"}.mdi-chevron-double-left:before{content:"\F13D"}.mdi-chevron-double-right:before{content:"\F13E"}.mdi-chevron-double-up:before{content:"\F13F"}.mdi-chevron-down:before{content:"\F140"}.mdi-chevron-down-box:before{content:"\F9D5"}.mdi-chevron-down-box-outline:before{content:"\F9D6"}.mdi-chevron-down-circle:before{content:"\FB0B"}.mdi-chevron-down-circle-outline:before{content:"\FB0C"}.mdi-chevron-left:before{content:"\F141"}.mdi-chevron-left-box:before{content:"\F9D7"}.mdi-chevron-left-box-outline:before{content:"\F9D8"}.mdi-chevron-left-circle:before{content:"\FB0D"}.mdi-chevron-left-circle-outline:before{content:"\FB0E"}.mdi-chevron-right:before{content:"\F142"}.mdi-chevron-right-box:before{content:"\F9D9"}.mdi-chevron-right-box-outline:before{content:"\F9DA"}.mdi-chevron-right-circle:before{content:"\FB0F"}.mdi-chevron-right-circle-outline:before{content:"\FB10"}.mdi-chevron-triple-down:before{content:"\FD95"}.mdi-chevron-triple-left:before{content:"\FD96"}.mdi-chevron-triple-right:before{content:"\FD97"}.mdi-chevron-triple-up:before{content:"\FD98"}.mdi-chevron-up:before{content:"\F143"}.mdi-chevron-up-box:before{content:"\F9DB"}.mdi-chevron-up-box-outline:before{content:"\F9DC"}.mdi-chevron-up-circle:before{content:"\FB11"}.mdi-chevron-up-circle-outline:before{content:"\FB12"}.mdi-chili-hot:before{content:"\F7B1"}.mdi-chili-medium:before{content:"\F7B2"}.mdi-chili-mild:before{content:"\F7B3"}.mdi-chip:before{content:"\F61A"}.mdi-christianity:before{content:"\F952"}.mdi-christianity-outline:before{content:"\FCD2"}.mdi-church:before{content:"\F144"}.mdi-circle:before{content:"\F764"}.mdi-circle-edit-outline:before{content:"\F8D4"}.mdi-circle-medium:before{content:"\F9DD"}.mdi-circle-outline:before{content:"\F765"}.mdi-circle-slice-1:before{content:"\FA9D"}.mdi-circle-slice-2:before{content:"\FA9E"}.mdi-circle-slice-3:before{content:"\FA9F"}.mdi-circle-slice-4:before{content:"\FAA0"}.mdi-circle-slice-5:before{content:"\FAA1"}.mdi-circle-slice-6:before{content:"\FAA2"}.mdi-circle-slice-7:before{content:"\FAA3"}.mdi-circle-slice-8:before{content:"\FAA4"}.mdi-circle-small:before{content:"\F9DE"}.mdi-cisco-webex:before{content:"\F145"}.mdi-city:before{content:"\F146"}.mdi-city-variant:before{content:"\FA35"}.mdi-city-variant-outline:before{content:"\FA36"}.mdi-clipboard:before{content:"\F147"}.mdi-clipboard-account:before{content:"\F148"}.mdi-clipboard-account-outline:before{content:"\FC31"}.mdi-clipboard-alert:before{content:"\F149"}.mdi-clipboard-alert-outline:before{content:"\FCD3"}.mdi-clipboard-arrow-down:before{content:"\F14A"}.mdi-clipboard-arrow-down-outline:before{content:"\FC32"}.mdi-clipboard-arrow-left:before{content:"\F14B"}.mdi-clipboard-arrow-left-outline:before{content:"\FCD4"}.mdi-clipboard-arrow-right:before{content:"\FCD5"}.mdi-clipboard-arrow-right-outline:before{content:"\FCD6"}.mdi-clipboard-arrow-up:before{content:"\FC33"}.mdi-clipboard-arrow-up-outline:before{content:"\FC34"}.mdi-clipboard-check:before{content:"\F14C"}.mdi-clipboard-check-outline:before{content:"\F8A7"}.mdi-clipboard-flow:before{content:"\F6C7"}.mdi-clipboard-outline:before{content:"\F14D"}.mdi-clipboard-play:before{content:"\FC35"}.mdi-clipboard-play-outline:before{content:"\FC36"}.mdi-clipboard-plus:before{content:"\F750"}.mdi-clipboard-pulse:before{content:"\F85C"}.mdi-clipboard-pulse-outline:before{content:"\F85D"}.mdi-clipboard-text:before{content:"\F14E"}.mdi-clipboard-text-outline:before{content:"\FA37"}.mdi-clipboard-text-play:before{content:"\FC37"}.mdi-clipboard-text-play-outline:before{content:"\FC38"}.mdi-clippy:before{content:"\F14F"}.mdi-clock:before{content:"\F953"}.mdi-clock-alert:before{content:"\F954"}.mdi-clock-alert-outline:before{content:"\F5CE"}.mdi-clock-end:before{content:"\F151"}.mdi-clock-fast:before{content:"\F152"}.mdi-clock-in:before{content:"\F153"}.mdi-clock-out:before{content:"\F154"}.mdi-clock-outline:before{content:"\F150"}.mdi-clock-start:before{content:"\F155"}.mdi-close:before{content:"\F156"}.mdi-close-box:before{content:"\F157"}.mdi-close-box-multiple:before{content:"\FC39"}.mdi-close-box-multiple-outline:before{content:"\FC3A"}.mdi-close-box-outline:before{content:"\F158"}.mdi-close-circle:before{content:"\F159"}.mdi-close-circle-outline:before{content:"\F15A"}.mdi-close-network:before{content:"\F15B"}.mdi-close-network-outline:before{content:"\FC3B"}.mdi-close-octagon:before{content:"\F15C"}.mdi-close-octagon-outline:before{content:"\F15D"}.mdi-close-outline:before{content:"\F6C8"}.mdi-closed-caption:before{content:"\F15E"}.mdi-closed-caption-outline:before{content:"\FD99"}.mdi-cloud:before{content:"\F15F"}.mdi-cloud-alert:before{content:"\F9DF"}.mdi-cloud-braces:before{content:"\F7B4"}.mdi-cloud-check:before{content:"\F160"}.mdi-cloud-circle:before{content:"\F161"}.mdi-cloud-download:before{content:"\F162"}.mdi-cloud-download-outline:before{content:"\FB59"}.mdi-cloud-off-outline:before{content:"\F164"}.mdi-cloud-outline:before{content:"\F163"}.mdi-cloud-print:before{content:"\F165"}.mdi-cloud-print-outline:before{content:"\F166"}.mdi-cloud-question:before{content:"\FA38"}.mdi-cloud-search:before{content:"\F955"}.mdi-cloud-search-outline:before{content:"\F956"}.mdi-cloud-sync:before{content:"\F63F"}.mdi-cloud-tags:before{content:"\F7B5"}.mdi-cloud-upload:before{content:"\F167"}.mdi-cloud-upload-outline:before{content:"\FB5A"}.mdi-clover:before{content:"\F815"}.mdi-code-array:before{content:"\F168"}.mdi-code-braces:before{content:"\F169"}.mdi-code-brackets:before{content:"\F16A"}.mdi-code-equal:before{content:"\F16B"}.mdi-code-greater-than:before{content:"\F16C"}.mdi-code-greater-than-or-equal:before{content:"\F16D"}.mdi-code-less-than:before{content:"\F16E"}.mdi-code-less-than-or-equal:before{content:"\F16F"}.mdi-code-not-equal:before{content:"\F170"}.mdi-code-not-equal-variant:before{content:"\F171"}.mdi-code-parentheses:before{content:"\F172"}.mdi-code-string:before{content:"\F173"}.mdi-code-tags:before{content:"\F174"}.mdi-code-tags-check:before{content:"\F693"}.mdi-codepen:before{content:"\F175"}.mdi-coffee:before{content:"\F176"}.mdi-coffee-outline:before{content:"\F6C9"}.mdi-coffee-to-go:before{content:"\F177"}.mdi-coffin:before{content:"\FB5B"}.mdi-cogs:before{content:"\F8D5"}.mdi-coin:before{content:"\F178"}.mdi-coins:before{content:"\F694"}.mdi-collage:before{content:"\F640"}.mdi-collapse-all:before{content:"\FAA5"}.mdi-collapse-all-outline:before{content:"\FAA6"}.mdi-color-helper:before{content:"\F179"}.mdi-comment:before{content:"\F17A"}.mdi-comment-account:before{content:"\F17B"}.mdi-comment-account-outline:before{content:"\F17C"}.mdi-comment-alert:before{content:"\F17D"}.mdi-comment-alert-outline:before{content:"\F17E"}.mdi-comment-arrow-left:before{content:"\F9E0"}.mdi-comment-arrow-left-outline:before{content:"\F9E1"}.mdi-comment-arrow-right:before{content:"\F9E2"}.mdi-comment-arrow-right-outline:before{content:"\F9E3"}.mdi-comment-check:before{content:"\F17F"}.mdi-comment-check-outline:before{content:"\F180"}.mdi-comment-eye:before{content:"\FA39"}.mdi-comment-eye-outline:before{content:"\FA3A"}.mdi-comment-multiple:before{content:"\F85E"}.mdi-comment-multiple-outline:before{content:"\F181"}.mdi-comment-outline:before{content:"\F182"}.mdi-comment-plus:before{content:"\F9E4"}.mdi-comment-plus-outline:before{content:"\F183"}.mdi-comment-processing:before{content:"\F184"}.mdi-comment-processing-outline:before{content:"\F185"}.mdi-comment-question:before{content:"\F816"}.mdi-comment-question-outline:before{content:"\F186"}.mdi-comment-remove:before{content:"\F5DE"}.mdi-comment-remove-outline:before{content:"\F187"}.mdi-comment-search:before{content:"\FA3B"}.mdi-comment-search-outline:before{content:"\FA3C"}.mdi-comment-text:before{content:"\F188"}.mdi-comment-text-multiple:before{content:"\F85F"}.mdi-comment-text-multiple-outline:before{content:"\F860"}.mdi-comment-text-outline:before{content:"\F189"}.mdi-compare:before{content:"\F18A"}.mdi-compass:before{content:"\F18B"}.mdi-compass-off:before{content:"\FB5C"}.mdi-compass-off-outline:before{content:"\FB5D"}.mdi-compass-outline:before{content:"\F18C"}.mdi-console:before{content:"\F18D"}.mdi-console-line:before{content:"\F7B6"}.mdi-console-network:before{content:"\F8A8"}.mdi-console-network-outline:before{content:"\FC3C"}.mdi-contact-mail:before{content:"\F18E"}.mdi-contactless-payment:before{content:"\FD46"}.mdi-contacts:before{content:"\F6CA"}.mdi-contain:before{content:"\FA3D"}.mdi-contain-end:before{content:"\FA3E"}.mdi-contain-start:before{content:"\FA3F"}.mdi-content-copy:before{content:"\F18F"}.mdi-content-cut:before{content:"\F190"}.mdi-content-duplicate:before{content:"\F191"}.mdi-content-paste:before{content:"\F192"}.mdi-content-save:before{content:"\F193"}.mdi-content-save-all:before{content:"\F194"}.mdi-content-save-edit:before{content:"\FCD7"}.mdi-content-save-edit-outline:before{content:"\FCD8"}.mdi-content-save-outline:before{content:"\F817"}.mdi-content-save-settings:before{content:"\F61B"}.mdi-content-save-settings-outline:before{content:"\FB13"}.mdi-contrast:before{content:"\F195"}.mdi-contrast-box:before{content:"\F196"}.mdi-contrast-circle:before{content:"\F197"}.mdi-controller-classic:before{content:"\FB5E"}.mdi-controller-classic-outline:before{content:"\FB5F"}.mdi-cookie:before{content:"\F198"}.mdi-copyright:before{content:"\F5E6"}.mdi-cordova:before{content:"\F957"}.mdi-corn:before{content:"\F7B7"}.mdi-counter:before{content:"\F199"}.mdi-cow:before{content:"\F19A"}.mdi-crane:before{content:"\F861"}.mdi-creation:before{content:"\F1C9"}.mdi-creative-commons:before{content:"\FD47"}.mdi-credit-card:before{content:"\F19B"}.mdi-credit-card-marker:before{content:"\FD9A"}.mdi-credit-card-multiple:before{content:"\F19C"}.mdi-credit-card-off:before{content:"\F5E4"}.mdi-credit-card-plus:before{content:"\F675"}.mdi-credit-card-refund:before{content:"\FAA7"}.mdi-credit-card-scan:before{content:"\F19D"}.mdi-credit-card-settings:before{content:"\F8D6"}.mdi-credit-card-wireless:before{content:"\FD48"}.mdi-cricket:before{content:"\FD49"}.mdi-crop:before{content:"\F19E"}.mdi-crop-free:before{content:"\F19F"}.mdi-crop-landscape:before{content:"\F1A0"}.mdi-crop-portrait:before{content:"\F1A1"}.mdi-crop-rotate:before{content:"\F695"}.mdi-crop-square:before{content:"\F1A2"}.mdi-crosshairs:before{content:"\F1A3"}.mdi-crosshairs-gps:before{content:"\F1A4"}.mdi-crown:before{content:"\F1A5"}.mdi-cryengine:before{content:"\F958"}.mdi-crystal-ball:before{content:"\FB14"}.mdi-cube:before{content:"\F1A6"}.mdi-cube-outline:before{content:"\F1A7"}.mdi-cube-scan:before{content:"\FB60"}.mdi-cube-send:before{content:"\F1A8"}.mdi-cube-unfolded:before{content:"\F1A9"}.mdi-cup:before{content:"\F1AA"}.mdi-cup-off:before{content:"\F5E5"}.mdi-cup-water:before{content:"\F1AB"}.mdi-cupcake:before{content:"\F959"}.mdi-curling:before{content:"\F862"}.mdi-currency-bdt:before{content:"\F863"}.mdi-currency-brl:before{content:"\FB61"}.mdi-currency-btc:before{content:"\F1AC"}.mdi-currency-chf:before{content:"\F7B8"}.mdi-currency-cny:before{content:"\F7B9"}.mdi-currency-eth:before{content:"\F7BA"}.mdi-currency-eur:before{content:"\F1AD"}.mdi-currency-gbp:before{content:"\F1AE"}.mdi-currency-ils:before{content:"\FC3D"}.mdi-currency-inr:before{content:"\F1AF"}.mdi-currency-jpy:before{content:"\F7BB"}.mdi-currency-krw:before{content:"\F7BC"}.mdi-currency-kzt:before{content:"\F864"}.mdi-currency-ngn:before{content:"\F1B0"}.mdi-currency-php:before{content:"\F9E5"}.mdi-currency-rub:before{content:"\F1B1"}.mdi-currency-sign:before{content:"\F7BD"}.mdi-currency-try:before{content:"\F1B2"}.mdi-currency-twd:before{content:"\F7BE"}.mdi-currency-usd:before{content:"\F1B3"}.mdi-currency-usd-off:before{content:"\F679"}.mdi-current-ac:before{content:"\F95A"}.mdi-current-dc:before{content:"\F95B"}.mdi-cursor-default:before{content:"\F1B4"}.mdi-cursor-default-click:before{content:"\FCD9"}.mdi-cursor-default-click-outline:before{content:"\FCDA"}.mdi-cursor-default-outline:before{content:"\F1B5"}.mdi-cursor-move:before{content:"\F1B6"}.mdi-cursor-pointer:before{content:"\F1B7"}.mdi-cursor-text:before{content:"\F5E7"}.mdi-database:before{content:"\F1B8"}.mdi-database-check:before{content:"\FAA8"}.mdi-database-edit:before{content:"\FB62"}.mdi-database-export:before{content:"\F95D"}.mdi-database-import:before{content:"\F95C"}.mdi-database-lock:before{content:"\FAA9"}.mdi-database-minus:before{content:"\F1B9"}.mdi-database-plus:before{content:"\F1BA"}.mdi-database-refresh:before{content:"\FCDB"}.mdi-database-remove:before{content:"\FCDC"}.mdi-database-search:before{content:"\F865"}.mdi-database-settings:before{content:"\FCDD"}.mdi-death-star:before{content:"\F8D7"}.mdi-death-star-variant:before{content:"\F8D8"}.mdi-deathly-hallows:before{content:"\FB63"}.mdi-debian:before{content:"\F8D9"}.mdi-debug-step-into:before{content:"\F1BB"}.mdi-debug-step-out:before{content:"\F1BC"}.mdi-debug-step-over:before{content:"\F1BD"}.mdi-decagram:before{content:"\F76B"}.mdi-decagram-outline:before{content:"\F76C"}.mdi-decimal-decrease:before{content:"\F1BE"}.mdi-decimal-increase:before{content:"\F1BF"}.mdi-delete:before{content:"\F1C0"}.mdi-delete-circle:before{content:"\F682"}.mdi-delete-circle-outline:before{content:"\FB64"}.mdi-delete-empty:before{content:"\F6CB"}.mdi-delete-forever:before{content:"\F5E8"}.mdi-delete-forever-outline:before{content:"\FB65"}.mdi-delete-outline:before{content:"\F9E6"}.mdi-delete-restore:before{content:"\F818"}.mdi-delete-sweep:before{content:"\F5E9"}.mdi-delete-sweep-outline:before{content:"\FC3E"}.mdi-delete-variant:before{content:"\F1C1"}.mdi-delta:before{content:"\F1C2"}.mdi-desk-lamp:before{content:"\F95E"}.mdi-deskphone:before{content:"\F1C3"}.mdi-desktop-classic:before{content:"\F7BF"}.mdi-desktop-mac:before{content:"\F1C4"}.mdi-desktop-mac-dashboard:before{content:"\F9E7"}.mdi-desktop-tower:before{content:"\F1C5"}.mdi-desktop-tower-monitor:before{content:"\FAAA"}.mdi-details:before{content:"\F1C6"}.mdi-dev-to:before{content:"\FD4A"}.mdi-developer-board:before{content:"\F696"}.mdi-deviantart:before{content:"\F1C7"}.mdi-dialpad:before{content:"\F61C"}.mdi-diameter:before{content:"\FC3F"}.mdi-diameter-outline:before{content:"\FC40"}.mdi-diameter-variant:before{content:"\FC41"}.mdi-diamond:before{content:"\FB66"}.mdi-diamond-outline:before{content:"\FB67"}.mdi-diamond-stone:before{content:"\F1C8"}.mdi-dice-1:before{content:"\F1CA"}.mdi-dice-2:before{content:"\F1CB"}.mdi-dice-3:before{content:"\F1CC"}.mdi-dice-4:before{content:"\F1CD"}.mdi-dice-5:before{content:"\F1CE"}.mdi-dice-6:before{content:"\F1CF"}.mdi-dice-d10:before{content:"\F76E"}.mdi-dice-d12:before{content:"\F866"}.mdi-dice-d20:before{content:"\F5EA"}.mdi-dice-d4:before{content:"\F5EB"}.mdi-dice-d6:before{content:"\F5EC"}.mdi-dice-d8:before{content:"\F5ED"}.mdi-dice-multiple:before{content:"\F76D"}.mdi-dictionary:before{content:"\F61D"}.mdi-dip-switch:before{content:"\F7C0"}.mdi-directions:before{content:"\F1D0"}.mdi-directions-fork:before{content:"\F641"}.mdi-disc:before{content:"\F5EE"}.mdi-disc-alert:before{content:"\F1D1"}.mdi-disc-player:before{content:"\F95F"}.mdi-discord:before{content:"\F66F"}.mdi-dishwasher:before{content:"\FAAB"}.mdi-disqus:before{content:"\F1D2"}.mdi-disqus-outline:before{content:"\F1D3"}.mdi-diving-flippers:before{content:"\FD9B"}.mdi-diving-helmet:before{content:"\FD9C"}.mdi-diving-scuba:before{content:"\FD9D"}.mdi-diving-scuba-flag:before{content:"\FD9E"}.mdi-diving-scuba-tank:before{content:"\FD9F"}.mdi-diving-scuba-tank-multiple:before{content:"\FDA0"}.mdi-diving-snorkel:before{content:"\FDA1"}.mdi-division:before{content:"\F1D4"}.mdi-division-box:before{content:"\F1D5"}.mdi-dlna:before{content:"\FA40"}.mdi-dna:before{content:"\F683"}.mdi-dns:before{content:"\F1D6"}.mdi-dns-outline:before{content:"\FB68"}.mdi-do-not-disturb:before{content:"\F697"}.mdi-do-not-disturb-off:before{content:"\F698"}.mdi-docker:before{content:"\F867"}.mdi-doctor:before{content:"\FA41"}.mdi-dog:before{content:"\FA42"}.mdi-dog-service:before{content:"\FAAC"}.mdi-dog-side:before{content:"\FA43"}.mdi-dolby:before{content:"\F6B2"}.mdi-domain:before{content:"\F1D7"}.mdi-domain-off:before{content:"\FD4B"}.mdi-donkey:before{content:"\F7C1"}.mdi-door:before{content:"\F819"}.mdi-door-closed:before{content:"\F81A"}.mdi-door-open:before{content:"\F81B"}.mdi-doorbell-video:before{content:"\F868"}.mdi-dot-net:before{content:"\FAAD"}.mdi-dots-horizontal:before{content:"\F1D8"}.mdi-dots-horizontal-circle:before{content:"\F7C2"}.mdi-dots-horizontal-circle-outline:before{content:"\FB69"}.mdi-dots-vertical:before{content:"\F1D9"}.mdi-dots-vertical-circle:before{content:"\F7C3"}.mdi-dots-vertical-circle-outline:before{content:"\FB6A"}.mdi-douban:before{content:"\F699"}.mdi-download:before{content:"\F1DA"}.mdi-download-multiple:before{content:"\F9E8"}.mdi-download-network:before{content:"\F6F3"}.mdi-download-network-outline:before{content:"\FC42"}.mdi-download-outline:before{content:"\FB6B"}.mdi-drag:before{content:"\F1DB"}.mdi-drag-horizontal:before{content:"\F1DC"}.mdi-drag-variant:before{content:"\FB6C"}.mdi-drag-vertical:before{content:"\F1DD"}.mdi-drama-masks:before{content:"\FCDE"}.mdi-drawing:before{content:"\F1DE"}.mdi-drawing-box:before{content:"\F1DF"}.mdi-dribbble:before{content:"\F1E0"}.mdi-dribbble-box:before{content:"\F1E1"}.mdi-drone:before{content:"\F1E2"}.mdi-dropbox:before{content:"\F1E3"}.mdi-drupal:before{content:"\F1E4"}.mdi-duck:before{content:"\F1E5"}.mdi-dumbbell:before{content:"\F1E6"}.mdi-dump-truck:before{content:"\FC43"}.mdi-ear-hearing:before{content:"\F7C4"}.mdi-ear-hearing-off:before{content:"\FA44"}.mdi-earth:before{content:"\F1E7"}.mdi-earth-box:before{content:"\F6CC"}.mdi-earth-box-off:before{content:"\F6CD"}.mdi-earth-off:before{content:"\F1E8"}.mdi-edge:before{content:"\F1E9"}.mdi-egg:before{content:"\FAAE"}.mdi-egg-easter:before{content:"\FAAF"}.mdi-eight-track:before{content:"\F9E9"}.mdi-eject:before{content:"\F1EA"}.mdi-eject-outline:before{content:"\FB6D"}.mdi-elephant:before{content:"\F7C5"}.mdi-elevation-decline:before{content:"\F1EB"}.mdi-elevation-rise:before{content:"\F1EC"}.mdi-elevator:before{content:"\F1ED"}.mdi-email:before{content:"\F1EE"}.mdi-email-alert:before{content:"\F6CE"}.mdi-email-box:before{content:"\FCDF"}.mdi-email-check:before{content:"\FAB0"}.mdi-email-check-outline:before{content:"\FAB1"}.mdi-email-lock:before{content:"\F1F1"}.mdi-email-mark-as-unread:before{content:"\FB6E"}.mdi-email-open:before{content:"\F1EF"}.mdi-email-open-outline:before{content:"\F5EF"}.mdi-email-outline:before{content:"\F1F0"}.mdi-email-plus:before{content:"\F9EA"}.mdi-email-plus-outline:before{content:"\F9EB"}.mdi-email-search:before{content:"\F960"}.mdi-email-search-outline:before{content:"\F961"}.mdi-email-variant:before{content:"\F5F0"}.mdi-ember:before{content:"\FB15"}.mdi-emby:before{content:"\F6B3"}.mdi-emoticon:before{content:"\FC44"}.mdi-emoticon-angry:before{content:"\FC45"}.mdi-emoticon-angry-outline:before{content:"\FC46"}.mdi-emoticon-cool:before{content:"\FC47"}.mdi-emoticon-cool-outline:before{content:"\F1F3"}.mdi-emoticon-cry:before{content:"\FC48"}.mdi-emoticon-cry-outline:before{content:"\FC49"}.mdi-emoticon-dead:before{content:"\FC4A"}.mdi-emoticon-dead-outline:before{content:"\F69A"}.mdi-emoticon-devil:before{content:"\FC4B"}.mdi-emoticon-devil-outline:before{content:"\F1F4"}.mdi-emoticon-excited:before{content:"\FC4C"}.mdi-emoticon-excited-outline:before{content:"\F69B"}.mdi-emoticon-happy:before{content:"\FC4D"}.mdi-emoticon-happy-outline:before{content:"\F1F5"}.mdi-emoticon-kiss:before{content:"\FC4E"}.mdi-emoticon-kiss-outline:before{content:"\FC4F"}.mdi-emoticon-neutral:before{content:"\FC50"}.mdi-emoticon-neutral-outline:before{content:"\F1F6"}.mdi-emoticon-outline:before{content:"\F1F2"}.mdi-emoticon-poop:before{content:"\F1F7"}.mdi-emoticon-poop-outline:before{content:"\FC51"}.mdi-emoticon-sad:before{content:"\FC52"}.mdi-emoticon-sad-outline:before{content:"\F1F8"}.mdi-emoticon-tongue:before{content:"\F1F9"}.mdi-emoticon-tongue-outline:before{content:"\FC53"}.mdi-emoticon-wink:before{content:"\FC54"}.mdi-emoticon-wink-outline:before{content:"\FC55"}.mdi-engine:before{content:"\F1FA"}.mdi-engine-off:before{content:"\FA45"}.mdi-engine-off-outline:before{content:"\FA46"}.mdi-engine-outline:before{content:"\F1FB"}.mdi-equal:before{content:"\F1FC"}.mdi-equal-box:before{content:"\F1FD"}.mdi-eraser:before{content:"\F1FE"}.mdi-eraser-variant:before{content:"\F642"}.mdi-escalator:before{content:"\F1FF"}.mdi-eslint:before{content:"\FC56"}.mdi-et:before{content:"\FAB2"}.mdi-ethereum:before{content:"\F869"}.mdi-ethernet:before{content:"\F200"}.mdi-ethernet-cable:before{content:"\F201"}.mdi-ethernet-cable-off:before{content:"\F202"}.mdi-etsy:before{content:"\F203"}.mdi-ev-station:before{content:"\F5F1"}.mdi-eventbrite:before{content:"\F7C6"}.mdi-evernote:before{content:"\F204"}.mdi-exclamation:before{content:"\F205"}.mdi-exit-run:before{content:"\FA47"}.mdi-exit-to-app:before{content:"\F206"}.mdi-expand-all:before{content:"\FAB3"}.mdi-expand-all-outline:before{content:"\FAB4"}.mdi-exponent:before{content:"\F962"}.mdi-exponent-box:before{content:"\F963"}.mdi-export:before{content:"\F207"}.mdi-export-variant:before{content:"\FB6F"}.mdi-eye:before{content:"\F208"}.mdi-eye-check:before{content:"\FCE0"}.mdi-eye-check-outline:before{content:"\FCE1"}.mdi-eye-circle:before{content:"\FB70"}.mdi-eye-circle-outline:before{content:"\FB71"}.mdi-eye-off:before{content:"\F209"}.mdi-eye-off-outline:before{content:"\F6D0"}.mdi-eye-outline:before{content:"\F6CF"}.mdi-eye-plus:before{content:"\F86A"}.mdi-eye-plus-outline:before{content:"\F86B"}.mdi-eye-settings:before{content:"\F86C"}.mdi-eye-settings-outline:before{content:"\F86D"}.mdi-eyedropper:before{content:"\F20A"}.mdi-eyedropper-variant:before{content:"\F20B"}.mdi-face:before{content:"\F643"}.mdi-face-agent:before{content:"\FD4C"}.mdi-face-outline:before{content:"\FB72"}.mdi-face-profile:before{content:"\F644"}.mdi-face-recognition:before{content:"\FC57"}.mdi-facebook:before{content:"\F20C"}.mdi-facebook-box:before{content:"\F20D"}.mdi-facebook-messenger:before{content:"\F20E"}.mdi-facebook-workplace:before{content:"\FB16"}.mdi-factory:before{content:"\F20F"}.mdi-fan:before{content:"\F210"}.mdi-fan-off:before{content:"\F81C"}.mdi-fast-forward:before{content:"\F211"}.mdi-fast-forward-10:before{content:"\FD4D"}.mdi-fast-forward-30:before{content:"\FCE2"}.mdi-fast-forward-outline:before{content:"\F6D1"}.mdi-fax:before{content:"\F212"}.mdi-feather:before{content:"\F6D2"}.mdi-feature-search:before{content:"\FA48"}.mdi-feature-search-outline:before{content:"\FA49"}.mdi-fedora:before{content:"\F8DA"}.mdi-ferry:before{content:"\F213"}.mdi-file:before{content:"\F214"}.mdi-file-account:before{content:"\F73A"}.mdi-file-alert:before{content:"\FA4A"}.mdi-file-alert-outline:before{content:"\FA4B"}.mdi-file-cabinet:before{content:"\FAB5"}.mdi-file-cancel:before{content:"\FDA2"}.mdi-file-cancel-outline:before{content:"\FDA3"}.mdi-file-chart:before{content:"\F215"}.mdi-file-check:before{content:"\F216"}.mdi-file-cloud:before{content:"\F217"}.mdi-file-compare:before{content:"\F8A9"}.mdi-file-delimited:before{content:"\F218"}.mdi-file-document:before{content:"\F219"}.mdi-file-document-box:before{content:"\F21A"}.mdi-file-document-box-multiple:before{content:"\FAB6"}.mdi-file-document-box-multiple-outline:before{content:"\FAB7"}.mdi-file-document-box-outline:before{content:"\F9EC"}.mdi-file-document-edit:before{content:"\FDA4"}.mdi-file-document-edit-outline:before{content:"\FDA5"}.mdi-file-document-outline:before{content:"\F9ED"}.mdi-file-download:before{content:"\F964"}.mdi-file-download-outline:before{content:"\F965"}.mdi-file-excel:before{content:"\F21B"}.mdi-file-excel-box:before{content:"\F21C"}.mdi-file-export:before{content:"\F21D"}.mdi-file-eye:before{content:"\FDA6"}.mdi-file-eye-outline:before{content:"\FDA7"}.mdi-file-find:before{content:"\F21E"}.mdi-file-find-outline:before{content:"\FB73"}.mdi-file-hidden:before{content:"\F613"}.mdi-file-image:before{content:"\F21F"}.mdi-file-import:before{content:"\F220"}.mdi-file-lock:before{content:"\F221"}.mdi-file-move:before{content:"\FAB8"}.mdi-file-multiple:before{content:"\F222"}.mdi-file-music:before{content:"\F223"}.mdi-file-outline:before{content:"\F224"}.mdi-file-pdf:before{content:"\F225"}.mdi-file-pdf-box:before{content:"\F226"}.mdi-file-percent:before{content:"\F81D"}.mdi-file-plus:before{content:"\F751"}.mdi-file-powerpoint:before{content:"\F227"}.mdi-file-powerpoint-box:before{content:"\F228"}.mdi-file-presentation-box:before{content:"\F229"}.mdi-file-question:before{content:"\F86E"}.mdi-file-remove:before{content:"\FB74"}.mdi-file-replace:before{content:"\FB17"}.mdi-file-replace-outline:before{content:"\FB18"}.mdi-file-restore:before{content:"\F670"}.mdi-file-search:before{content:"\FC58"}.mdi-file-search-outline:before{content:"\FC59"}.mdi-file-send:before{content:"\F22A"}.mdi-file-table:before{content:"\FC5A"}.mdi-file-table-outline:before{content:"\FC5B"}.mdi-file-tree:before{content:"\F645"}.mdi-file-undo:before{content:"\F8DB"}.mdi-file-upload:before{content:"\FA4C"}.mdi-file-upload-outline:before{content:"\FA4D"}.mdi-file-video:before{content:"\F22B"}.mdi-file-word:before{content:"\F22C"}.mdi-file-word-box:before{content:"\F22D"}.mdi-file-xml:before{content:"\F22E"}.mdi-film:before{content:"\F22F"}.mdi-filmstrip:before{content:"\F230"}.mdi-filmstrip-off:before{content:"\F231"}.mdi-filter:before{content:"\F232"}.mdi-filter-outline:before{content:"\F233"}.mdi-filter-remove:before{content:"\F234"}.mdi-filter-remove-outline:before{content:"\F235"}.mdi-filter-variant:before{content:"\F236"}.mdi-finance:before{content:"\F81E"}.mdi-find-replace:before{content:"\F6D3"}.mdi-fingerprint:before{content:"\F237"}.mdi-fire:before{content:"\F238"}.mdi-fire-truck:before{content:"\F8AA"}.mdi-firebase:before{content:"\F966"}.mdi-firefox:before{content:"\F239"}.mdi-fish:before{content:"\F23A"}.mdi-flag:before{content:"\F23B"}.mdi-flag-checkered:before{content:"\F23C"}.mdi-flag-minus:before{content:"\FB75"}.mdi-flag-outline:before{content:"\F23D"}.mdi-flag-plus:before{content:"\FB76"}.mdi-flag-remove:before{content:"\FB77"}.mdi-flag-triangle:before{content:"\F23F"}.mdi-flag-variant:before{content:"\F240"}.mdi-flag-variant-outline:before{content:"\F23E"}.mdi-flare:before{content:"\FD4E"}.mdi-flash:before{content:"\F241"}.mdi-flash-auto:before{content:"\F242"}.mdi-flash-circle:before{content:"\F81F"}.mdi-flash-off:before{content:"\F243"}.mdi-flash-outline:before{content:"\F6D4"}.mdi-flash-red-eye:before{content:"\F67A"}.mdi-flashlight:before{content:"\F244"}.mdi-flashlight-off:before{content:"\F245"}.mdi-flask:before{content:"\F093"}.mdi-flask-empty:before{content:"\F094"}.mdi-flask-empty-outline:before{content:"\F095"}.mdi-flask-outline:before{content:"\F096"}.mdi-flattr:before{content:"\F246"}.mdi-flickr:before{content:"\FCE3"}.mdi-flip-to-back:before{content:"\F247"}.mdi-flip-to-front:before{content:"\F248"}.mdi-floor-lamp:before{content:"\F8DC"}.mdi-floor-plan:before{content:"\F820"}.mdi-floppy:before{content:"\F249"}.mdi-floppy-variant:before{content:"\F9EE"}.mdi-flower:before{content:"\F24A"}.mdi-flower-outline:before{content:"\F9EF"}.mdi-flower-poppy:before{content:"\FCE4"}.mdi-flower-tulip:before{content:"\F9F0"}.mdi-flower-tulip-outline:before{content:"\F9F1"}.mdi-folder:before{content:"\F24B"}.mdi-folder-account:before{content:"\F24C"}.mdi-folder-account-outline:before{content:"\FB78"}.mdi-folder-alert:before{content:"\FDA8"}.mdi-folder-alert-outline:before{content:"\FDA9"}.mdi-folder-clock:before{content:"\FAB9"}.mdi-folder-clock-outline:before{content:"\FABA"}.mdi-folder-download:before{content:"\F24D"}.mdi-folder-edit:before{content:"\F8DD"}.mdi-folder-edit-outline:before{content:"\FDAA"}.mdi-folder-google-drive:before{content:"\F24E"}.mdi-folder-image:before{content:"\F24F"}.mdi-folder-key:before{content:"\F8AB"}.mdi-folder-key-network:before{content:"\F8AC"}.mdi-folder-key-network-outline:before{content:"\FC5C"}.mdi-folder-lock:before{content:"\F250"}.mdi-folder-lock-open:before{content:"\F251"}.mdi-folder-move:before{content:"\F252"}.mdi-folder-multiple:before{content:"\F253"}.mdi-folder-multiple-image:before{content:"\F254"}.mdi-folder-multiple-outline:before{content:"\F255"}.mdi-folder-network:before{content:"\F86F"}.mdi-folder-network-outline:before{content:"\FC5D"}.mdi-folder-open:before{content:"\F76F"}.mdi-folder-open-outline:before{content:"\FDAB"}.mdi-folder-outline:before{content:"\F256"}.mdi-folder-plus:before{content:"\F257"}.mdi-folder-plus-outline:before{content:"\FB79"}.mdi-folder-pound:before{content:"\FCE5"}.mdi-folder-pound-outline:before{content:"\FCE6"}.mdi-folder-remove:before{content:"\F258"}.mdi-folder-remove-outline:before{content:"\FB7A"}.mdi-folder-search:before{content:"\F967"}.mdi-folder-search-outline:before{content:"\F968"}.mdi-folder-star:before{content:"\F69C"}.mdi-folder-star-outline:before{content:"\FB7B"}.mdi-folder-sync:before{content:"\FCE7"}.mdi-folder-sync-outline:before{content:"\FCE8"}.mdi-folder-text:before{content:"\FC5E"}.mdi-folder-text-outline:before{content:"\FC5F"}.mdi-folder-upload:before{content:"\F259"}.mdi-font-awesome:before{content:"\F03A"}.mdi-food:before{content:"\F25A"}.mdi-food-apple:before{content:"\F25B"}.mdi-food-apple-outline:before{content:"\FC60"}.mdi-food-croissant:before{content:"\F7C7"}.mdi-food-fork-drink:before{content:"\F5F2"}.mdi-food-off:before{content:"\F5F3"}.mdi-food-variant:before{content:"\F25C"}.mdi-football:before{content:"\F25D"}.mdi-football-australian:before{content:"\F25E"}.mdi-football-helmet:before{content:"\F25F"}.mdi-forklift:before{content:"\F7C8"}.mdi-format-align-bottom:before{content:"\F752"}.mdi-format-align-center:before{content:"\F260"}.mdi-format-align-justify:before{content:"\F261"}.mdi-format-align-left:before{content:"\F262"}.mdi-format-align-middle:before{content:"\F753"}.mdi-format-align-right:before{content:"\F263"}.mdi-format-align-top:before{content:"\F754"}.mdi-format-annotation-minus:before{content:"\FABB"}.mdi-format-annotation-plus:before{content:"\F646"}.mdi-format-bold:before{content:"\F264"}.mdi-format-clear:before{content:"\F265"}.mdi-format-color-fill:before{content:"\F266"}.mdi-format-color-text:before{content:"\F69D"}.mdi-format-columns:before{content:"\F8DE"}.mdi-format-float-center:before{content:"\F267"}.mdi-format-float-left:before{content:"\F268"}.mdi-format-float-none:before{content:"\F269"}.mdi-format-float-right:before{content:"\F26A"}.mdi-format-font:before{content:"\F6D5"}.mdi-format-font-size-decrease:before{content:"\F9F2"}.mdi-format-font-size-increase:before{content:"\F9F3"}.mdi-format-header-1:before{content:"\F26B"}.mdi-format-header-2:before{content:"\F26C"}.mdi-format-header-3:before{content:"\F26D"}.mdi-format-header-4:before{content:"\F26E"}.mdi-format-header-5:before{content:"\F26F"}.mdi-format-header-6:before{content:"\F270"}.mdi-format-header-decrease:before{content:"\F271"}.mdi-format-header-equal:before{content:"\F272"}.mdi-format-header-increase:before{content:"\F273"}.mdi-format-header-pound:before{content:"\F274"}.mdi-format-horizontal-align-center:before{content:"\F61E"}.mdi-format-horizontal-align-left:before{content:"\F61F"}.mdi-format-horizontal-align-right:before{content:"\F620"}.mdi-format-indent-decrease:before{content:"\F275"}.mdi-format-indent-increase:before{content:"\F276"}.mdi-format-italic:before{content:"\F277"}.mdi-format-letter-case:before{content:"\FB19"}.mdi-format-letter-case-lower:before{content:"\FB1A"}.mdi-format-letter-case-upper:before{content:"\FB1B"}.mdi-format-line-spacing:before{content:"\F278"}.mdi-format-line-style:before{content:"\F5C8"}.mdi-format-line-weight:before{content:"\F5C9"}.mdi-format-list-bulleted:before{content:"\F279"}.mdi-format-list-bulleted-square:before{content:"\FDAC"}.mdi-format-list-bulleted-type:before{content:"\F27A"}.mdi-format-list-checkbox:before{content:"\F969"}.mdi-format-list-checks:before{content:"\F755"}.mdi-format-list-numbered:before{content:"\F27B"}.mdi-format-list-numbered-rtl:before{content:"\FCE9"}.mdi-format-page-break:before{content:"\F6D6"}.mdi-format-paint:before{content:"\F27C"}.mdi-format-paragraph:before{content:"\F27D"}.mdi-format-pilcrow:before{content:"\F6D7"}.mdi-format-quote-close:before{content:"\F27E"}.mdi-format-quote-open:before{content:"\F756"}.mdi-format-rotate-90:before{content:"\F6A9"}.mdi-format-section:before{content:"\F69E"}.mdi-format-size:before{content:"\F27F"}.mdi-format-strikethrough:before{content:"\F280"}.mdi-format-strikethrough-variant:before{content:"\F281"}.mdi-format-subscript:before{content:"\F282"}.mdi-format-superscript:before{content:"\F283"}.mdi-format-text:before{content:"\F284"}.mdi-format-text-rotation-down:before{content:"\FD4F"}.mdi-format-text-rotation-none:before{content:"\FD50"}.mdi-format-text-wrapping-clip:before{content:"\FCEA"}.mdi-format-text-wrapping-overflow:before{content:"\FCEB"}.mdi-format-text-wrapping-wrap:before{content:"\FCEC"}.mdi-format-textbox:before{content:"\FCED"}.mdi-format-textdirection-l-to-r:before{content:"\F285"}.mdi-format-textdirection-r-to-l:before{content:"\F286"}.mdi-format-title:before{content:"\F5F4"}.mdi-format-underline:before{content:"\F287"}.mdi-format-vertical-align-bottom:before{content:"\F621"}.mdi-format-vertical-align-center:before{content:"\F622"}.mdi-format-vertical-align-top:before{content:"\F623"}.mdi-format-wrap-inline:before{content:"\F288"}.mdi-format-wrap-square:before{content:"\F289"}.mdi-format-wrap-tight:before{content:"\F28A"}.mdi-format-wrap-top-bottom:before{content:"\F28B"}.mdi-forum:before{content:"\F28C"}.mdi-forum-outline:before{content:"\F821"}.mdi-forward:before{content:"\F28D"}.mdi-forwardburger:before{content:"\FD51"}.mdi-fountain:before{content:"\F96A"}.mdi-fountain-pen:before{content:"\FCEE"}.mdi-fountain-pen-tip:before{content:"\FCEF"}.mdi-foursquare:before{content:"\F28E"}.mdi-freebsd:before{content:"\F8DF"}.mdi-fridge:before{content:"\F290"}.mdi-fridge-bottom:before{content:"\F292"}.mdi-fridge-outline:before{content:"\F28F"}.mdi-fridge-top:before{content:"\F291"}.mdi-fuel:before{content:"\F7C9"}.mdi-fullscreen:before{content:"\F293"}.mdi-fullscreen-exit:before{content:"\F294"}.mdi-function:before{content:"\F295"}.mdi-function-variant:before{content:"\F870"}.mdi-fuse:before{content:"\FC61"}.mdi-fuse-blade:before{content:"\FC62"}.mdi-gamepad:before{content:"\F296"}.mdi-gamepad-variant:before{content:"\F297"}.mdi-gantry-crane:before{content:"\FDAD"}.mdi-garage:before{content:"\F6D8"}.mdi-garage-alert:before{content:"\F871"}.mdi-garage-open:before{content:"\F6D9"}.mdi-gas-cylinder:before{content:"\F647"}.mdi-gas-station:before{content:"\F298"}.mdi-gate:before{content:"\F299"}.mdi-gate-and:before{content:"\F8E0"}.mdi-gate-nand:before{content:"\F8E1"}.mdi-gate-nor:before{content:"\F8E2"}.mdi-gate-not:before{content:"\F8E3"}.mdi-gate-or:before{content:"\F8E4"}.mdi-gate-xnor:before{content:"\F8E5"}.mdi-gate-xor:before{content:"\F8E6"}.mdi-gauge:before{content:"\F29A"}.mdi-gauge-empty:before{content:"\F872"}.mdi-gauge-full:before{content:"\F873"}.mdi-gauge-low:before{content:"\F874"}.mdi-gavel:before{content:"\F29B"}.mdi-gender-female:before{content:"\F29C"}.mdi-gender-male:before{content:"\F29D"}.mdi-gender-male-female:before{content:"\F29E"}.mdi-gender-transgender:before{content:"\F29F"}.mdi-gentoo:before{content:"\F8E7"}.mdi-gesture:before{content:"\F7CA"}.mdi-gesture-double-tap:before{content:"\F73B"}.mdi-gesture-pinch:before{content:"\FABC"}.mdi-gesture-spread:before{content:"\FABD"}.mdi-gesture-swipe:before{content:"\FD52"}.mdi-gesture-swipe-down:before{content:"\F73C"}.mdi-gesture-swipe-horizontal:before{content:"\FABE"}.mdi-gesture-swipe-left:before{content:"\F73D"}.mdi-gesture-swipe-right:before{content:"\F73E"}.mdi-gesture-swipe-up:before{content:"\F73F"}.mdi-gesture-swipe-vertical:before{content:"\FABF"}.mdi-gesture-tap:before{content:"\F740"}.mdi-gesture-tap-hold:before{content:"\FD53"}.mdi-gesture-two-double-tap:before{content:"\F741"}.mdi-gesture-two-tap:before{content:"\F742"}.mdi-ghost:before{content:"\F2A0"}.mdi-ghost-off:before{content:"\F9F4"}.mdi-gif:before{content:"\FD54"}.mdi-gift:before{content:"\F2A1"}.mdi-git:before{content:"\F2A2"}.mdi-github-box:before{content:"\F2A3"}.mdi-github-circle:before{content:"\F2A4"}.mdi-github-face:before{content:"\F6DA"}.mdi-gitlab:before{content:"\FB7C"}.mdi-glass-cocktail:before{content:"\F356"}.mdi-glass-flute:before{content:"\F2A5"}.mdi-glass-mug:before{content:"\F2A6"}.mdi-glass-stange:before{content:"\F2A7"}.mdi-glass-tulip:before{content:"\F2A8"}.mdi-glass-wine:before{content:"\F875"}.mdi-glassdoor:before{content:"\F2A9"}.mdi-glasses:before{content:"\F2AA"}.mdi-globe-model:before{content:"\F8E8"}.mdi-gmail:before{content:"\F2AB"}.mdi-gnome:before{content:"\F2AC"}.mdi-go-kart:before{content:"\FD55"}.mdi-go-kart-track:before{content:"\FD56"}.mdi-gog:before{content:"\FB7D"}.mdi-golf:before{content:"\F822"}.mdi-gondola:before{content:"\F685"}.mdi-goodreads:before{content:"\FD57"}.mdi-google:before{content:"\F2AD"}.mdi-google-adwords:before{content:"\FC63"}.mdi-google-allo:before{content:"\F801"}.mdi-google-analytics:before{content:"\F7CB"}.mdi-google-assistant:before{content:"\F7CC"}.mdi-google-cardboard:before{content:"\F2AE"}.mdi-google-chrome:before{content:"\F2AF"}.mdi-google-circles:before{content:"\F2B0"}.mdi-google-circles-communities:before{content:"\F2B1"}.mdi-google-circles-extended:before{content:"\F2B2"}.mdi-google-circles-group:before{content:"\F2B3"}.mdi-google-classroom:before{content:"\F2C0"}.mdi-google-controller:before{content:"\F2B4"}.mdi-google-controller-off:before{content:"\F2B5"}.mdi-google-drive:before{content:"\F2B6"}.mdi-google-earth:before{content:"\F2B7"}.mdi-google-fit:before{content:"\F96B"}.mdi-google-glass:before{content:"\F2B8"}.mdi-google-hangouts:before{content:"\F2C9"}.mdi-google-home:before{content:"\F823"}.mdi-google-keep:before{content:"\F6DB"}.mdi-google-lens:before{content:"\F9F5"}.mdi-google-maps:before{content:"\F5F5"}.mdi-google-nearby:before{content:"\F2B9"}.mdi-google-pages:before{content:"\F2BA"}.mdi-google-photos:before{content:"\F6DC"}.mdi-google-physical-web:before{content:"\F2BB"}.mdi-google-play:before{content:"\F2BC"}.mdi-google-plus:before{content:"\F2BD"}.mdi-google-plus-box:before{content:"\F2BE"}.mdi-google-spreadsheet:before{content:"\F9F6"}.mdi-google-street-view:before{content:"\FC64"}.mdi-google-translate:before{content:"\F2BF"}.mdi-gpu:before{content:"\F8AD"}.mdi-gradient:before{content:"\F69F"}.mdi-grain:before{content:"\FD58"}.mdi-graphql:before{content:"\F876"}.mdi-grave-stone:before{content:"\FB7E"}.mdi-grease-pencil:before{content:"\F648"}.mdi-greater-than:before{content:"\F96C"}.mdi-greater-than-or-equal:before{content:"\F96D"}.mdi-grid:before{content:"\F2C1"}.mdi-grid-large:before{content:"\F757"}.mdi-grid-off:before{content:"\F2C2"}.mdi-group:before{content:"\F2C3"}.mdi-guitar-acoustic:before{content:"\F770"}.mdi-guitar-electric:before{content:"\F2C4"}.mdi-guitar-pick:before{content:"\F2C5"}.mdi-guitar-pick-outline:before{content:"\F2C6"}.mdi-guy-fawkes-mask:before{content:"\F824"}.mdi-hackernews:before{content:"\F624"}.mdi-hail:before{content:"\FAC0"}.mdi-halloween:before{content:"\FB7F"}.mdi-hamburger:before{content:"\F684"}.mdi-hammer:before{content:"\F8E9"}.mdi-hand:before{content:"\FA4E"}.mdi-hand-okay:before{content:"\FA4F"}.mdi-hand-peace:before{content:"\FA50"}.mdi-hand-peace-variant:before{content:"\FA51"}.mdi-hand-pointing-down:before{content:"\FA52"}.mdi-hand-pointing-left:before{content:"\FA53"}.mdi-hand-pointing-right:before{content:"\F2C7"}.mdi-hand-pointing-up:before{content:"\FA54"}.mdi-hanger:before{content:"\F2C8"}.mdi-hard-hat:before{content:"\F96E"}.mdi-harddisk:before{content:"\F2CA"}.mdi-hat-fedora:before{content:"\FB80"}.mdi-hazard-lights:before{content:"\FC65"}.mdi-hdr:before{content:"\FD59"}.mdi-hdr-off:before{content:"\FD5A"}.mdi-headphones:before{content:"\F2CB"}.mdi-headphones-bluetooth:before{content:"\F96F"}.mdi-headphones-box:before{content:"\F2CC"}.mdi-headphones-off:before{content:"\F7CD"}.mdi-headphones-settings:before{content:"\F2CD"}.mdi-headset:before{content:"\F2CE"}.mdi-headset-dock:before{content:"\F2CF"}.mdi-headset-off:before{content:"\F2D0"}.mdi-heart:before{content:"\F2D1"}.mdi-heart-box:before{content:"\F2D2"}.mdi-heart-box-outline:before{content:"\F2D3"}.mdi-heart-broken:before{content:"\F2D4"}.mdi-heart-broken-outline:before{content:"\FCF0"}.mdi-heart-circle:before{content:"\F970"}.mdi-heart-circle-outline:before{content:"\F971"}.mdi-heart-half:before{content:"\F6DE"}.mdi-heart-half-full:before{content:"\F6DD"}.mdi-heart-half-outline:before{content:"\F6DF"}.mdi-heart-multiple:before{content:"\FA55"}.mdi-heart-multiple-outline:before{content:"\FA56"}.mdi-heart-off:before{content:"\F758"}.mdi-heart-outline:before{content:"\F2D5"}.mdi-heart-pulse:before{content:"\F5F6"}.mdi-helicopter:before{content:"\FAC1"}.mdi-help:before{content:"\F2D6"}.mdi-help-box:before{content:"\F78A"}.mdi-help-circle:before{content:"\F2D7"}.mdi-help-circle-outline:before{content:"\F625"}.mdi-help-network:before{content:"\F6F4"}.mdi-help-network-outline:before{content:"\FC66"}.mdi-help-rhombus:before{content:"\FB81"}.mdi-help-rhombus-outline:before{content:"\FB82"}.mdi-hexagon:before{content:"\F2D8"}.mdi-hexagon-multiple:before{content:"\F6E0"}.mdi-hexagon-outline:before{content:"\F2D9"}.mdi-hexagon-slice-1:before{content:"\FAC2"}.mdi-hexagon-slice-2:before{content:"\FAC3"}.mdi-hexagon-slice-3:before{content:"\FAC4"}.mdi-hexagon-slice-4:before{content:"\FAC5"}.mdi-hexagon-slice-5:before{content:"\FAC6"}.mdi-hexagon-slice-6:before{content:"\FAC7"}.mdi-hexagram:before{content:"\FAC8"}.mdi-hexagram-outline:before{content:"\FAC9"}.mdi-high-definition:before{content:"\F7CE"}.mdi-high-definition-box:before{content:"\F877"}.mdi-highway:before{content:"\F5F7"}.mdi-hiking:before{content:"\FD5B"}.mdi-hinduism:before{content:"\F972"}.mdi-history:before{content:"\F2DA"}.mdi-hockey-puck:before{content:"\F878"}.mdi-hockey-sticks:before{content:"\F879"}.mdi-hololens:before{content:"\F2DB"}.mdi-home:before{content:"\F2DC"}.mdi-home-account:before{content:"\F825"}.mdi-home-alert:before{content:"\F87A"}.mdi-home-assistant:before{content:"\F7CF"}.mdi-home-automation:before{content:"\F7D0"}.mdi-home-circle:before{content:"\F7D1"}.mdi-home-city:before{content:"\FCF1"}.mdi-home-city-outline:before{content:"\FCF2"}.mdi-home-currency-usd:before{content:"\F8AE"}.mdi-home-floor-0:before{content:"\FDAE"}.mdi-home-floor-1:before{content:"\FD5C"}.mdi-home-floor-2:before{content:"\FD5D"}.mdi-home-floor-3:before{content:"\FD5E"}.mdi-home-floor-a:before{content:"\FD5F"}.mdi-home-floor-b:before{content:"\FD60"}.mdi-home-floor-g:before{content:"\FD61"}.mdi-home-floor-l:before{content:"\FD62"}.mdi-home-floor-negative-1:before{content:"\FDAF"}.mdi-home-group:before{content:"\FDB0"}.mdi-home-heart:before{content:"\F826"}.mdi-home-lock:before{content:"\F8EA"}.mdi-home-lock-open:before{content:"\F8EB"}.mdi-home-map-marker:before{content:"\F5F8"}.mdi-home-minus:before{content:"\F973"}.mdi-home-modern:before{content:"\F2DD"}.mdi-home-outline:before{content:"\F6A0"}.mdi-home-plus:before{content:"\F974"}.mdi-home-variant:before{content:"\F2DE"}.mdi-home-variant-outline:before{content:"\FB83"}.mdi-hook:before{content:"\F6E1"}.mdi-hook-off:before{content:"\F6E2"}.mdi-hops:before{content:"\F2DF"}.mdi-horseshoe:before{content:"\FA57"}.mdi-hospital:before{content:"\F2E0"}.mdi-hospital-building:before{content:"\F2E1"}.mdi-hospital-marker:before{content:"\F2E2"}.mdi-hot-tub:before{content:"\F827"}.mdi-hotel:before{content:"\F2E3"}.mdi-houzz:before{content:"\F2E4"}.mdi-houzz-box:before{content:"\F2E5"}.mdi-hubspot:before{content:"\FCF3"}.mdi-hulu:before{content:"\F828"}.mdi-human:before{content:"\F2E6"}.mdi-human-child:before{content:"\F2E7"}.mdi-human-female:before{content:"\F649"}.mdi-human-female-boy:before{content:"\FA58"}.mdi-human-female-female:before{content:"\FA59"}.mdi-human-female-girl:before{content:"\FA5A"}.mdi-human-greeting:before{content:"\F64A"}.mdi-human-handsdown:before{content:"\F64B"}.mdi-human-handsup:before{content:"\F64C"}.mdi-human-male:before{content:"\F64D"}.mdi-human-male-boy:before{content:"\FA5B"}.mdi-human-male-female:before{content:"\F2E8"}.mdi-human-male-girl:before{content:"\FA5C"}.mdi-human-male-male:before{content:"\FA5D"}.mdi-human-pregnant:before{content:"\F5CF"}.mdi-humble-bundle:before{content:"\F743"}.mdi-ice-cream:before{content:"\F829"}.mdi-iframe:before{content:"\FC67"}.mdi-iframe-outline:before{content:"\FC68"}.mdi-image:before{content:"\F2E9"}.mdi-image-album:before{content:"\F2EA"}.mdi-image-area:before{content:"\F2EB"}.mdi-image-area-close:before{content:"\F2EC"}.mdi-image-broken:before{content:"\F2ED"}.mdi-image-broken-variant:before{content:"\F2EE"}.mdi-image-filter:before{content:"\F2EF"}.mdi-image-filter-black-white:before{content:"\F2F0"}.mdi-image-filter-center-focus:before{content:"\F2F1"}.mdi-image-filter-center-focus-weak:before{content:"\F2F2"}.mdi-image-filter-drama:before{content:"\F2F3"}.mdi-image-filter-frames:before{content:"\F2F4"}.mdi-image-filter-hdr:before{content:"\F2F5"}.mdi-image-filter-none:before{content:"\F2F6"}.mdi-image-filter-tilt-shift:before{content:"\F2F7"}.mdi-image-filter-vintage:before{content:"\F2F8"}.mdi-image-move:before{content:"\F9F7"}.mdi-image-multiple:before{content:"\F2F9"}.mdi-image-off:before{content:"\F82A"}.mdi-image-outline:before{content:"\F975"}.mdi-image-plus:before{content:"\F87B"}.mdi-image-search:before{content:"\F976"}.mdi-image-search-outline:before{content:"\F977"}.mdi-image-size-select-actual:before{content:"\FC69"}.mdi-image-size-select-large:before{content:"\FC6A"}.mdi-image-size-select-small:before{content:"\FC6B"}.mdi-import:before{content:"\F2FA"}.mdi-inbox:before{content:"\F686"}.mdi-inbox-arrow-down:before{content:"\F2FB"}.mdi-inbox-arrow-up:before{content:"\F3D1"}.mdi-inbox-multiple:before{content:"\F8AF"}.mdi-inbox-multiple-outline:before{content:"\FB84"}.mdi-incognito:before{content:"\F5F9"}.mdi-infinity:before{content:"\F6E3"}.mdi-information:before{content:"\F2FC"}.mdi-information-outline:before{content:"\F2FD"}.mdi-information-variant:before{content:"\F64E"}.mdi-instagram:before{content:"\F2FE"}.mdi-instapaper:before{content:"\F2FF"}.mdi-internet-explorer:before{content:"\F300"}.mdi-invert-colors:before{content:"\F301"}.mdi-ip:before{content:"\FA5E"}.mdi-ip-network:before{content:"\FA5F"}.mdi-ip-network-outline:before{content:"\FC6C"}.mdi-ipod:before{content:"\FC6D"}.mdi-islam:before{content:"\F978"}.mdi-itunes:before{content:"\F676"}.mdi-jabber:before{content:"\FDB1"}.mdi-jeepney:before{content:"\F302"}.mdi-jira:before{content:"\F303"}.mdi-jquery:before{content:"\F87C"}.mdi-jsfiddle:before{content:"\F304"}.mdi-json:before{content:"\F626"}.mdi-judaism:before{content:"\F979"}.mdi-kabaddi:before{content:"\FD63"}.mdi-karate:before{content:"\F82B"}.mdi-keg:before{content:"\F305"}.mdi-kettle:before{content:"\F5FA"}.mdi-key:before{content:"\F306"}.mdi-key-change:before{content:"\F307"}.mdi-key-minus:before{content:"\F308"}.mdi-key-outline:before{content:"\FDB2"}.mdi-key-plus:before{content:"\F309"}.mdi-key-remove:before{content:"\F30A"}.mdi-key-variant:before{content:"\F30B"}.mdi-keyboard:before{content:"\F30C"}.mdi-keyboard-backspace:before{content:"\F30D"}.mdi-keyboard-caps:before{content:"\F30E"}.mdi-keyboard-close:before{content:"\F30F"}.mdi-keyboard-off:before{content:"\F310"}.mdi-keyboard-outline:before{content:"\F97A"}.mdi-keyboard-return:before{content:"\F311"}.mdi-keyboard-settings:before{content:"\F9F8"}.mdi-keyboard-settings-outline:before{content:"\F9F9"}.mdi-keyboard-tab:before{content:"\F312"}.mdi-keyboard-variant:before{content:"\F313"}.mdi-kickstarter:before{content:"\F744"}.mdi-knife:before{content:"\F9FA"}.mdi-knife-military:before{content:"\F9FB"}.mdi-kodi:before{content:"\F314"}.mdi-label:before{content:"\F315"}.mdi-label-off:before{content:"\FACA"}.mdi-label-off-outline:before{content:"\FACB"}.mdi-label-outline:before{content:"\F316"}.mdi-label-variant:before{content:"\FACC"}.mdi-label-variant-outline:before{content:"\FACD"}.mdi-ladybug:before{content:"\F82C"}.mdi-lambda:before{content:"\F627"}.mdi-lamp:before{content:"\F6B4"}.mdi-lan:before{content:"\F317"}.mdi-lan-connect:before{content:"\F318"}.mdi-lan-disconnect:before{content:"\F319"}.mdi-lan-pending:before{content:"\F31A"}.mdi-language-c:before{content:"\F671"}.mdi-language-cpp:before{content:"\F672"}.mdi-language-csharp:before{content:"\F31B"}.mdi-language-css3:before{content:"\F31C"}.mdi-language-go:before{content:"\F7D2"}.mdi-language-haskell:before{content:"\FC6E"}.mdi-language-html5:before{content:"\F31D"}.mdi-language-java:before{content:"\FB1C"}.mdi-language-javascript:before{content:"\F31E"}.mdi-language-lua:before{content:"\F8B0"}.mdi-language-php:before{content:"\F31F"}.mdi-language-python:before{content:"\F320"}.mdi-language-python-text:before{content:"\F321"}.mdi-language-r:before{content:"\F7D3"}.mdi-language-ruby-on-rails:before{content:"\FACE"}.mdi-language-swift:before{content:"\F6E4"}.mdi-language-typescript:before{content:"\F6E5"}.mdi-laptop:before{content:"\F322"}.mdi-laptop-chromebook:before{content:"\F323"}.mdi-laptop-mac:before{content:"\F324"}.mdi-laptop-off:before{content:"\F6E6"}.mdi-laptop-windows:before{content:"\F325"}.mdi-laravel:before{content:"\FACF"}.mdi-lastfm:before{content:"\F326"}.mdi-lastpass:before{content:"\F446"}.mdi-launch:before{content:"\F327"}.mdi-lava-lamp:before{content:"\F7D4"}.mdi-layers:before{content:"\F328"}.mdi-layers-off:before{content:"\F329"}.mdi-layers-off-outline:before{content:"\F9FC"}.mdi-layers-outline:before{content:"\F9FD"}.mdi-lead-pencil:before{content:"\F64F"}.mdi-leaf:before{content:"\F32A"}.mdi-leaf-maple:before{content:"\FC6F"}.mdi-leak:before{content:"\FDB3"}.mdi-leak-off:before{content:"\FDB4"}.mdi-led-off:before{content:"\F32B"}.mdi-led-on:before{content:"\F32C"}.mdi-led-outline:before{content:"\F32D"}.mdi-led-strip:before{content:"\F7D5"}.mdi-led-variant-off:before{content:"\F32E"}.mdi-led-variant-on:before{content:"\F32F"}.mdi-led-variant-outline:before{content:"\F330"}.mdi-less-than:before{content:"\F97B"}.mdi-less-than-or-equal:before{content:"\F97C"}.mdi-library:before{content:"\F331"}.mdi-library-books:before{content:"\F332"}.mdi-library-movie:before{content:"\FCF4"}.mdi-library-music:before{content:"\F333"}.mdi-library-plus:before{content:"\F334"}.mdi-library-shelves:before{content:"\FB85"}.mdi-library-video:before{content:"\FCF5"}.mdi-lifebuoy:before{content:"\F87D"}.mdi-light-switch:before{content:"\F97D"}.mdi-lightbulb:before{content:"\F335"}.mdi-lightbulb-on:before{content:"\F6E7"}.mdi-lightbulb-on-outline:before{content:"\F6E8"}.mdi-lightbulb-outline:before{content:"\F336"}.mdi-lighthouse:before{content:"\F9FE"}.mdi-lighthouse-on:before{content:"\F9FF"}.mdi-link:before{content:"\F337"}.mdi-link-box:before{content:"\FCF6"}.mdi-link-box-outline:before{content:"\FCF7"}.mdi-link-box-variant:before{content:"\FCF8"}.mdi-link-box-variant-outline:before{content:"\FCF9"}.mdi-link-off:before{content:"\F338"}.mdi-link-plus:before{content:"\FC70"}.mdi-link-variant:before{content:"\F339"}.mdi-link-variant-off:before{content:"\F33A"}.mdi-linkedin:before{content:"\F33B"}.mdi-linkedin-box:before{content:"\F33C"}.mdi-linux:before{content:"\F33D"}.mdi-linux-mint:before{content:"\F8EC"}.mdi-litecoin:before{content:"\FA60"}.mdi-loading:before{content:"\F771"}.mdi-lock:before{content:"\F33E"}.mdi-lock-alert:before{content:"\F8ED"}.mdi-lock-clock:before{content:"\F97E"}.mdi-lock-open:before{content:"\F33F"}.mdi-lock-open-outline:before{content:"\F340"}.mdi-lock-outline:before{content:"\F341"}.mdi-lock-pattern:before{content:"\F6E9"}.mdi-lock-plus:before{content:"\F5FB"}.mdi-lock-question:before{content:"\F8EE"}.mdi-lock-reset:before{content:"\F772"}.mdi-lock-smart:before{content:"\F8B1"}.mdi-locker:before{content:"\F7D6"}.mdi-locker-multiple:before{content:"\F7D7"}.mdi-login:before{content:"\F342"}.mdi-login-variant:before{content:"\F5FC"}.mdi-logout:before{content:"\F343"}.mdi-logout-variant:before{content:"\F5FD"}.mdi-looks:before{content:"\F344"}.mdi-loop:before{content:"\F6EA"}.mdi-loupe:before{content:"\F345"}.mdi-lumx:before{content:"\F346"}.mdi-lyft:before{content:"\FB1D"}.mdi-magnet:before{content:"\F347"}.mdi-magnet-on:before{content:"\F348"}.mdi-magnify:before{content:"\F349"}.mdi-magnify-close:before{content:"\F97F"}.mdi-magnify-minus:before{content:"\F34A"}.mdi-magnify-minus-cursor:before{content:"\FA61"}.mdi-magnify-minus-outline:before{content:"\F6EB"}.mdi-magnify-plus:before{content:"\F34B"}.mdi-magnify-plus-cursor:before{content:"\FA62"}.mdi-magnify-plus-outline:before{content:"\F6EC"}.mdi-mail-ru:before{content:"\F34C"}.mdi-mailbox:before{content:"\F6ED"}.mdi-mailbox-open:before{content:"\FD64"}.mdi-mailbox-open-outline:before{content:"\FD65"}.mdi-mailbox-open-up:before{content:"\FD66"}.mdi-mailbox-open-up-outline:before{content:"\FD67"}.mdi-mailbox-outline:before{content:"\FD68"}.mdi-mailbox-up:before{content:"\FD69"}.mdi-mailbox-up-outline:before{content:"\FD6A"}.mdi-map:before{content:"\F34D"}.mdi-map-clock:before{content:"\FCFA"}.mdi-map-clock-outline:before{content:"\FCFB"}.mdi-map-legend:before{content:"\FA00"}.mdi-map-marker:before{content:"\F34E"}.mdi-map-marker-check:before{content:"\FC71"}.mdi-map-marker-circle:before{content:"\F34F"}.mdi-map-marker-distance:before{content:"\F8EF"}.mdi-map-marker-minus:before{content:"\F650"}.mdi-map-marker-multiple:before{content:"\F350"}.mdi-map-marker-off:before{content:"\F351"}.mdi-map-marker-outline:before{content:"\F7D8"}.mdi-map-marker-path:before{content:"\FCFC"}.mdi-map-marker-plus:before{content:"\F651"}.mdi-map-marker-radius:before{content:"\F352"}.mdi-map-minus:before{content:"\F980"}.mdi-map-outline:before{content:"\F981"}.mdi-map-plus:before{content:"\F982"}.mdi-map-search:before{content:"\F983"}.mdi-map-search-outline:before{content:"\F984"}.mdi-mapbox:before{content:"\FB86"}.mdi-margin:before{content:"\F353"}.mdi-markdown:before{content:"\F354"}.mdi-marker:before{content:"\F652"}.mdi-marker-cancel:before{content:"\FDB5"}.mdi-marker-check:before{content:"\F355"}.mdi-mastodon:before{content:"\FAD0"}.mdi-mastodon-variant:before{content:"\FAD1"}.mdi-material-design:before{content:"\F985"}.mdi-material-ui:before{content:"\F357"}.mdi-math-compass:before{content:"\F358"}.mdi-math-cos:before{content:"\FC72"}.mdi-math-sin:before{content:"\FC73"}.mdi-math-tan:before{content:"\FC74"}.mdi-matrix:before{content:"\F628"}.mdi-maxcdn:before{content:"\F359"}.mdi-medal:before{content:"\F986"}.mdi-medical-bag:before{content:"\F6EE"}.mdi-medium:before{content:"\F35A"}.mdi-meetup:before{content:"\FAD2"}.mdi-memory:before{content:"\F35B"}.mdi-menu:before{content:"\F35C"}.mdi-menu-down:before{content:"\F35D"}.mdi-menu-down-outline:before{content:"\F6B5"}.mdi-menu-left:before{content:"\F35E"}.mdi-menu-left-outline:before{content:"\FA01"}.mdi-menu-open:before{content:"\FB87"}.mdi-menu-right:before{content:"\F35F"}.mdi-menu-right-outline:before{content:"\FA02"}.mdi-menu-swap:before{content:"\FA63"}.mdi-menu-swap-outline:before{content:"\FA64"}.mdi-menu-up:before{content:"\F360"}.mdi-menu-up-outline:before{content:"\F6B6"}.mdi-message:before{content:"\F361"}.mdi-message-alert:before{content:"\F362"}.mdi-message-alert-outline:before{content:"\FA03"}.mdi-message-bulleted:before{content:"\F6A1"}.mdi-message-bulleted-off:before{content:"\F6A2"}.mdi-message-draw:before{content:"\F363"}.mdi-message-image:before{content:"\F364"}.mdi-message-outline:before{content:"\F365"}.mdi-message-plus:before{content:"\F653"}.mdi-message-processing:before{content:"\F366"}.mdi-message-reply:before{content:"\F367"}.mdi-message-reply-text:before{content:"\F368"}.mdi-message-settings:before{content:"\F6EF"}.mdi-message-settings-variant:before{content:"\F6F0"}.mdi-message-text:before{content:"\F369"}.mdi-message-text-outline:before{content:"\F36A"}.mdi-message-video:before{content:"\F36B"}.mdi-meteor:before{content:"\F629"}.mdi-metronome:before{content:"\F7D9"}.mdi-metronome-tick:before{content:"\F7DA"}.mdi-micro-sd:before{content:"\F7DB"}.mdi-microphone:before{content:"\F36C"}.mdi-microphone-minus:before{content:"\F8B2"}.mdi-microphone-off:before{content:"\F36D"}.mdi-microphone-outline:before{content:"\F36E"}.mdi-microphone-plus:before{content:"\F8B3"}.mdi-microphone-settings:before{content:"\F36F"}.mdi-microphone-variant:before{content:"\F370"}.mdi-microphone-variant-off:before{content:"\F371"}.mdi-microscope:before{content:"\F654"}.mdi-microsoft:before{content:"\F372"}.mdi-microsoft-dynamics:before{content:"\F987"}.mdi-microwave:before{content:"\FC75"}.mdi-midi:before{content:"\F8F0"}.mdi-midi-port:before{content:"\F8F1"}.mdi-mine:before{content:"\FDB6"}.mdi-minecraft:before{content:"\F373"}.mdi-mini-sd:before{content:"\FA04"}.mdi-minidisc:before{content:"\FA05"}.mdi-minus:before{content:"\F374"}.mdi-minus-box:before{content:"\F375"}.mdi-minus-box-outline:before{content:"\F6F1"}.mdi-minus-circle:before{content:"\F376"}.mdi-minus-circle-outline:before{content:"\F377"}.mdi-minus-network:before{content:"\F378"}.mdi-minus-network-outline:before{content:"\FC76"}.mdi-mixcloud:before{content:"\F62A"}.mdi-mixed-martial-arts:before{content:"\FD6B"}.mdi-mixed-reality:before{content:"\F87E"}.mdi-mixer:before{content:"\F7DC"}.mdi-molecule:before{content:"\FB88"}.mdi-monitor:before{content:"\F379"}.mdi-monitor-cellphone:before{content:"\F988"}.mdi-monitor-cellphone-star:before{content:"\F989"}.mdi-monitor-dashboard:before{content:"\FA06"}.mdi-monitor-lock:before{content:"\FDB7"}.mdi-monitor-multiple:before{content:"\F37A"}.mdi-monitor-off:before{content:"\FD6C"}.mdi-monitor-star:before{content:"\FDB8"}.mdi-more:before{content:"\F37B"}.mdi-mother-nurse:before{content:"\FCFD"}.mdi-motion-sensor:before{content:"\FD6D"}.mdi-motorbike:before{content:"\F37C"}.mdi-mouse:before{content:"\F37D"}.mdi-mouse-bluetooth:before{content:"\F98A"}.mdi-mouse-off:before{content:"\F37E"}.mdi-mouse-variant:before{content:"\F37F"}.mdi-mouse-variant-off:before{content:"\F380"}.mdi-move-resize:before{content:"\F655"}.mdi-move-resize-variant:before{content:"\F656"}.mdi-movie:before{content:"\F381"}.mdi-movie-outline:before{content:"\FDB9"}.mdi-movie-roll:before{content:"\F7DD"}.mdi-muffin:before{content:"\F98B"}.mdi-multiplication:before{content:"\F382"}.mdi-multiplication-box:before{content:"\F383"}.mdi-mushroom:before{content:"\F7DE"}.mdi-mushroom-outline:before{content:"\F7DF"}.mdi-music:before{content:"\F759"}.mdi-music-box:before{content:"\F384"}.mdi-music-box-outline:before{content:"\F385"}.mdi-music-circle:before{content:"\F386"}.mdi-music-circle-outline:before{content:"\FAD3"}.mdi-music-note:before{content:"\F387"}.mdi-music-note-bluetooth:before{content:"\F5FE"}.mdi-music-note-bluetooth-off:before{content:"\F5FF"}.mdi-music-note-eighth:before{content:"\F388"}.mdi-music-note-half:before{content:"\F389"}.mdi-music-note-off:before{content:"\F38A"}.mdi-music-note-plus:before{content:"\FDBA"}.mdi-music-note-quarter:before{content:"\F38B"}.mdi-music-note-sixteenth:before{content:"\F38C"}.mdi-music-note-whole:before{content:"\F38D"}.mdi-music-off:before{content:"\F75A"}.mdi-nail:before{content:"\FDBB"}.mdi-nas:before{content:"\F8F2"}.mdi-nativescript:before{content:"\F87F"}.mdi-nature:before{content:"\F38E"}.mdi-nature-people:before{content:"\F38F"}.mdi-navigation:before{content:"\F390"}.mdi-near-me:before{content:"\F5CD"}.mdi-needle:before{content:"\F391"}.mdi-netflix:before{content:"\F745"}.mdi-network:before{content:"\F6F2"}.mdi-network-off:before{content:"\FC77"}.mdi-network-off-outline:before{content:"\FC78"}.mdi-network-outline:before{content:"\FC79"}.mdi-network-strength-1:before{content:"\F8F3"}.mdi-network-strength-1-alert:before{content:"\F8F4"}.mdi-network-strength-2:before{content:"\F8F5"}.mdi-network-strength-2-alert:before{content:"\F8F6"}.mdi-network-strength-3:before{content:"\F8F7"}.mdi-network-strength-3-alert:before{content:"\F8F8"}.mdi-network-strength-4:before{content:"\F8F9"}.mdi-network-strength-4-alert:before{content:"\F8FA"}.mdi-network-strength-off:before{content:"\F8FB"}.mdi-network-strength-off-outline:before{content:"\F8FC"}.mdi-network-strength-outline:before{content:"\F8FD"}.mdi-new-box:before{content:"\F394"}.mdi-newspaper:before{content:"\F395"}.mdi-nfc:before{content:"\F396"}.mdi-nfc-tap:before{content:"\F397"}.mdi-nfc-variant:before{content:"\F398"}.mdi-ninja:before{content:"\F773"}.mdi-nintendo-switch:before{content:"\F7E0"}.mdi-nodejs:before{content:"\F399"}.mdi-not-equal:before{content:"\F98C"}.mdi-not-equal-variant:before{content:"\F98D"}.mdi-note:before{content:"\F39A"}.mdi-note-multiple:before{content:"\F6B7"}.mdi-note-multiple-outline:before{content:"\F6B8"}.mdi-note-outline:before{content:"\F39B"}.mdi-note-plus:before{content:"\F39C"}.mdi-note-plus-outline:before{content:"\F39D"}.mdi-note-text:before{content:"\F39E"}.mdi-notebook:before{content:"\F82D"}.mdi-notification-clear-all:before{content:"\F39F"}.mdi-npm:before{content:"\F6F6"}.mdi-npm-variant:before{content:"\F98E"}.mdi-npm-variant-outline:before{content:"\F98F"}.mdi-nuke:before{content:"\F6A3"}.mdi-null:before{content:"\F7E1"}.mdi-numeric:before{content:"\F3A0"}.mdi-numeric-0:before{content:"\30"}.mdi-numeric-0-box:before{content:"\F3A1"}.mdi-numeric-0-box-multiple-outline:before{content:"\F3A2"}.mdi-numeric-0-box-outline:before{content:"\F3A3"}.mdi-numeric-0-circle:before{content:"\FC7A"}.mdi-numeric-0-circle-outline:before{content:"\FC7B"}.mdi-numeric-1:before{content:"\31"}.mdi-numeric-1-box:before{content:"\F3A4"}.mdi-numeric-1-box-multiple-outline:before{content:"\F3A5"}.mdi-numeric-1-box-outline:before{content:"\F3A6"}.mdi-numeric-1-circle:before{content:"\FC7C"}.mdi-numeric-1-circle-outline:before{content:"\FC7D"}.mdi-numeric-2:before{content:"\32"}.mdi-numeric-2-box:before{content:"\F3A7"}.mdi-numeric-2-box-multiple-outline:before{content:"\F3A8"}.mdi-numeric-2-box-outline:before{content:"\F3A9"}.mdi-numeric-2-circle:before{content:"\FC7E"}.mdi-numeric-2-circle-outline:before{content:"\FC7F"}.mdi-numeric-3:before{content:"\33"}.mdi-numeric-3-box:before{content:"\F3AA"}.mdi-numeric-3-box-multiple-outline:before{content:"\F3AB"}.mdi-numeric-3-box-outline:before{content:"\F3AC"}.mdi-numeric-3-circle:before{content:"\FC80"}.mdi-numeric-3-circle-outline:before{content:"\FC81"}.mdi-numeric-4:before{content:"\34"}.mdi-numeric-4-box:before{content:"\F3AD"}.mdi-numeric-4-box-multiple-outline:before{content:"\F3AE"}.mdi-numeric-4-box-outline:before{content:"\F3AF"}.mdi-numeric-4-circle:before{content:"\FC82"}.mdi-numeric-4-circle-outline:before{content:"\FC83"}.mdi-numeric-5:before{content:"\35"}.mdi-numeric-5-box:before{content:"\F3B0"}.mdi-numeric-5-box-multiple-outline:before{content:"\F3B1"}.mdi-numeric-5-box-outline:before{content:"\F3B2"}.mdi-numeric-5-circle:before{content:"\FC84"}.mdi-numeric-5-circle-outline:before{content:"\FC85"}.mdi-numeric-6:before{content:"\36"}.mdi-numeric-6-box:before{content:"\F3B3"}.mdi-numeric-6-box-multiple-outline:before{content:"\F3B4"}.mdi-numeric-6-box-outline:before{content:"\F3B5"}.mdi-numeric-6-circle:before{content:"\FC86"}.mdi-numeric-6-circle-outline:before{content:"\FC87"}.mdi-numeric-7:before{content:"\37"}.mdi-numeric-7-box:before{content:"\F3B6"}.mdi-numeric-7-box-multiple-outline:before{content:"\F3B7"}.mdi-numeric-7-box-outline:before{content:"\F3B8"}.mdi-numeric-7-circle:before{content:"\FC88"}.mdi-numeric-7-circle-outline:before{content:"\FC89"}.mdi-numeric-8:before{content:"\38"}.mdi-numeric-8-box:before{content:"\F3B9"}.mdi-numeric-8-box-multiple-outline:before{content:"\F3BA"}.mdi-numeric-8-box-outline:before{content:"\F3BB"}.mdi-numeric-8-circle:before{content:"\FC8A"}.mdi-numeric-8-circle-outline:before{content:"\FC8B"}.mdi-numeric-9:before{content:"\39"}.mdi-numeric-9-box:before{content:"\F3BC"}.mdi-numeric-9-box-multiple-outline:before{content:"\F3BD"}.mdi-numeric-9-box-outline:before{content:"\F3BE"}.mdi-numeric-9-circle:before{content:"\FC8C"}.mdi-numeric-9-circle-outline:before{content:"\FC8D"}.mdi-numeric-9-plus-box:before{content:"\F3BF"}.mdi-numeric-9-plus-box-multiple-outline:before{content:"\F3C0"}.mdi-numeric-9-plus-box-outline:before{content:"\F3C1"}.mdi-numeric-9-plus-circle:before{content:"\FC8E"}.mdi-numeric-9-plus-circle-outline:before{content:"\FC8F"}.mdi-nut:before{content:"\F6F7"}.mdi-nutrition:before{content:"\F3C2"}.mdi-oar:before{content:"\F67B"}.mdi-ocarina:before{content:"\FDBC"}.mdi-octagon:before{content:"\F3C3"}.mdi-octagon-outline:before{content:"\F3C4"}.mdi-octagram:before{content:"\F6F8"}.mdi-octagram-outline:before{content:"\F774"}.mdi-odnoklassniki:before{content:"\F3C5"}.mdi-office:before{content:"\F3C6"}.mdi-office-building:before{content:"\F990"}.mdi-oil:before{content:"\F3C7"}.mdi-oil-temperature:before{content:"\F3C8"}.mdi-omega:before{content:"\F3C9"}.mdi-one-up:before{content:"\FB89"}.mdi-onedrive:before{content:"\F3CA"}.mdi-onenote:before{content:"\F746"}.mdi-onepassword:before{content:"\F880"}.mdi-opacity:before{content:"\F5CC"}.mdi-open-in-app:before{content:"\F3CB"}.mdi-open-in-new:before{content:"\F3CC"}.mdi-open-source-initiative:before{content:"\FB8A"}.mdi-openid:before{content:"\F3CD"}.mdi-opera:before{content:"\F3CE"}.mdi-orbit:before{content:"\F018"}.mdi-origin:before{content:"\FB2B"}.mdi-ornament:before{content:"\F3CF"}.mdi-ornament-variant:before{content:"\F3D0"}.mdi-outlook:before{content:"\FCFE"}.mdi-owl:before{content:"\F3D2"}.mdi-pac-man:before{content:"\FB8B"}.mdi-package:before{content:"\F3D3"}.mdi-package-down:before{content:"\F3D4"}.mdi-package-up:before{content:"\F3D5"}.mdi-package-variant:before{content:"\F3D6"}.mdi-package-variant-closed:before{content:"\F3D7"}.mdi-page-first:before{content:"\F600"}.mdi-page-last:before{content:"\F601"}.mdi-page-layout-body:before{content:"\F6F9"}.mdi-page-layout-footer:before{content:"\F6FA"}.mdi-page-layout-header:before{content:"\F6FB"}.mdi-page-layout-sidebar-left:before{content:"\F6FC"}.mdi-page-layout-sidebar-right:before{content:"\F6FD"}.mdi-page-next:before{content:"\FB8C"}.mdi-page-next-outline:before{content:"\FB8D"}.mdi-page-previous:before{content:"\FB8E"}.mdi-page-previous-outline:before{content:"\FB8F"}.mdi-palette:before{content:"\F3D8"}.mdi-palette-advanced:before{content:"\F3D9"}.mdi-palette-outline:before{content:"\FDE8"}.mdi-palette-swatch:before{content:"\F8B4"}.mdi-pan:before{content:"\FB90"}.mdi-pan-bottom-left:before{content:"\FB91"}.mdi-pan-bottom-right:before{content:"\FB92"}.mdi-pan-down:before{content:"\FB93"}.mdi-pan-horizontal:before{content:"\FB94"}.mdi-pan-left:before{content:"\FB95"}.mdi-pan-right:before{content:"\FB96"}.mdi-pan-top-left:before{content:"\FB97"}.mdi-pan-top-right:before{content:"\FB98"}.mdi-pan-up:before{content:"\FB99"}.mdi-pan-vertical:before{content:"\FB9A"}.mdi-panda:before{content:"\F3DA"}.mdi-pandora:before{content:"\F3DB"}.mdi-panorama:before{content:"\F3DC"}.mdi-panorama-fisheye:before{content:"\F3DD"}.mdi-panorama-horizontal:before{content:"\F3DE"}.mdi-panorama-vertical:before{content:"\F3DF"}.mdi-panorama-wide-angle:before{content:"\F3E0"}.mdi-paper-cut-vertical:before{content:"\F3E1"}.mdi-paperclip:before{content:"\F3E2"}.mdi-parachute:before{content:"\FC90"}.mdi-parachute-outline:before{content:"\FC91"}.mdi-parking:before{content:"\F3E3"}.mdi-passport:before{content:"\F7E2"}.mdi-passport-biometric:before{content:"\FDBD"}.mdi-patreon:before{content:"\F881"}.mdi-pause:before{content:"\F3E4"}.mdi-pause-circle:before{content:"\F3E5"}.mdi-pause-circle-outline:before{content:"\F3E6"}.mdi-pause-octagon:before{content:"\F3E7"}.mdi-pause-octagon-outline:before{content:"\F3E8"}.mdi-paw:before{content:"\F3E9"}.mdi-paw-off:before{content:"\F657"}.mdi-paypal:before{content:"\F882"}.mdi-peace:before{content:"\F883"}.mdi-pen:before{content:"\F3EA"}.mdi-pen-lock:before{content:"\FDBE"}.mdi-pen-minus:before{content:"\FDBF"}.mdi-pen-off:before{content:"\FDC0"}.mdi-pen-plus:before{content:"\FDC1"}.mdi-pen-remove:before{content:"\FDC2"}.mdi-pencil:before{content:"\F3EB"}.mdi-pencil-box:before{content:"\F3EC"}.mdi-pencil-box-outline:before{content:"\F3ED"}.mdi-pencil-circle:before{content:"\F6FE"}.mdi-pencil-circle-outline:before{content:"\F775"}.mdi-pencil-lock:before{content:"\F3EE"}.mdi-pencil-lock-outline:before{content:"\FDC3"}.mdi-pencil-minus:before{content:"\FDC4"}.mdi-pencil-minus-outline:before{content:"\FDC5"}.mdi-pencil-off:before{content:"\F3EF"}.mdi-pencil-off-outline:before{content:"\FDC6"}.mdi-pencil-outline:before{content:"\FC92"}.mdi-pencil-plus:before{content:"\FDC7"}.mdi-pencil-plus-outline:before{content:"\FDC8"}.mdi-pencil-remove:before{content:"\FDC9"}.mdi-pencil-remove-outline:before{content:"\FDCA"}.mdi-pentagon:before{content:"\F6FF"}.mdi-pentagon-outline:before{content:"\F700"}.mdi-percent:before{content:"\F3F0"}.mdi-periodic-table:before{content:"\F8B5"}.mdi-periodic-table-co2:before{content:"\F7E3"}.mdi-periscope:before{content:"\F747"}.mdi-perspective-less:before{content:"\FCFF"}.mdi-perspective-more:before{content:"\FD00"}.mdi-pharmacy:before{content:"\F3F1"}.mdi-phone:before{content:"\F3F2"}.mdi-phone-bluetooth:before{content:"\F3F3"}.mdi-phone-classic:before{content:"\F602"}.mdi-phone-forward:before{content:"\F3F4"}.mdi-phone-hangup:before{content:"\F3F5"}.mdi-phone-in-talk:before{content:"\F3F6"}.mdi-phone-incoming:before{content:"\F3F7"}.mdi-phone-lock:before{content:"\F3F8"}.mdi-phone-log:before{content:"\F3F9"}.mdi-phone-minus:before{content:"\F658"}.mdi-phone-missed:before{content:"\F3FA"}.mdi-phone-off:before{content:"\FDCB"}.mdi-phone-outgoing:before{content:"\F3FB"}.mdi-phone-outline:before{content:"\FDCC"}.mdi-phone-paused:before{content:"\F3FC"}.mdi-phone-plus:before{content:"\F659"}.mdi-phone-return:before{content:"\F82E"}.mdi-phone-rotate-landscape:before{content:"\F884"}.mdi-phone-rotate-portrait:before{content:"\F885"}.mdi-phone-settings:before{content:"\F3FD"}.mdi-phone-voip:before{content:"\F3FE"}.mdi-pi:before{content:"\F3FF"}.mdi-pi-box:before{content:"\F400"}.mdi-pi-hole:before{content:"\FDCD"}.mdi-piano:before{content:"\F67C"}.mdi-pickaxe:before{content:"\F8B6"}.mdi-pier:before{content:"\F886"}.mdi-pier-crane:before{content:"\F887"}.mdi-pig:before{content:"\F401"}.mdi-pill:before{content:"\F402"}.mdi-pillar:before{content:"\F701"}.mdi-pin:before{content:"\F403"}.mdi-pin-off:before{content:"\F404"}.mdi-pin-off-outline:before{content:"\F92F"}.mdi-pin-outline:before{content:"\F930"}.mdi-pine-tree:before{content:"\F405"}.mdi-pine-tree-box:before{content:"\F406"}.mdi-pinterest:before{content:"\F407"}.mdi-pinterest-box:before{content:"\F408"}.mdi-pinwheel:before{content:"\FAD4"}.mdi-pinwheel-outline:before{content:"\FAD5"}.mdi-pipe:before{content:"\F7E4"}.mdi-pipe-disconnected:before{content:"\F7E5"}.mdi-pipe-leak:before{content:"\F888"}.mdi-pirate:before{content:"\FA07"}.mdi-pistol:before{content:"\F702"}.mdi-piston:before{content:"\F889"}.mdi-pizza:before{content:"\F409"}.mdi-play:before{content:"\F40A"}.mdi-play-box-outline:before{content:"\F40B"}.mdi-play-circle:before{content:"\F40C"}.mdi-play-circle-outline:before{content:"\F40D"}.mdi-play-network:before{content:"\F88A"}.mdi-play-network-outline:before{content:"\FC93"}.mdi-play-pause:before{content:"\F40E"}.mdi-play-protected-content:before{content:"\F40F"}.mdi-play-speed:before{content:"\F8FE"}.mdi-playlist-check:before{content:"\F5C7"}.mdi-playlist-edit:before{content:"\F8FF"}.mdi-playlist-minus:before{content:"\F410"}.mdi-playlist-music:before{content:"\FC94"}.mdi-playlist-music-outline:before{content:"\FC95"}.mdi-playlist-play:before{content:"\F411"}.mdi-playlist-plus:before{content:"\F412"}.mdi-playlist-remove:before{content:"\F413"}.mdi-playlist-star:before{content:"\FDCE"}.mdi-playstation:before{content:"\F414"}.mdi-plex:before{content:"\F6B9"}.mdi-plus:before{content:"\F415"}.mdi-plus-box:before{content:"\F416"}.mdi-plus-box-outline:before{content:"\F703"}.mdi-plus-circle:before{content:"\F417"}.mdi-plus-circle-multiple-outline:before{content:"\F418"}.mdi-plus-circle-outline:before{content:"\F419"}.mdi-plus-minus:before{content:"\F991"}.mdi-plus-minus-box:before{content:"\F992"}.mdi-plus-network:before{content:"\F41A"}.mdi-plus-network-outline:before{content:"\FC96"}.mdi-plus-one:before{content:"\F41B"}.mdi-plus-outline:before{content:"\F704"}.mdi-pocket:before{content:"\F41C"}.mdi-podcast:before{content:"\F993"}.mdi-podium:before{content:"\FD01"}.mdi-podium-bronze:before{content:"\FD02"}.mdi-podium-gold:before{content:"\FD03"}.mdi-podium-silver:before{content:"\FD04"}.mdi-point-of-sale:before{content:"\FD6E"}.mdi-pokeball:before{content:"\F41D"}.mdi-pokemon-go:before{content:"\FA08"}.mdi-poker-chip:before{content:"\F82F"}.mdi-polaroid:before{content:"\F41E"}.mdi-poll:before{content:"\F41F"}.mdi-poll-box:before{content:"\F420"}.mdi-polymer:before{content:"\F421"}.mdi-pool:before{content:"\F606"}.mdi-popcorn:before{content:"\F422"}.mdi-postage-stamp:before{content:"\FC97"}.mdi-pot:before{content:"\F65A"}.mdi-pot-mix:before{content:"\F65B"}.mdi-pound:before{content:"\F423"}.mdi-pound-box:before{content:"\F424"}.mdi-power:before{content:"\F425"}.mdi-power-cycle:before{content:"\F900"}.mdi-power-off:before{content:"\F901"}.mdi-power-on:before{content:"\F902"}.mdi-power-plug:before{content:"\F6A4"}.mdi-power-plug-off:before{content:"\F6A5"}.mdi-power-settings:before{content:"\F426"}.mdi-power-sleep:before{content:"\F903"}.mdi-power-socket:before{content:"\F427"}.mdi-power-socket-au:before{content:"\F904"}.mdi-power-socket-eu:before{content:"\F7E6"}.mdi-power-socket-uk:before{content:"\F7E7"}.mdi-power-socket-us:before{content:"\F7E8"}.mdi-power-standby:before{content:"\F905"}.mdi-powershell:before{content:"\FA09"}.mdi-prescription:before{content:"\F705"}.mdi-presentation:before{content:"\F428"}.mdi-presentation-play:before{content:"\F429"}.mdi-printer:before{content:"\F42A"}.mdi-printer-3d:before{content:"\F42B"}.mdi-printer-alert:before{content:"\F42C"}.mdi-printer-settings:before{content:"\F706"}.mdi-printer-wireless:before{content:"\FA0A"}.mdi-priority-high:before{content:"\F603"}.mdi-priority-low:before{content:"\F604"}.mdi-professional-hexagon:before{content:"\F42D"}.mdi-progress-alert:before{content:"\FC98"}.mdi-progress-check:before{content:"\F994"}.mdi-progress-clock:before{content:"\F995"}.mdi-progress-download:before{content:"\F996"}.mdi-progress-upload:before{content:"\F997"}.mdi-progress-wrench:before{content:"\FC99"}.mdi-projector:before{content:"\F42E"}.mdi-projector-screen:before{content:"\F42F"}.mdi-publish:before{content:"\F6A6"}.mdi-pulse:before{content:"\F430"}.mdi-pumpkin:before{content:"\FB9B"}.mdi-puzzle:before{content:"\F431"}.mdi-puzzle-outline:before{content:"\FA65"}.mdi-qi:before{content:"\F998"}.mdi-qqchat:before{content:"\F605"}.mdi-qrcode:before{content:"\F432"}.mdi-qrcode-edit:before{content:"\F8B7"}.mdi-qrcode-scan:before{content:"\F433"}.mdi-quadcopter:before{content:"\F434"}.mdi-quality-high:before{content:"\F435"}.mdi-quality-low:before{content:"\FA0B"}.mdi-quality-medium:before{content:"\FA0C"}.mdi-quicktime:before{content:"\F436"}.mdi-quora:before{content:"\FD05"}.mdi-rabbit:before{content:"\F906"}.mdi-racing-helmet:before{content:"\FD6F"}.mdi-racquetball:before{content:"\FD70"}.mdi-radar:before{content:"\F437"}.mdi-radiator:before{content:"\F438"}.mdi-radiator-disabled:before{content:"\FAD6"}.mdi-radiator-off:before{content:"\FAD7"}.mdi-radio:before{content:"\F439"}.mdi-radio-am:before{content:"\FC9A"}.mdi-radio-fm:before{content:"\FC9B"}.mdi-radio-handheld:before{content:"\F43A"}.mdi-radio-tower:before{content:"\F43B"}.mdi-radioactive:before{content:"\F43C"}.mdi-radiobox-blank:before{content:"\F43D"}.mdi-radiobox-marked:before{content:"\F43E"}.mdi-radius:before{content:"\FC9C"}.mdi-radius-outline:before{content:"\FC9D"}.mdi-raspberry-pi:before{content:"\F43F"}.mdi-ray-end:before{content:"\F440"}.mdi-ray-end-arrow:before{content:"\F441"}.mdi-ray-start:before{content:"\F442"}.mdi-ray-start-arrow:before{content:"\F443"}.mdi-ray-start-end:before{content:"\F444"}.mdi-ray-vertex:before{content:"\F445"}.mdi-react:before{content:"\F707"}.mdi-read:before{content:"\F447"}.mdi-receipt:before{content:"\F449"}.mdi-record:before{content:"\F44A"}.mdi-record-player:before{content:"\F999"}.mdi-record-rec:before{content:"\F44B"}.mdi-recycle:before{content:"\F44C"}.mdi-reddit:before{content:"\F44D"}.mdi-redo:before{content:"\F44E"}.mdi-redo-variant:before{content:"\F44F"}.mdi-reflect-horizontal:before{content:"\FA0D"}.mdi-reflect-vertical:before{content:"\FA0E"}.mdi-refresh:before{content:"\F450"}.mdi-regex:before{content:"\F451"}.mdi-registered-trademark:before{content:"\FA66"}.mdi-relative-scale:before{content:"\F452"}.mdi-reload:before{content:"\F453"}.mdi-reminder:before{content:"\F88B"}.mdi-remote:before{content:"\F454"}.mdi-remote-desktop:before{content:"\F8B8"}.mdi-rename-box:before{content:"\F455"}.mdi-reorder-horizontal:before{content:"\F687"}.mdi-reorder-vertical:before{content:"\F688"}.mdi-repeat:before{content:"\F456"}.mdi-repeat-off:before{content:"\F457"}.mdi-repeat-once:before{content:"\F458"}.mdi-replay:before{content:"\F459"}.mdi-reply:before{content:"\F45A"}.mdi-reply-all:before{content:"\F45B"}.mdi-reproduction:before{content:"\F45C"}.mdi-resistor:before{content:"\FB1F"}.mdi-resistor-nodes:before{content:"\FB20"}.mdi-resize:before{content:"\FA67"}.mdi-resize-bottom-right:before{content:"\F45D"}.mdi-responsive:before{content:"\F45E"}.mdi-restart:before{content:"\F708"}.mdi-restart-off:before{content:"\FD71"}.mdi-restore:before{content:"\F99A"}.mdi-restore-clock:before{content:"\F6A7"}.mdi-rewind:before{content:"\F45F"}.mdi-rewind-10:before{content:"\FD06"}.mdi-rewind-30:before{content:"\FD72"}.mdi-rewind-outline:before{content:"\F709"}.mdi-rhombus:before{content:"\F70A"}.mdi-rhombus-medium:before{content:"\FA0F"}.mdi-rhombus-outline:before{content:"\F70B"}.mdi-rhombus-split:before{content:"\FA10"}.mdi-ribbon:before{content:"\F460"}.mdi-rice:before{content:"\F7E9"}.mdi-ring:before{content:"\F7EA"}.mdi-road:before{content:"\F461"}.mdi-road-variant:before{content:"\F462"}.mdi-robot:before{content:"\F6A8"}.mdi-robot-industrial:before{content:"\FB21"}.mdi-robot-vacuum:before{content:"\F70C"}.mdi-robot-vacuum-variant:before{content:"\F907"}.mdi-rocket:before{content:"\F463"}.mdi-roller-skate:before{content:"\FD07"}.mdi-rollerblade:before{content:"\FD08"}.mdi-rollupjs:before{content:"\FB9C"}.mdi-room-service:before{content:"\F88C"}.mdi-room-service-outline:before{content:"\FD73"}.mdi-rotate-3d:before{content:"\F464"}.mdi-rotate-left:before{content:"\F465"}.mdi-rotate-left-variant:before{content:"\F466"}.mdi-rotate-orbit:before{content:"\FD74"}.mdi-rotate-right:before{content:"\F467"}.mdi-rotate-right-variant:before{content:"\F468"}.mdi-rounded-corner:before{content:"\F607"}.mdi-router-wireless:before{content:"\F469"}.mdi-router-wireless-settings:before{content:"\FA68"}.mdi-routes:before{content:"\F46A"}.mdi-rowing:before{content:"\F608"}.mdi-rss:before{content:"\F46B"}.mdi-rss-box:before{content:"\F46C"}.mdi-ruby:before{content:"\FD09"}.mdi-rugby:before{content:"\FD75"}.mdi-ruler:before{content:"\F46D"}.mdi-ruler-square:before{content:"\FC9E"}.mdi-run:before{content:"\F70D"}.mdi-run-fast:before{content:"\F46E"}.mdi-sack:before{content:"\FD0A"}.mdi-sack-percent:before{content:"\FD0B"}.mdi-safe:before{content:"\FA69"}.mdi-safety-goggles:before{content:"\FD0C"}.mdi-sale:before{content:"\F46F"}.mdi-salesforce:before{content:"\F88D"}.mdi-sass:before{content:"\F7EB"}.mdi-satellite:before{content:"\F470"}.mdi-satellite-uplink:before{content:"\F908"}.mdi-satellite-variant:before{content:"\F471"}.mdi-sausage:before{content:"\F8B9"}.mdi-saxophone:before{content:"\F609"}.mdi-scale:before{content:"\F472"}.mdi-scale-balance:before{content:"\F5D1"}.mdi-scale-bathroom:before{content:"\F473"}.mdi-scanner:before{content:"\F6AA"}.mdi-scanner-off:before{content:"\F909"}.mdi-school:before{content:"\F474"}.mdi-scissors-cutting:before{content:"\FA6A"}.mdi-screen-rotation:before{content:"\F475"}.mdi-screen-rotation-lock:before{content:"\F476"}.mdi-screw-flat-top:before{content:"\FDCF"}.mdi-screw-lag:before{content:"\FDD0"}.mdi-screw-machine-flat-top:before{content:"\FDD1"}.mdi-screw-machine-round-top:before{content:"\FDD2"}.mdi-screw-round-top:before{content:"\FDD3"}.mdi-screwdriver:before{content:"\F477"}.mdi-script:before{content:"\FB9D"}.mdi-script-outline:before{content:"\F478"}.mdi-script-text:before{content:"\FB9E"}.mdi-script-text-outline:before{content:"\FB9F"}.mdi-sd:before{content:"\F479"}.mdi-seal:before{content:"\F47A"}.mdi-search-web:before{content:"\F70E"}.mdi-seat:before{content:"\FC9F"}.mdi-seat-flat:before{content:"\F47B"}.mdi-seat-flat-angled:before{content:"\F47C"}.mdi-seat-individual-suite:before{content:"\F47D"}.mdi-seat-legroom-extra:before{content:"\F47E"}.mdi-seat-legroom-normal:before{content:"\F47F"}.mdi-seat-legroom-reduced:before{content:"\F480"}.mdi-seat-outline:before{content:"\FCA0"}.mdi-seat-recline-extra:before{content:"\F481"}.mdi-seat-recline-normal:before{content:"\F482"}.mdi-seatbelt:before{content:"\FCA1"}.mdi-security:before{content:"\F483"}.mdi-security-network:before{content:"\F484"}.mdi-select:before{content:"\F485"}.mdi-select-all:before{content:"\F486"}.mdi-select-color:before{content:"\FD0D"}.mdi-select-compare:before{content:"\FAD8"}.mdi-select-drag:before{content:"\FA6B"}.mdi-select-inverse:before{content:"\F487"}.mdi-select-off:before{content:"\F488"}.mdi-selection:before{content:"\F489"}.mdi-selection-drag:before{content:"\FA6C"}.mdi-selection-ellipse:before{content:"\FD0E"}.mdi-selection-off:before{content:"\F776"}.mdi-send:before{content:"\F48A"}.mdi-send-circle:before{content:"\FDD4"}.mdi-send-circle-outline:before{content:"\FDD5"}.mdi-send-lock:before{content:"\F7EC"}.mdi-serial-port:before{content:"\F65C"}.mdi-server:before{content:"\F48B"}.mdi-server-minus:before{content:"\F48C"}.mdi-server-network:before{content:"\F48D"}.mdi-server-network-off:before{content:"\F48E"}.mdi-server-off:before{content:"\F48F"}.mdi-server-plus:before{content:"\F490"}.mdi-server-remove:before{content:"\F491"}.mdi-server-security:before{content:"\F492"}.mdi-set-all:before{content:"\F777"}.mdi-set-center:before{content:"\F778"}.mdi-set-center-right:before{content:"\F779"}.mdi-set-left:before{content:"\F77A"}.mdi-set-left-center:before{content:"\F77B"}.mdi-set-left-right:before{content:"\F77C"}.mdi-set-none:before{content:"\F77D"}.mdi-set-right:before{content:"\F77E"}.mdi-set-top-box:before{content:"\F99E"}.mdi-settings:before{content:"\F493"}.mdi-settings-box:before{content:"\F494"}.mdi-settings-helper:before{content:"\FA6D"}.mdi-settings-outline:before{content:"\F8BA"}.mdi-shape:before{content:"\F830"}.mdi-shape-circle-plus:before{content:"\F65D"}.mdi-shape-outline:before{content:"\F831"}.mdi-shape-plus:before{content:"\F495"}.mdi-shape-polygon-plus:before{content:"\F65E"}.mdi-shape-rectangle-plus:before{content:"\F65F"}.mdi-shape-square-plus:before{content:"\F660"}.mdi-share:before{content:"\F496"}.mdi-share-outline:before{content:"\F931"}.mdi-share-variant:before{content:"\F497"}.mdi-sheep:before{content:"\FCA2"}.mdi-shield:before{content:"\F498"}.mdi-shield-account:before{content:"\F88E"}.mdi-shield-account-outline:before{content:"\FA11"}.mdi-shield-airplane:before{content:"\F6BA"}.mdi-shield-airplane-outline:before{content:"\FCA3"}.mdi-shield-check:before{content:"\F565"}.mdi-shield-check-outline:before{content:"\FCA4"}.mdi-shield-cross:before{content:"\FCA5"}.mdi-shield-cross-outline:before{content:"\FCA6"}.mdi-shield-half-full:before{content:"\F77F"}.mdi-shield-home:before{content:"\F689"}.mdi-shield-home-outline:before{content:"\FCA7"}.mdi-shield-key:before{content:"\FBA0"}.mdi-shield-key-outline:before{content:"\FBA1"}.mdi-shield-link-variant:before{content:"\FD0F"}.mdi-shield-link-variant-outline:before{content:"\FD10"}.mdi-shield-lock:before{content:"\F99C"}.mdi-shield-lock-outline:before{content:"\FCA8"}.mdi-shield-off:before{content:"\F99D"}.mdi-shield-off-outline:before{content:"\F99B"}.mdi-shield-outline:before{content:"\F499"}.mdi-shield-plus:before{content:"\FAD9"}.mdi-shield-plus-outline:before{content:"\FADA"}.mdi-shield-remove:before{content:"\FADB"}.mdi-shield-remove-outline:before{content:"\FADC"}.mdi-shield-search:before{content:"\FD76"}.mdi-ship-wheel:before{content:"\F832"}.mdi-shoe-formal:before{content:"\FB22"}.mdi-shoe-heel:before{content:"\FB23"}.mdi-shoe-print:before{content:"\FDD6"}.mdi-shopify:before{content:"\FADD"}.mdi-shopping:before{content:"\F49A"}.mdi-shopping-music:before{content:"\F49B"}.mdi-shovel:before{content:"\F70F"}.mdi-shovel-off:before{content:"\F710"}.mdi-shower:before{content:"\F99F"}.mdi-shower-head:before{content:"\F9A0"}.mdi-shredder:before{content:"\F49C"}.mdi-shuffle:before{content:"\F49D"}.mdi-shuffle-disabled:before{content:"\F49E"}.mdi-shuffle-variant:before{content:"\F49F"}.mdi-sigma:before{content:"\F4A0"}.mdi-sigma-lower:before{content:"\F62B"}.mdi-sign-caution:before{content:"\F4A1"}.mdi-sign-direction:before{content:"\F780"}.mdi-sign-text:before{content:"\F781"}.mdi-signal:before{content:"\F4A2"}.mdi-signal-2g:before{content:"\F711"}.mdi-signal-3g:before{content:"\F712"}.mdi-signal-4g:before{content:"\F713"}.mdi-signal-5g:before{content:"\FA6E"}.mdi-signal-cellular-1:before{content:"\F8BB"}.mdi-signal-cellular-2:before{content:"\F8BC"}.mdi-signal-cellular-3:before{content:"\F8BD"}.mdi-signal-cellular-outline:before{content:"\F8BE"}.mdi-signal-hspa:before{content:"\F714"}.mdi-signal-hspa-plus:before{content:"\F715"}.mdi-signal-off:before{content:"\F782"}.mdi-signal-variant:before{content:"\F60A"}.mdi-signature:before{content:"\FDD7"}.mdi-signature-freehand:before{content:"\FDD8"}.mdi-signature-image:before{content:"\FDD9"}.mdi-signature-text:before{content:"\FDDA"}.mdi-silo:before{content:"\FB24"}.mdi-silverware:before{content:"\F4A3"}.mdi-silverware-fork:before{content:"\F4A4"}.mdi-silverware-fork-knife:before{content:"\FA6F"}.mdi-silverware-spoon:before{content:"\F4A5"}.mdi-silverware-variant:before{content:"\F4A6"}.mdi-sim:before{content:"\F4A7"}.mdi-sim-alert:before{content:"\F4A8"}.mdi-sim-off:before{content:"\F4A9"}.mdi-sina-weibo:before{content:"\FADE"}.mdi-sitemap:before{content:"\F4AA"}.mdi-skate:before{content:"\FD11"}.mdi-skew-less:before{content:"\FD12"}.mdi-skew-more:before{content:"\FD13"}.mdi-skip-backward:before{content:"\F4AB"}.mdi-skip-forward:before{content:"\F4AC"}.mdi-skip-next:before{content:"\F4AD"}.mdi-skip-next-circle:before{content:"\F661"}.mdi-skip-next-circle-outline:before{content:"\F662"}.mdi-skip-previous:before{content:"\F4AE"}.mdi-skip-previous-circle:before{content:"\F663"}.mdi-skip-previous-circle-outline:before{content:"\F664"}.mdi-skull:before{content:"\F68B"}.mdi-skull-crossbones:before{content:"\FBA2"}.mdi-skull-crossbones-outline:before{content:"\FBA3"}.mdi-skull-outline:before{content:"\FBA4"}.mdi-skype:before{content:"\F4AF"}.mdi-skype-business:before{content:"\F4B0"}.mdi-slack:before{content:"\F4B1"}.mdi-slackware:before{content:"\F90A"}.mdi-sleep:before{content:"\F4B2"}.mdi-sleep-off:before{content:"\F4B3"}.mdi-slope-downhill:before{content:"\FDDB"}.mdi-slope-uphill:before{content:"\FDDC"}.mdi-smog:before{content:"\FA70"}.mdi-smoke-detector:before{content:"\F392"}.mdi-smoking:before{content:"\F4B4"}.mdi-smoking-off:before{content:"\F4B5"}.mdi-snapchat:before{content:"\F4B6"}.mdi-snowflake:before{content:"\F716"}.mdi-snowman:before{content:"\F4B7"}.mdi-soccer:before{content:"\F4B8"}.mdi-soccer-field:before{content:"\F833"}.mdi-sofa:before{content:"\F4B9"}.mdi-solar-panel:before{content:"\FD77"}.mdi-solar-panel-large:before{content:"\FD78"}.mdi-solar-power:before{content:"\FA71"}.mdi-solid:before{content:"\F68C"}.mdi-sort:before{content:"\F4BA"}.mdi-sort-alphabetical:before{content:"\F4BB"}.mdi-sort-ascending:before{content:"\F4BC"}.mdi-sort-descending:before{content:"\F4BD"}.mdi-sort-numeric:before{content:"\F4BE"}.mdi-sort-variant:before{content:"\F4BF"}.mdi-sort-variant-lock:before{content:"\FCA9"}.mdi-sort-variant-lock-open:before{content:"\FCAA"}.mdi-soundcloud:before{content:"\F4C0"}.mdi-source-branch:before{content:"\F62C"}.mdi-source-commit:before{content:"\F717"}.mdi-source-commit-end:before{content:"\F718"}.mdi-source-commit-end-local:before{content:"\F719"}.mdi-source-commit-local:before{content:"\F71A"}.mdi-source-commit-next-local:before{content:"\F71B"}.mdi-source-commit-start:before{content:"\F71C"}.mdi-source-commit-start-next-local:before{content:"\F71D"}.mdi-source-fork:before{content:"\F4C1"}.mdi-source-merge:before{content:"\F62D"}.mdi-source-pull:before{content:"\F4C2"}.mdi-source-repository:before{content:"\FCAB"}.mdi-source-repository-multiple:before{content:"\FCAC"}.mdi-soy-sauce:before{content:"\F7ED"}.mdi-spa:before{content:"\FCAD"}.mdi-spa-outline:before{content:"\FCAE"}.mdi-space-invaders:before{content:"\FBA5"}.mdi-speaker:before{content:"\F4C3"}.mdi-speaker-bluetooth:before{content:"\F9A1"}.mdi-speaker-multiple:before{content:"\FD14"}.mdi-speaker-off:before{content:"\F4C4"}.mdi-speaker-wireless:before{content:"\F71E"}.mdi-speedometer:before{content:"\F4C5"}.mdi-spellcheck:before{content:"\F4C6"}.mdi-spider-web:before{content:"\FBA6"}.mdi-spotify:before{content:"\F4C7"}.mdi-spotlight:before{content:"\F4C8"}.mdi-spotlight-beam:before{content:"\F4C9"}.mdi-spray:before{content:"\F665"}.mdi-spray-bottle:before{content:"\FADF"}.mdi-square:before{content:"\F763"}.mdi-square-edit-outline:before{content:"\F90B"}.mdi-square-inc:before{content:"\F4CA"}.mdi-square-inc-cash:before{content:"\F4CB"}.mdi-square-medium:before{content:"\FA12"}.mdi-square-medium-outline:before{content:"\FA13"}.mdi-square-outline:before{content:"\F762"}.mdi-square-root:before{content:"\F783"}.mdi-square-root-box:before{content:"\F9A2"}.mdi-square-small:before{content:"\FA14"}.mdi-squeegee:before{content:"\FAE0"}.mdi-ssh:before{content:"\F8BF"}.mdi-stack-exchange:before{content:"\F60B"}.mdi-stack-overflow:before{content:"\F4CC"}.mdi-stadium:before{content:"\F71F"}.mdi-stairs:before{content:"\F4CD"}.mdi-stamper:before{content:"\FD15"}.mdi-standard-definition:before{content:"\F7EE"}.mdi-star:before{content:"\F4CE"}.mdi-star-box:before{content:"\FA72"}.mdi-star-box-outline:before{content:"\FA73"}.mdi-star-circle:before{content:"\F4CF"}.mdi-star-circle-outline:before{content:"\F9A3"}.mdi-star-face:before{content:"\F9A4"}.mdi-star-four-points:before{content:"\FAE1"}.mdi-star-four-points-outline:before{content:"\FAE2"}.mdi-star-half:before{content:"\F4D0"}.mdi-star-off:before{content:"\F4D1"}.mdi-star-outline:before{content:"\F4D2"}.mdi-star-three-points:before{content:"\FAE3"}.mdi-star-three-points-outline:before{content:"\FAE4"}.mdi-steam:before{content:"\F4D3"}.mdi-steam-box:before{content:"\F90C"}.mdi-steering:before{content:"\F4D4"}.mdi-steering-off:before{content:"\F90D"}.mdi-step-backward:before{content:"\F4D5"}.mdi-step-backward-2:before{content:"\F4D6"}.mdi-step-forward:before{content:"\F4D7"}.mdi-step-forward-2:before{content:"\F4D8"}.mdi-stethoscope:before{content:"\F4D9"}.mdi-sticker:before{content:"\F5D0"}.mdi-sticker-emoji:before{content:"\F784"}.mdi-stocking:before{content:"\F4DA"}.mdi-stop:before{content:"\F4DB"}.mdi-stop-circle:before{content:"\F666"}.mdi-stop-circle-outline:before{content:"\F667"}.mdi-store:before{content:"\F4DC"}.mdi-store-24-hour:before{content:"\F4DD"}.mdi-stove:before{content:"\F4DE"}.mdi-strava:before{content:"\FB25"}.mdi-subdirectory-arrow-left:before{content:"\F60C"}.mdi-subdirectory-arrow-right:before{content:"\F60D"}.mdi-subtitles:before{content:"\FA15"}.mdi-subtitles-outline:before{content:"\FA16"}.mdi-subway:before{content:"\F6AB"}.mdi-subway-alert-variant:before{content:"\FD79"}.mdi-subway-variant:before{content:"\F4DF"}.mdi-summit:before{content:"\F785"}.mdi-sunglasses:before{content:"\F4E0"}.mdi-surround-sound:before{content:"\F5C5"}.mdi-surround-sound-2-0:before{content:"\F7EF"}.mdi-surround-sound-3-1:before{content:"\F7F0"}.mdi-surround-sound-5-1:before{content:"\F7F1"}.mdi-surround-sound-7-1:before{content:"\F7F2"}.mdi-svg:before{content:"\F720"}.mdi-swap-horizontal:before{content:"\F4E1"}.mdi-swap-horizontal-bold:before{content:"\FBA9"}.mdi-swap-horizontal-variant:before{content:"\F8C0"}.mdi-swap-vertical:before{content:"\F4E2"}.mdi-swap-vertical-bold:before{content:"\FBAA"}.mdi-swap-vertical-variant:before{content:"\F8C1"}.mdi-swim:before{content:"\F4E3"}.mdi-switch:before{content:"\F4E4"}.mdi-sword:before{content:"\F4E5"}.mdi-sword-cross:before{content:"\F786"}.mdi-symfony:before{content:"\FAE5"}.mdi-sync:before{content:"\F4E6"}.mdi-sync-alert:before{content:"\F4E7"}.mdi-sync-off:before{content:"\F4E8"}.mdi-tab:before{content:"\F4E9"}.mdi-tab-minus:before{content:"\FB26"}.mdi-tab-plus:before{content:"\F75B"}.mdi-tab-remove:before{content:"\FB27"}.mdi-tab-unselected:before{content:"\F4EA"}.mdi-table:before{content:"\F4EB"}.mdi-table-border:before{content:"\FA17"}.mdi-table-column:before{content:"\F834"}.mdi-table-column-plus-after:before{content:"\F4EC"}.mdi-table-column-plus-before:before{content:"\F4ED"}.mdi-table-column-remove:before{content:"\F4EE"}.mdi-table-column-width:before{content:"\F4EF"}.mdi-table-edit:before{content:"\F4F0"}.mdi-table-large:before{content:"\F4F1"}.mdi-table-merge-cells:before{content:"\F9A5"}.mdi-table-of-contents:before{content:"\F835"}.mdi-table-plus:before{content:"\FA74"}.mdi-table-remove:before{content:"\FA75"}.mdi-table-row:before{content:"\F836"}.mdi-table-row-height:before{content:"\F4F2"}.mdi-table-row-plus-after:before{content:"\F4F3"}.mdi-table-row-plus-before:before{content:"\F4F4"}.mdi-table-row-remove:before{content:"\F4F5"}.mdi-table-search:before{content:"\F90E"}.mdi-table-settings:before{content:"\F837"}.mdi-tablet:before{content:"\F4F6"}.mdi-tablet-android:before{content:"\F4F7"}.mdi-tablet-cellphone:before{content:"\F9A6"}.mdi-tablet-ipad:before{content:"\F4F8"}.mdi-taco:before{content:"\F761"}.mdi-tag:before{content:"\F4F9"}.mdi-tag-faces:before{content:"\F4FA"}.mdi-tag-heart:before{content:"\F68A"}.mdi-tag-heart-outline:before{content:"\FBAB"}.mdi-tag-minus:before{content:"\F90F"}.mdi-tag-multiple:before{content:"\F4FB"}.mdi-tag-outline:before{content:"\F4FC"}.mdi-tag-plus:before{content:"\F721"}.mdi-tag-remove:before{content:"\F722"}.mdi-tag-text-outline:before{content:"\F4FD"}.mdi-tank:before{content:"\FD16"}.mdi-tape-measure:before{content:"\FB28"}.mdi-target:before{content:"\F4FE"}.mdi-target-account:before{content:"\FBAC"}.mdi-target-variant:before{content:"\FA76"}.mdi-taxi:before{content:"\F4FF"}.mdi-tea:before{content:"\FD7A"}.mdi-tea-outline:before{content:"\FD7B"}.mdi-teach:before{content:"\F88F"}.mdi-teamviewer:before{content:"\F500"}.mdi-telegram:before{content:"\F501"}.mdi-telescope:before{content:"\FB29"}.mdi-television:before{content:"\F502"}.mdi-television-box:before{content:"\F838"}.mdi-television-classic:before{content:"\F7F3"}.mdi-television-classic-off:before{content:"\F839"}.mdi-television-guide:before{content:"\F503"}.mdi-television-off:before{content:"\F83A"}.mdi-temperature-celsius:before{content:"\F504"}.mdi-temperature-fahrenheit:before{content:"\F505"}.mdi-temperature-kelvin:before{content:"\F506"}.mdi-tennis:before{content:"\FD7C"}.mdi-tennis-ball:before{content:"\F507"}.mdi-tent:before{content:"\F508"}.mdi-terrain:before{content:"\F509"}.mdi-test-tube:before{content:"\F668"}.mdi-test-tube-empty:before{content:"\F910"}.mdi-test-tube-off:before{content:"\F911"}.mdi-text:before{content:"\F9A7"}.mdi-text-shadow:before{content:"\F669"}.mdi-text-short:before{content:"\F9A8"}.mdi-text-subject:before{content:"\F9A9"}.mdi-text-to-speech:before{content:"\F50A"}.mdi-text-to-speech-off:before{content:"\F50B"}.mdi-textbox:before{content:"\F60E"}.mdi-textbox-password:before{content:"\F7F4"}.mdi-texture:before{content:"\F50C"}.mdi-theater:before{content:"\F50D"}.mdi-theme-light-dark:before{content:"\F50E"}.mdi-thermometer:before{content:"\F50F"}.mdi-thermometer-alert:before{content:"\FDDD"}.mdi-thermometer-chevron-down:before{content:"\FDDE"}.mdi-thermometer-chevron-up:before{content:"\FDDF"}.mdi-thermometer-lines:before{content:"\F510"}.mdi-thermometer-minus:before{content:"\FDE0"}.mdi-thermometer-plus:before{content:"\FDE1"}.mdi-thermostat:before{content:"\F393"}.mdi-thermostat-box:before{content:"\F890"}.mdi-thought-bubble:before{content:"\F7F5"}.mdi-thought-bubble-outline:before{content:"\F7F6"}.mdi-thumb-down:before{content:"\F511"}.mdi-thumb-down-outline:before{content:"\F512"}.mdi-thumb-up:before{content:"\F513"}.mdi-thumb-up-outline:before{content:"\F514"}.mdi-thumbs-up-down:before{content:"\F515"}.mdi-ticket:before{content:"\F516"}.mdi-ticket-account:before{content:"\F517"}.mdi-ticket-confirmation:before{content:"\F518"}.mdi-ticket-outline:before{content:"\F912"}.mdi-ticket-percent:before{content:"\F723"}.mdi-tie:before{content:"\F519"}.mdi-tilde:before{content:"\F724"}.mdi-timelapse:before{content:"\F51A"}.mdi-timeline:before{content:"\FBAD"}.mdi-timeline-outline:before{content:"\FBAE"}.mdi-timeline-text:before{content:"\FBAF"}.mdi-timeline-text-outline:before{content:"\FBB0"}.mdi-timer:before{content:"\F51B"}.mdi-timer-10:before{content:"\F51C"}.mdi-timer-3:before{content:"\F51D"}.mdi-timer-off:before{content:"\F51E"}.mdi-timer-sand:before{content:"\F51F"}.mdi-timer-sand-empty:before{content:"\F6AC"}.mdi-timer-sand-full:before{content:"\F78B"}.mdi-timetable:before{content:"\F520"}.mdi-toaster-oven:before{content:"\FCAF"}.mdi-toggle-switch:before{content:"\F521"}.mdi-toggle-switch-off:before{content:"\F522"}.mdi-toggle-switch-off-outline:before{content:"\FA18"}.mdi-toggle-switch-outline:before{content:"\FA19"}.mdi-toilet:before{content:"\F9AA"}.mdi-toolbox:before{content:"\F9AB"}.mdi-toolbox-outline:before{content:"\F9AC"}.mdi-tooltip:before{content:"\F523"}.mdi-tooltip-account:before{content:"\F00C"}.mdi-tooltip-edit:before{content:"\F524"}.mdi-tooltip-image:before{content:"\F525"}.mdi-tooltip-image-outline:before{content:"\FBB1"}.mdi-tooltip-outline:before{content:"\F526"}.mdi-tooltip-plus:before{content:"\FBB2"}.mdi-tooltip-plus-outline:before{content:"\F527"}.mdi-tooltip-text:before{content:"\F528"}.mdi-tooltip-text-outline:before{content:"\FBB3"}.mdi-tooth:before{content:"\F8C2"}.mdi-tooth-outline:before{content:"\F529"}.mdi-tor:before{content:"\F52A"}.mdi-tortoise:before{content:"\FD17"}.mdi-tournament:before{content:"\F9AD"}.mdi-tower-beach:before{content:"\F680"}.mdi-tower-fire:before{content:"\F681"}.mdi-towing:before{content:"\F83B"}.mdi-track-light:before{content:"\F913"}.mdi-trackpad:before{content:"\F7F7"}.mdi-trackpad-lock:before{content:"\F932"}.mdi-tractor:before{content:"\F891"}.mdi-trademark:before{content:"\FA77"}.mdi-traffic-light:before{content:"\F52B"}.mdi-train:before{content:"\F52C"}.mdi-train-car:before{content:"\FBB4"}.mdi-train-variant:before{content:"\F8C3"}.mdi-tram:before{content:"\F52D"}.mdi-transcribe:before{content:"\F52E"}.mdi-transcribe-close:before{content:"\F52F"}.mdi-transfer-down:before{content:"\FD7D"}.mdi-transfer-left:before{content:"\FD7E"}.mdi-transfer-right:before{content:"\F530"}.mdi-transfer-up:before{content:"\FD7F"}.mdi-transit-connection:before{content:"\FD18"}.mdi-transit-connection-variant:before{content:"\FD19"}.mdi-transit-transfer:before{content:"\F6AD"}.mdi-transition:before{content:"\F914"}.mdi-transition-masked:before{content:"\F915"}.mdi-translate:before{content:"\F5CA"}.mdi-translate-off:before{content:"\FDE2"}.mdi-transmission-tower:before{content:"\FD1A"}.mdi-trash-can:before{content:"\FA78"}.mdi-trash-can-outline:before{content:"\FA79"}.mdi-treasure-chest:before{content:"\F725"}.mdi-tree:before{content:"\F531"}.mdi-trello:before{content:"\F532"}.mdi-trending-down:before{content:"\F533"}.mdi-trending-neutral:before{content:"\F534"}.mdi-trending-up:before{content:"\F535"}.mdi-triangle:before{content:"\F536"}.mdi-triangle-outline:before{content:"\F537"}.mdi-triforce:before{content:"\FBB5"}.mdi-trophy:before{content:"\F538"}.mdi-trophy-award:before{content:"\F539"}.mdi-trophy-broken:before{content:"\FD80"}.mdi-trophy-outline:before{content:"\F53A"}.mdi-trophy-variant:before{content:"\F53B"}.mdi-trophy-variant-outline:before{content:"\F53C"}.mdi-truck:before{content:"\F53D"}.mdi-truck-check:before{content:"\FCB0"}.mdi-truck-delivery:before{content:"\F53E"}.mdi-truck-fast:before{content:"\F787"}.mdi-truck-trailer:before{content:"\F726"}.mdi-tshirt-crew:before{content:"\FA7A"}.mdi-tshirt-crew-outline:before{content:"\F53F"}.mdi-tshirt-v:before{content:"\FA7B"}.mdi-tshirt-v-outline:before{content:"\F540"}.mdi-tumble-dryer:before{content:"\F916"}.mdi-tumblr:before{content:"\F541"}.mdi-tumblr-box:before{content:"\F917"}.mdi-tumblr-reblog:before{content:"\F542"}.mdi-tune:before{content:"\F62E"}.mdi-tune-vertical:before{content:"\F66A"}.mdi-turnstile:before{content:"\FCB1"}.mdi-turnstile-outline:before{content:"\FCB2"}.mdi-turtle:before{content:"\FCB3"}.mdi-twitch:before{content:"\F543"}.mdi-twitter:before{content:"\F544"}.mdi-twitter-box:before{content:"\F545"}.mdi-twitter-circle:before{content:"\F546"}.mdi-twitter-retweet:before{content:"\F547"}.mdi-two-factor-authentication:before{content:"\F9AE"}.mdi-uber:before{content:"\F748"}.mdi-ubisoft:before{content:"\FBB6"}.mdi-ubuntu:before{content:"\F548"}.mdi-ultra-high-definition:before{content:"\F7F8"}.mdi-umbraco:before{content:"\F549"}.mdi-umbrella:before{content:"\F54A"}.mdi-umbrella-closed:before{content:"\F9AF"}.mdi-umbrella-outline:before{content:"\F54B"}.mdi-undo:before{content:"\F54C"}.mdi-undo-variant:before{content:"\F54D"}.mdi-unfold-less-horizontal:before{content:"\F54E"}.mdi-unfold-less-vertical:before{content:"\F75F"}.mdi-unfold-more-horizontal:before{content:"\F54F"}.mdi-unfold-more-vertical:before{content:"\F760"}.mdi-ungroup:before{content:"\F550"}.mdi-unity:before{content:"\F6AE"}.mdi-unreal:before{content:"\F9B0"}.mdi-untappd:before{content:"\F551"}.mdi-update:before{content:"\F6AF"}.mdi-upload:before{content:"\F552"}.mdi-upload-multiple:before{content:"\F83C"}.mdi-upload-network:before{content:"\F6F5"}.mdi-upload-network-outline:before{content:"\FCB4"}.mdi-upload-outline:before{content:"\FDE3"}.mdi-usb:before{content:"\F553"}.mdi-van-passenger:before{content:"\F7F9"}.mdi-van-utility:before{content:"\F7FA"}.mdi-vanish:before{content:"\F7FB"}.mdi-variable:before{content:"\FAE6"}.mdi-vector-arrange-above:before{content:"\F554"}.mdi-vector-arrange-below:before{content:"\F555"}.mdi-vector-bezier:before{content:"\FAE7"}.mdi-vector-circle:before{content:"\F556"}.mdi-vector-circle-variant:before{content:"\F557"}.mdi-vector-combine:before{content:"\F558"}.mdi-vector-curve:before{content:"\F559"}.mdi-vector-difference:before{content:"\F55A"}.mdi-vector-difference-ab:before{content:"\F55B"}.mdi-vector-difference-ba:before{content:"\F55C"}.mdi-vector-ellipse:before{content:"\F892"}.mdi-vector-intersection:before{content:"\F55D"}.mdi-vector-line:before{content:"\F55E"}.mdi-vector-point:before{content:"\F55F"}.mdi-vector-polygon:before{content:"\F560"}.mdi-vector-polyline:before{content:"\F561"}.mdi-vector-radius:before{content:"\F749"}.mdi-vector-rectangle:before{content:"\F5C6"}.mdi-vector-selection:before{content:"\F562"}.mdi-vector-square:before{content:"\F001"}.mdi-vector-triangle:before{content:"\F563"}.mdi-vector-union:before{content:"\F564"}.mdi-venmo:before{content:"\F578"}.mdi-vhs:before{content:"\FA1A"}.mdi-vibrate:before{content:"\F566"}.mdi-vibrate-off:before{content:"\FCB5"}.mdi-video:before{content:"\F567"}.mdi-video-3d:before{content:"\F7FC"}.mdi-video-4k-box:before{content:"\F83D"}.mdi-video-account:before{content:"\F918"}.mdi-video-image:before{content:"\F919"}.mdi-video-input-antenna:before{content:"\F83E"}.mdi-video-input-component:before{content:"\F83F"}.mdi-video-input-hdmi:before{content:"\F840"}.mdi-video-input-svideo:before{content:"\F841"}.mdi-video-minus:before{content:"\F9B1"}.mdi-video-off:before{content:"\F568"}.mdi-video-off-outline:before{content:"\FBB7"}.mdi-video-outline:before{content:"\FBB8"}.mdi-video-plus:before{content:"\F9B2"}.mdi-video-stabilization:before{content:"\F91A"}.mdi-video-switch:before{content:"\F569"}.mdi-video-vintage:before{content:"\FA1B"}.mdi-view-agenda:before{content:"\F56A"}.mdi-view-array:before{content:"\F56B"}.mdi-view-carousel:before{content:"\F56C"}.mdi-view-column:before{content:"\F56D"}.mdi-view-dashboard:before{content:"\F56E"}.mdi-view-dashboard-outline:before{content:"\FA1C"}.mdi-view-dashboard-variant:before{content:"\F842"}.mdi-view-day:before{content:"\F56F"}.mdi-view-grid:before{content:"\F570"}.mdi-view-headline:before{content:"\F571"}.mdi-view-list:before{content:"\F572"}.mdi-view-module:before{content:"\F573"}.mdi-view-parallel:before{content:"\F727"}.mdi-view-quilt:before{content:"\F574"}.mdi-view-sequential:before{content:"\F728"}.mdi-view-split-horizontal:before{content:"\FBA7"}.mdi-view-split-vertical:before{content:"\FBA8"}.mdi-view-stream:before{content:"\F575"}.mdi-view-week:before{content:"\F576"}.mdi-vimeo:before{content:"\F577"}.mdi-violin:before{content:"\F60F"}.mdi-virtual-reality:before{content:"\F893"}.mdi-visual-studio:before{content:"\F610"}.mdi-visual-studio-code:before{content:"\FA1D"}.mdi-vk:before{content:"\F579"}.mdi-vk-box:before{content:"\F57A"}.mdi-vk-circle:before{content:"\F57B"}.mdi-vlc:before{content:"\F57C"}.mdi-voice:before{content:"\F5CB"}.mdi-voicemail:before{content:"\F57D"}.mdi-volleyball:before{content:"\F9B3"}.mdi-volume-high:before{content:"\F57E"}.mdi-volume-low:before{content:"\F57F"}.mdi-volume-medium:before{content:"\F580"}.mdi-volume-minus:before{content:"\F75D"}.mdi-volume-mute:before{content:"\F75E"}.mdi-volume-off:before{content:"\F581"}.mdi-volume-plus:before{content:"\F75C"}.mdi-volume-variant-off:before{content:"\FDE4"}.mdi-vote:before{content:"\FA1E"}.mdi-vote-outline:before{content:"\FA1F"}.mdi-vpn:before{content:"\F582"}.mdi-vuejs:before{content:"\F843"}.mdi-walk:before{content:"\F583"}.mdi-wall:before{content:"\F7FD"}.mdi-wall-sconce:before{content:"\F91B"}.mdi-wall-sconce-flat:before{content:"\F91C"}.mdi-wall-sconce-variant:before{content:"\F91D"}.mdi-wallet:before{content:"\F584"}.mdi-wallet-giftcard:before{content:"\F585"}.mdi-wallet-membership:before{content:"\F586"}.mdi-wallet-outline:before{content:"\FBB9"}.mdi-wallet-travel:before{content:"\F587"}.mdi-wallpaper:before{content:"\FDE5"}.mdi-wan:before{content:"\F588"}.mdi-washing-machine:before{content:"\F729"}.mdi-watch:before{content:"\F589"}.mdi-watch-export:before{content:"\F58A"}.mdi-watch-export-variant:before{content:"\F894"}.mdi-watch-import:before{content:"\F58B"}.mdi-watch-import-variant:before{content:"\F895"}.mdi-watch-variant:before{content:"\F896"}.mdi-watch-vibrate:before{content:"\F6B0"}.mdi-watch-vibrate-off:before{content:"\FCB6"}.mdi-water:before{content:"\F58C"}.mdi-water-off:before{content:"\F58D"}.mdi-water-outline:before{content:"\FDE6"}.mdi-water-percent:before{content:"\F58E"}.mdi-water-pump:before{content:"\F58F"}.mdi-watermark:before{content:"\F612"}.mdi-waves:before{content:"\F78C"}.mdi-waze:before{content:"\FBBA"}.mdi-weather-cloudy:before{content:"\F590"}.mdi-weather-fog:before{content:"\F591"}.mdi-weather-hail:before{content:"\F592"}.mdi-weather-hurricane:before{content:"\F897"}.mdi-weather-lightning:before{content:"\F593"}.mdi-weather-lightning-rainy:before{content:"\F67D"}.mdi-weather-night:before{content:"\F594"}.mdi-weather-partlycloudy:before{content:"\F595"}.mdi-weather-pouring:before{content:"\F596"}.mdi-weather-rainy:before{content:"\F597"}.mdi-weather-snowy:before{content:"\F598"}.mdi-weather-snowy-rainy:before{content:"\F67E"}.mdi-weather-sunny:before{content:"\F599"}.mdi-weather-sunset:before{content:"\F59A"}.mdi-weather-sunset-down:before{content:"\F59B"}.mdi-weather-sunset-up:before{content:"\F59C"}.mdi-weather-windy:before{content:"\F59D"}.mdi-weather-windy-variant:before{content:"\F59E"}.mdi-web:before{content:"\F59F"}.mdi-webcam:before{content:"\F5A0"}.mdi-webhook:before{content:"\F62F"}.mdi-webpack:before{content:"\F72A"}.mdi-wechat:before{content:"\F611"}.mdi-weight:before{content:"\F5A1"}.mdi-weight-gram:before{content:"\FD1B"}.mdi-weight-kilogram:before{content:"\F5A2"}.mdi-weight-pound:before{content:"\F9B4"}.mdi-whatsapp:before{content:"\F5A3"}.mdi-wheelchair-accessibility:before{content:"\F5A4"}.mdi-whistle:before{content:"\F9B5"}.mdi-white-balance-auto:before{content:"\F5A5"}.mdi-white-balance-incandescent:before{content:"\F5A6"}.mdi-white-balance-iridescent:before{content:"\F5A7"}.mdi-white-balance-sunny:before{content:"\F5A8"}.mdi-widgets:before{content:"\F72B"}.mdi-wifi:before{content:"\F5A9"}.mdi-wifi-off:before{content:"\F5AA"}.mdi-wifi-star:before{content:"\FDE7"}.mdi-wifi-strength-1:before{content:"\F91E"}.mdi-wifi-strength-1-alert:before{content:"\F91F"}.mdi-wifi-strength-1-lock:before{content:"\F920"}.mdi-wifi-strength-2:before{content:"\F921"}.mdi-wifi-strength-2-alert:before{content:"\F922"}.mdi-wifi-strength-2-lock:before{content:"\F923"}.mdi-wifi-strength-3:before{content:"\F924"}.mdi-wifi-strength-3-alert:before{content:"\F925"}.mdi-wifi-strength-3-lock:before{content:"\F926"}.mdi-wifi-strength-4:before{content:"\F927"}.mdi-wifi-strength-4-alert:before{content:"\F928"}.mdi-wifi-strength-4-lock:before{content:"\F929"}.mdi-wifi-strength-alert-outline:before{content:"\F92A"}.mdi-wifi-strength-lock-outline:before{content:"\F92B"}.mdi-wifi-strength-off:before{content:"\F92C"}.mdi-wifi-strength-off-outline:before{content:"\F92D"}.mdi-wifi-strength-outline:before{content:"\F92E"}.mdi-wii:before{content:"\F5AB"}.mdi-wiiu:before{content:"\F72C"}.mdi-wikipedia:before{content:"\F5AC"}.mdi-wind-turbine:before{content:"\FD81"}.mdi-window-close:before{content:"\F5AD"}.mdi-window-closed:before{content:"\F5AE"}.mdi-window-maximize:before{content:"\F5AF"}.mdi-window-minimize:before{content:"\F5B0"}.mdi-window-open:before{content:"\F5B1"}.mdi-window-restore:before{content:"\F5B2"}.mdi-windows:before{content:"\F5B3"}.mdi-windows-classic:before{content:"\FA20"}.mdi-wiper:before{content:"\FAE8"}.mdi-wiper-wash:before{content:"\FD82"}.mdi-wordpress:before{content:"\F5B4"}.mdi-worker:before{content:"\F5B5"}.mdi-wrap:before{content:"\F5B6"}.mdi-wrap-disabled:before{content:"\FBBB"}.mdi-wrench:before{content:"\F5B7"}.mdi-wrench-outline:before{content:"\FBBC"}.mdi-wunderlist:before{content:"\F5B8"}.mdi-xamarin:before{content:"\F844"}.mdi-xamarin-outline:before{content:"\F845"}.mdi-xaml:before{content:"\F673"}.mdi-xbox:before{content:"\F5B9"}.mdi-xbox-controller:before{content:"\F5BA"}.mdi-xbox-controller-battery-alert:before{content:"\F74A"}.mdi-xbox-controller-battery-charging:before{content:"\FA21"}.mdi-xbox-controller-battery-empty:before{content:"\F74B"}.mdi-xbox-controller-battery-full:before{content:"\F74C"}.mdi-xbox-controller-battery-low:before{content:"\F74D"}.mdi-xbox-controller-battery-medium:before{content:"\F74E"}.mdi-xbox-controller-battery-unknown:before{content:"\F74F"}.mdi-xbox-controller-off:before{content:"\F5BB"}.mdi-xda:before{content:"\F5BC"}.mdi-xing:before{content:"\F5BD"}.mdi-xing-box:before{content:"\F5BE"}.mdi-xing-circle:before{content:"\F5BF"}.mdi-xml:before{content:"\F5C0"}.mdi-xmpp:before{content:"\F7FE"}.mdi-yahoo:before{content:"\FB2A"}.mdi-yammer:before{content:"\F788"}.mdi-yeast:before{content:"\F5C1"}.mdi-yelp:before{content:"\F5C2"}.mdi-yin-yang:before{content:"\F67F"}.mdi-youtube:before{content:"\F5C3"}.mdi-youtube-creator-studio:before{content:"\F846"}.mdi-youtube-gaming:before{content:"\F847"}.mdi-youtube-subscription:before{content:"\FD1C"}.mdi-youtube-tv:before{content:"\F448"}.mdi-z-wave:before{content:"\FAE9"}.mdi-zend:before{content:"\FAEA"}.mdi-zigbee:before{content:"\FD1D"}.mdi-zip-box:before{content:"\F5C4"}.mdi-zip-disk:before{content:"\FA22"}.mdi-zodiac-aquarius:before{content:"\FA7C"}.mdi-zodiac-aries:before{content:"\FA7D"}.mdi-zodiac-cancer:before{content:"\FA7E"}.mdi-zodiac-capricorn:before{content:"\FA7F"}.mdi-zodiac-gemini:before{content:"\FA80"}.mdi-zodiac-leo:before{content:"\FA81"}.mdi-zodiac-libra:before{content:"\FA82"}.mdi-zodiac-pisces:before{content:"\FA83"}.mdi-zodiac-sagittarius:before{content:"\FA84"}.mdi-zodiac-scorpio:before{content:"\FA85"}.mdi-zodiac-taurus:before{content:"\FA86"}.mdi-zodiac-virgo:before{content:"\FA87"}.mdi-blank:before{content:"\F68C";visibility:hidden}.mdi-18px.mdi-set,.mdi-18px.mdi:before{font-size:18px}.mdi-24px.mdi-set,.mdi-24px.mdi:before{font-size:24px}.mdi-36px.mdi-set,.mdi-36px.mdi:before{font-size:36px}.mdi-48px.mdi-set,.mdi-48px.mdi:before{font-size:48px}.mdi-dark:before{color:rgba(0,0,0,.54)}.mdi-dark.mdi-inactive:before{color:rgba(0,0,0,.26)}.mdi-light:before{color:#fff}.mdi-light.mdi-inactive:before{color:rgba(255,255,255,.3)}.mdi-rotate-45:before{transform:rotate(45deg)}.mdi-rotate-90:before{transform:rotate(90deg)}.mdi-rotate-135:before{transform:rotate(135deg)}.mdi-rotate-180:before{transform:rotate(180deg)}.mdi-rotate-225:before{transform:rotate(225deg)}.mdi-rotate-270:before{transform:rotate(270deg)}.mdi-rotate-315:before{transform:rotate(315deg)}.mdi-flip-h:before{transform:scaleX(-1);filter:FlipH;-ms-filter:FlipH}.mdi-flip-v:before{transform:scaleY(-1);filter:FlipV;-ms-filter:FlipV}.mdi-spin:before{animation:mdi-spin 2s infinite linear}@keyframes mdi-spin{0%{transform:rotate(0)}100%{transform:rotate(359deg)}}@font-face{font-family:feather;src:url('feather.eot?t=1525787366991');src:url('feather.eot?t=1525787366991#iefix') format("embedded-opentype"),url('feather.woff?t=1525787366991') format("woff"),url('feather.ttf?t=1525787366991') format("truetype"),url('feather.svg?t=1525787366991#feather') format("svg")}[class^=fe-]{font-family:feather!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fe-alert-octagon:before{content:"\e81b"}.fe-alert-circle:before{content:"\e81c"}.fe-activity:before{content:"\e81d"}.fe-alert-triangle:before{content:"\e81e"}.fe-align-center:before{content:"\e81f"}.fe-airplay:before{content:"\e820"}.fe-align-justify:before{content:"\e821"}.fe-align-left:before{content:"\e822"}.fe-align-right:before{content:"\e823"}.fe-arrow-down-left:before{content:"\e824"}.fe-arrow-down-right:before{content:"\e825"}.fe-anchor:before{content:"\e826"}.fe-aperture:before{content:"\e827"}.fe-arrow-left:before{content:"\e828"}.fe-arrow-right:before{content:"\e829"}.fe-arrow-down:before{content:"\e82a"}.fe-arrow-up-left:before{content:"\e82b"}.fe-arrow-up-right:before{content:"\e82c"}.fe-arrow-up:before{content:"\e82d"}.fe-award:before{content:"\e82e"}.fe-bar-chart:before{content:"\e82f"}.fe-at-sign:before{content:"\e830"}.fe-bar-chart-2:before{content:"\e831"}.fe-battery-charging:before{content:"\e832"}.fe-bell-off:before{content:"\e833"}.fe-battery:before{content:"\e834"}.fe-bluetooth:before{content:"\e835"}.fe-bell:before{content:"\e836"}.fe-book:before{content:"\e837"}.fe-briefcase:before{content:"\e838"}.fe-camera-off:before{content:"\e839"}.fe-calendar:before{content:"\e83a"}.fe-bookmark:before{content:"\e83b"}.fe-box:before{content:"\e83c"}.fe-camera:before{content:"\e83d"}.fe-check-circle:before{content:"\e83e"}.fe-check:before{content:"\e83f"}.fe-check-square:before{content:"\e840"}.fe-cast:before{content:"\e841"}.fe-chevron-down:before{content:"\e842"}.fe-chevron-left:before{content:"\e843"}.fe-chevron-right:before{content:"\e844"}.fe-chevron-up:before{content:"\e845"}.fe-chevrons-down:before{content:"\e846"}.fe-chevrons-right:before{content:"\e847"}.fe-chevrons-up:before{content:"\e848"}.fe-chevrons-left:before{content:"\e849"}.fe-circle:before{content:"\e84a"}.fe-clipboard:before{content:"\e84b"}.fe-chrome:before{content:"\e84c"}.fe-clock:before{content:"\e84d"}.fe-cloud-lightning:before{content:"\e84e"}.fe-cloud-drizzle:before{content:"\e84f"}.fe-cloud-rain:before{content:"\e850"}.fe-cloud-off:before{content:"\e851"}.fe-codepen:before{content:"\e852"}.fe-cloud-snow:before{content:"\e853"}.fe-compass:before{content:"\e854"}.fe-copy:before{content:"\e855"}.fe-corner-down-right:before{content:"\e856"}.fe-corner-down-left:before{content:"\e857"}.fe-corner-left-down:before{content:"\e858"}.fe-corner-left-up:before{content:"\e859"}.fe-corner-up-left:before{content:"\e85a"}.fe-corner-up-right:before{content:"\e85b"}.fe-corner-right-down:before{content:"\e85c"}.fe-corner-right-up:before{content:"\e85d"}.fe-cpu:before{content:"\e85e"}.fe-credit-card:before{content:"\e85f"}.fe-crosshair:before{content:"\e860"}.fe-disc:before{content:"\e861"}.fe-delete:before{content:"\e862"}.fe-download-cloud:before{content:"\e863"}.fe-download:before{content:"\e864"}.fe-droplet:before{content:"\e865"}.fe-edit-2:before{content:"\e866"}.fe-edit:before{content:"\e867"}.fe-edit-1:before{content:"\e868"}.fe-external-link:before{content:"\e869"}.fe-eye:before{content:"\e86a"}.fe-feather:before{content:"\e86b"}.fe-facebook:before{content:"\e86c"}.fe-file-minus:before{content:"\e86d"}.fe-eye-off:before{content:"\e86e"}.fe-fast-forward:before{content:"\e86f"}.fe-file-text:before{content:"\e870"}.fe-film:before{content:"\e871"}.fe-file:before{content:"\e872"}.fe-file-plus:before{content:"\e873"}.fe-folder:before{content:"\e874"}.fe-filter:before{content:"\e875"}.fe-flag:before{content:"\e876"}.fe-globe:before{content:"\e877"}.fe-grid:before{content:"\e878"}.fe-heart:before{content:"\e879"}.fe-home:before{content:"\e87a"}.fe-github:before{content:"\e87b"}.fe-image:before{content:"\e87c"}.fe-inbox:before{content:"\e87d"}.fe-layers:before{content:"\e87e"}.fe-info:before{content:"\e87f"}.fe-instagram:before{content:"\e880"}.fe-layout:before{content:"\e881"}.fe-link-2:before{content:"\e882"}.fe-life-buoy:before{content:"\e883"}.fe-link:before{content:"\e884"}.fe-log-in:before{content:"\e885"}.fe-list:before{content:"\e886"}.fe-lock:before{content:"\e887"}.fe-log-out:before{content:"\e888"}.fe-loader:before{content:"\e889"}.fe-mail:before{content:"\e88a"}.fe-maximize-2:before{content:"\e88b"}.fe-map:before{content:"\e88c"}.fe-map-pin:before{content:"\e88e"}.fe-menu:before{content:"\e88f"}.fe-message-circle:before{content:"\e890"}.fe-message-square:before{content:"\e891"}.fe-minimize-2:before{content:"\e892"}.fe-mic-off:before{content:"\e893"}.fe-minus-circle:before{content:"\e894"}.fe-mic:before{content:"\e895"}.fe-minus-square:before{content:"\e896"}.fe-minus:before{content:"\e897"}.fe-moon:before{content:"\e898"}.fe-monitor:before{content:"\e899"}.fe-more-vertical:before{content:"\e89a"}.fe-more-horizontal:before{content:"\e89b"}.fe-move:before{content:"\e89c"}.fe-music:before{content:"\e89d"}.fe-navigation-2:before{content:"\e89e"}.fe-navigation:before{content:"\e89f"}.fe-octagon:before{content:"\e8a0"}.fe-package:before{content:"\e8a1"}.fe-pause-circle:before{content:"\e8a2"}.fe-pause:before{content:"\e8a3"}.fe-percent:before{content:"\e8a4"}.fe-phone-call:before{content:"\e8a5"}.fe-phone-forwarded:before{content:"\e8a6"}.fe-phone-missed:before{content:"\e8a7"}.fe-phone-off:before{content:"\e8a8"}.fe-phone-incoming:before{content:"\e8a9"}.fe-phone:before{content:"\e8aa"}.fe-phone-outgoing:before{content:"\e8ab"}.fe-pie-chart:before{content:"\e8ac"}.fe-play-circle:before{content:"\e8ad"}.fe-play:before{content:"\e8ae"}.fe-plus-square:before{content:"\e8af"}.fe-plus-circle:before{content:"\e8b0"}.fe-plus:before{content:"\e8b1"}.fe-pocket:before{content:"\e8b2"}.fe-printer:before{content:"\e8b3"}.fe-power:before{content:"\e8b4"}.fe-radio:before{content:"\e8b5"}.fe-repeat:before{content:"\e8b6"}.fe-refresh-ccw:before{content:"\e8b7"}.fe-rewind:before{content:"\e8b8"}.fe-rotate-ccw:before{content:"\e8b9"}.fe-refresh-cw:before{content:"\e8ba"}.fe-rotate-cw:before{content:"\e8bb"}.fe-save:before{content:"\e8bc"}.fe-search:before{content:"\e8bd"}.fe-server:before{content:"\e8be"}.fe-scissors:before{content:"\e8bf"}.fe-share-2:before{content:"\e8c0"}.fe-share:before{content:"\e8c1"}.fe-shield:before{content:"\e8c2"}.fe-settings:before{content:"\e8c3"}.fe-skip-back:before{content:"\e8c4"}.fe-shuffle:before{content:"\e8c5"}.fe-sidebar:before{content:"\e8c6"}.fe-skip-forward:before{content:"\e8c7"}.fe-slack:before{content:"\e8c8"}.fe-slash:before{content:"\e8c9"}.fe-smartphone:before{content:"\e8ca"}.fe-square:before{content:"\e8cb"}.fe-speaker:before{content:"\e8cc"}.fe-star:before{content:"\e8cd"}.fe-stop-circle:before{content:"\e8ce"}.fe-sun:before{content:"\e8cf"}.fe-sunrise:before{content:"\e8d0"}.fe-tablet:before{content:"\e8d1"}.fe-tag:before{content:"\e8d2"}.fe-sunset:before{content:"\e8d3"}.fe-target:before{content:"\e8d4"}.fe-thermometer:before{content:"\e8d5"}.fe-thumbs-up:before{content:"\e8d6"}.fe-thumbs-down:before{content:"\e8d7"}.fe-toggle-left:before{content:"\e8d8"}.fe-toggle-right:before{content:"\e8d9"}.fe-trash-2:before{content:"\e8da"}.fe-trash:before{content:"\e8db"}.fe-trending-up:before{content:"\e8dc"}.fe-trending-down:before{content:"\e8dd"}.fe-triangle:before{content:"\e8de"}.fe-type:before{content:"\e8df"}.fe-twitter:before{content:"\e8e0"}.fe-upload:before{content:"\e8e1"}.fe-umbrella:before{content:"\e8e2"}.fe-upload-cloud:before{content:"\e8e3"}.fe-unlock:before{content:"\e8e4"}.fe-user-check:before{content:"\e8e5"}.fe-user-minus:before{content:"\e8e6"}.fe-user-plus:before{content:"\e8e7"}.fe-user-x:before{content:"\e8e8"}.fe-user:before{content:"\e8e9"}.fe-users:before{content:"\e8ea"}.fe-video-off:before{content:"\e8eb"}.fe-video:before{content:"\e8ec"}.fe-voicemail:before{content:"\e8ed"}.fe-volume-x:before{content:"\e8ee"}.fe-volume-2:before{content:"\e8ef"}.fe-volume-1:before{content:"\e8f0"}.fe-volume:before{content:"\e8f1"}.fe-watch:before{content:"\e8f2"}.fe-wifi:before{content:"\e8f3"}.fe-x-square:before{content:"\e8f4"}.fe-wind:before{content:"\e8f5"}.fe-x:before{content:"\e8f6"}.fe-x-circle:before{content:"\e8f7"}.fe-zap:before{content:"\e8f8"}.fe-zoom-in:before{content:"\e8f9"}.fe-zoom-out:before{content:"\e8fa"}.fe-command:before{content:"\e8fb"}.fe-cloud:before{content:"\e8fc"}.fe-hash:before{content:"\e8fd"}.fe-headphones:before{content:"\e8fe"}.fe-underline:before{content:"\e8ff"}.fe-italic:before{content:"\e900"}.fe-bold:before{content:"\e901"}.fe-crop:before{content:"\e902"}.fe-help-circle:before{content:"\e903"}.fe-paperclip:before{content:"\e904"}.fe-shopping-cart:before{content:"\e905"}.fe-tv:before{content:"\e906"}.fe-wifi-off:before{content:"\e907"}.fe-minimize:before{content:"\e88d"}.fe-maximize:before{content:"\e908"}.fe-gitlab:before{content:"\e909"}.fe-sliders:before{content:"\e90a"}.fe-star-on:before{content:"\e90b"}.fe-heart-on:before{content:"\e90c"}.fe-archive:before{content:"\e90d"}.fe-arrow-down-circle:before{content:"\e90e"}.fe-arrow-up-circle:before{content:"\e90f"}.fe-arrow-left-circle:before{content:"\e910"}.fe-arrow-right-circle:before{content:"\e911"}.fe-bar-chart-line-:before{content:"\e912"}.fe-bar-chart-line:before{content:"\e913"}.fe-book-open:before{content:"\e914"}.fe-code:before{content:"\e915"}.fe-database:before{content:"\e916"}.fe-dollar-sign:before{content:"\e917"}.fe-folder-plus:before{content:"\e918"}.fe-gift:before{content:"\e919"}.fe-folder-minus:before{content:"\e91a"}.fe-git-commit:before{content:"\e91b"}.fe-git-branch:before{content:"\e91c"}.fe-git-pull-request:before{content:"\e91d"}.fe-git-merge:before{content:"\e91e"}.fe-linkedin:before{content:"\e91f"}.fe-hard-drive:before{content:"\e920"}.fe-more-vertical-:before{content:"\e921"}.fe-more-horizontal-:before{content:"\e922"}.fe-rss:before{content:"\e923"}.fe-send:before{content:"\e924"}.fe-shield-off:before{content:"\e925"}.fe-shopping-bag:before{content:"\e926"}.fe-terminal:before{content:"\e927"}.fe-truck:before{content:"\e928"}.fe-zap-off:before{content:"\e929"}.fe-youtube:before{content:"\e92a"}@font-face{font-family:themify;src:url('themify.eot?-fvbane');src:url('themify.eot?#iefix-fvbane') format("embedded-opentype"),url('themify.woff?-fvbane') format("woff"),url('themify.ttf?-fvbane') format("truetype"),url('themify.svg?-fvbane#themify') format("svg");font-weight:400;font-style:normal}[class*=" ti-"],[class^=ti-]{font-family:themify;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ti-wand:before{content:"\e600"}.ti-volume:before{content:"\e601"}.ti-user:before{content:"\e602"}.ti-unlock:before{content:"\e603"}.ti-unlink:before{content:"\e604"}.ti-trash:before{content:"\e605"}.ti-thought:before{content:"\e606"}.ti-target:before{content:"\e607"}.ti-tag:before{content:"\e608"}.ti-tablet:before{content:"\e609"}.ti-star:before{content:"\e60a"}.ti-spray:before{content:"\e60b"}.ti-signal:before{content:"\e60c"}.ti-shopping-cart:before{content:"\e60d"}.ti-shopping-cart-full:before{content:"\e60e"}.ti-settings:before{content:"\e60f"}.ti-search:before{content:"\e610"}.ti-zoom-in:before{content:"\e611"}.ti-zoom-out:before{content:"\e612"}.ti-cut:before{content:"\e613"}.ti-ruler:before{content:"\e614"}.ti-ruler-pencil:before{content:"\e615"}.ti-ruler-alt:before{content:"\e616"}.ti-bookmark:before{content:"\e617"}.ti-bookmark-alt:before{content:"\e618"}.ti-reload:before{content:"\e619"}.ti-plus:before{content:"\e61a"}.ti-pin:before{content:"\e61b"}.ti-pencil:before{content:"\e61c"}.ti-pencil-alt:before{content:"\e61d"}.ti-paint-roller:before{content:"\e61e"}.ti-paint-bucket:before{content:"\e61f"}.ti-na:before{content:"\e620"}.ti-mobile:before{content:"\e621"}.ti-minus:before{content:"\e622"}.ti-medall:before{content:"\e623"}.ti-medall-alt:before{content:"\e624"}.ti-marker:before{content:"\e625"}.ti-marker-alt:before{content:"\e626"}.ti-arrow-up:before{content:"\e627"}.ti-arrow-right:before{content:"\e628"}.ti-arrow-left:before{content:"\e629"}.ti-arrow-down:before{content:"\e62a"}.ti-lock:before{content:"\e62b"}.ti-location-arrow:before{content:"\e62c"}.ti-link:before{content:"\e62d"}.ti-layout:before{content:"\e62e"}.ti-layers:before{content:"\e62f"}.ti-layers-alt:before{content:"\e630"}.ti-key:before{content:"\e631"}.ti-import:before{content:"\e632"}.ti-image:before{content:"\e633"}.ti-heart:before{content:"\e634"}.ti-heart-broken:before{content:"\e635"}.ti-hand-stop:before{content:"\e636"}.ti-hand-open:before{content:"\e637"}.ti-hand-drag:before{content:"\e638"}.ti-folder:before{content:"\e639"}.ti-flag:before{content:"\e63a"}.ti-flag-alt:before{content:"\e63b"}.ti-flag-alt-2:before{content:"\e63c"}.ti-eye:before{content:"\e63d"}.ti-export:before{content:"\e63e"}.ti-exchange-vertical:before{content:"\e63f"}.ti-desktop:before{content:"\e640"}.ti-cup:before{content:"\e641"}.ti-crown:before{content:"\e642"}.ti-comments:before{content:"\e643"}.ti-comment:before{content:"\e644"}.ti-comment-alt:before{content:"\e645"}.ti-close:before{content:"\e646"}.ti-clip:before{content:"\e647"}.ti-angle-up:before{content:"\e648"}.ti-angle-right:before{content:"\e649"}.ti-angle-left:before{content:"\e64a"}.ti-angle-down:before{content:"\e64b"}.ti-check:before{content:"\e64c"}.ti-check-box:before{content:"\e64d"}.ti-camera:before{content:"\e64e"}.ti-announcement:before{content:"\e64f"}.ti-brush:before{content:"\e650"}.ti-briefcase:before{content:"\e651"}.ti-bolt:before{content:"\e652"}.ti-bolt-alt:before{content:"\e653"}.ti-blackboard:before{content:"\e654"}.ti-bag:before{content:"\e655"}.ti-move:before{content:"\e656"}.ti-arrows-vertical:before{content:"\e657"}.ti-arrows-horizontal:before{content:"\e658"}.ti-fullscreen:before{content:"\e659"}.ti-arrow-top-right:before{content:"\e65a"}.ti-arrow-top-left:before{content:"\e65b"}.ti-arrow-circle-up:before{content:"\e65c"}.ti-arrow-circle-right:before{content:"\e65d"}.ti-arrow-circle-left:before{content:"\e65e"}.ti-arrow-circle-down:before{content:"\e65f"}.ti-angle-double-up:before{content:"\e660"}.ti-angle-double-right:before{content:"\e661"}.ti-angle-double-left:before{content:"\e662"}.ti-angle-double-down:before{content:"\e663"}.ti-zip:before{content:"\e664"}.ti-world:before{content:"\e665"}.ti-wheelchair:before{content:"\e666"}.ti-view-list:before{content:"\e667"}.ti-view-list-alt:before{content:"\e668"}.ti-view-grid:before{content:"\e669"}.ti-uppercase:before{content:"\e66a"}.ti-upload:before{content:"\e66b"}.ti-underline:before{content:"\e66c"}.ti-truck:before{content:"\e66d"}.ti-timer:before{content:"\e66e"}.ti-ticket:before{content:"\e66f"}.ti-thumb-up:before{content:"\e670"}.ti-thumb-down:before{content:"\e671"}.ti-text:before{content:"\e672"}.ti-stats-up:before{content:"\e673"}.ti-stats-down:before{content:"\e674"}.ti-split-v:before{content:"\e675"}.ti-split-h:before{content:"\e676"}.ti-smallcap:before{content:"\e677"}.ti-shine:before{content:"\e678"}.ti-shift-right:before{content:"\e679"}.ti-shift-left:before{content:"\e67a"}.ti-shield:before{content:"\e67b"}.ti-notepad:before{content:"\e67c"}.ti-server:before{content:"\e67d"}.ti-quote-right:before{content:"\e67e"}.ti-quote-left:before{content:"\e67f"}.ti-pulse:before{content:"\e680"}.ti-printer:before{content:"\e681"}.ti-power-off:before{content:"\e682"}.ti-plug:before{content:"\e683"}.ti-pie-chart:before{content:"\e684"}.ti-paragraph:before{content:"\e685"}.ti-panel:before{content:"\e686"}.ti-package:before{content:"\e687"}.ti-music:before{content:"\e688"}.ti-music-alt:before{content:"\e689"}.ti-mouse:before{content:"\e68a"}.ti-mouse-alt:before{content:"\e68b"}.ti-money:before{content:"\e68c"}.ti-microphone:before{content:"\e68d"}.ti-menu:before{content:"\e68e"}.ti-menu-alt:before{content:"\e68f"}.ti-map:before{content:"\e690"}.ti-map-alt:before{content:"\e691"}.ti-loop:before{content:"\e692"}.ti-location-pin:before{content:"\e693"}.ti-list:before{content:"\e694"}.ti-light-bulb:before{content:"\e695"}.ti-Italic:before{content:"\e696"}.ti-info:before{content:"\e697"}.ti-infinite:before{content:"\e698"}.ti-id-badge:before{content:"\e699"}.ti-hummer:before{content:"\e69a"}.ti-home:before{content:"\e69b"}.ti-help:before{content:"\e69c"}.ti-headphone:before{content:"\e69d"}.ti-harddrives:before{content:"\e69e"}.ti-harddrive:before{content:"\e69f"}.ti-gift:before{content:"\e6a0"}.ti-game:before{content:"\e6a1"}.ti-filter:before{content:"\e6a2"}.ti-files:before{content:"\e6a3"}.ti-file:before{content:"\e6a4"}.ti-eraser:before{content:"\e6a5"}.ti-envelope:before{content:"\e6a6"}.ti-download:before{content:"\e6a7"}.ti-direction:before{content:"\e6a8"}.ti-direction-alt:before{content:"\e6a9"}.ti-dashboard:before{content:"\e6aa"}.ti-control-stop:before{content:"\e6ab"}.ti-control-shuffle:before{content:"\e6ac"}.ti-control-play:before{content:"\e6ad"}.ti-control-pause:before{content:"\e6ae"}.ti-control-forward:before{content:"\e6af"}.ti-control-backward:before{content:"\e6b0"}.ti-cloud:before{content:"\e6b1"}.ti-cloud-up:before{content:"\e6b2"}.ti-cloud-down:before{content:"\e6b3"}.ti-clipboard:before{content:"\e6b4"}.ti-car:before{content:"\e6b5"}.ti-calendar:before{content:"\e6b6"}.ti-book:before{content:"\e6b7"}.ti-bell:before{content:"\e6b8"}.ti-basketball:before{content:"\e6b9"}.ti-bar-chart:before{content:"\e6ba"}.ti-bar-chart-alt:before{content:"\e6bb"}.ti-back-right:before{content:"\e6bc"}.ti-back-left:before{content:"\e6bd"}.ti-arrows-corner:before{content:"\e6be"}.ti-archive:before{content:"\e6bf"}.ti-anchor:before{content:"\e6c0"}.ti-align-right:before{content:"\e6c1"}.ti-align-left:before{content:"\e6c2"}.ti-align-justify:before{content:"\e6c3"}.ti-align-center:before{content:"\e6c4"}.ti-alert:before{content:"\e6c5"}.ti-alarm-clock:before{content:"\e6c6"}.ti-agenda:before{content:"\e6c7"}.ti-write:before{content:"\e6c8"}.ti-window:before{content:"\e6c9"}.ti-widgetized:before{content:"\e6ca"}.ti-widget:before{content:"\e6cb"}.ti-widget-alt:before{content:"\e6cc"}.ti-wallet:before{content:"\e6cd"}.ti-video-clapper:before{content:"\e6ce"}.ti-video-camera:before{content:"\e6cf"}.ti-vector:before{content:"\e6d0"}.ti-themify-logo:before{content:"\e6d1"}.ti-themify-favicon:before{content:"\e6d2"}.ti-themify-favicon-alt:before{content:"\e6d3"}.ti-support:before{content:"\e6d4"}.ti-stamp:before{content:"\e6d5"}.ti-split-v-alt:before{content:"\e6d6"}.ti-slice:before{content:"\e6d7"}.ti-shortcode:before{content:"\e6d8"}.ti-shift-right-alt:before{content:"\e6d9"}.ti-shift-left-alt:before{content:"\e6da"}.ti-ruler-alt-2:before{content:"\e6db"}.ti-receipt:before{content:"\e6dc"}.ti-pin2:before{content:"\e6dd"}.ti-pin-alt:before{content:"\e6de"}.ti-pencil-alt2:before{content:"\e6df"}.ti-palette:before{content:"\e6e0"}.ti-more:before{content:"\e6e1"}.ti-more-alt:before{content:"\e6e2"}.ti-microphone-alt:before{content:"\e6e3"}.ti-magnet:before{content:"\e6e4"}.ti-line-double:before{content:"\e6e5"}.ti-line-dotted:before{content:"\e6e6"}.ti-line-dashed:before{content:"\e6e7"}.ti-layout-width-full:before{content:"\e6e8"}.ti-layout-width-default:before{content:"\e6e9"}.ti-layout-width-default-alt:before{content:"\e6ea"}.ti-layout-tab:before{content:"\e6eb"}.ti-layout-tab-window:before{content:"\e6ec"}.ti-layout-tab-v:before{content:"\e6ed"}.ti-layout-tab-min:before{content:"\e6ee"}.ti-layout-slider:before{content:"\e6ef"}.ti-layout-slider-alt:before{content:"\e6f0"}.ti-layout-sidebar-right:before{content:"\e6f1"}.ti-layout-sidebar-none:before{content:"\e6f2"}.ti-layout-sidebar-left:before{content:"\e6f3"}.ti-layout-placeholder:before{content:"\e6f4"}.ti-layout-menu:before{content:"\e6f5"}.ti-layout-menu-v:before{content:"\e6f6"}.ti-layout-menu-separated:before{content:"\e6f7"}.ti-layout-menu-full:before{content:"\e6f8"}.ti-layout-media-right-alt:before{content:"\e6f9"}.ti-layout-media-right:before{content:"\e6fa"}.ti-layout-media-overlay:before{content:"\e6fb"}.ti-layout-media-overlay-alt:before{content:"\e6fc"}.ti-layout-media-overlay-alt-2:before{content:"\e6fd"}.ti-layout-media-left-alt:before{content:"\e6fe"}.ti-layout-media-left:before{content:"\e6ff"}.ti-layout-media-center-alt:before{content:"\e700"}.ti-layout-media-center:before{content:"\e701"}.ti-layout-list-thumb:before{content:"\e702"}.ti-layout-list-thumb-alt:before{content:"\e703"}.ti-layout-list-post:before{content:"\e704"}.ti-layout-list-large-image:before{content:"\e705"}.ti-layout-line-solid:before{content:"\e706"}.ti-layout-grid4:before{content:"\e707"}.ti-layout-grid3:before{content:"\e708"}.ti-layout-grid2:before{content:"\e709"}.ti-layout-grid2-thumb:before{content:"\e70a"}.ti-layout-cta-right:before{content:"\e70b"}.ti-layout-cta-left:before{content:"\e70c"}.ti-layout-cta-center:before{content:"\e70d"}.ti-layout-cta-btn-right:before{content:"\e70e"}.ti-layout-cta-btn-left:before{content:"\e70f"}.ti-layout-column4:before{content:"\e710"}.ti-layout-column3:before{content:"\e711"}.ti-layout-column2:before{content:"\e712"}.ti-layout-accordion-separated:before{content:"\e713"}.ti-layout-accordion-merged:before{content:"\e714"}.ti-layout-accordion-list:before{content:"\e715"}.ti-ink-pen:before{content:"\e716"}.ti-info-alt:before{content:"\e717"}.ti-help-alt:before{content:"\e718"}.ti-headphone-alt:before{content:"\e719"}.ti-hand-point-up:before{content:"\e71a"}.ti-hand-point-right:before{content:"\e71b"}.ti-hand-point-left:before{content:"\e71c"}.ti-hand-point-down:before{content:"\e71d"}.ti-gallery:before{content:"\e71e"}.ti-face-smile:before{content:"\e71f"}.ti-face-sad:before{content:"\e720"}.ti-credit-card:before{content:"\e721"}.ti-control-skip-forward:before{content:"\e722"}.ti-control-skip-backward:before{content:"\e723"}.ti-control-record:before{content:"\e724"}.ti-control-eject:before{content:"\e725"}.ti-comments-smiley:before{content:"\e726"}.ti-brush-alt:before{content:"\e727"}.ti-youtube:before{content:"\e728"}.ti-vimeo:before{content:"\e729"}.ti-twitter:before{content:"\e72a"}.ti-time:before{content:"\e72b"}.ti-tumblr:before{content:"\e72c"}.ti-skype:before{content:"\e72d"}.ti-share:before{content:"\e72e"}.ti-share-alt:before{content:"\e72f"}.ti-rocket:before{content:"\e730"}.ti-pinterest:before{content:"\e731"}.ti-new-window:before{content:"\e732"}.ti-microsoft:before{content:"\e733"}.ti-list-ol:before{content:"\e734"}.ti-linkedin:before{content:"\e735"}.ti-layout-sidebar-2:before{content:"\e736"}.ti-layout-grid4-alt:before{content:"\e737"}.ti-layout-grid3-alt:before{content:"\e738"}.ti-layout-grid2-alt:before{content:"\e739"}.ti-layout-column4-alt:before{content:"\e73a"}.ti-layout-column3-alt:before{content:"\e73b"}.ti-layout-column2-alt:before{content:"\e73c"}.ti-instagram:before{content:"\e73d"}.ti-google:before{content:"\e73e"}.ti-github:before{content:"\e73f"}.ti-flickr:before{content:"\e740"}.ti-facebook:before{content:"\e741"}.ti-dropbox:before{content:"\e742"}.ti-dribbble:before{content:"\e743"}.ti-apple:before{content:"\e744"}.ti-android:before{content:"\e745"}.ti-save:before{content:"\e746"}.ti-save-alt:before{content:"\e747"}.ti-yahoo:before{content:"\e748"}.ti-wordpress:before{content:"\e749"}.ti-vimeo-alt:before{content:"\e74a"}.ti-twitter-alt:before{content:"\e74b"}.ti-tumblr-alt:before{content:"\e74c"}.ti-trello:before{content:"\e74d"}.ti-stack-overflow:before{content:"\e74e"}.ti-soundcloud:before{content:"\e74f"}.ti-sharethis:before{content:"\e750"}.ti-sharethis-alt:before{content:"\e751"}.ti-reddit:before{content:"\e752"}.ti-pinterest-alt:before{content:"\e753"}.ti-microsoft-alt:before{content:"\e754"}.ti-linux:before{content:"\e755"}.ti-jsfiddle:before{content:"\e756"}.ti-joomla:before{content:"\e757"}.ti-html5:before{content:"\e758"}.ti-flickr-alt:before{content:"\e759"}.ti-email:before{content:"\e75a"}.ti-drupal:before{content:"\e75b"}.ti-dropbox-alt:before{content:"\e75c"}.ti-css3:before{content:"\e75d"}.ti-rss:before{content:"\e75e"}.ti-rss-alt:before{content:"\e75f"}.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scale(-1,1)}.fa-flip-vertical{transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1,-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-wizard:before{content:"\f6e8"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-nintendo-switch:before{content:"\f418"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:'Font Awesome 5 Brands';font-style:normal;font-weight:400;font-display:auto;src:url('fa-brands-400.eot');src:url('fa-brands-400.eot?#iefix') format("embedded-opentype"),url('fa-brands-400.woff2') format("woff2"),url('fa-brands-400.woff') format("woff"),url('fa-brands-400.ttf') format("truetype"),url('fa-brands-400.svg#fontawesome') format("svg")}.fab{font-family:'Font Awesome 5 Brands'}@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:400;font-display:auto;src:url('fa-regular-400.eot');src:url('fa-regular-400.eot?#iefix') format("embedded-opentype"),url('fa-regular-400.woff2') format("woff2"),url('fa-regular-400.woff') format("woff"),url('fa-regular-400.ttf') format("truetype"),url('fa-regular-400.svg#fontawesome') format("svg")}.far{font-family:'Font Awesome 5 Free';font-weight:400}@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:900;font-display:auto;src:url('fa-solid-900.eot');src:url('fa-solid-900.eot?#iefix') format("embedded-opentype"),url('fa-solid-900.woff2') format("woff2"),url('fa-solid-900.woff') format("woff"),url('fa-solid-900.ttf') format("truetype"),url('fa-solid-900.svg#fontawesome') format("svg")}.fa,.fas{font-family:'Font Awesome 5 Free';font-weight:900}
/*# sourceMappingURL=icons.min.css.map */

/*!**********************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[2]!./node_modules/ngx-lightbox/lightbox.css?ngGlobalStyle ***!
  \**********************************************************************************************************************************************************************************************************************************************/
/* Preload images */
body:after {
  content: url('close.png') url('loading.gif') url('prev.png') url('next.png');
  display: none;
}

html.lb-disable-scrolling {
  overflow: hidden;
}

.lightboxOverlay {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 9999;
  background-color: black;
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
  opacity: 0.8;
}

.lightbox {
  position: absolute;
  left: 0;
  width: 100%;
  z-index: 10000;
  text-align: center;
  line-height: 0;
  font-weight: normal;
  box-sizing: content-box;
  outline: none;
}

.lightbox .lb-image {
  height: auto;
  max-width: inherit;
  max-height: none;
  border-radius: 3px;

  /* Image border */
  border: 4px solid white;
}

.lightbox a img {
  border: none;
}

.lb-outerContainer {
  position: relative;
  *zoom: 1;
  width: 250px;
  height: 250px;
  margin: 0 auto;
  border-radius: 4px;

  /* Background color behind image.
     This is visible during transitions. */
  background-color: white;
}

.lb-outerContainer:after {
  content: "";
  display: table;
  clear: both;
}

.lb-loader {
  position: absolute;
  top: 43%;
  left: 0;
  height: 25%;
  width: 100%;
  text-align: center;
  line-height: 0;
}

.lb-cancel {
  display: block;
  width: 32px;
  height: 32px;
  margin: 0 auto;
  background: url('loading.gif') no-repeat;
}

.lb-nav {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 10;
}

.lb-container > .nav {
  left: 0;
}

.lb-nav a {
  outline: none;
  background-image: url('data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==');
}

.lb-prev, .lb-next {
  height: 100%;
  cursor: pointer;
  display: block;
}

.lb-nav a.lb-prev {
  width: 34%;
  left: 0;
  float: left;
  background: url('prev.png') left 48% no-repeat;
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
  opacity: 0;
  transition: opacity 0.6s;
}

.lb-nav a.lb-prev:hover {
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
  opacity: 1;
}

.lb-nav a.lb-next {
  width: 64%;
  right: 0;
  float: right;
  background: url('next.png') right 48% no-repeat;
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
  opacity: 0;
  transition: opacity 0.6s;
}

.lb-nav a.lb-next:hover {
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
  opacity: 1;
}

.lb-dataContainer {
  margin: 0 auto;
  padding-top: 5px;
  *zoom: 1;
  width: 100%;
  border-bottom-left-radius: 4px;
  border-bottom-right-radius: 4px;
}

.lb-dataContainer:after {
  content: "";
  display: table;
  clear: both;
}

.lb-data {
  padding: 0 4px;
  color: #ccc;
}

.lb-data .lb-details {
  width: 85%;
  float: left;
  text-align: left;
  line-height: 1.1em;
}

.lb-data .lb-caption {
  font-size: 13px;
  font-weight: bold;
  line-height: 1em;
}

.lb-data .lb-caption a {
  color: #4ae;
}

.lb-data .lb-number {
  display: block;
  clear: left;
  padding-bottom: 1em;
  font-size: 12px;
  color: #999999;
}

.lb-data .lb-close {
  display: block;
  float: right;
  width: 30px;
  height: 30px;
  background: url('close.png') top right no-repeat;
  text-align: right;
  outline: none;
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70);
  opacity: 0.7;
  transition: opacity 0.2s;
}

.lb-data .lb-close:hover {
  cursor: pointer;
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
  opacity: 1;
}

/* animation */
@keyframes fadeIn{    
  0% {opacity: 0;}
  100% {opacity: 1;}
}

@keyframes fadeOut{    
  0% {opacity: 1;}
  100% {opacity: 0;}
}


@keyframes fadeInOverlay{    
  0% {opacity: 0;}
  100% {opacity: 0.8;}
}

@keyframes fadeOutOverlay{    
  0% {opacity: 0.8;}
  100% {opacity: 0;}
}

.fadeIn{
  animation-name: fadeIn; 
}

.fadeInOverlay{
  animation-name: fadeInOverlay;
}

.fadeOut{
  animation-name: fadeOut;
}

.fadeOutOverlay{
  animation-name: fadeOutOverlay;
}

.animation{
  animation-fill-mode: both;
}

.transition{
  /* For Safari 3.1 to 6.0 */
  -webkit-transition-property: all;
  -webkit-transition-timing-function: ease;
  /* Standard syntax */
  transition-property: all;
  transition-timing-function: ease;
}

/* animation */
/*!**********************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[2]!./node_modules/ngx-ui-switch/ui-switch.component.css?ngGlobalStyle ***!
  \**********************************************************************************************************************************************************************************************************************************************************/
.switch.switch-small {
  min-width: 33px;
}

.switch.switch-medium {
  min-width: 50px;
}

.switch.switch-large {
  min-width: 60px;
}

.switch.switch-small > .switch-pane > span {
  font-size: 9px;
}

.switch.switch-medium > .switch-pane > span {
  font-size: 16px;
}

.switch.switch-large > .switch-pane > span {
  font-size: 16px;
}

.switch {
  border: 1px solid #dfdfdf;
  position: relative;
  display: inline-block;
  box-sizing: content-box;
  padding: 0;
  margin: 0;
  cursor: pointer;
  box-shadow: rgb(223, 223, 223) 0 0 0 0 inset;
  transition: 0.3s ease-out all;
  -webkit-transition: 0.3s ease-out all;
  white-space: nowrap;
}
.switch small {
  border-radius: 100%;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
  position: absolute;
  top: 0;
  right: calc(100% - 30px);
  transition: 0.3s ease-out all;
  -webkit-transition: 0.3s ease-out all;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.switch.switch-small {
  height: 20px;
  border-radius: 20px;
}
.switch.switch-small small {
  width: 20px;
  height: 20px;
  right: calc(100% - 20px);
}
.switch.switch-small > .switch-pane > span {
  line-height: 20px;
}
.switch.switch-small > .switch-pane .switch-label-checked {
  padding-right: 25px;
  padding-left: 10px;
}
.switch.switch-small > .switch-pane .switch-label-unchecked {
  padding-left: 25px;
  padding-right: 10px;
}
.switch.switch-medium {
  height: 30px;
  border-radius: 30px;
}
.switch.switch-medium small {
  width: 30px;
  height: 30px;
  right: calc(100% - 30px);
}
.switch.switch-medium > .switch-pane > span {
  line-height: 30px;
}
.switch.switch-medium > .switch-pane .switch-label-checked {
  padding-right: 35px;
  padding-left: 15px;
}
.switch.switch-medium > .switch-pane .switch-label-unchecked {
  padding-left: 35px;
  padding-right: 15px;
}
.switch.switch-large {
  height: 40px;
  border-radius: 40px;
}
.switch.switch-large small {
  width: 40px;
  height: 40px;
  right: calc(100% - 40px);
}
.switch.switch-large > .switch-pane > span {
  line-height: 40px;
}
.switch.switch-large > .switch-pane .switch-label-checked {
  padding-right: 45px;
  padding-left: 20px;
}
.switch.switch-large > .switch-pane .switch-label-unchecked {
  padding-left: 45px;
  padding-right: 20px;
}
.switch.checked {
  background: rgb(100, 189, 99);
}
.switch.checked small {
  right: 0;
  left: auto;
}
.switch.checked .switch-pane {
  top: 0;
}
.switch.checked .switch-pane .switch-label-checked {
  display: block;
}
.switch.checked .switch-pane .switch-label-unchecked {
  display: none;
}
.switch.disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.switch .switch-pane {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 100%;
  justify-content: flex-start;
  align-items: center;
  top: 0;
  position: relative;
  pointer-events: none;
}
.switch .switch-pane > span {
  display: block;
  min-height: 100%;
}
.switch .switch-pane .switch-label {
  color: black;
}
.switch .switch-pane .switch-label-checked {
  display: none;
}
.switch .switch-pane .switch-label-unchecked {
  display: block;
}
.switch.loading {
  background-color: #f1f1f1;
}
.switch.loading small {
  background-color: transparent;
  border: none;
  box-shadow: none;
  right: 50%;
  transform: translateX(50%);
}
/*!*********************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[2]!./node_modules/leaflet/dist/leaflet.css?ngGlobalStyle ***!
  \*********************************************************************************************************************************************************************************************************************************************/
/* required styles */

.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-pane > svg,
.leaflet-pane > canvas,
.leaflet-zoom-box,
.leaflet-image-layer,
.leaflet-layer {
	position: absolute;
	left: 0;
	top: 0;
	}
.leaflet-container {
	overflow: hidden;
	}
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow {
	-webkit-user-select: none;
	        user-select: none;
	  -webkit-user-drag: none;
	}
/* Prevents IE11 from highlighting tiles in blue */
.leaflet-tile::selection {
	background: transparent;
}
/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
.leaflet-safari .leaflet-tile {
	image-rendering: -webkit-optimize-contrast;
	}
/* hack that prevents hw layers "stretching" when loading new tiles */
.leaflet-safari .leaflet-tile-container {
	width: 1600px;
	height: 1600px;
	-webkit-transform-origin: 0 0;
	}
.leaflet-marker-icon,
.leaflet-marker-shadow {
	display: block;
	}
/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
.leaflet-container .leaflet-overlay-pane svg {
	max-width: none !important;
	max-height: none !important;
	}
.leaflet-container .leaflet-marker-pane img,
.leaflet-container .leaflet-shadow-pane img,
.leaflet-container .leaflet-tile-pane img,
.leaflet-container img.leaflet-image-layer,
.leaflet-container .leaflet-tile {
	max-width: none !important;
	max-height: none !important;
	width: auto;
	padding: 0;
	}

.leaflet-container img.leaflet-tile {
	/* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */
	mix-blend-mode: plus-lighter;
}

.leaflet-container.leaflet-touch-zoom {
	touch-action: pan-x pan-y;
	}
.leaflet-container.leaflet-touch-drag {
	/* Fallback for FF which doesn't support pinch-zoom */
	touch-action: none;
	touch-action: pinch-zoom;
}
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
	touch-action: none;
}
.leaflet-container {
	-webkit-tap-highlight-color: transparent;
}
.leaflet-container a {
	-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
}
.leaflet-tile {
	filter: inherit;
	visibility: hidden;
	}
.leaflet-tile-loaded {
	visibility: inherit;
	}
.leaflet-zoom-box {
	width: 0;
	height: 0;
	box-sizing: border-box;
	z-index: 800;
	}
/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
.leaflet-overlay-pane svg {
	-moz-user-select: none;
	}

.leaflet-pane         { z-index: 400; }

.leaflet-tile-pane    { z-index: 200; }
.leaflet-overlay-pane { z-index: 400; }
.leaflet-shadow-pane  { z-index: 500; }
.leaflet-marker-pane  { z-index: 600; }
.leaflet-tooltip-pane   { z-index: 650; }
.leaflet-popup-pane   { z-index: 700; }

.leaflet-map-pane canvas { z-index: 100; }
.leaflet-map-pane svg    { z-index: 200; }

.leaflet-vml-shape {
	width: 1px;
	height: 1px;
	}
.lvml {
	behavior: url(#default#VML);
	display: inline-block;
	position: absolute;
	}


/* control positioning */

.leaflet-control {
	position: relative;
	z-index: 800;
	pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
	pointer-events: auto;
	}
.leaflet-top,
.leaflet-bottom {
	position: absolute;
	z-index: 1000;
	pointer-events: none;
	}
.leaflet-top {
	top: 0;
	}
.leaflet-right {
	right: 0;
	}
.leaflet-bottom {
	bottom: 0;
	}
.leaflet-left {
	left: 0;
	}
.leaflet-control {
	float: left;
	clear: both;
	}
.leaflet-right .leaflet-control {
	float: right;
	}
.leaflet-top .leaflet-control {
	margin-top: 10px;
	}
.leaflet-bottom .leaflet-control {
	margin-bottom: 10px;
	}
.leaflet-left .leaflet-control {
	margin-left: 10px;
	}
.leaflet-right .leaflet-control {
	margin-right: 10px;
	}


/* zoom and fade animations */

.leaflet-fade-anim .leaflet-popup {
	opacity: 0;
	transition: opacity 0.2s linear;
	}
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
	opacity: 1;
	}
.leaflet-zoom-animated {
	transform-origin: 0 0;
	}
svg.leaflet-zoom-animated {
	will-change: transform;
}

.leaflet-zoom-anim .leaflet-zoom-animated {
	transition:         transform 0.25s cubic-bezier(0,0,0.25,1);
	}
.leaflet-zoom-anim .leaflet-tile,
.leaflet-pan-anim .leaflet-tile {
	transition: none;
	}

.leaflet-zoom-anim .leaflet-zoom-hide {
	visibility: hidden;
	}


/* cursors */

.leaflet-interactive {
	cursor: pointer;
	}
.leaflet-grab {
	cursor:         grab;
	}
.leaflet-crosshair,
.leaflet-crosshair .leaflet-interactive {
	cursor: crosshair;
	}
.leaflet-popup-pane,
.leaflet-control {
	cursor: auto;
	}
.leaflet-dragging .leaflet-grab,
.leaflet-dragging .leaflet-grab .leaflet-interactive,
.leaflet-dragging .leaflet-marker-draggable {
	cursor: move;
	cursor:         grabbing;
	}

/* marker & overlays interactivity */
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-image-layer,
.leaflet-pane > svg path,
.leaflet-tile-container {
	pointer-events: none;
	}

.leaflet-marker-icon.leaflet-interactive,
.leaflet-image-layer.leaflet-interactive,
.leaflet-pane > svg path.leaflet-interactive,
svg.leaflet-image-layer.leaflet-interactive path {
	pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
	pointer-events: auto;
	}

/* visual tweaks */

.leaflet-container {
	background: #ddd;
	outline-offset: 1px;
	}
.leaflet-container a {
	color: #0078A8;
	}
.leaflet-zoom-box {
	border: 2px dotted #38f;
	background: rgba(255,255,255,0.5);
	}


/* general typography */
.leaflet-container {
	font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-size: 0.75rem;
	line-height: 1.5;
	}


/* general toolbar styles */

.leaflet-bar {
	box-shadow: 0 1px 5px rgba(0,0,0,0.65);
	border-radius: 4px;
	}
.leaflet-bar a {
	background-color: #fff;
	border-bottom: 1px solid #ccc;
	width: 26px;
	height: 26px;
	line-height: 26px;
	display: block;
	text-align: center;
	text-decoration: none;
	color: black;
	}
.leaflet-bar a,
.leaflet-control-layers-toggle {
	background-position: 50% 50%;
	background-repeat: no-repeat;
	display: block;
	}
.leaflet-bar a:hover,
.leaflet-bar a:focus {
	background-color: #f4f4f4;
	}
.leaflet-bar a:first-child {
	border-top-left-radius: 4px;
	border-top-right-radius: 4px;
	}
.leaflet-bar a:last-child {
	border-bottom-left-radius: 4px;
	border-bottom-right-radius: 4px;
	border-bottom: none;
	}
.leaflet-bar a.leaflet-disabled {
	cursor: default;
	background-color: #f4f4f4;
	color: #bbb;
	}

.leaflet-touch .leaflet-bar a {
	width: 30px;
	height: 30px;
	line-height: 30px;
	}
.leaflet-touch .leaflet-bar a:first-child {
	border-top-left-radius: 2px;
	border-top-right-radius: 2px;
	}
.leaflet-touch .leaflet-bar a:last-child {
	border-bottom-left-radius: 2px;
	border-bottom-right-radius: 2px;
	}

/* zoom control */

.leaflet-control-zoom-in,
.leaflet-control-zoom-out {
	font: bold 18px 'Lucida Console', Monaco, monospace;
	text-indent: 1px;
	}

.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out  {
	font-size: 22px;
	}


/* layers control */

.leaflet-control-layers {
	box-shadow: 0 1px 5px rgba(0,0,0,0.4);
	background: #fff;
	border-radius: 5px;
	}
.leaflet-control-layers-toggle {
	background-image: url('layers.png');
	width: 36px;
	height: 36px;
	}
.leaflet-retina .leaflet-control-layers-toggle {
	background-image: url('layers-2x.png');
	background-size: 26px 26px;
	}
.leaflet-touch .leaflet-control-layers-toggle {
	width: 44px;
	height: 44px;
	}
.leaflet-control-layers .leaflet-control-layers-list,
.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
	display: none;
	}
.leaflet-control-layers-expanded .leaflet-control-layers-list {
	display: block;
	position: relative;
	}
.leaflet-control-layers-expanded {
	padding: 6px 10px 6px 6px;
	color: #333;
	background: #fff;
	}
.leaflet-control-layers-scrollbar {
	overflow-y: scroll;
	overflow-x: hidden;
	padding-right: 5px;
	}
.leaflet-control-layers-selector {
	margin-top: 2px;
	position: relative;
	top: 1px;
	}
.leaflet-control-layers label {
	display: block;
	font-size: 13px;
	font-size: 1.08333em;
	}
.leaflet-control-layers-separator {
	height: 0;
	border-top: 1px solid #ddd;
	margin: 5px -10px 5px -6px;
	}

/* Default icon URLs */
.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */
	background-image: url('marker-icon.png');
	}


/* attribution and scale controls */

.leaflet-container .leaflet-control-attribution {
	background: #fff;
	background: rgba(255, 255, 255, 0.8);
	margin: 0;
	}
.leaflet-control-attribution,
.leaflet-control-scale-line {
	padding: 0 5px;
	color: #333;
	line-height: 1.4;
	}
.leaflet-control-attribution a {
	text-decoration: none;
	}
.leaflet-control-attribution a:hover,
.leaflet-control-attribution a:focus {
	text-decoration: underline;
	}
.leaflet-attribution-flag {
	display: inline !important;
	vertical-align: baseline !important;
	width: 1em;
	height: 0.6669em;
	}
.leaflet-left .leaflet-control-scale {
	margin-left: 5px;
	}
.leaflet-bottom .leaflet-control-scale {
	margin-bottom: 5px;
	}
.leaflet-control-scale-line {
	border: 2px solid #777;
	border-top: none;
	line-height: 1.1;
	padding: 2px 5px 1px;
	white-space: nowrap;
	box-sizing: border-box;
	background: rgba(255, 255, 255, 0.8);
	text-shadow: 1px 1px #fff;
	}
.leaflet-control-scale-line:not(:first-child) {
	border-top: 2px solid #777;
	border-bottom: none;
	margin-top: -2px;
	}
.leaflet-control-scale-line:not(:first-child):not(:last-child) {
	border-bottom: 2px solid #777;
	}

.leaflet-touch .leaflet-control-attribution,
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
	box-shadow: none;
	}
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
	border: 2px solid rgba(0,0,0,0.2);
	background-clip: padding-box;
	}


/* popup */

.leaflet-popup {
	position: absolute;
	text-align: center;
	margin-bottom: 20px;
	}
.leaflet-popup-content-wrapper {
	padding: 1px;
	text-align: left;
	border-radius: 12px;
	}
.leaflet-popup-content {
	margin: 13px 24px 13px 20px;
	line-height: 1.3;
	font-size: 13px;
	font-size: 1.08333em;
	min-height: 1px;
	}
.leaflet-popup-content p {
	margin: 17px 0;
	margin: 1.3em 0;
	}
.leaflet-popup-tip-container {
	width: 40px;
	height: 20px;
	position: absolute;
	left: 50%;
	margin-top: -1px;
	margin-left: -20px;
	overflow: hidden;
	pointer-events: none;
	}
.leaflet-popup-tip {
	width: 17px;
	height: 17px;
	padding: 1px;

	margin: -10px auto 0;
	pointer-events: auto;
	transform: rotate(45deg);
	}
.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
	background: white;
	color: #333;
	box-shadow: 0 3px 14px rgba(0,0,0,0.4);
	}
.leaflet-container a.leaflet-popup-close-button {
	position: absolute;
	top: 0;
	right: 0;
	border: none;
	text-align: center;
	width: 24px;
	height: 24px;
	font: 16px/24px Tahoma, Verdana, sans-serif;
	color: #757575;
	text-decoration: none;
	background: transparent;
	}
.leaflet-container a.leaflet-popup-close-button:hover,
.leaflet-container a.leaflet-popup-close-button:focus {
	color: #585858;
	}
.leaflet-popup-scrolled {
	overflow: auto;
	}

.leaflet-oldie .leaflet-popup-content-wrapper {
	-ms-zoom: 1;
	}
.leaflet-oldie .leaflet-popup-tip {
	width: 24px;
	margin: 0 auto;

	-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
	filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
	}

.leaflet-oldie .leaflet-control-zoom,
.leaflet-oldie .leaflet-control-layers,
.leaflet-oldie .leaflet-popup-content-wrapper,
.leaflet-oldie .leaflet-popup-tip {
	border: 1px solid #999;
	}


/* div icon */

.leaflet-div-icon {
	background: #fff;
	border: 1px solid #666;
	}


/* Tooltip */
/* Base styles for the element that has a tooltip */
.leaflet-tooltip {
	position: absolute;
	padding: 6px;
	background-color: #fff;
	border: 1px solid #fff;
	border-radius: 3px;
	color: #222;
	white-space: nowrap;
	-webkit-user-select: none;
	user-select: none;
	pointer-events: none;
	box-shadow: 0 1px 3px rgba(0,0,0,0.4);
	}
.leaflet-tooltip.leaflet-interactive {
	cursor: pointer;
	pointer-events: auto;
	}
.leaflet-tooltip-top:before,
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
	position: absolute;
	pointer-events: none;
	border: 6px solid transparent;
	background: transparent;
	content: "";
	}

/* Directions */

.leaflet-tooltip-bottom {
	margin-top: 6px;
}
.leaflet-tooltip-top {
	margin-top: -6px;
}
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-top:before {
	left: 50%;
	margin-left: -6px;
	}
.leaflet-tooltip-top:before {
	bottom: 0;
	margin-bottom: -12px;
	border-top-color: #fff;
	}
.leaflet-tooltip-bottom:before {
	top: 0;
	margin-top: -12px;
	margin-left: -6px;
	border-bottom-color: #fff;
	}
.leaflet-tooltip-left {
	margin-left: -6px;
}
.leaflet-tooltip-right {
	margin-left: 6px;
}
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
	top: 50%;
	margin-top: -6px;
	}
.leaflet-tooltip-left:before {
	right: 0;
	margin-right: -12px;
	border-left-color: #fff;
	}
.leaflet-tooltip-right:before {
	left: 0;
	margin-left: -12px;
	border-right-color: #fff;
	}

/* Printing */

@media print {
	/* Prevent printers from removing background-images of controls. */
	.leaflet-control {
		print-color-adjust: exact;
		}
	}

/*!*****************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[2]!./node_modules/leaflet.markercluster/dist/MarkerCluster.css?ngGlobalStyle ***!
  \*****************************************************************************************************************************************************************************************************************************************************************/
.leaflet-cluster-anim .leaflet-marker-icon, .leaflet-cluster-anim .leaflet-marker-shadow {
	transition: transform 0.3s ease-out, opacity 0.3s ease-in;
}

.leaflet-cluster-spider-leg {
	/* stroke-dashoffset (duration and function) should match with leaflet-marker-icon transform in order to track it exactly */
	transition: stroke-dashoffset 0.3s ease-out, stroke-opacity 0.3s ease-in;
}

/*!*************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[2]!./node_modules/leaflet.markercluster/dist/MarkerCluster.Default.css?ngGlobalStyle ***!
  \*************************************************************************************************************************************************************************************************************************************************************************/
.marker-cluster-small {
	background-color: rgba(181, 226, 140, 0.6);
	}
.marker-cluster-small div {
	background-color: rgba(110, 204, 57, 0.6);
	}

.marker-cluster-medium {
	background-color: rgba(241, 211, 87, 0.6);
	}
.marker-cluster-medium div {
	background-color: rgba(240, 194, 12, 0.6);
	}

.marker-cluster-large {
	background-color: rgba(253, 156, 115, 0.6);
	}
.marker-cluster-large div {
	background-color: rgba(241, 128, 23, 0.6);
	}

	/* IE 6-8 fallback colors */
.leaflet-oldie .marker-cluster-small {
	background-color: rgb(181, 226, 140);
	}
.leaflet-oldie .marker-cluster-small div {
	background-color: rgb(110, 204, 57);
	}

.leaflet-oldie .marker-cluster-medium {
	background-color: rgb(241, 211, 87);
	}
.leaflet-oldie .marker-cluster-medium div {
	background-color: rgb(240, 194, 12);
	}

.leaflet-oldie .marker-cluster-large {
	background-color: rgb(253, 156, 115);
	}
.leaflet-oldie .marker-cluster-large div {
	background-color: rgb(241, 128, 23);
}

.marker-cluster {
	background-clip: padding-box;
	border-radius: 20px;
	}
.marker-cluster div {
	width: 30px;
	height: 30px;
	margin-left: 5px;
	margin-top: 5px;

	text-align: center;
	border-radius: 15px;
	font: 12px "Helvetica Neue", Arial, Helvetica, sans-serif;
	}
.marker-cluster span {
	line-height: 30px;
	}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[6].rules[1].use[0]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].rules[1].use[1]!./src/print-contract.scss?ngGlobalStyle ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
/* ==========================================================================
   PRINT CONTRACT ENTRYPOINT
   ==========================================================================
   This stylesheet is intentionally loaded LAST in angular.json so the print
   contract overrides Bootstrap/vendor print rules like @page size and
   min-width constraints.
   ========================================================================== */
/* ==========================================================================
   ENTERPRISE PRINT CONTRACT — SINGLE SOURCE OF TRUTH
   ==========================================================================
   All print-related rules MUST live here. No other file may define @page,
   body margin resets, .no-print, print-color-adjust, or table break rules.

   Load order: This file MUST be imported LAST in styles.scss to override
   Bootstrap and vendor print rules.
   ========================================================================== */
/* ---- Page setup ---- */
@media print {
  @page {
    size: A4 !important;
    margin: 10mm 10mm 12mm 10mm !important;
  }
  /* ---- Global resets ---- */
  html, body {
    margin: 0 !important;
    padding: 0 !important;
    background: white !important;
    height: auto !important;
    overflow: visible !important;
    min-width: auto !important; /* override Bootstrap @media print { body { min-width: 992px } } */
    width: auto !important;
    print-color-adjust: exact;
  }
  /* Override Bootstrap's .container min-width:992px print rule */
  .container {
    min-width: auto !important;
    width: 100% !important;
  }
  /* Force exact colors on all elements */
  * {
    print-color-adjust: exact;
  }
  /* ---- Visibility utilities ---- */
  .no-print {
    display: none !important;
  }
  .print-only {
    display: block !important;
  }
  /* ---- Hide Angular Material overlays (except dialog content) ---- */
  .cdk-overlay-backdrop,
  mat-snack-bar-container,
  .mat-snack-bar-container,
  mat-tooltip-component,
  .mat-mdc-tooltip,
  .mat-mdc-tooltip-surface,
  .mdc-tooltip,
  .mdc-tooltip__surface {
    display: none !important;
  }
  /* When a dialog is open, hide the main app behind it.
   * Exception: body.print-layout means we are on a dedicated /proforma|invoice|gatepass
   * route page where the content IS inside app-root — don't hide it there. */
  body:not(.print-layout) app-root {
    display: none !important;
  }
  /* Make the overlay container fill the page for print */
  .cdk-overlay-container {
    position: static !important;
    display: block !important;
  }
  .cdk-global-overlay-wrapper {
    position: static !important;
    display: block !important;
  }
  .cdk-overlay-pane {
    position: static !important;
    max-width: 100% !important;
    width: 100% !important;
  }
  .mat-mdc-dialog-container {
    box-shadow: none !important;
  }
  /* ---- Table break rules ---- */
  thead {
    display: table-header-group;
  }
  tfoot {
    display: table-footer-group;
  }
  /* Invoice/proforma section tables should not repeat on the next page. */
  .print-doc--invoice .table-invoice thead,
  .print-doc--proforma .table-invoice thead,
  .print-doc--estimation .table-invoice thead,
  .print-doc--insurance-proforma .table-invoice thead {
    display: table-row-group !important;
  }
  tr {
    page-break-inside: avoid;
  }
  /* ---- Page break utilities ---- */
  .ui-page-break {
    page-break-before: always;
  }
  .ui-no-break {
    page-break-inside: avoid;
  }
  /* ---- Invoice / Proforma — subtle border overrides ---- */
  /* .border-bot from vendor CSS uses #666666 which prints very dark.
     Override all document table borders to a light hairline. */
  .border-bot,
  .table-invoice tr.border-bot,
  .table-invoice .border-bot {
    border-bottom: 1px solid #ddd !important;
  }
  /* Table row separators (inline style: border-bottom:1px solid lightgray) */
  .table-invoice tr[style*=border-bottom],
  .table-invoice tr {
    border-bottom-color: #e0e0e0 !important;
  }
  /* Table thead bottom border and overall table borders */
  .table-invoice thead tr th,
  .table-invoice thead,
  .table.table-invoice {
    border-color: #ddd !important;
  }
  /* Header section divider (inline: border-bottom: 1px solid #c7c7c7) */
  [style*="border-bottom: 1px solid #c7c7c7"],
  [style*="border-bottom:1px solid #c7c7c7"] {
    border-bottom-color: #ddd !important;
  }
  /* Bootstrap .table adds 1px solid #dee2e6 on td/th — lighten further */
  .table-invoice td,
  .table-invoice th {
    border-color: #ebebeb !important;
  }
}
/* ==========================================================================
   PRODUCT TRACKING LABEL PRINT CONTRACT
   ==========================================================================
   Owns the actual printable dimensions and preview styling for stock labels.
   No @page rules live here; global page setup remains in print.scss.
   ========================================================================== */
.product-tracking-label {
  --label-width: 4in;
  --label-face-height: 2in;
  --label-padding-x: 0.14in;
  --label-header-height: 0.62in;
  --label-text: #111111;
  --label-muted: #333333;
  --label-border: #111111;
  width: var(--label-width);
  height: var(--label-face-height);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #ffffff;
  color: var(--label-text);
  font-family: var(--ui-font-primary);
  page-break-inside: avoid;
  break-inside: avoid;
}

.product-tracking-label--4x4 {
  height: calc(var(--label-face-height) * 2);
}

.product-tracking-label,
.product-tracking-label * {
  box-sizing: border-box;
}

.product-tracking-label__face {
  width: 100%;
  height: var(--label-face-height);
  flex: 0 0 var(--label-face-height);
  overflow: hidden;
}

.product-tracking-label__face--front {
  display: flex;
  flex-direction: column;
}

.product-tracking-label__face--back {
  display: grid;
  grid-template-columns: 1.25in minmax(0, 1fr);
  gap: 0.12in;
  padding: 0.14in var(--label-padding-x);
  border-top: 1px solid var(--label-border);
}

.product-tracking-label__header {
  height: var(--label-header-height);
  flex: 0 0 var(--label-header-height);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.12in;
  padding: 0.08in var(--label-padding-x);
  border-bottom: 1px solid var(--label-border);
}

.product-tracking-label__brand-copy {
  min-width: 0;
}

.product-tracking-label__headline,
.product-tracking-label__company,
.product-tracking-label__row,
.product-tracking-label__secondary-qr p,
.product-tracking-label__additional-info p {
  margin: 0;
  padding: 0;
}

.product-tracking-label__headline {
  color: var(--label-text);
  font-size: 9px;
  font-weight: var(--ui-font-medium);
  line-height: 1.2;
}

.product-tracking-label__company {
  margin-top: 0.02in;
  color: var(--label-text);
  font-size: 13px;
  font-weight: var(--ui-font-bold);
  line-height: 1.15;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.product-tracking-label__logo {
  width: 0.38in;
  height: 0.38in;
  flex: 0 0 0.38in;
  object-fit: contain;
  border-radius: 0.04in;
}

.product-tracking-label__body {
  flex: 1 1 auto;
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 1.18in;
  gap: 0.12in;
  padding: 0.12in var(--label-padding-x);
}

.product-tracking-label__details {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.product-tracking-label__row {
  display: flex;
  align-items: baseline;
  gap: 0.04in;
  color: var(--label-text);
  font-size: 9px;
  line-height: 1.22;
}

.product-tracking-label__row span {
  flex: 0 0 auto;
  color: var(--label-text);
  font-weight: var(--ui-font-medium);
}

.product-tracking-label__row strong {
  min-width: 0;
  color: var(--label-text);
  font-weight: var(--ui-font-bold);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.product-tracking-label__barcode {
  display: block;
  width: 1.95in;
  max-width: 100%;
  margin-top: 0.07in;
}

.product-tracking-label__barcode svg {
  display: block;
  max-width: 100%;
}

.product-tracking-label__qr-panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 0;
  padding-left: 0.12in;
  border-left: 1px solid #999999;
  text-align: center;
}

.product-tracking-label__qr-panel qrcode,
.product-tracking-label__secondary-qr qrcode {
  display: block;
}

.product-tracking-label__qr-panel canvas,
.product-tracking-label__qr-panel img {
  display: block;
  width: 1.08in !important;
  height: 1.08in !important;
}

.product-tracking-label__qr-panel span {
  display: block;
  margin-top: 0.05in;
  color: var(--label-text);
  font-size: 7px;
  line-height: 1.1;
  overflow-wrap: anywhere;
}

.product-tracking-label__secondary-qr {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  min-width: 0;
  text-align: center;
}

.product-tracking-label__secondary-qr canvas,
.product-tracking-label__secondary-qr img {
  display: block;
  width: 1.18in !important;
  height: 1.18in !important;
}

.product-tracking-label__secondary-qr p {
  margin-top: 0.05in;
  color: var(--label-text);
  font-size: 7px;
  line-height: 1.15;
}

.product-tracking-label__additional-info {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.06in;
  color: var(--label-muted);
  font-size: 8px;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.product-tracking-label__additional-info p {
  color: var(--label-muted);
}

@media print {
  body.product-tracking-print-active:not(.print-layout) app-root {
    display: block !important;
  }
  body.product-tracking-print-active .ui-app-shell__surface,
  body.product-tracking-print-active .console-body,
  body.product-tracking-print-active main.console-content {
    display: block !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: #ffffff !important;
  }
  body.product-tracking-print-active app-console-header,
  body.product-tracking-print-active app-console-sidebar,
  body.product-tracking-print-active app-assist-sidebar,
  body.product-tracking-print-active app-global-onboarding,
  body.product-tracking-print-active app-incoming-call,
  body.product-tracking-print-active tour-step-template,
  body.product-tracking-print-active .mobile-sidebar-backdrop,
  body.product-tracking-print-active .cdk-overlay-container,
  body.product-tracking-print-active main.console-content > :not(app-print-template) {
    display: none !important;
  }
  body.product-tracking-print-active app-print-template {
    display: block !important;
  }
  body.product-tracking-print-active app-print-template .page {
    display: block !important;
    width: max-content !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    page-break-after: always;
  }
  body.product-tracking-print-active app-print-template .page:last-child {
    page-break-after: auto;
  }
  .product-tracking-label {
    display: flex !important;
    box-shadow: none !important;
  }
}
/* ==========================================================================
   PRINT LAYOUT — Document Container Contract
   ==========================================================================
   Defines the .print-root wrapper and document-type containers.
   Used by PrintLayoutComponent for route-based document printing.

   Architecture:
     <div class="print-root print-doc print-doc--invoice">
       <router-outlet>
     </div>

   Screen preview mirrors the print-page margin contract.
   ========================================================================== */
/* ---- Screen: white centered preview ---- */
.print-root {
  width: 210mm;
  min-height: 297mm;
  margin: 0 auto;
  padding: 10mm 10mm 12mm 10mm;
  box-sizing: border-box;
  background: white;
}

/* ---- Print: fill page, let padding control spacing ---- */
@media print {
  .print-root {
    width: auto;
    min-height: auto;
    padding: 0;
    overflow: visible !important;
  }
}
/* ---- Body class set by PrintLayoutComponent ---- */
body.print-layout {
  background: #fff !important;
  overflow: auto !important;
  height: auto !important;
}

body.print-layout .ui-app-shell {
  overflow: auto !important;
  height: auto !important;
  background: #fff !important;
}

body.print-layout .ui-app-shell__surface {
  background: #fff !important;
}

body.print-layout .ui-app-shell__background {
  display: none !important;
}

body.print-layout .cdk-overlay-container,
body.print-layout .cdk-global-overlay-wrapper,
body.print-layout .cdk-overlay-backdrop,
body.print-layout .cdk-overlay-pane,
body.print-layout .mat-mdc-snack-bar-container,
body.print-layout .mat-snack-bar-container {
  display: none !important;
}

/* ---- Hide console shell chrome when printing ---- */
@media print {
  .ui-app-shell__background {
    display: none !important;
  }
  app-console-sidebar,
  app-console-header,
  app-assist-sidebar,
  app-global-onboarding,
  app-print-template {
    display: none !important;
  }
  .ui-app-shell,
  .ui-app-shell__surface {
    background: white !important;
  }
  main.console-content {
    display: block !important;
    margin-left: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    height: auto !important;
    max-height: none !important;
  }
  .console-body {
    display: block !important;
    overflow: visible !important;
    height: auto !important;
  }
  .ui-page {
    height: auto !important;
    overflow: visible !important;
    padding: 10mm 10mm 12mm 10mm !important; /* content-level margins — Safari ignores @page margin */
  }
  /* Zero out Bootstrap internal padding inside print documents */
  .print-root .panel-body {
    padding: 0 !important;
  }
  .print-root .row {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .print-root [class*=col-] {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
/* ==========================================================================
   DOCUMENT CONTAINER CLASSES
   ==========================================================================
   Per-document overrides can be added below as needed.
   ========================================================================== */
.print-doc { /* base — extend for shared document rules */ }

.print-doc--invoice { /* Invoice-specific overrides */ }

.print-doc--proforma { /* Proforma-specific overrides */ }

.print-doc--estimation { /* Estimation-specific overrides */ }

.print-doc--insurance-proforma { /* Insurance proforma overrides */ }

.print-doc--gatepass .receipt-container {
  max-width: 100%;
  margin: 0;
  box-shadow: none;
  border-radius: 0;
}

.print-doc--work-order { /* Work order-specific overrides */ }

.print-doc--payment-receipt { /* Payment receipt-specific overrides */ }

.print-doc--handover { /* Handover receipt overrides */ }

/*# sourceMappingURL=styles.css.map*/