/* Control chuẩn Headway Tools: input / button 40px, weight 600, radius 8 */
.btn,
.hw-form input,
.hw-form select,
.hw-form button,
.hw-dialog-btn,
.hw-dialog-input,
.hw-dialog-select,
.login-form input,
.login-page .btn,
.login-submit {
  box-sizing: border-box;
  height: var(--ctrl-h, 34px);
  min-height: var(--ctrl-h, 34px);
  border-radius: var(--ctrl-radius, 8px);
  font-size: var(--ctrl-fs, 13px);
  font-weight: var(--ctrl-fw, 600);
  line-height: 1.3;
}

.btn,
.hw-form button,
.hw-dialog-btn,
.login-page .btn,
.login-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 var(--ctrl-pad-x, 12px);
}

.hw-form input,
.hw-dialog-input,
.hw-dialog-select,
.login-form input {
  padding: 0 var(--ctrl-pad-x, 12px);
}

/* Vuetify — Task */
.v-application .v-btn {
  height: var(--ctrl-h, 34px) !important;
  min-height: var(--ctrl-h, 34px) !important;
  font-size: var(--ctrl-fs, 13px) !important;
  font-weight: var(--ctrl-fw, 600) !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  border-radius: var(--ctrl-radius, 8px) !important;
}

.v-application .v-btn.v-btn--icon {
  width: var(--ctrl-h, 34px) !important;
  min-width: var(--ctrl-h, 34px) !important;
  padding: 0 !important;
}

.v-application .v-field,
.v-application .v-field.v-field--variant-filled,
.v-application .v-field.v-field--variant-solo,
.v-application .v-field.v-field--variant-solo-filled,
.v-application .v-field.v-field--variant-solo-inverted,
.v-application .v-field.v-field--variant-outlined,
.v-application .v-field.v-field--variant-plain,
.v-application .v-field.v-field--variant-underlined {
  --v-input-control-height: var(--ctrl-h, 34px);
  font-size: var(--ctrl-fs, 13px);
  font-weight: var(--ctrl-fw, 600);
  border-radius: var(--ctrl-radius, 8px) !important;
  overflow: hidden;
}

.v-application .v-field__overlay,
.v-application .v-field__outline,
.v-application .v-field__loader,
.v-application .v-field__field,
.v-application .v-field .v-field__input {
  border-radius: inherit;
}

.v-application .v-field__input {
  min-height: var(--ctrl-h, 34px);
  font-weight: var(--ctrl-fw, 600);
}

.v-dialog .v-text-field .v-field,
.v-dialog .v-select .v-field,
.v-dialog .v-autocomplete .v-field,
.hw-settings-card .v-text-field .v-field,
.hw-settings-card .v-select .v-field,
.hw-settings-card .v-autocomplete .v-field,
.hw-mail-compose .v-text-field .v-field,
.hw-mail-compose .v-select .v-field {
  --v-input-control-height: 48px;
}

.v-dialog .v-text-field .v-field__input,
.v-dialog .v-select .v-field__input,
.v-dialog .v-autocomplete .v-field__input,
.hw-settings-card .v-text-field .v-field__input,
.hw-settings-card .v-select .v-field__input,
.hw-settings-card .v-autocomplete .v-field__input,
.hw-mail-compose .v-text-field .v-field__input,
.hw-mail-compose .v-select .v-field__input {
  min-height: 48px;
  padding-top: 10px;
  padding-bottom: 6px;
}

.v-application .v-textarea .v-field,
.v-application .v-textarea .v-field.v-field--variant-filled,
.v-application .v-textarea .v-field.v-field--variant-outlined {
  --v-input-control-height: auto;
  height: auto !important;
  min-height: 96px;
  overflow: visible;
}

.v-application .v-textarea .v-field__input {
  min-height: 88px;
  padding-top: 14px;
  padding-bottom: 12px;
  white-space: pre-wrap;
  overflow: auto;
}

