/* KOOS interface typography. Shared by every UI language. Newspaper keeps its editorial type. */
/* The provenance ID and digest remain in document metadata, not in the reader UI. */
#koos-publication-v566 { display: none !important; }
html:not(:has(#koos-newspaper)) body {
  --koos-ui-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --koos-ui-body: 16px;
  --koos-ui-label: 14px;
  --koos-ui-caption: 12px;
  --koos-ui-section: 24px;
  font-family: var(--koos-ui-font);
  font-size: var(--koos-ui-body);
  line-height: 1.5;
}
html:not(:has(#koos-newspaper)) body :is(h1,h2,h3,p,label,input,select,textarea) {
  font-family: var(--koos-ui-font) !important;
}
html:not(:has(#koos-newspaper)) body main p {
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
}
html:not(:has(#koos-newspaper)) body :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]):not([type=range]):not([type=submit]):not([type=button]),select,textarea) {
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
  letter-spacing: normal !important;
  min-width: 0;
}
html:not(:has(#koos-newspaper)) body :is(label,.form-label,.field-label) {
  font-size: var(--koos-ui-label) !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
}
html:not(:has(#koos-newspaper)) body h1 {
  font-size: clamp(28px, 3.4vw, 48px) !important;
  line-height: 1.12 !important;
  font-weight: 700 !important;
  letter-spacing: -.025em !important;
  overflow-wrap: break-word;
}
html:not(:has(#koos-newspaper)) body h2 {
  font-size: var(--koos-ui-section) !important;
  line-height: 1.25 !important;
  font-weight: 700 !important;
  letter-spacing: -.015em !important;
}
html:not(:has(#koos-newspaper)) body h3 {
  font-size: 20px !important;
  line-height: 1.3 !important;
  font-weight: 650 !important;
  letter-spacing: -.01em !important;
}
html:not(:has(#koos-newspaper)) body :is(.public-job-card h2,.vacancy-card h3) {
  font-size: 20px !important;
  line-height: 1.25 !important;
}
html:not(:has(#koos-newspaper)) body:is(.resume-composer-page,.resume-detail-page,.account-page) h1 {
  font-size: clamp(28px,2.3vw,32px) !important;
}
html:not(:has(#koos-newspaper)) body :is(.public-jobs-hero,.public-vacancy-hero) > p {
  font-size: 18px !important;
  line-height: 1.5 !important;
}
html:not(:has(#koos-newspaper)) body :is(.jobs-rail h2,.jobs-rail h3) {
  font-size: 16px !important;
  line-height: 1.3 !important;
}
html:not(:has(#koos-newspaper)) body .jobs-rail p {
  font-size: 14px !important;
  line-height: 1.45 !important;
}
html:not(:has(#koos-newspaper)) body :is(.login-button,.pill-button,.theme-button,.language-button,button[type=submit],form button:not(.date-picker-button)) {
  font-family: var(--koos-ui-font) !important;
  font-size: 14px !important;
  line-height: 1.3 !important;
  font-weight: 600 !important;
}
html:not(:has(#koos-newspaper)) body :is(.site-footer,.platform-footer) :is(p,a,button) {
  font-family: var(--koos-ui-font) !important;
  font-size: var(--koos-ui-caption) !important;
  line-height: 1.4 !important;
}
@media(max-width:820px) {
  html:not(:has(#koos-newspaper)) body { --koos-ui-section: 22px; }
  /* The compact header uses the existing accessible link as an icon button.
     Never restore its legacy text through the shared button font rule. */
  html:not(:has(#koos-newspaper)) body .site-header.koos-navigation-v613 .login-button:has(.nav-person-icon) {
    font-size: 0 !important;
    line-height: 0 !important;
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    padding: 0 !important;
    gap: 0 !important;
    flex-shrink: 0;
  }
  html:not(:has(#koos-newspaper)) body#koos-jobs.public-marketing .public-job-card h2 {
    font: 700 24px/1.2 var(--koos-ui-font) !important;
    flex-shrink: 0 !important;
    min-height: 1.2em;
  }
  html:not(:has(#koos-newspaper)) body#koos-jobs.public-marketing .public-job-meta {
    font: 400 14px/1.4 var(--koos-ui-font) !important;
    flex-shrink: 0;
  }
  html:not(:has(#koos-newspaper)) body#koos-jobs.public-marketing .mj-hint {
    font: 400 12px/1.35 var(--koos-ui-font) !important;
    flex-shrink: 0;
  }
  html:not(:has(#koos-newspaper)) body#koos-jobs.public-marketing .mj-card-actions :is(button,a) {
    font-size: 14px !important;
  }
  html:not(:has(#koos-newspaper)) body#koos-jobs.public-marketing.kj-mobile-jobs .public-job-card {
    padding-top: clamp(96px,20dvh,200px) !important;
  }
}

/* KOOS interface layout v620. Shared spacing and controls for every UI language.
   The editorial newspaper and the viewport-managed swipe deck retain their layouts. */
html:not(:has(#koos-newspaper)) body {
  --koos-space-1: 8px;
  --koos-space-2: 12px;
  --koos-space-3: 16px;
  --koos-space-4: 24px;
  --koos-space-5: 32px;
  --koos-content-max: 1280px;
  --koos-workspace-max: 1440px;
  --koos-page-gutter: clamp(16px, 2.2vw, 32px);
  --koos-panel-padding: 24px;
  --koos-panel-radius: 24px;
  --koos-field-radius: 14px;
  --koos-section-gap: 24px;
}
/* Ordinary page shells. Cabinet canvases and the mobile swipe deck own their positioning. */
html:not(:has(#koos-newspaper)) body:not(.jobseeker-dashboard-page):not(.employer-dashboard-page):not(.kj-mobile-jobs) :is(.page-shell,.about-shell) {
  box-sizing: border-box;
  width: 100% !important;
  max-width: var(--koos-content-max) !important;
  margin-inline: auto !important;
  padding-inline: var(--koos-page-gutter) !important;
}
html:not(:has(#koos-newspaper)) body.admin-page .page-shell.admin-shell {
  max-width: var(--koos-workspace-max) !important;
}
html:not(:has(#koos-newspaper)) body > .koosjobs-shell {
  box-sizing: border-box;
  width: 100% !important;
  max-width: var(--koos-content-max) !important;
  margin-inline: auto !important;
  padding-inline: var(--koos-page-gutter) !important;
}
html:not(:has(#koos-newspaper)) body:not(.kj-mobile-jobs) .public-jobs-shell {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0;
  padding-inline: 0 !important;
}
/* Explicit panel family: never target every div or dynamically positioned dialog. */
html:not(:has(#koos-newspaper)) body :is(.resume-composer-card,.resume-composer-submit,.resume-master-card,.account-auth,.account-next,.account-faq,.contact-card,.about-panel,.about-final-cta,.contact-methods,.jobs-side-card,.public-jobs-empty,.public-vacancy-register,.admin-section) {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
  padding: var(--koos-panel-padding) !important;
  border-radius: var(--koos-panel-radius) !important;
}
html:not(:has(#koos-newspaper)) body :is(.about-hero,.contact-hero,.account-hero,.resume-composer-hero,.public-vacancy-hero,.public-jobs-hero) {
  box-sizing: border-box;
  min-width: 0;
  padding: var(--koos-panel-padding) !important;
  border-radius: var(--koos-panel-radius) !important;
}
html:not(:has(#koos-newspaper)) body .public-vacancy-grid > div {
  box-sizing: border-box;
  padding: var(--koos-panel-padding) !important;
  border-radius: var(--koos-panel-radius) !important;
  min-width: 0;
}
html:not(:has(#koos-newspaper)) body :is(.resume-composer-form,.public-vacancy-grid,.contact-grid,.account-auth-grid,.about-story-grid,.about-principles-grid,.admin-analytics-grid) {
  gap: var(--koos-section-gap) !important;
  min-width: 0;
}
html:not(:has(#koos-newspaper)) body :is(.resume-composer-grid,.candidate-profile-grid) {
  gap: var(--koos-space-3) !important;
  min-width: 0;
}
html:not(:has(#koos-newspaper)) body :is(.resume-composer-card-head,.resume-detail-toolbar,.vacancy-detail-actions,.resume-detail-actions) {
  gap: var(--koos-space-3) !important;
}
html:not(:has(#koos-newspaper)) body :is(.resume-composer-grid,.candidate-profile-grid,.contact-grid,.account-auth-grid,.admin-analytics-grid) > * {
  min-width: 0;
}
html:not(:has(#koos-newspaper)) body :is(.resume-composer-card,.about-panel,.public-vacancy-grid > div,.admin-section) h2 {
  margin-top: 0 !important;
  margin-bottom: var(--koos-space-2) !important;
}
html:not(:has(#koos-newspaper)) body :is(.resume-composer-card-head,.contact-methods,.account-auth) p {
  margin-top: var(--koos-space-1) !important;
  margin-bottom: var(--koos-space-3) !important;
}
/* Normal form controls. Keep checkboxes, date-picker icons, swipes and AI controls intact. */
html:not(:has(#koos-newspaper)) body :is(.resume-composer-form,.candidate-profile-grid,.contact-form,.account-auth,.admin-section) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]):not([type=file]):not([type=submit]):not([type=button]),select,textarea) {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 48px !important;
  border-radius: var(--koos-field-radius) !important;
  padding: 12px 14px !important;
}
html:not(:has(#koos-newspaper)) body :is(.resume-composer-form,.candidate-profile-grid,.contact-form,.account-auth,.admin-section) textarea {
  min-height: 120px !important;
  resize: vertical;
}
html:not(:has(#koos-newspaper)) body :is(.resume-composer-grid,.candidate-profile-grid) label {
  gap: var(--koos-space-1) !important;
}
html:not(:has(#koos-newspaper)) body :is(.resume-composer-form,.account-auth,.contact-form) :is(button[type=submit],.pill-button,.resume-add-button) {
  box-sizing: border-box;
  min-height: 48px;
  padding: 12px 20px;
  white-space: normal;
  overflow-wrap: break-word;
  text-align: center;
}
html:not(:has(#koos-newspaper)) body :is(h1,h2,h3,label,.pill-button) {
  overflow-wrap: break-word;
}
html:not(:has(#koos-newspaper)) body:not(.kj-mobile-jobs):not(.jobseeker-dashboard-page):not(.employer-dashboard-page) .site-footer {
  box-sizing: border-box;
  gap: var(--koos-space-3) !important;
  padding-block: var(--koos-space-4) !important;
  flex-wrap: wrap;
}
html:not(:has(#koos-newspaper)) body :is(.resume-composer-hero,.account-hero,.public-jobs-hero) {
  margin-top: var(--koos-section-gap) !important;
}
@media(max-width:900px) {
  html:not(:has(#koos-newspaper)) body :is(.contact-grid,.about-story-grid,.about-principles-grid,.account-auth-grid) {
    grid-template-columns: minmax(0,1fr) !important;
  }
  html:not(:has(#koos-newspaper)) body .resume-composer-grid {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }
}
@media(max-width:600px) {
  html:not(:has(#koos-newspaper)) body {
    --koos-panel-padding: 16px;
    --koos-panel-radius: 20px;
    --koos-section-gap: 16px;
  }
  html:not(:has(#koos-newspaper)) body :is(.resume-composer-grid,.resume-region-grid,.candidate-profile-grid) {
    grid-template-columns: minmax(0,1fr) !important;
  }
  html:not(:has(#koos-newspaper)) body .resume-composer-hero {
    grid-template-columns: minmax(0,1fr) auto !important;
    gap: 12px !important;
  }
  html:not(:has(#koos-newspaper)) body .resume-composer-score {
    width: 76px !important;
    min-height: 96px !important;
    padding: 8px !important;
    border-radius: 16px !important;
  }
  html:not(:has(#koos-newspaper)) body :is(.resume-detail-toolbar,.vacancy-detail-actions,.resume-detail-actions) {
    flex-wrap: wrap;
  }
  html:not(:has(#koos-newspaper)) body :is(.resume-master-card,.account-next) {
    grid-template-columns: minmax(0,1fr) !important;
  }
  html:not(:has(#koos-newspaper)) body.admin-page :is(.admin-kpi-grid,.admin-analytics-grid) {
    grid-template-columns: minmax(0,1fr) !important;
  }
}
@media(prefers-reduced-motion:reduce) {
  html:not(:has(#koos-newspaper)) body :is(input,select,textarea,.pill-button) { transition: none !important; }
}

/* Workspace surfaces share the same rhythm without changing their canvas or fixed bars. */
html:not(:has(#koos-newspaper)) body :is(.candidate-main-panel,.candidate-stats-panel,.company-team) {
  box-sizing: border-box;
  min-width: 0;
  padding: var(--koos-panel-padding) !important;
  border-radius: var(--koos-panel-radius) !important;
}
html:not(:has(#koos-newspaper)) body:not(.kj-mobile-jobs) .public-job-card {
  box-sizing: border-box;
  border-radius: var(--koos-panel-radius) !important;
  padding-inline: var(--koos-panel-padding) !important;
  padding-bottom: var(--koos-panel-padding) !important;
}
html:not(:has(#koos-newspaper)) body main > :is(.about-hero,.founder-story,.about-story-blocks,.about-principles,.about-final-cta,.contact-hero,.contact-grid,.account-hero,.account-auth,.account-next,.account-faq) {
  margin-block: var(--koos-section-gap) !important;
}

/* The catalog needs room for two rails and image cards. */
html:not(:has(#koos-newspaper)) body#koos-jobs:not(.kj-mobile-jobs) .page-shell.public-jobs-page-shell {
  max-width: var(--koos-workspace-max) !important;
}

/* Narrow workspace rails: a number above its caption is readable in every language. */
@media(min-width:821px) {
  html:not(:has(#koos-newspaper)) body :is(.candidate-stats-panel,.employer-stats-panel) .candidate-stat {
    grid-template-columns: minmax(0,1fr) !important;
    grid-template-rows: auto auto !important;
    gap: 6px !important;
    padding: 16px !important;
    text-align: left !important;
  }
  html:not(:has(#koos-newspaper)) body :is(.candidate-stats-panel,.employer-stats-panel) .candidate-stat span {
    width: 100% !important;
    min-width: 0 !important;
    font: 400 14px/1.4 var(--koos-ui-font) !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    white-space: normal !important;
  }
}

/* Owner preference: three desktop cards, a restrained sentence-case page heading. */
html:not(:has(#koos-newspaper)) body#koos-jobs .public-jobs-hero h1 {
  font-size: clamp(28px,2.3vw,34px) !important;
  font-weight: 650 !important;
  line-height: 1.2 !important;
  text-transform: none !important;
  letter-spacing: -.015em !important;
  max-width: 100% !important;
}
@media(min-width:821px) {
  html:not(:has(#koos-newspaper)) body#koos-jobs.public-jobs-page .public-jobs-list {
    grid-template-columns: repeat(3,minmax(0,1fr)) !important;
  }
}
@media(min-width:1200px) and (max-width:1399px) {
  html:not(:has(#koos-newspaper)) body#koos-jobs .jobs-desktop-layout {
    grid-template-columns: 250px minmax(0,1fr) 250px !important;
  }
}
@media(min-width:821px) and (max-width:1199px) {
  html:not(:has(#koos-newspaper)) body#koos-jobs .jobs-desktop-layout {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }
  html:not(:has(#koos-newspaper)) body#koos-jobs .jobs-results-column {
    grid-column: 1 / -1;
    grid-row: 1;
    min-width: 0;
  }
  html:not(:has(#koos-newspaper)) body#koos-jobs .jobs-rail {
    grid-row: 2;
    min-width: 0;
    max-width: 100%;
  }
}

/* Keep rail captions readable beside the salary amount, including translated labels. */
@media(min-width:821px) {
  html:not(:has(#koos-newspaper)) body#koos-jobs .jobs-market-stats p {
    grid-template-columns: minmax(0,1fr) !important;
    gap: 4px !important;
    padding: 12px !important;
  }
  html:not(:has(#koos-newspaper)) body#koos-jobs .jobs-market-stats span {
    font-size: 13px !important;
    line-height: 1.4 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }
}
