/* Benvia release polish: shell, onboarding administration, phone and tablet hardening. */

html {
  scroll-padding-top: 7rem;
}

body.benvia-app-shell--premium {
  overflow-x: clip;
}

.benvia-skip-link {
  position: fixed;
  top: .75rem;
  left: .75rem;
  z-index: 2000;
  transform: translateY(calc(-100% - 1.5rem));
  min-height: 44px;
  padding: .7rem 1rem;
  border: 2px solid #ffffff;
  border-radius: 6px;
  background: #0b3a29;
  color: #ffffff;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 16px 34px -20px rgba(4, 24, 17, .78);
  transition: transform .16s ease;
}

.benvia-skip-link:focus {
  transform: translateY(0);
  color: #ffffff;
}

#benviaMainContent:focus {
  outline: none;
}

.benvia-shell__main,
.benvia-shell__content,
.benvia-shell__content > .container-fluid,
.benvia-commandbar,
.benvia-commandbar__left,
.benvia-commandbar__right {
  min-width: 0;
}

.benvia-app-shell--premium .benvia-shell__sidebar {
  color: #edf8f2;
  background:
    radial-gradient(circle at 18% 3%, rgba(67, 153, 112, .22), transparent 30%),
    linear-gradient(180deg, #061f17 0%, #082f22 48%, #0a3928 100%);
  border-right: 1px solid rgba(213, 244, 227, .10);
  box-shadow: inset -1px 0 rgba(255, 255, 255, .025);
}

.benvia-app-shell--premium .benvia-brandbar,
.benvia-app-shell--premium .benvia-company-switcher,
.benvia-app-shell--premium .benvia-sidebar-usercard {
  border-color: rgba(222, 250, 235, .12);
  background: rgba(255, 255, 255, .055);
  color: #ffffff;
  box-shadow: inset 0 1px rgba(255, 255, 255, .045);
  backdrop-filter: none;
}

.benvia-app-shell--premium .benvia-brandbar__name,
.benvia-app-shell--premium .benvia-company-switcher__name,
.benvia-app-shell--premium .benvia-sidebar-usercard__name {
  color: #ffffff;
}

.benvia-app-shell--premium .benvia-brandbar__descriptor,
.benvia-app-shell--premium .benvia-company-switcher__label,
.benvia-app-shell--premium .benvia-company-switcher__workspace,
.benvia-app-shell--premium .benvia-sidebar-usercard__email,
.benvia-app-shell--premium .benvia-sidebar__section-label {
  color: rgba(226, 245, 235, .66);
}

.benvia-app-shell--premium .benvia-company-switcher__symbol,
.benvia-app-shell--premium .benvia-sidebar-usercard__avatar {
  border: 1px solid rgba(224, 250, 236, .14);
  background: rgba(230, 250, 239, .10);
  color: #f4fff8;
}

.benvia-app-shell--premium .benvia-sidebar-collapse {
  border-color: rgba(225, 250, 236, .16);
  background: rgba(255, 255, 255, .065);
  color: #ffffff;
}

.benvia-app-shell--premium .benvia-sidebar__item-link,
.benvia-app-shell--premium .benvia-sidebar__item-main,
.benvia-app-shell--premium .benvia-sidebar__child-link,
.benvia-app-shell--premium .benvia-sidebar__child {
  color: rgba(241, 251, 246, .82);
  box-shadow: none;
}

.benvia-app-shell--premium .benvia-sidebar__icon {
  border-color: rgba(225, 250, 236, .10);
  background: rgba(255, 255, 255, .055);
  color: rgba(243, 254, 248, .86);
}

.benvia-app-shell--premium .benvia-sidebar__children {
  border-left-color: rgba(221, 248, 233, .14);
}

.benvia-app-shell--premium .benvia-sidebar__item-link:hover,
.benvia-app-shell--premium .benvia-sidebar__child-link:hover,
.benvia-app-shell--premium .benvia-sidebar__item-toggle:hover,
.benvia-app-shell--premium .benvia-sidebar__item.is-expanded .benvia-sidebar__item-main {
  border-color: rgba(229, 250, 238, .14);
  background: rgba(255, 255, 255, .085);
  color: #ffffff;
}

.benvia-app-shell--premium .benvia-sidebar__item.is-active .benvia-sidebar__item-link,
.benvia-app-shell--premium .benvia-sidebar__item.is-active .benvia-sidebar__item-main,
.benvia-app-shell--premium .benvia-sidebar__child.is-active,
.benvia-app-shell--premium .benvia-sidebar__child-link.is-active {
  border-color: rgba(172, 226, 198, .20);
  background: linear-gradient(135deg, #176347 0%, #0f5139 100%);
  color: #ffffff;
  box-shadow: 0 14px 30px -22px rgba(0, 0, 0, .72), inset 0 1px rgba(255, 255, 255, .09);
}

.benvia-app-shell--premium .benvia-sidebar__item.is-active .benvia-sidebar__icon {
  border-color: rgba(255, 255, 255, .13);
  background: rgba(255, 255, 255, .12);
}

.benvia-app-shell--premium .benvia-sidebar :is(a, button):focus-visible,
.benvia-nav-toggle:focus-visible,
.benvia-workspace-tab:focus-visible {
  outline: 3px solid rgba(161, 227, 192, .62);
  outline-offset: 2px;
}

.benvia-app-shell--premium .benvia-sidebar-usercard .btn-outline-secondary {
  border-color: rgba(229, 250, 238, .18);
  background: rgba(255, 255, 255, .055);
  color: #ffffff;
}

.benvia-app-shell--premium .benvia-sidebar-usercard .btn-outline-secondary:hover,
.benvia-app-shell--premium .benvia-sidebar-usercard .btn-outline-secondary:focus {
  border-color: rgba(229, 250, 238, .28);
  background: rgba(255, 255, 255, .10);
  color: #ffffff;
}

.benvia-workspace-tabs-shell {
  overscroll-behavior-inline: contain;
  scroll-snap-type: inline proximity;
  -webkit-overflow-scrolling: touch;
}

.benvia-workspace-tab {
  scroll-snap-align: start;
}

.benvia-shell__content :is([id], .validation-summary-errors) {
  scroll-margin-top: 7rem;
}

.benvia-shell__content .table-responsive {
  max-width: 100%;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

.benvia-shell__content :is(.btn, button, [role="button"], .form-control, .form-select) {
  touch-action: manipulation;
}

.onboarding-studio,
.onboarding-assignment-page,
.compliance-workspace,
.onboarding-reports,
.hr-form-library,
.hr-form-builder,
.hr-form-preview-page,
.hr-form-publish,
.employee-onboarding-page,
.employee-compliance-page {
  min-width: 0;
}

.onboarding-studio__header,
.compliance-header,
.onboarding-reports__header,
.hr-form-page-header,
.employee-page-header {
  row-gap: .85rem;
}

.onboarding-studio__header-actions,
.compliance-header__actions,
.onboarding-reports__actions,
.hr-form-header-actions,
.employee-page-header__actions {
  align-items: center;
}

.onboarding-studio__section,
.compliance-panel,
.onboarding-reports__panel,
.hr-form-builder__settings,
.hr-form-builder__section,
.hr-form-builder__outline,
.hr-form-builder__properties {
  min-width: 0;
}

.onboarding-assignment-sticky-actions,
.onboarding-editor-savebar {
  padding-bottom: max(.8rem, env(safe-area-inset-bottom));
}

.onboarding-assignment-preview-employee > summary,
.onboarding-execution-task__header,
.compliance-workspace-card,
.employee-assigned-task__header {
  min-height: 44px;
}

@media (hover: none) {
  .benvia-kpi-card:hover,
  .benvia-panel-card:hover,
  .benvia-feed-item:hover,
  .benvia-list-item:hover,
  .benvia-timeline-card:hover,
  .benvia-mini-panel:hover,
  .benvia-priority-card:hover,
  .benvia-action-stack .btn:hover,
  .benvia-panel-card .btn:hover,
  .benvia-section-actions .btn:hover {
    transform: none;
  }
}

@media (max-width: 1199.98px) {
  .benvia-shell__content,
  .benvia-shell__footer,
  .benvia-shell--premium .benvia-shell__topbar {
    padding-left: .85rem;
    padding-right: .85rem;
  }

  .onboarding-studio__metrics,
  .compliance-metrics,
  .onboarding-reports__metrics,
  .hr-form-metrics,
  .employee-onboarding-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .hr-form-builder__layout,
  .onboarding-editor-grid {
    gap: .85rem;
  }
}

@media (max-width: 991.98px) {
  body.benvia-nav-open .benvia-shell__main {
    pointer-events: none;
    user-select: none;
  }

  .benvia-shell__sidebar {
    width: min(22rem, calc(100vw - 1rem));
    top: .5rem;
    left: .5rem;
    bottom: .5rem;
    max-height: calc(100dvh - 1rem);
    overflow: hidden;
    border-radius: 10px;
    overscroll-behavior: contain;
  }

  .benvia-shell__sidebar-inner {
    height: 100%;
    min-height: 0;
    padding-top: max(.9rem, env(safe-area-inset-top));
    padding-bottom: max(.9rem, env(safe-area-inset-bottom));
  }

  .benvia-shell__sidebar-nav {
    overscroll-behavior: contain;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
  }

  .benvia-shell__backdrop {
    backdrop-filter: blur(2px);
  }

  .benvia-workspace-tabs-shell {
    margin-inline: -.2rem;
    padding-inline: .2rem;
  }

  .benvia-workspace-tabs {
    width: max-content;
    min-width: 100%;
    flex-wrap: nowrap;
  }

  .benvia-workspace-tab {
    flex: 0 0 auto;
    width: auto;
    min-height: 44px;
    padding-inline: .9rem;
  }

  .hr-form-page-header--sticky,
  .onboarding-editor-outline,
  .onboarding-editor-properties,
  .compliance-editor__aside,
  .onboarding-assignment-detail-aside,
  .onboarding-reports__panel,
  .employee-onboarding-aside {
    position: static;
  }
}

@media (max-width: 767.98px) {
  html {
    scroll-padding-top: 5.5rem;
  }

  .benvia-shell__content,
  .benvia-shell__footer,
  .benvia-shell--premium .benvia-shell__topbar {
    padding-left: .65rem;
    padding-right: .65rem;
  }

  .benvia-shell__content > .container-fluid,
  .benvia-shell__footer > .container-fluid,
  .benvia-shell__topbar > .container-fluid {
    padding-left: 0;
    padding-right: 0;
  }

  .benvia-commandbar {
    gap: .65rem;
  }

  .benvia-commandbar__right {
    width: 100%;
  }

  .benvia-commandbar__tenant {
    min-width: 0;
  }

  .benvia-commandbar__tenant-name,
  .benvia-company-switcher__name,
  .benvia-sidebar-usercard__email {
    overflow-wrap: anywhere;
  }

  .benvia-workspace-tabs-shell {
    margin-top: .7rem;
  }

  .benvia-workspace-tabs {
    padding: .3rem;
    border-radius: 8px;
  }

  .benvia-shell__content :is(.btn, button:not(.benvia-shell__backdrop), .form-control, .form-select) {
    min-height: 44px;
  }

  .benvia-shell__content textarea.form-control {
    min-height: 7rem;
  }

  .onboarding-studio__header-actions,
  .compliance-header__actions,
  .onboarding-reports__actions,
  .hr-form-header-actions,
  .employee-page-header__actions,
  .onboarding-row-actions,
  .compliance-filterbar,
  .onboarding-reports__filter-actions {
    width: 100%;
  }

  .onboarding-studio__header-actions > *,
  .compliance-header__actions > *,
  .onboarding-reports__actions > *,
  .hr-form-header-actions > *,
  .employee-page-header__actions > *,
  .compliance-filterbar > .btn,
  .onboarding-reports__filter-actions > * {
    width: 100%;
  }

  .onboarding-studio__metrics,
  .compliance-metrics,
  .onboarding-reports__metrics,
  .hr-form-metrics,
  .employee-onboarding-metrics {
    grid-template-columns: 1fr;
  }

  .onboarding-studio__section,
  .compliance-panel,
  .onboarding-reports__panel,
  .hr-form-page-header,
  .hr-form-builder__settings,
  .hr-form-builder__section,
  .hr-form-builder__outline,
  .hr-form-builder__properties {
    padding: .9rem;
    border-radius: 8px;
  }

  .onboarding-assignment-sticky-actions,
  .onboarding-editor-savebar {
    position: static;
    margin-top: 1rem;
  }

  .hr-form-structure-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }

  .hr-form-structure-actions > * {
    width: 100%;
  }

  .hr-form-structure-actions [data-delete-section],
  .hr-form-structure-actions [data-delete-field] {
    grid-column: 1 / -1;
  }

  .hr-form-outline-list {
    scroll-snap-type: inline proximity;
  }

  .hr-form-outline-list li {
    scroll-snap-align: start;
  }

  .onboarding-assignment-page .onboarding-table thead,
  .compliance-workspace .compliance-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .onboarding-assignment-page .onboarding-table,
  .onboarding-assignment-page .onboarding-table tbody,
  .onboarding-assignment-page .onboarding-table tr,
  .onboarding-assignment-page .onboarding-table td,
  .compliance-workspace .compliance-table,
  .compliance-workspace .compliance-table tbody,
  .compliance-workspace .compliance-table tr,
  .compliance-workspace .compliance-table td {
    display: block;
    width: 100%;
  }

  .onboarding-assignment-page .onboarding-table tr,
  .compliance-workspace .compliance-table tr {
    padding: .7rem 0;
    border-bottom: 1px solid rgba(104, 124, 114, .20);
  }

  .onboarding-assignment-page .onboarding-table td,
  .compliance-workspace .compliance-table td {
    display: grid;
    grid-template-columns: minmax(7rem, 36%) minmax(0, 1fr);
    gap: .65rem;
    padding: .45rem .15rem;
    border: 0;
    text-align: left !important;
    overflow-wrap: anywhere;
  }

  .onboarding-assignment-page .onboarding-table td::before,
  .compliance-workspace .compliance-table td::before {
    content: attr(data-label);
    color: #687a72;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
  }

  .onboarding-assignment-page .onboarding-table td .btn,
  .onboarding-assignment-page .onboarding-table td form,
  .compliance-workspace .compliance-table td .btn,
  .compliance-workspace .compliance-table td form,
  .compliance-workspace .compliance-table td > div {
    width: 100%;
  }

  .compliance-workspace .compliance-table td > div {
    display: grid !important;
    grid-template-columns: 1fr;
  }

  .onboarding-reports__workitem,
  .onboarding-reports__ranked-list > div,
  .compliance-review-row,
  .employee-assigned-task__header,
  .employee-assigned-task__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .onboarding-reports__workitem .btn,
  .onboarding-reports__ranked-list .btn,
  .employee-assigned-task__actions .btn,
  .employee-assigned-task__actions form {
    width: 100%;
  }
}

@media (max-width: 479.98px) {
  .onboarding-assignment-page .onboarding-table td,
  .compliance-workspace .compliance-table td,
  .onboarding-reports__table td,
  .hr-form-table td,
  .onboarding-studio__table tbody td {
    grid-template-columns: 1fr;
    gap: .25rem;
  }

  .onboarding-assignment-page .onboarding-table td::before,
  .compliance-workspace .compliance-table td::before,
  .onboarding-reports__table td::before,
  .hr-form-table td::before,
  .onboarding-studio__table tbody td::before {
    margin-bottom: .1rem;
  }

  .hr-form-structure-actions {
    grid-template-columns: 1fr;
  }

  .hr-form-structure-actions [data-delete-section],
  .hr-form-structure-actions [data-delete-field] {
    grid-column: auto;
  }
}

/* Final UX/UAT closure: accessible candidate controls, validation feedback, and OS preference support. */
.benvia-live-notice {
  scroll-margin-top: 7rem;
}

.candidate-portal-language {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .3rem;
  border: 1px solid #ded7cd;
  border-radius: 8px;
  background: #faf7f1;
}

.candidate-portal-language form {
  margin: 0;
}

.candidate-portal-language .btn {
  min-width: 3rem;
  min-height: 2.55rem;
}

.candidate-portal-nav__link:focus-visible,
.candidate-portal-language .btn:focus-visible,
.candidate-portal-topbar__actions .btn:focus-visible {
  outline: 3px solid rgba(23, 99, 71, .38);
  outline-offset: 2px;
}

.validation-summary-errors:focus {
  outline: 3px solid rgba(185, 28, 28, .32);
  outline-offset: 3px;
}

@media (max-width: 991.98px) {
  .candidate-portal-language {
    width: 100%;
  }

  .candidate-portal-language form,
  .candidate-portal-language .btn {
    flex: 1 1 0;
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto !important;
  }

  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}

@media (forced-colors: active) {
  .benvia-skip-link,
  .candidate-portal-nav__link,
  .candidate-portal-language,
  .benvia-workspace-tab,
  .benvia-sidebar__item-link,
  .benvia-sidebar__child-link {
    border: 1px solid ButtonText;
    forced-color-adjust: auto;
  }

  .candidate-portal-nav__link.is-active,
  .benvia-workspace-tab.is-active {
    outline: 2px solid Highlight;
    outline-offset: 2px;
  }
}