.v-application .v-field--variant-filled .v-field__outline::before,
.v-application .v-field--variant-filled .v-field__outline::after,
.v-application .v-field--variant-underlined .v-field__outline::before,
.v-application .v-field--variant-underlined .v-field__outline::after {
  display: none;
}

.v-application .v-chip {
  border-radius: 8px !important;
}

.v-application .v-card,
.v-application .v-alert,
.v-application .v-sheet.v-card,
.v-application .v-snackbar__wrapper {
  border-radius: var(--card-radius, 12px) !important;
}

.v-application .v-btn-group {
  border-radius: var(--ctrl-radius, 8px) !important;
  overflow: hidden;
}

.v-dialog > .v-overlay__content,
.v-overlay__content > .v-card {
  border-radius: var(--card-radius, 12px) !important;
  overflow: hidden;
}

.v-menu > .v-overlay__content,
.v-select__content,
.v-autocomplete__content,
.v-overlay-container .v-list,
.v-overlay__content > .v-list {
  border-radius: var(--card-radius, 12px) !important;
  overflow: auto !important;
  overscroll-behavior: contain;
  max-height: min(360px, calc(100vh - 24px));
}

/* Calendar day cells giữ lưới riêng */
.hw-cal-picker .v-btn {
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  min-height: 36px !important;
}

/* list-menu-contrast — hover/active không che chữ (tool / hiring / user / log)
   Chỉ tắt overlay của list-item / menu — KHÔNG đụng .v-btn trong dialog.
   Cấm nền primary đặc + chữ #004478 (teal-on-teal nuốt "Upload từ file"…). */
.v-overlay .v-list-item__overlay,
.v-overlay .v-list-item__underlay,
.v-menu .v-list-item__overlay,
.v-menu .v-list-item__underlay,
.v-select__content .v-list-item__overlay,
.v-select__content .v-list-item__underlay,
.v-autocomplete__content .v-list-item__overlay,
.v-autocomplete__content .v-list-item__underlay,
.v-overlay .v-list-item .v-ripple__container,
.v-menu .v-list-item .v-ripple__container,
.v-select__content .v-list-item .v-ripple__container,
.v-autocomplete__content .v-list-item .v-ripple__container {
  display: none !important;
  opacity: 0 !important;
}

.v-menu > .v-overlay__content,
.v-select__content,
.v-autocomplete__content {
  background: #fff !important;
}

.v-overlay .v-list,
.v-menu .v-list,
.v-select__content .v-list,
.v-autocomplete__content .v-list {
  background: #fff !important;
  color: #1a2433 !important;
}

.v-overlay .v-list-item,
.v-menu .v-list-item,
.v-select__content .v-list-item,
.v-autocomplete__content .v-list-item,
.v-overlay .v-list-item .v-list-item-title,
.v-menu .v-list-item .v-list-item-title,
.v-select__content .v-list-item .v-list-item-title,
.v-autocomplete__content .v-list-item .v-list-item-title,
.v-overlay .v-list-item .v-list-item-subtitle,
.v-menu .v-list-item .v-list-item-subtitle,
.v-overlay .v-list-item .v-icon,
.v-menu .v-list-item .v-icon {
  color: #1a2433 !important;
  -webkit-text-fill-color: #1a2433 !important;
}

.v-overlay .v-list-item:hover,
.v-menu .v-list-item:hover,
.v-select__content .v-list-item:hover,
.v-autocomplete__content .v-list-item:hover,
.v-overlay .v-list-item--link:hover,
.v-overlay .v-list-item:focus,
.v-menu .v-list-item:focus,
.v-overlay .v-list-item:focus-visible,
.v-menu .v-list-item:focus-visible,
.v-overlay .v-list-item:active,
.v-menu .v-list-item:active,
.v-select__content .v-list-item:active,
.v-autocomplete__content .v-list-item:active {
  background: #e7f0f7 !important;
  color: #004478 !important;
  -webkit-text-fill-color: #004478 !important;
}

