/*
 * WEA365 YOOtheme late contrast/adapter layer.
 * com_wea365.foundation and portal.css are loaded before this file. Do not
 * duplicate component layout rules here unless a deliberate late cascade
 * override is required by the YOOtheme embedding context.
 */
/*
 * WEA365 adaptive contrast layer.
 * Builder elements never paint their own surface. They inherit the foreground
 * colour selected by YOOtheme, so text automatically inverts with the design.
 */
.wea365-ui {
  background-color: transparent !important;
  color-scheme: normal;
}

/* Component fallback views remain a self-contained light surface. */
.wea365-app {
  --wea365-app-text: var(--wea365-color-text);
  --wea365-app-heading: var(--wea365-color-heading);
  --wea365-app-muted: var(--wea365-color-muted);
  --wea365-app-link: var(--wea365-color-link);
  background-color: var(--wea365-color-white);
  color: var(--wea365-app-text) !important;
  color-scheme: light;
}

/* Builder typography follows the actual YOOtheme foreground colour. */
.wea365-ui h1,
.wea365-ui h2,
.wea365-ui h3,
.wea365-ui h4,
.wea365-ui h5,
.wea365-ui h6,
.wea365-ui .uk-h1,
.wea365-ui .uk-h2,
.wea365-ui .uk-h3,
.wea365-ui .uk-h4,
.wea365-ui .uk-h5,
.wea365-ui .uk-h6,
.wea365-ui p,
.wea365-ui li,
.wea365-ui dt,
.wea365-ui dd,
.wea365-ui th,
.wea365-ui td,
.wea365-ui label,
.wea365-ui legend,
.wea365-ui small,
.wea365-ui .uk-panel {
  color: inherit !important;
}

.wea365-ui .uk-text-meta,
.wea365-ui .uk-text-muted,
.wea365-ui .text-muted {
  color: inherit !important;
  opacity: .72;
}

.wea365-ui a:not(.uk-button):not(.uk-label) {
  color: inherit !important;
  text-decoration-color: currentColor;
}

.wea365-ui a:not(.uk-button):not(.uk-label):hover {
  color: inherit !important;
  opacity: .78;
}

.wea365-ui .uk-table-divider > :first-child > tr:not(:first-child),
.wea365-ui .uk-table-divider > :not(:first-child) > tr,
.wea365-ui .uk-table-divider > tr:not(:first-child) {
  border-color: currentColor !important;
  opacity: .92;
}

/* Fallback typography uses an explicit light-surface palette. */
.wea365-app h1,
.wea365-app h2,
.wea365-app h3,
.wea365-app h4,
.wea365-app h5,
.wea365-app h6,
.wea365-app .uk-h1,
.wea365-app .uk-h2,
.wea365-app .uk-h3,
.wea365-app .uk-h4,
.wea365-app .uk-h5,
.wea365-app .uk-h6 {
  color: var(--wea365-app-heading) !important;
}

.wea365-app p,
.wea365-app li,
.wea365-app dt,
.wea365-app dd,
.wea365-app th,
.wea365-app td,
.wea365-app label,
.wea365-app legend,
.wea365-app small,
.wea365-app .uk-panel {
  color: var(--wea365-app-text) !important;
}

.wea365-app .uk-text-meta,
.wea365-app .uk-text-muted,
.wea365-app .text-muted {
  color: var(--wea365-app-muted) !important;
  opacity: 1;
}

.wea365-app a:not(.uk-button):not(.uk-label) {
  color: var(--wea365-app-link) !important;
}

/* Inputs deliberately stay light and readable in every surrounding design. */
.wea365-app .uk-input,
.wea365-app .uk-select,
.wea365-app .uk-textarea,
.wea365-app input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
.wea365-app select,
.wea365-app textarea,
.wea365-ui .uk-input,
.wea365-ui .uk-select,
.wea365-ui .uk-textarea,
.wea365-ui input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
.wea365-ui select,
.wea365-ui textarea {
  border-color: var(--wea365-color-border) !important;
  background-color: var(--wea365-color-white) !important;
  color: var(--wea365-color-text) !important;
  -webkit-text-fill-color: var(--wea365-color-text) !important;
  color-scheme: light;
}

