/* JobReload FlexFit Apple Adaptive Interface v1
 * Isolated presentation overrides for Safari, iPhone, iPad, and resizable macOS.
 */

:root {
  --flexfit-safe-top: env(safe-area-inset-top, 0px);
  --flexfit-safe-right: env(safe-area-inset-right, 0px);
  --flexfit-safe-bottom: env(safe-area-inset-bottom, 0px);
  --flexfit-safe-left: env(safe-area-inset-left, 0px);
  --flexfit-gutter: clamp(14px, 3.2vw, 34px);
  --flexfit-touch-target: 44px;
}

html {
  min-width: 320px;
  overflow-x: clip;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  min-height: 100vh;
  min-height: 100svh;
  overflow-x: clip;
  overscroll-behavior: none;
}

.auth-page,
.auth-story,
.auth-stage,
.workspace {
  min-height: 100vh;
  min-height: 100svh;
}

.workspace {
  padding-bottom: var(--flexfit-safe-bottom);
}

.sidebar {
  padding-top: max(24px, calc(16px + var(--flexfit-safe-top)));
  padding-right: 16px;
  padding-bottom: max(18px, calc(12px + var(--flexfit-safe-bottom)));
  padding-left: max(16px, var(--flexfit-safe-left));
  overscroll-behavior: contain;
}

.workspace-topbar {
  min-height: 74px;
  height: auto;
  padding-top: var(--flexfit-safe-top);
  padding-right: max(28px, var(--flexfit-safe-right));
  padding-left: max(28px, var(--flexfit-safe-left));
}

.content-shell {
  padding-right: max(var(--flexfit-gutter), var(--flexfit-safe-right));
  padding-bottom: max(70px, calc(42px + var(--flexfit-safe-bottom)));
  padding-left: max(var(--flexfit-gutter), var(--flexfit-safe-left));
}