.v-overlay .v-list-item:hover .v-list-item-title,
.v-menu .v-list-item:hover .v-list-item-title,
.v-select__content .v-list-item:hover .v-list-item-title,
.v-autocomplete__content .v-list-item:hover .v-list-item-title,
.v-overlay .v-list-item:hover .v-list-item-subtitle,
.v-menu .v-list-item:hover .v-list-item-subtitle,
.v-overlay .v-list-item:active .v-list-item-title,
.v-menu .v-list-item:active .v-list-item-title,
.v-overlay .v-list-item:active .v-list-item-subtitle,
.v-menu .v-list-item:active .v-list-item-subtitle,
.v-overlay .v-list-item:hover .v-icon,
.v-menu .v-list-item:hover .v-icon,
.v-overlay .v-list-item:active .v-icon,
.v-menu .v-list-item:active .v-icon {
  color: #004478 !important;
  -webkit-text-fill-color: #004478 !important;
}

.v-overlay .v-list-item--active,
.v-overlay .v-list-item--active:hover,
.v-menu .v-list-item--active,
.v-menu .v-list-item--active:hover,
.v-select__content .v-list-item--active,
.v-select__content .v-list-item--active:hover,
.v-autocomplete__content .v-list-item--active,
.v-autocomplete__content .v-list-item--active:hover,
.v-overlay .v-list-item[aria-selected="true"],
.v-overlay .v-list-item[aria-selected="true"]:hover,
.v-overlay .v-list-item.bg-primary,
.v-menu .v-list-item.bg-primary,
.v-select__content .v-list-item.bg-primary,
.v-autocomplete__content .v-list-item.bg-primary {
  background: #e7f0f7 !important;
  color: #004478 !important;
  -webkit-text-fill-color: #004478 !important;
}

.v-overlay .v-list-item--active .v-list-item-title,
.v-menu .v-list-item--active .v-list-item-title,
.v-select__content .v-list-item--active .v-list-item-title,
.v-autocomplete__content .v-list-item--active .v-list-item-title,
.v-overlay .v-list-item[aria-selected="true"] .v-list-item-title,
.v-overlay .v-list-item--active .v-list-item-subtitle,
.v-menu .v-list-item--active .v-list-item-subtitle,
.v-overlay .v-list-item--active .v-icon,
.v-menu .v-list-item--active .v-icon,
.v-overlay .v-list-item.bg-primary .v-list-item-title,
.v-menu .v-list-item.bg-primary .v-list-item-title,
.v-overlay .v-list-item.bg-primary .v-icon,
.v-menu .v-list-item.bg-primary .v-icon {
  color: #004478 !important;
  -webkit-text-fill-color: #004478 !important;
}

.hw-project-view-item:hover,
.hw-project-view-item.is-active,
.hw-project-view-item.is-open {
  background: rgba(0, 80, 145, 0.12) !important;
  color: #004478 !important;
}

.row-menu-item:hover,
.picker-option:hover,
.hw-account-item:hover,
.hw-filter-action:hover {
  background: rgba(0, 80, 145, 0.10) !important;
  color: #004478 !important;
}
/* btn-hover-contrast — giữ chữ/icon rõ khi hover (page + dialog teleport) */
.v-btn .v-btn__content,
.v-btn .v-btn__prepend,
.v-btn .v-btn__append {
  position: relative;
  z-index: 1;
}

.v-btn--variant-tonal {
  color: #1a2433;
}

.v-btn--variant-tonal .v-btn__underlay {
  opacity: 0.12 !important;
}

/* Filled theme buttons: tắt overlay (currentColor trắng/teal dễ nuốt chữ) */
.v-btn.bg-primary > .v-btn__overlay,
.v-btn.bg-error > .v-btn__overlay,
.v-btn.bg-success > .v-btn__overlay,
.v-btn.bg-info > .v-btn__overlay,
.v-btn.bg-warning > .v-btn__overlay,
.v-btn.bg-secondary > .v-btn__overlay {
  display: none !important;
  opacity: 0 !important;
  background: transparent !important;
}