.wea365-app input::placeholder,
.wea365-app textarea::placeholder,
.wea365-ui input::placeholder,
.wea365-ui textarea::placeholder {
  color: var(--wea365-color-placeholder) !important;
  opacity: 1;
}

.wea365-app .uk-dropdown,
.wea365-ui .uk-dropdown {
  background-color: var(--wea365-color-white) !important;
  color: var(--wea365-color-text) !important;
  color-scheme: light;
}

.wea365-app .uk-dropdown *,
.wea365-ui .uk-dropdown * {
  color: inherit;
}

.wea365-app .uk-button-default,
.wea365-ui .uk-button-default {
  border-color: var(--wea365-color-primary) !important;
  background-color: var(--wea365-color-white) !important;
  color: var(--wea365-color-primary-strong) !important;
}

.wea365-app .uk-button-primary,
.wea365-ui .uk-button-primary {
  border-color: var(--wea365-color-primary) !important;
  background-color: var(--wea365-color-primary) !important;
  color: var(--wea365-color-white) !important;
}

.wea365-app .uk-button-danger,
.wea365-ui .uk-button-danger {
  border-color: var(--wea365-color-danger) !important;
  background-color: var(--wea365-color-danger) !important;
  color: var(--wea365-color-white) !important;
}

.wea365-app .uk-button-text {
  color: var(--wea365-app-link) !important;
}

.wea365-ui .uk-button-text {
  color: inherit !important;
}

.wea365-app .uk-badge,
.wea365-ui .uk-badge,
.wea365-app .uk-label,
.wea365-ui .uk-label {
  background-color: var(--wea365-color-primary) !important;
  color: var(--wea365-color-white) !important;
}

.wea365-app .uk-label-success,
.wea365-ui .uk-label-success {
  background-color: #4caf7d !important;
  color: var(--wea365-color-white) !important;
}

.wea365-app .uk-label-warning,
.wea365-ui .uk-label-warning {
  background-color: #f2b94b !important;
  color: #34270d !important;
}

.wea365-app .uk-label-danger,
.wea365-ui .uk-label-danger {
  background-color: var(--wea365-color-danger) !important;
  color: var(--wea365-color-white) !important;
}

/* Semantic messages own both their background and foreground colours. */
.wea365-app .uk-alert-primary,
.wea365-ui .uk-alert-primary {
  background-color: #e9f2fa !important;
  color: #234f75 !important;
}

.wea365-app .uk-alert-success,
.wea365-ui .uk-alert-success,
.wea365-app .wea365-workreport-success-alert,
.wea365-ui .wea365-workreport-success-alert {
  background-color: #58bc8d !important;
  color: var(--wea365-color-white) !important;
}

.wea365-app .uk-alert-warning,
.wea365-ui .uk-alert-warning {
  background-color: #f4c35f !important;
  color: #34270d !important;
}

.wea365-app .uk-alert-danger,
.wea365-ui .uk-alert-danger {
  background-color: var(--wea365-color-danger) !important;
  color: var(--wea365-color-white) !important;
}