.primary-nav,
.profile-choice-options,
.intelligence-history-content,
.modal-card,
.job-detail-body,
.tailoring-studio-shell {
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.auth-tabs,
.profile-tabs,
.status-tabs,
.application-tabs,
.tailoring-tabs {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.auth-tabs::-webkit-scrollbar,
.profile-tabs::-webkit-scrollbar,
.status-tabs::-webkit-scrollbar,
.application-tabs::-webkit-scrollbar,
.tailoring-tabs::-webkit-scrollbar {
  display: none;
}

.auth-tab,
.profile-tab,
.status-tab,
.application-tab,
.tailoring-tab {
  scroll-snap-align: start;
}

.modal,
.job-detail-dialog,
.tailoring-studio-dialog {
  max-width: calc(100vw - var(--flexfit-safe-left) - var(--flexfit-safe-right) - 16px);
  max-height: calc(100svh - var(--flexfit-safe-top) - var(--flexfit-safe-bottom) - 16px);
}

.modal-card,
.job-detail-shell,
.tailoring-studio-shell {
  max-height: calc(100svh - var(--flexfit-safe-top) - var(--flexfit-safe-bottom) - 16px);
}

.job-detail-dialog,
.tailoring-studio-dialog {
  margin: auto;
}

.toast-region {
  right: max(20px, calc(12px + var(--flexfit-safe-right)));
  bottom: max(20px, calc(12px + var(--flexfit-safe-bottom)));
  left: max(20px, calc(12px + var(--flexfit-safe-left)));
  justify-items: end;
}

.toast-region > * {
  max-width: min(440px, 100%);
}

@supports (min-height: 100dvh) {
  body,
  .auth-page,
  .auth-story,
  .auth-stage,
  .workspace {
    min-height: 100dvh;
  }

  .modal,
  .job-detail-dialog,
  .tailoring-studio-dialog,
  .modal-card,
  .job-detail-shell,
  .tailoring-studio-shell {
    max-height: calc(100dvh - var(--flexfit-safe-top) - var(--flexfit-safe-bottom) - 16px);
  }
}

@media (pointer: coarse) {
  button,
  [role="button"],
  a.nav-item,
  .nav-item,
  .auth-tab,
  .profile-tab,
  .status-tab,
  .application-tab,
  .tailoring-tab,
  input:not([type="checkbox"]):not([type="radio"]),
  select {
    min-height: var(--flexfit-touch-target);
  }

  .icon-button,
  .password-toggle,
  .profile-choice-clear {
    min-width: var(--flexfit-touch-target);
    min-height: var(--flexfit-touch-target);
  }
}

@media (max-width: 860px) {
  body {
    overscroll-behavior-y: auto;
  }

  input,
  textarea,
  select {
    font-size: 16px;
  }

  .workspace {
    display: block;
  }

  .workspace-main {
    width: 100%;
    min-width: 0;
  }

  .sidebar {
    width: min(88vw, 320px);
    max-width: calc(100vw - var(--flexfit-safe-right));
    transform: translateX(calc(-100% - var(--flexfit-safe-left)));
  }

  .sidebar.open {
    transform: translateX(0);
  }

  .workspace-topbar {
    gap: 10px;
    padding-right: max(14px, var(--flexfit-safe-right));
    padding-left: max(14px, var(--flexfit-safe-left));
  }

  .global-search {
    width: auto;
    min-width: 0;
    flex: 1;
  }

  .global-search kbd,
  .profile-chip-copy,
  .profile-chip-caret {
    display: none;
  }

  .profile-chip {
    min-width: var(--flexfit-touch-target);
    padding: 4px;
  }

  .account-menu {
    position: fixed;
    top: calc(var(--flexfit-safe-top) + 68px);
    right: max(10px, var(--flexfit-safe-right));
    left: max(10px, var(--flexfit-safe-left));
    width: auto;
    max-height: calc(100svh - var(--flexfit-safe-top) - 88px - var(--flexfit-safe-bottom));
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .content-shell {
    padding-top: 22px;
    padding-right: max(16px, var(--flexfit-safe-right));
    padding-left: max(16px, var(--flexfit-safe-left));
  }

  .page-heading,
  .card-heading,
  .job-card,
  .job-card-main,
  .job-detail-hero,
  .job-detail-title-row,
  .job-detail-actions,
  .form-actions,
  .modal-heading,
  .modal-actions {
    min-width: 0;
  }

  .page-heading,
  .card-heading,
  .job-card,
  .job-detail-hero,
  .job-detail-title-row {
    align-items: stretch;
  }

  .heading-actions,
  .job-card-actions,
  .job-detail-actions,
  .form-actions,
  .modal-actions {
    width: 100%;
  }

  .heading-actions > *,
  .job-card-actions > *,
  .job-detail-actions > *,
  .form-actions > *,
  .modal-actions > * {
    flex: 1 1 160px;
  }

  .job-card-copy,
  .job-card-main,
  .job-card-side,
  .job-detail-body,
  .job-detail-aside {
    min-width: 0;
  }

  .job-meta,
  .job-detail-badges,
  .keyword-cloud,
  .rolefit-corpus-skills {
    overflow-wrap: anywhere;
  }

  .modal,
  .modal-wide,
  .job-detail-dialog,
  .tailoring-studio-dialog {
    width: calc(100vw - var(--flexfit-safe-left) - var(--flexfit-safe-right) - 12px);
  }

  .modal-card,
  .job-detail-shell,
  .tailoring-studio-shell {
    border-radius: 18px;
  }

  .profile-choice-panel {
    right: max(12px, var(--flexfit-safe-right));
    bottom: max(12px, var(--flexfit-safe-bottom));
    left: max(12px, var(--flexfit-safe-left));
    max-height: calc(62svh - var(--flexfit-safe-bottom));
  }
}

@media (max-width: 640px) {
  .auth-page {
    display: block;
  }

  .auth-story {
    min-height: auto;
    padding: max(22px, calc(14px + var(--flexfit-safe-top))) max(18px, var(--flexfit-safe-right)) 26px max(18px, var(--flexfit-safe-left));
  }

  .auth-story-copy {
    margin: 34px 0 24px;
  }

  .auth-story-copy h1 {
    font-size: clamp(2.25rem, 12vw, 3.55rem);
  }

  .auth-proof-grid {
    grid-template-columns: 1fr;
  }

  .auth-stage {
    min-height: auto;
    padding: 28px max(18px, var(--flexfit-safe-right)) max(34px, calc(22px + var(--flexfit-safe-bottom))) max(18px, var(--flexfit-safe-left));
  }

  .page-heading,
  .card-heading,
  .job-card,
  .compact-job-row,
  .job-detail-title-row,
  .job-detail-actions,
  .form-actions,
  .modal-heading,
  .modal-actions {
    flex-direction: column;
  }

  .filter-bar,
  .metric-grid,
  .dashboard-grid,
  .help-grid,
  .application-detail-grid,
  .job-detail-body,
  .form-grid,
  .application-contact-row,
  .intelligence-revision-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .job-card,
  .compact-job-row {
    grid-template-columns: minmax(0, 1fr);
  }

  .job-row-actions,
  .job-card-actions {
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .modal-card,
  .job-detail-shell,
  .tailoring-studio-shell {
    padding: 18px;
  }

  .toast-region {
    justify-items: stretch;
  }

  .toast {
    min-width: 0;
    width: 100%;
  }
}

@media (orientation: landscape) and (max-height: 560px) {
  .workspace-topbar {
    min-height: 56px;
    padding-top: var(--flexfit-safe-top);
  }

  .content-shell {
    padding-top: 16px;
    padding-bottom: max(24px, calc(12px + var(--flexfit-safe-bottom)));
  }

  .page-heading {
    margin-bottom: 16px;
  }

  .page-heading h1 {
    font-size: clamp(1.55rem, 4vw, 2rem);
  }

  .sidebar {
    padding-top: max(12px, var(--flexfit-safe-top));
    padding-bottom: max(12px, var(--flexfit-safe-bottom));
  }

  .sidebar-header {
    padding-bottom: 12px;
  }

  .nav-label {
    margin-top: 8px;
  }

  .nav-item {
    min-height: 40px;
  }

  .auth-page {
    grid-template-columns: minmax(280px, .9fr) minmax(360px, 1.1fr);
  }

  .auth-story,
  .auth-stage {
    min-height: 100svh;
  }

  .auth-story {
    padding-top: max(18px, var(--flexfit-safe-top));
    padding-bottom: max(18px, var(--flexfit-safe-bottom));
  }

  .auth-story-copy {
    margin: 18px 0;
  }

  .auth-story-copy h1 {
    font-size: clamp(2rem, 6vw, 3.4rem);
  }

  .auth-proof-grid {
    display: none;
  }

  .auth-stage {
    place-items: start center;
    overflow-y: auto;
    padding-top: max(18px, var(--flexfit-safe-top));
    padding-bottom: max(18px, var(--flexfit-safe-bottom));
  }

  .modal-card,
  .job-detail-shell,
  .tailoring-studio-shell {
    max-height: calc(100svh - var(--flexfit-safe-top) - var(--flexfit-safe-bottom) - 8px);
  }
}

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

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