.v-btn:hover > .v-btn__overlay,
.v-btn:focus > .v-btn__overlay,
.v-btn:focus-visible > .v-btn__overlay,
.v-btn:active > .v-btn__overlay,
.v-btn--active > .v-btn__overlay,
.v-btn[aria-expanded='true'] > .v-btn__overlay {
  opacity: 0.08 !important;
}

.v-btn.bg-primary:hover,
.v-btn.bg-primary:focus-visible,
.v-btn.bg-primary:active,
.v-btn.bg-primary.v-btn--active,
.v-btn.bg-primary[aria-expanded='true'] {
  background-color: #004478 !important;
}

.v-btn.bg-error:hover,
.v-btn.bg-error:focus-visible {
  background-color: #b23a43 !important;
}

.v-btn--variant-text > .v-btn__overlay,
.v-btn--variant-plain > .v-btn__overlay {
  background: currentColor !important;
}

.v-btn--variant-text:focus > .v-btn__overlay,
.v-btn--variant-text:focus-visible > .v-btn__overlay,
.v-btn--variant-text:active > .v-btn__overlay,
.v-btn--variant-text.v-btn--active > .v-btn__overlay {
  opacity: 0.08 !important;
}

.v-btn--variant-tonal:hover,
.v-btn--variant-tonal:focus-visible {
  color: #1a2433;
}

/* Khóa chữ trắng trên nút primary/error… kể cả hover / menu mở (v-btn--active) */
.v-btn.bg-primary,
.v-btn.bg-primary:hover,
.v-btn.bg-primary:focus,
.v-btn.bg-primary:focus-visible,
.v-btn.bg-primary:active,
.v-btn.bg-primary.v-btn--active,
.v-btn.bg-primary[aria-expanded='true'],
.v-btn.bg-error,
.v-btn.bg-error:hover,
.v-btn.bg-error:focus,
.v-btn.bg-error:focus-visible,
.v-btn.bg-error:active,
.v-btn.bg-error.v-btn--active,
.v-btn.bg-success,
.v-btn.bg-success:hover,
.v-btn.bg-success:focus,
.v-btn.bg-success:focus-visible,
.v-btn.bg-success:active,
.v-btn.bg-success.v-btn--active,
.v-btn.bg-info,
.v-btn.bg-info:hover,
.v-btn.bg-info:focus,
.v-btn.bg-info:focus-visible,
.v-btn.bg-info:active,
.v-btn.bg-info.v-btn--active,
.v-btn.bg-warning,
.v-btn.bg-warning:hover,
.v-btn.bg-warning:focus,
.v-btn.bg-warning:focus-visible,
.v-btn.bg-warning:active,
.v-btn.bg-warning.v-btn--active,
.v-btn.bg-secondary,
.v-btn.bg-secondary:hover,
.v-btn.bg-secondary:focus,
.v-btn.bg-secondary:focus-visible,
.v-btn.bg-secondary:active,
.v-btn.bg-secondary.v-btn--active {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  caret-color: #fff !important;
}