.wea365-app .uk-alert-primary *,
.wea365-ui .uk-alert-primary * { color: #234f75 !important; }
.wea365-app .uk-alert-success *,
.wea365-ui .uk-alert-success *,
.wea365-app .wea365-workreport-success-alert *,
.wea365-ui .wea365-workreport-success-alert * { color: var(--wea365-color-white) !important; }
.wea365-app .uk-alert-warning *,
.wea365-ui .uk-alert-warning * { color: #34270d !important; }
.wea365-audit-header .uk-alert-warning { background-color: #f4c35f !important; color: #34270d !important; }
.wea365-audit-header .uk-alert-warning * { color: #34270d !important; }
.wea365-app .uk-alert-danger *,
.wea365-ui .uk-alert-danger * { color: var(--wea365-color-white) !important; }

/* The document preview has its own print-oriented colour system. */
.wea365-document-preview-page {
  background: var(--wea365-color-white) !important;
  color: #222 !important;
  -webkit-text-fill-color: initial;
}
.wea365-document-preview-page p,
.wea365-document-preview-page li,
.wea365-document-preview-page td,
.wea365-document-preview-page th,
.wea365-document-preview-page label,
.wea365-document-preview-page small {
  color: #222 !important;
  -webkit-text-fill-color: initial;
}


/* Report and review action menus are moved to <body> by UIkit. This keeps them
 * outside scrollable table containers and above following rows. */
.wea365-action-dropdown {
  z-index: 100000 !important;
  min-width: 220px;
  width: max-content;
  max-width: calc(100vw - 32px);
  padding: 12px 16px !important;
  border: 1px solid rgba(31, 53, 73, .12);
  border-radius: 2px;
  background: var(--wea365-color-white) !important;
  box-shadow: 0 10px 28px rgba(31, 53, 73, .18);
  color: var(--wea365-color-text) !important;
  color-scheme: light;
}

.wea365-action-dropdown,
.wea365-action-dropdown * {
  box-sizing: border-box;
}

.wea365-action-dropdown .uk-dropdown-nav {
  margin: 0;
  padding: 0;
}

.wea365-action-dropdown .uk-dropdown-nav > li + li {
  margin-top: 2px;
}

.wea365-action-dropdown .uk-dropdown-nav > li > a {
  display: block;
  min-height: 34px;
  padding: 7px 4px !important;
  color: var(--wea365-color-primary-strong) !important;
  font-size: 14px;
  line-height: 1.4 !important;
  text-decoration: none;
  white-space: nowrap;
}

.wea365-action-dropdown .uk-dropdown-nav > li > a:hover,
.wea365-action-dropdown .uk-dropdown-nav > li > a:focus {
  color: #203d58 !important;
  text-decoration: underline;
}


/* Notification filters: the active pill owns an accent background and must
 * therefore keep a high-contrast foreground in every YOOtheme style. */
.wea365-notifications-filter > .uk-active > a,
.wea365-notifications-filter > .uk-active > a:hover,
.wea365-notifications-filter > .uk-active > a:focus {
  color: var(--wea365-color-white) !important;
  -webkit-text-fill-color: var(--wea365-color-white) !important;
}


/* Audit & Control: stable contrast, responsive details and protected previews. */
.wea365-audit-controls .uk-subnav-pill > .uk-active > a,
.wea365-audit-controls .uk-subnav-pill > .uk-active > a:hover,
.wea365-audit-controls .uk-subnav-pill > .uk-active > a:focus,
.wea365-audit-controls .uk-button-primary,
.wea365-audit-controls .uk-button-primary:hover,
.wea365-audit-controls .uk-button-primary:focus,
.wea365-audit-controls .uk-button-primary *,
.wea365-audit-controls .uk-subnav-pill > .uk-active > a * {
  color: var(--wea365-color-white) !important;
  -webkit-text-fill-color: var(--wea365-color-white) !important;
}

.wea365-audit-actions {
  gap: 8px;
}

.wea365-audit-actions .uk-margin-left\@l {
  margin-left: auto;
}

.wea365-audit-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
}

.wea365-audit-table th,
.wea365-audit-table td {
  vertical-align: top;
}

.wea365-audit-preview-cell {
  width: 128px;
  min-width: 128px;
}

.wea365-audit-thumbnail {
  display: block;
  width: 112px;
  height: 72px;
  object-fit: cover;
  border-radius: 3px;
  background: #eef2f5;
}

.wea365-audit-file-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 112px;
  height: 72px;
  border: 1px solid var(--wea365-color-border);
  border-radius: 3px;
  background: #f5f7f9;
  color: var(--wea365-color-primary-strong) !important;
  font-weight: 700;
  text-decoration: none;
}

.wea365-audit-break,
.wea365-audit-code,
.wea365-audit-detail-cell {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.wea365-audit-event-cell {
  min-width: 180px;
  max-width: 260px;
}

.wea365-audit-detail-cell {
  min-width: 300px;
  max-width: 520px;
}

.wea365-audit-raw {
  box-sizing: border-box;
  max-width: 100%;
  max-height: 300px;
  margin-bottom: 0;
  padding: 12px;
  overflow-x: hidden;
  overflow-y: auto;
  border: 1px solid var(--wea365-color-border);
  background: #f5f7f9;
  color: var(--wea365-color-text) !important;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
}

@media (max-width: 959px) {
  .wea365-audit-actions .uk-margin-left\@l {
    margin-left: 0;
  }
}

/* Maintenance planning: compact controls, calm action panels and clear empty states. */
.wea365-maintenance-tenant-switcher.uk-card-body {
  padding-top: 22px;
  padding-bottom: 22px;
}

.wea365-maintenance-tenant-form {
  gap: 18px 28px;
}

.wea365-maintenance-tenant-form .uk-select {
  width: min(340px, 72vw);
}

.wea365-maintenance-tenant-label strong {
  font-size: 17px;
}

.wea365-maintenance-action-panel {
  box-sizing: border-box;
  height: 100%;
  min-height: 210px;
  padding: 24px;
  border: 1px solid rgba(77, 103, 128, .18);
  border-radius: 3px;
  background: rgba(77, 103, 128, .035);
}

.wea365-maintenance-action-header {
  gap: 18px;
}

.wea365-maintenance-action-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(79, 127, 170, .12);
  color: var(--wea365-color-primary-strong) !important;
}

.wea365-maintenance-nowrap {
  flex: none;
  white-space: nowrap;
}

.wea365-maintenance-empty-inline,
.wea365-maintenance-empty-state {
  display: flex;
  align-items: center;
  gap: 10px;
  box-sizing: border-box;
  border: 1px dashed rgba(77, 103, 128, .24);
  border-radius: 3px;
  background: rgba(77, 103, 128, .035);
}

.wea365-maintenance-empty-inline {
  padding: 14px 16px;
  font-size: 14px;
}

.wea365-maintenance-empty-state {
  min-height: 118px;
  padding: 24px;
  flex-direction: column;
  justify-content: center;
  text-align: center;
}

.wea365-maintenance-filter {
  padding: 18px;
  border: 1px solid rgba(77, 103, 128, .16);
  border-radius: 3px;
  background: rgba(77, 103, 128, .025);
}

.wea365-maintenance-filter-actions {
  gap: 8px;
}

/* Maintenance planning: unmistakable, accessible section tabs. */
.wea365-maintenance-tab-nav {
  border-bottom: 1px solid rgba(48, 79, 108, .24);
}

.wea365-maintenance-tabs {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 6px;
  margin-left: 0 !important;
}

.wea365-maintenance-tabs::before {
  display: none;
}

.wea365-maintenance-tabs > li {
  margin: 0;
  padding-left: 0 !important;
}

.wea365-maintenance-tabs > li > a {
  min-height: 46px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 18px;
  border: 1px solid rgba(48, 79, 108, .22);
  border-bottom: 0;
  border-radius: 5px 5px 0 0;
  background: rgba(48, 79, 108, .055);
  color: #244c70 !important;
  font-weight: 600;
  text-decoration: none;
}

.wea365-maintenance-tabs > li > a:hover {
  background: rgba(48, 79, 108, .09);
  color: #173f64 !important;
}

.wea365-maintenance-tabs > li > a:focus-visible {
  outline: 2px solid #2b5aa5;
  outline-offset: 2px;
}

.wea365-maintenance-tabs > .uk-active > a,
.wea365-maintenance-tabs > .uk-active > a:hover,
.wea365-maintenance-tabs > .uk-active > a:focus {
  position: relative;
  margin-bottom: -1px;
  padding-top: 1px;
  border-color: rgba(48, 79, 108, .28);
  border-top: 3px solid #2b5aa5;
  background: var(--wea365-color-white);
  color: #173f64 !important;
}

.wea365-maintenance-tabs > .uk-active > a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 1px;
  background: var(--wea365-color-white);
}

.wea365-maintenance-tabs .uk-badge {
  min-width: 22px;
  height: 22px;
  margin-left: 2px;
  padding: 0 6px;
  border: 1px solid rgba(36, 76, 112, .18);
  background: #dfe8f1 !important;
  color: #244c70 !important;
  font-size: 12px;
  font-weight: 700;
  line-height: 22px;
}

.wea365-maintenance-tabs > .uk-active > a .uk-badge {
  background: #2b5aa5;
  color: var(--wea365-color-white) !important;
}

@media (max-width: 639px) {
  .wea365-maintenance-tenant-form {
    display: block;
  }

  .wea365-maintenance-tenant-form .uk-form-controls,
  .wea365-maintenance-tenant-form .uk-select {
    width: 100%;
  }

  .wea365-maintenance-tenant-form .uk-form-controls {
    margin-top: 12px;
  }

  .wea365-maintenance-action-header.uk-flex {
    display: block;
  }

  .wea365-maintenance-action-header .uk-button {
    margin-top: 18px;
  }

  .wea365-maintenance-filter-actions,
  .wea365-maintenance-filter-actions .uk-button {
    width: 100%;
  }

  .wea365-maintenance-filter-actions .uk-button-default {
    width: auto;
  }
}

/* Maintenance orders and technician dispatch. */
.wea365-maintenance-section-heading {
  gap: 14px;
}

.wea365-maintenance-technician-list {
  overflow: hidden;
  border: 1px solid rgba(127, 127, 127, .28);
  border-radius: 3px;
}

.wea365-maintenance-technician-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 11px 14px;
}

.wea365-maintenance-technician-row + .wea365-maintenance-technician-row {
  border-top: 1px solid rgba(127, 127, 127, .2);
}

.wea365-maintenance-technician-row label {
  margin: 0;
}

.wea365-maintenance-team {
  display: grid;
  gap: 7px;
  min-width: 180px;
}

.wea365-maintenance-team-member {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 8px;
  min-width: 0;
}

.wea365-maintenance-team-name {
  min-width: 0;
  font-weight: 500;
  line-height: 1.35;
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: manual;
}

.wea365-maintenance-lead-badge {
  flex: 0 0 auto;
  font-size: 10px;
  line-height: 18px;
  padding: 0 7px;
  white-space: nowrap;
}


@media (max-width: 639px) {
  .wea365-maintenance-technician-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
  }
}

/* Bidirectional maintenance order and dispatch navigation. */
.wea365-maintenance-order-focused {
  background: rgba(30, 135, 240, .08);
  box-shadow: inset 3px 0 0 rgba(30, 135, 240, .72);
}


.wea365-dispatch-page-header {
  max-width: 760px;
}

.wea365-dispatch-page-header .uk-h2 {
  font-weight: 650;
  letter-spacing: -.018em;
}

.wea365-dispatch-tenant-switcher {
  max-width: 360px;
}