.v-btn.bg-primary:hover .v-btn__content,
.v-btn.bg-primary:hover .v-btn__prepend,
.v-btn.bg-primary:hover .v-btn__append,
.v-btn.bg-primary:hover .v-icon,
.v-btn.bg-primary:focus .v-btn__content,
.v-btn.bg-primary:focus .v-btn__prepend,
.v-btn.bg-primary:focus .v-btn__append,
.v-btn.bg-primary:focus .v-icon,
.v-btn.bg-primary:focus-visible .v-btn__content,
.v-btn.bg-primary:focus-visible .v-btn__prepend,
.v-btn.bg-primary:focus-visible .v-btn__append,
.v-btn.bg-primary:focus-visible .v-icon,
.v-btn.bg-primary:active .v-btn__content,
.v-btn.bg-primary:active .v-btn__prepend,
.v-btn.bg-primary:active .v-btn__append,
.v-btn.bg-primary:active .v-icon,
.v-btn.bg-primary.v-btn--active .v-btn__content,
.v-btn.bg-primary.v-btn--active .v-btn__prepend,
.v-btn.bg-primary.v-btn--active .v-btn__append,
.v-btn.bg-primary.v-btn--active .v-icon,
.v-btn.bg-primary[aria-expanded='true'] .v-btn__content,
.v-btn.bg-primary[aria-expanded='true'] .v-btn__prepend,
.v-btn.bg-primary[aria-expanded='true'] .v-btn__append,
.v-btn.bg-primary[aria-expanded='true'] .v-icon,
.v-btn.bg-error:hover .v-btn__content,
.v-btn.bg-error:hover .v-btn__prepend,
.v-btn.bg-error:hover .v-btn__append,
.v-btn.bg-error:hover .v-icon,
.v-btn.bg-error:focus-visible .v-btn__content,
.v-btn.bg-error:focus-visible .v-icon,
.v-btn.bg-success:hover .v-btn__content,
.v-btn.bg-success:hover .v-icon,
.v-btn.bg-info:hover .v-btn__content,
.v-btn.bg-info:hover .v-icon,
.v-btn.bg-warning:hover .v-btn__content,
.v-btn.bg-warning:hover .v-icon,
.v-btn.bg-secondary:hover .v-btn__content,
.v-btn.bg-secondary:hover .v-icon {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  opacity: 1 !important;
  visibility: visible !important;
}

.v-btn--loading.bg-primary:hover .v-btn__content,
.v-btn--loading.bg-error:hover .v-btn__content,
.v-btn--loading.bg-success:hover .v-btn__content,
.v-btn--loading.bg-info:hover .v-btn__content,
.v-btn--loading.bg-warning:hover .v-btn__content,
.v-btn--loading.bg-secondary:hover .v-btn__content {
  opacity: 0 !important;
}

/* Toolbar filter — đồng bộ height mọi control (topnav + hub) */
.hw-project-view-btn,
.hw-nav-search-input,
.hw-page-tools-actions > .hw-project-view-item,
.hw-page-tools-actions .hw-project-view-item,
.hw-page-tools-dates .hw-date-btn,
.hw-page-tools-inline .hw-date-btn,
.hw-page-tools > .v-btn,
.hw-hub-inline-tools .hw-project-view-btn,
.hw-hub-inline-tools .hw-nav-search-input,
.hw-hub-inline-tools .hw-date-btn,
.hw-hub-inline-tools .hw-page-tools-actions > .hw-project-view-item {
  box-sizing: border-box;
  height: var(--ctrl-h, 34px) !important;
  min-height: var(--ctrl-h, 34px) !important;
  max-height: var(--ctrl-h, 34px) !important;
  font-size: var(--ctrl-fs, 13px) !important;
  font-weight: var(--ctrl-fw, 600) !important;
  line-height: 1.25 !important;
  border-radius: 10px !important;
}

.hw-page-tools .v-input .v-field,
.hw-page-tools .hw-date-field .v-field,
.hw-page-tools-dates .hw-date-field .v-field,
.hw-hub-inline-tools .v-field {
  --v-input-control-height: var(--ctrl-h, 34px);
  height: var(--ctrl-h, 34px) !important;
  min-height: var(--ctrl-h, 34px) !important;
  max-height: var(--ctrl-h, 34px) !important;
  border-radius: 10px !important;
}

.hw-page-tools .v-field__input,
.hw-page-tools-dates .v-field__input,
.hw-hub-inline-tools .v-field__input {
  min-height: var(--ctrl-h, 34px) !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  align-items: center;
}