.wea365-dispatch-tenant-form {
  display: flex;
  align-items: center;
  gap: 10px;
}

.wea365-dispatch-tenant-form .uk-form-label {
  margin: 0;
  white-space: nowrap;
}

.wea365-dispatch-tenant-form .uk-select {
  min-width: 220px;
  border-radius: 7px;
}

@media (max-width: 639px) {
  .wea365-dispatch-tenant-form {
    align-items: stretch;
    flex-direction: column;
    gap: 5px;
  }

  .wea365-dispatch-tenant-form .uk-select {
    width: 100%;
    min-width: 0;
  }
}

/* Technician teams and stable action menus. */
.wea365-employee-team-management {
  padding-bottom: 1rem;
  border-bottom: 1px solid color-mix(in srgb, currentColor 16%, transparent);
}

.wea365-employee-team-summary {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
}

.wea365-employee-team-summary .uk-label {
  padding: .25rem .55rem;
  font-size: .75rem;
  line-height: 1.35;
  text-transform: none;
}

.wea365-employee-teams .uk-offcanvas-bar {
  width: min(460px, 92vw);
}

.wea365-action-dropdown .wea365-dropdown-action {
  display: block;
  min-height: 34px;
  width: 100%;
  padding: 7px 4px !important;
  color: var(--wea365-color-primary-strong) !important;
  font-size: 14px;
  line-height: 1.4 !important;
  text-align: left;
  text-decoration: none;
  text-transform: none;
  white-space: nowrap;
}

.wea365-action-dropdown .wea365-dropdown-action:hover,
.wea365-action-dropdown .wea365-dropdown-action:focus {
  color: #203d58 !important;
  text-decoration: underline;
}
